github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/ChangeLog (about)

     1  2016-12-16  Torbjörn Granlund  <tg@gmplib.org>
     2  
     3  	* Version 6.1.2 released.
     4  
     5  2016-12-13  Torbjörn Granlund  <tg@gmplib.org>
     6  
     7  	* longlong.h: Test LONGLONG_STANDALONE in two more places.
     8  
     9  2016-12-07  Torbjörn Granlund  <tg@gmplib.org>
    10  
    11  	* gmp-h.in: Check yet another symbol for FILE.
    12  
    13  2016-12-02  Torbjörn Granlund  <tg@gmplib.org>
    14  
    15  	Merge configure changes from before 6.1.1:
    16  
    17  	2016-03-25  Torbjörn Granlund  <torbjorng@google.com>
    18  
    19  	* config.guess: Prefix all arm CPUs with "arm" to accommodate our
    20  	matchers.
    21  	* configure.ac (arm): Match arm CPUs consistently.
    22  
    23  	2016-03-21  Torbjörn Granlund  <torbjorng@google.com>
    24  
    25  	* configure.ac: Support many arm64 processors.
    26  
    27  	2016-03-20  Torbjörn Granlund  <torbjorng@google.com>
    28  
    29  	* config.guess (arm*): Handle big.LITTLE CPUs by extracting the
    30  	lexically largest id.
    31  	* config.guess (arm*): Add many aarch64 CPUs.
    32  	* config.guess (main): Corresponding changes.
    33  
    34  	* configure.ac (arm*): Support cortex-a5 better.
    35  
    36  	2016-01-15  Torbjörn Granlund  <torbjorng@google.com>
    37  
    38  	* config.guess (s390): Don't assume /proc/cpuinfo exists.
    39  
    40  	2016-01-13  Torbjörn Granlund  <torbjorng@google.com>
    41  
    42  	* config.guess: Reorder and generalise ppc code.
    43  
    44  2016-12-01  Torbjörn Granlund  <tg@gmplib.org>
    45  
    46  	* tests/misc.c (tests_rand_start): Make shift well-defined.
    47  
    48  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
    49  	* gmp-h.in: Bump version.
    50  
    51  2016-11-29  Torbjörn Granlund  <tg@gmplib.org>
    52  
    53  	* gmp-h.in (__GNU_MP__): Bump.
    54  
    55  	* mpz/inp_raw.c: Rewrite size computation to avoid overflow.
    56  
    57  	* mpz/kronsz.c: Use ABS_CAST to avoid undefined code.
    58  
    59  2016-11-27  Torbjörn Granlund  <tg@gmplib.org>
    60  
    61  	* tune/time.c (cgt_works_p): Add a missing verbosity check.
    62  
    63  	* configure.ac: Make udiv_w_sdiv use conditional on enable_assembly.
    64  
    65  2016-11-25  Marc Glisse  <marc.glisse@inria.fr>
    66  
    67  	* tests/cxx/t-ops2.cc (checkz): Avoid left shift of negative number.
    68  
    69  2016-11-22  Torbjörn Granlund  <tg@gmplib.org>
    70  
    71  	* configure.ac (x86): Define LINUX for GNU/Linux systems.
    72  	* mpn/x86_64/fat/fat_entry.asm: Set PRETEND_PIC for GNU/Linux.
    73  
    74  2016-11-21  Torbjörn Granlund  <tg@gmplib.org>
    75  
    76  	* acinclude.m4 (mpn_lshift_com optimization 2): Make it well-defined
    77  	also for 32-bit systems.
    78  	(mpn_lshift_com optimization 2): Free allocated memory.
    79  
    80  2016-11-01  Torbjörn Granlund  <tg@gmplib.org>
    81  
    82  	* mpn/generic/dive_1.c: Remove a forgotten dummy while-loop.  (Spotted
    83  	by Peter Barfuss.)
    84  
    85  2016-10-31   Oleg Oshmyan  <chortos@inbox.lv>
    86  
    87  	* gmp-impl.h (x86_64 MPN_IORD_U): Use proper asm constraint.
    88  
    89  2016-10-24  Torbjörn Granlund  <tg@gmplib.org>
    90  
    91  	* config.guess: Recognise Itanium Poulson.
    92  
    93  2016-10-15  Torbjörn Granlund  <tg@gmplib.org>
    94  
    95  	* configure.ac (arm*-*-*): Amend last change.
    96  
    97  2016-10-14  Torbjörn Granlund  <tg@gmplib.org>
    98  
    99  	* configure.ac
   100  	(arm*-*-*): Rewrite arm support to handle armv8 CPUs in 32-bit mode.
   101  
   102  2016-08-24  Vlad Zakharov <vzakhar@synopsys.com>
   103  
   104  	* longlong.h (arc add_ssaaaa, sub_ddmmss): Replace obsolete 'J'
   105  	constraint with 'Cal'.
   106  
   107  2016-08-22  Marc Glisse  <marc.glisse@inria.fr>
   108  
   109  	* longlong.h (umul_ppmm from __umulsidi3): Protect with do ...
   110  	while (0).
   111  
   112  2016-06-18  Torbjörn Granlund  <tg@gmplib.org>
   113  
   114  	* Version 6.1.1 released.
   115  
   116  2015-03-20  Marc Glisse  <marc.glisse@inria.fr>
   117  
   118  	* configure.ac (WANT_ASSEMBLY): Remove.
   119  	(NO_ASM): Remove from CFLAGS, add to AC_DEFINE.
   120  	* tests/misc.c: Test NO_ASM instead of WANT_ASSEMBLY.
   121  
   122  2016-02-25  Pavel Kopyl  <p.kopyl@samsung.com>
   123  
   124  	* acinclude.m4 (GMP_ASM_UNDERSCORE): Tighten gurkmacka detection.
   125  
   126  2016-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
   127  
   128  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   129  	* gmp-h.in: Bump version.
   130  
   131  2016-01-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
   132  
   133  	* tests/cxx/clocale.c: Do not re-define localeconv for mingw.
   134  	* tests/misc/t-locale.c: Likewise (Thanks Alexander).
   135  
   136  2015-12-26  Torbjörn Granlund  <torbjorng@google.com>
   137  
   138  	* tests/misc.c (tests_start): Assert library version.
   139  
   140  2015-12-19  Marc Glisse  <marc.glisse@inria.fr>
   141  
   142  	* gmp-impl.h (fft_table_nk): Use gmp_uint_least32_t.
   143  	* mpn/generic/trialdiv.c (gmp_primes_ptab): Likewise.
   144  
   145  2015-12-14  Torbjörn Granlund  <torbjorng@google.com>
   146  
   147  	* mpn/x86_64/fat/fat.c (gmp_workaround_skylake_cpuid_bug):
   148  	New function.
   149  	(__gmpn_cpuvec_init): Handle more BMI2 crippled CPUs.
   150  
   151  2015-12-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
   152  
   153  	* tests/arm32call.asm: bx->ret to support thumb-less chips
   154  	  (thanks Martin Husemann).
   155  
   156  2015-12-13  Torbjörn Granlund  <torbjorng@google.com>
   157  
   158  	* config.sub: Fix spelling of kabylake.
   159  	* acinclude.m4: Likewise.
   160  	* mpn/x86_64/fat/fat.c: Likewise.
   161  
   162  2015-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
   163  
   164  	* tests/misc/t-printf.c: Test a sequence of '%'.
   165  	* printf/doprnt.c: Avoid buffer overread with long long limbs.
   166  
   167  2015-12-06  Torbjörn Granlund  <torbjorng@google.com>
   168  
   169  	* configure.ac (arm*): Conditionally define NOTHUMB.
   170  	Simplify and generalise.
   171  	* mpn/arm/arm-defs.m4 (ret): New macro, conditional on NOTHUMB.
   172  	* mpn/arm/*.asm: Use ret.
   173  
   174  2015-12-03  Torbjörn Granlund  <torbjorng@google.com>
   175  
   176  	* config.guess: Work around skylake cpuid bug.
   177  	Fix spelling of kabylake.
   178  
   179  2015-12-01  Torbjörn Granlund  <torbjorng@google.com>
   180  
   181  	* mpn/x86_64/coreibwl/mul_basecase.asm: Add FUNC_EXITs.
   182  
   183  2015-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
   184  
   185  	* gmp-impl.h (MPN_TOOM22_MUL_MINSIZE): Consider ToomX2 limits
   186  	  (thanks Paul).
   187  	* tests/mpn/t-toom22.c: Keep on testing small sizes.
   188  
   189  2015-11-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
   190  
   191  	* Version 6.1.0 released.
   192  
   193  	* mpz/inits.c [__CHECKER__]: Init limb, not pointer.
   194  	* mpz/init.c [__CHECKER__]: Likewise (spotted by Vicente Benjumea).
   195  	* tests/mpf/t-pow_ui.c: Use another mpf for the size limit.
   196  
   197  2015-10-30  Torbjörn Granlund  <torbjorng@google.com>
   198  
   199  	* mpf/pow_ui.c: Add log(e) precision bits.
   200  
   201  	* doc/gmp.texi (Floating-point): Rewrite mpf introduction.
   202  
   203  2015-10-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
   204  
   205  	* demos/factorize.c: mpz_div_2exp => mpz_tdiv_q_2exp.
   206  	* demos/perl/GMP.xs: Likewise.
   207  	* tests/mpf/t-pow_ui.c: Use reference value to check the size.
   208  
   209  	* mini-gmp/mini-gmp.c: Removed a typo (spotted by Paul Zimmermann).
   210  	* doc/gmp.texi (Floating-point): Remove "infinite precision" claim.
   211  
   212  	* gmp-h.in: Update version.
   213  
   214  2015-10-28  Torbjörn Granlund  <torbjorng@google.com>
   215  
   216  	* tests/mpf/t-pow_ui.c: New file.
   217  	* tests/mpf/Makefile.am (check_PROGRAMS): Compile it.
   218  
   219  	* mpf/pow_ui.c: Rewrite for accuracy and performance.
   220  
   221  2015-10-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
   222  
   223  	* configfsf.guess: Updated to version 2015-10-21, for a typo.
   224  
   225  	* tests/cxx/t-ops.cc (check_mpq): Compare also with mpz.
   226  	(check_mpf): Compare also with mpz and mpq.
   227  
   228  2015-10-25  Torbjörn Granlund  <torbjorng@google.com>
   229  
   230  	* configure.ac: Avoid passing ambiguous -march=skylake.
   231  
   232  2015-10-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
   233  
   234  	* Version 6.1.0-rc1 published.
   235  
   236  	* gmp-h.in: Revert version for RC.
   237  
   238  2015-10-20  Torbjörn Granlund  <torbjorng@google.com>
   239  
   240  	* mpn/x86/pentium4/sse2/popcount.asm: Use LEAL.
   241  	* mpn/x86/k7/invert_limb.asm: Likewise.
   242  
   243  2015-10-18  Torbjörn Granlund  <torbjorng@google.com>
   244  
   245  	* mpn/arm64/gmp-mparam.h: New file.
   246  
   247  2015-10-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
   248  
   249  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   250  	* gmp-h.in: Bump version.
   251  
   252  2015-10-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
   253  
   254  	* tests/mpf/t-cmp_si.c: Initialise a variable (only when error arise)
   255  	* mpn/generic/toom43_mul.c: Insert parentheses around & expressions.
   256  	* mpn/generic/toom52_mul.c: Likewise.
   257  	* tests/mpn/t-minvert.c: Remove an unused var.
   258  	* tests/mpz/t-cong_2exp.c: Likewise.
   259  
   260  2015-10-16  Hans Wennborg <hwennborg at google.com>
   261  
   262  	* mpn/generic/div_qr_2.c: Insert parentheses around & expressions.
   263  	* mpn/generic/toom44_mul.c: Likewise.
   264  	* mpn/generic/toom53_mul.c: Likewise.
   265  	* mpn/generic/toom62_mul.c: Likewise.
   266  	* tests/mpn/t-bdiv.c: Simplify conditional printing of whitespace.
   267  	* tests/mpn/t-div.c: Likewise.
   268  
   269  2015-10-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
   270  
   271  	* configfsf.sub: Updated to version 2015-08-20, from gnulib.
   272  	* configfsf.guess: Updated to version 2015-09-14, from gnulib.
   273  
   274  2015-10-14  Torbjörn Granlund  <torbjorng@google.com>
   275  
   276  	* demos/pexpr.c (main): Clear out a variable.
   277  
   278  	* mpn/generic/sqrlo_basecase.c: Move things before addmul_1 to reduce
   279  	register pressure.
   280  
   281  	* .hgignore: Add 'compile' and 'test-driver'.
   282  
   283  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify, add ASSERT.
   284  	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
   285  
   286  	* tune/tuneup.c (tune_mu_bdiv): Start at measured BDIV_DC_ thresholds.
   287  
   288  2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
   289  
   290  	* mpf/clears.c, mpf/inits.c, mpq/clears.c, mpq/inits.c,
   291  	* mpz/clears.c, mpz/inits.c: Keep on supporting empty list.
   292  
   293  2015-10-13  Marc Glisse  <marc.glisse@inria.fr>
   294  
   295  	* gmpxx.h (__GMPP_DEFINE_BINARY_TYPE_FUNCTION): Allow mixed operations.
   296  	(__gmp_cmp_function, __gmp_binary_equal, __gmp_binary_less):
   297  	Handle mixed operations.
   298  	(__gmp_cmp_function): Move before __gmp_binary_equal.
   299  
   300  2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
   301  
   302  	* mpf/pow_ui.c: Increased precision of partial results.
   303  
   304  2015-10-12  Torbjörn Granlund  <torbjorng@google.com>
   305  
   306  	* configure.ac: Reject AVX for NetBSD.
   307  
   308  2015-10-11  Torbjörn Granlund  <torbjorng@google.com>
   309  
   310  	* configure.ac (fat_path): Add skylake.
   311  
   312  2015-10-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
   313  
   314  	* gen-fib.c: Correct the name of the program in error message.
   315  	* gen-fac.c: Likewise.
   316  
   317  	* mpf/get_str.c: Increase precision of base^e computation.
   318  
   319  2015-10-09  Torbjörn Granlund  <torbjorng@google.com>
   320  
   321  	* config.guess: Recognise cabylake and goldmont and more versions of
   322  	skylake and silvermont.
   323  	* acinclude.m4 (X86_64_PATTERN): Add cabylake and goldmont.
   324  	* config.sub: Corresponding changes.
   325  	* configure.ac: Corresponding changes.
   326  	* mpn/x86_64/fat/fat.c: Corresponding changes.
   327  
   328  2015-09-12  Torbjörn Granlund  <torbjorng@google.com>
   329  
   330  	* mpf/clear.c, mpf/clears.c, mpf/inits.c, mpq/clear.c, mpq/clears.c
   331  	* mpq/inits.c, mpz/clear.c, mpz/clears.c, mpz/inits.c:
   332  	Streamline, use macros.
   333  
   334  2015-09-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
   335  
   336  	* mpz/cfdiv_r_2exp.c: Use mpn_neg and MPZ_NEWALLOC.
   337  	* mpz/cfdiv_q_2exp.c: Use MPZ_REALLOC return value.
   338  
   339  2015-09-12  Torbjörn Granlund  <torbjorng@google.com>
   340  
   341  	* tests/mpf/t-cmp_si.c (check_data): Set precision reflecting data.
   342  
   343  2015-09-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
   344  
   345  	* mpf/cmp_z.c: New file implementing mpf_cmp_z.
   346  	* mpf/Makefile.am (libmpf_la_SOURCES): Add it.
   347  	* Makefile.am (MPF_OBJECTS): Add generate object to libs.
   348  	* gmp-h.in: Declare new function.
   349  	* tests/mpf/t-cmp_si.c: Test also the new function.
   350  	* doc/gmp.texi: Document it.
   351  
   352  2015-09-06  Torbjörn Granlund  <torbjorng@google.com>
   353  
   354  	* Wrap remaining limb allocations in __GMP_ALLOCATE_FUNC_LIMBS.
   355  
   356  	* mpn/x86/fat/fat.c (fake_cpuid_table): Add missing commas.
   357  	* mpn/x86_64/fat/fat.c: Likewise.
   358  
   359  	* mpn/x86/fat/fat.c (fake_cpuid_table): Improve struct type.
   360  	* mpn/x86/fat/fat.c: Likewise.
   361  
   362  2015-09-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
   363  
   364  	* tests/mpq/t-cmp_z.c (sizes_test): New function, tests sizes.
   365  
   366  2015-09-03  Torbjörn Granlund  <torbjorng@google.com>
   367  
   368  	* acinclude.m4 (GMP_C_HIDDEN_ALIAS): New.
   369  	* configure.ac (GMP_C_HIDDEN_ALIAS): Invoke.
   370  
   371  2015-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
   372  
   373  	* mpq/cmp.c (mpq_cmp_numden): Cast to avoid over/underflow.
   374  	* tests/mpn/t-toom22.c (MIN_AN): Use defined value.
   375  	* tests/mpz/t-fac_ui.c: Check big factorial modulo a larger prime.
   376  	* mpn/generic/bsqrtinv.c: Use sqrlo+mullo_n instead of powlo(,,3,,).
   377  	* mpq/div.c: Move a branch out of the normal flow.
   378  
   379  2015-08-31  Torbjörn Granlund  <torbjorng@google.com>
   380  
   381  	* mpn/x86/fat/fat.c (fake_cpuid_table): Update similarly to
   382  	corresponding x86_64 code.
   383  
   384  2015-08-31 Marco Bodrato <bodrato@mail.dm.unipi.it>
   385  
   386  	* mpq/cmp.c (mpq_cmp_z): New function to compare mpq with mpz,
   387  	asked by Vincent Delecroix for the SageMath project.
   388  	* gmp-h.in: Declare it.
   389  	* doc/gmp.texi: Document it.
   390  	* tests/mpq/t-cmp_z.c: New file to test mpq_cmp_z (from t-cmp.c).
   391  	* tests/mpq/Makefile.am (check_PROGRAMS): Add t-cmp_z.
   392  
   393  	* mpn/generic/powlo.c: Use mpn_sqrlo.
   394  
   395  2015-08-29  Torbjörn Granlund  <torbjorng@google.com>
   396  
   397  	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add CPU aliases.
   398  
   399  2015-08-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
   400  
   401  	* configure.ac (AH_VERBATIM): Add HAVE_NATIVE_mpn_mullo_basecase.
   402  	* mpn/generic/sqrlo.c (mpn_sqrlo): Use mullo_basecase when faster.
   403  	* mpn/generic/sqrlo_basecase.c: More readable #defines.
   404  
   405  	* tune/tuneup.c (tune_sqrlo): New function to tune sqrlo thresholds.
   406  	(all): Call it, after multiplication and FFT.
   407  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrlo{,_basecase}.c .
   408  	* gmp-impl.h: Add all SQRLO_*_THRESHOLD* defs, for tuning and default.
   409  	* mpn/generic/sqrlo.c: Remove default threshold definitions.
   410  	* mpn/generic/sqrlo_basecase.c: Use SQRLO_DC_THRESHOLD_LIMIT.
   411  	* mpn/minithres/gmp-mparam.h: New SQRLO_*_THRESHOLDs.
   412  
   413  	* tune/tuneup.c (tune_mullo): Set MULLO_MUL_N_THRESHOLD to never
   414  	whenever the FFT threshold does not exist.
   415  
   416  	* mpf/cmp.c: Remove some branches.
   417  
   418  2015-08-25  Torbjörn Granlund  <torbjorng@google.com>
   419  
   420  	* mpn/x86_64/x86_64-defs.m4: Output computed numbers in base-10 instead
   421  	of base-16 to avoid bugs on Solaris, FreeBSD, and old NetBSD.
   422  
   423  2015-08-23  Torbjörn Granlund  <torbjorng@google.com>
   424  
   425  	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add more entries, handle
   426  	Broadwell separately.
   427  
   428  	* configure.ac (fat_path): Add coreibwl.
   429  
   430  2015-08-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
   431  
   432  	* mpn/generic/rootrem.c (logbased_root): New function.
   433  	(mpn_rootrem_internal): Use it to estimate highest 9 bits of the root.
   434  
   435  	* gmp-impl.h (MPQ_PTR_SWAP, MPQ_SRCPTR_SWAP): New macros.
   436  
   437  2015-08-17  Torbjörn Granlund  <torbjorng@google.com>
   438  
   439  	* acinclude.m4 (X86_64_PATTERN): Add skylake.
   440  	* config.guess: Corresponding changes.
   441  	* config.sub: Corresponding changes.
   442  	* configure.ac: Corresponding changes.
   443  	* mpn/x86_64/skylake/gmp-mparam.h: New file.
   444  
   445  2015-08-15  Torbjörn Granlund  <torbjorng@google.com>
   446  
   447  	* mpn/generic/mullo_basecase.c: Provide alternative code, make default.
   448  
   449  2015-08-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
   450  
   451  	* tests/refmpn.c (refmpn_sqrlo): New function.
   452  	* tests/tests.h: Define it.
   453  
   454  	* mpn/generic/sqrlo.c: New file, new function.
   455  	* mpn/generic/sqrlo_basecase.c: New file, new function.
   456  	* gmp-impl.h (mpn_sqrlo, mpn_sqrlo_basecase): Declare them.
   457  	* configure.ac (gmp_mpn_functions): Add new files.
   458  
   459  	* tests/mpn/t-sqrlo.c: New file, new test.
   460  	* tests/mpn/Makefile.am (check_PROGRAMS): Add new test.
   461  	* tests/devel/try.c: Support mpn_sqrlo and mpn_sqrlo_basecase.
   462  
   463  	* tune/common.c (speed_mpn_sqrlo{,_basecase}): New functions.
   464  	* tune/speed.c: Support new functions.
   465  	* tune/speed.h (SPEED_ROUTINE_MPN_MULLO_BASECASE): Update.
   466  	(SPEED_ROUTINE_MPN_SQRLO): New macro.
   467  
   468  	* mpn/generic/rootrem.c: Avoid divisions if not needed.
   469  
   470  	* tests/mpn/t-broot.c: Test also k=1.
   471  	* mpz/aorsmul_i.c: Move branches out of main line.
   472  
   473  2015-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it>
   474  
   475  	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): Support odd sizes.
   476  
   477  2015-07-16  Torbjörn Granlund  <torbjorng@google.com>
   478  
   479  	* tune/speed.c: Remove now redundant MPN_FILL.
   480  
   481  	* configure.ac (hppa-hpux): Never use O3 optimisation.
   482  
   483  2015-07-09  Torbjörn Granlund  <torbjorng@google.com>
   484  
   485  	* mpn/ia64/add_n_sub_n.asm: Make it work for HP-UX.
   486  	* mpn/ia64/addmul_2.asm: Likewise.
   487  	* mpn/ia64/aors_n.asm: Likewise.
   488  	* mpn/ia64/aorsorrlshC_n.asm: Likewise.
   489  	* mpn/ia64/cnd_aors_n.asm: Likewise.
   490  	* mpn/ia64/gcd_1.asm: Likewise.
   491  	* mpn/ia64/lshiftc.asm: Likewise.
   492  	* mpn/ia64/mod_34lsub1.asm: Likewise.
   493  	* mpn/ia64/mul_2.asm: Likewise.
   494  	* mpn/ia64/sec_tabselect.asm: Likewise.
   495  	* mpn/ia64/sqr_diag_addlsh1.asm: Likewise.
   496  
   497  2015-07-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
   498  
   499  	* gmp-impl.h (MPN_FILL): New macro, generalise MPN_ZERO.
   500  
   501  	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): New function not computing remainder.
   502  	(mpn_dc_sqrtrem): Use tdiv_q instead of divrem, use given scratch space.
   503  	(mpn_sqrtrem): Use mpn_dc_sqrt for both even and odd sizes.
   504  
   505  2015-06-24  Torbjörn Granlund  <torbjorng@google.com>
   506  
   507  	* mpn/x86_64/fastsse/com.asm: Disalllow zero size operands.
   508  
   509  	* mpn/x86_64/fastsse/copyi.asm: Suppress looping in basecase code.
   510  
   511  2015-06-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
   512  
   513  	* mpn/generic/sqrtrem.c (mpn_sqrtrem2): Simplify branches.
   514  	(mpn_dc_sqrtrem): Don't compute remainder if not needed.
   515  
   516  2015-06-23  Torbjörn Granlund  <torbjorng@google.com>
   517  
   518  	* gmp-impl.h: Remove K&R stringize support.
   519  	* tests/devel/try.c: Likewise.
   520  	* tests/t-constants.c: Likewise.
   521  	* tests/mpf/t-fits.c: Likewise.
   522  	* tests/mpz/t-fits.c: Likewise.
   523  
   524  	* configure.ac (AC_C_STRINGIZE): Remove.
   525  
   526  2015-06-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
   527  
   528  	* tests/devel/try.c: Support mpn_sqrt (sqrtrem with remainder = NULL).
   529  	* mpn/generic/sqrtrem.c: Reorder branches for single limb operands.
   530  
   531  2015-06-15  Torbjörn Granlund  <torbjorng@google.com>
   532  
   533  	* config.guess: Rewrite code for AVX handling to deal with broken cpuid
   534  	states.
   535  
   536  2015-06-11  Torbjörn Granlund  <torbjorng@google.com>
   537  
   538  	* mpn/x86/k7/gcd_1.asm: Align stack for calls.
   539  	* mpn/x86/p6/gcd_1.asm: Amend last change: align for PIC and non-PIC.
   540  
   541  2015-06-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
   542  
   543  	* mpn/generic/sqrtrem.c: Use sqrtrem1 for single limb operands.
   544  
   545  	* tests/mpz/t-root.c: Check also mpz_root return value.
   546  	* mpn/generic/rootrem.c: Shorten first and last loop.
   547  
   548  	* mpn/generic/toom2_sqr.c: Add some ASSERTs.
   549  	* mpn/generic/toom22_mul.c: Likewise.
   550  	* tests/mpn/t-toom22.c: stop testing some unsafe (unused) corner cases.
   551  
   552  2015-06-08  Torbjörn Granlund  <torbjorng@google.com>
   553  
   554  	* mpn/x86/p6/gcd_1.asm: Align stack for calls.
   555  
   556  2015-06-06  Torbjörn Granlund  <torbjorng@google.com>
   557  
   558  	* config.sub: Recognise any arm*neon CPU.
   559  	* configure.ac (powerpc): Add p8 directory for power8 and later.
   560  	* mpn/powerpc64/mode64/p8/invert_limb.asm: New file.
   561  
   562  2015-06-01  Torbjörn Granlund  <torbjorng@google.com>
   563  
   564  	* tune/speed.c (routine): Measure "mpn_sqrt" and "mpn_root", which are
   565  	really the corresponding "rem" functions with NULL remainder argument.
   566  
   567  	* tune/speed.h (SPEED_ROUTINE_MPN_SQRTROOT_CALL): New.
   568  	(SPEED_ROUTINE_MPN_SQRTREM, SPEED_ROUTINE_MPN_ROOTREM):	Remove.
   569  
   570  	* tune/common.c (speed_mpn_sqrt, speed_mpn_root): New functions.
   571  	(speed_mpn_sqrtrem): Use SPEED_ROUTINE_MPN_SQRTROOT_CALL
   572  	(speed_mpn_rootrem): Likewise.
   573  
   574  2015-05-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
   575  
   576  	* mpf/cmp_ui.c: Use macros, remove branches, correct nails.
   577  	* mpf/cmp_si.c: Likewise.
   578  	* mpf/int_p.c: Use a simpler loop to ignore zero limbs.
   579  
   580  	* mpf/sqrt_ui.c: Special case for sqrt(1).
   581  	* tests/mpf/t-sqrt_ui.c: Test special cases.
   582  
   583  	* gmp-h.in: Declare (and inline) mpn_zero_p.
   584  	* gmp-impl.h: Remove mpn_zero_p.
   585  	* mpn/generic/zero_p: New file to include the function in the library.
   586  	* configure.ac (gmp_mpn_functions): Add it.
   587  	* doc/gmp.texi: Document it.
   588  
   589  	* mpz/combit.c: Call mpn_zero_p only if size is not zero.
   590  	* mpz/scan1.c: Likewise.
   591  	* tests/mpn/t-brootinv.c: Likewise.
   592  	* tests/mpn/t-div.c: Likewise.
   593  	* tests/mpn/t-minvert.c: Likewise.
   594  
   595  	* mini-gmp/mini-gmp.h: Declare mpn_zero_p.
   596  	* mini-gmp/mini-gmp.c: Define mpn_zero_p as a function, not a macro.
   597  
   598  2015-05-28  Niels Möller  <nisse@lysator.liu.se>
   599  
   600  	* doc/gmp.texi (Low-level Functions): Document mpn_divexact_1 and
   601  	mpn_cnd_swap (the latter was forgotten for the 2015-02-08 change).
   602  
   603  2015-05-28  Linus Nordberg  <linus@nordberg.se>
   604  
   605  	* configure.ac: Remove double quotes in help strings, make some
   606  	clarifications.
   607  
   608  2015-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
   609  
   610  	* mpq/div.c: Reduce memory use.
   611  	* tests/mpq/reuse.c: Test also mpq_FUNCTION (x,x,x).
   612  	* mpz/swap.c: Use _SWAP macros.
   613  
   614  2015-05-18  Torbjörn Granlund  <torbjorng@google.com>
   615  
   616  	* configure.ac (arm): Let compiler decide about arm vs thumb encoding.
   617  
   618  2015-05-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
   619  
   620  	* gmp-h.in (mpn_neg): Niels' code using mpn_neg.
   621  	* gmp-h.in (mpn_com): Unconditionally declare prototype.
   622  
   623  2015-05-17  Torbjörn Granlund  <torbjorng@google.com>
   624  
   625  	* mpn/arm/v6/sqr_basecase.asm: Rewrite for speed.
   626  
   627  2015-05-16  Torbjörn Granlund  <torbjorng@google.com>
   628  
   629  	* mpn/arm/v6/addmul_2.asm: Rewrite for speed and size.
   630  
   631  2015-05-15  Torbjörn Granlund  <torbjorng@google.com>
   632  
   633  	* mpn/arm/v7a/cora7/gmp-mparam.h: New file.
   634  	* mpn/arm/v7a/cora8/gmp-mparam.h: New file.
   635  	* configure.ac (arm): Point to new directories.
   636  
   637  2015-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
   638  
   639  	* mpn/generic/invertappr.c: Reduce memory usage.
   640  	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.
   641  	* tune/tuneup.c (tune_invertappr, tune_invert): Update min_size.
   642  
   643  	* mpn/generic/mu_div_qr.c: Pass scratch memory to mpn_invertappr.
   644  	* mpn/generic/mu_divappr_q.c: Likewise.
   645  
   646  2015-05-12  Felix Janda  <felix.janda@posteo.de>
   647  
   648  	* mpn/powerpc32/elf.m4 (LEA): Adopt to new ABI.
   649  
   650  2015-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
   651  
   652  	* mpn/generic/invertappr.c: Reduce memory usage.
   653  	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.
   654  
   655  2015-05-01  Torbjörn Granlund  <torbjorng@google.com>
   656  
   657  	* tune/tuneup.c (all): Make GCD tuning last since it is not robust.
   658  
   659  2015-04-27  Torbjörn Granlund  <torbjorng@google.com>
   660  
   661  	* mpn/x86_64/coreibwl/gmp-mparam.h: New file.
   662  
   663  2015-04-26  Torbjörn Granlund  <torbjorng@google.com>
   664  
   665  	* mpn/x86_64/coreibwl/mul_basecase.asm: New file.
   666  	* mpn/x86_64/coreibwl/sqr_basecase.asm: New file.
   667  
   668  2015-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
   669  
   670  	* tune/common.c (speed_mpn_neg, speed_mpz_2fac_ui): New functions.
   671  	(speed_mpn_add_1, speed_mpn_add_1_inplace): New functions.
   672  	(speed_mpn_sub_1, speed_mpn_sub_1_inplace): New functions.
   673  	* tune/speed.h: Declare them all.
   674          * tune/speed.c (routine): Added mpn_neg, mpn_add_1, mpn_sub_1,
   675  	mpn_add_1_inplace, mpn_sub_1_inplace, and mpz_2fac_ui.
   676  
   677  2015-04-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
   678  
   679  	* mpn/generic/invert.c: Split add in the correction test.
   680  	* mpn/generic/invertappr.c: Cleanup of loops and branches.
   681  
   682  	* mpn/generic/hgcd_reduce.c: Use TMP_ALLOC_LIMBS_3.
   683  	* mpn/generic/powm.c: Use TMP_ALLOC_LIMBS_2.
   684  	* mpn/generic/rootrem.c: Likewise.
   685  	* mpn/generic/remove.c: Remove redundant #ifdef.
   686  	* mpn/generic/perfpow.c: Likewise.
   687  
   688  2015-04-21  Torbjörn Granlund  <torbjorng@google.com>
   689  
   690  	* printf/sprintffuns.c (gmp_sprintf_final): Remove extra parameters.
   691  
   692  	* mpn/arm/v6/popham.asm: Add MULFUNC_PROLOGUE.
   693  	* mpn/powerpc64/mode64/rsh1aors_n.asm: Likewise.
   694  	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: Likewise.
   695  
   696  2015-04-19  Torbjörn Granlund  <torbjorng@google.com>
   697  
   698  	* mpn/x86_64/x86_64-defs.m4 (oplist): Fix typo.
   699  	(mulx): Simplify.
   700  	(adcx, adox): New defines, using helper function adx.
   701  	* mpn/x86_64/coreibwl/mul_1.asm: New file.
   702  	* mpn/x86_64/coreibwl/addmul_1.asm: New file.
   703  	* configure.ac (x86_64): Put coreibwl in appropriate code path.
   704  
   705  	* configure.ac (x86_64): Pass more exact Intel CPU options.
   706  
   707  2015-04-13  Torbjörn Granlund  <torbjorng@google.com>
   708  
   709  	* longlong.h (arm): Rewrite.  Support thumb2; use gcc builtins for
   710  	count_leading_zeros, use accurate code selection critera.
   711  
   712  2015-04-13  Marc Glisse  <marc.glisse@inria.fr>
   713  
   714  	* configure.ac (x86_64): Extend noavx to ABI=64.
   715  
   716  2015-04-10  Torbjörn Granlund  <torbjorng@google.com>
   717  
   718  	* mpn/alpha/ev6/mod_1_4.asm: Use LDGP.
   719  
   720  2015-04-01  Torbjörn Granlund  <torbjorng@google.com>
   721  
   722  	* configure.ac (sparc): Don't use use -xO4, it miscompiles by design.
   723  
   724  2015-03-24  Torbjörn Granlund  <torbjorng@google.com>
   725  
   726  	* mpn/generic/mul_fft.c (mpn_fft_best_k): Don't make pointers `static'
   727  	just because they point to static (i.e., file-local) data.
   728  
   729  2015-03-15  Torbjörn Granlund  <torbjorng@google.com>
   730  
   731  	* acinclude.m4 (X86_64_PATTERN): Add CPU code names.
   732  
   733  	* config.guess: Add more CPUs, use CPU code names.
   734  	* config.sub: Corresponding changes.
   735  	* configure.ac: Corresponding changes.
   736  
   737  2015-02-21  Niels Möller  <nisse@lysator.liu.se>
   738  
   739  	* gmp-h.in (mpn_divexact_1): New public declaration.
   740  	* gmp-impl.h: Moved from here.
   741  
   742  2015-02-08  Niels Möller  <nisse@lysator.liu.se>
   743  
   744  	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_swap.
   745  
   746  	* mpn/generic/cnd_swap.c (mpn_cnd_swap): New file, moved function
   747  	here. Also changed cnd argument type from int to mp_limb_t.
   748  	* mpn/generic/sec_invert.c (mpn_cnd_swap): Old location.
   749  	* configure.ac: Added cnd_swap.
   750  	* gmp-h.in (mpn_cnd_swap): Added prototype.
   751  
   752  2015-01-19  Torbjörn Granlund  <torbjorng@google.com>
   753  
   754  	* configure.ac (arm): Provide architecture specific configs in addition
   755  	to implementation specific configs.
   756  
   757  	* config.guess (arm): Use configfsf.guess's guess as default before
   758  	conditionally appending "neon".
   759  
   760  2015-01-08  Torbjörn Granlund  <torbjorng@google.com>
   761  
   762  	* config.guess: Match POWER8 for AIX.
   763  
   764  	* longlong.h: Add many casts inside assembly input operands, this
   765  	insures proper zero extension.
   766  
   767  2014-12-27  Marc Glisse  <marc.glisse@inria.fr>
   768  
   769  	* gmpxx.h (__gmp_unary_expr): Use __gmp_resolve_ref.
   770  	(__gmp_expr): New specialization for unary expressions with
   771  	a builtin argument.
   772  
   773  2014-12-26  Marc Glisse  <marc.glisse@inria.fr>
   774  
   775  	* gmp-impl.h (tmp_debug_entry_t): Change block to type void*.
   776  
   777  2014-12-22  Torbjörn Granlund  <torbjorng@google.com>
   778  
   779  	* longlong.h (mips64, mips32): Work around one clang bug.
   780  
   781  2014-12-18  Torbjörn Granlund  <torbjorng@google.com>
   782  
   783  	* longlong.h (umul_ppmm): Use input temps in more places.
   784  
   785  2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
   786  
   787  	* tests/cxx/clocale.c (localeconv, nl_langinfo): Match glibc's
   788  	prototype in C++.
   789  
   790  2014-12-09  Torbjörn Granlund  <torbjorng@google.com>
   791  
   792  	* configure.ac (powerpc): Remove hardwired -mpowerpc, causes clang
   793  	problems.  Optionally pass -m32.
   794  
   795  2014-12-08  Marc Glisse  <marc.glisse@inria.fr>
   796  
   797  	* config.guess (ultrasparc*-*-*): Update for T4 and T5.
   798  	* config.sub (ultrasparc*-*-*): Update for T5.
   799  	* configure.ac (ultrasparc*-*-*): Update for T5.
   800  
   801  	* longlong.h (sparc64): Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
   802  	with VIS3.
   803  
   804  	* tests/misc/t-locale.c (localeconv, nl_langinfo): Match glibc's
   805  	prototype in C++.
   806  	* tests/mpf/t-get_si.c (check_limbdata): Avoid narrowing conversion
   807  	from -1 to unsigned inside {}.
   808  
   809  2014-12-02  Torbjörn Granlund  <torbjorng@google.com>
   810  
   811  	* config.guess (arm*-*-*): Redirect stderr.
   812  
   813  2014-11-26  Torbjörn Granlund  <torbjorng@google.com>
   814  
   815  	* configure.ac (arm*-*-*): Optionally pass redundant fpu mode options
   816  	in order to placate clang.
   817  
   818  	* mpn/arm/neon/lshiftc.asm: Avoid insn form missing from clang.
   819  
   820  2014-11-24  Torbjörn Granlund  <torbjorng@google.com>
   821  
   822  	* configure.ac (mips*-*-*): Provide ABI synonyms (for clang pretending
   823  	to be gcc).
   824  
   825  2014-11-18  Torbjörn Granlund  <torbjorng@google.com>
   826  
   827  	From Hannes Mehnert:
   828  	* config.guess (arm*-*-*): Base guesses on first matching /proc/cpuinfo
   829  	line.
   830  
   831  2014-11-17  Torbjörn Granlund  <torbjorng@google.com>
   832  
   833  	* longlong.h (__longlong_h_C): New macro.
   834  	(mpn_umul_ppmm, etc): Use it for C++ support.
   835  
   836  2014-11-15  Torbjörn Granlund  <torbjorng@google.com>
   837  
   838  	* tests/mpz/reuse.c: Make function vectors 'static'.
   839  
   840  	* tests/mpn/logic.c (check_one): Make string variable 'const'.
   841  
   842  	* tests/mpz/t-perfpow.c (tests): Make 'static'.
   843  
   844  	* tune/tuneup.c (fftmes): Remove an unused variable.
   845  
   846  2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
   847  
   848  	* tests/amd64check.c (calling_conventions_fenv): Mark as extern "C".
   849  	* tests/x86check.c (calling_conventions_fenv): Likewise.
   850  
   851  2014-11-13  Hans Wennborg  <hwennborg@google.com>
   852  
   853  	* mpn/generic/toom_interpolate_8pts.c: Fix operator precedence in
   854  	ASSERT.
   855  
   856  2014-11-13  Torbjörn Granlund  <torbjorng@google.com>
   857  
   858  	* tune/speed.h: Add casts for C++ compatibility.
   859  	(speed_cyclecounter): Mark as extern "C".
   860  	(mpn_mod_1_1p_1, mpn_mod_1_1p_2): Correct prototype.
   861  
   862  	* tune/tune-gcd-p.c: Add casts for C++ compatibility.
   863  
   864  	* tune/tuneup.c: Add casts for C++ compatibility.
   865  	(mpn_divrem_1_tune, mpn_mod_1_tune): Mark as extern "C".
   866  	(INSERT_FFTTAB): Produce sentinels differently to silence compiler.
   867  
   868  2014-11-12  Torbjörn Granlund  <torbjorng@google.com>
   869  
   870  	* gen-psqr.c: Add casts for C++ compatibility.
   871  
   872  	* tests/misc/t-scanf.c: Include config.h early for HAVE_xxx.
   873  
   874  2014-11-08  Torbjörn Granlund  <torbjorng@google.com>
   875  
   876  	* mpn/x86/x86-defs.m4 (LEA, LEAL): Make sure to put eip stub code in
   877  	text segment.
   878  	* mpn/x86/darwin.m4: Likewise.
   879  
   880  	* tune/speed.h (i386 speed_cyclecounter): Remove inline asm code, rely
   881  	on external version.
   882  
   883  2014-11-06  Torbjörn Granlund  <torbjorng@google.com>
   884  
   885  	* config.guess: Ignore appended letters such E in POWER8E.
   886  	* configure.ac: Supply cflags for power8, power9.
   887  
   888  2014-11-03  Torbjörn Granlund  <torbjorng@google.com>
   889  
   890  	* mpn/powerpc32/addmul_1.asm: Avoid negative stack pointer references.
   891  	* mpn/powerpc32/lshift.asm: Likewise.
   892  	* mpn/powerpc32/lshiftc.asm: Likewise.
   893  	* mpn/powerpc32/p3-p7/aors_n.asm: Likewise.
   894  	* mpn/powerpc32/rshift.asm: Likewise.
   895  	* mpn/powerpc32/sec_tabselect.asm: Likewise.
   896  	* mpn/powerpc32/submul_1.asm: Likewise.
   897  	* mpn/powerpc32/vmx/mod_34lsub1.asm: Likewise.
   898  
   899  2014-10-13  Torbjörn Granlund  <torbjorng@google.com>
   900  
   901  	* acinclude.m4 (freebsd hacked gcc): Test for crash-prone FreeBSD gcc.
   902  
   903  2014-10-03  Peter Breitenlohner <peb@mppmu.mpg.de>
   904  
   905  	* mpn/generic/sec_tabselect.c: Adjust type to silence compiler.
   906  
   907  2014-10-01  Torbjörn Granlund  <torbjorng@google.com>
   908  
   909  	* All Makefile.am: INCLUDES => AM_CPPFLAGS.
   910  
   911  	* configure.ac (arm64): Set gcc_cflags_maybe to enable Neon (for clang
   912  	pretending to be gcc).
   913  
   914  2014-09-24  Marc Glisse  <marc.glisse@inria.fr>
   915  
   916  	* longlong.h (arm64 count_trailing_zeros, count_leading_zeros): Use
   917  	gcc's builtins.
   918  	(arm64 umul_ppmm): Use macro arguments only once.
   919  
   920  2014-09-22  Marc Glisse  <marc.glisse@inria.fr>
   921  
   922  	* mpn/arm64/lshift.asm: Avoid negative immediates.
   923  	* mpn/arm64/rshift.asm: Likewise.
   924  
   925  2014-09-13  Marc Glisse  <marc.glisse@inria.fr>
   926  
   927  	* mpn/generic/div_qr_1n_pi1.c: Honor NO_ASM.
   928  	* mpn/generic/div_qr_1n_pi2.c: Likewise.
   929  	* mpn/generic/div_qr_1u_pi2.c: Likewise.
   930  	* mpn/generic/div_qr_2.c: Likewise.
   931  	* mpn/generic/mod_1_1.c: Likewise.
   932  	* mpn/generic/redc_2.c: Likewise.
   933  
   934  2014-08-31  Torbjörn Granlund  <tege@gmplib.org>
   935  
   936  	* mpn/arm64/lshift.asm: New file.
   937  	* mpn/arm64/rshift.asm: New file.
   938  
   939  2014-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
   940  
   941  	* gmp-impl.h (TMP_ALLOC_LIMBS_3): New macro to allocate 3 blocks.
   942  	(mpn_remove): Update declaration with mp_srcptr arguments.
   943  	* mpn/generic/remove.c: Use TMP_ALLOC_LIMBS_3. mp_srcptr for args.
   944  
   945  	* mpn/generic/perfpow.c (pow_equals): TMP_DECL only where needed.
   946  	(perfpow): Use TMP_ALLOC_LIMBS_3.
   947  	(mpn_perfect_power_p): Skip useless allocations. Use mpn_remove.
   948  	* tests/mpz/t-perfpow.c (check_random): Check more perfect powers.
   949  
   950  	* mpn/generic/divis.c: Use TMP_ALLOC_LIMBS_2. Share a count.
   951  
   952  2014-08-30  Torbjörn Granlund  <tege@gmplib.org>
   953  
   954  	* mpn/arm64/mod_34lsub1.asm: New file.
   955  
   956  2014-08-27  Niels Möller  <nisse@lysator.liu.se>
   957  
   958  	* mini-gmp/mini-gmp.c (mpz_abs_sub_bit): Do full normalization,
   959  	needed if mpz_clrbit clears the most significant one bit.
   960  
   961  2014-08-23  Torbjörn Granlund  <tege@gmplib.org>
   962  
   963  	* mpn/arm64/bdiv_dbm1c.asm: New file.
   964  
   965  	* mpn/arm64/com.asm: New file.
   966  
   967  	* mpn/arm64/sec_tabselect.asm: New file.
   968  
   969  	* mpn/arm64/popcount.asm: New file.
   970  	* mpn/arm64/hamdist.asm: New file.
   971  
   972  	* configure.ac: Put generic arm/neon earlier in path.
   973  
   974  2014-08-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
   975  
   976  	* mpq/canonicalize.c: Earlier check for negative denominator.
   977  	* mpq/set_d.c: Stricter allocation.
   978  
   979  2014-08-03  Torbjörn Granlund  <tege@gmplib.org>
   980  
   981  	* mpn/x86_64/bobcat/mul_1.asm: Fix typo in offset affecting DOS64.
   982  
   983  2014-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it>
   984  
   985  	* mpn/generic/fib2_ui.c: remove #if HAVE_NATIVE_mpn_rsblsh_n.
   986  	* mpz/fib2_ui.c: Use tabulated values, when available.
   987  	* mpz/fib_ui.c: #if HAVE_NATIVE_mpn_addlsh1_n, use it.
   988  
   989  	* mpq/cmp_ui.c: Remove a branch.
   990  	* mpq/cmp_si.c: Likewise.
   991  
   992  	* mpn/generic/toom_interpolate_7pts.c: Replace an in-place add
   993  	with add_n + INCR_U.
   994  
   995  	* tests/mpf/t-fits.c: use ui_sub instead of sub_ui+neg.
   996  
   997  	* mini-gmp/mini-gmp.c: Remove some useless variables.
   998  
   999  2014-07-27  Torbjörn Granlund  <tege@gmplib.org>
  1000  
  1001  	* mpn/x86/k7/gcd_1.asm: Use LEAL.
  1002  
  1003  	* mpn/x86/x86-defs.m4 (LEAL): New.
  1004  	(LEA): Append to `load_eip' instead of ASM_END, like darwin.m4.
  1005  	* mpn/x86/darwin.m4 (LEAL): New.
  1006  
  1007  2014-07-26  Torbjörn Granlund  <tege@gmplib.org>
  1008  
  1009  	* mpn/x86/pentium/mode1o.asm: Add Darwin PIC code.
  1010  	* mpn/x86/pentium/bdiv_q_1.asm: Likewise.
  1011  	* mpn/x86/pentium/dive_1.asm: Likewise.
  1012  	* mpn/x86/pentium/popcount.asm: Likewise.
  1013  	* mpn/x86/pentium/hamdist.asm: Likewise.
  1014  	* mpn/x86/k6/gcd_1.asm: Likewise.
  1015  
  1016  	* mpn/x86: Append ASM_END to many files.
  1017  	* tests/x86call.asm: Append ASM_END.
  1018  
  1019  	* mpn/x86/fat/fat_entry.asm (FAT_ENTRY, FAT_INIT):
  1020  	Support Darwin.
  1021  
  1022  	* mpn/x86/darwin.m4 (ASM_END): New, body from EPILOGUE_cpu.
  1023  	(EPILOGUE_cpu): Remove.
  1024  
  1025  	* mpn/x86/x86-defs.m4 (LEA): Put `mov_eip_' thunks in ASM_END instead
  1026  	of EPILOGUE_cpu.
  1027  
  1028  2014-07-05  Niels Möller  <nisse@lysator.liu.se>
  1029  
  1030  	* doc/gmp.texi (Low-level Functions): Document that scratch need
  1031  	for mpn_sec_add_1 and mpn_sec_sub_1 are at most n limbs.
  1032  	(Low-level Functions): Document allowed overlap for mpn_addmul_1
  1033  	and mpn_submul_1.
  1034  
  1035  2014-07-02  Torbjörn Granlund  <tege@gmplib.org>
  1036  
  1037  	* mpn/x86_64/x86_64-defs.m4: Fix quoting.
  1038  
  1039  	* mpn/x86_64/atom/redc_1.asm: Enforce proper stack allocation.
  1040  	* mpn/x86_64/bobcat/redc_1.asm: Likewise.
  1041  	* mpn/x86_64/core2/divrem_1.asm: Likewise.
  1042  	* mpn/x86_64/core2/gcd_1.asm: Likewise.
  1043  	* mpn/x86_64/core2/redc_1.asm: Likewise.
  1044  	* mpn/x86_64/coreihwl/redc_1.asm: Likewise.
  1045  	* mpn/x86_64/coreinhm/redc_1.asm: Likewise.
  1046  	* mpn/x86_64/coreisbr/redc_1.asm: Likewise.
  1047  	* mpn/x86_64/divrem_1.asm: Likewise.
  1048  	* mpn/x86_64/divrem_2.asm: Likewise.
  1049  	* mpn/x86_64/gcd_1.asm: Likewise.
  1050  	* mpn/x86_64/mod_1_1.asm: Likewise.
  1051  	* mpn/x86_64/mod_1_2.asm: Likewise.
  1052  	* mpn/x86_64/mod_1_4.asm: Likewise.
  1053  
  1054  2014-06-30  Torbjörn Granlund  <tege@gmplib.org>
  1055  
  1056  	* config.sub: Generalise x86 patterns.
  1057  
  1058  2014-06-17  Marc Glisse  <marc.glisse@inria.fr>
  1059  
  1060  	* gmpxx.h (__gmp_gcd_function, __gmp_lcm_function): New classes.
  1061  	(gcd, lcm): New functions.
  1062  	* doc/gmp.texi (C++ Interface Integers): Document them.
  1063  	* tests/cxx/t-ops2.cc (checkz): Test them.
  1064  
  1065  2014-06-16  Torbjörn Granlund  <tege@gmplib.org>
  1066  
  1067  	* mpf/mul.c: Postpone TMP_MARK.
  1068  
  1069  	* mpn/generic/perfpow.c (perfpow): Combine TMP_ALLOCs.
  1070  
  1071  2014-06-15  Torbjörn Granlund  <tege@gmplib.org>
  1072  
  1073  	* tests/refmpn.c (refmpn_mul): Rewrite to avoid O(n) recursion depth.
  1074  
  1075  2014-06-09  Torbjörn Granlund  <tege@gmplib.org>
  1076  
  1077  	* mpn/generic/mullo_n.c: Remove default THRESHOLDs.
  1078  	* gmp-impl.h: Put MULLO THRESHOLDs here.  Improve various THRESHOLD
  1079  	defaults.
  1080  
  1081  2014-06-08  Torbjörn Granlund  <tege@gmplib.org>
  1082  
  1083  	* gmp-impl.h (TMP_ALLOC): Decrease limit to about half.
  1084  
  1085  	* mpn/generic/toom53_mul.c: Replace many TMP_SALLOC invocations
  1086  	by a single TMP_ALLOC.
  1087  	* mpn/generic/toom42_mul.c: Likewise.
  1088  
  1089  	* mpn/generic/sec_sqr.c: Don't unconditionally call mpn_sqr_basecase
  1090  	since it fails for non-cryptographic sizes for some obsolete CPUs.
  1091  
  1092  	* mpn/generic/sec_powm.c: Remove own squaring code, instead use
  1093  	mpn_mul_basecase.
  1094  
  1095  	* tests/mpn/logic.c (main): Don't use TMP_SALLOC_LIMBS.
  1096  
  1097  	* mpn/generic/dcpi1_div_q.c: Avoid TMP_SALLOC_LIMBS.
  1098  	* mpn/generic/dcpi1_div_qr.c: Likewise.
  1099  
  1100  2014-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1101  
  1102  	* mpn/generic/mul.c: Tighter allocation in Toom{2,3}X branches.
  1103  
  1104  2014-06-06  Torbjörn Granlund  <tege@gmplib.org>
  1105  
  1106  	* mpn/generic/mul.c: Swap some TMP_SALLOC_LIMBS for TMP_ALLOC_LIMBS
  1107  	and some TMP_ALLOC_LIMBS for TMP_SALLOC_LIMBS.
  1108  
  1109  2014-05-31 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1110  
  1111  	* mpf/ui_sub.c: Remove buggy code, use a wrapper to mpf_sub.
  1112  	* tests/mpf/t-sub.c: More corner cases and strict checking.
  1113  	* mpf/sub.c: Use more mpn_ primitives and macros.
  1114  
  1115  	* tests/mpf/t-int_p.c: Test numbers with both integer and
  1116  	fractionary parts.
  1117  
  1118  	* mpf/int_p.c: Delay zero branch and use mpn_zero_p.
  1119  	* mpf/fits_s.h: No special case for SIZ == 0.
  1120  	* mpf/fits_u.h: Likewise.
  1121  
  1122  2014-05-29  Marc Glisse  <marc.glisse@inria.fr>
  1123  
  1124  	* gmp-h.in: Include <limits.h>.
  1125  	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): Remove.
  1126  	* gmp-impl.h (ULONG_MAX, UINT_MAX, USHRT_MAX, LONG_MAX, INT_MAX,
  1127  	SHRT_MAX): Remove unnecessary redefinition.
  1128  	* tests/t-gmpmax.c: Remove file.
  1129  	* tests/Makefile.am: Remove t-gmpmax.
  1130  
  1131  2014-05-22 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1132  
  1133  	* tests/mpf/t-sub.c (check_data): Test also ui_sub and sub_ui.
  1134  
  1135  2014-05-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1136  
  1137  	* gen-fac.c: +1 in the init2 argument before setbit.
  1138  	* gen-fib.c: Likewise. (Thanks Niels)
  1139  	* mini-gmp/mini-gmp.c: Likewise.
  1140  	* rand/randmts.c: Likewise.
  1141  
  1142  	* mpn/generic/invert.c: Remove unused TMP_MARK.
  1143  	* mpn/generic/invertappr.c: Avoid a branch.
  1144  	* mpz/millerrabin.c (millerrabin): Consider the rare case n is a power.
  1145  
  1146  2014-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1147  
  1148  	* mini-gmp/mini-gmp.c: Micro-optimisations.
  1149  
  1150  	* gen-fib.c: Use mpz_setbit.
  1151  	* gen-psqr.c: Skip even numbers when looking for primes.
  1152  
  1153  	* mpn/generic/invert.c: Avoid a branch.
  1154  	* mpn/generic/toom2_sqr.c: Avoid a few branches in the odd case.
  1155  	* mpn/generic/toom22_mul.c: Likewise.
  1156  
  1157  2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
  1158  
  1159  	* gmpxx.h (std::common_type): Remove partial specialization for two
  1160  	identical expressions. New partial specialization for a single type.
  1161  	* tests/cxx/t-cxx11.cc: Test it.
  1162  
  1163  2014-04-14  Niels Möller  <nisse@lysator.liu.se>
  1164  
  1165  	* doc/gmp.texi (mpz_invert): Clarify behavior in the zero ring.
  1166  
  1167  2014-04-04  Marc Glisse  <marc.glisse@inria.fr>
  1168  
  1169  	* longlong.h (i386): Add comment about "cc" clobber.
  1170  
  1171  2014-04-04  Torbjorn Granlund  <tege@gmplib.org>
  1172  
  1173  	* acinclude.m4 (X86_64_PATTERN): Generalise patterns to allow "noavx"
  1174  	suffix.
  1175  
  1176  	* mpn/generic/div_qr_1n_pi1.c: Conditionalise ARM asm on !__thumb__.
  1177  
  1178  2014-04-03  Marc Glisse  <marc.glisse@inria.fr>
  1179  
  1180  	* mpn/arm64/mul_1.asm, mpn/arm64/gcd_1.asm: Use official b.cond syntax.
  1181  	* mpn/arm64/invert_limb.asm, mpn/arm64/aorsmul_1.asm: Prefix
  1182  	immediates with #.
  1183  
  1184  2014-04-03  Torbjorn Granlund  <tege@gmplib.org>
  1185  
  1186  	* config.guess: Append "noavx" for CPUs which have AVX but where the
  1187  	kernel does not support it.
  1188  	* configure.ac: Accept "noavx" cpu name suffixes.  Conditionally pass
  1189  	-mno-avx.
  1190  
  1191  2014-04-02  Torbjorn Granlund  <tege@gmplib.org>
  1192  
  1193  	* mpn/x86_64/k8/redc_1.asm: Workaround for Darwin assembler quirk.
  1194  
  1195  2014-03-28  Torbjorn Granlund  <tege@gmplib.org>
  1196  
  1197  	* mpn/generic/mod_1_1.c: Conditionalise ARM asm on !__thumb__.
  1198  
  1199  2014-03-31  Marc Glisse  <marc.glisse@inria.fr>
  1200  
  1201  	* mpn/arm/dive_1.asm, mpn/arm/invert_limb.asm: Use RODATA.
  1202  	* acinclude.m4 ([long long reliability tests]): Declare functions.
  1203  	(GMP_PROG_CC_FOR_BUILD_WORKS, GMP_PROG_EXEEXT_FOR_BUILD,
  1204  	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): Replace exit(0) with
  1205  	return 0, no declaration needed.
  1206  	(GMP_CHECK_LIBM_FOR_BUILD): Include <math.h> to declare log.
  1207  
  1208  2014-03-30  Marc Glisse  <marc.glisse@inria.fr>
  1209  
  1210  	* README: Remove mention to Berkeley MP compatibility.
  1211  
  1212  2014-03-26  Torbjorn Granlund  <tege@gmplib.org>
  1213  
  1214  	* mpn/powerpc64/mode64/gcd_1.asm: Provide default for
  1215  	BMOD_1_TO_MOD_1_THRESHOLD.
  1216  
  1217  2014-03-24  Torbjorn Granlund  <tege@gmplib.org>
  1218  
  1219  	* Version 6.0.0 released.
  1220  
  1221  	* mpn: Update countless gmp-mparam.h files.
  1222  
  1223  2014-03-22  Torbjorn Granlund  <tege@gmplib.org>
  1224  
  1225  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
  1226  	* gmp-h.in: Bump version.
  1227  
  1228  2014-03-17  Torbjorn Granlund  <tege@gmplib.org>
  1229  
  1230  	* configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000.
  1231  	* mpn/clipper: Remove directory and all its files.
  1232  	* mpn/i960: Likewise.
  1233  	* mpn/ns32k: Likewise.
  1234  	* mpn/pyr: Likewise.
  1235  	* mpn/a29k: Likewise.
  1236  	* mpn/z8000: Likewise.
  1237  	* mpn/Makefile.am (TARG_DIST): Purge removed directories.
  1238  	* doc/gmp.texi: Remove special mentions of removed architectures.
  1239  
  1240  2014-03-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1241  
  1242  	* mini-gmp/mini-gmp.c (mpz_probab_prime_p): Micro-optimisation.
  1243  
  1244  2014-03-12  Torbjorn Granlund  <tege@gmplib.org>
  1245  
  1246  	* mpn/x86/bd2/gmp-mparam.h: New file.
  1247  	* mpn/x86_64/bd2/gmp-mparam.h: New file.
  1248  
  1249  2014-03-06  Niels Möller  <nisse@lysator.liu.se>
  1250  
  1251  	* tests/mpz/t-pprime_p.c (check_composites): New function.
  1252  	(check_primes): New function.
  1253  	(main): Call them. Also use TESTS_REPS.
  1254  
  1255  	* mini-gmp/mini-gmp.c (gmp_millerrabin): New internal function.
  1256  	(mpz_probab_prime_p): New function.
  1257  	* mini-gmp/mini-gmp.h (mpz_probab_prime_p): Declare it.
  1258  	* mini-gmp/tests/t-pprime_p.c: New test program.
  1259  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p.
  1260  
  1261  2014-03-03  Niels Möller  <nisse@lysator.liu.se>
  1262  
  1263  	* mini-gmp/mini-gmp.c (mpz_congruent_p): New function.
  1264  	* mini-gmp/mini-gmp.h: Declare it.
  1265  	* mini-gmp/tests/t-cong.c: New file, based on tests/mpz/t-cong.c.
  1266  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cong.
  1267  
  1268  	* mini-gmp/tests/testutils.c (dump): New function. Deleted static
  1269  	functions in other files.
  1270  	(mpz_set_str_or_abort): Moved function here, from...
  1271  	* mini-gmp/tests/t-cmp_d.c: ... old location.
  1272  
  1273  	* mini-gmp/tests/t-reuse.c (dump3): Renamed, from ...
  1274  	(dump): ...old name.
  1275  
  1276  2014-03-01  Niels Möller  <nisse@lysator.liu.se>
  1277  
  1278  	* mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and
  1279  	asserts.
  1280  
  1281  2014-02-28  Torbjorn Granlund  <tege@gmplib.org>
  1282  
  1283  	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims.
  1284  
  1285  2014-02-27  Torbjorn Granlund  <tege@gmplib.org>
  1286  
  1287  	* mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2
  1288  	feature test.
  1289  
  1290  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl
  1291  	conditionally on BMI2 availability.
  1292  
  1293  	* config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that
  1294  	BMI2 is missing.
  1295  	(x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature
  1296  	test.
  1297  
  1298  2014-02-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1299  
  1300  	* mini-gmp/mini-gmp.c (mpn_sqrtrem): New function.
  1301  	* mini-gmp/mini-gmp.h: Declare it.
  1302  	* mini-gmp/tests/t-sqrt.c: Test it.
  1303  
  1304  2014-02-17  Niels Möller  <nisse@lysator.liu.se>
  1305  
  1306  	* mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix.
  1307  	Hopefully no longer needed.
  1308  
  1309  	* mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
  1310  	* mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
  1311  
  1312  	* tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD,
  1313  	DIV_QR_1_UNNORM_THRESHOLD >= 1.
  1314  
  1315  2014-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1316  
  1317  	* mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0.
  1318  
  1319  2014-02-15  Torbjorn Granlund  <tege@gmplib.org>
  1320  
  1321  	* tests/mpn/t-div.c: Fix typo.
  1322  
  1323  2014-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1324  
  1325  	* doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that
  1326  	at least a readable limb is required.
  1327  	* mini-gmp/mini-gmp.c (mpz_div_qr): init + set = init_set .
  1328  
  1329  2014-02-14  Niels Möller  <nisse@lysator.liu.se>
  1330  
  1331  	* doc/gmp.texi (Low-level Functions): Update docs for
  1332  	mpn_sec_powm, to specify that left-over exponent bits must be
  1333  	zero.
  1334  
  1335  2014-02-11  Niels Möller  <nisse@lysator.liu.se>
  1336  
  1337  	* Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3,
  1338  	COPYINGv2, and COPYINGv3.
  1339  
  1340  	* doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs.
  1341  
  1342  	* mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb
  1343  	count argument by bit count. Don't leak high exponent bits, and
  1344  	drop the requirement that the most significant exponent limb is
  1345  	non-zero.
  1346  	(mpn_sec_powm_itch): Analogous interface change.
  1347  	* gmp-h.in: Updated prototypes.
  1348  	* mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls.
  1349  	* tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code
  1350  	fiddling with the high exponent bits.
  1351  
  1352  2014-02-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1353  
  1354  	* mini-gmp/tests/t-limbs.c: New test for mpz_limbs_*.
  1355  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add it.
  1356  
  1357  2014-02-09  Niels Möller  <nisse@lysator.liu.se>
  1358  
  1359  	* tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical
  1360  	parameters nbits = 1, winsize = 2. Decrement tabulated values, to
  1361  	better match the > comparison when the table is used.
  1362  
  1363  	* mpn/generic/sec_powm.c (win_size): Comment why we always get
  1364  	win_size(eb) <= eb. Make the table const.
  1365  	(mpn_sec_powm): Deleted handling of winsize > initial ebi. For
  1366  	now, replaced with an ASSERT_ALWAYS.
  1367  
  1368  2014-02-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1369  
  1370  	* mini-gmp/mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify
  1371  	mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions.
  1372  	(mpn_perfect_square_p): New function.
  1373  	* mini-gmp/mini-gmp.h: Declare them.
  1374  
  1375  	* mini-gmp/tests/t-mul.c: Use roinit and limbs_read to test mpn.
  1376  	* mini-gmp/tests/t-sqrt.c: Test also mpn_perfect_square_p.
  1377  
  1378  2014-02-08  Niels Möller  <nisse@lysator.liu.se>
  1379  
  1380  	* mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused
  1381  	function.
  1382  
  1383  	* mpn/generic/sec_div.c: Simplified code for the normalized case.
  1384  
  1385  	* tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r
  1386  	with normalized d.
  1387  
  1388  2014-02-04  Niels Möller  <nisse@lysator.liu.se>
  1389  
  1390  	* doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and
  1391  	mpn_sec_sub_1.
  1392  
  1393  2014-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1394  
  1395  	* mini-gmp/mini-gmp.c (mpn_rootrem): Allow NULL argument.
  1396  
  1397  	* mini-gmp/mini-gmp.c (mpn_zero): New function.
  1398  	(mpz_perfect_square_p): New function.
  1399  	* mini-gmp/mini-gmp.h: Declare them.
  1400  
  1401  	* mini-gmp/tests/t-sqrt.c: Test mpz_perfect_square_p.
  1402  	* mini-gmp/tests/t-root.c: Test also 1-th root, allow perfect powers.
  1403  
  1404  2014-01-29  Torbjorn Granlund  <tege@gmplib.org>
  1405  
  1406  	* doc/gmp.texi (Floating-point Functions): Revise.
  1407  
  1408  2014-01-29  Niels Möller  <nisse@lysator.liu.se>
  1409  
  1410  	* README: Don't refer to specific COPYING* files, instead refer to
  1411  	manual for details.
  1412  
  1413  	* COPYING.LIB: Renamed, to...
  1414  	* COPYING.LESSERv3: ... new name.
  1415  	* COPYING: Renamed, to...
  1416  	* COPYINGv3: ... new name.
  1417  	* COPYINGv2: New file, GPLv2.
  1418  
  1419  	* doc/gmp.texi (Copying): Document dual licensing.
  1420  
  1421  2014-01-27  Torbjorn Granlund  <tege@gmplib.org>
  1422  
  1423  	* Update library files license to use LGPL3+ and GPL2+.
  1424  
  1425  2014-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1426  
  1427  	* tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart).
  1428  
  1429  	* mpn/generic/sec_aors_1.c: Mark the 2nd argument as const.
  1430  	* gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise.
  1431  
  1432  2014-01-24  Torbjorn Granlund  <tege@gmplib.org>
  1433  
  1434  	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and
  1435  	excavator values.
  1436  
  1437  	* config.guess: Amend last AMD change.
  1438  
  1439  	* mpn/s390_64/lshift.asm: Align loop.
  1440  	* mpn/s390_64/rshift.asm: Likewise.
  1441  	* mpn/s390_64/lshiftc.asm: Likewise.
  1442  	* mpn/s390_64: Add z10 cycle numbers.
  1443  
  1444  2014-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1445  
  1446  	* printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z'
  1447  	in switch (fchar).
  1448  
  1449  	* mini-gmp/tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui}
  1450  	* mini-gmp/tests/Makefile: Add t-aorsmul.
  1451  
  1452  2014-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1453  
  1454  	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs.
  1455  
  1456  2014-01-20  Torbjorn Granlund  <tege@gmplib.org>
  1457  
  1458  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for
  1459  	AMD "jaguar".
  1460  
  1461  	* demos/expr: Get rid of varargs code and references.
  1462  
  1463  2014-01-19  Torbjorn Granlund  <tege@gmplib.org>
  1464  
  1465  	* config.guess: Add new AMD CPUs (piledriver, steamroller, excavator,
  1466  	jaguar).
  1467  	* config.sub: Corresponding updates.
  1468  	* configure.ac: Likewise.
  1469  	* acinclude.m4 (X86_64_PATTERN): Likewise.
  1470  	* mpn/x86_64/fat/fat.c: Likewise.
  1471  
  1472  	* Rename mpn_sec_minvert => mpn_sec_invert, many files affected.
  1473  	* mpn/generic/sec_invert.c: New name for sec_minvert.c.
  1474  
  1475  	* doc/gmp.texi: Undocument mpz_array_init.
  1476  
  1477  	* acinclude.m4 (GMP_C_STDARG): Comment out.
  1478  	* configure.ac: Suppress GMP_C_STDARG invocation.
  1479  
  1480  	* Get rid of varargs code and references, many file affected.
  1481  
  1482  	* Use mpq_t in favour of MP_RAT, many mpq files affected.
  1483  
  1484  	* Get rid of BYTES_PER_MP_LIMB, most files affected.
  1485  
  1486  	* mpz/iset.c: Avoid overflow in allocation computation.
  1487  	* mpz/mul.c: Likewise.
  1488  	* mpf/init.c: Likewise.
  1489  	* mpf/init2.c: Likewise.
  1490  	* mpf/iset.c: Likewise.
  1491  	* mpf/iset_d.c: Likewise.
  1492  	* mpf/iset_si.c: Likewise.
  1493  	* mpf/iset_str.c: Likewise.
  1494  	* mpf/iset_ui.c: Likewise.
  1495  
  1496  	* mpz/array_init.c: Avoid two overflow scenarios in allocation
  1497  	computation.
  1498  
  1499  	* mpn/s390_64/z10/gmp-mparam.h: New file.
  1500  
  1501  	* mpz/clears.c: Call __gmp_free_func ourselves instead of via
  1502  	mpz_clears.
  1503  	* mpf/clears.c: Analogous change.
  1504  	* mpq/clears.c: Analogous change.
  1505  
  1506  	* mpz/clear.c: Add cast to avoid overflow of (later ignored) argument.
  1507  	* mpf/clear.c: Likewise.
  1508  
  1509  2014-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1510  
  1511  	* mini-gmp/mini-gmp.c (mpn_popcount): New function.
  1512  	(mpz_popcount): Use it.
  1513  	(mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added.
  1514  	* mini-gmp/mini-gmp.h: Declare them.
  1515  
  1516  2014-01-18  Niels Möller  <nisse@lysator.liu.se>
  1517  
  1518  	* tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1.
  1519  
  1520  	* tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size
  1521  	argument to mpn_sec_minvert.
  1522  
  1523  2014-01-18  Marc Glisse  <marc.glisse@inria.fr>
  1524  
  1525  	* doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto.
  1526  
  1527  2014-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1528  
  1529  	* tests/t-parity.c: Use 1UL to generate unsigned constants.
  1530  	* tests/t-constants.c: Disable a non portable (unneeded) check.
  1531  
  1532  2014-01-18  Niels Möller  <nisse@lysator.liu.se>
  1533  
  1534  	* mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New
  1535  	file.
  1536  
  1537  	* mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1):
  1538  	Deleted static definitions.
  1539  	(mpn_cnd_swap): Use volatile.
  1540  
  1541  	* configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1.
  1542  	(GMP_MULFUNC_CHOICES): Set up for sec_aors_1.
  1543  
  1544  2014-01-16  Niels Möller  <nisse@lysator.liu.se>
  1545  
  1546  	* tune/common.c (speed_mpn_sec_minvert): New function.
  1547  	* tune/speed.h: Declare it.
  1548  	(SPEED_ROUTINE_MPN_SEC_MINVERT): New macro.
  1549  	* tune/speed.c (routine): Added mpn_sec_minvert.
  1550  
  1551  	* mini-gmp/mini-gmp.c (mp_bits_per_limb): New const value.
  1552  	* mini-gmp/mini-gmp.h: Declare it.
  1553  
  1554  2014-01-12  Marc Glisse  <marc.glisse@inria.fr>
  1555  
  1556  	* demos/expr/expr.h: Add extern "C" for C++.
  1557  
  1558  2014-01-11  Torbjorn Granlund  <tege@gmplib.org>
  1559  
  1560  	* doc/gmp.texi (Notes for Particular Systems): Add items about old
  1561  	NetBSD and current FreeBSD m4 problems.  Add item about FreeBSD's
  1562  	broken limits.h.
  1563  
  1564  2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1565  
  1566  	* gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST.
  1567  
  1568  2014-01-05  Torbjorn Granlund  <tege@gmplib.org>
  1569  
  1570  	* configure.ac (alpha): Set extra_functions conditionally.
  1571  
  1572  	* gmp-h.in (mpn_sec_minvert): Remove formal parameters.
  1573  
  1574  	* doc/gmp.texi: Improve doc for several functions.
  1575  
  1576  	* mpn/generic/sec_tabselect.c: Declare input arg using 'const'.
  1577  	* gmp-h.in: Analogous change.
  1578  
  1579  	* gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE.
  1580  	* gmp-impl.h: Likewise.
  1581  
  1582  2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1583  
  1584  	* tests/mpn/t-minvert.c: Always compare with mpz_invert results,
  1585  	add red zone to scratch.
  1586  	* tests/mpn/t-sizeinbase.c: New test.
  1587  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c .
  1588  	* tests/mpn/t-div.c: Use mpn_sec_div_*_itch().
  1589  
  1590  	* mpn/generic/pow_1.c: Micro-optimisation.
  1591  
  1592  2014-01-04  Torbjorn Granlund  <tege@gmplib.org>
  1593  
  1594  	* acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies.
  1595  
  1596  2014-01-03  Torbjorn Granlund  <tege@gmplib.org>
  1597  
  1598  	* config.guess: Support newer haswell, broadwell, silvermont.
  1599  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise.
  1600  
  1601  	* acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work.
  1602  
  1603  	* mpz/invert.c: Rely on gcdext for all operands, removing faulty
  1604  	special case.
  1605  	* tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1.
  1606  
  1607  2014-01-02  Niels Möller  <nisse@lysator.liu.se>
  1608  
  1609  	* doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase.
  1610  
  1611  	Enable previously unused mpn_sizeinbase function.
  1612  	* configure.ac (gmp_mpn_functions): Added sizeinbase.
  1613  	* gmp-h.in (mpn_sizeinbase): New prototype.
  1614  
  1615  2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
  1616  
  1617  	* gmp-impl.h: Always include <limits.h>.
  1618  	* tests/mpn/t-get_d.c: Remove comment about <limits.h>
  1619  
  1620  	* gmp-h.in (__GMP_USHRT_MAX): Use the promoted type.
  1621  	* gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise.
  1622  	* tests/t-constants.c: Adapt printf strings.
  1623  	* tests/t-gmpmax.c: Likewise.
  1624  
  1625  	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses.
  1626  
  1627  2014-01-01  Torbjorn Granlund  <tege@gmplib.org>
  1628  
  1629  	* doc/gmp.texi (Low-level Functions for cryptography): Update interface
  1630  	for mpn_sec_div_qr and fix typos in mpn_sec_minvert text.
  1631  
  1632  	* mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high
  1633  	quotient limb.
  1634  	* gmp-h.in (mpn_sec_div_qr): Update declaration.
  1635  	* tests/mpn/t-div.c: Adapt.
  1636  
  1637  2013-12-31  Niels Möller  <nisse@lysator.liu.se>
  1638  
  1639  	* doc/gmp.texi (Low-level Functions for cryptography): Document
  1640  	mpn_sec_minvert.
  1641  
  1642  2013-12-30  Marc Glisse  <marc.glisse@inria.fr>
  1643  
  1644  	* doc/gmp.texi (C++ interface internals): Break long line.
  1645  
  1646  2013-12-30  Torbjorn Granlund  <tege@gmplib.org>
  1647  
  1648  	* doc/gmp.texi (Low-level Functions for cryptography): New section.
  1649  
  1650  2013-12-29  Niels Möller  <nisse@lysator.liu.se>
  1651  
  1652  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert.
  1653  	* tests/mpn/t-minvert.c: New file.
  1654  
  1655  	* configure.ac (gmp_mpn_functions): Added sec_minvert.
  1656  	* gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New
  1657  	declarations.
  1658  	* mpn/generic/sec_minvert.c (mpn_sec_minvert)
  1659  	(mpn_sec_minvert_itch): New functions.
  1660  	(mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New
  1661  	helper functions.
  1662  
  1663  2013-12-28  Torbjorn Granlund  <tege@gmplib.org>
  1664  
  1665  	* mpn/generic/sec_powm.c: Fix an ASSERT.
  1666  
  1667  	* gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations.
  1668  	* gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise.
  1669  	* mpn/generic/sec_mul.c: New file.
  1670  	* mpn/generic/sec_sqr.c: New file.
  1671  
  1672  	* gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations.
  1673  	* gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise.
  1674  	* gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise.
  1675  	* gmp-impl: Remove declarations of above functions.
  1676  
  1677  	* configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr.
  1678  
  1679  2013-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  1680  
  1681  	* Update many file's encoding to UTF-8.
  1682  	* doc/tasks.html: Update <meta content> accordingly.
  1683  	* doc/projects.html: Likewise.
  1684  
  1685  2013-12-26  Torbjorn Granlund  <tege@gmplib.org>
  1686  
  1687  	* configure.ac: Rename mpn_blah_sec to mpn_sec_blah.
  1688  	* gmp-impl.h: Corresponding changes.
  1689  	* mpn/asm-defs.m4: Corresponding changes.
  1690  	* tune/Makefile.am: Corresponding changes.
  1691  	* tune/common.c: Corresponding changes.
  1692  	* tune/speed.c: Corresponding changes.
  1693  	* tune/speed.h: Corresponding changes.
  1694  	* tune/tuneup.c: Corresponding changes.
  1695  	* mpz/powm_sec.c: Update calls.
  1696  	* tests/mpn/t-div.c: Likewise.
  1697  
  1698  	* mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c.
  1699  	* mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c.
  1700  	* mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c.
  1701  	* mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c.
  1702  
  1703  	* mpn/alpha/sec_tabselect.asm: New name for tabselect.asm.
  1704  	* mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm.
  1705  	* mpn/arm/sec_tabselect.asm: New name for tabselect.asm.
  1706  	* mpn/ia64/sec_tabselect.asm: New name for tabselect.asm
  1707  	* mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm
  1708  	* mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm
  1709  	* mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm
  1710  	* mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm
  1711  	* mpn/x86/sec_tabselect.asm: New name for tabselect.asm
  1712  	* mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm
  1713  	* mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm
  1714  	* mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm
  1715  	* mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm
  1716  	* mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm
  1717  	* mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm
  1718  	* mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm
  1719  	* mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm
  1720  
  1721  2013-12-25  Torbjorn Granlund  <tege@gmplib.org>
  1722  
  1723  	* mpz/powm_sec.c: Handle 0^e mod m specially.
  1724  	* mpn/generic/powm_sec.c: ASSERT that the base is non-zero.
  1725  
  1726  2013-12-23  Torbjorn Granlund  <tege@gmplib.org>
  1727  
  1728  	* mpn/generic/powm_sec.c (redcify): Use passed scratch instead of
  1729  	locally allocated.
  1730  	(mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs.
  1731  
  1732  2013-12-20  Mark Sofroniou  <marks@wolfram.com>
  1733  
  1734  	* mpn/generic/mul_fft.c: Major overhaul of types.
  1735  
  1736  2013-12-18  Torbjorn Granlund  <tege@gmplib.org>
  1737  
  1738  	* doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs.
  1739  
  1740  2013-12-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
  1741  
  1742  	* mpn/powerpc32/darwin.m4: Allow (and ignore) optional
  1743  	'toc' parameter to PROLOGUE_cpu.
  1744  	* mpn/powerpc32/elf.m4: Likewise.
  1745  
  1746  2013-12-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
  1747  
  1748  	* configure.ac: Check for ELFv2 ABI on PowerPC.
  1749  	* mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2
  1750  	and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences.
  1751  	Support optional 'toc' parameter to PROLOGUE_cpu.
  1752  	* mpn/powerpc64/aix.m4: Allow (and ignore) optional
  1753  	'toc' parameter to PROLOGUE_cpu.
  1754  	* mpn/powerpc64/darwin.m4: Likewise.
  1755  
  1756  	* mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc'
  1757  	parameter to PROLOGUE.
  1758  	* mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise.
  1759  	* mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise.
  1760  	* mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise.
  1761  	* mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise.
  1762  	* mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise.
  1763  	* mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise.
  1764  	* mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise.
  1765  	* mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise.
  1766  	* mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise.
  1767  	* mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise.
  1768  	* mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise.
  1769  	* mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise.
  1770  
  1771  2013-12-07  Niels Möller  <nisse@lysator.liu.se>
  1772  
  1773  	* configfsf.sub: Updated to version 2013-10-01, from gnulib.
  1774  	* configfsf.guess: Updated to version 2013-11-29, from gnulib.
  1775  
  1776  2013-12-03  Torbjorn Granlund  <tege@gmplib.org>
  1777  
  1778  	* mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs.
  1779  	* mpn/generic/div_qr_1n_pi1.c: Likewise.
  1780  	* mpn/generic/div_qr_2.c: Likewise.
  1781  	* mpn/generic/div_qr_2.c: Likewise.
  1782  	* mpn/generic/mod_1_1.c: Likewise.
  1783  	* mpn/generic/mod_1_2.c: Likewise.
  1784  	* mpn/generic/mod_1_3.c: Likewise.
  1785  	* mpn/generic/mod_1_4.c: Likewise.
  1786  	* mpn/generic/mulmid_basecase.c: Likewise.
  1787  	* mpn/generic/mulmod_bnm1.c: Likewise.
  1788  	* mpn/generic/sqrmod_bnm1.c: Likewise.
  1789  	* mpn/sparc64/divrem_1.c: Likewise.
  1790  	* mpn/sparc64/mod_1_4.c: Likewise.
  1791  
  1792  	* mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo.
  1793  
  1794  2013-11-11  Torbjorn Granlund  <tege@gmplib.org>
  1795  
  1796  	* mpn/x86_64/dos64.m4 (CALL): Provide to override default.
  1797  
  1798  2013-11-08  Torbjorn Granlund  <tege@gmplib.org>
  1799  
  1800  	* mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn.
  1801  
  1802  	* mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386.
  1803  
  1804  	* doc/gmp.texi: Update many URLs.
  1805  
  1806  2013-11-04  Torbjorn Granlund  <tege@gmplib.org>
  1807  
  1808  	* configure.ac: Set symbol OPENBSD for x86-openbsd hosts.
  1809  	* mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for
  1810  	PIC_OR_DARWIN.
  1811  	(PRETEND_PIC): Set also for OPENBSD.
  1812  
  1813  2013-10-29  Torbjorn Granlund  <tege@gmplib.org>
  1814  
  1815  	* printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy.
  1816  
  1817  2013-10-24  Torbjorn Granlund  <tege@gmplib.org>
  1818  
  1819  	* mpn/generic/div_qr_1u_pi2.c: New file.
  1820  	* mpn/generic/div_qr_1n_pi2.c: New file.
  1821  
  1822  2013-10-24  Niels Möller  <nisse@lysator.liu.se>
  1823  
  1824  	* mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and
  1825  	in-place operation.
  1826  	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise.
  1827  
  1828  	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes,
  1829  	off-by-one MPN_INCR_U, and support for in-place operation.
  1830  
  1831  2013-10-24  Torbjorn Granlund  <tege@gmplib.org>
  1832  
  1833  	* mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell.
  1834  
  1835  2013-10-23  Torbjorn Granlund  <tege@gmplib.org>
  1836  
  1837  	* mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'.
  1838  	(regnum): Use x86_lookup, feed oplist.
  1839  
  1840  2013-10-22  Niels Möller  <nisse@lysator.liu.se>
  1841  
  1842  	* tests/devel/try.c: Support mpn_div_qr_1n_pi1.
  1843  
  1844  	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here.
  1845  	Applied tweak from Torbjörn to get it to run well on k8.
  1846  
  1847  	* mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above).
  1848  	Differs from generic x86_64 version by using cmov.
  1849  
  1850  	* mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul.
  1851  	Deleted misleading cycle annotations.
  1852  
  1853  2013-10-21  Niels Möller  <nisse@lysator.liu.se>
  1854  
  1855  	* configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in.
  1856  
  1857  	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos
  1858  	affecting ASSERT.
  1859  
  1860  2013-10-20  Niels Möller  <nisse@lysator.liu.se>
  1861  
  1862  	* mpn/x86_64/div_qr_1n_pi1.asm: New file.
  1863  
  1864  	* tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check
  1865  	div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1.
  1866  
  1867  	* mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1.
  1868  
  1869  	* tune/common.c (speed_mpn_div_qr_1): New function, replacing...
  1870  	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions
  1871  	(speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1)
  1872  	(speed_mpn_div_qr_1n_pi1_2): New functions.
  1873  	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning
  1874  	variables.
  1875  	* tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New
  1876  	functions.
  1877  	(div_qr_1n_pi1_method, div_qr_1_norm_threshold)
  1878  	(div_qr_1_unnorm_threshold): New globals.
  1879  	* tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u
  1880  	by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1
  1881  	and variants.
  1882  	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter
  1883  	as divisor.
  1884  	* tune/div_qr_1n_pi1_2.c: New file.
  1885  	* tune/div_qr_1n_pi1_1.c: New file.
  1886  	* tune/div_qr_1_tune.c: New file.
  1887  	* tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c,
  1888  	div_qr_1n_pi1_2.c, and div_qr_1_tune.c.
  1889  
  1890  	* tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u.
  1891  	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro.
  1892  	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare.
  1893  	* tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New
  1894  	functions.
  1895  
  1896  	* gmp-impl.h (mpn_div_qr_1n_pi1): Declare function.
  1897  	* gmp-h.in (mpn_div_qr_1): Declare function.
  1898  	* configure.ac (gmp_mpn_functions): Added div_qr_1 and
  1899  	div_qr_1n_pi1.
  1900  	* mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function.
  1901  	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and
  1902  	function.
  1903  	* tests/mpn/t-div.c (main): Test mpn_div_qr_1.
  1904  
  1905  2013-10-17  Torbjorn Granlund  <tege@gmplib.org>
  1906  
  1907  	* configure.ac (alpha): Pass -mieee via gcc_cflags_maybe.
  1908  
  1909  2013-10-16  Torbjorn Granlund  <tege@gmplib.org>
  1910  
  1911  	* config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses.
  1912  
  1913  	* mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter.
  1914  	* mpn/alpha/divrem_2.asm: Use provided gp mechanisms.
  1915  	* mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label.
  1916  	* mpn/alpha/invert_limb.asm: Align table to 8-byte boundary.  Make code
  1917  	work if table is not fully aligned.  Properly test for BWX.
  1918  
  1919  2013-10-15  Torbjorn Granlund  <tege@gmplib.org>
  1920  
  1921  	* mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA;
  1922  	accept optional align parameter.
  1923  	* mpn/alpha/invert_limb.asm: Align table.
  1924  	* mpn/alpha/ev5/diveby3.asm: Likewise.
  1925  
  1926  2013-10-11  Torbjorn Granlund  <tege@gmplib.org>
  1927  
  1928  	* mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity.
  1929  	* mpn/x86/k7/mod_1_4.asm: Likewise.
  1930  
  1931  	* configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and
  1932  	cclist_x32.
  1933  
  1934  2013-10-08  Torbjorn Granlund  <tege@gmplib.org>
  1935  	    Marc Glisse  <marc.glisse@inria.fr>
  1936  
  1937  	* tests/mpf/reuse.c (main): Compare addresses instead of names.
  1938  	Use larger numbers for exponents.
  1939  
  1940  2013-10-08  Marc Glisse  <marc.glisse@inria.fr>
  1941  
  1942  	* doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove.
  1943  	* .bootstrap: Use autoreconf (and in particular automake -a).
  1944  
  1945  	* gmp-h.in: Remove __need_size_t. Include <stddef.h>, not <cstddef>.
  1946  
  1947  	* tests/mpf/reuse.c (main): Use small numbers as exponents.
  1948  
  1949  2013-10-05  Torbjorn Granlund  <tege@gmplib.org>
  1950  
  1951  	* mpn/x86_64/atom/aorsmul_1.asm: Slight tweak.
  1952  
  1953  	* doc/gmp.texi (ABI and ISA): Document x32.
  1954  
  1955  	* mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names.
  1956  
  1957  2013-09-24  Torbjorn Granlund  <tege@gmplib.org>
  1958  
  1959  	* mpn/x86_64/atom/redc_1.asm: New file.
  1960  
  1961  2013-09-23  Torbjorn Granlund  <tege@gmplib.org>
  1962  
  1963  	* mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work.
  1964  
  1965  2013-09-22  Torbjorn Granlund  <tege@gmplib.org>
  1966  
  1967  	* mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code.
  1968  
  1969  	* mpn/x86_64/core2/redc_1.asm: New file.
  1970  
  1971  	* mpn/x86_64/bobcat/redc_1.asm: New file.
  1972  
  1973  2013-09-21  Torbjorn Granlund  <tege@gmplib.org>
  1974  
  1975  	* mpn/x86_64/coreinhm/redc_1.asm: New file.
  1976  
  1977  2013-09-21  Marc Glisse  <marc.glisse@inria.fr>
  1978  
  1979  	* tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d.
  1980  	* tests/rand/t-urbui.c: Use 1UL for unsigned constant.
  1981  	* mpn/generic/get_str.c: Avoid temporarily pointing outside an array.
  1982  
  1983  2013-09-20  Torbjorn Granlund  <tege@gmplib.org>
  1984  
  1985  	* mpn/x86_64/coreisbr/redc_1.asm: New file.
  1986  
  1987  	* mpn/x86_64/k8/redc_1.asm: Complete rewrite.
  1988  
  1989  	* mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short-
  1990  	circuit a branch.
  1991  	* mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch.
  1992  
  1993  	* mpn/x86_64/core2/mullo_basecase.asm: New file.
  1994  
  1995  2013-09-19  Torbjorn Granlund  <tege@gmplib.org>
  1996  
  1997  	* mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS.
  1998  
  1999  2013-09-18  Torbjorn Granlund  <tege@gmplib.org>
  2000  
  2001  	* mpn/x86_64/core2/mul_basecase.asm: New file.
  2002  	* mpn/x86_64/core2/sqr_basecase.asm: New file.
  2003  
  2004  	* mpn/x86_64/coreihwl/mullo_basecase.asm: New file.
  2005  	* mpn/x86_64/coreisbr/mullo_basecase.asm: New file.
  2006  
  2007  2013-09-16  Torbjorn Granlund  <tege@gmplib.org>
  2008  
  2009  	* mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS.
  2010  
  2011  2013-09-15  Torbjorn Granlund  <tege@gmplib.org>
  2012  
  2013  	* mpn/x86_64/tabselect.asm: Use R8 for bit testing.
  2014  
  2015  	* mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code.
  2016  
  2017  	* mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite.
  2018  
  2019  2013-09-12  Torbjorn Granlund  <tege@gmplib.org>
  2020  
  2021  	* mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits.
  2022  
  2023  	* mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly
  2024  	handle overlap.
  2025  
  2026  2013-09-10  Torbjorn Granlund  <tege@gmplib.org>
  2027  
  2028  	* mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code
  2029  	to make it handle any allowed overlap.
  2030  
  2031  2013-09-09  Torbjorn Granlund  <tege@gmplib.org>
  2032  
  2033  	* mpn/x86_64/atom/com.asm: New file, grabbing fastsse code.
  2034  
  2035  	* mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code.
  2036  	* mpn/x86_64/bd1/copyd.asm: Likewise.
  2037  	* mpn/x86_64/bd1/com.asm: Likewise.
  2038  
  2039  	* mpn/x86_64/fastavx/copyi.asm: New file.
  2040  	* mpn/x86_64/fastavx/copyd.asm: New file.
  2041  
  2042  2013-09-05  Torbjorn Granlund  <tege@gmplib.org>
  2043  
  2044  	* mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline.
  2045  
  2046  2013-09-04  Torbjorn Granlund  <tege@gmplib.org>
  2047  
  2048  	* mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner".
  2049  	Misc tuning.
  2050  
  2051  2013-09-03  Torbjorn Granlund  <tege@gmplib.org>
  2052  
  2053  	* mpn/x86_64/coreihwl/redc_1.asm: New file.
  2054  
  2055  	* mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets.
  2056  
  2057  2013-08-31  Torbjorn Granlund  <tege@gmplib.org>
  2058  
  2059  	* mpn/x86_64/coreisbr/sqr_basecase.asm: New file.
  2060  
  2061  	* mpn/x86_64/sqr_diag_addlsh1.asm: New file.
  2062  
  2063  2013-08-30  Torbjorn Granlund  <tege@gmplib.org>
  2064  
  2065  	* mpn/x86_64/fat/mul_basecase.c: New file.
  2066  	* mpn/x86_64/fat/sqr_basecase.c: New file.
  2067  	* mpn/x86_64/fat/mullo_basecase.c: New file.
  2068  	* mpn/x86_64/fat/redc_1.c: New file.
  2069  
  2070  2013-08-29  Torbjorn Granlund  <tege@gmplib.org>
  2071  
  2072  	* mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8
  2073  	subdir.
  2074  	* mpn/x86_64/k8/sqr_basecase.asm: Likewise.
  2075  	* mpn/x86_64/k8/redc_1.asm: Likewise.
  2076  	* mpn/x86_64/k8/mullo_basecase.asm: Likewise.
  2077  	* mpn/x86_64/k8/mulmid_basecase.asm: Likewise.
  2078  
  2079  	* mpn/ia64/aors_n.asm: Clean up some bundlings.
  2080  
  2081  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell.
  2082  	(fake_cpuid_table): Likewise.
  2083  
  2084  	* configure.ac (x86): Remove any mulx paths.  Let bwl path = hwl path.
  2085  	(fat_path): Add coreihwl.
  2086  
  2087  	* mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use
  2088  	mulx() macro.
  2089  	* mpn/x86_64/coreihwl/mul_1.asm: Likewise.
  2090  	* mpn/x86_64/coreihwl/mul_2.asm: Likewise.
  2091  	* mpn/x86_64/coreihwl/mul_basecase.asm: Likewise.
  2092  	* mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise.
  2093  
  2094  	* mpn/x86_64/x86_64-defs.m4 (mulx): New macro.
  2095  	(regnum, regnumh, ix): Supporting macros.
  2096  
  2097  2013-08-28  Torbjorn Granlund  <tege@gmplib.org>
  2098  
  2099  	* mpn/x86_64/coreisbr/divrem_1.asm: New file.
  2100  
  2101  2013-08-23  Torbjorn Granlund  <tege@gmplib.org>
  2102  
  2103  	* mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on
  2104  	copyi-palignr.asm.
  2105  
  2106  	* mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt".
  2107  	* mpn/x86_64/fastsse/copyd-palignr.asm: Likewise.
  2108  	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
  2109  	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise.
  2110  	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
  2111  	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
  2112  	* mpn/x86_64/fastsse/tabselect.asm: Likewise.
  2113  
  2114  	* mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file.
  2115  
  2116  	* mpn/alpha/aorslsh2_n.asm: New file.
  2117  	* mpn/alpha/aorslsh1_n.asm: Rewrite.
  2118  	* mpn/alpha/ev6/aorslsh1_n.asm: New file.
  2119  
  2120  2013-08-21  Torbjorn Granlund  <tege@gmplib.org>
  2121  
  2122  	* mpn/alpha/sqr_diag_addlsh1.asm: New file.
  2123  	* mpn/alpha/sqr_diagonal.asm: Remove.
  2124  	* mpn/alpha/ev6/sqr_diagonal.asm: Remove.
  2125  
  2126  2013-08-20  Torbjorn Granlund  <tege@gmplib.org>
  2127  
  2128  	* mpn/powerpc32/sqr_diag_addlsh1.asm: New file.
  2129  	* mpn/powerpc32/sqr_diagonal.asm: Remove.
  2130  
  2131  2013-08-15  Torbjorn Granlund  <tege@gmplib.org>
  2132  
  2133  	* mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file.
  2134  
  2135  2013-08-05  Torbjorn Granlund  <tege@gmplib.org>
  2136  
  2137  	* mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite.
  2138  
  2139  2013-08-04  Torbjorn Granlund  <tege@gmplib.org>
  2140  
  2141  	* mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file.
  2142  
  2143  	* mpn/x86_64/bd1/mul_2.asm: New file.
  2144  
  2145  	* mpn/x86_64/coreihwl/gmp-mparam.h: New file.
  2146  
  2147  2013-08-03  Torbjorn Granlund  <tege@gmplib.org>
  2148  
  2149  	* mpn/x86_64/coreihwl/mulx/mul_2.asm: New file.
  2150  	* mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file.
  2151  
  2152  	* mpn/x86_64/coreinhm/aorsmul_1.asm: New file.
  2153  
  2154  	* mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles.
  2155  
  2156  	* mpn/x86_64/coreisbr/mul_2.asm: New file.
  2157  
  2158  2013-08-02  Torbjorn Granlund  <tege@gmplib.org>
  2159  
  2160  	* mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite.
  2161  
  2162  2013-08-01  Torbjorn Granlund  <tege@gmplib.org>
  2163  
  2164  	* mpn/x86_64/bd1/mul_basecase.asm: New file.
  2165  
  2166  	* mpn/x86_64/coreisbr/mul_basecase.asm: New file.
  2167  
  2168  	* mpn/x86_64/coreihwl/aorsmul_1.asm: New file.
  2169  
  2170  2013-07-31  Torbjorn Granlund  <tege@gmplib.org>
  2171  
  2172  	* mpn/x86_64/atom/mul_2.asm: New file.
  2173  	* mpn/x86_64/atom/addmul_2.asm: New file.
  2174  	* mpn/x86_64/atom/mul_1.asm: New file.
  2175  	* mpn/x86_64/atom/aorsmul_1.asm: New file.
  2176  
  2177  	* mpn/x86_64/coreihwl/mul_1.asm: New file.
  2178  
  2179  	* configure.ac (x86): Add Haswell-specific path.
  2180  
  2181  	* configure.in (fat_functions): Add cnd_add_n, cnd_sub_n..
  2182  	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
  2183  	* gmp-impl.h: Adjust corresponding declarations.
  2184  
  2185  	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
  2186  	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
  2187  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
  2188  	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
  2189  
  2190  2013-07-30  Torbjorn Granlund  <tege@gmplib.org>
  2191  
  2192  	* mpn/x86_64/coreisbr/popcount.asm: New file.
  2193  
  2194  2013-07-23  Torbjorn Granlund  <tege@gmplib.org>
  2195  
  2196  	* mpn/x86_64/bobcat/aors_n.asm: New file.
  2197  
  2198  	* mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn.
  2199  
  2200  	* mpn/x86_64/bd1/aorrlsh1_n.asm: New file.
  2201  	* mpn/x86_64/bd1/sublsh1_n.asm: New file.
  2202  
  2203  2013-07-22  Torbjorn Granlund  <tege@gmplib.org>
  2204  
  2205  	* mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode.
  2206  	* mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
  2207  
  2208  2013-07-16  Torbjorn Granlund  <tege@gmplib.org>
  2209  
  2210  	* doc/gmp.texi: Declare countless of function arguments as 'const'.
  2211  
  2212  2013-07-15  Torbjorn Granlund  <tege@gmplib.org>
  2213  
  2214  	* mpn/x86_64/core2/aors_n.asm: Rewrite.
  2215  
  2216  	* mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per
  2217  	Niels' suggestion.
  2218  	* mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code.
  2219  
  2220  2013-07-14  Torbjorn Granlund  <tege@gmplib.org>
  2221  
  2222  	* mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL.
  2223  	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
  2224  	* mpn/powerpc64/mode64/mod_1_1.asm: Likewise.
  2225  	* mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
  2226  
  2227  2013-07-13  Torbjorn Granlund  <tege@gmplib.org>
  2228  
  2229  	* mpn/x86/atom/cnd_add_n.asm: New file.
  2230  	* mpn/x86/atom/cnd_sub_n.asm: New file.o
  2231  
  2232  2013-07-12  Torbjorn Granlund  <tege@gmplib.org>
  2233  
  2234  	* mpn/generic/sbpi1_div_sec.c: Partial rewrite.
  2235  
  2236  2013-07-11  Torbjorn Granlund  <tege@gmplib.org>
  2237  
  2238  	* mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1,
  2239  	NHM, Atom.
  2240  
  2241  2013-07-05  Torbjorn Granlund  <tege@gmplib.org>
  2242  
  2243  	* mpn/powerpc64/p7/copyi.asm: Handle n = 0.
  2244  	* mpn/powerpc64/p7/copyd.asm: Likewise.
  2245  
  2246  2013-07-04  Torbjorn Granlund  <tege@gmplib.org>
  2247  
  2248  	* mpn/powerpc64/mode64/p7/aormul_2.asm: New file.
  2249  
  2250  	* mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define.
  2251  	* mpn/powerpc64/aix.m4: New define (actually undefine).
  2252  	* mpn/powerpc64/elf.m4: Likewise.
  2253  
  2254  2013-07-03  Torbjorn Granlund  <tege@gmplib.org>
  2255  
  2256  	* mpn/powerpc64/com.asm: Rewrite.
  2257  
  2258  	* mpn/powerpc64/p7/copyi.asm: New file.
  2259  	* mpn/powerpc64/p7/copyd.asm: New file.
  2260  
  2261  2013-07-02  Torbjorn Granlund  <tege@gmplib.org>
  2262  
  2263  	* mpn/powerpc64/mode64/gcd_1.asm: New file.
  2264  	* mpn/powerpc64/mode64/p7/gcd_1.asm: New file.
  2265  
  2266  2013-07-01  Torbjorn Granlund  <tege@gmplib.org>
  2267  
  2268  	* configure.ac: Comment out AC_PROG_F77.
  2269  
  2270  	* mpn/powerpc64/mode64/rsh1add_n.asm: Remove.
  2271  	* mpn/powerpc64/mode64/rsh1sub_n.asm: Remove.
  2272  	* mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on
  2273  	removed files.
  2274  
  2275  2013-06-28  Marc Glisse  <marc.glisse@inria.fr>
  2276  
  2277  	* cxx/ismpf.cc: Use GMP_DECIMAL_POINT.
  2278  	* cxx/osmpf.cc: Likewise.
  2279  	* tests/cxx/t-locale.cc: Likewise.
  2280  
  2281  2013-06-28  Torbjorn Granlund  <tege@gmplib.org>
  2282  
  2283  	* mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file.
  2284  	* mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file.
  2285  	* mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file.
  2286  
  2287  	* mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname.
  2288  
  2289  2013-06-27  Torbjorn Granlund  <tege@gmplib.org>
  2290  
  2291  	* mpn/powerpc64/mode64/p7/aors_n.asm: New file.
  2292  
  2293  2013-06-22  Torbjorn Granlund  <tege@gmplib.org>
  2294  
  2295  	* aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove.
  2296  	* aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files.
  2297  
  2298  2013-06-19  Torbjorn Granlund  <tege@gmplib.org>
  2299  
  2300  	* mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code.
  2301  	* mpn/powerpc64/p6/rshift.asm: Likewise.
  2302  	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
  2303  
  2304  2013-06-17  Torbjorn Granlund  <tege@gmplib.org>
  2305  
  2306  	* mpn/powerpc64/p6/lshift.asm: Fix typo in label reference.
  2307  	For 32-bit mode, zero extend `n' argument and split retval.
  2308  	* mpn/powerpc64/p6/rshift.asm: Likewise.
  2309  	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
  2310  
  2311  2013-06-10  Torbjorn Granlund  <tege@gmplib.org>
  2312  
  2313  	* mpn/generic/mu_div_q.c: Remove obsolete comment.
  2314  
  2315  2013-06-09  Marc Glisse  <marc.glisse@inria.fr>
  2316  
  2317  	* mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow.
  2318  	* mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST.
  2319  
  2320  2013-05-31  Torbjorn Granlund  <tege@gmplib.org>
  2321  
  2322  	* mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division,
  2323  	never just for tail.  (This fixes performance issues at the expense of
  2324  	memory needs.)
  2325  
  2326  2013-05-26  Torbjorn Granlund  <tege@gmplib.org>
  2327  
  2328  	* configure.ac (*sparc*-*-*): Major overhaul.
  2329  
  2330  2013-05-22  Torbjorn Granlund  <tege@gmplib.org>
  2331  
  2332  	* doc/gmp.texi (Reporting Bugs): Ask for configure's output.
  2333  
  2334  	* mpn/ia64/divrem_2.asm: Don't clobber f16-f18.
  2335  
  2336  2013-05-20  Torbjorn Granlund  <tege@gmplib.org>
  2337  
  2338  	* mpn/arm/udiv.asm: Change spacing to work around binutils bug.
  2339  
  2340  2013-05-16  Torbjorn Granlund  <tege@gmplib.org>
  2341  
  2342  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
  2343  
  2344  	* tests/misc.c (tests_hardware_getround, tests_hardware_setround):
  2345  	Avoid assembly dependency unless WANT_ASSEMBLY.
  2346  
  2347  	* configure.ac (WANT_ASSEMBLY): Conditionally define.
  2348  
  2349  2013-05-14  Torbjorn Granlund  <tege@gmplib.org>
  2350  
  2351  	* configure.ac (arm1156): Don't fall back to plain v6 compiler option.
  2352  
  2353  2013-05-11  Torbjorn Granlund  <tege@gmplib.org>
  2354  
  2355  	* mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64.  Streamline.
  2356  	* mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline.
  2357  
  2358  2013-05-10  Torbjorn Granlund  <tege@gmplib.org>
  2359  
  2360  	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support.
  2361  	* mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support.
  2362  
  2363  	* mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent
  2364  	directory value.
  2365  
  2366  2013-05-09  Torbjorn Granlund  <tege@gmplib.org>
  2367  
  2368  	* configure.ac (--enable-fake-cpuid): New option.
  2369  	* mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting.
  2370  	* mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise.
  2371  
  2372  	* mpn/x86_64/bd1/mul_1.asm: Fix typo.
  2373  
  2374  2013-05-07  Torbjorn Granlund  <tege@gmplib.org>
  2375  
  2376  	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request.
  2377  	(fake_cpuid_available): Remove unused function.
  2378  
  2379  	* mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments.
  2380  	* mpn/generic/mod_1_2.c: Likewise.
  2381  	* mpn/generic/mod_1_3.c: Likewise.
  2382  	* mpn/generic/mod_1_4.c: Likewise.
  2383  	* mpn/generic/divrem_2.c: Likewise.
  2384  
  2385  2013-05-06  Torbjorn Granlund  <tege@gmplib.org>
  2386  
  2387  	* config.guess (power*): Handle all ppc970 variants.
  2388  
  2389  2013-05-03  David S. Miller  <davem@davemloft.net>
  2390  
  2391  	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
  2392  	speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n,
  2393  	speed_mpn_rsblsh2_n): Don't define if these routines are macros.
  2394  	* tune/speed.c (routine): Likewise don't table if they are macros.
  2395  
  2396  	* mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings.
  2397  	* mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise.
  2398  	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise.
  2399  	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise.
  2400  	* mpn/sparc64/ultrasparct3/submul_1.asm: Likewise.
  2401  
  2402  2013-05-03  Torbjorn Granlund  <tege@gmplib.org>
  2403  
  2404  	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has
  2405  	effect.
  2406  
  2407  	* gmp-impl.h: Amend last change.
  2408  	* tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if
  2409  	a macro.
  2410  
  2411  2013-05-02  Torbjorn Granlund  <tege@gmplib.org>
  2412  
  2413  	* mpn/arm/copyd.asm: Suppress dead pointer update.
  2414  	* mpn/arm/copyi.asm: Likewise.
  2415  	* mpn/arm/neon/logops_n.asm: Likewise.
  2416  	* mpn/arm/neon/tabselect.asm: Likewise.
  2417  	* mpn/arm/rshift.asm: Likewise.
  2418  	* mpn/arm/tabselect.asm: Likewise.
  2419  	* mpn/arm/v6/dive_1.asm: Likewise
  2420  	* mpn/arm/v7a/cora15/neon/copyi.asm: Likewise.
  2421  
  2422  	* mpn/arm/v7a/cora15/neon/com.asm: New file.
  2423  
  2424  2013-05-01  Torbjorn Granlund  <tege@gmplib.org>
  2425  
  2426  	* mpn/sparc64/ultrasparct3/aormul_4.asm: New file.
  2427  
  2428  	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and
  2429  	mul_4 + addmul_4.
  2430  
  2431  	* mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code.
  2432  
  2433  	* mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input.
  2434  	(umulxhi): Save and restore o7 to allow it as in/out parameter.
  2435  
  2436  2013-04-29  Torbjorn Granlund  <tege@gmplib.org>
  2437  
  2438  	* mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named.
  2439  
  2440  	* mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite.
  2441  
  2442  	* mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite.
  2443  
  2444  	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file.
  2445  
  2446  	* gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc
  2447  	with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the
  2448  	latter.
  2449  
  2450  	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file.
  2451  
  2452  	* configure.ac (sparc-*-*): Recognise t5 along with t3 and t4.
  2453  	Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5.
  2454  
  2455  2013-04-27  Mike Frysinger  <vapier@gentoo.org>
  2456  
  2457  	* configure.ac (arm*-*-*): Set up path also for plainest CPU variants.
  2458  
  2459  2013-04-27  Torbjorn Granlund  <tege@gmplib.org>
  2460  
  2461  	* mpn/arm/v6/popham.asm: New file.
  2462  
  2463  	* mpn/arm/v7a/cora15/cnd-aors_n.asm: New file.
  2464  
  2465  2013-04-25  Torbjorn Granlund  <tege@gmplib.org>
  2466  
  2467  	* mpn/arm/mod_34lsub1.asm: Clear carry smarter.
  2468  
  2469  	* mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally
  2470  	used code.
  2471  
  2472  	* mpn/arm/v7a/cora15/submul_1.asm: New file.
  2473  
  2474  2013-04-24  Torbjorn Granlund  <tege@gmplib.org>
  2475  
  2476  	* mpn/arm/v7a/cora15/com.asm: New file.
  2477  
  2478  	* mpn/arm/v7a/cora15/logops_n.asm: New file.
  2479  
  2480  2013-04-19  Torbjorn Granlund  <tege@gmplib.org>
  2481  
  2482  	* mpn/arm/v7a/cora15/aors_n.asm: New file.
  2483  
  2484  	* mpn/arm/v7a/cora15/addmul_1.asm: Rewrite.
  2485  
  2486  2013-04-18  Torbjorn Granlund  <tege@gmplib.org>
  2487  
  2488  	* mpn/alpha/tabselect.asm: New file.
  2489  
  2490  2013-04-17  Torbjorn Granlund  <tege@gmplib.org>
  2491  
  2492  	* mpn/powerpc32/tabselect.asm: New file.
  2493  
  2494  	* longlong.h (arm64 count_trailing_zeros): New.
  2495  
  2496  	* mpn/arm64/invert_limb.asm: New file.
  2497  
  2498  	* mpn/generic/dive_1.c: Rewrite to use Hensel division also for
  2499  	size = 1.
  2500  
  2501  	* mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant.
  2502  
  2503  	* configure.ac: Remove "missing" from extra_functions_64 for coreibwl.
  2504  
  2505  	* mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment.
  2506  	* mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise.
  2507  
  2508  2013-04-16  Torbjorn Granlund  <tege@gmplib.org>
  2509  
  2510  	* mpn/alpha/invert_limb.asm: Generate table.
  2511  	* mpn/powerpc64/mode64/invert_limb.asm: Likewise.
  2512  	* mpn/s390_64/invert_limb.asm: Likewise.
  2513  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
  2514  	* mpn/x86_64/invert_limb_table.asm: Likewise.
  2515  
  2516  2013-04-15  David S. Miller  <davem@davemloft.net>
  2517  
  2518  	* mpn/sparc32/sparc-defs.m4 (LEA64): New macro.
  2519  	* mpn/sparc64/gcd_1.asm: Use it.
  2520  	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
  2521  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
  2522  	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
  2523  
  2524  	* mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE.
  2525  
  2526  2013-04-15  Torbjorn Granlund  <tege@gmplib.org>
  2527  
  2528  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry,
  2529  	it is not portable.
  2530  
  2531  	* mpn/sparc64/tabselect.asm: New file.
  2532  
  2533  	* mpn/x86/mmx/tabselect.asm: New file.
  2534  	* configure.ac (x86): Add x86/mmx to path for relevant CPUs.
  2535  
  2536  	* mpn/sparc64/gcd_1.asm: Use rdpc for PIC.
  2537  	* mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC.
  2538  	* mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC.
  2539  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc.
  2540  
  2541  	* Revert remaining parts of recent sparc LEA changes.
  2542  
  2543  2013-04-14  David S. Miller  <davem@davemloft.net>
  2544  
  2545  	* mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes.
  2546  	* mpn/sparc64/gcd_1.asm: Likewise.
  2547  
  2548  2013-04-13  Torbjorn Granlund  <tege@gmplib.org>
  2549  
  2550  	* mpn/x86_64/bd1/tabselect.asm: New file.
  2551  	* mpn/x86_64/coreisbr/tabselect.asm: New file.
  2552  	* mpn/x86_64/k10/tabselect.asm: New file.
  2553  	* mpn/x86_64/coreinhm/tabselect.asm: New file.
  2554  	* mpn/x86_64/core2/tabselect.asm: New file.
  2555  	* mpn/x86_64/pentium4/tabselect.asm: New file.
  2556  
  2557  	* mpn/x86_64/fastsse/tabselect.asm: New file.
  2558  	* mpn/arm/neon/tabselect.asm: Rewrite.
  2559  	* mpn/arm/tabselect.asm: Rewrite.
  2560  	* mpn/powerpc64/tabselect.asm: Rewrite.
  2561  	* mpn/x86_64/tabselect.asm: Rewrite.
  2562  
  2563  	* tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code,
  2564  	making .r argument be table width.
  2565  
  2566  2013-04-11  David S. Miller  <davem@davemloft.net>
  2567  
  2568  	* mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label.
  2569  	(LEA_LEAF): Likewise.
  2570  
  2571  2013-04-11  Niels Möller  <nisse@lysator.liu.se>
  2572  
  2573  	* mpn/arm/v6/submul_1.asm: New file, using the corresponding
  2574  	addmul_1 loop + complement trick.
  2575  
  2576  2013-04-10  David S. Miller  <davem@davemloft.net>
  2577  
  2578  	* acinclude.m4 (GMP_ASM_SPARC_GOTDATA,
  2579  	GMP_ASM_SPARC_SHARED_THUNKS): New feature tests.
  2580  	* configure.ac: Call GMP_ASM_SPARC_GOTDATA and
  2581  	GMP_ASM_SPARC_SHARED_THUNKS on sparc.
  2582  	* mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros.
  2583  	* mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK.
  2584  	* mpn/sparc32/v8/addmul_1.asm: Likewise.
  2585  	* mpn/sparc32/v8/mul_1.asm: Likewise.
  2586  	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
  2587  	* mpn/sparc32/v8/udiv.asm: Likewise.
  2588  	* mpn/sparc64/gcd_1.asm: Likewise.
  2589  	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
  2590  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
  2591  	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
  2592  	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32.
  2593  
  2594  2013-04-09  Torbjorn Granlund  <tege@gmplib.org>
  2595  
  2596  	* longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3.
  2597  
  2598  	* config.guess (sparc*): Invoke set_cc_for_build to get $dummy.
  2599  
  2600  2013-04-08  Torbjorn Granlund  <tege@gmplib.org>
  2601  
  2602  	* config.guess: Rework tmp file names, make sure to remove tmp files.
  2603  
  2604  	* mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private
  2605  	table.
  2606  
  2607  	* mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for
  2608  	shift ops.
  2609  
  2610  2013-04-07  Torbjorn Granlund  <tege@gmplib.org>
  2611  
  2612  	* mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file.
  2613  
  2614  	* longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and
  2615  	count_leading_zeros conditionally under the symbol __sparc_vis3.
  2616  
  2617  	* mpn/arm/dive_1.asm: New file.
  2618  	* mpn/arm/v6/dive_1.asm: New file.
  2619  
  2620  	* mpn/arm/v6t2/mode1o.asm: Make trivial change to avoid v6t2...
  2621  	* mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly.
  2622  
  2623  	* mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first.
  2624  
  2625  2013-04-04  David S. Miller  <davem@davemloft.net>
  2626  
  2627  	* mpn/sparc64/ultrasparct3/add_n.asm: Rewrite.
  2628  	* mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite.
  2629  
  2630  	* mpn/sparc64/ultrasparct3/invert_limb.asm: Align table.
  2631  
  2632  2013-04-04  Torbjorn Granlund  <tege@gmplib.org>
  2633  
  2634  	* mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt.
  2635  
  2636  	* tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb.
  2637  
  2638  	* tests/mpn/t-div.c (random_word): Remove.  Let callers invoke urandom.
  2639  
  2640  	* mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite.
  2641  
  2642  	* mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file.
  2643  	* mpn/sparc64/ultrasparct3/dive_1.asm: New file.
  2644  	* mpn/sparc64/ultrasparct3/invert_limb.asm: New file.
  2645  	* mpn/sparc64/ultrasparct3/mod_1_4.asm: New file.
  2646  	* mpn/sparc64/ultrasparct3/mode1o.asm: New file.
  2647  
  2648  2013-04-03  Torbjorn Granlund  <tege@gmplib.org>
  2649  
  2650  	* mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed.
  2651  
  2652  2013-04-02  Torbjorn Granlund  <tege@gmplib.org>
  2653  
  2654  	* mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks.
  2655  	 (lzcnt): New.
  2656  	* mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function.
  2657  
  2658  	* mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here...
  2659  	* mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here.
  2660  
  2661  	* mpn/sparc64/ultrasparc1234/lshift.asm: Remove.
  2662  	* mpn/sparc64/ultrasparc1234/rshift.asm: Remove.
  2663  
  2664  2013-04-01  Torbjorn Granlund  <tege@gmplib.org>
  2665  
  2666  	* mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
  2667  	allowing use in functions that does not do save/restore.
  2668  
  2669  	* mpn/sparc64/gcd_1.asm: Tweak for tighter loop.
  2670  
  2671  2013-03-31  David S. Miller  <davem@davemloft.net>
  2672  
  2673  	* mpn/sparc64/lshift.asm: New file.
  2674  	* mpn/sparc64/rshift.asm: New file.
  2675  	* mpn/sparc64/lshiftc.asm: New file.
  2676  
  2677  2013-03-31  Torbjorn Granlund  <tege@gmplib.org>
  2678  
  2679  	* mpn/sparc64/ultrasparct1/lshift.asm: Remove.
  2680  	* mpn/sparc64/ultrasparct1/rshift.asm: Remove.
  2681  	* mpn/sparc64/ultrasparct1/lshiftc.asm: Remove.
  2682  
  2683  2013-03-29  Torbjorn Granlund  <tege@gmplib.org>
  2684  
  2685  	* mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi.
  2686  
  2687  2013-03-28  Torbjorn Granlund  <tege@gmplib.org>
  2688  
  2689  	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'.
  2690  	(mpn_mod_1s_4p_cps): Update from generic code.
  2691  
  2692  2013-03-27  Torbjorn Granlund  <tege@gmplib.org>
  2693  
  2694  	* mpn/generic/trialdiv.c: Make variables 'const' to match tables.
  2695  
  2696  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'.
  2697  	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise.
  2698  	* mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise.
  2699  	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise.
  2700  	* gmp-impl.h: Update prototypes.
  2701  
  2702  	* mpn/x86_64/mulx/aorsmul_1.asm: New file.
  2703  	* mpn/x86_64/mulx/addmul_1.asm: Remove.
  2704  
  2705  2013-03-26  Niels Möller  <nisse@lysator.liu.se>
  2706  
  2707  	Make mpn_cnd_add_n and mpn_cnd_sub_n public.
  2708  	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and
  2709  	mpn_cnd_sub_n.
  2710  	* gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes
  2711  	here...
  2712  	* gmp-impl.h: ... from here.
  2713  
  2714  2013-03-26  Torbjorn Granlund  <tege@gmplib.org>
  2715  
  2716  	* mpn/x86/pentium4/sse2/cnd_add_n.asm: New file.
  2717  	* mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file.
  2718  	* mpn/x86/cnd_aors_n.asm: New file.
  2719  
  2720  2013-03-25  David S. Miller  <davem@davemloft.net>
  2721  
  2722  	* mpn/sparc64/ultrasparct3/hamdist.asm: New file.
  2723  	* mpn/sparc64/ultrasparct3/popcount.asm: New file.
  2724  
  2725  2013-03-25  Torbjorn Granlund  <tege@gmplib.org>
  2726  
  2727  	* mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm.
  2728  	* mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm.
  2729  	* mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm.
  2730  
  2731  2013-03-24  Torbjorn Granlund  <tege@gmplib.org>
  2732  
  2733  	* mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file.
  2734  	* mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file.
  2735  	* mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file.
  2736  	* mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file.
  2737  
  2738  	* configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files.
  2739  
  2740  	* tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly
  2741  	assert of mp_limb being non-negative.
  2742  
  2743  2013-03-21  Torbjorn Granlund  <tege@gmplib.org>
  2744  
  2745  	* mpn/arm/neon/lshiftc.asm: New file.
  2746  
  2747  	* mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop.
  2748  
  2749  	* gen-trialdivtab.c: Output just raw data, remove actual variables.
  2750  	* mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here,
  2751  	and make them 'const'.
  2752  
  2753  2013-03-20  Torbjorn Granlund  <tege@gmplib.org>
  2754  
  2755  	* config.guess: Rework arm CPU recognition.
  2756  	* config.sub: Corresponding updates.
  2757  	* configure.ac: Likewise.
  2758  
  2759  	* mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default.
  2760  
  2761  	* mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..".
  2762  	* mpn/arm/v7a/cora15/neon/copyd.asm: Likewise.
  2763  
  2764  	* config.guess: Tack on "neon" for appropriate arm CPUs.
  2765  	* configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15.
  2766  
  2767  2013-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  2768  
  2769  	* mpf/fits_u.h: Accept numbers truncating to zero before checking the
  2770  	sign.
  2771  	* tests/mpf/t-fits.c: Check new edges.
  2772  
  2773  2013-03-19  Torbjorn Granlund  <tege@gmplib.org>
  2774  
  2775  	* tests/arm32check.c: Get printing of clobbered register right.
  2776  
  2777  	* mpn/arm/neon/popcount.asm: New file.
  2778  	* mpn/arm/neon/hamdist.asm: New file.
  2779  
  2780  	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and
  2781  	arm32check.c.
  2782  
  2783  2013-03-18  Torbjorn Granlund  <tege@gmplib.org>
  2784  
  2785  	* configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS.
  2786  
  2787  	* tests/arm32call.asm: New file.
  2788  	* tests/arm32check.c: New file.
  2789  
  2790  	* mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use.
  2791  	(EPILOGUE_cpu): Define.
  2792  
  2793  	* mpn/arm/v6/addmul_3.asm: Make code work for PIC.
  2794  
  2795  	* tests/x86call.asm: Modernise asm syntax.
  2796  	* tests/amd64call.asm: Likewise.
  2797  
  2798  	* mpn/x86/darwin.m4 (m4append): Move definition from here...
  2799  	* mpn/asm-defs.m4: ...to here.
  2800  
  2801  2013-03-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
  2802  
  2803  	* doc/gmp.texi (--enable-fat): No quote in concept index.
  2804  
  2805  	* mpf/swap.c: Reduce the number of variables.
  2806  
  2807  2012-03-17  Marc Glisse  <marc.glisse@inria.fr>
  2808  
  2809  	* tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file.
  2810  	* tests/cxx/Makefile.am: Add new file. Reorder the tests.
  2811  
  2812  2013-03-17  Torbjorn Granlund  <tege@gmplib.org>
  2813  
  2814  	* mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas.
  2815  
  2816  	* mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code.
  2817  
  2818  	* mpn/arm/v6/addmul_3.asm: New file.
  2819  
  2820  	* mpn/arm/v7a/cora15/copyd.asm: Tweak.
  2821  
  2822  	* mpn/arm64/copyi.asm: New file.
  2823  	* mpn/arm64/copyd.asm: New file.
  2824  
  2825  2013-03-16  Torbjorn Granlund  <tege@gmplib.org>
  2826  
  2827  	* mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance.
  2828  
  2829  2013-03-14  Torbjorn Granlund  <tege@gmplib.org>
  2830  
  2831  	* mpn/ia64/cnd_aors_n.asm: New file.
  2832  
  2833  	* mpn/arm64/cnd_aors_n.asm: New file.
  2834  
  2835  	* mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition.
  2836  
  2837  	* mpn/ia64/aors_n.asm: Remove a redundant ASM_START.
  2838  
  2839  	* mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution.
  2840  
  2841  	* mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently
  2842  	prune missing.asm from path.
  2843  	* mpn/x86_64/mulx/adx/missing-call.m4: Likewise.
  2844  	* mpn/x86_64/mulx/adx/missing-inline.m4: Likewise.
  2845  	* mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path.
  2846  
  2847  2013-03-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
  2848  
  2849  	* mpz/cong_2exp.c: Write loops in a cleaner way.
  2850  	* mini-gmp/mini-gmp.c: Likewise.
  2851  	* gmp-impl.h (mpz_zero_p): Likewise.
  2852  
  2853  2013-03-12  Niels Möller  <nisse@lysator.liu.se>
  2854  
  2855  	New names mpn_cnd_add_n and mpn_cnd_sub_n.
  2856  	* mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and
  2857  	function, from addcnd.c:mpn_addcnd_n.
  2858  	* mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from
  2859  	subcnd.c:mpn_subcnd_n.
  2860  	* mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and
  2861  	renamed functions.
  2862  	* mpn/x86_64/cnd_aors_n.asm: Analogous renaming.
  2863  	* mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming.
  2864  	* gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes
  2865  	with new names.
  2866  	* configure.ac: Updated for new names.
  2867  	* tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n.
  2868  	(refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n.
  2869  	* tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated
  2870  	prototypes with new names.
  2871  	* tune/common.c (speed_mpn_cnd_add_n): Renamed, from
  2872  	speed_mpn_addcnd_n, call mpn_cnd_add_n.
  2873  	(speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call
  2874  	mpn_cnd_sub_n.
  2875  	* tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated
  2876  	prototypes with new names.
  2877  	* tune/speed.c (routine): Updated list with new names.
  2878  	* tests/devel/try.c: Updated for new mpn_cnd_* names.
  2879  	* mpn/generic/sbpi1_div_sec.c: Likewise.
  2880  	* mpn/generic/powm_sec.c: Likewise.
  2881  
  2882  2013-03-12  Torbjorn Granlund  <tege@gmplib.org>
  2883  
  2884  	* configure.ac: Add "missing" to extra_functions_64 for coreibwl.
  2885  
  2886  	* mpn/x86_64/mulx/adx/addmul_1.asm: Simplify.  Make FAKE_MULXADX the
  2887  	default awaiting proper qemu behaviour.
  2888  
  2889  2013-03-11  Torbjorn Granlund  <tege@gmplib.org>
  2890  
  2891  	* mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64.
  2892  
  2893  	* tests/mpz/t-powm_ui.c: Test larger arguments.  General cleanup.
  2894  
  2895  	* mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements.
  2896  
  2897  2013-03-10  Niels Möller  <nisse@lysator.liu.se>
  2898  
  2899  	* mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and
  2900  	mpn_subcnd_n.
  2901  	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC)
  2902  	(mpn_powm_sec): Update calls of mpn_subcnd_n.
  2903  
  2904  	* tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update
  2905  	declarations.
  2906  	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar
  2907  	reorder of arguments.
  2908  	* tests/devel/try.c (call): Pass condition first, for
  2909  	TYPE_ADDCND_N and TYPE_SUBCND_N.
  2910  
  2911  	* tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update
  2912  	to pass condition as first argument.
  2913  
  2914  	* gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations.
  2915  
  2916  	* mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make
  2917  	condition the first argument.
  2918  	* mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise.
  2919  	* mpn/arm/aorscnd_n.asm: Likewise.
  2920  	* mpn/x86_64/aorscnd_n.asm: Likewise.
  2921  	* mpn/powerpc64/mode64/aorscnd_n.asm: Likewise.
  2922  
  2923  2013-03-10  Torbjorn Granlund  <tege@gmplib.org>
  2924  
  2925  	* mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns.
  2926  	* mpn/x86_64/mulx/adx/missing-call.m4: Call variant.
  2927  	* mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant.
  2928  
  2929  	* mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns.
  2930  	* mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for
  2931  	v9-2011 insn.
  2932  
  2933  	* configure.ac: Strip `haswell' from paths for now.
  2934  
  2935  	* mpn/x86_64/mulx/addmul_1.asm: New.
  2936  	* mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir.
  2937  	* mpn/x86_64/mulx/adx/addmul_1.asm: Likewise.
  2938  	* mpn/x86_64/haswell: Remove.
  2939  
  2940  	* mpn/arm/v7a/cora15/mul_1.asm: New file.
  2941  	* mpn/arm/v7a/cora15/addmul_1.asm: New file.
  2942  
  2943  2013-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  2944  
  2945  	* tests/mpz/t-cong_2exp.c: Improve coverage.
  2946  
  2947  2013-03-09  Torbjorn Granlund  <tege@gmplib.org>
  2948  
  2949  	* mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4.
  2950  	* mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise.
  2951  
  2952  	* mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo.
  2953  
  2954  2013-03-07  Torbjorn Granlund  <tege@gmplib.org>
  2955  
  2956  	* mpn/arm/v7a/cora9/gmp-mparam.h: New file.
  2957  
  2958  	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2.
  2959  
  2960  	* mpn/sparc64/ultrasparct3/aormul_2.asm: New file.
  2961  
  2962  	* mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry
  2963  	propagating adds.
  2964  
  2965  2013-03-06  David Miller  <davem@davemloft.net>
  2966  
  2967  	* config.guess: Recognize UltraSparc T4 under Linux.
  2968  	* configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4.
  2969  	Append -xarch=v8plusd or -xarch=v9d to command line, as needed.
  2970  	* mpn/sparc64/ultrasparct3/mul_1.asm: New file.
  2971  	* mpn/sparc64/ultrasparct3/addmul_1.asm: New file.
  2972  	* mpn/sparc64/ultrasparct3/submul_1.asm: New file.
  2973  	* mpn/sparc64/ultrasparct3/add_n.asm: New file.
  2974  	* mpn/sparc64/ultrasparct3/sub_n.asm: New file.
  2975  
  2976  	* mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add
  2977  	T2/T3/T4 timings.
  2978  	* mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise.
  2979  	* mpn/sparc32/ultrasparct1/submul_1.asm: Likewise.
  2980  
  2981  2013-03-04  Torbjorn Granlund  <tege@gmplib.org>
  2982  
  2983  	* mpn/arm/neon/lorrshift.asm: New file.
  2984  
  2985  2013-03-03  Torbjorn Granlund  <tege@gmplib.org>
  2986  
  2987  	* mpn/arm/v7a/cora15/copyd.asm: New file.
  2988  	* mpn/arm/v7a/cora15/copyi.asm: New file.
  2989  
  2990  	* mpn/arm64/logops_n.asm: New file.
  2991  	* mpn/arm64/gcd_1.asm: New file.
  2992  	* mpn/arm64/aorsmul_1.asm: New file.
  2993  	* mpn/arm64/addmul_1.asm: Remove.
  2994  	* mpn/arm64/aors_n.asm: Complete rewrite.
  2995  
  2996  	* mpn/arm/tabselect.asm: New file.
  2997  	* mpn/arm/neon/tabselect.asm: New file.
  2998  
  2999  	* mpn/arm/copyi.asm: Software pipeline.
  3000  	* mpn/arm/copyd.asm: Likewise.
  3001  
  3002  	* config.guess: Rework tmp file handling to resemble configfsf.guess's.
  3003  
  3004  2013-03-03  Niels Möller  <nisse@lysator.liu.se>
  3005  
  3006  	* doc/gmp.texi (Integer Special Functions): Document
  3007  	mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify,
  3008  	mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N.
  3009  
  3010  	* mpz/roinit_n.c (mpz_roinit_n): Normalize the input.
  3011  
  3012  2013-02-27  Niels Möller  <nisse@lysator.liu.se>
  3013  
  3014  	* tune/common.c (speed_measure): Increase repetition count if we
  3015  	get a zero measurement.
  3016  
  3017  2013-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3018  
  3019  	* mini-gmp/mini-gmp.c (mpz_div_q_2exp): Adjust only if needed.
  3020  	(mpn_common_scan): New service function to unify scan loops.
  3021  	(mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan.
  3022  	(mpz_make_odd): Simplify, assume in-place operation on positive.
  3023  	(mpn_scan0, mpn_scan1): New functions.
  3024  	* mini-gmp/mini-gmp.h (mpn_scan0, mpn_scan1): New declarations.
  3025  	* mini-gmp/tests/t-scan.c: Test also mpn_scan0 and mpn_scan1.
  3026  
  3027  2013-02-26  Niels Möller  <nisse@lysator.liu.se>
  3028  
  3029  	* tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if
  3030  	compiler supports c99.
  3031  
  3032  2013-02-25  Niels Möller  <nisse@lysator.liu.se>
  3033  
  3034  	* mini-gmp/tests/t-double.c (testmain): Declare double variables
  3035  	as volatile, to drop extended precision.
  3036  
  3037  	* mini-gmp/tests/testutils.c (testfree): New function. Use it
  3038  	everywhere where test programs deallocate storage allocated via
  3039  	the mini-gmp allocation functions, including uses of mpz_get_str
  3040  	for various test failure messages.
  3041  
  3042  	* mpz/limbs_finish.c (mpz_limbs_finish): New file and function.
  3043  	* mpz/limbs_modify.c (mpz_limbs_modify): New file and function.
  3044  	* mpz/limbs_read.c (mpz_limbs_read): New file and function.
  3045  	* mpz/limbs_write.c (mpz_limbs_write): New file and function.
  3046  	* mpz/roinit_n.c (mpz_roinit_n): New file and function.
  3047  	* gmp-h.in: Declare new functions.
  3048  	(MPZ_ROINIT_N): New macro.
  3049  	* mpz/Makefile.am (libmpz_la_SOURCES): Added new files.
  3050  	* Makefile.am (MPZ_OBJECTS): Added new object files.
  3051  
  3052  	* tests/mpz/t-limbs.c: New testcase.
  3053  	* tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs.
  3054  
  3055  2013-02-22  Torbjorn Granlund  <tege@gmplib.org>
  3056  
  3057  	* configure.ac: Fix typo in adx/mulx path stripping code.
  3058  	* config.sub: Match coreibwl.
  3059  
  3060  2013-02-20  Niels Möller  <nisse@lysator.liu.se>
  3061  
  3062  	* tests/mpq/t-get_d.c (check_random): Rewrote to make test less
  3063  	dependent on float operations. Fixes problem with m68k-linux and
  3064  	extended float precision.
  3065  
  3066  2013-02-20  Torbjorn Granlund  <tege@gmplib.org>
  3067  
  3068  	* mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file.
  3069  
  3070  	* configure.ac: Support coreibwl.  Use proper name for ADX extension.
  3071  	* acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX.
  3072  
  3073  	* tests/tests.h (TESTS_REPS): Keep count >= 1.
  3074  
  3075  2013-02-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3076  
  3077  	* mini-gmp/mini-gmp.c: Move asserts to work-around a compiler bug.
  3078  	(mpz_export): Reorder branches.
  3079  	(mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place).
  3080  
  3081  	* mini-gmp/tests/t-reuse.c: Fix typo causing the same negation
  3082  	condition to be applied to all operands. (See 2013-02-03, Torbjorn)
  3083  
  3084  2013-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3085  
  3086  	* gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]:
  3087  	Optimise _si using _ui for positive arguments.
  3088  	(__gmp_hypot_function): Use _mul_ui to square an ui, abs for si.
  3089  
  3090  	* mini-gmp/mini-gmp.c (mpz_mul): Read sizes just once.
  3091  	(mpn_set_str_other): Remove a redundant variable.
  3092  	(mpz_abs_add): Use SWAP once, to order sizes.
  3093  	(mpz_mul_ui): Micro-optimisation.
  3094  	(mpz_rootrem): Use _init2 before _setbit.
  3095  	(mpz_set_str): Optimise-out a variable.
  3096  	(mpz_import): Normalise only if needed.
  3097  	(mpn_div_qr_1): Speed-up the d=1 case, delaying a branch.
  3098  
  3099  	* rand/randmts.c: Use init2, as size of variables is known in advance.
  3100  	(mangle_seed): Get a single argument.
  3101  
  3102  	* mpz/remove.c: Delay allocation in the generic case; use swap
  3103  	instead of set.
  3104  	* mpn/generic/remove.c: Delay (possibly smaller) allocation.
  3105  
  3106  2013-02-17  Marc Glisse  <marc.glisse@inria.fr>
  3107  
  3108  	* cxx/osdoprnti.cc: Use <stdarg.h> and <string.h> rather than <cstdarg>
  3109  	and <cstring> (revert 2002-12-21).
  3110  
  3111  	* tests/cxx/Makefile.am: Link with libm.
  3112  	* tests/cxx/t-ops2.cc: Comment about more tests. Use <math.h> rather
  3113  	than <cmath> and using namespace. Don't include <iostream>.
  3114  
  3115  	* gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS,
  3116  	__GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros.
  3117  	(__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies,
  3118  	__gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less,
  3119  	__gmp_cmp_function): Use __GMPXX_TMPQ_D.
  3120  	* tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX.
  3121  
  3122  	* gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use
  3123  	__GMPXX_CONSTANT_TRUE.
  3124  
  3125  2013-02-16  Marc Glisse  <marc.glisse@inria.fr>
  3126  
  3127  	* gmpxx.h: Include <algorithm>.
  3128  
  3129  2013-02-16  Torbjorn Granlund  <tege@gmplib.org>
  3130  
  3131  	* mpn/Makefile.am (TARG_DIST): Add arm64.
  3132  
  3133  	* mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of
  3134  	'.protected" to please Sun's assembler, but also for semantic reasons.
  3135  
  3136  2013-02-15  Torbjorn Granlund  <tege@gmplib.org>
  3137  
  3138  	* configure.ac (arm64*-*-*): Match this.
  3139  
  3140  	* mpn/arm64/aors_n.asm: New file.
  3141  	* mpn/arm64/addmul_1.asm: New file.
  3142  	* mpn/arm64/mul_1.asm: New file.
  3143  
  3144  2013-02-15  Marc Glisse  <marc.glisse@inria.fr>
  3145  
  3146  	* gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS,
  3147  	__GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros.
  3148  	(mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d,
  3149  	assign_ui, assign_si, assign_d]: New functions.
  3150  	(__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros.
  3151  	(__GMPXX_CONSTANT_TRUE): New macro.
  3152  
  3153  2013-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3154  
  3155  	* gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST.
  3156  	* mpz/fits_s.h: Use NEG_CAST.
  3157  
  3158  2013-02-14  Marc Glisse  <marc.glisse@inria.fr>
  3159  
  3160  	* gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less.
  3161  	(__gmp_binary_equal): Forward to itself after swapping operands.
  3162  
  3163  2013-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3164  
  3165  	* mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values.
  3166  	* mpf/set_str.c: Update offset accordingly.
  3167  	* mpz/inp_str.c: Likewise.
  3168  	* mpz/set_str.c: Likewise.
  3169  
  3170  	* gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1.
  3171  	* tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1.
  3172  
  3173  	* mpz/clrbit.c: Reorganise branches.
  3174  	* mpz/setbit.c: Likewise.
  3175  	* mpz/combit.c: Same micro-optimisations as in set/clr.
  3176  
  3177  	* mpz/aors_ui.h: No realloc if size was zero.
  3178  	* mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U.
  3179  
  3180  	* gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST.
  3181  	* mpq/cmp_si.c: Use NEG_CAST.
  3182  	* mpz/cmp_si.c: Reorganise branches.
  3183  
  3184  2013-02-13  Torbjorn Granlund  <tege@gmplib.org>
  3185  
  3186  	* acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests.
  3187  	* configure.ac: Use new feature tests.
  3188  
  3189  	* mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older
  3190  	assemblers.
  3191  	* configure.ac: Update haswell path to include "mulx".
  3192  
  3193  2013-02-12  Torbjorn Granlund  <tege@gmplib.org>
  3194  
  3195  	* configure.ac: Recognise haswell.
  3196  	* config.guess: Recognise haswell.
  3197  	* config.sub: Match haswell.
  3198  
  3199  	* mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI.
  3200  
  3201  2013-02-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3202  
  3203  	* gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro.
  3204  	* gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set.
  3205  	* mini-gmp/mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code.
  3206  
  3207  	* mpn/generic/mulmod_bnm1.c: Reorganise branches.
  3208  	* mini-gmp/mini-gmp.c: Reduce branches.
  3209  
  3210  	* mpz/bin_ui.c: Avoid a copy when n < 0.
  3211  	* mpz/mfac_uiui.c: Reduce memory usage.
  3212  	* mpz/primorial_ui.c: Use MPZ_NEWALLOC.
  3213  
  3214  	* mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC.
  3215  	* mpz/inp_raw.c: Likewise.
  3216  	* mpz/rrandomb.c: Likewise.
  3217  	* mpz/urandomb.c: Likewise.
  3218  	* mpn/generic/random2.c: Likewise.
  3219  
  3220  	* mpn/generic/brootinv.c: Micro-optimisation.
  3221  
  3222  	* mpf/set_str.c: Don't chech base==0 when base is strictly positive.
  3223  
  3224  2013-02-10  Torbjorn Granlund  <tege@gmplib.org>
  3225  
  3226  	* Version 5.1.1 released.
  3227  
  3228  2013-02-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3229  
  3230  	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s.
  3231  	* tune/README: Document new parameter syntax mpn_mul.<#> .
  3232  
  3233  2013-02-06  Niels Möller  <nisse@lysator.liu.se>
  3234  
  3235  	* tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a
  3236  	more efficient method for generating the test inputs.
  3237  
  3238  2013-02-05  Torbjorn Granlund  <tege@gmplib.org>
  3239  
  3240  	* tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop.
  3241  
  3242  2013-02-03  Torbjorn Granlund  <tege@gmplib.org>
  3243  
  3244  	* tests/mpz/reuse.c: Fix typo causing the same negation condition to be
  3245  	applied to all operands.  Fix condition for when to invoke mpz_remove.
  3246  	Make different-size random operands.
  3247  
  3248  2013-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3249  
  3250  	* mpz/remove.c: Correct the sign in case of reuse.
  3251  
  3252  2013-02-01  Torbjorn Granlund  <tege@gmplib.org>
  3253  
  3254  	* gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast.
  3255  	(LIMBS_PER_DIGIT_IN_BASE): Likewise.
  3256  
  3257  	* tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the
  3258  	largest operands.
  3259  
  3260  2013-01-31  Torbjorn Granlund  <tege@gmplib.org>
  3261  
  3262  	* mpn/generic/toom44_mul.c: Revert last change in favour of a simple
  3263  	change (thanks Marco!).
  3264  	* mpn/generic/toom4_sqr.c: Likewise.
  3265  
  3266  2013-01-30  Torbjorn Granlund  <tege@gmplib.org>
  3267  
  3268  	* mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h
  3269  	into account, using new macro MUL_NEXTALG_THRESHOLD.
  3270  	* mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise.
  3271  
  3272  2013-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3273  
  3274  	* mpz/remove.c: init+set=init_set, cast before shifting.
  3275  
  3276  	* mpz/cmp_si.c: Use ABS_CAST.
  3277  
  3278  2013-01-26  Torbjorn Granlund  <tege@gmplib.org>
  3279  
  3280  	* tests/mpn/logic.c: Set things up to always test library logops, not
  3281  	gmp-impl.h's inlined variants.  Test also mpn_com.
  3282  
  3283  	* tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p.
  3284  
  3285  	* mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c.
  3286  
  3287  	* tests/mpz/reuse.c: Fix typo in last change.
  3288  
  3289  2013-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3290  
  3291  	* mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify.
  3292  	(mpz_set_str): Behaviour more adherent to the real GMP.
  3293  
  3294  	* mini-gmp/tests/t-str.c: Cast size_t to unsigned long, for printf.
  3295  	* mini-gmp/tests/t-import.c: Likewise.
  3296  	* mini-gmp/tests/t-comb.c: Remove an unused var.
  3297  	* mini-gmp/tests/t-div.c: Remove unused args passed to fprintf.
  3298  	* mini-gmp/tests/t-double.c: Use float immediates with float vars.
  3299  
  3300  2013-01-22  Torbjorn Granlund  <tege@gmplib.org>
  3301  
  3302  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
  3303  	* gmp-h.in: Bump version.
  3304  
  3305  	* tests/mpz/reuse.c: Delete always zero 'failures' and code depending
  3306  	on it.  Replace rotating progress with real measure.
  3307  
  3308  	* Makefile.am (check-mini-gmp): Fix typo in last change.
  3309  
  3310  2013-01-22  Niels Möller  <nisse@lysator.liu.se>
  3311  
  3312  	* mini-gmp/mini-gmp.c (mpz_cmp_d): Simplified, just sort out
  3313  	signs, then call mpz_cmpabs_d.
  3314  
  3315  	* mini-gmp/tests/testutils.h: Include stdio.h and stdlib.h.
  3316  	(numberof): New define.
  3317  
  3318  	* mini-gmp/tests/t-cmp_d.c: New file, copied from
  3319  	tests/mpz/t-cmp_d.c with minor changes.
  3320  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d,
  3321  
  3322  	* mini-gmp/mini-gmp.c (mpz_cmpabs_d): New function.
  3323  	* mini-gmp/mini-gmp.h: Declare it.
  3324  
  3325  2013-01-21  Niels Möller  <nisse@lysator.liu.se>
  3326  
  3327  	* mini-gmp/tests/t-str.c (testmain): Test mpz_out_str, using
  3328  	the tmpfile function for i/o.
  3329  
  3330  2013-01-20  Torbjorn Granlund  <tege@gmplib.org>
  3331  
  3332  	* Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the
  3333  	benefit of Darwin.
  3334  
  3335  	* tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec.
  3336  	(main): Separate divisor into normalised (dnp) and unnormalised (dup),
  3337  	pass appropriate variant to each function.
  3338  	(main): Make negative `test' index value mean divisor bits, for better
  3339  	small operands coverage.
  3340  	(main): Put random junk at qp[] instead of zeroing.
  3341  
  3342  	* tests/mpz/t-remove.c: Back out last change which left `divisor_size'
  3343  	uninitialised; achieve change's aim with a parameter tweak.
  3344  
  3345  2013-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3346  
  3347  	* mini-gmp/tests/testutils.c (testhalves): New function, test default
  3348  	memory functions.
  3349  	* mini-gmp/tests/testutils.h (testhalves): Declare it
  3350  	* mini-gmp/tests/t-logops.c: Use testhalves.
  3351  
  3352  	* mini-gmp/mini-gmp.c (mpz_init_set_str): New function.
  3353  	* mini-gmp/mini-gmp.h (mpz_init_set_str): Declare it.
  3354  	* mini-gmp/tests/t-str.c: Test mpz_init_set_str.
  3355  
  3356  2013-01-20  Torbjorn Granlund  <tege@gmplib.org>
  3357  
  3358  	* tests/memory.c (PTRLIMB): New macro, used for conformant casting.
  3359  
  3360  2013-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3361  
  3362  	* mini-gmp/tests/t-double.c (testmain): Get the current free
  3363  	function using mp_get_memory_functions.
  3364  	* mini-gmp/tests/t-str.c (testmain): Likewise.
  3365  
  3366  	* mini-gmp/tests/testutils.h (tu_free): Remove declaration.
  3367  
  3368  	* mini-gmp/tests/testutils.c (block_check, tu_free): Mark static.
  3369  
  3370  	* tests/mpz/t-set_str.c: Check also failing conditions.
  3371  
  3372  	* tests/mpz/t-remove.c: Test removal of 1.
  3373  
  3374  2013-01-18  Niels Möller  <nisse@lysator.liu.se>
  3375  
  3376  	* mini-gmp/tests/t-str.c (test_small): New function, exercising
  3377  	parsing of whitespace and base prefixes.
  3378  	(testmain): Call it.
  3379  
  3380  	* mini-gmp/tests/t-gcd.c (gcdext_valid_p): Fixed memory leak.
  3381  
  3382  	* mini-gmp/tests/t-double.c (testmain): Call tu_free rather than
  3383  	free, for storage allocated by mpz_get_str.
  3384  	* mini-gmp/tests/t-str.c (testmain): Likewise.
  3385  
  3386  	* mini-gmp/tests/testutils.c (block_init, block_check): New
  3387  	functions.
  3388  	(tu_alloc, tu_realloc, tu_free): New functions.
  3389  	(main): Use mp_set_memory_functions.
  3390  	* mini-gmp/tests/testutils.h (tu_free): Declare.
  3391  
  3392  	* mini-gmp/tests/testutils.h: New file, declarations for test
  3393  	programs.
  3394  
  3395  	* mini-gmp/tests/testutils.c (main): New file, with shared main
  3396  	function for all the test programs. Also includes mini-gmp.c.
  3397  	Calls testmain after initialization. All other test programs
  3398  	updated to define testmain rather than main.
  3399  
  3400  2013-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3401  
  3402  	* mini-gmp/tests/t-signed.c: Slightly larger coverage.
  3403  	* mini-gmp/tests/t-double.c: Test also mpz_init_set_d.
  3404  
  3405  2013-01-18  Torbjorn Granlund  <tege@gmplib.org>
  3406  
  3407  	* mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused
  3408  	variable.
  3409  
  3410  	* mini-gmp/tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p.
  3411  
  3412  	* tests/tests.h (TESTS_REPS): Fix printf argument type clashes.
  3413  
  3414  	* mini-gmp/tests/t-div.c: Test also mpz_mod, mpz_mod_ui.  Compare
  3415  	mpz_divisible_p just to ceil, to save time.
  3416  
  3417  	* mini-gmp/mini-gmp.c: Prefix some names with GMP_.
  3418  
  3419  2013-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3420  
  3421  	* mini-gmp/tests/t-double.c: Test mpz_cmp_d.
  3422  	* mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison.
  3423  
  3424  	* mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string.
  3425  	* mini-gmp/tests/t-str.c: Test base <= 0.
  3426  
  3427  2013-01-15  Niels Möller  <nisse@lysator.liu.se>
  3428  
  3429  	* mini-gmp/tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d.
  3430  	* mini-gmp/tests/t-invert.c (main): Likewise.
  3431  
  3432  	* mini-gmp/tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr.
  3433  
  3434  	* mini-gmp/tests/hex-random.h (enum hex_random_op): New value
  3435  	OP_SQR.
  3436  
  3437  	* mini-gmp/tests/mini-random.c (mini_random_op3): Renamed, from...
  3438  	(mini_random_op): ... old name. Updated callers.
  3439  	(mini_random_op2): New function.
  3440  
  3441  	* mini-gmp/tests/hex-random.c (hex_random_op3): Renamed, from...
  3442  	(hex_random_op): ... old name. Updated callers.
  3443  	(hex_random_op2): New function.
  3444  
  3445  2013-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3446  
  3447  	* mini-gmp/tests/t-logops.c: Improve popcount/hamdist testing.
  3448  	* mini-gmp/tests/t-signed.c: Test more cases.
  3449  
  3450  2013-01-15  Torbjorn Granlund  <tege@gmplib.org>
  3451  
  3452  	From Mike Frysinger:
  3453  	* configure.ac: Add x32 ABI for x86_64.
  3454  
  3455  2013-01-14  Niels Möller  <nisse@lysator.liu.se>
  3456  
  3457  	* mini-gmp/tests/t-str.c (main): Added tests for mpn_get_str and
  3458  	mpn_set_str.
  3459  
  3460  2013-01-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3461  
  3462  	* doc/gmp.texi (gmp_version): Remove "was used" repetition.
  3463  	(Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5.
  3464  
  3465  2013-01-13  Marc Glisse  <marc.glisse@inria.fr>
  3466  
  3467  	* doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead
  3468  	of mpz_perfect_square_p.
  3469  
  3470  2013-01-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3471  
  3472  	* mini-gmp/tests/t-comb.c: New test program, testing both
  3473  	mpz_fac_ui and mpz_bin_uiui.
  3474  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-comb.
  3475  
  3476  	* mini-gmp/mini-gmp.c (mpz_mul_si): Simplify.
  3477  	(mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2.
  3478  
  3479  	* mini-gmp/mini-gmp.c (NEG_CAST): New macro.
  3480  	(mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST.
  3481  
  3482  	* mini-gmp/mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using
  3483  	the _ui variant.
  3484  
  3485  	* mini-gmp/tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui.
  3486  
  3487  	* mini-gmp/tests/t-mul.c: Test also mpz_mul_si.
  3488  	* mini-gmp/tests/t-sub.c: Test also mpz_ui_sub.
  3489  
  3490  	* mini-gmp/mini-gmp.c (mpz_fits_slong_p): Correct range.
  3491  	* mini-gmp/tests/t-signed.c: New test program, for get/set/cmp_si.
  3492  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-signed.
  3493  
  3494  	* mini-gmp/mini-gmp.c (mpz_hamdist): Handle different sizes.
  3495  	* mini-gmp/tests/t-logops.c: Test also popcount and hamdist.
  3496  
  3497  2013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3498  
  3499  	* mpz/export.c: Less restrictive ASSERTs.
  3500  	* mini-gmp/mini-gmp.c (mpz_export, mpz_import): Likewise.
  3501  	* mini-gmp/tests/t-import.c: Test also size=0 or count=0.
  3502  
  3503  2013-01-10  Torbjorn Granlund  <tege@gmplib.org>
  3504  
  3505  	* mini-gmp/tests/t-import.c (main): Don't drop off function end.
  3506  
  3507  	* Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing
  3508  	with dynamic main GMP build.
  3509  
  3510  2013-01-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3511  
  3512  	* mini-gmp/mini-gmp.c (mpz_export): Support op=0 countp=NULL.
  3513  
  3514  2013-01-08  Niels Möller  <nisse@lysator.liu.se>
  3515  
  3516  	* mini-gmp/tests/t-import.c: New test program, testing both
  3517  	mpz_import and mpz_export.
  3518  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-import.
  3519  
  3520  	* mini-gmp/tests/mini-random.c (mini_rrandomb_export): New
  3521  	function.
  3522  	* mini-gmp/tests/mini-random.h: Declare it.
  3523  	* mini-gmp/tests/hex-random.c (hex_rrandomb_export): New function.
  3524  	* mini-gmp/tests/hex-random.h: Declare it.
  3525  
  3526  	* mini-gmp/mini-gmp.c (mpz_export): Compute accurate word count up
  3527  	front, to avoid generating any high zero words.
  3528  
  3529  2013-01-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3530  
  3531  	* mini-gmp/README: Document base limitation for conversions.
  3532  	* mini-gmp/mini-gmp.c (mpz_set_str): Remove goto.
  3533  	(mpz_import, mpz_export): Correctly use order/endianness.
  3534  
  3535  2013-01-05  Torbjorn Granlund  <tege@gmplib.org>
  3536  
  3537  	* longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work.
  3538  
  3539  2013-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3540  
  3541  	From shuax:
  3542  	* mini-gmp/mini-gmp.c (mpz_import): Reset limb after storing it.
  3543  
  3544  2013-01-04  Torbjorn Granlund  <tege@gmplib.org>
  3545  
  3546  	From Marko Lindqvist:
  3547  	* configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete
  3548  	AM_CONFIG_HEADER.
  3549  
  3550  2013-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3551  
  3552  	* tests/mpz/bit.c: Wider testing for mpz_combit.
  3553  	* tests/mpz/logic.c: Check the -2^n case.
  3554  
  3555  	* mpz/ior.c: Fixed an allocation bug in the -2^n case.
  3556  
  3557  2012-12-31  Torbjorn Granlund  <tege@gmplib.org>
  3558  
  3559  	* mpn/generic/get_d.c: Minor reorg, add vax D code.
  3560  
  3561  	* gmp-impl.h (double_extract): New union type for vax D floats.
  3562  
  3563  	* tests/mpq/t-get_d.c (check_random): Limit exponents on vax.
  3564  
  3565  2012-12-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3566  
  3567  	* tests/mpz/bit.c (check_clr_extend): Check _set shrink.
  3568  
  3569  2012-12-29  Torbjorn Granlund  <tege@gmplib.org>
  3570  
  3571  	* demos/calc/calc.c: Remove generated file from repo.
  3572  	* demos/calc/calc.h: Likewise.
  3573  	* demos/calc/calclex.c: Likewise.
  3574  
  3575  2012-12-27  Torbjorn Granlund  <tege@gmplib.org>
  3576  
  3577  	* mpn/generic/get_d.c: Complete rewrite of non-IEEE code.
  3578  
  3579  	* tests/mpq/t-get_d.c (main): Suppress check_random for vax.
  3580  
  3581  2012-12-25  Torbjorn Granlund  <tege@gmplib.org>
  3582  
  3583  	* mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table.
  3584  
  3585  2012-12-23  Torbjorn Granlund  <tege@gmplib.org>
  3586  
  3587  	* tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid
  3588  	overflow in last, unused 'want' value.
  3589  
  3590  	* config.guess: Recognise AMD family 22 as a future bobcat.
  3591  
  3592  2012-12-21  Torbjorn Granlund  <tege@gmplib.org>
  3593  
  3594  	* configure.ac: Rename configure.in.
  3595  
  3596  2012-12-17  Torbjorn Granlund  <tege@gmplib.org>
  3597  
  3598  	* Version 5.1.0 released.
  3599  
  3600  	* configure.in (none-*-*): Allow this again, but print a warning.
  3601  
  3602  2012-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3603  
  3604  	* mpz/n_pow_ui.c: Fix typos in an ASSERT.
  3605  
  3606  2012-12-16  Torbjorn Granlund  <tege@gmplib.org>
  3607  
  3608  	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use
  3609  	MPN_COPY_INCR for slightly overlapping copy.
  3610  
  3611  2012-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3612  
  3613  	* tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped.
  3614  
  3615  2012-12-13  Torbjorn Granlund  <tege@gmplib.org>
  3616  
  3617  	* mpn/x86_64/dos64.m4 (PIC): Move definition early.
  3618  	(JMPENT): Remove PIC variant.
  3619  
  3620  	* mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of
  3621  	something sensible.
  3622  
  3623  2012-12-12  Torbjorn Granlund  <tege@gmplib.org>
  3624  
  3625  	* mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro.
  3626  	* mpn/x86_64/dos64.m4: Likewise.
  3627  	* mpn/x86_64/darwin.m4: Likewise.
  3628  	* mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC.
  3629  	* mpn/x86_64/mullo_basecase.asm: Likewise.
  3630  	* mpn/x86_64/sqr_basecase.asm: Likewise.
  3631  
  3632  2012-12-11  Torbjorn Granlund  <tege@gmplib.org>
  3633  
  3634  	* mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit
  3635  	of broken Apple linkers.
  3636  
  3637  2012-12-09  Torbjorn Granlund  <tege@gmplib.org>
  3638  
  3639  	* configure.in: Make GMP_NONSTD_ABI ABI specific.
  3640  
  3641  2012-12-08  Torbjorn Granlund  <tege@gmplib.org>
  3642  
  3643  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
  3644  	* gmp-h.in: Bump version.
  3645  
  3646  2012-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3647  
  3648  	* tests/mpq/reuse.c: New test (adapted from mpf/reuse.c).
  3649  	* tests/mpq/Makefile.am (check_PROGRAMS): Add reuse.
  3650  
  3651  	* mpz/abs.c: Use NEWALLOC.
  3652  	* mpz/neg.c: Likewise.
  3653  	* mpz/com.c: Reduce branches.
  3654  
  3655  2012-12-05  Niels Möller  <nisse@lysator.liu.se>
  3656  
  3657  	* mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at
  3658  	the cost of a redundant MPN_ZERO.
  3659  
  3660  	* mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0
  3661  	before using the low limbs.
  3662  
  3663  2012-12-05  Torbjorn Granlund  <tege@gmplib.org>
  3664  
  3665  	* mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue.
  3666  
  3667  	* mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument.
  3668  
  3669  	* tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR.
  3670  
  3671  	* longlong.h: Refine cpp test for vax.
  3672  	* tests/mpn/t-get_d.c: Likewise.
  3673  	* tests/mpz/t-get_d.c: Likewise.
  3674  	* tests/mpz/t-cmp_d.c: Likewise.
  3675  	* tests/mpz/t-get_d.c: Likewise.
  3676  	* tests/mpq/t-get_d.c: Likewise.
  3677  	* tests/mpf/t-get_d.c: Likewise.
  3678  
  3679  2012-11-30  Torbjorn Granlund  <tege@gmplib.org>
  3680  
  3681  	* gen-fac.c (gen_consts): Correct printf types.
  3682  
  3683  	* mpn/arm/v7a/cora15/gmp-mparam.h: New file.
  3684  
  3685  	* configure.in (arm*-*-*): New compiler optional "tune".  Pass value for
  3686  	selected processors.  Add more specific path components.
  3687  
  3688  2012-11-29  Torbjorn Granlund  <tege@gmplib.org>
  3689  
  3690  	From Andoni Morales Alastruey:
  3691  	* longlong.h: Conditionalise ARM asm on !__thumb__.
  3692  
  3693  2012-11-28  Torbjorn Granlund  <tege@gmplib.org>
  3694  
  3695  	* config.guess (arm*-*-*): Support specific ARM processors.
  3696  	* config.sub: Match arm CPUs.
  3697  	* configure.in (arm*-*-*): Likewise.
  3698  
  3699  	* mpz/powm.c: Move new_b out since it lives on through b.
  3700  
  3701  	* configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting
  3702  	to thumb code.
  3703  
  3704  2012-11-26  Torbjorn Granlund  <tege@gmplib.org>
  3705  
  3706  	* tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax
  3707  	overflow.
  3708  
  3709  2012-11-25  Torbjorn Granlund  <tege@gmplib.org>
  3710  
  3711  	* mpn/generic/get_d.c: Reinsert non-IEEE code.
  3712  
  3713  	* mpn/vax/add_n.asm: New file.
  3714  	* mpn/vax/add_n.s: Remove.
  3715  	* mpn/vax/addmul_1.asm: New file.
  3716  	* mpn/vax/addmul_1.s: Remove.
  3717  	* mpn/vax/lshift.asm: New file.
  3718  	* mpn/vax/lshift.s: Remove.
  3719  	* mpn/vax/mul_1.asm: New file.
  3720  	* mpn/vax/mul_1.s: Remove.
  3721  	* mpn/vax/rshift.asm: New file.
  3722  	* mpn/vax/rshift.s: Remove.
  3723  	* mpn/vax/sub_n.asm: New file.
  3724  	* mpn/vax/sub_n.s: Remove.
  3725  	* mpn/vax/submul_1.asm: New file.
  3726  	* mpn/vax/submul_1.s: Remove.
  3727  
  3728  	* mpn/vax/elf.m4: New file.
  3729  	* configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4.
  3730  
  3731  	* tests/mpn/t-get_d.c (check_onebit): Get vax bounds right.
  3732  	(main): Switch off check_rand for vax.
  3733  
  3734  2012-11-22  Niels Möller  <nisse@lysator.liu.se>
  3735  
  3736  	* mini-gmp/tests/run-tests: Copied latest version from GNU Nettle.
  3737  	Minor fix to the use of $EMULATOR, and proper copyright notice.
  3738  
  3739  2012-11-16  Torbjorn Granlund  <tege@gmplib.org>
  3740  
  3741  	* mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec.
  3742  
  3743  	* mpn/generic/sb_div_sec.c: New file.
  3744  	* mpn/generic/sbpi1_div_sec.c: New file.
  3745  	* configure.in (gmp_mpn_functions): Add new files.
  3746  	* gmp-impl.h: Declare new functions.
  3747  
  3748  2012-11-12  Torbjorn Granlund  <tege@gmplib.org>
  3749  
  3750  	* longlong.h: Add ARM64 support.
  3751  	* longlong.h: Add AVR support.
  3752  
  3753  	* mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify.
  3754  
  3755  	* mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR.
  3756  	* tests/mpq/t-md_2exp.c (check_random): New function.
  3757  
  3758  2012-11-10  Torbjorn Granlund  <tege@gmplib.org>
  3759  
  3760  	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static.
  3761  
  3762  2012-11-04  Torbjorn Granlund  <tege@gmplib.org>
  3763  
  3764  	* mpz/powm_ui.c: Rewrite.
  3765  
  3766  2012-11-01  Niels Möller  <nisse@lysator.liu.se>
  3767  
  3768  	* mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs
  3769  	rather than bits. Use single-precision iterations for the first
  3770  	limb.
  3771  	* mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call.
  3772  	* tests/mpn/t-brootinv.c (main): Likewise.
  3773  	* tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise.
  3774  	* gmp-impl.h (mpn_brootinv): Updated prototype.
  3775  
  3776  	* mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit
  3777  	tests in the single-precision loop.
  3778  
  3779  	* mpz/combit.c (mpz_combit): Rewrite, optimizing for the common
  3780  	case.
  3781  
  3782  2012-10-31  Niels Möller  <nisse@lysator.liu.se>
  3783  
  3784  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv.
  3785  	* tests/mpn/t-brootinv.c: New file
  3786  
  3787  	* mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the
  3788  	loop, and do powering as a plain mpn_sqr followed by mpn_powlo.
  3789  
  3790  	* tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1,
  3791  	mpn_brootinv.
  3792  
  3793  	* tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1)
  3794  	(speed_mpn_brootinv): New functions.
  3795  	* tune/speed.h (SPEED_ROUTINE_MPN_BROOT)
  3796  	(SPEED_ROUTINE_MPN_BROOTINV): New macros.
  3797  
  3798  	* mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly
  3799  	for benchmarking).
  3800  	* gmp-impl.h (mpn_broot_invm1): Declare it.
  3801  
  3802  2012-10-28  Torbjorn Granlund  <tege@gmplib.org>
  3803  
  3804  	* configure.in (gmp_mpn_functions): Add new files.
  3805  	* gmp-impl.h: Declare new functions.
  3806  	* mpn/generic/perfpow.c: Overhaul.
  3807  	(binv_root, binv_sqroot): Remove.
  3808  	* mpn/generic/brootinv.c: New file, code from overhauled binv_root.
  3809  	* mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot.
  3810  	* mpn/generic/bsqrt.c: New file.
  3811  
  3812  	* tests/mpn/t-broot.c: Add a forgotten TMP_MARK.
  3813  
  3814  2012-10-28  Niels Möller  <nisse@lysator.liu.se>
  3815  
  3816  	* mpn/generic/broot.c (mpn_broot): New file and function.
  3817  	* configure.in (gmp_mpn_functions): Add broot.
  3818  	* gmp-impl.h (mpn_broot): Declare.
  3819  	* tests/mpn/t-broot.c: New testcase.
  3820  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot.
  3821  
  3822  2012-10-27  Torbjorn Granlund  <tege@gmplib.org>
  3823  
  3824  	* mpn/generic/remove.c: Get remainder allocation right.
  3825  
  3826  2012-10-25  Torbjorn Granlund  <tege@gmplib.org>
  3827  
  3828  	* longlong.h: De-support old POWER asm syntax.
  3829  
  3830  	* tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands.
  3831  
  3832  	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function.
  3833  	(mpn_remove): Call mpn_bdiv_qr_wrap.
  3834  	* mpz/remove.c: Enable suppressed mpn_remove call.
  3835  
  3836  2012-10-17  Torbjorn Granlund  <tege@gmplib.org>
  3837  
  3838  	* mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent.
  3839  
  3840  2012-09-10  Torbjorn Granlund  <tege@gmplib.org>
  3841  
  3842  	* demos/factorize.c: Rewrite no more current form.  Implement Lucas
  3843  	prime proving, and make its use the default.
  3844  	* demos/primes.h: New file.
  3845  
  3846  2012-08-24  Torbjorn Granlund  <tege@gmplib.org>
  3847  
  3848  	* demos/factorize.c: Overhaul.
  3849  
  3850  2012-08-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3851  
  3852  	* doc/gmp.texi (mpn_neg): Correctly document returned type.
  3853  
  3854  	* gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels).
  3855  
  3856  2012-07-28  Marc Glisse  <marc.glisse@inria.fr>
  3857  
  3858  	* gmpxx.h (std::common_type): New partial specializations with builtin
  3859  	types.
  3860  	* tests/cxx/t-cxx11.cc: Test it.
  3861  
  3862  2012-07-21  Torbjorn Granlund  <tege@gmplib.org>
  3863  
  3864  	* mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with
  3865  	"large" code affecting elf+darwin PIC.
  3866  
  3867  2012-07-21  Marc Glisse  <marc.glisse@inria.fr>
  3868  
  3869  	* gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4.
  3870  
  3871  2012-06-26  Torbjorn Granlund  <tege@gmplib.org>
  3872  
  3873  	* Makefile.am (LIBMP_LT_*): Remove these.
  3874  
  3875  2012-06-26  Marc Glisse  <marc.glisse@inria.fr>
  3876  
  3877  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0.
  3878  
  3879  2012-06-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3880  
  3881  	* configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of
  3882  	assembly code with the --disable-assembly option.
  3883  	* mpz/oddfac_1.c: Use the ASSERT_CODE macro.
  3884  	* gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2).
  3885  
  3886  	* gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP
  3887  	from mpz/export.c .
  3888  	* mpz/export.c (MPN_SIZEINBASE_2EXP): Removed.
  3889  	* mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE.
  3890  
  3891  	* mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits.
  3892  	* mpn/generic/perfpow.c: Likewise.
  3893  	* mpn/generic/rootrem.c: Likewise.
  3894  	* mpz/get_d_2exp.c: Likewise.
  3895  	* mpn/generic/powm_sec.c: Likewise, nailify.
  3896  	* mpn/generic/powlo.c: Likewise.
  3897  	* mpn/generic/powm.c: Likewise.
  3898  
  3899  	* mini-gmp/mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve
  3900  	adjustment condition.
  3901  
  3902  2012-06-23  Marc Glisse  <marc.glisse@inria.fr>
  3903  
  3904  	* gmpxx.h (numeric_limits): Make content public.
  3905  	* cxx/limits.cc: New file, proper declarations.
  3906  	* Makefile.am: List new file.
  3907  	* cxx/Makefile.am: Likewise.
  3908  	* cxx/t-misc.cc: Add minimal test for numeric_limits.
  3909  
  3910  2012-06-09  Marc Glisse  <marc.glisse@inria.fr>
  3911  
  3912  	* gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef.
  3913  	(__gmp_temp): Wrapper for mp*_class, the constructor copies the
  3914  	precision of its second argument for mpf_t.
  3915  	(__gmp_expr::eval(p, prec)): Remove.
  3916  	(__gmp_expr::eval(p)): Use __gmp_temp.
  3917  	(__gmp_set_expr): Never pass prec to eval().
  3918  
  3919  2012-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3920  
  3921  	* gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in.
  3922  	(MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT.
  3923  	(MPZ_NEWALLOC): New macro.
  3924  	* mpq: Use the new macro when possible.
  3925  	* mpz/bin_uiui.c: Likewise.
  3926  	* mpz/oddfac_1.c: Likewise.
  3927  	* mpz/prodlimbs.c: Likewise.
  3928  
  3929  	* mini-gmp/mini-gmp.c (mpz_realloc): remove a branch.
  3930  
  3931  2012-06-04  Torbjorn Granlund  <tege@gmplib.org>
  3932  
  3933  	* mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any".
  3934  
  3935  2012-06-03  Niels Möller  <nisse@lysator.liu.se>
  3936  
  3937  	* mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling
  3938  	impossible case u1 == 0, Simplified test for unlikely case u0 == 0.
  3939  
  3940  2012-06-02  Torbjorn Granlund  <tege@gmplib.org>
  3941  
  3942  	* mpn/arm/lshiftc.asm: New file.
  3943  
  3944  2012-06-01  Torbjorn Granlund  <tege@gmplib.org>
  3945  
  3946  	* mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more
  3947  	places.
  3948  
  3949  	* mpz/get_str.c: Don't strip leading zeros since current mpn_get_str
  3950  	won't generate any.  Misc streamlining.
  3951  	* mpz/out_str.c: Analogous changes.
  3952  
  3953  	* tests/mpz/io.c: Use a wider range of bases.
  3954  
  3955  	* tests/mpz/t-cong.c (check_random): Rewrite random generation for
  3956  	exponentially distributed operand sizes.
  3957  
  3958  2012-06-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3959  
  3960  	* mpq: Use more macros and MPZ_REALLOC return value when possible.
  3961  
  3962  	* gmp-impl.h (LIMBS): Removed, was an alias for PTR.
  3963  	* mpz/combit.c: Use PTR and CNST_LIMB.
  3964  
  3965  	* tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr.
  3966  	* mpn/generic/bdiv_qr.c: Add an ASSERT.
  3967  
  3968  	* mpn/generic/remove.c: Add a zero limb to use bdiv_qr...
  3969  
  3970  2012-05-31  Marc Glisse  <marc.glisse@inria.fr>
  3971  
  3972  	* gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1).
  3973  	* tests/cxx/t-constr.cc: Test it.
  3974  
  3975  2012-05-30  Torbjorn Granlund  <tege@gmplib.org>
  3976  
  3977  	* mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY.
  3978  	* mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT.
  3979  
  3980  2012-05-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
  3981  
  3982  	* mpz/remove.c: Optimise branches.
  3983  
  3984  	* mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path.
  3985  	* mpn/generic/toom8h_mul.c: Likewise.
  3986  
  3987  2012-05-29  Torbjorn Granlund  <tege@gmplib.org>
  3988  
  3989  	* mpn/arm/v5/mod_1_1.asm: New file.
  3990  
  3991  2012-05-28  Niels Möller  <nisse@lysator.liu.se>
  3992  
  3993  	* mpn/generic/gcdext.c (compute_v): Simplified carry handling a
  3994  	bit, reduced stated scratch need from 2n+1 to 2n. Also comment and
  3995  	ASSERT improvements.
  3996  
  3997  2012-05-27  Torbjorn Granlund  <tege@gmplib.org>
  3998  
  3999  	* config.guess: Add new x86 CPUs.
  4000  	* mpn/x86/fat/fat.c: Likewise.
  4001  	* mpn/x86_64/fat/fat.c: Likewise.
  4002  
  4003  2012-05-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4004  
  4005  	* mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off.
  4006  
  4007  	* mpn/generic/toom8h_mul.c: mark UNLIKELY branches.
  4008  
  4009  2012-05-26  Torbjorn Granlund  <tege@gmplib.org>
  4010  
  4011  	* mpz: Use MPZ_REALLOC return value when possible.
  4012  
  4013  2012-05-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4014  
  4015  	* mini-gmp/tests/t-div.c: Test all _qr, _q, _r variants.
  4016  	* mini-gmp/tests/t-lcm.c: Test the _ui variant.
  4017  
  4018  	* mini-gmp/mini-gmp.c (mpz_mod, mpz_mod_ui): New functions.
  4019  	* mini-gmp/mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes.
  4020  
  4021  	* mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0).
  4022  
  4023  2012-05-24  Torbjorn Granlund  <tege@gmplib.org>
  4024  
  4025  	* mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument.
  4026  
  4027  2012-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4028  
  4029  	* mpz/remove.c: Support negative divisor.
  4030  	* tests/mpz/t-remove.c: Test negative divisor.
  4031  
  4032  2012-05-23  Torbjorn Granlund  <tege@gmplib.org>
  4033  
  4034  	* tests/mpz/reuse.c: Major rewrite.
  4035  
  4036  2012-05-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4037  
  4038  	* mpz/sqrt.c: Further simplify.
  4039  	* mpz/sqrtrem.c: Likewise.
  4040  
  4041  	* Mark failing branches with UNLIKELY. Many files affected.
  4042  
  4043  2012-05-22  Torbjorn Granlund  <tege@gmplib.org>
  4044  
  4045  	* mpz/sqrt.c: Allocate less for overlapping operands, simplify.
  4046  	* mpz/sqrtrem.c: Likewise.
  4047  
  4048  2012-05-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4049  
  4050  	* mpn/generic/toom8_sqr.c: Reduce branches for recursion.
  4051  	* mpn/generic/toom8h_mul.c: Likewise.
  4052  
  4053  	* tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined.
  4054  
  4055  2012-05-20  Torbjorn Granlund  <tege@gmplib.org>
  4056  
  4057  	* tests/mpz/t-gcd.c: Rewrite.
  4058  
  4059  2012-05-19  Torbjorn Granlund  <tege@gmplib.org>
  4060  
  4061  	* tests/mpz/t-gcd.c: Generate larger operands for better gcd code
  4062  	coverage; distribute size exponentially.
  4063  
  4064  2012-05-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4065  
  4066  	* mpf/pow_ui.c: Simplify.
  4067  	* tests/mpf/reuse.c (dsi_func): Exercise pow_ui.
  4068  
  4069  	* tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT.
  4070  	* tests/mpf/t-set.c (check_random): New check, both set and init_set.
  4071  
  4072  	* tests/cxx/t-ops.cc (check_mpq): Check squaring.
  4073  	* tests/mpq/t-equal.c (check_various): Check different den-size.
  4074  
  4075  	* mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY.
  4076  	* mpz/cmpabs_d.c: Remove an unused branch.
  4077  
  4078  	* tests/mpz/t-get_d_2exp.c (check_zero): New check.
  4079  	* tests/mpz/t-inp_str.c: A few more cases.
  4080  	* tests/mpz/t-cmp_d.c: More bases and symbols, a few cases.
  4081  
  4082  	* mpz/rootrem.c: Correctly handle odd roots of negatives.
  4083  	* tests/mpz/t-root.c: Test it.
  4084  
  4085  2012-05-16  Torbjorn Granlund  <tege@gmplib.org>
  4086  
  4087  	* tests/mpf/t-eq.c (check_random): New function, meat from old main().
  4088  	(check_data): New function.
  4089  
  4090  2012-05-13  Torbjorn Granlund  <tege@gmplib.org>
  4091  
  4092  	* mpn/arm/rsh1aors_n.asm: New file.
  4093  	* mpn/arm/v5/mod_1_2.asm: New file.
  4094  
  4095  2012-05-11  Marc Glisse  <marc.glisse@inria.fr>
  4096  
  4097  	* gmpxx.h (explicit operator bool): New functions.
  4098  	* tests/cxx/t-cxx11.cc: Test the above.
  4099  
  4100  2012-05-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4101  
  4102  	* gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized
  4103  	* mpn/x86/fat/fat.c: Use separated _initialized variable.
  4104  	* mpn/x86_64/fat/fat.c: Likewise.
  4105  	* tests/mpn/t-fat.c: Likewise.
  4106  
  4107  	* mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized.
  4108  	* mpn/generic/toom22_mul.c: Likewise.
  4109  	* mpn/generic/toom3_sqr.c: Likewise.
  4110  	* mpn/generic/toom33_mul.c: Likewise.
  4111  
  4112  2012-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4113  
  4114  	* mini-gmp/mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem.
  4115  
  4116  	* mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte.
  4117  
  4118  	* mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts.
  4119  	(MAXFACS): Redefine, using the shared (safer) log_n_max.
  4120  
  4121  2012-05-08  Torbjorn Granlund  <tege@gmplib.org>
  4122  
  4123  	* mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for
  4124  	coherency with ASSERT in mpn/generic/redc_n.c.
  4125  
  4126  2012-05-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4127  
  4128  	* mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC.
  4129  	* tests/mpn/toom-sqr-shared.h: Don't test if no range.
  4130  
  4131  	* mpz/oddfac_1.c: Add ASSERTs to warn about small threshold.
  4132  	* tune/tuneup.c: Update minimal threshold for FAC_DSC.
  4133  
  4134  2012-05-06  Torbjorn Granlund  <tege@gmplib.org>
  4135  
  4136  	* mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code.
  4137  
  4138  2012-05-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4139  
  4140  	* mpn/generic/invert.c: Mark a branch UNLIKELY.
  4141  	* tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum.
  4142  	* gmp-impl.h (FAC_???_THRESHOLD): Update default values.
  4143  	(ABOVE_THRESHOLD): New definition with __builtin_constant_p.
  4144  
  4145  	* mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY.
  4146  	* mpn/generic/toom33_mul.c: Likewise.
  4147  	* mpn/generic/toom2_sqr.c: Likewise.
  4148  	* mpn/generic/toom3_sqr.c: Likewise.
  4149  
  4150  2012-05-04  Torbjorn Granlund  <tege@gmplib.org>
  4151  
  4152  	* tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds.
  4153  
  4154  2012-05-03  Torbjorn Granlund  <tege@gmplib.org>
  4155  
  4156  	* mpn/generic/powm_sec.c: Use redc_2.
  4157  	(INNERLOOP): Use this mechanism, like plain powm.c.
  4158  	(WANT_CACHE_SECURITY): Remove, feature now unconditional.
  4159  
  4160  2012-05-02  Torbjorn Granlund  <tege@gmplib.org>
  4161  
  4162  	* mpz/bin_uiui.c: Make use of CNST_LIMB.
  4163  
  4164  2012-05-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4165  
  4166  	* mpz/mfac_uiui.c: Support limb != ui.
  4167  
  4168  2012-05-02  Torbjorn Granlund  <tege@gmplib.org>
  4169  
  4170  	* mpn/arm/logops_n.asm: Work around register clobbering issue.
  4171  
  4172  	* mpn/arm/aorscnd_n.asm: New file.
  4173  
  4174  2012-05-01  Torbjorn Granlund  <tege@gmplib.org>
  4175  
  4176  	* configure.in: Put arm dirs in path in proper prio order.
  4177  
  4178  	* mpn/arm/logops_n.asm: New file.
  4179  
  4180  	* mpz/2fac_ui.c: Fix assumed typo.
  4181  
  4182  	* mpn/arm/v6/gmp-mparam.h: New file.
  4183  
  4184  	* mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD.
  4185  	* mpn/arm/v6t2/gcd_1.asm: Likewise.
  4186  
  4187  2012-04-30  Torbjorn Granlund  <tege@gmplib.org>
  4188  
  4189  	* mpn/arm/v6/sqr_basecase.asm: New file.
  4190  
  4191  2012-04-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4192  
  4193  	* mpn/generic/comb_tables.c: New file.
  4194  	* configure.in: Add it.
  4195  	* gen-fac.c: Define table limits.
  4196  	* gmp-impl.h: Declare tables.
  4197  	(log_n_max): New static function.
  4198  	* mpz/2fac_ui.c: Use shared tables.
  4199  	* mpz/bin_uiui.c: Likewise.
  4200  	* mpz/oddfac_1.c: Likewise.
  4201  	* mpz/primorial_ui.c: Likewise.
  4202  
  4203  	* mpz/mfac_uiui.c: New file.
  4204  	* Makefile.am: Compile it.
  4205  	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c
  4206  	* gmp-h.in (mpz_mfac_uiui): Declare.
  4207  
  4208  	* tests/mpz/t-mfac_uiui.c: New file.
  4209  	* tests/mpz/Makefile.am: Run it.
  4210  
  4211  	* doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions.
  4212  
  4213  	* tests/mpz/t-lcm.c: Test zero too.
  4214  
  4215  	* mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed).
  4216  
  4217  2012-04-29  Torbjorn Granlund  <tege@gmplib.org>
  4218  
  4219  	* mpn/arm/aors_n.asm: Tune for more stable performance.
  4220  
  4221  	* mpn/arm/aorslsh1_n.asm: New file.
  4222  
  4223  	* mpn/arm/mod_34lsub1.asm: New file.
  4224  
  4225  	* mpn/arm/v6t2/divrem_1.asm: New file.
  4226  
  4227  2012-04-28  Torbjorn Granlund  <tege@gmplib.org>
  4228  
  4229  	* mpn/thumb/add_n.asm: New file.
  4230  	* mpn/thumb/sub_n.asm: New file.
  4231  	* mpn/thumb/add_n.s: Remove broken code.
  4232  	* mpn/thumb/sub_n.s: Likewise.
  4233  
  4234  	* mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size.
  4235  	* mpn/arm/v6/mul_1.asm: Likewise.
  4236  
  4237  2012-04-27  Torbjorn Granlund  <tege@gmplib.org>
  4238  
  4239  	* configure.in: Search arm/v6t2 for arm7.
  4240  
  4241  	* mpn/arm/v5/gcd_1.asm: New file.
  4242  	* mpn/arm/v6t2/gcd_1.asm: New file.
  4243  
  4244  	* mpn/arm/mode1o.asm: New file.
  4245  	* mpn/arm/v6t2/mode1o.asm: New file.
  4246  
  4247  	* mpn/arm/arm-defs.m4 (LEA): New define.
  4248  	* mpn/arm/invert_limb.asm: Use LEA.
  4249  
  4250  2012-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4251  
  4252  	* mpz/bin_uiui.c (bc_bin_uiui): Nail support.
  4253  	* tests/cxx/t-ops2.cc: Test 0/3.
  4254  	* oddfac_1.c: assume n > 26.
  4255  	* tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes.
  4256  
  4257  2012-04-24  Torbjorn Granlund  <tege@gmplib.org>
  4258  
  4259  	* mpn/arm/v6/addmul_2.asm: New file.
  4260  	* mpn/arm/v6/mul_2.asm: New file.
  4261  
  4262  2012-04-23  Torbjorn Granlund  <tege@gmplib.org>
  4263  
  4264  	* mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase.
  4265  
  4266  2012-04-22  Torbjorn Granlund  <tege@gmplib.org>
  4267  
  4268  	* configure.in: Recognise ARM sub-architectures.
  4269  
  4270  	* configfsf.guess: Update to current FSF version.
  4271  	* configfsf.sub: Likewise.
  4272  
  4273  	* mpn/arm/bdiv_dbm1c.asm: New file.
  4274  
  4275  	* mpn/arm/v6/mul_1.asm: New file.
  4276  	* mpn/arm/v6/addmul_1.asm: New file.
  4277  
  4278  2012-04-22 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4279  
  4280  	* gen-fac.c: Renamed, was gen-fac_ui.c .
  4281  	* Makefile.am: Renamed gen-fac.c and fac_table.h .
  4282  	* gmp-impl.h: #include "fac_table.h".
  4283  	* mpz/oddfac_1.c: Use generated constant.
  4284  	* mpz/bin_ui.c: Small optimisations.
  4285  
  4286  	* tune/common.c (speed_mpz_bin_ui): New function.
  4287  	* tune/speed.h: Declare it.
  4288  	* tune/speed.c: Use it.
  4289  
  4290  2012-04-21  Torbjorn Granlund  <tege@gmplib.org>
  4291  
  4292  	* mpn/arm/mul_1.asm: Cleanup.
  4293  	* mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache.
  4294  	* mpn/arm/copyd.asm: Likewise.
  4295  
  4296  	* mpn/arm/add_n.asm: Delete.
  4297  	* mpn/arm/sub_n.asm: Delete.
  4298  	* mpn/arm/aors_n.asm: New file, made from old files.
  4299  
  4300  	* mpn/arm/addmul_1.asm: Delete.
  4301  	* mpn/arm/submul_1.asm: Delete.
  4302  	* mpn/arm/aorsmul_1.asm: New file, made from old files.
  4303  
  4304  	* mpn/arm/com.asm: New file.
  4305  	* mpn/arm/lshift.asm: New file.
  4306  	* mpn/arm/rshift.asm: New file.
  4307  
  4308  2012-04-20  Torbjorn Granlund  <tege@gmplib.org>
  4309  
  4310  	* tests/mpq/io.c: New file.
  4311  	* tests/mpq/Makefile.am: Run it.
  4312  
  4313  	* mpz/clrbit.c: Simplify along the lines of setbit.c.
  4314  
  4315  2012-04-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4316  
  4317  	* mpz/setbit.c: Simplify.
  4318  
  4319  	* gmp-impl.h (LOG2C): Define.
  4320  	* mpz/fac_ui.c (LOG2C): Remove.
  4321  	* mpz/2fac_ui.c (LOG2C): Remove.
  4322  	* mpz/oddfac_1.c (LOG2C): Remove.
  4323  	* mpn/generic/binvert.c (LOG2C): Remove.
  4324  	* mpn/generic/invertappr.c (LOG2C): Remove.
  4325  
  4326  	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations,
  4327  	and assume that n and k are not small.
  4328  
  4329  2012-04-19  Torbjorn Granlund  <tege@gmplib.org>
  4330  
  4331  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove.
  4332  
  4333  	* tests/mpz/t-remove.c: Clear out mpz variables.
  4334  
  4335  	* tests/mpz/t-cong.c (check_random): Use much larger numbers.
  4336  	(check_data): Check congruences mod 0.
  4337  
  4338  	* tests/mpz/t-divis.c: Test divisibility by zero.
  4339  
  4340  	* tests/mpz/reuse.c: Test mpz_mod.
  4341  
  4342  	* mpz/setbit.c: Remove dead code.  Use CNST_LIMB.
  4343  	* mpz/clrbit.c: Use CNST_LIMB.
  4344  
  4345  2012-04-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4346  
  4347  	* primesieve.c: New file, with functions from mpz/oddfac_1.c .
  4348  	* mpz/oddfac_1.c (bitwise_primesieve): Re-moved.
  4349  	* Makefile.am (libgmp_la_SOURCES): Add primesieve.c .
  4350  	* gmp-impl.h (gmp_primesieve): Declare.
  4351  
  4352  	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based
  4353  	implementation.
  4354  	* tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck.
  4355  
  4356  	* mpz/primorial_ui.c: New file.
  4357  	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c
  4358  	* Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo
  4359  	* gmp-h.in (mpz_primorial_ui): Declare.
  4360  	* tests/mpz/t-primorial_ui.c: New test for the new function.
  4361  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui.
  4362  	* doc/gmp.texi: Short documentation for the new function.
  4363  
  4364  2012-04-17  Torbjorn Granlund  <tege@gmplib.org>
  4365  
  4366  	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues.
  4367  	* mpn/x86_64/coreisbr/mul_1.asm: Likewise.
  4368  
  4369  	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register
  4370  	partitioning rules.
  4371  
  4372  	* mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround
  4373  	to overlap issue.
  4374  
  4375  2012-04-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4376  
  4377  	* mpz/bin_uiui.c: Support small limbs (fallback on bin_ui).
  4378  
  4379  	* tests/mpn/toom-sqr-shared.h: Use a restricted range.
  4380  	* tests/mpn/t-toom2-sqr.c: Specify correct range.
  4381  	* tests/mpn/t-toom3-sqr.c: Likewise.
  4382  	* tests/mpn/t-toom4-sqr.c: Likewise.
  4383  	* tests/mpn/t-toom6-sqr.c: Likewise.
  4384  	* tests/mpn/t-toom8-sqr.c: Likewise, but extended.
  4385  	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests.
  4386  
  4387  	* mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np.
  4388  
  4389  2012-04-17  Torbjorn Granlund  <tege@gmplib.org>
  4390  
  4391  	* mpn/x86_64/copyd.asm: Rewrite.
  4392  	* mpn/x86_64/copyi.asm: Rewrite.
  4393  
  4394  2012-04-16  Torbjorn Granlund  <tege@gmplib.org>
  4395  
  4396  	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences.
  4397  	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
  4398  	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
  4399  
  4400  	* mpn/x86_64/x86_64-defs.m4 (palignr): New macro.
  4401  	(x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx
  4402  	counterparts.
  4403  	(x86_lookup): Copy from x86/x86-defs.m4.
  4404  	* mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro.
  4405  	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
  4406  
  4407  2012-04-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4408  
  4409  	* tests/mpz/t-bin.c: Add more tests on small values.
  4410  	* mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas.
  4411  
  4412  2012-04-15  Torbjorn Granlund  <tege@gmplib.org>
  4413  
  4414  	* mpn/x86_64/fastsse/copyd-palignr.asm: New file.
  4415  	* mpn/x86_64/fastsse/copyi-palignr.asm: New file.
  4416  	* mpn/x86_64/core2/copyd.asm: New file.
  4417  	* mpn/x86_64/core2/copyi.asm: New file.
  4418  	* mpn/x86_64/nano/copyd.asm: New file.
  4419  	* mpn/x86_64/nano/copyi.asm: New file.
  4420  	* mpn/x86_64/atom/copyd.asm: New file.
  4421  	* mpn/x86_64/atom/copyi.asm: New file.
  4422  
  4423  2012-04-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4424  
  4425  	* mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's).
  4426  	* gen-fac_ui.c: Generate new constants for bin_uiui.
  4427  
  4428  	* mini-gmp/mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions.
  4429  	* mini-gmp/mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial
  4430  	implementation.
  4431  
  4432  	* tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value.
  4433  
  4434  	* mpn/generic/invert.c: Remove support for scratch == NULL.
  4435  	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch
  4436  	space for mpn_invert.
  4437  
  4438  	* mpz/mul_i.h: Small clean-up.
  4439  
  4440  	* tests/mpn/toom-sqr-shared.h: New file.
  4441  	* tests/mpn/t-toom2-sqr.c: New file.
  4442  	* tests/mpn/t-toom3-sqr.c: New file.
  4443  	* tests/mpn/t-toom4-sqr.c: New file.
  4444  	* tests/mpn/t-toom6-sqr.c: New file.
  4445  	* tests/mpn/t-toom8-sqr.c: New file.
  4446  	* tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h .
  4447  
  4448  	* mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible.
  4449  
  4450  2012-04-12  Torbjorn Granlund  <tege@gmplib.org>
  4451  
  4452  	* mpn/x86_64/fastsse/lshift-movdqu2.asm: New file.
  4453  	* mpn/x86_64/fastsse/rshift-movdqu2.asm: New file.
  4454  	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file.
  4455  	* mpn/x86_64/coreisbr/lshift.asm: New file.
  4456  	* mpn/x86_64/coreisbr/rshift.asm: New file.
  4457  	* mpn/x86_64/coreisbr/lshiftc.asm: New file.
  4458  	* mpn/x86_64/k10/lshift.asm: New file.
  4459  	* mpn/x86_64/k10/rshift.asm: New file.
  4460  	* mpn/x86_64/k10/lshiftc.asm: New file.
  4461  
  4462  	* mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form.
  4463  
  4464  2012-04-11  Niels Möller  <nisse@lysator.liu.se>
  4465  
  4466  	* Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to
  4467  	locate gmp.h.
  4468  
  4469  2012-04-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4470  
  4471  	* mini-gmp/mini-gmp.h (mpz_root, mpz_rootrem): define (correctly).
  4472  	* mini-gmp/mini-gmp.c (mpz_rootrem): Extended code from _root.
  4473  	(mpz_root): Use mpz_rootrem.
  4474  	(mpz_mul_ui): Correctly handle negative operands.
  4475  
  4476  	* mini-gmp/tests/Makefile (CHECK_PROGRAMS): add t-root.
  4477  	* mini-gmp/tests/t-root.c: New file.
  4478  	* mini-gmp/tests/t-reuse.c: Enable root{,rem} tests.
  4479  
  4480  2012-04-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4481  
  4482  	* gen-fac_ui.c (mpz_root): Remove.
  4483  	* mini-gmp/mini-gmp.c (mpz_root): New, support negative operands.
  4484  	* mini-gmp/mini-gmp.h (mpz_root): define.
  4485  	(mpz_out_str): Test also __STDIO_LOADED (for VMS).
  4486  	* mpz/2fac_ui.c: Cosmetic change.
  4487  
  4488  2012-04-07  Torbjorn Granlund  <tege@gmplib.org>
  4489  
  4490  	* mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table.
  4491  
  4492  2012-04-05  Torbjorn Granlund  <tege@gmplib.org>
  4493  
  4494  	* mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32.
  4495  	* mpn/powerpc64/p7/hamdist.asm: Likewise.
  4496  
  4497  2012-04-04  Torbjorn Granlund  <tege@gmplib.org>
  4498  
  4499  	* mpn/powerpc64/p7/popcount.asm: New file.
  4500  	* mpn/powerpc64/p7/hamdist.asm: New file.
  4501  
  4502  	* longlong.h (ARM count_leading_zeros): Enable for more arch versions.
  4503  
  4504  	* mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area.
  4505  	* mpn/x86_64/core2/gcd_1.asm: Likewise.
  4506  
  4507  2012-04-03  Torbjorn Granlund  <tege@gmplib.org>
  4508  
  4509  	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64.
  4510  
  4511  2012-04-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4512  
  4513  	* mpz/oddfac_1.c: Initialize size for ASSERT.
  4514  
  4515  2012-04-02  Torbjorn Granlund  <tege@gmplib.org>
  4516  
  4517  	* gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS).
  4518  
  4519  	* gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs.
  4520  
  4521  2012-03-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4522  
  4523  	* mpn/x86_64/sqr_basecase.asm: Speed-up for small cases.
  4524  
  4525  2012-03-29  Torbjorn Granlund  <tege@gmplib.org>
  4526  
  4527  	* mpn/sparc64/gcd_1.asm: New file.
  4528  
  4529  2012-03-27  Torbjorn Granlund  <tege@gmplib.org>
  4530  
  4531  	* config.guess: Fix typo in coreisbr recognition.
  4532  
  4533  2012-03-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4534  
  4535  	* mpn/x86_64/gcd_1.asm: Reduce latency.
  4536  	* mpn/x86_64/mul_basecase.asm: Save one jump.
  4537  
  4538  	* mpz/iset_ui.c: Don't realloc.
  4539  
  4540  2012-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4541  
  4542  	* mp_clz_tab.c: Add __clz_tab[128].
  4543  	* longlong.h (count_trailing_zeros): Use it in pure C variant.
  4544  
  4545  2012-03-20  Torbjorn Granlund  <tege@gmplib.org>
  4546  
  4547  	* configure.in (x86 fat_path): Add many missing directories.
  4548  	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite.
  4549  	(fake_cpuid_table): Add many more CPUs.
  4550  
  4551  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup.
  4552  
  4553  2012-03-19  Torbjorn Granlund  <tege@gmplib.org>
  4554  
  4555  	* mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros.
  4556  	* mpn/x86/darwin.m4: Likewise.
  4557  	* mpn/x86/k7/gcd_1.asm: Use new macros to support PIC.
  4558  	* mpn/x86/p6/gcd_1.asm: Likewise.
  4559  
  4560  2012-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4561  
  4562  	* gen-fac_ui.c: Generate more constants (possible mini-mpz_root).
  4563  	* mpz/oddfac_1.c: Improve ASSERTs.
  4564  	(log_n_max): Use precomputed table.
  4565  
  4566  	* longlong.h (_PROTO): Remove.
  4567  
  4568  2012-03-18  Torbjorn Granlund  <tege@gmplib.org>
  4569  
  4570  	* longlong.h (count_trailing_zeros): Write better pure C default
  4571  	variant.
  4572  
  4573  	* mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference.
  4574  
  4575  	* mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD
  4576  	defined for fat binaries.
  4577  
  4578  2012-03-17  Torbjorn Granlund  <tege@gmplib.org>
  4579  
  4580  	* mpn/x86/k7/gcd_1.asm: Rewrite.
  4581  	* mpn/x86/p6/gcd_1.asm: New file.
  4582  
  4583  	* mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls.
  4584  	* mpn/x86_64/gcd_1.asm: Rewrite.
  4585  
  4586  2012-03-15  Torbjorn Granlund  <tege@gmplib.org>
  4587  
  4588  	* mpn/generic/gcd_1.c: Parameterise zerotab code.
  4589  
  4590  	* mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file.
  4591  
  4592  	* mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop
  4593  	code.
  4594  
  4595  2012-03-13  Torbjorn Granlund  <tege@gmplib.org>
  4596  
  4597  	* mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds.
  4598  
  4599  	* mpn/x86_64/core2/gcd_1.asm: Shorten critical path.
  4600  
  4601  2012-03-12  Torbjorn Granlund  <tege@gmplib.org>
  4602  
  4603  	* mpn/x86_64/core2/gcd_1.asm: New file.
  4604  	* mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file.
  4605  	* mpn/x86_64/bd1/gcd_1.asm: Likewise.
  4606  
  4607  	* mpn/x86_64/bobcat/sqr_basecase.asm: New file.
  4608  	* mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning.
  4609  
  4610  2012-03-10  Torbjorn Granlund  <tege@gmplib.org>
  4611  
  4612  	* configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2,
  4613  	mullo_basecase, redc_1, redc_2, sublsh1_n.
  4614  
  4615  	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
  4616  	* gmp-impl.h: Adjust corresponding declarations.
  4617  
  4618  	* mpn/generic/redc_2.c (mpn_addmul_2): Make static.
  4619  
  4620  	* mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to
  4621  	reduce branch offsets.  Pass plain 0,1,3... in %al since we'd else run
  4622  	out of 8-bit range.
  4623  
  4624  	* mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value.
  4625  	* mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index
  4626  	value.
  4627  
  4628  	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
  4629  	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
  4630  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
  4631  	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
  4632  
  4633  	* mpn/x86_64/fat/redc_2.c: New file.
  4634  	* mpn/x86/fat/mullo_basecase.c: New file.
  4635  	* mpn/x86/fat/redc_1.c: New file.
  4636  	* mpn/x86/fat/redc_2.c: New file.
  4637  
  4638  	* tests/mpn/t-fat.c: Test mullo_basecase.
  4639  
  4640  2012-03-08  Torbjorn Granlund  <tege@gmplib.org>
  4641  
  4642  	* mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64.
  4643  
  4644  2012-02-29  Marc Glisse  <marc.glisse@inria.fr>
  4645  
  4646  	* gmpxx.h: Ignore partial C++11 support in g++-4.6.
  4647  	* tests/cxx/t-cxx11.cc: Likewise.
  4648  
  4649  	* gmpxx.h (operator""): New functions.
  4650  	* tests/cxx/t-cxx11.cc: Test the above.
  4651  	* doc/gmp.texi: Document the above.
  4652  
  4653  2012-03-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4654  
  4655  	* acinclude.m4 (GMP_H_ANSI): Remove.
  4656  	* configure.in: Don't use GMP_H_ANSI.
  4657  	* gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove.
  4658  
  4659  2012-03-08  Torbjorn Granlund  <tege@gmplib.org>
  4660  
  4661  	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer".
  4662  	(__gmpn_cpuvec_init): Overhaul to match configure.in.
  4663  
  4664  	* configure.in: Adjust bulldozer path_64.
  4665  
  4666  2012-03-07  Torbjorn Granlund  <tege@gmplib.org>
  4667  
  4668  	* configure.in (x86_64 fat_path): List recently added AMD directories.
  4669  
  4670  	* mpn/x86_64/bobcat/copyi.asm: New file.
  4671  	* mpn/x86_64/bobcat/copyd.asm: New file.
  4672  
  4673  	* config.guess: Handle AMD 11h correctly.
  4674  
  4675  	* tune/tuneup.c (tune_redc): Better handle situation where redc_2 is
  4676  	never faster.
  4677  
  4678  2012-03-06  Torbjorn Granlund  <tege@gmplib.org>
  4679  
  4680  	* mpn/x86_64/bobcat/mul_basecase.asm: New file.
  4681  
  4682  2012-03-04  Torbjorn Granlund  <tege@gmplib.org>
  4683  
  4684  	* mpn/x86_64/bobcat/mul_1.asm: New file.
  4685  	* mpn/x86_64/bobcat/aorsmul_1.asm: New file.
  4686  
  4687  2012-03-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4688  
  4689  	* mpz/invert.c: Remove mod 0 branch.
  4690  	* tests/mpz/t-invert.c: Avoid testing mod 0.
  4691  	* doc/gmp.texi (mpz_invert): Specify mod 0 is not handled.
  4692  
  4693  	* gmp-h.in (__gmp_signed, __gmp_const): Remove.
  4694  	(__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove.
  4695  	* gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST.
  4696  	* demos/expr/: Strip __gmp_const usage from all files.
  4697  
  4698  	* tests/mpz/t-powm.c (allsizes_seen): Require unsigned*.
  4699  
  4700  2012-03-03  Torbjorn Granlund  <tege@gmplib.org>
  4701  
  4702  	* mpn/x86_64/k8/gmp-mparam.h: New file.
  4703  	* mpn/x86_64/k10/gmp-mparam.h: New file.
  4704  
  4705  	* mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables.
  4706  	* mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise.
  4707  	* mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise.
  4708  	* mpn/generic/mu_bdiv_qr.c: Likewise.
  4709  	* mpz/jacobi.c: Likewise.
  4710  	* mpz/mod.c: Likewise.
  4711  
  4712  	* mpn/generic/toom42_mul.c: Remove unread variable.
  4713  	* mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise.
  4714  	* mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise.
  4715  	* tests/refmpn.c (refmpn_mul): Likewise.
  4716  	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation
  4717  	into ASSERT, remove variable.
  4718  
  4719  	* gmp-h.in (__GMP_PROTO): Remove.
  4720  	* Strip __GMP_PROTO usage from all files.
  4721  	* Strip prototype parameter names from all files.
  4722  
  4723  2012-03-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4724  
  4725  	* doc/gmp.texi (mpz_invert): Correctly document result range.
  4726  	* tests/mpz/t-invert.c: Small range correction.
  4727  
  4728  2012-03-01  Torbjorn Granlund  <tege@gmplib.org>
  4729  
  4730  	* mpn/x86_64/mullo_basecase.asm: New file.
  4731  
  4732  2012-02-29  Marc Glisse  <marc.glisse@inria.fr>
  4733  
  4734  	* gmpxx.h (std::numeric_limits): New partial specialization.
  4735  
  4736  2012-02-29  Niels Möller  <nisse@lysator.liu.se>
  4737  
  4738  	* mini-gmp/tests/t-reuse.c: New test case, based on
  4739  	tests/mpz/reuse.c.
  4740  
  4741  	* mini-gmp/mini-gmp.c (mpz_cdiv_r_ui): New function.
  4742  	(mpz_fdiv_r_ui): New function.
  4743  	(mpz_tdiv_r_ui): New function.
  4744  	(mpz_powm_ui): New function.
  4745  	(mpz_pow_ui): New function.
  4746  	(mpz_ui_pow_ui): Use mpz_pow_ui.
  4747  	(mpz_gcdext): Fixed input/output overlap, for the case of one
  4748  	input being zero.
  4749  	(mpz_sqrtrem): Fix for the case r NULL, U zero.
  4750  
  4751  	* Makefile.am (check-mini-gmp): Use $(MAKE).
  4752  	(clean-mini-gmp): New target.
  4753  	(clean-local, distclean-local): New automake targets. Depend on
  4754  	clean-mini-gmp.
  4755  
  4756  2012-02-28  Niels Möller  <nisse@lysator.liu.se>
  4757  
  4758  	* Makefile.am (check-mini-gmp): New target, for running the
  4759  	mini-gmp testsuite.
  4760  
  4761  	* mini-gmp/tests/Makefile (srcdir, MINI_GMP_DIR): New make
  4762  	variables. These can be overridden when using a separate build
  4763  	directory.
  4764  	(EXTRA_CFLAGS): Renamed, was OPTFLAGS.
  4765  
  4766  	* mini-gmp/mini-gmp.c (mpz_abs_add): Don't cache limb pointers
  4767  	over MPZ_REALLOC, since that breaks in-place operation. Bug
  4768  	spotted by Torbjörn.
  4769  	(mpz_and, mpz_ior, mpz_xor): Likewise.
  4770  	(mpz_cmp): Fixed comparison of negative numbers.
  4771  
  4772  2012-02-27  Torbjorn Granlund  <tege@gmplib.org>
  4773  
  4774  	* mpn/x86_64/fastsse/lshiftc.asm: New file.
  4775  	* mpn/x86_64/fastsse/com.asm: New file.
  4776  
  4777  	* mpn/x86_64/bd1/popcount.asm: New file.
  4778  	* mpn/x86_64/bd1/hamdist.asm: New file.
  4779  
  4780  	* mpn/x86_64/fastsse/copyi.asm: New file.
  4781  	* mpn/x86_64/fastsse/copyd.asm: New file.
  4782  	* mpn/x86_64/fastsse/lshift.asm: New file.
  4783  
  4784  2012-02-26  Torbjorn Granlund  <tege@gmplib.org>
  4785  
  4786  	* mpn/x86_64/coreisbr/addmul_2.asm: New file.
  4787  
  4788  	* tests/devel/try.c (param_init): Don't require addmul_N to handle
  4789  	overlap.
  4790  
  4791  	* mpn/x86_64/bd1/mul_1.asm: New file.
  4792  	* mpn/x86_64/bd1/aorsmul_1.asm: New file.
  4793  
  4794  2012-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4795  
  4796  	* mpz/2fac_ui.c: New file: implements n!!.
  4797  	* Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui.
  4798  	* gmp-h.in: Declare mpz_2fac_ui.
  4799  	* tests/mpz/t-fac.c: Test mpz_2fac_ui.
  4800  	* doc/gmp.texi: Document mpz_2fac_ui.
  4801  	* mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c.
  4802  
  4803  	* mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2.
  4804  
  4805  2012-02-26  Niels Möller  <nisse@lysator.liu.se>
  4806  
  4807  	* mini-gmp: New subdirectory. For use by GMP bootstrap, and as a
  4808  	fallback for applications needing bignums but not high
  4809  	performance.
  4810  
  4811  	* bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the
  4812  	standard GMP functions, and then defines the few functions
  4813  	particular for the bootstrap.
  4814  	* dumbmp.c: Deleted file. A few functions moved to bootstrap.c.
  4815  
  4816  	* gen-bases.c: Include bootstrap.c, not dumbmp.c.
  4817  	* gen-fac_ui.c: Likewise.
  4818  	* gen-trialdivtab.c: Likewise.
  4819  	* gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather
  4820  	than ASSERT. Deleted casts of xmalloc return value.
  4821  	* gen-psqr.c: Likewise.
  4822  	(COLLAPSE_ELEMENT): Use memmove rather than mem_copyi.
  4823  
  4824  	* Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c.
  4825  	(EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp
  4826  	files.
  4827  
  4828  2012-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4829  
  4830  	* mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P.
  4831  	* mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
  4832  	* mpz/aors_ui.h: Likewise.
  4833  	* mpz/com.c: Likewise.
  4834  	* mpz/neg.c: Likewise.
  4835  
  4836  	* mpz/invert.c: Reply "no-inverse" when modulus is zero.
  4837  	* tests/mpz/t-invert.c: Add more checks.
  4838  	* doc/gmp.texi (mpz_invert): Inverse can not be zero.
  4839  
  4840  2012-02-24  Torbjorn Granlund  <tege@gmplib.org>
  4841  
  4842  	* tests/mpn/logic.c: New file.
  4843  	* tests/mpn/Makefile.am (check_PROGRAMS): Add logic.
  4844  
  4845  	* tests/mpz/t-invert.c: New file.
  4846  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert.
  4847  
  4848  2012-02-24  Marc Glisse  <marc.glisse@inria.fr>
  4849  
  4850  	* tests/mpq/t-cmp.c: Move NUM and DEN macros...
  4851  	* tests/mpq/t-cmp_ui.c: Likewise...
  4852  	* gmp-impl.h: ... to here.
  4853  
  4854  	* mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC.
  4855  	* mpq/aors.c: Likewise.
  4856  	* mpq/canonicalize.c: Likewise.
  4857  	* mpq/clear.c: Likewise.
  4858  	* mpq/cmp.c: Likewise.
  4859  	* mpq/cmp_si.c: Likewise.
  4860  	* mpq/cmp_ui.c: Likewise.
  4861  	* mpq/div.c: Likewise.
  4862  	* mpq/equal.c: Likewise.
  4863  	* mpq/get_d.c: Likewise.
  4864  	* mpq/get_den.c: Likewise.
  4865  	* mpq/get_num.c: Likewise.
  4866  	* mpq/get_str.c: Likewise.
  4867  	* mpq/init.c: Likewise.
  4868  	* mpq/inp_str.c: Likewise.
  4869  	* mpq/inv.c: Likewise.
  4870  	* mpq/md_2exp.c: Likewise.
  4871  	* mpq/mul.c: Likewise.
  4872  	* mpq/neg.c: Likewise.
  4873  	* mpq/set.c: Likewise.
  4874  	* mpq/set_d.c: Likewise.
  4875  	* mpq/set_den.c: Likewise.
  4876  	* mpq/set_f.c: Likewise.
  4877  	* mpq/set_num.c: Likewise.
  4878  	* mpq/set_si.c: Likewise.
  4879  	* mpq/set_str.c: Likewise.
  4880  	* mpq/set_ui.c: Likewise.
  4881  	* mpq/set_z.c: Likewise.
  4882  	* mpq/swap.c: Likewise.
  4883  
  4884  	* tests/mpq/t-inv.c: New test file.
  4885  	* tests/mpq/Makefile.am: Add the above.
  4886  
  4887  	* gmpxx.h (__gmp_set_expr): Use mpq_set_z.
  4888  
  4889  	* mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
  4890  	* mpq/set_d.c: Likewise.
  4891  	* mpq/set_f.c: Likewise.
  4892  
  4893  2012-02-24  Niels Möller  <nisse@lysator.liu.se>
  4894  
  4895  	* mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and
  4896  	mpn_submul_1c entry points.
  4897  
  4898  2012-02-23  Marc Glisse  <marc.glisse@inria.fr>
  4899  
  4900  	* mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC.
  4901  	* mpz/aors_ui.h: Likewise.
  4902  	* mpz/array_init.c: Likewise.
  4903  	* mpz/cdiv_q.c: Likewise.
  4904  	* mpz/cdiv_qr.c: Likewise.
  4905  	* mpz/cdiv_r.c: Likewise.
  4906  	* mpz/clear.c: Likewise.
  4907  	* mpz/clrbit.c: Likewise.
  4908  	* mpz/cmp_si.c: Likewise.
  4909  	* mpz/com.c: Likewise.
  4910  	* mpz/fdiv_q.c: Likewise.
  4911  	* mpz/fdiv_qr.c: Likewise.
  4912  	* mpz/fdiv_r.c: Likewise.
  4913  	* mpz/get_si.c: Likewise.
  4914  	* mpz/get_str.c: Likewise.
  4915  	* mpz/init.c: Likewise.
  4916  	* mpz/inp_str.c: Likewise.
  4917  	* mpz/iset.c: Likewise.
  4918  	* mpz/iset_d.c: Likewise.
  4919  	* mpz/iset_si.c: Likewise.
  4920  	* mpz/iset_str.c: Likewise.
  4921  	* mpz/iset_ui.c: Likewise.
  4922  	* mpz/mod.c: Likewise.
  4923  	* mpz/neg.c: Likewise.
  4924  	* mpz/out_str.c: Likewise.
  4925  	* mpz/random2.c: Likewise.
  4926  	* mpz/set_si.c: Likewise.
  4927  	* mpz/set_str.c: Likewise.
  4928  	* mpz/set_ui.c: Likewise.
  4929  	* mpz/setbit.c: Likewise.
  4930  	* mpz/sqrt.c: Likewise.
  4931  	* mpz/swap.c: Likewise.
  4932  	* mpz/tdiv_r_2exp.c: Likewise.
  4933  
  4934  	* tests/cxx/t-ops.cc: Test mpz_abs reallocation.
  4935  
  4936  2012-02-23  Torbjorn Granlund  <tege@gmplib.org>
  4937  
  4938  	* mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite.
  4939  	* mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here.
  4940  
  4941  	* mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit).
  4942  
  4943  2012-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  4944  
  4945  	* mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial.
  4946  
  4947  	* mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements.
  4948  
  4949  	* mpz/and.c: Use mpn_ logic everywhere. Reduce branches.
  4950  	* mpz/ior.c: Likewise.
  4951  	* mpz/xor.c: Likewise.
  4952  
  4953  2012-02-20  Torbjorn Granlund  <tege@gmplib.org>
  4954  
  4955  	* mpn/x86_64/coreisbr/mul_1.asm: New file.
  4956  
  4957  	* mpn/x86_64/coreisbr/aorsmul_1.asm: New file.
  4958  
  4959  	* mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many
  4960  	assemblers don't support it.
  4961  
  4962  2012-02-19  Torbjorn Granlund  <tege@gmplib.org>
  4963  
  4964  	* mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry.
  4965  	Reintroduce previously removed RP argument.
  4966  	* mpn/x86_64/redc_1.asm: Likewise.
  4967  
  4968  	* mpn/generic/redc_2.c: Remove mpn_sub_n call, return carry from
  4969  	mpn_add_n call.
  4970  
  4971  	* gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t.
  4972  
  4973  	* tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument.
  4974  
  4975  	* tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface.
  4976  
  4977  	* mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1.
  4978  	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise.
  4979  	* mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2.
  4980  
  4981  2012-02-18  Marc Glisse  <marc.glisse@inria.fr>
  4982  
  4983  	* gmpxx.h (std::common_type): New partial specialization in C++11.
  4984  	* tests/cxx/t-cxx11.cc: Test it.
  4985  
  4986  	* gmpxx.h: Don't declare long double functions that are never defined.
  4987  
  4988  	* gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z
  4989  	becomes tmp=z*z, q=q*q, q+=tmp.
  4990  	* tests/cxx/t-binary.cc: More variable reuse tests.
  4991  
  4992  2012-02-17  Marc Glisse  <marc.glisse@inria.fr>
  4993  
  4994  	* gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for
  4995  	the benefit of applications using gcc -Wundef.
  4996  	(__GMP_WITHIN_GMPXX): Likewise.
  4997  
  4998  2012-02-16  Marc Glisse  <marc.glisse@inria.fr>
  4999  
  5000  	* gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d
  5001  	becomes tmp=c*d, e=a*b, e-=tmp.
  5002  	* tests/cxx/t-binary.cc: More variable reuse tests.
  5003  
  5004  2012-02-15  Niels Möller  <nisse@lysator.liu.se>
  5005  
  5006  	* tune/tuneup.c (mul_toom43_to_toom54_threshold): New global.
  5007  	(tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD.
  5008  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro.
  5009  	(SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro.
  5010  	Prototypes for corresponding functions.
  5011  	* tune/common.c (speed_mpn_toom43_for_toom54_mul): New function.
  5012  	(speed_mpn_toom54_for_toom43_mul): New function.
  5013  
  5014  	* gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant.
  5015  	(MPN_TOOM53_MUL_MINSIZE): Likewise.
  5016  	(MPN_TOOM54_MUL_MINSIZE): New constant.
  5017  	(mpn_toom54_mul): Added prototype.
  5018  	(MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and
  5019  	tuning setup.
  5020  
  5021  2012-02-14  Niels Möller  <nisse@lysator.liu.se>
  5022  
  5023  	* mpn/generic/toom54_mul.c: New file, originally contributed by
  5024  	Marco.
  5025  	* gmp-impl.h (mpn_toom54_mul_itch): New function.
  5026  	* configure.in (gmp_mpn_functions): Added toom54_mul.
  5027  	* tests/mpn/t-toom54.c: New file.
  5028  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54.
  5029  
  5030  2012-02-13  Niels Möller  <nisse@lysator.liu.se>
  5031  
  5032  	* configure.in: Display summary of options.
  5033  
  5034  2012-02-11  Torbjorn Granlund  <tege@gmplib.org>
  5035  
  5036  	* tests/tests.h (TESTS_REPS): Print any non-standard repetitions.
  5037  
  5038  2012-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5039  
  5040  	* doc/gmp.texi (Factorial): Shortly describe current algorithm.
  5041  	(Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly.
  5042  	* gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY.
  5043  
  5044  2012-02-10  Niels Möller  <nisse@lysator.liu.se>
  5045  
  5046  	* tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter
  5047  	bound for cofactors.
  5048  
  5049  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected
  5050  	handling of unlikely (maybe impossible?) case u1n < un. Related to
  5051  	the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo.
  5052  
  5053  2012-02-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5054  
  5055  	* gmp-impl.h (mpn_toom3*_itch): Support any recursion depth.
  5056  	* tests/refmpn.c (refmpn_mul): Restore tight allocations.
  5057  
  5058  	* mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!!
  5059  	* gmp-impl.h (mpz_oddfac_1): Update signature.
  5060  	* mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1.
  5061  
  5062  2012-02-09  Marc Glisse  <marc.glisse@inria.fr>
  5063  
  5064  	* gmp-impl.h (ABS_CAST): New macro.
  5065  	* mpf/cmp_si.c: Use ABS_CAST.
  5066  	* mpf/get_si.c: Use ABS_CAST.
  5067  	* mpf/iset_si.c: Use ABS_CAST.
  5068  	* mpf/set_si.c: Use ABS_CAST.
  5069  	* mpq/set_si.c: Use ABS_CAST.
  5070  	* mpz/cmp_si.c: Use ABS_CAST.
  5071  	* mpz/get_si.c: Use ABS_CAST.
  5072  	* mpz/iset_si.c: Use ABS_CAST.
  5073  	* mpz/mul_i.h: Use ABS_CAST.
  5074  	* mpz/set_si.c: Use ABS_CAST.
  5075  
  5076  2012-02-08  Torbjorn Granlund  <tege@gmplib.org>
  5077  
  5078  	* mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb
  5079  	code.
  5080  
  5081  2012-02-08  Niels Möller  <nisse@lysator.liu.se>
  5082  
  5083  	* doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor
  5084  	canonicalization.
  5085  
  5086  2012-02-07  Niels Möller  <nisse@lysator.liu.se>
  5087  
  5088  	* mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the
  5089  	special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo.
  5090  
  5091  2012-02-06  Niels Möller  <nisse@lysator.liu.se>
  5092  
  5093  	* mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry
  5094  	handling bug. Fix copied from gmp-5.0 repo, where the function is
  5095  	found in hgcd.c.
  5096  
  5097  	* tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands,
  5098  	not mpz_urandomb. Change copied from gmp-5.0 repo.
  5099  	* tests/mpn/t-hgcd.c (main): Likewise.
  5100  
  5101  2012-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5102  
  5103  	* tests/refmpn.c (refmpn_mul): More conservative allocations.
  5104  
  5105  2012-02-03  Torbjorn Granlund  <tege@gmplib.org>
  5106  
  5107  	* mpn/x86_64/bd1/gmp-mparam.h: New file.
  5108  
  5109  	* longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv.
  5110  
  5111  	* mpn/generic/udiv_w_sdiv.c: Use c89 function header.
  5112  
  5113  2012-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5114  
  5115  	* mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions.
  5116  	* mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation.
  5117  	* gmp-impl.h: mpz_oddfac_1 declaration.
  5118  	* Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo .
  5119  	* mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c .
  5120  	* tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c .
  5121  
  5122  2012-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5123  
  5124  	* mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug.
  5125  
  5126  2012-02-02  Torbjorn Granlund  <tege@gmplib.org>
  5127  
  5128  	* mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT.
  5129  	* mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n.
  5130  
  5131  	* tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in
  5132  	tested function.
  5133  
  5134  2012-02-01  Torbjorn Granlund  <tege@gmplib.org>
  5135  
  5136  	* tests/mpn/t-mul.c: New file.
  5137  	* tests/mpn/Makefile.am: Compile it.
  5138  
  5139  2012-02-01  Marc Glisse  <marc.glisse@inria.fr>
  5140  
  5141  	* gmpxx.h: Remove check for g++ older than 2.91.
  5142  
  5143  2012-02-01  Niels Möller  <nisse@lysator.liu.se>
  5144  
  5145  	* mpn/generic/mul.c: Added diagram on where toom functions can be
  5146  	called.
  5147  
  5148  2012-02-01  Marc Glisse  <marc.glisse@inria.fr>
  5149  
  5150  	* gmpxx.h (__gmp_unary_expr): Make the constructor explicit.
  5151  	(__gmp_expr(__gmp_expr&&)): New move constructors.
  5152  	(__gmp_expr::operator=(__gmp_expr&&)): New move assignments.
  5153  	(swap): Mark as noexcept.
  5154  	(__GMPXX_USE_CXX11): New macro.
  5155  	(__GMPXX_NOEXCEPT): New macro.
  5156  	* tests/cxx/t-cxx11.cc: New file.
  5157  	* tests/cxx/Makefile.am: Added t-cxx11.
  5158  
  5159  2012-01-31  Torbjorn Granlund  <tege@gmplib.org>
  5160  
  5161  	* mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for
  5162  	SQR_BASECASE_MAX.
  5163  	(SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec.
  5164  	(SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD
  5165  	straight, without arithmetic.
  5166  	(mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion.
  5167  
  5168  2012-01-30  Torbjorn Granlund  <tege@gmplib.org>
  5169  
  5170  	* tests/mpz/t-powm.c: Ensure all sizes are seen.
  5171  
  5172  2012-01-30  Marc Glisse  <marc.glisse@inria.fr>
  5173  
  5174  	* gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c
  5175  	when d != c.
  5176  	* tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c.
  5177  
  5178  2012-01-28  Marc Glisse  <marc.glisse@inria.fr>
  5179  
  5180  	* gmpxx.h: Don't compute -LONG_MIN.
  5181  
  5182  	* doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t.
  5183  	* gmpxx.h: Replace unsigned long with mp_bitcnt_t.
  5184  
  5185  2012-01-27  Torbjorn Granlund  <tege@gmplib.org>
  5186  
  5187  	* Upgrade to libtool 2.4.2.
  5188  
  5189  2012-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5190  
  5191  	* tests/mpz/t-fac_ui.c: Increase default test cases.
  5192  
  5193  	* mpz/prodlimbs.c: New file, mpz_prodlimbs implementation.
  5194  	* gmp-impl.h: mpz_prodlimbs declaration.
  5195  	* Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo .
  5196  	* mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c .
  5197  	(fac_ui.h): remove target (moved up one directory).
  5198  	* mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations.
  5199  
  5200  2012-01-25  Torbjorn Granlund  <tege@gmplib.org>
  5201  
  5202  	* tune/tuneup.c: Remove unused tuneup variables.
  5203  
  5204  2012-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5205  
  5206  	* mpz/fac_ui.c: Reduce branches in basecases.
  5207  
  5208  2012-01-18  Marc Glisse  <marc.glisse@inria.fr>
  5209  
  5210  	* doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t.
  5211  
  5212  2012-01-17  Torbjorn Granlund  <tege@gmplib.org>
  5213  
  5214  	* configure.in: Add ultrasparc T4 support.
  5215  
  5216  	* demos/isprime.c (main): Run 25 millerrabin tests.
  5217  
  5218  2012-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5219  
  5220  	* mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size.
  5221  	(mpz_oddswing_1): Reduce the number of divisions.
  5222  	(mpz_oddfac_1): Reduce memory usage.
  5223  	* mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_.
  5224  	* tune/tuneup.c (tune_fac_ui): Likewise.
  5225  
  5226  2012-01-15  Niels Möller  <nisse@lysator.liu.se>
  5227  
  5228  	* mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than
  5229  	ULONG_MAX, when returning "infinity".
  5230  	* mpz/scan1.c (mpz_scan1): Likewise.
  5231  
  5232  2012-01-12  Torbjorn Granlund  <tege@gmplib.org>
  5233  
  5234  	* tests/t-popc.c: Test longer bit strings.
  5235  
  5236  2012-01-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5237  
  5238  	* mpz/divexact.c: Tight realloc, delayed if variables are reused.
  5239  	* mpz/lcm.c: Smaller temp space, avoid goto.
  5240  	* gmp-impl.h (popc_limb): avoid double & (for 8-bits limb).
  5241  
  5242  2012-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5243  
  5244  	* mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds.
  5245  	* tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_.
  5246  
  5247  2012-01-07  Torbjorn Granlund  <tege@gmplib.org>
  5248  
  5249  	* mpz/mul_2exp.c: Rewrite.
  5250  	* mpz/tdiv_q_2exp.c: Rewrite.
  5251  
  5252  2012-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5253  
  5254  	* gen-fac_ui.c: Remove currently unused constants; add new odd
  5255  	double factorial table.
  5256  	* mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default.
  5257  	(mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd.
  5258  	(mpz_prodlimbs): More in-place computations.
  5259  
  5260  	* tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_.
  5261  
  5262  2012-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5263  
  5264  	* tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD.
  5265  
  5266  2011-12-31  Torbjorn Granlund  <tege@gmplib.org>
  5267  
  5268  	* Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz.
  5269  
  5270  2011-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5271  
  5272  	* tune/Makefile.am (fac_ui.c): New target.
  5273  	(nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c.
  5274  	* tune/tuneup.c (mpz_fac_ui_tune): Declare prototype.
  5275  	(fac_odd_threshold,fac_dsc_threshold): New global variables.
  5276  	(speed_mpz_fac_ui_tune,tune_fac_ui): New functions.
  5277  	(all): Call tune_fac_ui.
  5278  	* gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
  5279  	New thresholds: default values, and setup for tuning.
  5280  	(FAC_DSC_THRESHOLD_LIMIT): Define (when tuning).
  5281  	* mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
  5282  	Default values removed.
  5283  
  5284  2011-12-30  Torbjorn Granlund  <tege@gmplib.org>
  5285  
  5286  	* mpz/hamdist.c: Fix typo in a return statement.
  5287  
  5288  	* mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from
  5289  	SQR_TOOM2_THRESHOLD.
  5290  
  5291  2011-12-17  Torbjorn Granlund  <tege@gmplib.org>
  5292  
  5293  	* tests/mpz/t-perfpow.c: Decrease default # of tests.
  5294  
  5295  2011-12-16  Torbjorn Granlund  <tege@gmplib.org>
  5296  
  5297  	* tests/refmpn.c (AORS_1): Fix typo in variable type.
  5298  
  5299  2011-12-10  Torbjorn Granlund  <tege@gmplib.org>
  5300  
  5301  	* mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to
  5302  	allow quotient and dividend to completely overlap.
  5303  	* mpn/generic/sbpi1_bdiv_qr.c: Likewise.
  5304  
  5305  2011-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5306  
  5307  	* mpz/fac_ui.c: fac_bc_ui inlined in fac_ui.
  5308  
  5309  2011-12-08  Torbjorn Granlund  <tege@gmplib.org>
  5310  
  5311  	* mpn/generic/powm_sec.c: Handle fat binaries better.
  5312  
  5313  	* mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size.
  5314  
  5315  	* mpn/x86/fat/com.c: New file.
  5316  
  5317  	* mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64.
  5318  	* mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64
  5319  	to avoid overhead for standard ABIs.
  5320  
  5321  	* mpn/x86_64/gcd_1.asm: Support DOS64.
  5322  
  5323  2011-12-07  Torbjorn Granlund  <tege@gmplib.org>
  5324  
  5325  	* configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat
  5326  	functions.
  5327  
  5328  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break.
  5329  
  5330  2011-12-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
  5331  
  5332  	* gen-fac_ui.c: Generate two more tables: odd factorial, swing.
  5333  
  5334  	* mpz/fac_ui.c: Rewrite.
  5335  
  5336  2011-12-06  Niels Möller  <nisse@lysator.liu.se>
  5337  
  5338  	* mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first
  5339  	recursive call.
  5340  
  5341  2011-12-06  Torbjorn Granlund  <tege@gmplib.org>
  5342  
  5343  	* tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the
  5344  	benefit of fat builds).
  5345  	* tune/mod_1_1-2.c: Likewise.
  5346  
  5347  2011-12-05  Torbjorn Granlund  <tege@gmplib.org>
  5348  
  5349  	* mpn/x86/fat/lshiftc.c: New file.
  5350  	* mpn/x86/fat/mod_1_1.c: New file.
  5351  	* mpn/x86/fat/mod_1_2.c: New file.
  5352  	* mpn/x86/fat/mod_1_4.c: New file.
  5353  
  5354  	* mpn/x86/fat/diveby3.c: Remove no longer fat function.
  5355  	* mpn/x86_64/fat/diveby3.c: Likewise.
  5356  
  5357  	* mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm.
  5358  	* mpn/x86_64/fat/mode1o.c: Likewise.
  5359  
  5360  	* configure.in (fat_functions): Update to more relevant function set.
  5361  	Add special handling for mod_1_N_cps functions.
  5362  	* gmp-impl.h (struct cpuvec_t) : Corresponding changes.  Also add
  5363  	vrious declarations for new functions.
  5364  	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
  5365  	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
  5366  	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
  5367  	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
  5368  
  5369  	* mpn/x86_64: Port most remaining x86_64 files to DOS64.
  5370  
  5371  	* mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT.
  5372  
  5373  	* mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code.
  5374  	* mpn/x86_64/darwin.m4 (LEA): Likewise.
  5375  
  5376  2011-12-04  Torbjorn Granlund  <tege@gmplib.org>
  5377  
  5378  	* mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs.
  5379  	* mpn/x86/fat/fat.c (MAKE_FMS): Likewise.
  5380  
  5381  	* mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value.
  5382  
  5383  2011-12-02  Torbjorn Granlund  <tege@gmplib.org>
  5384  
  5385  	* mpn/x86_64/invert_limb_table.asm: Use PROTECT.
  5386  	* mpn/x86_64/invert_limb.asm: Likewise.
  5387  
  5388  	* mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines.
  5389  	* mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines.
  5390  	* mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines.
  5391  
  5392  2011-12-01  Torbjorn Granlund  <tege@gmplib.org>
  5393  
  5394  	* mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c.
  5395  
  5396  	* mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these
  5397  	denote all standard calling conventions).
  5398  
  5399  	* mpn/x86_64: Add DOS64 ABI support to more files.
  5400  
  5401  	* mpn/x86_64/mod_1_1.asm: Finish DOS64 support.
  5402  	* mpn/x86_64/mod_1_2.asm: Likewise.
  5403  	* mpn/x86_64/mod_1_4.asm: Likewise.
  5404  
  5405  	* configure.in: Add GMP_NONSTD_ABI also for fat builds.
  5406  
  5407  	* mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64.
  5408  
  5409  	* mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines.
  5410  	* mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines.
  5411  
  5412  	* mpn/x86_64/dive_1.asm: Add DOS64 ABI support.
  5413  	* mpn/x86_64/mode1o.asm: Likewise.
  5414  
  5415  	* mpn/x86_64/mod_34lsub1.asm: Enable for DOS64.
  5416  
  5417  	* mpn/x86_64/invert_limb.asm: Wrap .protected decl.
  5418  
  5419  	* gmp-impl.h (DECL_divexact_1): Fix typo in return type.
  5420  
  5421  	* mpn/x86_64/dos64.m4 (LEA): New define.
  5422  	(PIC): Define.
  5423  
  5424  2011-11-29  Torbjorn Granlund  <tege@gmplib.org>
  5425  
  5426  	* mpn/x86_64: Add DOS64 ABI support to most files.
  5427  
  5428  2011-11-28  Torbjorn Granlund  <tege@gmplib.org>
  5429  
  5430  	* mpn/x86_64/mul_basecase.asm: Support ABI DOS64.
  5431  	* mpn/x86_64/sqr_basecase.asm: Support ABI DOS64.
  5432  	* mpn/x86_64/aorsmul_1.asm: Support ABI DOS64.
  5433  	* mpn/x86_64/mul_1.asm: Support ABI DOS64.
  5434  
  5435  	* mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs.
  5436  
  5437  	* mpn/x86_64/dos64.m4: New file.
  5438  
  5439  	* mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro.
  5440  
  5441  	* configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI.
  5442  	No longer clear out path_64.
  5443  	(mpn code selection loop): Handle GMP_NONSTD_ABI.
  5444  
  5445  	* mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants.
  5446  
  5447  2011-11-25  Torbjorn Granlund  <tege@gmplib.org>
  5448  
  5449  	* x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode.
  5450  
  5451  	* configure.in: Overhaul x86/x86_64 support, merging three case
  5452  	statements into one.
  5453  
  5454  2011-11-24  Torbjorn Granlund  <tege@gmplib.org>
  5455  
  5456  	* doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t
  5457  	precision.
  5458  
  5459  	* mpn/powerpc32/p7/gmp-mparam.h: New file.
  5460  
  5461  	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's
  5462  	threshold.
  5463  
  5464  2011-11-22  Torbjorn Granlund  <tege@gmplib.org>
  5465  
  5466  	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file.
  5467  
  5468  	* configure.in: Don't fail fat builds under 64-bit DOS.
  5469  
  5470  	* mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better
  5471  	power5 performance.
  5472  
  5473  2011-11-21  Torbjorn Granlund  <tege@gmplib.org>
  5474  
  5475  	* gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name.
  5476  
  5477  2011-11-20  Torbjorn Granlund  <tege@gmplib.org>
  5478  
  5479  	* configure.in: Split x86 CPUs into more subtypes for more accurate
  5480  	passing of gcc flags.
  5481  
  5482  	* mpn/powerpc32/p3-p7/aors_n.asm: New file.
  5483  
  5484  	* configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe
  5485  	mechanism.
  5486  
  5487  	* configure.in: Support powerpc32/p3-p7 directory for affected CPUs.
  5488  
  5489  2011-11-17  Torbjorn Granlund  <tege@gmplib.org>
  5490  
  5491  	* tune/speed.c (routine): Add mpn_tabselect.
  5492  	* tune/common.c (speed_mpn_tabselect): New function.
  5493  	* tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from
  5494  	old SPEED_ROUTINE_MPN_COPY.
  5495  	(SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL.
  5496  	(SPEED_ROUTINE_MPN_TABSELECT): New macro.
  5497  
  5498  2011-11-17  Niels Möller  <nisse@lysator.liu.se>
  5499  
  5500  	* tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change.
  5501  
  5502  2011-11-16  Torbjorn Granlund  <tege@gmplib.org>
  5503  
  5504  	* mpn/powerpc32/tabselect.asm: New file.
  5505  
  5506  	* mpn/powerpc64/mode64/aorscnd_n.asm: New file.
  5507  
  5508  2011-11-15  Niels Möller  <nisse@lysator.liu.se>
  5509  
  5510  	* tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype.
  5511  	(mpn_hgcd_lehmer_itch): Likewise.
  5512  	(mpn_hgcd_appr_lehmer): Likewise.
  5513  	(mpn_hgcd_appr_lehmer_itch): Likewise.
  5514  	(MPN_HGCD_LEHMER_ITCH): Deleted macro.
  5515  
  5516  	* tune/speed.c (routine): Added mpn_hgcd_appr_lehmer.
  5517  
  5518  	* tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch
  5519  	rather than similarly named macro.
  5520  	(speed_mpn_hgcd_appr_lehmer): New function.
  5521  
  5522  	* tune/Makefile.am (libspeed_la_SOURCES): Added
  5523  	hgcd_appr_lehmer.c.
  5524  
  5525  	* tune/hgcd_appr_lehmer.c: New file.
  5526  
  5527  	* tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some
  5528  	machines got small thresholds which appear to be bogus.
  5529  
  5530  2011-11-15  Torbjorn Granlund  <tege@gmplib.org>
  5531  
  5532  	* mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls.
  5533  	(redcify): Likewise.
  5534  	(mpn_powm_sec): Likewise.
  5535  
  5536  	* mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage
  5537  	(mpn_powm_sec_itch): Rewrite.
  5538  
  5539  	* mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in
  5540  	initialisation.
  5541  
  5542  	* configure.in: Amend 2011-11-03 gcc_cflags change.
  5543  
  5544  	* mpn/powerpc64/tabselect.asm: New file.
  5545  	* mpn/x86_64/tabselect.asm: New file.
  5546  	* mpn/x86/tabselect.asm: New file.
  5547  	* mpn/ia64/tabselect.asm: New file.
  5548  
  5549  	* mpn/asm-defs.m4 (define_mpn): Add tabselect.
  5550  
  5551  	* configure.in (gmp_mpn_functions): Add tabselect.
  5552  	(HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect.
  5553  
  5554  	* mpn/generic/powm_sec.c: Remove mpn_tabselect implementation.
  5555  	* mpn/generic/tabselect.c: New file with removed code.
  5556  
  5557  2011-11-13  Torbjorn Granlund  <tege@gmplib.org>
  5558  
  5559  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c.
  5560  
  5561  	* mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE
  5562  	(POWM_SEC_TABLE): Define default.
  5563  
  5564  	* tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE.
  5565  	(all): Call new function.
  5566  
  5567  	* mpn/generic/powm_sec.c (win_size): Define only when
  5568  	TUNE_PROGRAM_BUILD is not set.
  5569  
  5570  2011-11-13  Niels Möller  <nisse@lysator.liu.se>
  5571  
  5572  	* tune/tuneup.c (tune_hgcd_appr): Use default min_size.
  5573  	(tune_hgcd_reduce): Increase max_size and step_factor, to 7000
  5574  	and 0.04, respectively.
  5575  
  5576  2011-11-11  Torbjorn Granlund  <tege@gmplib.org>
  5577  
  5578  	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove.
  5579  
  5580  2011-11-11  Niels Möller  <nisse@lysator.liu.se>
  5581  
  5582  	* tune/hgcd_reduce_2.c: New file.
  5583  	* tune/hgcd_reduce_1.c: New file.
  5584  
  5585  	* tune/tuneup.c (hgcd_appr_threshold): New threshold variable.
  5586  	(hgcd_reduce_threshold): Likewise.
  5587  	(tune_hgcd_appr): New function.
  5588  	(tune_hgcd_reduce): New function.
  5589  	(all): Call tune_hgcd_appr and tune_hgcd_reduce.
  5590  
  5591  	* tune/speed.h (speed_mpn_hgcd_reduce): Declaration.
  5592  	(speed_mpn_hgcd_reduce_[12]): Likewise.
  5593  	(mpn_hgcd_reduce_[12]): Likewise.
  5594  	(SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro.
  5595  
  5596  	* tune/speed.c (routine): Added mpn_hgcd_reduce,
  5597  	mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2.
  5598  
  5599  	* tune/common.c (speed_mpn_hgcd_reduce): New function.
  5600  	(speed_mpn_hgcd_reduce_[12]): Likewise.
  5601  
  5602  	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c
  5603  	hgcd_reduce_2.c.
  5604  	(TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c.
  5605  
  5606  	* mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted
  5607  	functions, earlier copied to hgcd_reduce.c.
  5608  	(mpn_hgcd_appr): Use hgcd_reduce.
  5609  
  5610  2011-11-09  Torbjorn Granlund  <tege@gmplib.org>
  5611  
  5612  	* mpn/powerpc64/mode64/sqr_basecase.asm: New file.
  5613  
  5614  	* mpn/x86_64/aorscnd_n.asm: New file.
  5615  
  5616  	* tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n.
  5617  	* tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions.
  5618  	* tune/speed.h: Declare them.
  5619  
  5620  	* tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n.
  5621  	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions.
  5622  	* tests/tests.h: Declare them.
  5623  
  5624  	* configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n.
  5625  
  5626  2011-11-07  Torbjorn Granlund  <tege@gmplib.org>
  5627  
  5628  	* mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but
  5629  	not fully canonically; leave add_n and conditional sub_n to caller.
  5630  	Therefore omit R argument.
  5631  
  5632  	* mpn/generic/redc_1_sec.c: Remove.
  5633  
  5634  	* gmp-impl.h (mpn_redc_1): Update declaration.
  5635  	(mpn_redc_1_sec): Remove declaration.
  5636  
  5637  	* configure.in (gmp_mpn_functions): Remove redc_1.
  5638  
  5639  	* mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface.
  5640  	* tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise.
  5641  
  5642  	* tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1
  5643  	instead of mpn_addmul_1.
  5644  
  5645  	* mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1.
  5646  	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for
  5647  	mpn_redc_1_sec.
  5648  
  5649  2011-11-03  Torbjorn Granlund  <tege@gmplib.org>
  5650  
  5651  	* dumbmp.c (mpz_sub): Abort for non-handled case.
  5652  
  5653  	* mpn/powerpc64/mode64/lshiftc.asm: Move file from here...
  5654  	* mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications.
  5655  
  5656  	* configure.in: Pass -m32 in more cases, using _maybe mechanism.
  5657  	Inherit default gcc_cflags in more places.
  5658  
  5659  	* mpn/powerpc64/mode64/p7/gmp-mparam.h: New file.
  5660  
  5661  2011-11-02  Torbjorn Granlund  <tege@gmplib.org>
  5662  
  5663  	* mpn/s390_64/invert_limb.asm: Slight optimisation.
  5664  
  5665  	* configure.in (s390): Set gcc_32_cflags_maybe.
  5666  
  5667  	* mpn/s390_32/gmp-mparam.h: Put in proper data.
  5668  	* mpn/s390_32/esame/gmp-mparam.h: New file.
  5669  
  5670  	* mpn/x86_64/bobcat/gmp-mparam.h: New file.
  5671  
  5672  	* mpn/s390_32/lshift.asm: New file.
  5673  	* mpn/s390_32/rshift.asm: New file.
  5674  	* mpn/s390_32/lshiftc.asm: New file.
  5675  
  5676  2011-10-31  Torbjorn Granlund  <tege@gmplib.org>
  5677  
  5678  	* mpn/powerpc64/sqr_diagonal.asm: Move from here...
  5679  	* mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here.
  5680  
  5681  	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file.
  5682  
  5683  	* mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code.
  5684  	* mpn/s390_32/esame/sqr_basecase.asm: Likewise.
  5685  
  5686  2011-10-29  Torbjorn Granlund  <tege@gmplib.org>
  5687  
  5688  	* mpn/s390_64/lshift.asm: Complete rewrite.
  5689  	* mpn/s390_64/rshift.asm: Likewise.
  5690  
  5691  	* mpn/s390_64/lshiftc.asm: New file.
  5692  
  5693  2011-10-28  Torbjorn Granlund  <tege@gmplib.org>
  5694  
  5695  	* mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code.
  5696  
  5697  2011-10-27  Torbjorn Granlund  <tege@gmplib.org>
  5698  
  5699  	From Per Olofsson:
  5700  	* gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH
  5701  	clash.
  5702  
  5703  	* mpn/s390_32/esame/mul_basecase.asm: New file.
  5704  
  5705  	* mpn/s390_32/esame/sqr_basecase.asm: New file.
  5706  
  5707  	* mpn/s390_32/logops_n.asm: New file.
  5708  
  5709  	* mpn/s390_64/logops_n.asm: Fix rp=up code.  Remove a leftover insn.
  5710  
  5711  2011-10-26  Niels Möller  <nisse@lysator.liu.se>
  5712  
  5713  	* gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added
  5714  	prototypes.
  5715  	(HGCD_APPR_THRESHOLD): Set up threshold for tuning.
  5716  	(HGCD_REDUCE_THRESHOLD): Likewise.
  5717  
  5718  	* configure.in (gmp_mpn_functions): Added hgcd_reduce.
  5719  
  5720  	* mpn/generic/hgcd_reduce.c: New file.
  5721  
  5722  2011-10-24  Torbjorn Granlund  <tege@gmplib.org>
  5723  
  5724  	* mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't
  5725  	allocate any stack space.
  5726  
  5727  2011-10-23  Torbjorn Granlund  <tege@gmplib.org>
  5728  
  5729  	* mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible.
  5730  
  5731  	* tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc):
  5732  	Pass correct input args.
  5733  
  5734  	* mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions.
  5735  
  5736  	* mpn/s390_64/mul_basecase.asm: New file.
  5737  
  5738  	* mpn/s390_64/sqr_basecase.asm: New file.
  5739  	* mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase.
  5740  
  5741  	* mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l.
  5742  
  5743  	* mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm.
  5744  	* mpn/s390_64/sublsh1_n.asm: New file.
  5745  	* mpn/s390_64/aorslsh1_n.asm: Remove file.
  5746  
  5747  2011-10-22  Torbjorn Granlund  <tege@gmplib.org>
  5748  
  5749  	* mpn/s390_64/logops_n.asm: New file.
  5750  
  5751  	* mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code.
  5752  
  5753  2011-10-20  Torbjorn Granlund  <tege@gmplib.org>
  5754  
  5755  	* tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro.
  5756  	* tune/common.c (speed_mpn_sqr_diag_addlsh1): New function.
  5757  	* tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1.
  5758  
  5759  	* mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code.
  5760  
  5761  	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers.
  5762  
  5763  2011-10-19  Torbjorn Granlund  <tege@gmplib.org>
  5764  
  5765  	* mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code.
  5766  	* mpn/s390_32/esame/add_n.asm: Likewise.
  5767  
  5768  2011-10-17  Torbjorn Granlund  <tege@gmplib.org>
  5769  
  5770  	* mpn/s390_32/esame/aorslsh1_n.asm: New file.
  5771  
  5772  2011-10-16  Torbjorn Granlund  <tege@gmplib.org>
  5773  
  5774  	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file.
  5775  
  5776  	* mpn/s390_32/copyi.asm: New file.
  5777  	* mpn/s390_32/copyd.asm: New file.
  5778  
  5779  	* mpn/s390_64/copyd.asm: Optimise.
  5780  
  5781  	* mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy.
  5782  
  5783  	* mpn/s390_64/aorslsh1_n.asm: New file.
  5784  
  5785  	* mpn/s390_64/mod_34lsub1.asm: New file.
  5786  
  5787  	* mpn/s390_64/sqr_diag_addlsh1.asm: New file.
  5788  
  5789  2011-10-15  Torbjorn Granlund  <tege@gmplib.org>
  5790  
  5791  	* configure.in (s390): Rewrite support to handle known CPUs.
  5792  	* config.guess: Recognise s390 CPUs.
  5793  	* config.sub: Match s390 CPUs.
  5794  	* acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines.
  5795  
  5796  2011-10-14  Torbjorn Granlund  <tege@gmplib.org>
  5797  
  5798  	From Per Olofsson:
  5799  	* mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h.
  5800  	* mpn/generic/gcd_1.c: Separate declarations and initialisers for the
  5801  	benefit of C++.
  5802  
  5803  	* configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch.
  5804  	* longlong.h (s390): Use it.
  5805  	(s390 umul_ppmm): Fix typo in pure C variant.
  5806  
  5807  2011-10-13  Torbjorn Granlund  <tege@gmplib.org>
  5808  
  5809  	* longlong.h (s390): Put back an accidentally deleted #else.
  5810  
  5811  	* configure.in (s390): Unset extra_functions for s390x.
  5812  
  5813  2011-10-12  Torbjorn Granlund  <tege@gmplib.org>
  5814  
  5815  	* mpn/s390_64/lshift.asm: Reduce register usage.
  5816  	* mpn/s390_64/rshift.asm: Likewise.
  5817  
  5818  	* longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm.
  5819  
  5820  	From Andreas Krebbel:
  5821  	* longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using
  5822  	64-bit registers.
  5823  	(s390 udiv_qrnnd): Likewise.
  5824  
  5825  2011-10-11  Torbjorn Granlund  <tege@gmplib.org>
  5826  
  5827  	* configure.in (s390x): Pass -mzarch to gcc in 32-bit mode.
  5828  
  5829  	* longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns.
  5830  	* mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise.
  5831  
  5832  	* mpn/s390_64/copyd.asm: New file.
  5833  
  5834  2011-10-10  Niels Möller  <nisse@lysator.liu.se>
  5835  
  5836  	* mpn/generic/hgcd_appr.c: Deleted debugging code.
  5837  
  5838  	* tests/mpn/t-hgcd_appr.c (main): Added -v flag.
  5839  	(hgcd_appr_valid_p): Increased margin of non-minimality for
  5840  	divide-and-conquer algorithm. Display bit counts only if
  5841  	-v is used.
  5842  
  5843  	* mpn/generic/hgcd_appr.c (submul): New (static) function.
  5844  	(hgcd_matrix_apply): New function.
  5845  	(mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm.
  5846  	(mpn_hgcd_appr): Implemented divide-and-conquer.
  5847  
  5848  2011-10-10  Torbjorn Granlund  <tege@gmplib.org>
  5849  
  5850  	* mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant.  Put arm code
  5851  	inside __GNUC__.
  5852  
  5853  	* tune/time.c (STCK): Use proper memory constraint.
  5854  
  5855  	From Marco Trudel:
  5856  	* tests/mpz/t-scan.c (check_ref): Fix loop end bound.
  5857  
  5858  2011-10-10  Niels Möller  <nisse@lysator.liu.se>
  5859  
  5860  	* gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold.
  5861  
  5862  	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change.
  5863  	Destroy inputs, let caller make working copies if needed.
  5864  	(mpn_hgcd_appr_itch): Reduced scratch need.
  5865  	* gmp-impl.h: Updated mpn_hgcd_appr prototype.
  5866  	* tests/mpn/t-hgcd_appr.c (one_test): Make working copies for
  5867  	hgcd_appr.
  5868  	* tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL.
  5869  	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted.
  5870  
  5871  2011-10-09  Torbjorn Granlund  <tege@gmplib.org>
  5872  
  5873  	* mpn/s390_64/copyi.asm: New file.
  5874  	* mpn/s390_64/lshift.asm: New file.
  5875  	* mpn/s390_64/rshift.asm: New file.
  5876  
  5877  	* mpn/s390_64/add_n.asm: Rewrite using lmg/stmg.
  5878  	* mpn/s390_64/sub_n.asm: Likewise.
  5879  
  5880  	* mpn/s390_64/invert_limb.asm: Save a callee-saves register less.
  5881  
  5882  	* tune/time.c (getrusage_backwards_p): Properly cast printed values.
  5883  
  5884  	* longlong.h (s390x): Put back UDItype casts to make gcc reloading use
  5885  	right more for constants.
  5886  	(s390x count_leading_zeros): Disable until we support z10 specifically.
  5887  	(s390x add_ssaaaa): Remove algsi/slgsi until we support z10.
  5888  
  5889  2011-10-09  Niels Möller  <nisse@lysator.liu.se>
  5890  
  5891  	* mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare
  5892  	matrix argument const.
  5893  
  5894  2011-10-08  Niels Möller  <nisse@lysator.liu.se>
  5895  
  5896  	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the
  5897  	allowed margin of non-minimality for hgcd_appr.
  5898  
  5899  	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of
  5900  	extra_bits, starting at zero, to ensure that we don't produce too
  5901  	small remainders. Added a final reduction loop when we we
  5902  	otherwise terminate with extra_bits > 0, to make the returned
  5903  	remainders closer to minimal.
  5904  
  5905  2011-10-07  Torbjorn Granlund  <tege@gmplib.org>
  5906  
  5907  	* longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd.
  5908  	(s390): Overhaul 32-bit and 64-bit code.
  5909  
  5910  2011-10-07  Niels Möller  <nisse@lysator.liu.se>
  5911  
  5912  	* tune/speed.h (speed_mpn_hgcd_appr): New prototype.
  5913  	(SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro.
  5914  	* tune/common.c (speed_mpn_hgcd_appr): New function.
  5915  	* tune/speed.c (routine): Added mpn_hgcd_appr.
  5916  
  5917  	* tests/mpn/t-hgcd_appr.c: New file.
  5918  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr.
  5919  
  5920  	* configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr.
  5921  
  5922  	* gmp-impl.h: Added prototypes for mpn_hgcd_step,
  5923  	mpn_hgcd_appr_itch and mpn_hgcd_appr.
  5924  
  5925  	* mpn/generic/hgcd_appr.c: New file.
  5926  
  5927  	* mpn/generic/hgcd_step.c: New file, extracted from hgcd.c.
  5928  	(mpn_hgcd_step): Renamed, from...
  5929  	* mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved
  5930  	to hgcd_step.c.
  5931  	(hgcd_hook): Also moved to hgcd_step.c.
  5932  	(mpn_hgcd): Updated for hgcd_step renaming.
  5933  
  5934  2011-10-06  Torbjorn Granlund  <tege@gmplib.org>
  5935  
  5936  	* mpn/s390_64/invert_limb.asm: New file.
  5937  
  5938  2011-10-04  Torbjorn Granlund  <tege@gmplib.org>
  5939  
  5940  	* mpn/s390_64/submul_1.asm: New file.
  5941  	* mpn/s390_32/esame/submul_1.asm: New file.
  5942  
  5943  	* mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start.
  5944  
  5945  	* mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and
  5946  	z8000x.
  5947  
  5948  	* doc/gmp.texi (Custom Allocation): Rephrase a paragraph.
  5949  
  5950  	* demos/factorize.c: Run 25 Miller-Rabin tests.
  5951  
  5952  	* mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10).
  5953  
  5954  2011-10-03  Torbjorn Granlund  <tege@gmplib.org>
  5955  
  5956  	* configure.in: Support s390x.
  5957  
  5958  	* longlong.h: Add support for 64-bit s390x.
  5959  
  5960  	* mpn/s390_64: New directory.
  5961  	* mpn/s390_64/add_n.asm: New file.
  5962  	* mpn/s390_64/sub_n.asm: New file.
  5963  	* mpn/s390_64/mul_1.asm: New file.
  5964  	* mpn/s390_64/addmul_1.asm: New file.
  5965  	* mpn/s390_64/bdiv_dbm1c.asm: New file.
  5966  	* mpn/s390_64/gmp-mparam.h: New file, taken from x86_64.
  5967  
  5968  	* mpn/s390_32: Directory renamed from mpn/s390.
  5969  	* mpn/s390_32/gmp-mparam.h: New file, taken from x86_64.
  5970  	* mpn/s390_32/esame/add_n.asm: New file.
  5971  	* mpn/s390_32/esame/sub_n.asm: New file.
  5972  	* mpn/s390_32/esame/mul_1.asm: New file.
  5973  	* mpn/s390_32/esame/addmul_1.asm: New file.
  5974  	* mpn/s390_32/esame/bdiv_dbm1c.asm: New file.
  5975  
  5976  2011-10-03  Niels Möller  <nisse@lysator.liu.se>
  5977  
  5978  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid.
  5979  	* tests/mpn/t-mulmid.c: New file.
  5980  
  5981  	mulmid-related assembly for x86_64, from David Harvey:
  5982  	* mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and
  5983  	mulmid_basecase. Also use m4_not_for_expansion on the
  5984  	corresponding OPERATION_* symbols.
  5985  	* mpn/x86_64/aors_err1_n.asm: New file.
  5986  	* mpn/x86_64/aors_err2_n.asm: Likewise.
  5987  	* mpn/x86_64/aors_err3_n.asm: Likewise.
  5988  	* mpn/x86_64/mulmid_basecase.asm: Likewise.
  5989  	* mpn/x86_64/core2/aors_err1_n.asm: Likewise.
  5990  	* mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value.
  5991  	* mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise.
  5992  
  5993  	Tuning of mulmid, from David Harvey:
  5994  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c
  5995  	mulmid_n.c toom42_mulmid.c.
  5996  	* tune/speed.h: Prototypes for mulmid-related functions.
  5997  	(struct speed_params): Increased max number of sources to 5.
  5998  	(SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro.
  5999  	(SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise.
  6000  	(SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise.
  6001  	(SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise.
  6002  	(SPEED_ROUTINE_MPN_MULMID): Likewise.
  6003  	(SPEED_ROUTINE_MPN_MULMID_N): Likewise.
  6004  	(SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise.
  6005  	* tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions.
  6006  	(speed_mpn_mulmid_basecase): New function.
  6007  	(speed_mpn_mulmid): New function.
  6008  	(speed_mpn_mulmid_n): New function.
  6009  	(speed_mpn_toom42_mulmid): New function.
  6010  	* tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n,
  6011  	mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and
  6012  	mpn_mulmid.
  6013  	* tune/tuneup.c (mulmid_toom42_threshold): New threshold variable.
  6014  	(tune_mulmid): New function.
  6015  	(all): Call tune_mulmid.
  6016  
  6017  	Testing of mulmid, from David Harvey:
  6018  	* tests/refmpn.c (AORS_ERR1_N): New macro.
  6019  	(refmpn_add_err1_n, refmpn_sub_err1_n): New functions.
  6020  	(AORS_ERR2_N): New macro.
  6021  	(refmpn_add_err2_n, refmpn_sub_err2_n): New functions.
  6022  	(AORS_ERR3_N): New macro.
  6023  	(refmpn_add_err3_n, refmpn_sub_err3_n): New functions.
  6024  	(refmpn_mulmid_basecase): New function.
  6025  	(refmpn_toom42_mulmid): New function, wrapper for
  6026  	refmpn_mulmid_basecase.
  6027  	(refmpn_mulmid_n): Likewise.
  6028  	(refmpn_mulmid): Likewise.
  6029  	* tests/tests.h: Prototypes for new functions.
  6030  	* tests/devel/try.c (NUM_SOURCES): Increased to 5.
  6031  	(struct try_t): Use NUM_SOURCES and NUM_DESTS constants.
  6032  	(SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants.
  6033  	(OVERLAP_NOT_DST2): New flag.
  6034  	(param_init): New mulmid-related operation types.
  6035  	(mpn_toom42_mulmid_fun): New function.
  6036  	(choice_array): Added mulmid-related entries.
  6037  	(overlap_array): Extended for larger NUM_SOURCES.
  6038  	(OVERLAP_COUNT): Handle OVERLAP_NOT_DST2.
  6039  	(call): Support mulmid-related functions.
  6040  	(pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3.
  6041  	(SIZE_ITERATION): Handle SIZE_ODD.
  6042  	(SIZE2_FIRST): Handle SIZE_CEIL_HALF.
  6043  	(SIZE2_LAST): Likewise.
  6044  
  6045  	Implementation of mulmid, from David Harvey:
  6046  	* mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function.
  6047  	* mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise.
  6048  	* mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise.
  6049  	* mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise.
  6050  	* mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise.
  6051  	* mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise.
  6052  	* mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise.
  6053  	* mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise.
  6054  	* mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise.
  6055  	* configure.in (gmp_mpn_functions): Added mulmid-related
  6056  	functions.
  6057  	(GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and
  6058  	aors_err3_n.
  6059  	* gmp-impl.h: Added prototypes for mulmid functions.
  6060  	(MPN_TOOM42_MULMID_MINSIZE): New constant.
  6061  	(MULMID_TOOM42_THRESHOLD): New threshold.
  6062  	(mpn_toom42_mulmid_itch): New macro.
  6063  
  6064  2011-10-03  Niels Möller  <nisse@lysator.liu.se>
  6065  
  6066  	* tune/tune-gcd-p.c (main): Fixed broken loop conditions.
  6067  
  6068  2011-09-26  Torbjorn Granlund  <tege@gmplib.org>
  6069  
  6070  	* mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation
  6071  	actually compute intended function.
  6072  
  6073  	* longlong.h (SH): Recognise predefs for all SH processors as defined
  6074  	by current gcc versions.
  6075  
  6076  2011-09-25  Torbjorn Granlund  <tege@gmplib.org>
  6077  
  6078  	* mpn/sh: Migrate files to '.asm'.
  6079  	* configure.in: Recognise sh3 and sh4.
  6080  
  6081  2011-09-21  Marc Glisse  <marc.glisse@inria.fr>
  6082  
  6083  	* gmpxx.h (mpz_class::swap): New function.
  6084  	(mpq_class::swap): Likewise.
  6085  	(mpf_class::swap): Likewise.
  6086  	(swap): New function.
  6087  	* tests/cxx/t-assign.cc: Test the above.
  6088  	* doc/gmp.texi (swap): Document the above.
  6089  
  6090  2011-08-21  Marc Glisse  <marc.glisse@inria.fr>
  6091  
  6092  	* tests/cxx/t-ops2.cc: check mul-div by 2.
  6093  
  6094  	* gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p).
  6095  	(__gmp_binary_lshift): Move before multiplication. Optimize x << 0.
  6096  	(__gmp_binary_rshift): Move before division. Optimize x >> 0.
  6097  	(__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer.
  6098  	(__gmp_binary_minus): Optimize x - 0 and 0 - x.
  6099  	Rewrite rational - integer.
  6100  	(__gmp_binary_multiplies): Optimize x * 2^n.
  6101  	(__gmp_binary_divides): Optimize x / 2^n.
  6102  	(__gmp_binary_*): Deduplicate code for symmetric operations.
  6103  
  6104  2011-08-18  Torbjorn Granlund  <tege@gmplib.org>
  6105  
  6106  	* printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for
  6107  	one more digit.
  6108  
  6109  2011-08-17  Torbjorn Granlund  <tege@gmplib.org>
  6110  
  6111  	* mpf/sub.c: Fix typo in copy condition.  Delay an allocation.
  6112  
  6113  2011-08-12  Torbjorn Granlund  <tege@gmplib.org>
  6114  
  6115  	* gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo.
  6116  
  6117  2011-08-10  Torbjorn Granlund  <tege@gmplib.org>
  6118  
  6119  	* gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New.
  6120  	(DIGITS_IN_BASE_FROM_BITS): Compute more accurate result.
  6121  	(MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS.
  6122  
  6123  	* tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error.
  6124  
  6125  2011-08-09  Torbjorn Granlund  <tege@gmplib.org>
  6126  
  6127  	* mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size
  6128  	adjustment.
  6129  
  6130  	* gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding
  6131  	overflow for base 2.
  6132  
  6133  2011-08-07  Torbjorn Granlund  <tege@gmplib.org>
  6134  
  6135  	* gmp-impl.h (struct bases): Add log2b and logb2 field, remove
  6136  	chars_per_limb_exactly field.
  6137  	(DIGITS_IN_BASE_FROM_BITS): New.
  6138  	(DIGITS_IN_BASE_PER_LIMB): New.
  6139  	(LIMBS_PER_DIGIT_IN_BASE): New.
  6140  	* gen-bases.c: Generate log2b and logb2 fields; do not generate
  6141  	chars_per_limb_exactly field.
  6142  	* mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c
  6143  	  mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c
  6144  	  mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c:
  6145  	Use new macros.
  6146  
  6147  2011-08-04  Torbjorn Granlund  <tege@gmplib.org>
  6148  
  6149  	* dumbmp.c (mpz_root): Reinsert accidentally removed line.
  6150  
  6151  2011-08-03  Torbjorn Granlund  <tege@gmplib.org>
  6152  
  6153  	* dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal
  6154  	to divisor value.
  6155  	(mpz_root): Create reasonable starting approximation.
  6156  	(mpz_sqrt): New function.
  6157  	(mpz_mul_2exp): Add faster block shifting code, disabled for now.
  6158  
  6159  2011-07-15  Torbjorn Granlund  <tege@gmplib.org>
  6160  
  6161  	* mpn/arm/invert_limb.asm: Swap around some registers to silence 'as'
  6162  	warnings.
  6163  
  6164  2011-07-14  Torbjorn Granlund  <tege@gmplib.org>
  6165  
  6166  	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size
  6167  	argument right.
  6168  
  6169  2011-07-04  Torbjorn Granlund  <tege@gmplib.org>
  6170  
  6171  	* tests/misc/t-locale.c: Disable test for mingw.
  6172  
  6173  	* configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out
  6174  	extra_functions_64.
  6175  
  6176  2011-07-02  Torbjorn Granlund  <tege@gmplib.org>
  6177  
  6178  	* config.guess: Don't print newline in x86 cpuid function.
  6179  	Rewrite x86-64 cpu recognition asm code to work under Windoze.
  6180  
  6181  2011-06-16  Torbjorn Granlund  <tege@gmplib.org>
  6182  
  6183  	* acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change.
  6184  
  6185  	* configure.in: Surround tr ranges with [] for portability.
  6186  
  6187  2011-05-25  Niels Möller  <nisse@lysator.liu.se>
  6188  
  6189  	* tune/tune-gcd-p.c (search): New function to search for minimum.
  6190  	(main): Replaced slow linear search.
  6191  
  6192  2011-05-24  Niels Möller  <nisse@lysator.liu.se>
  6193  
  6194  	* tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added
  6195  	related automake variables.
  6196  
  6197  	* mpn/Makefile.am (tune-gcd-p): Deleted target.
  6198  
  6199  	* tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c
  6200  	and updated.
  6201  	* mpn/generic/gcd.c: Deleted the corresponding code, including
  6202  	main function.
  6203  
  6204  2011-05-23  Niels Möller  <nisse@lysator.liu.se>
  6205  
  6206  	* mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when
  6207  	needed, to get asize >= bsize. Use the reciprocity law generalized
  6208  	to work when one operand is even.
  6209  
  6210  2011-05-22  Niels Möller  <nisse@lysator.liu.se>
  6211  
  6212  	* mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1
  6213  	case. Sometimes, powers of two in b were taken into account twice.
  6214  
  6215  2011-05-21  Niels Möller  <nisse@lysator.liu.se>
  6216  
  6217  	* mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was
  6218  	broken. Rewrote it.
  6219  
  6220  	* tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime
  6221  	candidate and step has no common factor.
  6222  	(check_data): Added some test cases related to the asize == 1 case
  6223  	in mpz_jacobi.
  6224  
  6225  2011-05-20  Niels Möller  <nisse@lysator.liu.se>
  6226  
  6227  	* gmp-impl.h: Jacobi-related prototypes.
  6228  
  6229  	* configure.in (gmp_mpn_functions): Added jacobi_2, jacobi,
  6230  	hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer.
  6231  
  6232  	* mpz/jacobi.c (STRIP_TWOS): Deleted macro.
  6233  	(mpz_jacobi): Partially rewritten, to no longer makes the A
  6234  	operand odd. Use new mpn_jacobi_n.
  6235  
  6236  	* mpn/generic/jacobi_lehmer.c: Deleted file.
  6237  
  6238  	* mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi
  6239  	implementation. Supersedes jacobi_lehmer.c.
  6240  
  6241  	* mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and
  6242  	function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to
  6243  	mpn_jacobi_update when appropriate.
  6244  
  6245  	* mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from
  6246  	jacobi_lehmer.c.
  6247  	* mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise.
  6248  
  6249  	* mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL.
  6250  
  6251  2011-05-19  Niels Möller  <nisse@lysator.liu.se>
  6252  
  6253  	* tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for
  6254  	the functions moved to hgcd_matrix.c.
  6255  
  6256  	* configure.in (gmp_mpn_functions): Added hgcd_matrix.
  6257  
  6258  	* mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other
  6259  	helper functions moved to hgcd_matrix.c, see below.
  6260  	(hgcd_hook): New function.
  6261  	(hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook.
  6262  
  6263  	* mpn/generic/hgcd_matrix.c: New file.
  6264  	(mpn_hgcd_matrix_init): Moved here, from hgcd.c.
  6265  	(mpn_hgcd_matrix_update_q): Likewise.
  6266  	(mpn_hgcd_matrix_mul_1): Likewise.
  6267  	(mpn_hgcd_matrix_mul): Likewise.
  6268  	(mpn_hgcd_matrix_adjust): Likewise.
  6269  
  6270  	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New
  6271  	argument s, for use by hgcd.
  6272  	* gmp-impl.h (mpn_gcd_subdiv_step): Update declaration.
  6273  
  6274  	* mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step.
  6275  	* mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT.
  6276  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
  6277  	(mpn_gcdext_hook): Added some ASSERTs.
  6278  	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise.
  6279  
  6280  2011-05-17  Niels Möller  <nisse@lysator.liu.se>
  6281  
  6282  	* doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements:
  6283  	Must have un >= vn > 0, and V normalized.
  6284  	* mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input
  6285  	normalization.
  6286  	* mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input
  6287  	requirements.
  6288  
  6289  2011-05-15  Marc Glisse  <marc.glisse@inria.fr>
  6290  
  6291  	* gmpxx.h (operator<<): Dedup.
  6292  	* tests/cxx/t-iostream.cc: Test on compound types.
  6293  
  6294  	* gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2.
  6295  
  6296  2011-05-10  Marc Glisse  <marc.glisse@inria.fr>
  6297  
  6298  	* gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b).
  6299  	(operator>>): Clean the commenting out.
  6300  	* tests/cxx/t-iostream.cc: New file.
  6301  	* tests/cxx/Makefile.am: Added t-iostream.
  6302  
  6303  2011-05-10  Niels Möller  <nisse@lysator.liu.se>
  6304  
  6305  	* doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0.
  6306  	(mpz_gcdext): Document range for cofactors.
  6307  
  6308  2011-05-09  Niels Möller  <nisse@lysator.liu.se>
  6309  
  6310  	* mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs.
  6311  	* doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation
  6312  	requirements; one extra limb is still needed for S.
  6313  
  6314  2011-05-09  Torbjorn Granlund  <tege@gmplib.org>
  6315  
  6316  	* mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
  6317  	* mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
  6318  
  6319  2011-05-08  Marc Glisse  <marc.glisse@inria.fr>
  6320  
  6321  	* gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places.
  6322  	* doc/gmp.texi: Likewise.
  6323  
  6324  2011-05-06  Marc Glisse  <marc.glisse@inria.fr>
  6325  
  6326  	* gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit.
  6327  	(mpq_class): Make constructor from mpf_class explicit.
  6328  	* doc/gmp.texi: Document the above.
  6329  	* NEWS: Likewise, and mention the EOF istream fix.
  6330  	* tests/cxx/t-mix.cc: New file.
  6331  	* tests/cxx/Makefile.am: Added t-mix.
  6332  
  6333  	* tests/cxx/t-assign.cc: Minor tweak.
  6334  	* tests/cxx/t-misc.cc: Likewise.
  6335  
  6336  	* gmpxx.h (__gmp_resolve_temp): Remove.
  6337  	(__gmp_set_expr): Remove some overloads.
  6338  	(mpq_class): mpz_init_set the numerator and denominator instead of
  6339  	mpq_init + mpq_set.
  6340  	(mpz_class): Dedup the string constructors.
  6341  	(mpq_class): Likewise.
  6342  
  6343  	* tests/cxx/t-ops3.cc: New file.
  6344  	* tests/cxx/Makefile.am: Added t-ops3.
  6345  
  6346  2011-05-05  Torbjorn Granlund  <tege@gmplib.org>
  6347  
  6348  	* mpz/gcdext.c: Correct sgn computation.
  6349  	Use MPZ_REALLOC.
  6350  
  6351  2011-05-05  Marc Glisse  <marc.glisse@inria.fr>
  6352  
  6353  	* mpn/x86_64/fat/fat.c: Update for Sandy Bridge.
  6354  	* config.guess: warning to keep it in sync with fat.c.
  6355  
  6356  2011-05-05  Torbjorn Granlund  <tege@gmplib.org>
  6357  
  6358  	* mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol.  Use it to
  6359  	work around Darwin problems.
  6360  
  6361  2011-05-04  Niels Möller  <nisse@lysator.liu.se>
  6362  
  6363  	* mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use
  6364  	mpz_divexact when computing the second cofactor.
  6365  
  6366  2011-05-03  David Harvey  <dmharvey@cims.nyu.edu>
  6367  
  6368  	* configure.in: make invert_limb_table work correctly with
  6369  	--disable-assembly (from Niels Möller)
  6370  
  6371  2011-05-02  Marc Glisse  <marc.glisse@inria.fr>
  6372  
  6373  	* .bootstrap: libtoolize doesn't need -c.
  6374  
  6375  	* configfsf.guess: Update to version of 2011-02-02.
  6376  	* configfsf.sub: Update to version of 2011-03-23.
  6377  
  6378  2011-05-02  Niels Möller  <nisse@lysator.liu.se>
  6379  
  6380  	* mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end
  6381  	of mpn_gcdext parameters.
  6382  
  6383  	* doc/gmp.texi (mpn_gcdext): Updated doc.
  6384  
  6385  2011-05-01  Niels Möller  <nisse@lysator.liu.se>
  6386  
  6387  	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT.
  6388  
  6389  2011-04-30  Marc Glisse  <marc.glisse@inria.fr>
  6390  
  6391  	* gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition
  6392  	and the documentation.
  6393  	(mpz_remove): Likewise.
  6394  	(mpf_eq): Likewise.
  6395  
  6396  	* ltmain.sh: Remove.
  6397  	* .bootstrap: Let libtoolize generate ltmain.sh.
  6398  
  6399  	* tests/cxx/t-ops2.cc: Add a couple tests.
  6400  	* tests/cxx/t-rand.cc: Likewise.
  6401  
  6402  	* doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not
  6403  	change the precision.
  6404  
  6405  	* gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline.
  6406  
  6407  2011-04-28  Torbjorn Granlund  <tege@gmplib.org>
  6408  
  6409  	* configure.in (x86_64): Support bobcat specifically.
  6410  	(x86): Match bobcat and bulldozer, handle like k10.
  6411  
  6412  2011-04-28  David Harvey  <dmharvey@cims.nyu.edu>
  6413  
  6414  	* README.HG: update autotools version numbers.
  6415  
  6416  2011-04-27  Torbjorn Granlund  <tege@gmplib.org>
  6417  
  6418  	* tune/speed.h (speed_cyclecounter): Always use PIC variant when
  6419  	compiled with Apple's GCC.
  6420  
  6421  	* mpn/x86/darwin.m4 (LEA): Complete rewrite.
  6422  	(m4append): New macro.
  6423  
  6424  2011-04-26  Torbjorn Granlund  <tege@gmplib.org>
  6425  
  6426  	* mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it
  6427  	interferes with expressions.
  6428  
  6429  2011-04-20  Torbjorn Granlund  <tege@gmplib.org>
  6430  
  6431  	* acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang
  6432  	problems.
  6433  
  6434  2011-04-12  Niels Möller  <nisse@lysator.liu.se>
  6435  
  6436  	* mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table
  6437  	as .protected.
  6438  
  6439  2011-04-11  Torbjorn Granlund  <tege@gmplib.org>
  6440  
  6441  	* mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround.
  6442  	Undo 2011-03-28 change.
  6443  
  6444  	* mpn/asm-defs.m4 (define_mpn): Use deflit.
  6445  
  6446  2011-04-10  Niels Möller  <nisse@lysator.liu.se>
  6447  
  6448  	* mpn/asm-defs.m4 (define_mpn): Added invert_limb_table.
  6449  
  6450  	* configure.in: Add invert_limb_table to extra_functions_64 on
  6451  	x86_64.
  6452  
  6453  	* mpn/x86_64/invert_limb.asm: Changed references from approx_tab
  6454  	mpn_invert_limb_table.
  6455  
  6456  	* mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New
  6457  	file. Extracted approximation table from invert_limb.asm, renamed
  6458  	and made global.
  6459  
  6460  2011-03-30  Niels Möller  <nisse@lysator.liu.se>
  6461  
  6462  	* mpn/x86_64/div_qr_2u_pi1.asm: New file.
  6463  
  6464  	* configure.in (gmp_mpn_functions): Add div_qr_2u_pi1.
  6465  
  6466  	* gmp-impl.h (mpn_div_qr_2u_pi1): Declare.
  6467  
  6468  	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to
  6469  	separate file, from...
  6470  	* mpn/generic/div_qr_2.c: ... old location.
  6471  
  6472  	* mpn/generic/div_qr_2n_pi1.c: Renamed file, from...
  6473  	* mpn/generic/div_qr_2_pi1_norm.c: ...old name.
  6474  	* mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from...
  6475  	* mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name.
  6476  
  6477  	* gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration.
  6478  	* tune/speed.h (speed_mpn_div_qr_2n): Likewise.
  6479  	(speed_mpn_div_qr_2u): Likewise.
  6480  
  6481  	* tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n.
  6482  
  6483  	* tune/speed.c (routine): Use new names mpn_div_qr_2n and
  6484  	mpn_div_qr_2u, also on the command line.
  6485  
  6486  	* tune/common.c (speed_mpn_div_qr_2n): Renamed, from...
  6487  	(speed_mpn_div_qr_2_norm): ... old name.
  6488  	(speed_mpn_div_qr_2u): Renamed, from...
  6489  	(speed_mpn_div_qr_2_unnorm): ... old name.
  6490  
  6491  	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed,
  6492  	from...
  6493  	(mpn_div_qr_2_pi1_norm): ...old name.
  6494  	* mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise.
  6495  
  6496  	* mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from...
  6497  	(mpn_div_qr_2_pi2_norm): ... old name.
  6498  	(mpn_div_qr_2u_pi1): Renamed, from...
  6499  	(mpn_div_qr_2_pi1_unnorm): ... old name.
  6500  	(mpn_div_qr_2): Call functions using new names.
  6501  
  6502  	* mpn/asm-defs.m4: Renamed div_qr_2-functions to new names.
  6503  
  6504  2011-03-29  Niels Möller  <nisse@lysator.liu.se>
  6505  
  6506  	* mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp
  6507  	argument.
  6508  
  6509  	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration.
  6510  	* gmp-h.in (mpn_div_qr_2): Likewise.
  6511  
  6512  	* tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface.
  6513  	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise.
  6514  
  6515  	* mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp
  6516  	argument. Don't clobber the input dividend.
  6517  	(mpn_div_qr_2_pi1_unnorm): Likewise.
  6518  	(mpn_div_qr_2): Likewise.
  6519  	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise.
  6520  
  6521  2011-03-29  Niels Möller  <nisse@lysator.liu.se>
  6522  
  6523  	* mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop.
  6524  	Earlier load of divisor from stack.
  6525  
  6526  2011-03-28  Torbjorn Granlund  <tege@gmplib.org>
  6527  
  6528  	* mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from
  6529  	being interpreted as m4 macro parameters.
  6530  
  6531  2011-03-22  Niels Möller  <nisse@lysator.liu.se>
  6532  
  6533  	* mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop
  6534  	from divrem_2.asm.
  6535  
  6536  	* mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly
  6537  	optimized, implementation.
  6538  
  6539  	* mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm.
  6540  
  6541  	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved
  6542  	to separate file, from...
  6543  	* mpn/generic/div_qr_2.c: ... old location.
  6544  
  6545  	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare.
  6546  
  6547  	* configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm.
  6548  
  6549  2011-03-22  Torbjorn Granlund  <tege@gmplib.org>
  6550  
  6551  	* configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling.
  6552  	Reinsert lost linux/bsd cpu_path handling.
  6553  
  6554  	* mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB.
  6555  	* mpn/generic/div_qr_2.c: Likewise.
  6556  
  6557  	* mpn/generic/div_qr_2.c: Use asm just for gcc.
  6558  	Make powerpc add_sssaaaa work for 32-bit case, and use less strict
  6559  	constraints.
  6560  
  6561  2011-03-21  Niels Möller  <nisse@lysator.liu.se>
  6562  
  6563  	* tune/tuneup.c (div_qr_2_pi2_threshold): New global variable.
  6564  	(tune_div_qr_2): New function.
  6565  	(all): Call tune_div_qr_2.
  6566  
  6567  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c.
  6568  
  6569  	* gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning.
  6570  
  6571  	New 4/2 division loop, based on Torbjörn's work:
  6572  	* mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros.
  6573  	(udiv_qr_4by2): New macro.
  6574  	(invert_4by2): New function.
  6575  	(mpn_div_qr_2_pi2_norm): New function.
  6576  	(DIV_QR_2_PI2_THRESHOLD): New threshold.
  6577  	(mpn_div_qr_2_pi1_norm): Renamed, from...
  6578  	(mpn_div_qr_2_norm): ... old name.
  6579  	(mpn_div_qr_2_pi1_unnorm): Renamed, from...
  6580  	(mpn_div_qr_2_unnorm): ... old name.
  6581  	(mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough
  6582  	normalized divisors.
  6583  
  6584  	* gmp-impl.h (udiv_qr_3by2): Avoid a copy.
  6585  
  6586  2011-03-21  Torbjorn Granlund  <tege@gmplib.org>
  6587  
  6588  	* configure.in (hppa): Under linux, treat 64-bit processors as if they
  6589  	were 32-bit processors.
  6590  
  6591  	* mpn/generic/addcnd_n.c: New file.
  6592  	* mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n.
  6593  	* configure.in (gmp_mpn_functions): Add addcnd_n.
  6594  	* gmp-impl.h (mpn_addcnd_n): Declare.
  6595  
  6596  	* mpn/generic/subcnd_n.c: Combine nails and non-nails functions.
  6597  
  6598  	* gmp-impl.h (invert_pi1): Prepend _ to local variables, protect
  6599  	parameters within () where necessary.
  6600  
  6601  	* mpn/asm-defs.m4 (define_mpn): Add div_qr_2.
  6602  	* configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed
  6603  	line.
  6604  
  6605  2011-03-20  Torbjorn Granlund  <tege@gmplib.org>
  6606  
  6607  	* configure.in (powerpc): Add cpu_path for all three ABIs.
  6608  	Rename "aix64" to "mode64" for consistency.
  6609  
  6610  2011-03-16  Marc Glisse  <marc.glisse@inria.fr>
  6611  
  6612  	* gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal.
  6613  	(__gmp_binary_less_equal): Remove, use !__gmp_binary_greater.
  6614  	(__gmp_binary_greater_equal): Remove, use !__gmp_binary_less.
  6615  	* tests/cxx/t-ops2.cc: Typo.
  6616  
  6617  2011-03-20  Niels Möller  <nisse@lysator.liu.se>
  6618  
  6619  	* tune/common.c (speed_mpn_div_qr_2_norm): New function.
  6620  	(speed_mpn_div_qr_2_unnorm): New function.
  6621  	* tune/speed.c (routine): Recognize above functions.
  6622  	* tune/speed.h: Declarations for above functions.
  6623  	(SPEED_ROUTINE_MPN_DIV_QR_2): New macro.
  6624  
  6625  	* tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and
  6626  	mpn_div_qr_2.
  6627  
  6628  	* mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function.
  6629  	Intended to eventually replace divrem_2.
  6630  	* configure.in (gmp_mpn_functions): Add div_qr_2.
  6631  
  6632  2011-03-16  Marc Glisse  <marc.glisse@inria.fr>
  6633  
  6634  	* gmpxx.h (__gmp_set_expr): Remove broken declarations.
  6635  
  6636  2011-03-19  Torbjorn Granlund  <tege@gmplib.org>
  6637  
  6638  	* mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional
  6639  	reallocation.
  6640  
  6641  2011-03-19  Niels Möller  <nisse@lysator.liu.se>
  6642  
  6643  	* mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert
  6644  	regarding q and n overlap.
  6645  
  6646  2011-03-16  Marc Glisse  <marc.glisse@inria.fr>
  6647  
  6648  	* gmpxx.h (__mpz_set_ui_safe): New inline function.
  6649  	(__mpz_set_si_safe): Likewise.
  6650  	(__GMPXX_TMPZ_UI): Use the new function.
  6651  	(__GMPXX_TMPZ_SI): Likewise.
  6652  	(__GMPXX_TMPQ_UI): Likewise.
  6653  	(__GMPXX_TMPQ_SI): Likewise.
  6654  	* tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t.
  6655  
  6656  2011-03-15  Marc Glisse  <marc.glisse@inria.fr>
  6657  
  6658  	* gmpxx.h (__GMPXX_TMPQ_UI): New macro.
  6659  	(__GMPXX_TMPQ_SI): New macro.
  6660  	(struct __gmp_binary_multiplies): Rewrite, using the new macros.
  6661  	(struct __gmp_binary_divides): Likewise.
  6662  
  6663  	* gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite.
  6664  	* tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t.
  6665  
  6666  2011-03-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6667  
  6668  	* mpn/generic/toom_interpolate_16pts.c: Remove ambiguity.
  6669  
  6670  2011-03-14  Torbjorn Granlund  <tege@gmplib.org>
  6671  
  6672  	* tune/tuneup.c (tune_mul): Set tuning min size considering print skew.
  6673  
  6674  	* doc/gmp.texi: Make reference to "Formatted I/O" chapters from type
  6675  	specific I/O sections.
  6676  
  6677  	* mpn/alpha/add_n.asm: Add _nc entry point.
  6678  	* mpn/alpha/sub_n.asm: Likewise.
  6679  	* mpn/mips64/add_n.asm: Likewise.
  6680  	* mpn/mips64/sub_n.asm: Likewise.
  6681  	* mpn/sparc64/ultrasparc1234/add_n.asm: Likewise.
  6682  	* mpn/sparc64/ultrasparc1234/sub_n: Likewise.
  6683  
  6684  2011-03-13  Marc Glisse  <marc.glisse@inria.fr>
  6685  
  6686  	* tests/cxx/t-ops2.cc: New file.
  6687  	* tests/cxx/Makefile.am: Added t-ops2.
  6688  
  6689  2011-03-13  Torbjorn Granlund  <tege@gmplib.org>
  6690  
  6691  	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized
  6692  	for better code.
  6693  
  6694  	* gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32.  Generate
  6695  	no code for incrementing by constant 0.
  6696  
  6697  2011-03-12  Marc Glisse  <marc.glisse@inria.fr>
  6698  
  6699  	* gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places.
  6700  
  6701  2011-03-12  Torbjorn Granlund  <tege@gmplib.org>
  6702  
  6703  	* mpn/powerpc64/rshift.asm: Accept/return values correctly also for
  6704  	32-bit ABI.
  6705  	* mpn/powerpc64/lshift.asm: Likewise.
  6706  
  6707  	* tune/powerpc.asm: Use powerpc syntax, not power syntax.
  6708  
  6709  	* tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove.
  6710  	* tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc.
  6711  
  6712  2011-03-12  Marc Glisse  <marc.glisse@inria.fr>
  6713  
  6714  	* tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s.
  6715  
  6716  	* gmpxx.h: Remove leftover #undefs.
  6717  
  6718  2011-03-11  Torbjorn Granlund  <tege@gmplib.org>
  6719  
  6720  	* gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2,
  6721  	udiv_qrnnd_preinv2gen): Remove obsolete macros.
  6722  	(udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3.
  6723  
  6724  2011-03-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6725  
  6726  	* gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros.
  6727  	* mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1.
  6728  
  6729  	* tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12].
  6730  	* tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12].
  6731  	* tests/tests.h: Declarations for reference functions above.
  6732  
  6733  	* tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions.
  6734  	* tune/speed.h: Prototypes for functions above.
  6735  	* tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12].
  6736  
  6737  	* mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1.
  6738  	* mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly.
  6739  
  6740  	* configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12].
  6741  	* mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12].
  6742  
  6743  2011-03-10  Marc Glisse  <marc.glisse@inria.fr>
  6744  
  6745  	* tests/cxx/t-istream.cc: Explicit conversion to streampos.
  6746  
  6747  2011-03-10  Torbjorn Granlund  <tege@gmplib.org>
  6748  
  6749  	* mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates.
  6750  
  6751  	* Move new aorrlsh_n.asm to new k8 dir.  Revert
  6752  	mpn/x86_64/aorrlsh_n.asm.
  6753  	* configure.in: Setup path for new k8 directory.
  6754  
  6755  2011-03-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6756  
  6757  	* mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom.
  6758  	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above.
  6759  
  6760  2011-03-09  Torbjorn Granlund  <tege@gmplib.org>
  6761  
  6762  	* mpn/x86_64/aorrlsh_n.asm: Complete rewrite.
  6763  
  6764  	* mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file.
  6765  
  6766  2011-03-09  Marc Glisse  <marc.glisse@inria.fr>
  6767  
  6768  	* tests/cxx/t-ostream.cc: Use bool instead of int.
  6769  	* tests/cxx/t-istream.cc: Likewise.
  6770  	* tests/cxx/t-misc.cc: Likewise.
  6771  
  6772  	* cxx/ismpznw.cc: Don't clear eofbit.
  6773  	* cxx/ismpq.cc: Likewise.
  6774  	* cxx/ismpf.cc: Likewise.
  6775  	* tests/cxx/t-istream.cc: Test accordingly.
  6776  
  6777  2011-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6778  
  6779  	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file.
  6780  
  6781  2011-03-09  Marc Glisse  <marc.glisse@inria.fr>
  6782  
  6783  	* doc/gmp.texi: Remove void return type from constructors. Document
  6784  	explicit constructors. Document mpf_class::mpf_class(mpf_t).
  6785  
  6786  2011-03-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6787  
  6788  	* mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned
  6789  	outer loop exit.
  6790  
  6791  2011-03-07  Torbjorn Granlund  <tege@gmplib.org>
  6792  
  6793  	* mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug.
  6794  
  6795  	* mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops.
  6796  	Tweak outer loop rp updates.
  6797  
  6798  2011-03-06  Torbjorn Granlund  <tege@gmplib.org>
  6799  
  6800  	* mpn/x86/atom/sse2/sqr_basecase.asm: New file.
  6801  
  6802  2011-03-05  Torbjorn Granlund  <tege@gmplib.org>
  6803  
  6804  	* mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code.
  6805  
  6806  2011-03-04  Torbjorn Granlund  <tege@gmplib.org>
  6807  
  6808  	* mpn/x86_64/addmul_2.asm: Rewrite for linear performance.
  6809  
  6810  2011-03-03  Torbjorn Granlund  <tege@gmplib.org>
  6811  
  6812  	* mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout.  Add arm
  6813  	variant.  Enable sparc64 code and powerpc code (the latter for 32-bit
  6814  	and 64-bit).
  6815  
  6816  	* mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n.
  6817  
  6818  	* gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare.
  6819  	* mpn/asm-defs.m4: Likewise.
  6820  
  6821  	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to
  6822  	carry-in issues.
  6823  	* mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise.
  6824  	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise.
  6825  
  6826  2011-03-03  Niels Möller  <nisse@lysator.liu.se>
  6827  
  6828  	* mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m
  6829  	as in output operand only. Added sparc32 implementation. Also
  6830  	added #if:ed out attempts at sparc64 and powerpc64.
  6831  
  6832  	* tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD
  6833  	measurement for use by mpn_mod_1_tune. And omit measurement if
  6834  	mpn_mod_1_1p is native assembly code.
  6835  
  6836  	* mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro
  6837  	to check mod_1_1p_method and call the right function.
  6838  	(mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise.
  6839  
  6840  	* gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro.
  6841  	(mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable.
  6842  
  6843  2011-03-02  Torbjorn Granlund  <tege@gmplib.org>
  6844  
  6845  	* mpn/x86_64/coreinhm/aorrlsh_n.asm: New file.
  6846  	* mpn/x86_64/coreisbr/aorrlsh_n.asm: New file.
  6847  
  6848  2011-03-01  Niels Möller  <nisse@lysator.liu.se>
  6849  
  6850  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and
  6851  	two mov instructions.
  6852  
  6853  	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
  6854  	computation, analogous to recent x86_64/mod_1_1.asm changes.
  6855  	(mpn_mod_1_1p): Corresponding changes. Don't shift b.
  6856  
  6857  	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv
  6858  	rather than udiv_rnd_preinv.
  6859  	(mpn_mod_1s_4p): Likewise.
  6860  
  6861  2011-03-01  Torbjorn Granlund  <tege@gmplib.org>
  6862  
  6863  	* mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code
  6864  	between entry points.
  6865  	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
  6866  
  6867  	* mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion.  Also fix
  6868  	problem with passing a longlong limb to a _ui function.
  6869  
  6870  	* gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type.
  6871  	(udiv_rnnd_preinv): Likewise.
  6872  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise.
  6873  
  6874  2011-02-28  Niels Möller  <nisse@lysator.liu.se>
  6875  
  6876  	* mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define
  6877  	add_mssaaaa, not add_sssaaaa.
  6878  
  6879  	* tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and
  6880  	mpn_mod_1_1_2, to set MOD_1_1P_METHOD.
  6881  
  6882  	* tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2.
  6883  
  6884  	* tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2,
  6885  	mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and
  6886  	mpn_mod_1_1p_cps_2.
  6887  
  6888  	* tune/common.c (speed_mpn_mod_1_1_1): New function.
  6889  	(speed_mpn_mod_1_1_2): New function.
  6890  
  6891  	* tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c
  6892  	mod_1_1-2.c.
  6893  
  6894  	* tune/mod_1_1-1.c: New file.
  6895  	* tune/mod_1_1-2.c: New file.
  6896  
  6897  	* mpn/generic/mod_1_1.c: Implemented an algorithm with fewer
  6898  	multiplications, configured via MOD_1_1P_METHOD.
  6899  
  6900  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
  6901  	computation of B2modb, use B^2 mod (normalized b).
  6902  	(mpn_mod_1_1p): Corresponding changes. Don't shift b.
  6903  
  6904  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather
  6905  	than udiv_rnd_preinv.
  6906  	(mpn_mod_1_1p): Likewise.
  6907  	* mpn/generic/mod_1_4.c: Analogous changes.
  6908  	* mpn/generic/mod_1_3.c: Analogous changes.
  6909  	* mpn/generic/mod_1_2.c: Analogous changes.
  6910  	* mpn/generic/mod_1.c: Analogous changes.
  6911  	* mpn/generic/pre_mod_1.c: Analogous changes.
  6912  
  6913  	* gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch
  6914  	using masking logic. Further optimization of the nl == constant 0
  6915  	case, similar to udiv_rnd_preinv.
  6916  	(udiv_rnnd_preinv): Likewise.
  6917  	(udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0
  6918  	instead.
  6919  
  6920  	* tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise
  6921  	the nl == constant 0 special case in udiv_qrnnd_preinv3.
  6922  
  6923  2011-02-28  Torbjorn Granlund  <tege@gmplib.org>
  6924  
  6925  	* mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar
  6926  	divisions.  Misc minor cleanup.
  6927  
  6928  	* mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline.
  6929  
  6930  	* mpn/x86/atom/mul_basecase.asm: Remove file no longer used.
  6931  
  6932  	* mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U))
  6933  	allocations until they are known to be needed.
  6934  
  6935  2011-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6936  
  6937  	* mpn/x86/atom/sse2/mul_1.asm: New code.
  6938  
  6939  2011-02-27  Niels Möller  <nisse@lysator.liu.se>
  6940  
  6941  	* gmp-impl.h (udiv_rnnd_preinv): New macro.
  6942  
  6943  2011-02-27  Torbjorn Granlund  <tege@gmplib.org>
  6944  
  6945  	* mpn/x86/atom/sse2/mul_basecase.asm: New file.
  6946  
  6947  2011-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6948  
  6949  	* mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code.
  6950  
  6951  2011-02-26  Torbjorn Granlund  <tege@gmplib.org>
  6952  
  6953  	* mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
  6954  	* mpn/m68k/mc68020/aorsmul_1.asm: Likewise.
  6955  
  6956  2011-02-25  Torbjorn Granlund  <tege@gmplib.org>
  6957  
  6958  	* mpn/x86/atom/sse2/aorsmul_1.asm: New file.
  6959  	* mpn/x86/atom/aorsmul_1.asm: File removed.
  6960  
  6961  2011-02-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6962  
  6963  	* mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom).
  6964  	* mpn/x86/atom/sse2/mul_1.asm: Likewise.
  6965  	* mpn/x86/atom/sse2/popcount.asm: Likewise.
  6966  	* mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now).
  6967  	* mpn/x86/atom/mul_1.asm: Likewise.
  6968  	* mpn/x86/atom/popcount.asm: Likewise.
  6969  
  6970  	* configure.in: Set up mmx path for atom.
  6971  	* mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom).
  6972  	* mpn/x86/atom/mmx/copyi.asm: Likewise.
  6973  	* mpn/x86/atom/mmx/hamdist.asm: Likewise.
  6974  	* mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now).
  6975  	* mpn/x86/atom/copyi.asm: Likewise.
  6976  	* mpn/x86/atom/hamdist.asm: Likewise.
  6977  
  6978  2011-02-24  Torbjorn Granlund  <tege@gmplib.org>
  6979  
  6980  	* mpn/x86/atom/sse2/mod_1_1.asm: New file.
  6981  	* mpn/x86/atom/sse2/mod_1_4.asm: New file.
  6982  	* configure.in: Set up sse2 path for atom.
  6983  
  6984  	* mpn/x86/p6/sse2/mod_1_1.asm: New file.
  6985  	* mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE.
  6986  
  6987  2011-02-24  Niels Möller  <nisse@lysator.liu.se>
  6988  
  6989  	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same
  6990  	algorithm as the x86_64 version.
  6991  
  6992  2011-02-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
  6993  
  6994  	* mpn/x86/atom/logops_n.asm: New file (same loop as aors_n).
  6995  
  6996  2011-02-23  Niels Möller  <nisse@lysator.liu.se>
  6997  
  6998  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one
  6999  	instruction and one register in the inner loop. Rearranged
  7000  	registers slightly, and no longer needs the callee-save register
  7001  	%r12.
  7002  
  7003  2011-02-22  Torbjorn Granlund  <tege@gmplib.org>
  7004  
  7005  	* configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also
  7006  	fixing typo in exporting code.
  7007  
  7008  	* mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
  7009  	* mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
  7010  
  7011  2011-02-22  Niels Möller  <nisse@lysator.liu.se>
  7012  
  7013  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite.
  7014  
  7015  2011-02-22 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7016  
  7017  	* mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added).
  7018  
  7019  2011-02-21  Torbjorn Granlund  <tege@gmplib.org>
  7020  
  7021  	* mpn/x86/aors_n.asm: Move _nc entry to after main code.  Align loop
  7022  	and _n entry for claimed performance.  Normalise mnemonic usage.
  7023  
  7024  	* mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly
  7025  	slower for addlsh_1 for large operands, but much faster for small).
  7026  	* mpn/x86/atom/addlsh1_n.asm: Remove.
  7027  	* mpn/x86/atom/rsblsh1_n.asm: Remove.
  7028  
  7029  2011-02-20  Marc Glisse  <marc.glisse@inria.fr>
  7030  
  7031  	* mpq/aors.c: Rewrite to remove redundant division.
  7032  
  7033  2011-02-20  Torbjorn Granlund  <tege@gmplib.org>
  7034  
  7035  	* mpn/x86/atom/lshift.asm: New file.
  7036  	* mpn/x86/atom/rshift.asm: Normalise mnemonic usage.
  7037  
  7038  	* gmp-impl.h (mpn_divexact_by7): Relax inclusion condition.
  7039  
  7040  	* mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function.
  7041  	(mpz_divexact_by3): Wrap inside appropriate conditions.
  7042  	(mpz_divexact_gcd): Rewrite.
  7043  
  7044  	* mpn/x86/bdiv_dbm1c.asm: Save a jump.
  7045  
  7046  2011-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7047  
  7048  	* mpn/x86/atom/aorslshC_n.asm: New file.
  7049  	* mpn/x86/atom/sublsh2_n.asm: New file.
  7050  
  7051  	* mpn/x86/atom/aors_n.asm: New code.
  7052  	* mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit.
  7053  	* mpn/x86/atom/lshift.asm: Likewise.
  7054  
  7055  2011-02-19  Torbjorn Granlund  <tege@gmplib.org>
  7056  
  7057  	* mpn/x86_64/atom/rsh1aors_n.asm: New file.
  7058  
  7059  	* mpn/x86_64/atom/lshift.asm: New file.
  7060  	* mpn/x86_64/atom/rshift.asm: New file.
  7061  	* mpn/x86_64/atom/lshiftc.asm: New file.
  7062  
  7063  2011-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7064  
  7065  	* mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes.
  7066  	* mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements.
  7067  
  7068  2011-02-16  Torbjorn Granlund  <tege@gmplib.org>
  7069  
  7070  	* configure.in: Fix k8/k10 32-bit path setup problem.
  7071  
  7072  2011-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7073  
  7074  	* mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul.
  7075  
  7076  2011-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7077  
  7078  	* gmp-impl.h (mpn_sublsh_n): Declare.
  7079  	* mpn/asm-defs.m4: Likewise.
  7080  
  7081  	* mpn/x86/atom/aorrlshC_n.asm: New file (was k7).
  7082  	* mpn/x86/k7/aorrlshC_n.asm: ReMoved.
  7083  	* mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm.
  7084  	* mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm.
  7085  
  7086  2011-02-13  Torbjorn Granlund  <tege@gmplib.org>
  7087  
  7088  	* mpn/x86_64/atom/aorrlsh2_n.asm: New file.
  7089  
  7090  2011-02-12  Torbjorn Granlund  <tege@gmplib.org>
  7091  
  7092  	* mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers.
  7093  
  7094  	* mpn/x86_64/atom/sublsh1_n.asm: New file.
  7095  
  7096  	* mpn/x86_64/atom/aorrlsh1_n.asm: New file.
  7097  
  7098  2011-02-11  Torbjorn Granlund  <tege@gmplib.org>
  7099  
  7100  	* mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues.
  7101  
  7102  2011-02-10  Torbjorn Granlund  <tege@gmplib.org>
  7103  
  7104  	* mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970.
  7105  
  7106  2011-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7107  
  7108  	* mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's).
  7109  
  7110  	* configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc.
  7111  	* tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes.
  7112  	* tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc.
  7113  	* tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc.
  7114  
  7115  	* mpn/x86/k7/aorrlshC_n.asm: New file.
  7116  	* mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm.
  7117  	* mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm.
  7118  
  7119  2011-02-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7120  
  7121  	* mpn/x86/k7/addlsh1_n.asm: New file.
  7122  	* mpn/x86/k7/sublsh1_n.asm: New file.
  7123  	* mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm.
  7124  	* mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm.
  7125  
  7126  2011-02-05  Torbjorn Granlund  <tege@gmplib.org>
  7127  
  7128  	* gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc,
  7129  	mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare.
  7130  	* mpn/asm-defs.m4: Likewise.
  7131  
  7132  	* mpn/x86_64/coreisbr/aorrlshC_n.asm: New file.
  7133  	* mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file.
  7134  	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file.
  7135  
  7136  	* mpn/x86_64/coreisbr/aors_n.asm: New file, based on old
  7137  	atom/aors_n.asm.
  7138  	* mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm.
  7139  
  7140  2011-02-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7141  
  7142  	* gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero.
  7143  	(mpn_toom8_mul_n_itch): Likewise.
  7144  	(MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define.
  7145  	* tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN.
  7146  	* tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN.
  7147  
  7148  	* mpz/lucnum_ui.c: Use mpn_addlsh2_n.
  7149  
  7150  2011-02-04  Torbjorn Granlund  <tege@gmplib.org>
  7151  
  7152  	* mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE.
  7153  	* mpn/x86_64/atom/dive_1.asm: Likewise.
  7154  	* mpn/x86_64/atom/popcount.asm: Likewise.
  7155  	* mpn/x86_64/core2/popcount.asm: Likewise.
  7156  	* mpn/x86_64/coreinhm/hamdist.asm: Likewise.
  7157  	* mpn/x86_64/coreinhm/popcount.asm: Likewise.
  7158  	* mpn/x86_64/nano/popcount.asm: Likewise.
  7159  	* mpn/x86_64/pentium4/popcount.asm: Likewise.
  7160  
  7161  2011-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7162  
  7163  	* mpn/x86/atom/mode1o.asm: New file, grabbing another asm file.
  7164  	* mpn/x86/atom/mul_1.asm: Claim mul_1c.
  7165  
  7166  2011-02-02  Niels Möller  <nisse@lysator.liu.se>
  7167  
  7168  	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one
  7169  	speed_operand_dst call.
  7170  
  7171  2011-02-01  Torbjorn Granlund  <tege@gmplib.org>
  7172  
  7173  	* tune/speed.h (struct speed_params): Allow for 4 dst operands.
  7174  	* tune/common.c (TOLERANCE): Increase from 0.5% to 1%.
  7175  
  7176  	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based
  7177  	on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested
  7178  	by Niels).
  7179  	* tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL.
  7180  	(speed_mpn_hgcd_lehmer): Likewise.
  7181  
  7182  	* configure.in: Set up 32-bit x86 paths for new corei* CPU strings.
  7183  
  7184  2011-01-31  Torbjorn Granlund  <tege@gmplib.org>
  7185  
  7186  	* config.guess: Recognise new Intel processors.
  7187  
  7188  	* config.guess: Support 'coreinhm' and 'coreisbr'.
  7189  	* config.sub: Likewise.
  7190  	* configure.in: Likewise.
  7191  
  7192  2011-01-30  Torbjorn Granlund  <tege@gmplib.org>
  7193  
  7194  	* configure.in: Support x86/geode.
  7195  	* mpn/x86/geode/gmp-mparam.h: New file.
  7196  
  7197  2011-01-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7198  
  7199  	* mpn/x86/atom/addlsh1_n.asm: Removed.
  7200  	* mpn/x86/atom/rsh1add_n.asm: Likewise.
  7201  
  7202  2011-01-28  Torbjorn Granlund  <tege@gmplib.org>
  7203  
  7204  	* mpn/alpha/ev6/slot.pl: Add some missing insns.
  7205  
  7206  2011-01-28 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7207  
  7208  	* mpn/x86/atom/copyd.asm: New file, grabbing another asm file.
  7209  	* mpn/x86/atom/copyi.asm: Likewise.
  7210  	* mpn/x86/atom/aors_n.asm: Likewise.
  7211  	* mpn/x86/atom/addlsh1_n.asm: Likewise.
  7212  	* mpn/x86/atom/aorsmul_1.asm: Likewise.
  7213  	* mpn/x86/atom/bdiv_q_1.asm: Likewise.
  7214  	* mpn/x86/atom/dive_1.asm: Likewise.
  7215  	* mpn/x86/atom/divrem_1.asm: Likewise.
  7216  	* mpn/x86/atom/hamdist.asm: Likewise.
  7217  	* mpn/x86/atom/logops_n.asm: Likewise.
  7218  	* mpn/x86/atom/lshift.asm: Likewise.
  7219  	* mpn/x86/atom/mod_34lsub1.asm: Likewise.
  7220  	* mpn/x86/atom/mul_1.asm: Likewise.
  7221  	* mpn/x86/atom/mul_basecase.asm: Likewise.
  7222  	* mpn/x86/atom/popcount.asm: Likewise.
  7223  	* mpn/x86/atom/rsh1add_n.asm: Likewise.
  7224  	* mpn/x86/atom/rshift.asm: Likewise.
  7225  	* mpn/x86/atom/sqr_basecase.asm: Likewise.
  7226  
  7227  2011-01-27  Torbjorn Granlund  <tege@gmplib.org>
  7228  
  7229  	* mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file.
  7230  	* mpn/x86_64/atom/popcount.asm: Likewise.
  7231  	* mpn/x86_64/atom/dive_1.asm: Likewise.
  7232  	* mpn/x86_64/nano/popcount.asm: Likewise.
  7233  
  7234  2011-01-26  Torbjorn Granlund  <tege@gmplib.org>
  7235  
  7236  	* mpn/alpha/invert_limb.asm: Complete rewrite.
  7237  
  7238  2011-01-25  Torbjorn Granlund  <tege@gmplib.org>
  7239  
  7240  	* mpn/powerpc32/invert_limb.asm: New file.
  7241  
  7242  2011-01-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7243  
  7244  	* mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file.
  7245  	* mpn/x86/k7/bdiv_q_1.asm: New file.
  7246  
  7247  2011-01-24  Torbjorn Granlund  <tege@gmplib.org>
  7248  
  7249  	* tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds
  7250  	until no tiny ranges remain.
  7251  
  7252  2011-01-23  Torbjorn Granlund  <tege@gmplib.org>
  7253  
  7254  	* mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead.
  7255  
  7256  	* mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point.
  7257  
  7258  2011-01-22  Torbjorn Granlund  <tege@gmplib.org>
  7259  
  7260  	* mpn/ia64/aors_n.asm: Fix some incorrect bundle types.
  7261  
  7262  	* mpn/ia64/sqr_diagonal.asm: Remove.
  7263  
  7264  	* mpn/ia64/sqr_diag_addlsh1.asm: New file.
  7265  
  7266  	* mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics.
  7267  
  7268  	* mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using
  7269  	new function mpn_sqr_diag_addlsh1 or defining its equivalent.
  7270  
  7271  	* gmp-impl.h (mpn_addmul_2s): Declare.
  7272  	(mpn_sqr_diag_addlsh1): Declare.
  7273  	* mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1.
  7274  
  7275  	* configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and
  7276  	mpn_addmul_2s.
  7277  	(gmp_mpn_functions_optional): Add sqr_diag_addlsh1.
  7278  
  7279  2011-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7280  
  7281  	* tests/devel/try.c: Initial support for mpn_bdiv_q_1.
  7282  	* mpn/x86/pentium/bdiv_q_1.asm: New file.
  7283  	* mpn/x86/p6/bdiv_q_1.asm: New file.
  7284  
  7285  2011-01-20  Torbjorn Granlund  <tege@gmplib.org>
  7286  
  7287  	* tune/speed.c (run_gnuplot): Update to current gnuplot syntax.
  7288  
  7289  	* mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1
  7290  	for POWER5.
  7291  
  7292  2011-01-19  Torbjorn Granlund  <tege@gmplib.org>
  7293  
  7294  	* mpn/x86_64/core2/rsh1aors_n.asm: New file.
  7295  
  7296  2011-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7297  
  7298  	* mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1).
  7299  
  7300  2011-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7301  
  7302  	* mpn/generic/divexact.c: Avoid COPY if not needed.
  7303  
  7304  2011-01-14  Torbjorn Granlund  <tege@gmplib.org>
  7305  
  7306  	* gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold.
  7307  	* configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD.
  7308  
  7309  2011-01-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7310  
  7311  	* mpz/mul.c: Remove redundant size computation.
  7312  
  7313  2011-01-08  Torbjorn Granlund  <tege@gmplib.org>
  7314  
  7315  	* tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6.
  7316  	(param_init): Support new types.
  7317  	(choice_array): Support testing of mpn_mul_5 and mpn_mul_6.
  7318  	(call): Support new routines.
  7319  
  7320  	* tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions.
  7321  	* tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare.
  7322  	Remove parameter names from some other functions.
  7323  
  7324  	* gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare.
  7325  	* mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6,
  7326  	mpn_addmul_7, and mpn_addmul_8.
  7327  
  7328  	* configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6.
  7329  
  7330  	* tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6.
  7331  	* tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions.
  7332  	* tune/speed.h: Declare new functions.
  7333  
  7334  2011-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
  7335  
  7336  	* mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup.
  7337  	* mpz/cmp.c: Likewise.
  7338  	* mpz/gcd.c: Likewise.
  7339  	* mpz/mul.c: Likewise.
  7340  	* mpz/powm.c: Likewise.
  7341  	* mpz/set.c: Likewise.
  7342  	* mpz/sqrtrem.c: Likewise.
  7343  	* mpz/tdiv_qr.c: Likewise.
  7344  
  7345  2010-12-28  Torbjorn Granlund  <tege@gmplib.org>
  7346  
  7347  	* mpn/minithres/gmp-mparam.h: Update with several recent thresholds.
  7348  
  7349  2010-12-19  Torbjorn Granlund  <tege@gmplib.org>
  7350  
  7351  	* mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms.
  7352  	* mpn/x86/k7/mod_1_4.asm: Likewise.
  7353  	* mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise.
  7354  	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
  7355  	* mpn/x86_64/core2/divrem_1.asm: Likewise.
  7356  	* mpn/x86_64/divrem_1.asm: Likewise.
  7357  	* mpn/x86_64/mod_1_1.asm: Likewise.
  7358  	* mpn/x86_64/mod_1_2.asm: Likewise.
  7359  	* mpn/x86_64/mod_1_4.asm: Likewise.
  7360  
  7361  	* mpn/x86/k7/gcd_1.asm: Rewrite.  Remove slow 'div' loop.  Call
  7362  	mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs.
  7363  	Misc cleanups.
  7364  
  7365  2010-12-18  Torbjorn Granlund  <tege@gmplib.org>
  7366  
  7367  	* mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than
  7368  	BMOD_1_TO_MOD_1_THRESHOLD limbs.
  7369  
  7370  	* configure.in: Generalise code for putting THRESHOLDs in config.m4.
  7371  	Add BMOD_1_TO_MOD_1_THRESHOLD to list.
  7372  
  7373  	* mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts.
  7374  
  7375  	* mpn/x86_64/addmul_2.asm: Remove constant index.
  7376  	* mpn/x86_64/lshiftc.asm: Likewise.
  7377  	* mpn/x86_64/pentium4/lshift.asm: Likewise.
  7378  	* mpn/x86_64/pentium4/lshiftc.asm: Likewise.
  7379  	* mpn/x86_64/pentium4/rshift.asm: Likewise.
  7380  
  7381  2010-12-16  Torbjorn Granlund  <tege@gmplib.org>
  7382  
  7383  	* mpn/x86_64/mod_34lsub1.asm: Complete rewrite.
  7384  	* mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old
  7385  	mpn/x86_64/mod_34lsub1.asm.
  7386  
  7387  2010-12-15  Torbjorn Granlund  <tege@gmplib.org>
  7388  
  7389  	* mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table.
  7390  
  7391  2010-12-14  Torbjorn Granlund  <tege@gmplib.org>
  7392  
  7393  	* mp-h.in: Remove.
  7394  	* configure.in: Remove mp-h.in from AC_OUTPUT invocation.
  7395  
  7396  2010-12-13  Torbjorn Granlund  <tege@gmplib.org>
  7397  
  7398  	* mpz/mod.c: Rewrite.
  7399  
  7400  	* mpn/x86_64/corei/popcount.asm: New file.
  7401  	* mpn/x86_64/corei/hamdist.asm: New file.
  7402  
  7403  	* mpn/x86_64/k10/hamdist.asm: New file.
  7404  
  7405  	* configure.in: Amend last change for lame /bin/sh.
  7406  
  7407  2010-12-12  Torbjorn Granlund  <tege@gmplib.org>
  7408  
  7409  	* configure.in: Comment out M4=m4-not-needed.
  7410  
  7411  	* mpn/x86_64/k10/popcount.asm: New file.
  7412  	* configure.in: Setup special path for k10 and later AMD CPUs.
  7413  	Remove special x86_64'k8' path, since directory is non-existent.
  7414  
  7415  2010-12-11  Torbjorn Granlund  <tege@gmplib.org>
  7416  
  7417  	* mpn/sparc32/ultrasparct1: New directory.
  7418  	* mpn/sparc32/ultrasparct1/add_n.asm: New file.
  7419  	* mpn/sparc32/ultrasparct1/sub_n.asm: New file.
  7420  	* mpn/sparc32/ultrasparct1/mul_1.asm: New file.
  7421  	* mpn/sparc32/ultrasparct1/addmul_1.asm: New file.
  7422  	* mpn/sparc32/ultrasparct1/submul_1.asm: New file.
  7423  	* mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file.
  7424  
  7425  	* config.guess: Support Ultrasparc T2 and T3.
  7426  	* config.sub: Likewise.
  7427  	* configure.in: Likewise.
  7428  
  7429  	* config.guess: Generalise BSD Sparc recognition by allowing any
  7430  	caps (needed for OpenBSD which spells things innovatively).
  7431  
  7432  2010-12-01  Torbjorn Granlund  <tege@gmplib.org>
  7433  
  7434  	* config.guess: Match new AMD processors, allow finer distinctions
  7435  	among old ones.
  7436  	* acinclude.m4 (X86_64_PATTERN): Likewise.
  7437  	* config.sub: Likewise.
  7438  	* configure.in: Rudimentarily support new AMD processors.
  7439  
  7440  	* configure.in (--enable_assembly): New option.
  7441  	(target none-*-*): Disable, give error.
  7442  
  7443  2010-11-29  Torbjorn Granlund  <tege@gmplib.org>
  7444  
  7445  	* mpn/x86/x86-defs.m4 (LEA): Support non-PIC code.
  7446  	* mpn/x86/darwin.m4 (LEA): Likewise.
  7447  
  7448  	* tests/amd64call.asm: Rewrite for code size, and to match calls and
  7449  	returns.
  7450  
  7451  	* tests/x86call.asm: Rewrite for code size, to support PIC, and to
  7452  	match calls and returns.
  7453  	* tests/x86check.c: Rewrite.
  7454  
  7455  2010-11-22  Torbjorn Granlund  <tege@gmplib.org>
  7456  
  7457  	* mpz/get_str.c: Make all bases either work or return an error.
  7458  	* mpz/out_str.c: Likewise.
  7459  	* mpq/get_str.c: Likewise.
  7460  	* mpf/get_str.c: Likewise.
  7461  
  7462  2010-11-14  Torbjorn Granlund  <tege@gmplib.org>
  7463  
  7464  	* tests/misc/t-printf.c: Add explicit casts for type conversions.
  7465  	* mpn/generic/toom62_mul.c: Likewise.
  7466  
  7467  2010-11-13  Torbjorn Granlund  <tege@gmplib.org>
  7468  
  7469  	* mpn/generic/get_d.c: Misc cleanup.  Fail with a syntax error for
  7470  	non-IEEE fp formats.
  7471  
  7472  	* tests/devel/try.c (malloc_region): Add explicit casts for type
  7473  	conversions.
  7474  
  7475  	* acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible.
  7476  	(GMP_C_DOUBLE_FORMAT): Likewise.
  7477  	(GMP_FUNC_VSNPRINTF): Likewise.
  7478  
  7479  	* config.guess (x86): Make test C snippet C++ compatible.
  7480  
  7481  2010-11-12  Torbjorn Granlund  <tege@gmplib.org>
  7482  
  7483  	* Makefile.am: Remove mpbsd.
  7484  	* configure.in: Remove mpbsd.
  7485  	* doc/configuration: Remove mpbsd mentions.
  7486  	* doc/gmp.texi: Remove mpbsd docs.
  7487  	* tests/Makefile.am: Remove mpbsd.
  7488  	* libmp.sym: Remove.
  7489  	* mpbsd: Remove directory and files.
  7490  	* tests/mpbsd: Remove directory and files.
  7491  
  7492  2010-11-11  Torbjorn Granlund  <tege@gmplib.org>
  7493  
  7494  	* mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn.
  7495  	Use 64-bit 'test' to support operands of 2^32 limbs and more.
  7496  
  7497  	* rand: New directory, move rand*.c and randmt.h here.
  7498  	* rand/Makefile.am: New file.
  7499  	* Makefile.am (SUBDIRS): Add rand.
  7500  	(RANDOM_OBJECTS): New variable.
  7501  	(libgmp_la_SOURCES): Remove random objects.
  7502  	(libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS.
  7503  	* configure.in (AC_OUTPUT): Add rand/Makefile.
  7504  
  7505  	* ansi2knr.1: File removed.
  7506  	* ansi2knr.c: File removed.
  7507  
  7508  2010-11-10  Torbjorn Granlund  <tege@gmplib.org>
  7509  
  7510  	Make it possible to compile GMP with g++:
  7511  
  7512  	* gmp-impl.h: Declare __gmp_digit_value_tab here.
  7513  	* mpbsd/min.c: ...not here.
  7514  	* mpbsd/xtom.c: ...nor here.
  7515  	* mpf/set_str.c: ...nor here.
  7516  	* mpz/inp_str.c: ...nor here.
  7517  	* mpz/set_str.c: ...nor here.
  7518  
  7519  	* mpn/generic/toom43_mul.c: Add casts for logical operations on enums.
  7520  	* mpn/generic/toom44_mul.c: Likewise.
  7521  	* mpn/generic/toom4_sqr.c: Likewise.
  7522  	* mpn/generic/toom52_mul.c: Likewise.
  7523  	* mpn/generic/toom53_mul.c: Likewise.
  7524  	* mpn/generic/toom62_mul.c: Likewise.
  7525  
  7526  	* mpz/clrbit.c: Clean up typing using MPZ_REALLOC.
  7527  	* mpz/setbit.c: Likewise.
  7528  
  7529  	* mpz/powm.c: Avoid variable name 'new'.
  7530  
  7531  	* randlc2x.c: Add explicit casts for type conversions.
  7532  	* tests/misc/t-printf.c: Likewise.
  7533  	* tests/misc/t-scanf.c: Likewise.
  7534  	* tests/misc.c: Likewise.
  7535  	* tests/mpz/convert.c: Likewise.
  7536  	* tests/refmpn.c: Likewise.
  7537  
  7538  	* tests/tests.h: Unconditionally use <sstream> for now.
  7539  
  7540  	* tests/memory.c: Include "tests.h.
  7541  
  7542  	* mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype.
  7543  	* mp_set_fns.c: Likewise.
  7544  	* mpf/cmp.c: Likewise.
  7545  	* mpf/cmp_si.c: Likewise.
  7546  	* mpf/cmp_ui.c: Likewise.
  7547  	* mpf/fits_s.h: Likewise.
  7548  	* mpf/fits_u.h: Likewise.
  7549  	* mpf/get_dfl_prec.c: Likewise.
  7550  	* mpf/get_prc.c: Likewise.
  7551  	* mpf/get_si.c: Likewise.
  7552  	* mpf/get_ui.c: Likewise.
  7553  	* mpf/int_p.c: Likewise.
  7554  	* mpf/set_dfl_prec.c: Likewise.
  7555  	* mpf/set_prc_raw.c: Likewise.
  7556  	* mpf/size.c: Likewise.
  7557  	* mpf/swap.c: Likewise.
  7558  	* mpq/equal.c: Likewise.
  7559  	* mpq/swap.c: Likewise.
  7560  	* mpz/cmp.c: Likewise.
  7561  	* mpz/cmp_si.c: Likewise.
  7562  	* mpz/cmp_ui.c: Likewise.
  7563  	* mpz/cmpabs.c: Likewise.
  7564  	* mpz/cmpabs_ui.c: Likewise.
  7565  	* mpz/cong_2exp.c: Likewise.
  7566  	* mpz/divis_2exp.c: Likewise.
  7567  	* mpz/fits_s.h: Likewise.
  7568  	* mpz/get_si.c: Likewise.
  7569  	* mpz/hamdist.c: Likewise.
  7570  	* mpz/scan0.c: Likewise.
  7571  	* mpz/scan1.c: Likewise.
  7572  	* mpz/sizeinbase.c: Likewise.
  7573  	* mpz/swap.c: Likewise.
  7574  	* mpz/tstbit.c: Likewise.
  7575  	* tal-reent.c: Likewise.
  7576  
  7577  2010-11-09  Torbjorn Granlund  <tege@gmplib.org>
  7578  
  7579  	* configure.in: Get rid of K&R support.
  7580  	* Makefile.am: Likewise.
  7581  	* mpn/Makefile.am: Likewise.
  7582  	* doc/configuration: Update docs wrt K&R support.
  7583  	* doc/gmp.texi: Likewise.
  7584  
  7585  	* configure.in (AC_INIT): Amend bug reporting address with manual
  7586  	reference.
  7587  
  7588  2010-11-06  Torbjorn Granlund  <tege@gmplib.org>
  7589  
  7590  	* config.guess: If cpuid says we have 32bit-only x86 but
  7591  	configfsf.guess return x86_64, return the latter.
  7592  
  7593  	* mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn.
  7594  
  7595  2010-10-09  Torbjorn Granlund  <tege@gmplib.org>
  7596  
  7597  	* mpn/generic/trialdiv.c: Update documentation.
  7598  
  7599  2010-10-04  Torbjorn Granlund  <tege@gmplib.org>
  7600  
  7601  	* mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator.
  7602  	* mpn/x86_64/aorrlshC_n.asm: Likewise.
  7603  	* mpn/x86_64/pentium4/aorslshC_n.asm: Likewise.
  7604  	* mpn/x86/k7/gcd_1.asm: Likewise.
  7605  
  7606  2010-08-20  Niels Möller  <nisse@lysator.liu.se>
  7607  
  7608  	Suggested by Ozkan Sezer:
  7609  	* configure.in: If $M4 is already set in the environment, don't
  7610  	touch it. Fixed the case that no assembler files are used, and
  7611  	GMP_PROG_M4 is omitted.
  7612  
  7613  2010-08-08  Torbjorn Granlund  <tege@gmplib.org>
  7614  
  7615  	* mpn/x86_64/fat/fat.c: Recognise many more processors.
  7616  
  7617  2010-06-30  Torbjorn Granlund  <tege@gmplib.org>
  7618  
  7619  	* mpn/x86_64/divrem_2.asm: Tune.
  7620  
  7621  2010-06-19  Niels Möller  <nisse@lysator.liu.se>
  7622  
  7623  	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized
  7624  	divisor to the benchmarked function.
  7625  
  7626  2010-06-15  Torbjorn Granlund  <tege@gmplib.org>
  7627  
  7628  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
  7629  	* mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite.
  7630  	* mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
  7631  
  7632  	* gmp-impl.h (udiv_rnd_preinv): Simplify.
  7633  
  7634  	* mpn/x86/k7/mod_1_1.asm: New file.
  7635  	* mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
  7636  	* mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
  7637  	* mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
  7638  
  7639  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are
  7640  	computed.
  7641  	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise.
  7642  	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise.
  7643  
  7644  	* mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm.
  7645  
  7646  2010-06-15  Niels Möller  <nisse@lysator.liu.se>
  7647  
  7648  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1.
  7649  	* tests/mpn/t-mod_1.c: New file.
  7650  
  7651  2010-05-25  Torbjorn Granlund  <tege@gmplib.org>
  7652  
  7653  	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space
  7654  	for inverse, since that is passed in already.
  7655  
  7656  2010-05-24  Torbjorn Granlund  <tege@gmplib.org>
  7657  
  7658  	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function.
  7659  	* gmp-impl.h: Declare it.
  7660  	* tune/common.c (speed_mpn_mupi_div_qr): Use new itch function.
  7661  	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right
  7662  	for new itch function.
  7663  
  7664  	* mpn/powerpc32/lshiftc.asm: New file.
  7665  
  7666  2010-05-22  Torbjorn Granlund  <tege@gmplib.org>
  7667  
  7668  	* tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06.
  7669  
  7670  2010-05-17  Torbjorn Granlund  <tege@gmplib.org>
  7671  
  7672  	* configure.in (ia64): Get 32-bit sizeof test right.
  7673  
  7674  	* tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of
  7675  	PREINV_MOD_1_TO_MOD_1_THRESHOLD.
  7676  
  7677  2010-05-16  Torbjorn Granlund  <tege@gmplib.org>
  7678  
  7679  	* mpn/sparc64/mod_1.c: Rewrite.
  7680  	* mpn/sparc64/sparc64.h (umul_ppmm_s): New macro.
  7681  	* mpn/sparc64/mod_1_4.c: New file.
  7682  
  7683  	* mpn/generic/divrem_1.c: Minor cleanup.
  7684  	* mpn/generic/mod_1.c: Likewise.
  7685  	* mpn/generic/mod_1_1.c: Likewise.
  7686  	* mpn/generic/mod_1_2.c: Likewise.
  7687  	* mpn/generic/mod_1_3.c: Likewise.
  7688  	* mpn/generic/mod_1_4.c: Likewise.
  7689  
  7690  	* configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI.
  7691  
  7692  	* tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before
  7693  	tuning MOD_1U_TO_MOD_1_1_THRESHOLD.
  7694  
  7695  2010-05-14  Torbjorn Granlund  <tege@gmplib.org>
  7696  
  7697  	* mpn/generic/redc_2.c: Use asm code just for GNU C.
  7698  
  7699  2010-05-13  Torbjorn Granlund  <tege@gmplib.org>
  7700  
  7701  	* mpn/sparc64/ultrasparc1234: New directory.  Move all code that uses
  7702  	floating-point into this directory.
  7703  	* configure.in: Point to ultrasparc1234 for appropriate CPUs.
  7704  
  7705  	* mpn/sparc64/ultrasparct1/add_n.asm: New file.
  7706  	* mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file.
  7707  	* mpn/sparc64/ultrasparct1/addmul_1.asm: New file.
  7708  	* mpn/sparc64/ultrasparct1/lshift.asm: New file.
  7709  	* mpn/sparc64/ultrasparct1/mul_1.asm: New file.
  7710  	* mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file.
  7711  	* mpn/sparc64/ultrasparct1/rshift.asm: New file.
  7712  	* mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file.
  7713  	* mpn/sparc64/ultrasparct1/sublshC_n.asm: New file.
  7714  	* mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file.
  7715  	* mpn/sparc64/ultrasparct1/addlshC_n.asm: New file.
  7716  	* mpn/sparc64/ultrasparct1/lshiftc.asm: New file.
  7717  	* mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file.
  7718  	* mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file.
  7719  	* mpn/sparc64/ultrasparct1/sub_n.asm: New file.
  7720  	* mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file.
  7721  	* mpn/sparc64/ultrasparct1/submul_1.asm: New file.
  7722  	* mpn/sparc64/ultrasparct1/gmp-mparam.h: New file.
  7723  
  7724  	* configure.in: Give ultrasparct1 and ultrasparct2 special code path.
  7725  
  7726  	* mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n.
  7727  
  7728  2010-05-12  Niels Möller  <nisse@lysator.liu.se>
  7729  
  7730  	* mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of
  7731  	scratch space.
  7732  
  7733  	* tune/common.c (speed_mpz_powm_sec): New function.
  7734  	* tune/speed.h: Declare speed_mpz_powm_sec.
  7735  	* tune/speed.c (routine): Added speed_mpz_powm_sec.
  7736  
  7737  	* tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n)
  7738  	(speed_mpn_rsblsh_n): New functions.
  7739  	* tune/speed.h: Declare new functions.
  7740  	* tune/speed.c (routine): Add new functions.
  7741  
  7742  2010-05-12  Torbjorn Granlund  <tege@gmplib.org>
  7743  
  7744  	* mpn/x86_64/mod_1_4.asm: Tune for more processors.
  7745  
  7746  	* mpn/x86_64/pentium4/lshiftc.asm: New file.
  7747  
  7748  2010-05-11  Niels Möller  <nisse@lysator.liu.se>
  7749  
  7750  	* mpz/jacobi.c (mpz_jacobi): Deleted old implementation.
  7751  	Reorganized new implementation, to handle small inputs efficiently.
  7752  
  7753  	* tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes.
  7754  	(check_data): One more input pair related to a fixed bug.
  7755  	(main): Enable check_large_quotients.
  7756  
  7757  2010-05-10  Torbjorn Granlund  <tege@gmplib.org>
  7758  
  7759  	* mpn/x86_64/aorrlsh2_n.asm: Fix typo.
  7760  
  7761  2010-05-09  Torbjorn Granlund  <tege@gmplib.org>
  7762  
  7763  	* mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm.
  7764  	* mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm.
  7765  	* mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm.
  7766  	* mpn/x86_64/core2/aorrlsh2_n.asm: Likewise.
  7767  
  7768  	* mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm.
  7769  	* mpn/x86_64/core2/aorslsh1_n.asm: Remove.
  7770  	* mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm.
  7771  	* mpn/x86_64/core2/sublsh2_n.asm: Likewise.
  7772  
  7773  2010-05-08  Torbjorn Granlund  <tege@gmplib.org>
  7774  
  7775  	* mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n.
  7776  
  7777  	* mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm.
  7778  	* mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm.
  7779  	* mpn/x86_64/pentium4/aorslsh2_n.asm: New file.
  7780  
  7781  2010-05-07  Torbjorn Granlund  <tege@gmplib.org>
  7782  
  7783  	* mpn/sparc64: Support operands of >= 2^32 limbs.
  7784  
  7785  	* mpn/sparc64/lshiftc.asm: New file.
  7786  
  7787  	* mpn/ia64/divrem_2.asm: Complete rewrite.
  7788  
  7789  2010-05-06  Torbjorn Granlund  <tege@gmplib.org>
  7790  
  7791  	* tune/tuneup.c (all): Don't call tune_divrem_2.
  7792  
  7793  	* mpn/generic/divrem_2.c: Complete rewrite.
  7794  
  7795  	* tune/tuneup.c (tune_mod_1): Fix typo.
  7796  
  7797  2010-05-05  Torbjorn Granlund  <tege@gmplib.org>
  7798  
  7799  	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names.
  7800  	(mpn_mod_1_1p_cps): Rewrite.
  7801  
  7802  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise.
  7803  
  7804  	* longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code.
  7805  
  7806  	* mpn/x86/pentium4/sse2/mod_1_1.asm: New file.
  7807  
  7808  	* mpn/powerpc64/mode64/mod_1_1.asm: New file.
  7809  
  7810  	* tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit
  7811  	of machines with early-out multipliers.
  7812  
  7813  2010-05-04  Torbjorn Granlund  <tege@gmplib.org>
  7814  
  7815  	* tune/tuneup.c (tune_mod_1): Fix typo.
  7816  
  7817  	* mpn/generic/mod_1_1.c: Undo last change.
  7818  	* mpn/x86_64/mod_1_1.asm: Likewise.
  7819  
  7820  2010-05-03  Niels Möller  <nisse@lysator.liu.se>
  7821  
  7822  	* mpn/generic/jacobi_lehmer.c (jacobi_hook): New function.
  7823  	(mpn_jacobi_subdiv_step): Deleted function.
  7824  	(mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step.
  7825  
  7826  	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
  7827  	to use a single hook function.
  7828  	* mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook
  7829  	interface.
  7830  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook
  7831  	function.
  7832  	* mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted
  7833  	to new hook interface.
  7834  	* gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function
  7835  	type, not a struct.
  7836  	(mpn_gcdext_hook): Declare.
  7837  
  7838  2010-05-03  Torbjorn Granlund  <tege@gmplib.org>
  7839  
  7840  	* mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in.
  7841  	* mpn/generic/mod_1_2.c: Likewise.
  7842  	* mpn/generic/mod_1_3.c: Likewise.
  7843  	* mpn/generic/mod_1_4.c: Likewise.
  7844  	* mpn/x86_64/mod_1_1.asm: Likewise.
  7845  	* mpn/x86_64/mod_1_2.asm: Likewise.
  7846  	* mpn/x86_64/mod_1_4.asm: Likewise.
  7847  	* mpn/x86/k7/mod_1_4.asm: Likewise.
  7848  	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
  7849  	* mpn/alpha/ev6/mod_1_4.asm: Likewise.
  7850  
  7851  	* tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and
  7852  	MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for
  7853  	correctness.
  7854  
  7855  	* mpn/powerpc64/sqr_diagonal.asm: Complete rewrite.
  7856  
  7857  	* mpn/powerpc64/mode64/mod_1_4.asm: New file.
  7858  
  7859  2010-05-02  Torbjorn Granlund  <tege@gmplib.org>
  7860  
  7861  	* config.guess: Recognise power7.
  7862  
  7863  	* configure.in: Major overhaul of powerpc support.
  7864  
  7865  	* mpn/powerpc64/p6/lshift.asm: New file.
  7866  	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
  7867  	* mpn/powerpc64/p6/rshift.asm: Likewise.
  7868  
  7869  2010-04-30  Torbjorn Granlund  <tege@gmplib.org>
  7870  
  7871  	* configure.in (powerpc64): Support CPU specific mode-less subdirs.
  7872  
  7873  	* mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making
  7874  	requested alignment actually honoured.
  7875  
  7876  2010-04-30  Niels Möller  <nisse@lysator.liu.se>
  7877  
  7878  	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of
  7879  	the case bl == 1. Fixed missing application of reciprocity.
  7880  
  7881  2010-04-29  Niels Möller  <nisse@lysator.liu.se>
  7882  
  7883  	* configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step.
  7884  
  7885  	* mpn/generic/gcdext.c (mpn_gcdext): Use new generalized
  7886  	mpn_gcd_subdiv_step.
  7887  
  7888  	* mpn/generic/gcdext_lehmer.c (gcdext_update): New function.
  7889  	(gcdext_done): New function.
  7890  	(gcdext_hook): New const hook struct.
  7891  	(mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step.
  7892  
  7893  	* mpn/generic/gcd.c (gcd_done): New function.
  7894  	(gcd_hook): New const hook struct.
  7895  	(mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface.
  7896  
  7897  	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
  7898  	function. Added hook function pointers to the argument list, so
  7899  	the same function can be used for gcd, gcdext, and jacobi.
  7900  
  7901  	* gmp-impl.h (struct gcd_subdiv_step_hook): New struct.
  7902  	(mpn_gcdext_subdiv_step): Deleted prototype.
  7903  	(struct gcdext_ctx): New struct.
  7904  	(gcdext_hook): Declare const struct.
  7905  	(mpn_gcd_subdiv_step): Updated prototype.
  7906  
  7907  	* mpn/generic/gcdext_subdiv_step.c: Deleted file.
  7908  
  7909  2010-04-28  Torbjorn Granlund  <tege@gmplib.org>
  7910  
  7911  	* mpn/powerpc64/lshift.asm: Rewrite.
  7912  	* mpn/powerpc64/rshift.asm: Likewise.
  7913  	* mpn/powerpc64/mode64/lshiftc.asm: New file.
  7914  
  7915  	* mpn/powerpc64/aix.m4: Align functions to 32-byte boundary.
  7916  	* mpn/powerpc64/darwin.m4: Likewise.
  7917  	* mpn/powerpc64/elf.m4: Likewise.
  7918  
  7919  2010-04-28  Niels Möller  <nisse@lysator.liu.se>
  7920  
  7921  	* tests/mpz/t-jac.c (check_data): Added some more test cases.
  7922  
  7923  	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count
  7924  	trailing zeros, not leading.
  7925  
  7926  2010-04-27  Torbjorn Granlund  <tege@gmplib.org>
  7927  
  7928  	* mpn/powerpc64/mode64/p6/mul_basecase.asm: New file.
  7929  
  7930  2010-04-23  Niels Möller  <nisse@lysator.liu.se>
  7931  
  7932  	* gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted.
  7933  	(mpn_gcd_lehmer_n): Deleted declaration.
  7934  
  7935  	* mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c.
  7936  	(mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use
  7937  	MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH.
  7938  
  7939  2010-04-22  Torbjorn Granlund  <tege@gmplib.org>
  7940  
  7941  	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them
  7942  	consecutive, for the benefit of POWER6.
  7943  
  7944  	* mpn/powerpc64/mode64/p6/gmp-mparam.h: New file.
  7945  
  7946  2010-04-21  Torbjorn Granlund  <tege@gmplib.org>
  7947  
  7948  	* mpn/generic/gcd_lehmer.c: Deleted file.
  7949  
  7950  	* mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them
  7951  	consecutive, for the benefit of POWER6.
  7952  	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
  7953  	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
  7954  	* mpn/powerpc64/mode64/mul_1.asm: Likewise.
  7955  	* mpn/powerpc64/mode64/aorsmul_1.asm: Likewise.
  7956  
  7957  	* mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary
  7958  	workaround for POWER6 pipeline glitch.
  7959  
  7960  2010-04-19  Niels Möller  <nisse@lysator.liu.se>
  7961  
  7962  	* mpz/jacobi.c (mpz_jacobi): New implementation using
  7963  	mpn_jacobi_lehmer. Currently #if:ed out.
  7964  
  7965  	* mpn/generic/jacbase.c (mpn_jacobi_base)
  7966  	[JACOBI_BASE_METHOD < 4]: Support inputs with a >= b.
  7967  
  7968  	* gmp-impl.h (mpn_jacobi_lehmer): Added prototype.
  7969  	(jacobi_table): Declare.
  7970  	(mpn_jacobi_init): New inline function.
  7971  	(mpn_jacobi_finish): Likewise.
  7972  	(mpn_jacobi_update): Likewise.
  7973  
  7974  	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new
  7975  	function.
  7976  
  7977  	* configure.in (gmp_mpn_functions): Added jacobi_lehmer.
  7978  
  7979  2010-04-14  Niels Möller  <nisse@lysator.liu.se>
  7980  
  7981  	* configure.in (gmp_mpn_functions): Added
  7982  	matrix22_mul1_inverse_vector.
  7983  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
  7984  	matrix22_mul1_inverse_vector.c.
  7985  
  7986  	* gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for
  7987  	rename of mpn_matrix22_mul1_inverse_vector.
  7988  	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise.
  7989  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
  7990  	* mpn/generic/hgcd.c (hgcd_step): Likewise.
  7991  
  7992  	* mpn/generic/matrix22_mul1_inverse_vector.c
  7993  	(mpn_matrix22_mul1_inverse_vector): New file, function moved and
  7994  	renamed...
  7995  	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector):
  7996  	...from here.
  7997  
  7998  2010-04-12  Torbjorn Granlund  <tege@gmplib.org>
  7999  
  8000  	* tests/mpn/t-toom6h.c (SIZE_LOG): Define.
  8001  	* tests/mpn/t-toom8h.c (SIZE_LOG): Likewise.
  8002  
  8003  2010-04-10  Torbjorn Granlund  <tege@gmplib.org>
  8004  
  8005  	* mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code.
  8006  
  8007  	* mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n.
  8008  	* mpn/ia64/aorslsh1_n.asm: Likewise.
  8009  
  8010  	* mpn/ia64/aors_n.asm: Complete rewrite.
  8011  	* mpn/ia64/aorslsh1_n.asm: Likewise.
  8012  
  8013  	* mpn/ia64/add_n_sub_n.asm: Misc cleanups.  Add slotting comments.
  8014  
  8015  	* mpn/ia64/lshiftc.asm: New file.
  8016  
  8017  	* mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and
  8018  	rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n.
  8019  
  8020  	* mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around
  8021  	Solaris assembler bug.
  8022  	* mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise.
  8023  
  8024  	* mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form.
  8025  	* mpn/x86/pentium/aors_n.asm: Likewise.
  8026  	* mpn/x86_64/invert_limb.asm: Likewise.
  8027  
  8028  	* mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code.
  8029  
  8030  	* mpn/x86_64/pentium4/rsh1aors_n.asm: New file.
  8031  
  8032  2010-03-25  Torbjorn Granlund  <tege@gmplib.org>
  8033  
  8034  	* mpn/ia64/add_n_sub_n.asm: New file.
  8035  
  8036  	* mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage.
  8037  	* mpn/generic/toom3_sqr.c: Likewise.
  8038  	* mpn/generic/toom63_mul.c: Likewise.
  8039  
  8040  	* mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c.
  8041  
  8042  2010-03-23  Torbjorn Granlund  <tege@gmplib.org>
  8043  
  8044  	* mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn.
  8045  
  8046  	* mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of
  8047  	aorslsh1_n.asm.
  8048  	* mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm.
  8049  	* mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
  8050  
  8051  2010-03-20  Torbjorn Granlund  <tege@gmplib.org>
  8052  
  8053  	* mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation
  8054  	in the Newton iteration.
  8055  
  8056  2010-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8057  
  8058  	* mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n.
  8059  
  8060  2010-03-20  Torbjorn Granlund  <tege@gmplib.org>
  8061  
  8062  	* mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from
  8063  	last iteration of aorslsh1_n.asm.
  8064  	* mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm.
  8065  	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
  8066  
  8067  2010-03-19  Torbjorn Granlund  <tege@gmplib.org>
  8068  
  8069  	* mpn/x86_64/nano/dive_1.asm: New file.
  8070  
  8071  	* mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU
  8072  	types.  Unconditionally provide code for normalised and unnormalised
  8073  	divisors.  Cleanup labels.
  8074  
  8075  	* mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised
  8076  	divisors.  Cleanup labels.
  8077  
  8078  	* mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and
  8079  	mpn_sublsh_n with correct args.
  8080  
  8081  	* tests/devel/try.c: Use enum for TYPE_*.
  8082  
  8083  	* tests/devel/try.c: Test mpn_sublsh2_n.
  8084  	* tests/refmpn.c (refmpn_sublsh2_n): New function.
  8085  	* tests/tests.h (refmpn_sublsh2_n): Declare.
  8086  
  8087  	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster
  8088  	mpn_addlsh1_n and mpn_sublsh1_n.
  8089  	* mpn/powerpc64/mode64/addlsh1_n.asm: Delete.
  8090  	* mpn/powerpc64/mode64/sublsh1_n.asm: Delete.
  8091  
  8092  2010-03-18  Torbjorn Granlund  <tege@gmplib.org>
  8093  
  8094  	* configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and
  8095  	nm_32_flags.
  8096  
  8097  	* mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed.
  8098  	Misc cleanups.  Add cycle table.
  8099  
  8100  	* mpn/x86_64/copyi.asm: Update cycle table.
  8101  	* mpn/x86_64/copyd.asm: Likewise.
  8102  	* mpn/x86_64/rsh1aors_n.asm: Likewise.
  8103  	* mpn/x86_64/dive_1.asm: Likewise.
  8104  
  8105  	* mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups.  Add cycle table.
  8106  	* mpn/x86/pentium4/sse2/sub_n.asm: Likewise.
  8107  
  8108  2010-03-16  Torbjorn Granlund  <tege@gmplib.org>
  8109  
  8110  	* mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn.
  8111  	* mpn/x86_64/core2/divrem_1.asm: Likewise.
  8112  
  8113  	* tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops.
  8114  
  8115  2010-03-15  Torbjorn Granlund  <tege@gmplib.org>
  8116  
  8117  	* mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
  8118  
  8119  	* mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended
  8120  	bundling.
  8121  	* mpn/ia64/aorslsh1_n.asm: Likewise.
  8122  	* mpn/ia64/dive_1.asm: Likewise.
  8123  
  8124  2010-03-13  Torbjorn Granlund  <tege@gmplib.org>
  8125  
  8126  	* mpn/x86/pentium4/sse2/submul_1.asm: Rewrite.
  8127  
  8128  	* mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code
  8129  	for both mpn_addmul_1 and mpn_submul_1.
  8130  	* mpn/powerpc64/mode64/addmul_1.asm: Remove.
  8131  	* mpn/powerpc64/mode64/submul_1.asm: Remove.
  8132  
  8133  2010-03-11  Niels Möller  <nisse@lysator.liu.se>
  8134  
  8135  	* mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss.
  8136  
  8137  	* mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the
  8138  	JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1.
  8139  
  8140  2010-03-10  Torbjorn Granlund  <tege@gmplib.org>
  8141  
  8142  	* mpn/x86_64/divrem_1.asm: Make fraction code take documented # of
  8143  	cycles.  Annotate code for more CPUs.  Misc cleanups.
  8144  	* mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs.
  8145  
  8146  	* mpn/alpha/ev6/mod_1_4.asm: New file.
  8147  
  8148  	* mpn/ia64/mod_34lsub1.asm: New file.
  8149  
  8150  	* doc/gmp.texi (Language Bindings): Update Python site, add Ruby.
  8151  
  8152  2010-03-10  Niels Möller  <nisse@lysator.liu.se>
  8153  
  8154  	* tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4.
  8155  	* tune/speed.c (routine): Added mpn_jacobi_base_4.
  8156  	* tune/common.c (speed_mpn_jacobi_base_4): New function.
  8157  	* tune/speed.h (speed_mpn_jacobi_base_4): Declare it.
  8158  	* tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c.
  8159  	* tune/jacbase4.c: New file.
  8160  
  8161  	* mpn/generic/jacbase.c (mpn_jacobi_base): New function, for
  8162  	JACOBI_BASE_METHOD 4.
  8163  
  8164  2010-03-09  Niels Möller  <nisse@lysator.liu.se>
  8165  
  8166  	* tests/mpz/t-jac.c (check_large_quotients): Also generate inputs
  8167  	with large quotients and a large gcd.
  8168  
  8169  2010-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8170  
  8171  	* tests/mpz/t-bin.c (randomwalk): New test-generator function.
  8172  
  8173  2010-03-07  Torbjorn Granlund  <tege@gmplib.org>
  8174  
  8175  	* tune/speed.c (routine): Force r argument for several mod_1 calls.
  8176  
  8177  2010-03-06  Torbjorn Granlund  <tege@gmplib.org>
  8178  
  8179  	* mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR.
  8180  	Misc clean up.
  8181  
  8182  	* mpn/x86_64/mod_1_1.asm: New file.
  8183  	* mpn/x86_64/mod_1_2.asm: New file.
  8184  	* mpn/x86_64/mod_1_4.asm: Update cycle counts.
  8185  
  8186  	* tests/tests.h (TESTS_REPS): Fix typo.
  8187  
  8188  2010-03-03  Torbjorn Granlund  <tege@gmplib.org>
  8189  
  8190  	* mpn/x86_64/core2/divrem_1.asm: New file.
  8191  
  8192  2010-02-26  Niels Möller  <nisse@lysator.liu.se>
  8193  
  8194  	* tune/speed.c (routine): Added udiv_qrnnd_preinv3.
  8195  
  8196  	* tune/common.c (speed_udiv_qrnnd_preinv3): New function.
  8197  	* tune/speed.h: Added prototype for it.
  8198  
  8199  2010-02-26  Niels Möller  <nisse@lysator.liu.se>
  8200  
  8201  	* tests/mpz/t-jac.c (check_large_quotients): New test. Currently
  8202  	disabled, since it's quite slow.
  8203  	(mpz_nextprime_step): New function.
  8204  
  8205  2010-02-26  Torbjorn Granlund  <tege@gmplib.org>
  8206  
  8207  	* mpn/pa64/aors_n.asm: Fix typo in last change.
  8208  
  8209  2010-02-25  Niels Möller  <nisse@lysator.liu.se>
  8210  
  8211  	* tests/mpz/t-jac.c (ref_jacobi): New reference implementation,
  8212  	using factorization and legendre symbols computed by powm.
  8213  
  8214  	* tests/devel/try.c (param_init, call): Don't pass negative values
  8215  	for the second argument to mpz_jacobi and refmpz_jacobi.
  8216  
  8217  	* tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive.
  8218  
  8219  	* tests/devel/try.c (param_init): Support mpz_legendre.
  8220  	(choice_array): Added mpz_kronecker (apparently forgotten) and
  8221  	mpz_legendre.
  8222  	(call): Added TYPE_MPZ_LEGENDRE.
  8223  	(try_one): Added support for DATA_SRC1_ODD_PRIME.
  8224  
  8225  	* tests/refmpz.c (refmpz_legendre): Rewrote using powm.
  8226  
  8227  2010-02-25  Torbjorn Granlund  <tege@gmplib.org>
  8228  
  8229  	* config.guess: Make "corei" default for unrecognised Intel P6 CPUs.
  8230  
  8231  	* tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb
  8232  	variables.
  8233  
  8234  	* tests/mpn/t-toom6h.c (COUNT): Define.
  8235  	* tests/mpn/t-toom8h.c (COUNT): Define.
  8236  
  8237  	* tests/mpn/t-div.c: Cast a switch index to placate HP's cc.
  8238  	* tests/mpn/t-bdiv.c: Likewise.
  8239  
  8240  	* mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI.
  8241  
  8242  2010-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8243  
  8244  	* tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos ().
  8245  	* tests/mpf/t-inp_str.c (data): Test also "+" in the exponent.
  8246  
  8247  2010-02-23  Torbjorn Granlund  <tege@gmplib.org>
  8248  
  8249  	* mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc.
  8250  
  8251  	* mpn/generic/sqrtrem.c: Use CNST_LIMB.
  8252  
  8253  2010-02-20  Niels Möller  <nisse@lysator.liu.se>
  8254  
  8255  	* tune/speed.h (mpn_gcd_accel): Deleted prototype.
  8256  	(mpn_hgcd_lehmer): New prototype.
  8257  	(MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h).
  8258  
  8259  	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c.
  8260  	* tune/hgcd_lehmer.c: New file.
  8261  	* tune/gcd_accel.c: Deleted obsolete file.
  8262  
  8263  	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro.
  8264  
  8265  	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function,
  8266  	(mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop
  8267  	around hgcd_step.
  8268  	(mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n).
  8269  
  8270  2010-02-19  Niels Möller  <nisse@lysator.liu.se>
  8271  
  8272  	* Makefile.am (mpn/jacobitab.h): Added the rules needed to
  8273  	generate this file.
  8274  
  8275  	* gen-jacobitab.c: New file.
  8276  
  8277  2010-02-19  Torbjorn Granlund  <tege@gmplib.org>
  8278  
  8279  	* mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop
  8280  	expansions.
  8281  
  8282  2010-02-16  Niels Möller  <nisse@lysator.liu.se>
  8283  
  8284  	* tune/time.c (cgt_works_p): Added rudimentary sanity check for
  8285  	clock_gettime working.
  8286  
  8287  2010-02-15  Niels Möller  <nisse@lysator.liu.se>
  8288  
  8289  	* tune/time.c (speed_time_init): Make use of cycle counter
  8290  	configurable, via the speed_option_cycles_broken flag.
  8291  	* tune/common.c (speed_option_cycles_broken): New global variable.
  8292  	(speed_option_set): Recognize option "cycles-broken".
  8293  
  8294  	* tune/time.c (cycles_works_p): Deleted hack to disable cycle
  8295  	counter on linux. Needs to be replaced by something more
  8296  	selective.
  8297  
  8298  2010-02-11  Niels Möller  <nisse@lysator.liu.se>
  8299  
  8300  	* tune/time.c (speed_time_init): Fix speed_time_string when using
  8301  	clock_gettime.
  8302  	(cycles_works_p): On linux, don't use the cycle counter.
  8303  
  8304  	* tune/Makefile.am: Add $(TUNE_LIBS) when linking programs.
  8305  
  8306  	* configure.in: Check if -lrt is needed for clock_gettime, and if
  8307  	so, add that flag to TUNE_LIBS.
  8308  
  8309  2010-02-07  Torbjorn Granlund  <tege@gmplib.org>
  8310  
  8311  	* tune/tuneup.c (tune_redc): Set min_size and min_is_always when
  8312  	measuring REDC_1_TO_REDC_2_THRESHOLD.
  8313  	(tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD.
  8314  
  8315  	* mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo.
  8316  	* mpn/x86_64/lshsub_n.asm: Likewise.
  8317  
  8318  2010-02-05  Torbjorn Granlund  <tege@gmplib.org>
  8319  
  8320  	* Version 5.0.1 released.
  8321  
  8322  	* mpn/generic/powm.c: Use rp target area for power table computation in
  8323  	order to use less scratch.
  8324  
  8325  	* mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical
  8326  	mpn_mulmod_bnm1_itch call.
  8327  
  8328  	* mpn/generic/mu_div_qr.c: Remove always true #if.
  8329  	* mpn/generic/mu_divappr_q.c: Likewise.
  8330  	* mpn/generic/mu_bdiv_q.c: Likewise.
  8331  	* mpn/generic/mu_bdiv_qr.c: Likewise.
  8332  
  8333  2010-02-01  Torbjorn Granlund  <tege@gmplib.org>
  8334  
  8335  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
  8336  	Bump version info.
  8337  
  8338  	* mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2.
  8339  	* mpn/x86/p6/gmp-mparam.h: Likewise.
  8340  	* mpn/x86/p6/mmx/gmp-mparam.h: Likewise.
  8341  	* mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken.
  8342  
  8343  2010-01-29  Torbjorn Granlund  <tege@gmplib.org>
  8344  
  8345  	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m,
  8346  	k and rec; add argument sqr.  Don't call mpn_mul_fft_decompose here,
  8347  	instead do that in all callers.
  8348  	(mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not
  8349  	explicit alloc/free.
  8350  	(mpn_fft_div_2exp_modF): Avoid a scalar division.
  8351  	(mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k.
  8352  	(mpn_fft_mul_2exp_modF): Make function more symmetrical.
  8353  
  8354  2010-01-27  Torbjorn Granlund  <tege@gmplib.org>
  8355  
  8356  	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite.
  8357  	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable
  8358  	better mulmod itch estimate.
  8359  	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
  8360  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
  8361  	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
  8362  
  8363  2010-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8364  
  8365  	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed
  8366  	estimate, enabled a conservative one.
  8367  	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
  8368  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
  8369  	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
  8370  
  8371  2010-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8372  
  8373  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to
  8374  	reduce memory usage.
  8375  	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
  8376  	(mpn_sqrmod_bnm1_next_size): New function.
  8377  
  8378  	* gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now.
  8379  	(mpn_sqrmod_bnm1_itch): New inline function.
  8380  	(mpn_sqrmod_bnm1_next_size): Declaration and mangling.
  8381  	* mpn/generic/nussbaumer_mul.c: Use the new functions.
  8382  
  8383  	* mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for
  8384  	mpn_mulmod_bnm1_itch.
  8385  	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
  8386  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
  8387  	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
  8388  	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise.
  8389  	* mpn/generic/binvert.c (mpn_binvert_itch): Likewise.
  8390  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise.
  8391  	(SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise.
  8392  
  8393  	* tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test
  8394  	reduced memory usage.
  8395  
  8396  2010-01-25  Torbjorn Granlund  <tege@gmplib.org>
  8397  
  8398  	* tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but
  8399  	also inserting a sentinel.
  8400  	(fftmes): Use INSERT_FFTTAB for inserting new measurements.
  8401  	Limit k range to best_k - 4 ... best_k + 4.
  8402  
  8403  2010-01-23  Torbjorn Granlund  <tege@gmplib.org>
  8404  
  8405  	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.
  8406  	(__GMP_MP_RELEASE): New macro.
  8407  
  8408  	* mpf/div.c: Rewrite to use mpn_div_q.
  8409  
  8410  2010-01-21  Torbjorn Granlund  <tege@gmplib.org>
  8411  
  8412  	* Add FFT_TABLE3 tables for a basic set of machines.
  8413  
  8414  	* configure.in: Use -mtune=nocona for 64-bit pentium4.
  8415  
  8416  	* config.guess: Recognise many more Intel processors.
  8417  
  8418  	* tune/common.c: Whitespace cleanup.
  8419  	(speed_mpn_matrix22_mul): Rewrite.
  8420  
  8421  2010-01-21  Niels Möller  <nisse@lysator.liu.se>
  8422  
  8423  	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take
  8424  	advantage of new mpn_mulmod_bnm1 interface, to reduce allocation.
  8425  
  8426  	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to
  8427  	mpn_mulmod_bnm1 interface change.
  8428  
  8429  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change,
  8430  	in case an + bn < rn, only write an + bn output limbs. New input
  8431  	requirement, an + bn > rn/2.
  8432  	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding
  8433  	changes.
  8434  
  8435  2010-01-19  Torbjorn Granlund  <tege@gmplib.org>
  8436  
  8437  	* tune/tuneup.c (fftmes): Round up initial n according to initial k.
  8438  	Limit k to 24 in loop.  Remove an obsolete always-true condition.
  8439  	Remove a redundant trace printout.
  8440  
  8441  2010-01-18  Torbjorn Granlund  <tege@gmplib.org>
  8442  
  8443  	* tune/tuneup.c (fftmes): New function
  8444  	(fft): Rewrite.
  8445  	(mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c.
  8446  	(fftfill): New function, code taken from mul_fft.c (mpn_mul_fft).
  8447  	(cached_measure): New function.
  8448  
  8449  	* gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c.
  8450  	(MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup
  8451  	builds.
  8452  	(FFT_TABLE3_SIZE): Increase value for tuneup builds.
  8453  
  8454  	* mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3").
  8455  	Misc cleanups to old table type code.
  8456  
  8457  2010-01-16  Torbjorn Granlund  <tege@gmplib.org>
  8458  
  8459  	* mpn/x86_64/darwin.m4: Fix typo in last change.
  8460  
  8461  2010-01-15  Torbjorn Granlund  <tege@gmplib.org>
  8462  
  8463  	* gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C.
  8464  
  8465  	* gmp-impl.h (GMP_LIMB_BYTES): New define.
  8466  
  8467  	* mpn/x86_64/darwin.m4 (LEA): New define.
  8468  
  8469  	* mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT.
  8470  	Rename and globalise it to work around Mac OS bug.
  8471  
  8472  	With Philip McLaughlin:
  8473  	* mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but
  8474  	use DEF_OBJECT...END_OBJECT.
  8475  	Keep stack pointer at ABI mandated alignment over call.
  8476  
  8477  2010-01-12  Torbjorn Granlund  <tege@gmplib.org>
  8478  
  8479  	* tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and
  8480  	mpn_dc_div_qr_n.
  8481  	* tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n):
  8482  	Remove now unused functions.
  8483  	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N,
  8484  	SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove
  8485  	now unused macros.
  8486  
  8487  	* mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function.
  8488  
  8489  	* ltmain.sh: Upgrade from 1.5.24 to 2.2.6b.
  8490  	* ylwrap: New file.
  8491  	* .bootstrap: Remove explicit versions.
  8492  
  8493  	* doc/gmp.texi (Block-wise Barrett Division): New node.
  8494  
  8495  	* mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build
  8496  	problems.
  8497  
  8498  2010-01-11  Torbjorn Granlund  <tege@gmplib.org>
  8499  
  8500  	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size
  8501  	restrictions.
  8502  	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
  8503  	(speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size
  8504  	limits for SPEED_ROUTINE_MPN_PI1_DIV.
  8505  
  8506  	* tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and
  8507  	mpn_dcpi1_divappr_q.
  8508  
  8509  2010-01-08  Torbjorn Granlund  <tege@gmplib.org>
  8510  
  8511  	* Version 5.0.0 released.
  8512  
  8513  	* mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb
  8514  	everywhere.
  8515  
  8516  2010-01-07  Torbjorn Granlund  <tege@gmplib.org>
  8517  
  8518  	* Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines.
  8519  
  8520  	* mpn/generic/mu_div_q.c: Account for divisor truncation error as well
  8521  	as mpn_mu_divappr_q's error.
  8522  
  8523  	* mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a
  8524  	high limb.
  8525  
  8526  	* tests/mpn/t-bdiv.c: Move a random call for debugability.
  8527  	* tests/mpn/t-div.c: Likewise.
  8528  
  8529  	* mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code.
  8530  
  8531  	* mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation
  8532  	subtract.
  8533  	* mpn/generic/mu_divappr_q.c: Likewise.
  8534  
  8535  	* mpn/generic/mu_divappr_q.c
  8536  	(mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant.
  8537  	* gmp-impl.h: Likewise.
  8538  
  8539  	* perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of
  8540  	mpn_bdiv_q (with too little scratch space!).
  8541  
  8542  	From Niels Möller:
  8543  	* tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable
  8544  	tn.
  8545  
  8546  	* mpn/minithres/gmp-mparam.h: Add all lately defined thresholds.
  8547  
  8548  	* mpn/generic/div_q.c: Use SB division for small quotients as well as
  8549  	small divisors.  Fix typo in itch call.
  8550  
  8551  2010-01-06  Niels Möller  <nisse@lysator.liu.se>
  8552  
  8553  	* tests/mpn/t-div.c (check_one): Checking based on multiplication,
  8554  	refmpn_mul, rather than refmpn_tdiv_qr.
  8555  
  8556  2010-01-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8557  
  8558  	* mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t.
  8559  
  8560  2010-01-06  Torbjorn Granlund  <tege@gmplib.org>
  8561  
  8562  	* gmp-h.in (__GNU_MP__): Bump.
  8563  	(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL):
  8564  	Bump version info.
  8565  	* mp-h.in (__GNU_MP__): Bump.
  8566  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
  8567  	Bump version info.
  8568  
  8569  	* doc/gmp.texi: Rewrite mpn_gcdext text.  Remove some out-of-date
  8570  	text in Algorithms chapter.
  8571  
  8572  	* mpn/generic/div_q.c: Properly handle np=scratch.  Fix critical typo
  8573  	in final adjustment code.  Misc cleanups.
  8574  
  8575  	* mpn/generic/rootrem.c: Use mpn_div_q.
  8576  	* mpz/tdiv_q.c: Likewise.
  8577  
  8578  	* tests/mpn/t-div.c: Test mpn_div_q.
  8579  	(SIZE_LOG): Up to 17.
  8580  
  8581  	* mpn/generic/div_q.c: New file.
  8582  	* configure.in (gmp_mpn_functions): Add div_q.
  8583  
  8584  	* mpn/generic/mu_div_q.c: Actually declare dividend constant.
  8585  
  8586  2010-01-04  Torbjorn Granlund  <tege@gmplib.org>
  8587  
  8588  	* tune/tuneup.c (fft): Separate tuning of modf and full products.
  8589  	(struct fft_param_t): New field, mul_modf_function.
  8590  	(tune_fft_sqr): Fix typo.
  8591  	(tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field.
  8592  	* tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions.
  8593  
  8594  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up.
  8595  
  8596  	* mpn/generic/mul.c: Simplify rational expression.
  8597  
  8598  	* gmp-impl.h: Cleanup threshold variables; remove obsolete ones and
  8599  	make all possibly needed definitions for existing ones.
  8600  	* tune/tuneup.c (tune_mul): Write fractions-compensated values to
  8601  	threshold variables.
  8602  
  8603  2010-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
  8604  
  8605  	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
  8606  	mpn_toom43_mul.
  8607  
  8608  	* mpn/generic/toom_interpolate_6pts.c: Small reorganisation.
  8609  
  8610  2010-01-03  Torbjorn Granlund  <tege@gmplib.org>
  8611  
  8612  	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
  8613  	INV_MULMOD_BNM1_THRESHOLD/2 instead.
  8614  
  8615  	* gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default
  8616  	here...
  8617  	* mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here.
  8618  
  8619  	* tests/mpn/t-div.c: Rewrite operand generation code.
  8620  
  8621  2010-01-02  Torbjorn Granlund  <tege@gmplib.org>
  8622  
  8623  	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
  8624  	INV_MULMOD_BNM1_THRESHOLD.
  8625  
  8626  2010-01-02  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8627  
  8628  	* mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more
  8629  	efficiently.
  8630  	* mpn/generic/mu_div_q.c: Likewise.
  8631  
  8632  	* mpn/generic/invert.c: Remove duplicated code.
  8633  
  8634  2010-01-01  Torbjorn Granlund  <tege@gmplib.org>
  8635  
  8636  	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0.
  8637  
  8638  	* mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1.  Clean up
  8639  	scratch usage.  Improve itch functions.
  8640  	* mpn/generic/mu_divappr_q.c: Likewise.
  8641  	* mpn/generic/mu_bdiv_qr.c: Likewise.
  8642  	* mpn/generic/mu_div_q.c: Likewise.
  8643  
  8644  	* mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs.
  8645  	* mpn/generic/dcpi1_bdiv_q.c: Likewise.
  8646  
  8647  	* tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c.
  8648  	Increase COUNT to 500.
  8649  
  8650  	* tests/mpn/t-div.c: Avoid generating too small test operands.
  8651  	Move SB suppression limit downwards.  Increase COUNT to 200.
  8652  
  8653  2009-12-31  Torbjorn Granlund  <tege@gmplib.org>
  8654  
  8655  	* mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case.
  8656  
  8657  	* tests/tests.h (TESTS_REPS): New macro.
  8658  	* tests/mpz/dive.c: Use larger operands, decrease default reps, use
  8659  	TESTS_REPS.
  8660  	* tests/mpz/convert.c: Likewise.
  8661  	* tests/mpz/t-sqrtrem.c: Likewise.
  8662  	* tests/mpz/reuse: Likewise.
  8663  	* tests/mpz/t-root.c: Likewise.
  8664  	* tests/mpz/t-tdiv.c: Likewise.
  8665  	* tests/mpz/t-gcd.c: Likewise.
  8666  	* tests/mpz/t-powm.c: Likewise.
  8667  
  8668  2009-12-31  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8669  
  8670  	* mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow.
  8671  	* mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise.
  8672  
  8673  	* mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more,
  8674  	simply consider UNLIKELY any unexpected size.
  8675  
  8676  2009-12-31  Torbjorn Granlund  <tege@gmplib.org>
  8677  
  8678  	* tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function.
  8679  	(tune_mu_div): Use it.
  8680  
  8681  2009-12-30  Torbjorn Granlund  <tege@gmplib.org>
  8682  
  8683  	* tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div)
  8684  	(tune_dc_div): Clear global s.r to make speed functions do 2n/n.
  8685  
  8686  	* tune/speed.c (routine): New entries for mpn_mu_div_qr and
  8687  	mpn_mupi_div_qr.  Allow .r parameter for mpn_sbpi1_div_qr,
  8688  	mpn_dcpi1_div_qr.
  8689  	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR)
  8690  	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter.
  8691  
  8692  	* tests/mpz/t-tdiv.c: Increase operands size again.
  8693  
  8694  	* mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer.
  8695  
  8696  	* mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary
  8697  	alloc.
  8698  
  8699  2009-12-29  Torbjorn Granlund  <tege@gmplib.org>
  8700  
  8701  	* tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD.
  8702  	* tune/speed.h (struct speed_params): Allow 3 source operands.
  8703  	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro.
  8704  	* tune/common.c (speed_mpn_mupi_div_qr): New function.
  8705  
  8706  	* mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr.
  8707  
  8708  	* tests/mpz/t-tdiv.c: Use larger test operands.
  8709  
  8710  	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1.
  8711  
  8712  	* mpz/mul.c: Call mpn_sqr directly.  Use PTR,SIZ,ALLOC.
  8713  
  8714  	* tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require
  8715  	this.
  8716  
  8717  	* tests/mpn/t-div.c: Call mu_div functions with operands that generate
  8718  	a high quotient limb.
  8719  
  8720  	* mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb,
  8721  	to let dividend argument be constant, and as a general cleanup.
  8722  	* mpn/generic/mu_divappr_q.c: Likewise.
  8723  	* mpn/generic/mu_div_q.c: Likewise.
  8724  	* gmp-impl.h: Update declarations of changed functions.
  8725  
  8726  	* mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space
  8727  	when caller passed NULL.
  8728  
  8729  2009-12-28  Torbjorn Granlund  <tege@gmplib.org>
  8730  
  8731  	* mpn/generic/toom_couple_handling.c: Prefix name with mpn_.
  8732  	* gmp-impl.h: Likewise.
  8733  	* mpn/generic/toom63_mul.c: Likewise.
  8734  	* mpn/generic/toom6_sqr.c: Likewise.
  8735  	* mpn/generic/toom6h_mul.c: Likewise.
  8736  	* mpn/generic/toom8_sqr.c: Likewise.
  8737  	* mpn/generic/toom8h_mul.c: Likewise.
  8738  
  8739  	* configure.in (gmp_mpn_functions_optional) Move "com" from here...
  8740  	(gmp_mpn_functions): ...to here.
  8741  	* mpn/generic/com.c: New file.
  8742  	* (mpn_com): New name for mpn_com_n.  Make public.
  8743  	* (mpn_neg): Analogous changes.
  8744  
  8745  	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor.
  8746  
  8747  	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
  8748  	mpn_lshiftc.
  8749  
  8750  	* tests/devel/try.c: Test mpn_lshiftc.
  8751  	* tests/refmpn.c (refmpn_com): New function.
  8752  	(refmpn_lshiftc): Likewise.
  8753  
  8754  	* configure.in (gmp_mpn_functions_optional) Move lshiftc from here...
  8755  	(gmp_mpn_functions): ...to here.
  8756  	* mpn/generic/lshiftc.c: New file.
  8757  	* mpn/x86_64/lshiftc.asm: New file.
  8758  	* mpn/x86_64/core2/lshiftc.asm: New file.
  8759  	* mpn/generic/mul_fft.c (mpn_lshiftc): Remove.
  8760  
  8761  	* mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance.
  8762  	* mpn/x86_64/core2/rshift.asm: Likewise.
  8763  
  8764  2009-12-27  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8765  
  8766  	* mpn/generic/mul.c: Use toom6h and toom8h for almost balanced.
  8767  
  8768  	* mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in
  8769  	Toom-8 range.
  8770  
  8771  2009-12-27  Torbjorn Granlund  <tege@gmplib.org>
  8772  
  8773  	* (mpn_sqr): New name for mpn_sqr_n.  Many files affected.
  8774  
  8775  	* tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD.
  8776  	(tune_invertappr, tune_invert, tune_binvert): Let max_size default.
  8777  
  8778  	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions.
  8779  	* tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro.
  8780  	(SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise.
  8781  	(SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise.
  8782  	(SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise.
  8783  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c.
  8784  	* tune/common.c (speed_mpn_mu_div_qr): New function.
  8785  	(speed_mpn_mu_divappr_q): Likewise.
  8786  	(speed_mpn_mu_div_q): Likewise.
  8787  	(speed_mpn_mu_bdiv_q): Likewise.
  8788  	(speed_mpn_mu_bdiv_qr): Likewise.
  8789  
  8790  	* mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0
  8791  	values.
  8792  
  8793  	* gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove.
  8794  	(BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of
  8795  	MODEXACT_1_ODD_THRESHOLD.
  8796  	(MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD.
  8797  	* mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise.
  8798  	* tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD;
  8799  	Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1.
  8800  	(tuned_speed_mpn_mod_1): Remove variable.
  8801  	(tune_mod_1): Fix thinkos.  Suppress printing of "always" etc.
  8802  	(all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom
  8803  	depends on some of them.
  8804  
  8805  	* mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for
  8806  	TOOM22_MUL_MN_REC.
  8807  
  8808  2009-12-26  Niels Möller  <nisse@lysator.liu.se>
  8809  
  8810  	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax
  8811  	requirements a bit.
  8812  
  8813  	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on
  8814  	input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high
  8815  	limbs of the evaluated values in scalar variables.
  8816  
  8817  	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove
  8818  	unused variables.
  8819  
  8820  	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use
  8821  	of mpn_addsub_n which should be mpn_add_n_sub_n.
  8822  
  8823  2009-12-26  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8824  
  8825  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn).
  8826  
  8827  	* gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine.
  8828  	(mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine.
  8829  	* mpn/generic/mul_n.c: Use renamed _itch macros.
  8830  
  8831  2009-12-25  Niels Möller  <nisse@lysator.liu.se>
  8832  
  8833  	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements.
  8834  	* gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed
  8835  	by toom32 itself, and also the pointwise multiplications are
  8836  	currently mpn_mul_n with no supplied scratch.
  8837  	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized
  8838  	interpolation to use less scratch space. No longer supports the
  8839  	most extreme size ratios.
  8840  
  8841  2009-12-25  Torbjorn Granlund  <tege@gmplib.org>
  8842  
  8843  	* tune/tuneup.c (tune_preinv_mod_1): Purge.
  8844  	(tune_mod_1): Use speed_mpn_mod_1_tune for
  8845  	PREINV_MOD_1_TO_MOD_1_THRESHOLD
  8846  
  8847  	* mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly.  Don't use full
  8848  	precision in mpn_sbpi1_divappr_q call.  Misc cleanup.
  8849  
  8850  	* tune/tuneup.c (tune_mod_1): Add a check_size for
  8851  	PREINV_MOD_1_TO_MOD_1_THRESHOLD.
  8852  
  8853  2009-12-24  Torbjorn Granlund  <tege@gmplib.org>
  8854  
  8855  	* tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
  8856  	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
  8857  	* tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
  8858  	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
  8859  
  8860  	* gmp-impl.h (USE_PREINV_MOD_1): Remove.
  8861  	(MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in
  8862  	terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically
  8863  	using USE_PREINV_MOD_1).
  8864  	* mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates.
  8865  
  8866  	* tune/tuneup.c (tune_mod_1): Rewrite.
  8867  	* gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New.
  8868  	(MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD.
  8869  	(MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD.
  8870  	(MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD.
  8871  	* mpn/generic/mod_1.c: Corresponding updates.
  8872  
  8873  2009-12-24  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8874  
  8875  	* mpn/generic/mul_n.c: Use also toom6h and toom8h.
  8876  	* mpn/generic/sqr_n.c: Use also toom6 and toom8.
  8877  	* gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half.
  8878  	* tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds.
  8879  
  8880  2009-12-24  Torbjorn Granlund  <tege@gmplib.org>
  8881  
  8882  	* mpn/generic/mod_1_4.c: Get ASSERT right.
  8883  	* mpn/generic/mod_1_3.c: Likewise.
  8884  	* mpn/generic/mod_1_2.c: Likewise.
  8885  
  8886  	* mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native
  8887  	mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX.
  8888  
  8889  2009-12-23  Marco Bodrato <bodrato@mail.dm.unipi.it>
  8890  
  8891  	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
  8892  	mpn_toom8h_mul and mpn_toom8_sqr speed.
  8893  
  8894  	* mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs.
  8895  
  8896  	* mpn/generic/toom8h_mul.c: New file.
  8897  	* mpn/generic/toom8_sqr.c: New file.
  8898  	* mpn/generic/toom_interpolate_16pts.c: New file.
  8899  	* gmp-impl.h: Provide corresponding declarations.
  8900  	* configure.in (gmp_mpn_functions): List toom_interpolate_16pts,
  8901  	toom8h_mul, and toom8h_sqr.
  8902  	* tests/mpn/t-toom8h.c: New test program.
  8903  
  8904  	* mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul.
  8905  	* mpn/generic/toom6h_mul.c: Removed _sqr.
  8906  
  8907  	* mpn/generic/mulmod_bnm1.c: Nailify CRT.
  8908  	* mpn/generic/sqrmod_bnm1.c: Likewise.
  8909  
  8910  	* mpn/generic/mullo_n.c: Split dc_mullo_n function;
  8911  	ALLOC memory at once.
  8912  
  8913  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update.
  8914  
  8915  	* mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts.
  8916  	* mpn/generic/toom_interpolate_12pts.c: Likewise.
  8917  
  8918  	* mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2.
  8919  	* mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q.
  8920  
  8921  	* mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3.
  8922  	* mpn/generic/toom6h_mul.c: Avoid obsolete _itch function.
  8923  
  8924  2009-12-23  Torbjorn Granlund  <tege@gmplib.org>
  8925  
  8926  	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
  8927  	mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p.
  8928  
  8929  	* tests/mpz/t-powm.c: Test mpz_powm_sec.
  8930  
  8931  	* mpz/powm_sec.c: New file.
  8932  	* gmp-h.in: Declare it.
  8933  	* Makefile.am, mpz/Makefile.am: Compile it.
  8934  	* doc/gmp.texi: Document it.
  8935  
  8936  	* mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function.
  8937  	(mpn_powm_sec): Use passed scratch, no local allocation.
  8938  	Allow exp argument = 1.
  8939  	(win_size): Start loop from 1.
  8940  
  8941  	* mpn/generic/powm.c (win_size): Start loop from 1.
  8942  
  8943  2009-12-22  Torbjorn Granlund  <tege@gmplib.org>
  8944  
  8945  	* tests/mpn/t-div.c: New file.
  8946  	* tests/mpn/Makefile.am: Compile it.
  8947  
  8948  	* mpn/generic/mu_divappr_q.c: Handle quotient overflow.
  8949  
  8950  	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function.
  8951  
  8952  2009-12-22  Niels Möller  <nisse@lysator.liu.se>
  8953  
  8954  	* mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2.  Intended to change
  8955  	nothing after preprocessing.
  8956  
  8957  	* mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2,
  8958  	avoid using memory locations as output parameters, and revert to
  8959  	explicitly copying n1 and n0 to memory.
  8960  
  8961  	* gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the
  8962  	same code as was used before the introduction of this macro.
  8963  	Eliminated some local variables, instead do multiple updates to
  8964  	the output parameters.
  8965  
  8966  2009-12-22  Torbjorn Granlund  <tege@gmplib.org>
  8967  
  8968  	* tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid
  8969  	invalid recursive sizes.
  8970  
  8971  	* tests/mpn/t-bdiv.c: Get itch function calls right.
  8972  
  8973  	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite.
  8974  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify.
  8975  
  8976  	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate.
  8977  	(mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD.
  8978  
  8979  2009-12-18  Niels Möller  <nisse@lysator.liu.se>
  8980  
  8981  	* tests/mpn/t-bdiv.c: Add red-zones.
  8982  
  8983  2009-12-21  Torbjorn Granlund  <tege@gmplib.org>
  8984  
  8985  	* mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0.
  8986  
  8987  	* mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial
  8988  	quotient block (code block copied from dcpi1_div_qr.c).
  8989  
  8990  	* mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of
  8991  	GMP_NUMB_MAX.  Remove an impossible qn = 0 case.
  8992  
  8993  	* mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1.
  8994  
  8995  	* mpn/generic/mul.c: Put back call to mpn_mul_n.
  8996  
  8997  	* tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to
  8998  	dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n.
  8999  
  9000  	* mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn.
  9001  	* mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3.
  9002  	* mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3.
  9003  
  9004  	* mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from
  9005  	mpn_bdiv_q_1_pi1.
  9006  	* All references changed.
  9007  
  9008  	* configure.in: Add --enable-old-fft-full.
  9009  	* tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on
  9010  	WANT_OLD_FFT_FULL.
  9011  	* tune/common.c (speed_mpn_mul_fft_full)
  9012  	(speed_mpn_mul_fft_full_sqr): Likewise.
  9013  	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff
  9014  	WANT_OLD_FFT_FULL.
  9015  
  9016  2009-12-21  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9017  
  9018  	* gmp-impl.h (mpn_toom6h_mul_itch): New inline function.
  9019  	(MUL_TOOM6H_THRESHOLD): Default value.
  9020  	(SQR_TOOM6_THRESHOLD): Default value.
  9021  	* mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h.
  9022  	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
  9023  	mpn_toom6h_mul and mpn_toom6_sqr speed.
  9024  
  9025  	* mpn/generic/toom63_mul.c: Remove unused TMP_*.
  9026  
  9027  	* mpn/generic/toom_eval_pm2rexp.c: New file.
  9028  	* gmp-impl.h: Provide corresponding declaration.
  9029  	* configure.in (gmp_mpn_functions): List toom_eval_pm2rexp.
  9030  	* mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp.
  9031  
  9032  	* mpn/generic/toom_couple_handling.c: New file, helper function
  9033  	for high degree Toom.
  9034  	* gmp-impl.h: Provide corresponding declaration.
  9035  	* configure.in (gmp_mpn_functions): List toom_couple_handling.
  9036  	* mpn/generic/toom6h_mul.c: Use shared toom_couple_handling.
  9037  	* mpn/generic/toom63_mul.c: Likewise.
  9038  
  9039  	* mpn/generic/toom6h_mul.c: New file.
  9040  	* mpn/generic/toom_interpolate_12pts.c: New file.
  9041  	* gmp-impl.h: Provide corresponding declarations.
  9042  	* configure.in (gmp_mpn_functions): List toom_interpolate_12pts,
  9043  	toom6h_mul.
  9044  	* tests/mpn/t-toom6h.c: New test program.
  9045  
  9046  	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul.
  9047  	* tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise.
  9048  
  9049  2009-12-20  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9050  
  9051  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT.
  9052  	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
  9053  
  9054  2009-12-20  Torbjorn Granlund  <tege@gmplib.org>
  9055  
  9056  	* Change all bit counts for bignums to use mp_bitcnt_t.
  9057  
  9058  	* mpn/generic/bdivmod.c: File removed.  All references purged.
  9059  
  9060  	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable.
  9061  
  9062  	* gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul.
  9063  	* mpn/generic/mul.c: Refer mpn_fft_mul.
  9064  	* mpn/generic/mul_n.c: Likewise.
  9065  	* mpn/generic/sqr_n.c: Likewise.
  9066  	* mpn/generic/mullo_n.c: Likewise.
  9067  
  9068  	* mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by
  9069  	Marco.  Use TMP_SALLOC_LIMBS in more places.  Clean up ws allocation.
  9070  
  9071  2009-12-19  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9072  
  9073  	* mpn/generic/toom_interpolate_8pts.c: Nailify.
  9074  
  9075  2009-12-19  Torbjorn Granlund  <tege@gmplib.org>
  9076  
  9077  	* mpn/generic/mul.c: Major rewrite.  Use toom43, toom53, toom63.
  9078  	Call mpn_nussbaumer_mul for largest operands.
  9079  
  9080  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro.
  9081  	(SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro.
  9082  	(SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro.
  9083  	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro.
  9084  	(SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro.
  9085  	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro.
  9086  	* tune/common.c (speed_mpn_toom63_mul): New function.
  9087  	(speed_mpn_toom32_for_toom43_mul): New function.
  9088  	(speed_mpn_toom43_for_toom32_mul): New function.
  9089  	(speed_mpn_toom32_for_toom53_mul): New function.
  9090  	(speed_mpn_toom53_for_toom32_mul): New function.
  9091  	(speed_mpn_toom42_for_toom53_mul): New function.
  9092  	(speed_mpn_toom53_for_toom42_mul): New function.
  9093  	* tune/tuneup.c (tune_mul_n): New name for old tune_mul.
  9094  	(tune_sqr_n): New name for old tune_sqr.
  9095  	(tune_mul): New function, for unbalanced multiplication.
  9096  	* gmp-impl.h: Provide declarations for corresponding threshold vars.
  9097  
  9098  	* gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare.
  9099  	* mpn/asm-defs.m4: Likewise.
  9100  	* configure.in: Add corresponding HAVE_NATIVEs.
  9101  	* mpn/x86_64/rsh1aors_n.asm: Add _nc entry point.
  9102  
  9103  2009-12-18  Niels Möller  <nisse@lysator.liu.se>
  9104  
  9105  	* mpz/divexact.c: Rewrite to use mpn_divexact.
  9106  
  9107  	* mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused
  9108  	variables.
  9109  
  9110  	* mpn/generic/toom52_mul.c (mpn_toom52_mul)
  9111  	[HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a
  9112  	compiler warning.
  9113  
  9114  	* gmp-impl.h (gmp_pi1_t): Eliminated inv21 member.
  9115  	(invert_pi1): ...and don't store it here.
  9116  
  9117  	* mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified
  9118  	calculation of block size n.
  9119  	* gmp-impl.h (mpn_toom63_mul_itch): Likewise.
  9120  
  9121  	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed
  9122  	output asserts.
  9123  
  9124  2009-12-18  Torbjorn Granlund  <tege@gmplib.org>
  9125  
  9126  	* tests/mpn/t-toom63.c: New test program.
  9127  
  9128  2009-12-18  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9129  
  9130  	* mpn/generic/invert.c: Nailify.
  9131  	* mpn/generic/invertappr.c: Nailify.
  9132  	* mpn/generic/mulmod_bnm1.c: Nailify.
  9133  	* mpn/generic/sqrmod_bnm1.c: Nailify.
  9134  
  9135  	* tests/mpn/t-invert.c: New test program.
  9136  
  9137  	* mpn/generic/toom63_mul.c: New file.
  9138  	* mpn/generic/toom_interpolate_8pts.c: New file.
  9139  	* gmp-impl.h: Provide corresponding declarations.
  9140  	* configure.in (gmp_mpn_functions): List toom_interpolate_8pts and
  9141  	toom63_mul.
  9142  
  9143  2009-12-17  Torbjorn Granlund  <tege@gmplib.org>
  9144  
  9145  	* mpn/generic/mul.c: Move allocation of ws to where it is used.
  9146  	Identify toom22, 32, 42, in that order (in two places).  Use midline
  9147  	between toom22, 32, 42.
  9148  	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also
  9149  	mpn_toom32_mul.
  9150  
  9151  	* doc/gmp.texi: Update References section.  Update Contributors
  9152  	section.  Misc updates.
  9153  
  9154  	* gmp-impl.h: Renew default values for all THRESHOLDs.
  9155  
  9156  2009-12-17  Niels Möller  <nisse@lysator.liu.se>
  9157  
  9158  	* mpn/generic/divexact.c (mpn_divexact): Don't require that the
  9159  	dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When
  9160  	shifting, allocate and process only the low qn+1 limbs. Eliminated
  9161  	code for the impossible case nn < qn.
  9162  
  9163  	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input
  9164  	asserts.
  9165  
  9166  	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that
  9167  	the initial quotient block is a single limb, use 3/2 division,
  9168  	thereby eliminating the only use of gmp_pi1_t->inv21.
  9169  
  9170  2009-12-17  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9171  
  9172  	* mpn/generic/invert.c: Added some comment.
  9173  	* mpn/generic/invertappr.c: Slightly better threshold handling.
  9174  	* gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200.
  9175  
  9176  	* mpn/generic/nussbaumer_mul.c: New file.
  9177  	* configure.in (gmp_mpn_functions): Add nussbaumer_mul.
  9178  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul.
  9179  	* gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling.
  9180  	* tune/speed.h (speed_mpn_nussbaumer_mul): Declare function.
  9181  	* tune/common.c (speed_mpn_nussbaumer_mul): New function.
  9182  	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul.
  9183  
  9184  	* mpn/generic/sqrmod_bnm1.c: New file.
  9185  	* configure.in (gmp_mpn_functions): Add sqrmod_bnm1.
  9186  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1.
  9187  	* gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling.
  9188  	(SQRMOD_BNM1_THRESHOLD): support for the new threshold.
  9189  	* tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function.
  9190  	* tune/common.c (speed_mpn_sqrmod_bnm1): New function.
  9191  	* tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1.
  9192  	* tests/mpn/t-mulmod_bnm1.c: Attribution.
  9193  	* tests/mpn/t-sqrmod_bnm1.c: New test file.
  9194  	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1.
  9195  
  9196  	* tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD.
  9197  
  9198  	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul,
  9199  	use squaring if operands coincide.
  9200  	* tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function.
  9201  	* tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function.
  9202  	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr.
  9203  
  9204  2009-12-17  Torbjorn Granlund  <tege@gmplib.org>
  9205  
  9206  	* mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite.
  9207  
  9208  2009-12-16  Torbjorn Granlund  <tege@gmplib.org>
  9209  
  9210  	* tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul
  9211  	instead of refmpn_mul_basecase.
  9212  	* tests/mpn/toom-shared.h: Likewise.
  9213  	* tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise.
  9214  
  9215  	* minithres/gmp-mparam.h: Add new thresholds, trim old values.
  9216  
  9217  	* mpn/generic/powm.c: Use mp_bitcnt_t for bit counts.
  9218  	Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in
  9219  	non-WANT_REDC_2 INNERLOOP expansion code.
  9220  	* mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts.
  9221  
  9222  2009-12-16  Niels Möller  <nisse@lysator.liu.se>
  9223  
  9224  	* tests/mpz/t-gcd.c (main): Added test case to exercise the
  9225  	unlikely u0 == u1 case in mpn_gcdext_lehmer_n.
  9226  
  9227  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT
  9228  	right.
  9229  
  9230  2009-12-16  Torbjorn Granlund  <tege@gmplib.org>
  9231  
  9232  	* tests/mpz/t-mul.c: Misc cleanups.
  9233  	(mul_basecase): Remove.
  9234  	(ref_mpn_mul): Remove.
  9235  	* tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's
  9236  	ref_mpn_mul.
  9237  	(refmpn_mullo_n): Add a missing free.
  9238  
  9239  	* tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr,
  9240  	mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and
  9241  	mpn_{sb,dc}pi1_bdiv_q.
  9242  
  9243  	* mpn/generic/invertappr.c: New file, meat from invert.c.
  9244  	* mpn/generic/invert.c: Leave just mpn_invert.c.
  9245  	* configure.in (gmp_mpn_functions): Add invertappr.
  9246  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c.
  9247  	* gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros.
  9248  
  9249  2009-12-15  Torbjorn Granlund  <tege@gmplib.org>
  9250  
  9251  	* mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right.
  9252  
  9253  2009-12-15  Niels Möller  <nisse@lysator.liu.se>
  9254  
  9255  	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step
  9256  	towards nail support.
  9257  
  9258  2009-12-15  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9259  
  9260  	* gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling.
  9261  	* mpn/generic/mulmod_bnm1.c: Comment representation of class [0].
  9262  
  9263  2009-12-14  Niels Möller  <nisse@lysator.liu.se>
  9264  
  9265  	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use
  9266  	udiv_qr_3by2.
  9267  
  9268  2009-12-14  Torbjorn Granlund  <tege@gmplib.org>
  9269  
  9270  	* tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD
  9271  	tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be
  9272  	wrong (as pointed out by Marco).
  9273  	* (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too.
  9274  
  9275  2009-12-14  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9276  
  9277  	* mpn/generic/invert.c: Improved comments.
  9278  	(mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q.
  9279  
  9280  2009-12-14  Niels Möller  <nisse@lysator.liu.se>
  9281  
  9282  	* gmp-impl.h (udiv_qr_3by2): Fix typo in argument list.
  9283  
  9284  2009-12-13  Niels Möller  <nisse@lysator.liu.se>
  9285  
  9286  	* gmp-impl.h (udiv_qr_3by2): New macro.
  9287  	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2.
  9288  
  9289  2009-12-13  Torbjorn Granlund  <tege@gmplib.org>
  9290  
  9291  	* mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer
  9292  	overrun.
  9293  
  9294  	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd
  9295  	mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft.  Replace some
  9296  	comments on cc's range with ASSERTs.
  9297  
  9298  	* mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul.
  9299  
  9300  	* mpz/powm.c: Rework buffer handling.
  9301  
  9302  2009-12-13  Niels Möller  <nisse@lysator.liu.se>
  9303  
  9304  	* tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check
  9305  	results (slow!). Iteration counts of all toom tests reduced
  9306  	considerably.
  9307  
  9308  2009-12-13  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9309  
  9310  	* mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni.
  9311  	(mpn_bc_invertappr): New function, the basecase.
  9312  	(mpn_ni_invertapp): New function, Newton iteration.
  9313  	(mpn_invert): Use mpn_ni_invertapp.
  9314  	* tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD.
  9315  	(tune_invertappr): Min for INV_NEWTON_THRESHOLD.
  9316  
  9317  	* tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro.
  9318  	(speed_mpn_ni_invertappr): Declare function.
  9319  	* tune/common.c (speed_mpn_ni_invertappr): New function.
  9320  	* tune/speed.c (routine): Add speed_mpn_ni_invertappr.
  9321  
  9322  	* tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to
  9323  	tune INV_MULMOD_BNM1_THRESHOLD.
  9324  
  9325  2009-12-12  Torbjorn Granlund  <tege@gmplib.org>
  9326  
  9327  	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite.
  9328  
  9329  2009-12-12  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9330  
  9331  	* tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test
  9332  	for odd sizes.
  9333  
  9334  	* mpn/generic/invert.c: Complete rewrite. Uses Newton iterations.
  9335  	* gmp-impl.h (mpn_invertappr): Added prototype and name-mangling.
  9336  	(mpn_invertappr_itch): Added prototype and name-mangling.
  9337  	(INV_APPR_THRESHOLD): Support for a new tunable const.
  9338  	* tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro.
  9339  	(speed_mpn_invertappr): Declare function.
  9340  	* tune/common.c (speed_mpn_invertappr): New function.
  9341  	* tune/speed.c (routine): Add speed_mpn_invertappr.
  9342  	* tune/tuneup.c (tune_invertappr): New function: was tune_invert.
  9343  	(tune_invert): Now tune only INV_APPR_THRESHOLD.
  9344  	(all): Enable call to tune_invert and tune_invertappr.
  9345  
  9346  2009-12-11  Torbjorn Granlund  <tege@gmplib.org>
  9347  
  9348  	* mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping.
  9349  	Old, evidently broken wrapping code removed.
  9350  	* tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD.
  9351  	* gmp-impl.h: Provide declarations for corresponding threshold var.
  9352  
  9353  	* tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable.
  9354  
  9355  	* tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD.
  9356  	* gmp-impl.h: Provide declarations for corresponding threshold var.
  9357  
  9358  	* tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero.
  9359  
  9360  	* configure.in: Set up different paths for different 64-bit sparc
  9361  	processors.
  9362  	* mpn/sparc64/ultrasparc34/gmp-mparam.h: New file.
  9363  
  9364  2009-12-10  Torbjorn Granlund  <tege@gmplib.org>
  9365  
  9366  	* mpn/*/gmp-mparam.h: Regenerate many of these files.
  9367  
  9368  2009-12-10  Niels Möller  <nisse@lysator.liu.se>
  9369  
  9370  	* gmp-impl.h (mpn_divexact): Removed scratch pointer from
  9371  	prototype.
  9372  	* mpn/generic/gcdext.c (divexact): Deleted, moved to...
  9373  	* mpn/generic/divexact.c (mpn_divexact): New implementation (moved
  9374  	from gcdext.c). The bidirectional divexact is kept but #if:ed out.
  9375  	Interface change, since the new code doesn't take a scratch
  9376  	argument.
  9377  
  9378  	* tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered
  9379  	MIN_N to 1. Various fixes to handle n == 1 properly.
  9380  
  9381  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface
  9382  	change, require an >= bn.
  9383  
  9384  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive
  9385  	case to not write beyond end of result area.
  9386  
  9387  2009-12-09  Torbjorn Granlund  <tege@gmplib.org>
  9388  
  9389  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made
  9390  	from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1.
  9391  	* tune/common.c (speed_mpn_bc_mulmod_bnm1): New function.
  9392  	(speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL.
  9393  	* tune/speed.c (routine): Add mpn_bc_mulmod_bnm1.
  9394  
  9395  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
  9396  
  9397  	* tune/tuneup.c (tune_mulmod_bnm1): Rewrite.
  9398  
  9399  2009-12-08  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9400  
  9401  	* mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1,
  9402  	mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly
  9403  	same as result area (as suggested by Niels Möller).
  9404  	(mpn_mulmod_bnm1): Calls changed accordingly.
  9405  
  9406  2009-12-08  Niels Möller  <nisse@lysator.liu.se>
  9407  
  9408  	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use
  9409  	table lookup for count_trailing_zeros. Binary algorithm still
  9410  	disabled by default.
  9411  
  9412  	* mpn/generic/gcdext.c (divexact): Local definition of divexact,
  9413  	using mpn_bdiv_q.
  9414  	(compute_v): Use it.
  9415  
  9416  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv.
  9417  
  9418  	* tests/mpn/t-bdiv.c: New file.
  9419  
  9420  	* mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length,
  9421  	should have qn == nn.
  9422  
  9423  	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to
  9424  	the lower-level functions.
  9425  
  9426  2009-12-08  Torbjorn Granlund  <tege@gmplib.org>
  9427  
  9428  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define.
  9429  	* tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function.
  9430  	* tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring
  9431  	mpn_mulmod_bnm1 at recommended sizes.
  9432  
  9433  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
  9434  	(mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add.
  9435  
  9436  	* tune/speed.c (routine): Add mpn_invert.
  9437  
  9438  	* tune/tuneup.c (tune_invert): New function.
  9439  	* tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro.
  9440  	* tune/common.c (speed_mpn_invert): New function.
  9441  	* gmp-impl.h: Provide declarations for corresponding threshold var.
  9442  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c.
  9443  
  9444  2009-12-08  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9445  
  9446  	* tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n;
  9447  	mpn_rsblsh_n now tests all shift values.
  9448  	* tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions.
  9449  	(refmpn_addlsh1_n): Use generic refmpn_addlsh_n.
  9450  	(refmpn_sublsh1_n): Use generic refmpn_sublsh_n.
  9451  	(refmpn_addlsh2_n): New function.
  9452  	* tests/tests.h: Declare new functions.
  9453  
  9454  2009-12-06  Torbjorn Granlund  <tege@gmplib.org>
  9455  
  9456  	* tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12.
  9457  
  9458  	* Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*.
  9459  
  9460  	* configure.in: Don't include ev5 directory for ev6* and ev7.  Misc
  9461  	alpha path cleanups.
  9462  	* mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm.
  9463  	* mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm.
  9464  	* mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm.
  9465  	* mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm.
  9466  	* mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm.
  9467  	* mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm.
  9468  
  9469  	* mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than
  9470  	mpn_bdiv_dbm1c on all hardware.
  9471  
  9472  	* mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit.
  9473  
  9474  	* gmp-impl.h (mpn_redc_1_sec): Declare.
  9475  	* configure.in (gmp_mpn_functions): Add redc_1_sec.
  9476  
  9477  2009-12-06  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9478  
  9479  	* tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit.
  9480  
  9481  2009-12-05  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9482  
  9483  	* mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0.
  9484  	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise.
  9485  	* mpn/generic/toom_eval_pm1.c: Likewise.
  9486  	* mpn/generic/toom_eval_pm2exp.c: Likewise.
  9487  	* mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n.
  9488  
  9489  	* mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign.
  9490  
  9491  	* mpn/generic/toom33_mul.c: Adapt to changes above.
  9492  	* mpn/generic/toom3_sqr.c: Likewise.
  9493  	* mpn/generic/toom42_mul.c: Likewise.
  9494  	* mpn/generic/toom43_mul.c: Reduce branches.
  9495  	* mpn/generic/toom44_mul.c: Likewise.
  9496  	* mpn/generic/toom53_mul.c: Likewise.
  9497  	* mpn/generic/toom62_mul.c: Likewise.
  9498  
  9499  	* mpn/generic/toom52_mul.c: Use toom_eval_ functions.
  9500  
  9501  	* mpn/generic/toom4_sqr.c: Avoid C99 construct.
  9502  	* mpn/generic/toom_interpolate_7pts.c: Likewise.
  9503  
  9504  2009-12-05  Torbjorn Granlund  <tege@gmplib.org>
  9505  
  9506  	* mpn/generic/redc_1_sec.c: New file.
  9507  	* mpn/generic/powm_sec.c: Use redc_1_sec.  Use dummy full subtract
  9508  	instead of mpn_cmp since the latter leaks to the side channel.
  9509  	(mpn_local_sqr_n): New function, with associated macros.
  9510  	(mpn_powm_sec): Use mpn_local_sqr_n.
  9511  
  9512  	* configure.in (HAVE_NATIVE): Add missing functions, then sort.
  9513  
  9514  2009-12-04  Torbjorn Granlund  <tege@gmplib.org>
  9515  
  9516  	* tune/tuneup.c (tune_dc_div): Up min_size to 6.
  9517  	(tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2.
  9518  
  9519  	* tune/speed.h: Negate "binvert"-type inverses, as required.
  9520  
  9521  	* mpn/generic/redc_1.c: Add ASSERTs.
  9522  	* mpn/generic/redc_2.c: Likewise.
  9523  
  9524  	* mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing.
  9525  
  9526  2009-12-03  Yann Droneaud  <yann@droneaud.fr>
  9527  
  9528  	* acinclude.m4 ([long long reliability test 1]): Add a "static" for C99
  9529  	inline semantics compatibility.
  9530  
  9531  2009-12-03  Torbjorn Granlund  <tege@gmplib.org>
  9532  
  9533  	* configure.in: Move intptr_t test into common AC_CHECK_TYPES.
  9534  
  9535  	* mpn/generic/gcdext.c: Add a TMP_FREE.
  9536  
  9537  2009-12-03  Niels Möller  <nisse@lysator.liu.se>
  9538  
  9539  	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
  9540  	Added various masking tricks.
  9541  
  9542  	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
  9543  	Reimplemented binary gcdext, with proper canonicalization.
  9544  
  9545  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0
  9546  	from mpn_gcdext_1.
  9547  	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b,
  9548  	assertions fixed accordingly.
  9549  
  9550  2009-12-03  Torbjorn Granlund  <tege@gmplib.org>
  9551  
  9552  	* tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD.  Rewrite
  9553  	DC_DIV_QR_THRESHOLD tuning code.
  9554  	(tune_dc_div): Rewrite.
  9555  	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro.
  9556  	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
  9557  	speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions.
  9558  	* gmp-impl.h: Provide declarations for corresponding threshold vars.
  9559  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c.
  9560  
  9561  	* tune/tuneup.c (tune_binvert): Up max_size.
  9562  
  9563  2009-12-02  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9564  
  9565  	* tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n.
  9566  	* tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions.
  9567  	(refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n.
  9568  	* tests/tests.h: Declare new functions.
  9569  
  9570  2009-12-03  Niels Möller  <nisse@lysator.liu.se>
  9571  
  9572  	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step):
  9573  	Select the right cofactor in the cases A == B or A == 2B.
  9574  
  9575  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted
  9576  	handling of ap[0] == 0 and bp[0] == 0; these cases don't happen.
  9577  	Select the right cofactor in the case ap[0] == bp[0].
  9578  	* mpn/generic/gcdext.c (mpn_gcdext): Analogous changes.
  9579  
  9580  2009-12-02  Niels Möller  <nisse@lysator.liu.se>
  9581  
  9582  	* gmp-h.in (mpn_gcdext_1): Updated prototype.
  9583  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
  9584  	signed cofactors from gcdext_1.
  9585  	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm,
  9586  	and return signed cofactors.
  9587  
  9588  2009-12-02  Torbjorn Granlund  <tege@gmplib.org>
  9589  
  9590  	* doc/gmp.texi (Low-level Functions): Document mpn_sqr_n.
  9591  
  9592  	* tune/speed.c (routine): Add mpn_binvert.
  9593  
  9594  	* tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD.
  9595  	(tune_binvert): New function.
  9596  	* tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro.
  9597  	* tune/common.c (speed_mpn_binvert): New function.
  9598  	* gmp-impl.h: Provide declarations for corresponding threshold var.
  9599  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c.
  9600  
  9601  	* tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD.
  9602  	(tune_dc_bdiv): New function.
  9603  	(tune_dc_div): New name for tune_dc.
  9604  	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR,
  9605  	SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros.
  9606  	* tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr,
  9607  	speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions.
  9608  	* gmp-impl.h: Provide declarations for corresponding threshold vars.
  9609  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and
  9610  	dcpi1_bdiv_q.c.
  9611  
  9612  2009-12-01  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9613  
  9614  	* mpn/generic/toom53_mul.c: Removed double computation of vinf.
  9615  
  9616  	* mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n.
  9617  	* mpn/asm-defs.m4 (define_mpn): Add rsblsh_n.
  9618  	* gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling.
  9619  
  9620  	* mpn/generic/fib2_ui.c: Reduce the amount of temporary storage.
  9621  	Use mpn_rsblsh_n.
  9622  
  9623  2009-12-01  Torbjorn Granlund  <tege@gmplib.org>
  9624  
  9625  	* mpn/generic/redc_n.c: Rework temp allocation.
  9626  
  9627  	* mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also
  9628  	to this function.
  9629  
  9630  	* mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right.
  9631  	Misc cleanups.
  9632  
  9633  	* tune/speed.c (routine): Fix typo in last change.
  9634  	Add mpn_redc_2.
  9635  
  9636  	* tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly.
  9637  
  9638  2009-12-01  Niels Möller  <nisse@lysator.liu.se>
  9639  
  9640  	* tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n.
  9641  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro.
  9642  	(speed_mpn_toom42_mul): Declare function.
  9643  	* tune/common.c (speed_mpn_toom42_mul): New function.
  9644  	* gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant.
  9645  
  9646  2009-11-30  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9647  
  9648  	* mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n.
  9649  
  9650  2009-11-29  Torbjorn Granlund  <tege@gmplib.org>
  9651  
  9652  	* mpn/x86_64/pentium4/gmp-mparam.h
  9653  	(HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef.
  9654  
  9655  	* Makefile.am (EXTRA_DIST): Remove macos.
  9656  
  9657  2009-11-28  Torbjorn Granlund  <tege@gmplib.org>
  9658  
  9659  	* tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning.
  9660  
  9661  	* mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting
  9662  	to allow configure.in parse it more easily.  Trim from 120 to 80.
  9663  
  9664  2009-11-28  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9665  
  9666  	* mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects
  9667  	a bug affecting previous version.
  9668  
  9669  2009-11-28  Torbjorn Granlund  <tege@gmplib.org>
  9670  
  9671  	* configure.in: Handle atom also in 32-bit mode.
  9672  	* mpn/x86/atom/gmp-mparam.h: New file.
  9673  
  9674  	* gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default.
  9675  
  9676  	* mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n.
  9677  
  9678  	* Use TMP_ALLOC_LIMBS consistently.
  9679  	* Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS.
  9680  
  9681  	* macos: Remove entire directory.
  9682  
  9683  2009-11-27  Torbjorn Granlund  <tege@gmplib.org>
  9684  
  9685  	* mpn/x86_64/corei/gmp-mparam.h: New file.
  9686  	* mpn/x86_64/core2/gmp-mparam.h: Now for just core2.
  9687  	* mpn/powerpc64/mode64/p3/gmp-mparam.h: New file.
  9688  	* mpn/powerpc64/mode64/p4/gmp-mparam.h: New file.
  9689  	* mpn/powerpc64/mode64/p5/gmp-mparam.h: New file.
  9690  
  9691  	* config.guess: Return "corei" for core i7 and core i5.
  9692  	* config.sub: Recognise "corei".
  9693  	* acinclude.m4 (X86_64_PATTERN): Add corei.
  9694  	* configure.in (powerpc): Set up more CPU-specific paths.
  9695  	(x86): Handle corei.
  9696  
  9697  	* mpz/powm.c: Allow input operand overlap also when exponent = 1.
  9698  	Misc cleanups.
  9699  
  9700  2009-11-26  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9701  
  9702  	* tests/mpn/t-mulmod_bnm1.c: New test file.
  9703  	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1.
  9704  
  9705  	* mpn/generic/mullow_n.c: Comments on Mulders' trick implementation.
  9706  
  9707  2009-11-26  Torbjorn Granlund  <tege@gmplib.org>
  9708  
  9709  	* mpn/generic/powm.c: Make comments reflect current code state.
  9710  
  9711  	* tests/devel/try.c: Make mpn_mullow_n testing actually work.
  9712  
  9713  2009-11-25  Torbjorn Granlund  <tege@gmplib.org>
  9714  
  9715  	* mpz/powm.c: Clean up unused defs.
  9716  
  9717  2009-11-24  Torbjorn Granlund  <tege@gmplib.org>
  9718  
  9719  	* tune/tuneup.c (tune_redc): Rewrite.
  9720  	* mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD,
  9721  	REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD.
  9722  	Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD.
  9723  	(WANT_REDC_2): Define.
  9724  	* gmp-impl.h: Corresponding changes.
  9725  
  9726  2009-11-23  Torbjorn Granlund  <tege@gmplib.org>
  9727  
  9728  	* mpn/generic/powm.c: Fix typo.
  9729  	Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD...
  9730  	REDC_N_THRESHOLD chain.
  9731  
  9732  2009-11-22  Torbjorn Granlund  <tege@gmplib.org>
  9733  
  9734  	* tune/tuneup.c (tune_mullow): Set min_size to 1.
  9735  
  9736  	* mpn/generic/powm_sec.c: Use just mpn_mul_basecase and
  9737  	mpn_sqr_basecase for multiplication and squaring.
  9738  
  9739  	* tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD.
  9740  	(tune_redc): New function.
  9741  	(tune_powm): Remove function.
  9742  	* tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New.
  9743  	* tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New.
  9744  
  9745  	* mpz/powm.c: Complete rewrite.  Use mpn_powm and mpn_powlo.
  9746  	* mpn/generic/powm.c: Rewrite.
  9747  	* mpn/generic/redc_n.c: New file.
  9748  	* configure.in (gmp_mpn_functions): Add redc_n.
  9749  	* gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define
  9750  	for tuneup.
  9751  
  9752  2009-11-21  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9753  
  9754  	* mpn/generic/mullow_n.c: Disable Mulders' trick for small operands,
  9755  	use fft for bigger ones.
  9756  	* tests/mpn/t-mullo.c: New test file.
  9757  
  9758  2009-11-22  Torbjorn Granlund  <tege@gmplib.org>
  9759  
  9760  	* tune/tuneup.c (tune_mullow): Rewrite.
  9761  
  9762  2009-11-21  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9763  
  9764  	* gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and
  9765  	CACHED_BELOW_THRESHOLD).
  9766  
  9767  	* mpn/generic/mullow_n.c: Use Mulders' trick.
  9768  	* tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of
  9769  	search depends on FFT tuning;
  9770  	(all): Anticipate tune_fft_{mul,sqr}.
  9771  
  9772  	* tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1.
  9773  
  9774  2009-11-19  Niels Möller  <nisse@lysator.liu.se>
  9775  
  9776  	* mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2)
  9777  	[HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call
  9778  	(spotted by Marco Bodrato).
  9779  	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise.
  9780  	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise.
  9781  
  9782  	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]:
  9783  	Fixed missing declaration.
  9784  
  9785  	* mpn/asm-defs.m4 (define_mpn): Add addlsh_n.
  9786  	* gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling.
  9787  
  9788  2009-11-19  Niels Möller  <nisse@lysator.liu.se>
  9789  
  9790  	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file.
  9791  	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2.
  9792  	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
  9793  	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
  9794  
  9795  2009-11-18  Torbjorn Granlund  <tege@gmplib.org>
  9796  
  9797  	* gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions.
  9798  
  9799  	* config.guess: Recognise VIA nano.
  9800  	* config.sub: Likewise.
  9801  	* configure.in: Generalise x86_64 support; recognise VIA nano.
  9802  
  9803  2009-11-16  Torbjorn Granlund  <tege@gmplib.org>
  9804  
  9805  	* tune/speed.c (routine): Add measurement of mpn_addlsh2_n,
  9806  	mpn_sublsh2_n, mpn_rsblsh2_n.
  9807  	* tune/common.c: Add speed routines for lsh2 functions.
  9808  
  9809  	* mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD.
  9810  
  9811  	* configure.in (gmp_mpn_functions_optional): Add *lsh_n functions.
  9812  
  9813  	* mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code
  9814  	work.
  9815  
  9816  	* mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop.
  9817  
  9818  	* configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they
  9819  	are now in gmp_mpn_functions.  Analogously move logical functions.
  9820  
  9821  2009-11-16  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9822  
  9823  	* mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo).
  9824  	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43).
  9825  
  9826  	* mpn/asm-defs.m4: Fix comments for op_lsh2 new functions.
  9827  	* gmp-impl.h: Likewise.
  9828  	* tests/mpz/t-fac_ui.c: Fix a comment.
  9829  
  9830  2009-11-15  Torbjorn Granlund  <tege@gmplib.org>
  9831  
  9832  	* mpn/x86_64/aorrlsh2_n.asm: New file.
  9833  	* configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n,
  9834  	including mulfuncs.
  9835  	* gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare.
  9836  	* mpn/asm-defs.m4: Likewise.
  9837  
  9838  	* mpn/generic/copyi.c: New file.
  9839  	* mpn/generic/copyd.c: Likewise.
  9840  	* mpn/generic/zero.c: Likewise.
  9841  	* gmp-h.in: Declare new functions.
  9842  	* configure.in (gmp_mpn_functions): Add new functions.
  9843  
  9844  2009-11-15  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9845  
  9846  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo
  9847  
  9848  	* mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation.
  9849  	* mpn/generic/toom3_sqr.c: Likewise.
  9850  
  9851  2009-11-14  Torbjorn Granlund  <tege@gmplib.org>
  9852  
  9853  	* mpn/generic/toom52_mul.c: Use mpn_addlsh1_n.
  9854  
  9855  	* mpn/generic/toom52_mul.c: Toggle the right flag bit in an
  9856  	HAVE_NATIVE_mpn_add_n_sub_n arm.
  9857  
  9858  	* tests/mpz/t-remove.c: New file.
  9859  
  9860  	* mpn/generic/remove.c: Major overhaul.  Add parameter 'cap'.
  9861  
  9862  	* mpn/generic/binvert.c: Fix typo in last change.
  9863  
  9864  	* mpn/generic/bdiv_qr.c: Make it actually work.  Also use passed-in
  9865  	scratch space.
  9866  
  9867  	* mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call.
  9868  
  9869  2009-11-12  Torbjorn Granlund  <tege@gmplib.org>
  9870  
  9871  	* mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT.
  9872  
  9873  2009-11-11  Torbjorn Granlund  <tege@gmplib.org>
  9874  
  9875  	* mpn/generic/binvert.c: Simplify, fix comments.
  9876  
  9877  	* tests/devel/try.c: Test mpn_invert and mpn_binvert.
  9878  
  9879  	* tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions.
  9880  	* tests/tests.h: Declare new functions.
  9881  
  9882  2009-11-10  Torbjorn Granlund  <tege@gmplib.org>
  9883  
  9884  	* configure.in: Supply compiler options for atom in 32-bit mode.
  9885  
  9886  	* acinclude.m4 (X86_64_PATTERN): New.
  9887  	* configure.in: Setup and use X86_64_PATTERN.
  9888  
  9889  	* mpn/x86_64/fat/fat.c: New file.
  9890  	* mpn/x86_64/fat/fat_entry.asm: New file.
  9891  	* mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat.
  9892  	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from
  9893  	mpn/x86/x86-defs.m4.
  9894  	* configure.in: Move down x86 fat setup code until after ABI has been
  9895  	determined; generalise to handle x86_64.
  9896  
  9897  2009-11-09  Torbjorn Granlund  <tege@gmplib.org>
  9898  
  9899  	* mpn/x86/fat/mod_1.c: New file.
  9900  
  9901  	* acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting.
  9902  
  9903  2009-11-08  Torbjorn Granlund  <tege@gmplib.org>
  9904  
  9905  	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface.  Callers
  9906  	updated.
  9907  	* mpn/generic/logops_n.c: New file.
  9908  	* doc/gmp.texi (Low-level Functions): Document logical mpn functions.
  9909  
  9910  2009-11-07  Torbjorn Granlund  <tege@gmplib.org>
  9911  
  9912  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new
  9913  	mpn_mulmod_bnm1 interface.
  9914  
  9915  2009-11-07  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9916  
  9917  	* mpn/generic/mulmod_bnm1.c: New interface, with size
  9918  	specified for all operands in mpn_mulmod_bnm1.
  9919  	* gmp-impl.h: Changed mpn_mulmod_bnm1 prototype.
  9920  
  9921  2009-11-05  Torbjorn Granlund  <tege@gmplib.org>
  9922  
  9923  	* mpn/x86/k7/gcd_1.asm: Actually use div-reduced value.
  9924  	Mnemonic cleanup.
  9925  
  9926  	* mpn/x86_64/gcd_1.asm: New file.
  9927  
  9928  2009-11-03  Torbjorn Granlund  <tege@gmplib.org>
  9929  
  9930  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c.
  9931  
  9932  2009-11-03  Marco Bodrato <bodrato@mail.dm.unipi.it>
  9933  
  9934  	* mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup.
  9935  
  9936  2009-11-02  Torbjorn Granlund  <tege@gmplib.org>
  9937  
  9938  	* configure.in (gmp_mpn_functions): Remove obsolete functions
  9939  	dc_divrem_n and sb_divrem_mn.
  9940  	* gmp-impl.h: Misc cleanup.
  9941  	(mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove.
  9942  	(DIV_DC_THRESHOLD): Remove.
  9943  	* mpn/generic/dc_divrem_n.c: Remove.
  9944  	* mpn/generic/sb_divrem_mn.c: Remove.
  9945  	* mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD.
  9946  
  9947  	* tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr.
  9948  	* tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn.
  9949  
  9950  	* tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c.
  9951  	(TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c.
  9952  	* tune/common.c (speed_mpn_dcpi1_div_qr_n): New function.
  9953  	Remove mpn_sb_divrem_mn related functions.
  9954  	* tune/speed.c (routine): Remove entries related to mpn_dc_divrem and
  9955  	mpn_sb_divrem.
  9956  	(routine): New entry for mpn_dc_div_qr_n.
  9957  	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse
  9958  	needed by pi1 calls.
  9959  	(SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove.
  9960  	* tune/tuneup.c (tune_sb_preinv): Remove.
  9961  	(tune_dc): Update to measure DC_DIV_QR_THRESHOLD.
  9962  
  9963  	* mpn/generic/sb_divappr_q.c: Remove.
  9964  
  9965  2009-11-01  Torbjorn Granlund  <tege@gmplib.org>
  9966  
  9967  	* gmp-impl.h: Misc minor cleanups.
  9968  
  9969  2009-10-31  Torbjorn Granlund  <tege@gmplib.org>
  9970  
  9971  	* gmp-impl.h (toom itch functions): Simplify, make some into macros.
  9972  	(MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove.
  9973  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove.
  9974  	* mpn/generic/mul_n.c (mpn_sqr_n): Move from here...
  9975  	* mpn/generic/sqr_n.c: ...to this new file.
  9976  	* configure.in (gmp_mpn_functions): Add sqr_n.
  9977  
  9978  	* Globally change
  9979  	  MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD,
  9980  	  MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD,
  9981  	  SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD,
  9982  	and associated names analogously.
  9983  
  9984  2009-10-31  Niels Möller  <nisse@lysator.liu.se>
  9985  
  9986  	* mpn/generic/toom_interpolate_7pts.c: Changed evaluation points,
  9987  	replacing -1/2 by -2.
  9988  	* mpn/generic/toom44_mul.c: Updated to use new evaluation points,
  9989  	and use mpn_toom_eval_dgr3_pm2.
  9990  	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise.
  9991  	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new
  9992  	evaluation points, and use mpn_toom_eval_pm1 and
  9993  	mpn_toom_eval_pm2exp.
  9994  	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
  9995  
  9996  	* mpn/generic/toom_eval_pm2exp.c: New file.
  9997  	* mpn/generic/toom_eval_pm1.c: New file.
  9998  
  9999  	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
 10000  	mpn_toom_eval_dgr3_pm2.
 10001  
 10002  2009-10-30  Torbjorn Granlund  <tege@gmplib.org>
 10003  
 10004  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files.
 10005  
 10006  2009-10-30  Niels Möller  <nisse@lysator.liu.se>
 10007  
 10008  	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
 10009  	* gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2.
 10010  	* mpn/generic/toom_eval_dgr3_pm2.c: New file.
 10011  
 10012  2009-10-29  Niels Möller  <nisse@lysator.liu.se>
 10013  
 10014  	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
 10015  	mpn_toom_eval_dgr3_pm1.
 10016  	* mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise.
 10017  
 10018  2009-10-29  Torbjorn Granlund  <tege@gmplib.org>
 10019  
 10020  	* mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR.
 10021  
 10022  	* gmp-impl.h (mpn_mulmod_bnm1_itch): New macro.
 10023  
 10024  	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft.
 10025  	(mpn_mulmod_bnm1_next_size): Adopt to SS FFT.
 10026  
 10027  	* mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb.
 10028  	(mpn_mul_fft_internal): Likewise.
 10029  
 10030  	* mpn/generic/mulmod_bnm1.c: New file, by Niels Möller.
 10031  	* configure.in (gmp_mpn_functions): Add mulmod_bnm1.
 10032  	* gmp-impl.h: Add related declarations.
 10033  	* tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD.
 10034  	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro.
 10035  	* tune/common.c (speed_mpn_mulmod_bnm1): New function.
 10036  	* Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c.
 10037  
 10038  	* gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations.
 10039  	* tune/common.c: Remove/rename kara functions.
 10040  	* tune/speed.h: Likewise.
 10041  
 10042  	* tests/devel/try.c: Clean up usage of %p printf arguments.
 10043  
 10044  	* gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function
 10045  	names and limitations
 10046  	* tune/tuneup.c: Use updated macro names.
 10047  	* tune/speed.h: Likewise.
 10048  	* tests/devel/try.c: Test new mul/sqr functions, remove old tests.
 10049  
 10050  2009-10-29  Niels Möller  <nisse@lysator.liu.se>
 10051  
 10052  	* tune/speed.c: Added support for mpn_toom4_sqr,
 10053  
 10054  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro.
 10055  	(SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted.
 10056  	(SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted.
 10057  	(SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch.
 10058  
 10059  	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove
 10060  	declarations.
 10061  	(mpn_toom2_sqr_itch): Add margin for recursive calls.
 10062  
 10063  2009-10-28  Niels Möller  <nisse@lysator.liu.se>
 10064  
 10065  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba
 10066  	implementation.
 10067  	(mpn_kara_sqr_n): Likewise deleted.
 10068  
 10069  	* mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and
 10070  	mpn_toom3_sqr, not the old implementations.
 10071  
 10072  	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by
 10073  	mpn_toom33_mul_itch.
 10074  	(MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by
 10075  	mpn_toom3_sqr_itch.
 10076  	(mpn_toom33_mul_itch): Needs more scratch.
 10077  	(mpn_toom3_sqr_itch): Likewise.
 10078  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use
 10079  	mpn_toom33_mul_itch.
 10080  	(SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch.
 10081  	* mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch.
 10082  	(mpn_sqr_n): Use mpn_toom3_sqr_itch.
 10083  
 10084  	* mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs
 10085  	some more supplied scratch instead.
 10086  	* mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise.
 10087  
 10088  2009-10-26  Torbjorn Granlund  <tege@gmplib.org>
 10089  
 10090  	* gmp-impl.h (invert_pi1): Streamline, as suggested by Niels.
 10091  
 10092  2009-10-24  Torbjorn Granlund  <tege@gmplib.org>
 10093  
 10094  	* mpn/generic/bdiv_q.c: Update to call new functions.
 10095  	* mpn/generic/bdiv_qr.c: Likewise.
 10096  	* mpn/generic/binvert.c: Likewise.
 10097  	* mpn/generic/divexact.c: Likewise.
 10098  	* mpn/generic/divis.c: Likewise.
 10099  	* mpn/generic/perfpow.c: Likewise.
 10100  	* mpn/generic/tdiv_qr.c: Likewise.
 10101  	* mpn/generic/dcpi1_bdiv_q.c: New file.
 10102  	* mpn/generic/dcpi1_bdiv_qr.c: New file.
 10103  	* mpn/generic/dcpi1_div_q.c: New file.
 10104  	* mpn/generic/dcpi1_div_qr.c: New file.
 10105  	* mpn/generic/dcpi1_divappr_q.c: New file.
 10106  	* mpn/generic/sbpi1_bdiv_q.c: New file.
 10107  	* mpn/generic/sbpi1_bdiv_qr.c: New file.
 10108  	* mpn/generic/sbpi1_div_q.c: New file.
 10109  	* mpn/generic/sbpi1_div_qr.c: New file.
 10110  	* mpn/generic/sbpi1_divappr_q.c: New file.
 10111  	* mpn/generic/dc_bdiv_q.c: Removed.
 10112  	* mpn/generic/dc_bdiv_qr.c: Removed.
 10113  	* mpn/generic/dc_div_q.c: Removed.
 10114  	* mpn/generic/dc_div_qr.c: Removed.
 10115  	* mpn/generic/dc_divappr_q.c: Removed.
 10116  	* mpn/generic/sb_bdiv_q.c: Removed.
 10117  	* mpn/generic/sb_bdiv_qr.c: Removed.
 10118  	* mpn/generic/sb_div_q.c: Removed.
 10119  	* mpn/generic/sb_div_qr.c: Removed.
 10120  
 10121  	* configure.in (gmp_mpn_functions): Add new division functions, remove
 10122  	obsolete division functions.
 10123  
 10124  	* gmp-impl.h: Add declarations of new division functions, remove
 10125  	corresponding obsolete declarations.
 10126  	(gmp_pi1_t, gmp_pi2_t): New types.
 10127  	(invert_pi1): New macro for computing 2/1 and 3/2 inverses.
 10128  
 10129  2009-10-23  Niels Möller  <nisse@lysator.liu.se>
 10130  
 10131  	* gmp-impl.h (mpn_toom62_mul_itch): New function.
 10132  
 10133  	* tests/mpn/t-toom53.c: New test program.
 10134  	* tests/mpn/t-toom62.c: New test program.
 10135  
 10136  2009-10-23  Torbjorn Granlund  <tege@gmplib.org>
 10137  
 10138  	* mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines.
 10139  	* tests/mpf/t-get_d.c (test_denorms): New function.
 10140  
 10141  2009-10-23  Niels Möller  <nisse@lysator.liu.se>
 10142  
 10143  	* mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch
 10144  	space, not TMP_ALLOC. Interface change, now requires input sizes
 10145  	such that s + t >= 5.
 10146  
 10147  	* gmp-impl.h (mpn_toom52_mul_itch): New function.
 10148  
 10149  	* tests/mpn/t-toom52.c: New test program.
 10150  
 10151  2009-10-22  Torbjorn Granlund  <tege@gmplib.org>
 10152  
 10153  	* mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease.
 10154  
 10155  2009-10-22  Niels Möller  <nisse@lysator.liu.se>
 10156  
 10157  	* tests/mpn/t-toom44.c: New test program.
 10158  	* tests/mpn/t-toom33.c: New test program.
 10159  
 10160  	* tests/mpn/toom-shared.h (main): Reorganized input generation.
 10161  	Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN.
 10162  	Updated existing toom test programs.
 10163  
 10164  2009-10-22  Torbjorn Granlund  <tege@gmplib.org>
 10165  
 10166  	* tests/devel/try.c: Fix typos in last change.
 10167  
 10168  2009-10-21  Torbjorn Granlund  <tege@gmplib.org>
 10169  
 10170  	* mpn/asm-defs.m4 (define_mpn): Add mullow_basecase.
 10171  
 10172  	* tests/devel/try.c: Test mpn_mullow_n.
 10173  
 10174  	* tests/refmpn.c (refmpn_mullow_n): New function.
 10175  	* tests/tests.h: Declare it.
 10176  
 10177  2009-10-21  Niels Möller  <nisse@lysator.liu.se>
 10178  
 10179  	* tests/mpn/toom-shared.h (main): Check for writes outside of the
 10180  	product or scratch area.
 10181  
 10182  	* gmp-impl.h (mpn_toom43_mul_itch): New function.
 10183  
 10184  	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch
 10185  	space, not TMP_ALLOC. Interface change, now requires input sizes
 10186  	such that s + t >= 5.
 10187  
 10188  2009-10-20  Niels Möller  <nisse@lysator.liu.se>
 10189  
 10190  	* tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be
 10191  	overridden by users. Needed by t-toom42 and t-toom43.
 10192  
 10193  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32,
 10194  	t-toom42 and t-toom43.
 10195  	* tests/mpn/t-toom43.c: New test program.
 10196  	* tests/mpn/t-toom42.c: New test program.
 10197  	* tests/mpn/t-toom32.c: New test program.
 10198  
 10199  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22.
 10200  	* tests/mpn/t-toom22.c: New test file.
 10201  	* tests/mpn/toom-shared.h: New file. Test framework for Toom
 10202  	functions.
 10203  
 10204  2009-10-14  Niels Möller  <nisse@lysator.liu.se>
 10205  
 10206  	* mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new
 10207  	mpn_matrix22_mul_strassen, the scratch need is reduced by 16%.
 10208  
 10209  2009-10-14  Marco Bodrato  <bodrato@mail.dm.unipi.it>
 10210  
 10211  	* mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New
 10212  	Strassen-like algorithm, to reduce the amount of temporary
 10213  	storage.
 10214  	(mpn_matrix22_mul_itch): Updated to reflect the reduced storage
 10215  	need.
 10216  
 10217  2009-10-03  Torbjorn Granlund  <tege@gmplib.org>
 10218  
 10219  	* Rename mpn_addsub_n to mpn_add_n_sub_n.
 10220  
 10221  2009-10-01  Torbjorn Granlund  <tege@gmplib.org>
 10222  
 10223  	* mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of
 10224  	old functions.
 10225  
 10226  	* mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions.
 10227  
 10228  	* mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from
 10229  	TOOM22_MUL_N_REC.  Unconditionally call the generic mpn_mul_n.
 10230  	* mpn/generic/toom32_mul.c: Analogous changes.
 10231  
 10232  2009-09-28  Niels Möller  <nisse@lysator.liu.se>
 10233  
 10234  	* mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the
 10235  	Newton iteration.
 10236  
 10237  2009-09-27  Niels Möller  <nisse@lysator.liu.se>
 10238  
 10239  	* mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1
 10240  	arguments to add, sub and shift.
 10241  
 10242  2009-09-25  Niels Möller  <nisse@lysator.liu.se>
 10243  
 10244  	* mpn/x86/invert_limb.asm: New file.
 10245  
 10246  2009-09-24  Torbjorn Granlund  <tege@gmplib.org>
 10247  
 10248  	* mpn/generic/toom33_mul.c: Use new toom functions for all recursive
 10249  	products.
 10250  	* mpn/generic/toom3_sqr.c: Likewise.
 10251  	* mpn/generic/toom44_mul.c: Likewise.
 10252  	* mpn/generic/toom4_sqr.c: Likewise.
 10253  
 10254  	* mpn/generic/add_n.c: Relax operand overlap ASSERTs.
 10255  	* mpn/generic/sub_n.c: Likewise.
 10256  
 10257  2009-09-15  Torbjorn Granlund  <tege@gmplib.org>
 10258  
 10259  	Suggested by Uwe Mueller:
 10260  	* printf/doprnt.c: Use "%ld" for exponent printing.
 10261  	* printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long".
 10262  
 10263  2009-09-14  Torbjorn Granlund  <tege@gmplib.org>
 10264  
 10265  	* configure.in: Handle mingw64.
 10266  	* gmp-impl.h (gmp_intptr_t): Declare.
 10267  	* tests/amd64check.c (calling_conventions_values): Use CNST_LIMB.
 10268  	* tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p".
 10269  	* tests/misc.c: Use gmp_intptr_t.
 10270  	* tests/mpq/t-get_str.c: Print pointers using C90 "%p".
 10271  
 10272  2009-08-12  Torbjorn Granlund  <tege@gmplib.org>
 10273  
 10274  	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code.
 10275  
 10276  	* mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p.
 10277  
 10278  	* mpn/arm/invert_limb.asm: Complete rewrite.
 10279  
 10280  	* longlong.h: Document LONGLONG_STANDALONE and NO_ASM.
 10281  
 10282  2009-08-05  Torbjorn Granlund  <tege@gmplib.org>
 10283  
 10284  	* tests/mpz/dive_ui.c (check_random): Avoid zero divisors.
 10285  
 10286  2009-07-31  Torbjorn Granlund  <tege@gmplib.org>
 10287  
 10288  	* mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility
 10289  	pointed out by Per Austrin).
 10290  	(mpn_mod_1_1p): Renamed from mpn_mod_1s_1p.
 10291  	(mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps.
 10292  	*mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for
 10293  	any modulus.
 10294  
 10295  2009-07-28  Torbjorn Granlund  <tege@gmplib.org>
 10296  
 10297  	* configure.in: Pass arch for x86 also in 64-bit mode.
 10298  
 10299  2009-07-26  Torbjorn Granlund  <tege@swox.com>
 10300  
 10301  	* config.guess (_cpuid): Recognise more Intel "Core" processors.
 10302  
 10303  2009-07-13  Torbjorn Granlund  <tege@gmplib.org>
 10304  
 10305  	* mpf/eq.c: Rewrite.
 10306  
 10307  	* tests/mpf/t-eq.c: New test.
 10308  
 10309  2009-07-06  Torbjorn Granlund  <tege@gmplib.org>
 10310  
 10311  	* gmp-impl.h (__mp_bases): Remove this alias.
 10312  
 10313  	* mpf/get_str.c: Use less overflow prone expression for computing limb
 10314  	allocation.
 10315  	* mpz/inp_str.c: Likewise.
 10316  	* mpf/set_str.c: Likewise.
 10317  	* mpz/set_str.c: Likewise.
 10318  
 10319  2009-07-03  Niels Möller  <nisse@lysator.liu.se>
 10320  
 10321  	* mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce
 10322  	the number of branches in the loop.
 10323  
 10324  2009-06-28  Torbjorn Granlund  <tege@gmplib.org>
 10325  
 10326  	* demos/factorize.c (factor_using_pollard_rho): Rewrite.
 10327  
 10328  	* mpz/clears.c: New file.
 10329  	* mpq/clears.c: New file.
 10330  	* mpf/clears.c: New file.
 10331  	* gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare.
 10332  	* mpz/Makefile.am: Add clears.c.
 10333  	* mpq/Makefile.am: Add clears.c.
 10334  	* mpf/Makefile.am: Add clears.c.
 10335  	* Makefile.am: Add these also to respective OBJECTS variables.
 10336  	* doc/gmp.texi: Document inits function and clears functions.
 10337  
 10338  2009-06-20  Torbjorn Granlund  <tege@gmplib.org>
 10339  
 10340  	* mp-h.in (mp_bitcnt_t): Declare here too.
 10341  
 10342  2009-06-19  Torbjorn Granlund  <tege@gmplib.org>
 10343  
 10344  	* mpq/inits.c: New file.
 10345  	* mpf/inits.c: New file.
 10346  	* gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare .
 10347  
 10348  	* mpn/generic/remove.c: New file.
 10349  	* configure.in (gmp_mpn_functions): Add remove.
 10350  	* gmp-impl.h (mpn_remove): Declare.
 10351  
 10352  	* gmp-h.in (mp_bitcnt_t): New basic type.
 10353  	* mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition.
 10354  
 10355  	* mpn/generic/bdiv_qr.c: Make it actually work.
 10356  
 10357  	* mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and
 10358  	to need fewer registers.
 10359  
 10360  2009-06-17  Torbjorn Granlund  <tege@gmplib.org>
 10361  
 10362  	* mpn/x86_64/rsh1aors_n.asm: New file.
 10363  	* mpn/x86_64/rsh1add_n.asm: Remove.
 10364  	* mpn/x86_64/rsh1sub_n.asm: Remove.
 10365  
 10366  	* mpz/inits.c: New file.
 10367  
 10368  	* gen-trialdivtab.c: Wrap limb constants into CNST_LIMB.
 10369  
 10370  	With Martin Boij:
 10371  	* mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being
 10372  	recursive to being iterative.
 10373  	(mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer
 10374  	overrun.  Trim allocation of next and prev.  Never create oversize
 10375  	products in the multiplicity binary search.
 10376  
 10377  	* mpn/generic/dc_div_q.c: Add missing TMP_FREE.
 10378  
 10379  2009-06-16  Torbjorn Granlund  <tege@gmplib.org>
 10380  
 10381  	Revert:
 10382  	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
 10383  
 10384  2009-06-16  Martin Boij  <mboij@kth.se>
 10385  
 10386  	* mpn/generic/perfpow.c (logs): Use more conservative table.
 10387  
 10388  2009-06-15  Torbjorn Granlund  <tege@gmplib.org>
 10389  
 10390  	* mpn/pa64/aors_n.asm: New file.
 10391  	* mpn/pa64/add_n.asm: Remove.
 10392  	* mpn/pa64/sub_n.asm: Remove.
 10393  
 10394  	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
 10395  
 10396  2009-06-14  Torbjorn Granlund  <tege@gmplib.org>
 10397  
 10398  	* mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn.
 10399  	* mpn/x86_64/dive_1.asm: Likewise.
 10400  
 10401  	* mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not
 10402  	mpn_divexact_itch for 2-adic division.
 10403  	(all functions): Micro optimise.
 10404  
 10405  	* Makefile.am (libmp_la_SOURCES): Add nextprime.c.
 10406  
 10407  2009-06-13  Torbjorn Granlund  <tege@gmplib.org>
 10408  
 10409  	* gmp-h.in (mpn_perfect_power_p): Declare.
 10410  	* configure.in (gmp_mpn_functions): Add perfpow.
 10411  	* mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p.
 10412  
 10413  2009-06-13  Martin Boij  <mboij@kth.se>
 10414  
 10415  	* mpn/generic/perfpow.c: New file.
 10416  	* tests/mpz/t-perfpow.c: Rewrite.
 10417  
 10418  2009-06-12  Torbjorn Granlund  <tege@gmplib.org>
 10419  
 10420  	* mpn/generic/bdiv_qr.c: New file.
 10421  	* mpn/generic/bdiv_q.c: New file.
 10422  	* configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q.
 10423  	* gmp-impl.h: Declare new functions.
 10424  
 10425  	* nextprime.c: New file.
 10426  	* gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime):
 10427  	Declare.
 10428  	* Makefile.am (libgmp_la_SOURCES): Add nextprime.c.
 10429  
 10430  2009-06-11  Torbjorn Granlund  <tege@gmplib.org>
 10431  
 10432  	* mpn/generic/trialdiv.c: New file.
 10433  	* gen-trialdivtab.c: New file.
 10434  	* configure.in (gmp_mpn_functions): Add trialdiv.
 10435  	* gmp-impl.h (mpn_trialdiv): Declare
 10436  	* Makefile.am: Add rules for gen-trialdivtab and trialdiv.
 10437  
 10438  	* longlong.h (arm count_leading_zeros): Define for armv5.
 10439  
 10440  	* gmp-impl.h: Move down toom itch functions to after we've #defined
 10441  	all THRESHOLDs.
 10442  
 10443  	* dumbmp.c (isprime): Replace with slightly less inefficient code.
 10444  	(mpz_tdiv_r): New function.
 10445  
 10446  2009-06-11  Niels Möller  <nisse@lysator.liu.se>
 10447  
 10448  	Support for mpn_toom32_mul in speed:
 10449  	* tune/speed.c (routine): Added mpn_toom32_mul.
 10450  	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro.
 10451  	* tune/common.c (speed_mpn_toom32_mul): New function.
 10452  
 10453  	* gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed
 10454  	for the calls to mpn_toom22_mul.
 10455  	(ABOVE_THRESHOLD): Moved this and related macros so it can be used
 10456  	by mpn_toom32_mul_itch.
 10457  	(mpn_toom22_mul_itch): Count scratch space for recursive calls.
 10458  
 10459  2009-06-11  Torbjorn Granlund  <tege@gmplib.org>
 10460  
 10461  	* mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful
 10462  	also for k6 and non-sse p6.
 10463  
 10464  2009-06-10  Torbjorn Granlund  <tege@gmplib.org>
 10465  
 10466  	* mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks.
 10467  
 10468  	* mpn/x86/mod_1.asm: Remove obsolete file.
 10469  	* mpn/x86/k7/mmx/mod_1.asm: Likewise.
 10470  	* mpn/x86/pentium4/sse2/mod_1.asm: Likewise.
 10471  	* mpn/x86/p6/mod_1.asm: Likewise.
 10472  	* mpn/x86/pentium/mod_1.asm: Likewise.
 10473  
 10474  2009-06-08  Niels Möller  <nisse@lysator.liu.se>
 10475  
 10476  	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce
 10477  	the need for scratch space, and get rid of TMP_ALLOC. Also use
 10478  	mpn_toom_eval_dgr3_pm1.
 10479  
 10480  	* mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts):
 10481  	Stricter ASSERTs based on maximum size of polynomial coefficients.
 10482  	Improved comments on the signedness of intermediate values.
 10483  
 10484  2009-06-07  Torbjorn Granlund  <tege@gmplib.org>
 10485  
 10486  	* mpn/generic/toom2_sqr.c: Make it actually work.
 10487  
 10488  	* mpn/generic/toom3_sqr.c: Reduce local scratch space.
 10489  
 10490  2009-06-05  Torbjorn Granlund  <tege@gmplib.org>
 10491  
 10492  	* mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200.
 10493  	(MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide
 10494  	FFT_TABLE2_SIZE if they are defined.
 10495  	(struct nk): Use bit field.
 10496  
 10497  2009-06-05  Niels Möller  <nisse@lysator.liu.se>
 10498  
 10499  	* mpn/generic/toom44_mul.c (mpn_toom44_mult): Use
 10500  	mpn_toom_eval_dgr3_pm1.
 10501  
 10502  	* mpn/generic/toom_eval_dgr3_pm1.c: New file.
 10503  
 10504  	* mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts):
 10505  	Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U.
 10506  
 10507  	* mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to
 10508  	reduce the need for scratch space, and get rid of TMP_ALLOC.
 10509  
 10510  2009-06-05  Torbjorn Granlund  <tege@gmplib.org>
 10511  
 10512  	* mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to
 10513  	mpn_bdiv_q_1_pi1, if the latter is NATIVE.
 10514  
 10515  2009-06-04  Torbjorn Granlund  <tege@gmplib.org>
 10516  
 10517  	* mpn/x86_64/bdiv_q_1.asm: New file.
 10518  
 10519  	* configure.in (HAVE_NATIVE): Add recently added functions.
 10520  	(GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n.
 10521  
 10522  	* tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1):
 10523  	New functions.
 10524  	* tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
 10525  	* tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define.
 10526  	(SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define.
 10527  
 10528  	* configure.in (gmp_mpn_functions): Add bdiv_q_1.
 10529  	* mpn/generic/bdiv_q_1.c: New file.
 10530  	* mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
 10531  	* gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare.
 10532  
 10533  	* mpn/x86_64/lshift.asm: Cleanup.
 10534  	* mpn/x86_64/rshift.asm: Cleanup.
 10535  
 10536  	* mpn/x86_64/addlsh1_n.asm: Removed.
 10537  	* mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle
 10538  	addlsh1_n and rsblsh1_n functionality.
 10539  
 10540  	* tests/refmpn.c (refmpn_rsblsh1_n): New function.
 10541  	* tests/devel/try.c: Test mpn_rsblsh1_n.
 10542  	* tests/tests.h: Declare refmpn_rsblsh1_n.
 10543  	* tune/common.c (speed_mpn_rsblsh1_n): New function.
 10544  	* tune/speed.c (routine): Add mpn_rsblsh1_n.
 10545  	* tune/speed.h (mpn_rsblsh1_n): Declare.
 10546  
 10547  	* configure.in (gmp_mpn_functions_optional): Add rsblsh1_n.
 10548  	(GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc.
 10549  	* mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n.
 10550  	* gmp-impl.h (mpn_rsblsh1_n): Declare.
 10551  
 10552  	* mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC.
 10553  
 10554  2009-06-03  Marco Bodrato  <bodrato@mail.dm.unipi.it>
 10555  
 10556  	* mpn/generic/toom43_mul.c: New file.
 10557  	* mpn/generic/toom52_mul.c: New file.
 10558  	* mpn/generic/toom_interpolate_6pts.c: New file.
 10559  
 10560  2009-06-03  Torbjorn Granlund  <tege@gmplib.org>
 10561  
 10562  	* configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and
 10563  	toom_interpolate_6pts, but also some previously forgotten functions.
 10564  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise.
 10565  	* gmp-impl.h: Declare new functions. Sort toom function declarations.
 10566  
 10567  	* gmp-impl.h: Rename  toom4_* flags enum to toom7_*.  Relevant C files
 10568  	updated.
 10569  
 10570  	* mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove.
 10571  
 10572  2009-06-02  Torbjorn Granlund  <tege@gmplib.org>
 10573  
 10574  	* demos/factorize.c: Add -q command line option.
 10575  
 10576  2009-06-02  Marco Bodrato  <bodrato@mail.dm.unipi.it>
 10577  
 10578  	* mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed
 10579  	improvements.
 10580  
 10581  	* mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely
 10582  	do away with explicit scratch space.
 10583  	* gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype.
 10584  
 10585  	* mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n):
 10586  	Update toom_interpolate_5pts call without scratch space parameter.
 10587  	* mpn/generic/toom3_sqr.c: Likewise.
 10588  	* mpn/generic/toom42_mul.c: Likewise.
 10589  	* mpn/generic/toom33_mul.c: Likewise.
 10590  
 10591  	* mpn/generic/toom33_mul.c: Reduce local scratch space.
 10592  	* mpn/generic/toom32_mul.c: Rewrite to not use local scratch space.
 10593  
 10594  2009-06-02  Torbjorn Granlund  <tege@gmplib.org>
 10595  
 10596  	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for
 10597  	oo point.
 10598  
 10599  2009-06-01  Torbjorn Granlund  <tege@gmplib.org>
 10600  
 10601  	* mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and
 10602  	toom44 slicing code.
 10603  
 10604  	* mpz/remove.c: Correctly handle multiplicity that does not fit an int.
 10605  
 10606  	* Makefile.am (dist-hook): Check library version consistency.
 10607  
 10608  	* mpn/generic/mul.c: Rewrite.
 10609  
 10610  2009-05-29  Torbjorn Granlund  <tege@gmplib.org>
 10611  
 10612  	* tests/mpz/t-divis.c (check_random): Create huge test operands.
 10613  
 10614  	* mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC
 10615  	call, not multiple TMP_SALLOC.
 10616  	* mpn/generic/toom4_sqr.c: Likewise.
 10617  
 10618  	* gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code.
 10619  
 10620  	* mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT.
 10621  
 10622  	* mpn/generic/divis.c: Rewrite.
 10623  
 10624  	* gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t.
 10625  	(mpn_toom2_sqr_itch): Simplify.
 10626  
 10627  	* mpn/generic/mu_bdiv_qr.c: Implement properly.
 10628  
 10629  2009-05-27  Torbjorn Granlund  <tege@gmplib.org>
 10630  
 10631  	* mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function.
 10632  	* mpn/generic/mod_1_2.c: Likewise.
 10633  	* mpn/generic/mod_1_3.c: Likewise.
 10634  	* mpn/generic/mod_1_4.c: Likewise.
 10635  
 10636  	* tune: Add speed measuring of toom22, toom33, and toom44.
 10637  
 10638  	* mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient
 10639  	product better.
 10640  
 10641  2009-05-26  Torbjorn Granlund  <tege@gmplib.org>
 10642  
 10643  	* tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for
 10644  	better huge-operands performance.
 10645  
 10646  2009-05-24  Torbjorn Granlund  <tege@gmplib.org>
 10647  
 10648  	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$".
 10649  
 10650  2009-05-23  Torbjorn Granlund  <tege@gmplib.org>
 10651  
 10652  	* gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p):
 10653  	Declare using __GMP_ATTRIBUTE_PURE.
 10654  
 10655  	* tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N
 10656  	functions.
 10657  	(one): Remove redundant size loop exit condition.
 10658  
 10659  2009-05-20  Torbjorn Granlund  <tege@gmplib.org>
 10660  
 10661  	* mpn/x86/pentium4/sse2/mod_1_4.asm: New file.
 10662  	* mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code).
 10663  
 10664  2009-05-18  Torbjorn Granlund  <tege@gmplib.org>
 10665  
 10666  	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4.
 10667  	(__GNU_MP_VERSION_PATCHLEVEL): Set to -1.
 10668  
 10669  	* mpn/x86_64/mod_1_4.asm: New file.
 10670  
 10671  	* mpn/asm-defs.m4: Correct names for mod_1_N functions.
 10672  	Add defines for corresponding cps functions.
 10673  
 10674  	* mpn/generic/mod_1_2.c: Support any sizes > 1.
 10675  	* mpn/generic/mod_1_3.c: Likewise.
 10676  	* mpn/generic/mod_1_4.c: Likewise.
 10677  
 10678  2009-05-12  Torbjorn Granlund  <tege@gmplib.org>
 10679  
 10680  	* Version 4.3.1 released.
 10681  
 10682  2009-05-11  Torbjorn Granlund  <tege@gmplib.org>
 10683  
 10684  	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
 10685  
 10686  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
 10687  	Bump version info.
 10688  
 10689  2009-05-09  Torbjorn Granlund  <tege@gmplib.org>
 10690  
 10691  	* tests/mpz: Add MPZ_CHECK_FORMAT to many tests.
 10692  
 10693  2009-05-07  Torbjorn Granlund  <tege@gmplib.org>
 10694  
 10695  	* mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is
 10696  	defined in x86-defs.m4.
 10697  
 10698  2009-05-06  Torbjorn Granlund  <tege@gmplib.org>
 10699  
 10700  	* mpn/x86/p6/aors_n.asm: Use L() for labels.
 10701  	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
 10702  	* mpn/x86/pentium4/sse2/mul_1.asm: Likewise.
 10703  	* mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise.
 10704  	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
 10705  	* mpn/x86_64/lshift.asm: Likewise.
 10706  	* mpn/x86_64/rshift.asm: Likewise.
 10707  
 10708  	* tests/cxx/t-locale.cc (point_string): Declare as extern "C" to
 10709  	placate compilers that mangle variable names.
 10710  
 10711  2009-05-04  Torbjorn Granlund  <tege@gmplib.org>
 10712  
 10713  	* tests/mpz/t-gcd.c: Generate operands that are multiple of each other.
 10714  
 10715  2009-05-01  Torbjorn Granlund  <tege@gmplib.org>
 10716  
 10717  	* gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems.
 10718  	(gmp_randinit_set): Add missing __GMP_DECLSPEC.
 10719  
 10720  2009-04-28  Torbjorn Granlund  <tege@gmplib.org>
 10721  
 10722  	* mpn/generic/neg_n.c: New file.
 10723  	* configure.in (gmp_mpn_functions): Add neg_n.
 10724  	* mpn/asm-defs.m4 (define_mpn): Add neg_n.
 10725  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c.
 10726  	* gmp-h.in: Handle mpn_neg_n properly.
 10727  
 10728  	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify.
 10729  
 10730  	* mpn/generic/gcdext.c: Change some MPN_NORMALIZE to
 10731  	MPN_NORMALIZE_NOT_ZERO.
 10732  	* mpn/generic/gcdext_lehmer.c: Likewise.
 10733  	Add a MPN_NORMALIZE_NOT_ZERO.
 10734  
 10735  	* mpn/generic/binvert.c: Remove own mpn_neg_n.
 10736  
 10737  	* tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls.
 10738  
 10739  2009-04-27  Torbjorn Granlund  <tege@gmplib.org>
 10740  
 10741  	* mpn/Makefile.am (TARG_DIST): Add minithres.
 10742  
 10743  	* mpn/generic/bdiv_dbm1c.c: Handle nails.
 10744  
 10745  2009-04-26  Torbjorn Granlund  <tege@gmplib.org>
 10746  
 10747  	* config.guess: Recognise more POWER processor types.
 10748  
 10749  2009-04-25  Torbjorn Granlund  <tege@gmplib.org>
 10750  
 10751  	* mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug.
 10752  	* mpn/x86/darwin.m4: Define symbol "DARWIN".
 10753  
 10754  2009-04-19  Torbjorn Granlund  <tege@gmplib.org>
 10755  
 10756  	* mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort().
 10757  	* mpn/generic/powm_sec.c: Likewise.
 10758  
 10759  	* mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define.  Add dummy variants
 10760  	for other m4 files.
 10761  	* mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC.
 10762  	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
 10763  
 10764  2009-04-16  Torbjorn Granlund  <tege@gmplib.org>
 10765  
 10766  	* mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define.
 10767  	* mpn/x86_64/darwin.m4: Likewise.
 10768  	* mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT.
 10769  
 10770  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
 10771  	Remove an unused variable.
 10772  
 10773  	* mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right.
 10774  
 10775  2009-04-14  Torbjorn Granlund  <tege@gmplib.org>
 10776  
 10777  	* Version 4.3.0 released.
 10778  
 10779  	* scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy
 10780  	argument.
 10781  	* scanf/sscanffuns.c (scan): Disable vsscanf variant for now.
 10782  
 10783  2009-04-13  Torbjorn Granlund  <tege@gmplib.org>
 10784  
 10785  	* scanf/sscanffuns.c (scan): Rewrite to use stdarg.
 10786  
 10787  	* tests/mpz/t-root.c: Rewrite.  Add unconditional gcc 4.3.2 tests.
 10788  
 10789  2009-04-09  Torbjorn Granlund  <tege@gmplib.org>
 10790  
 10791  	* mpn/generic/powm.c: New file.
 10792  	* mpn/generic/powlo.c: New file.
 10793  	* mpn/generic/powm_sec.c: New file.
 10794  	* configure.in (gmp_mpn_functions): List new functions.
 10795  
 10796  2009-04-08  Torbjorn Granlund  <tege@gmplib.org>
 10797  
 10798  	* mpz/urandomm.c: Amend last fix.
 10799  
 10800  2009-04-06  Torbjorn Granlund  <tege@gmplib.org>
 10801  
 10802  	* configure.in: Support Sun cc for x86_64.
 10803  
 10804  	* mpz/urandomm.c: Handle operand overlap.
 10805  
 10806  2009-03-11  Torbjorn Granlund  <tege@gmplib.org>
 10807  
 10808  	* configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that
 10809  	GCC now passes the proper options.
 10810  
 10811  2009-03-09  Torbjorn Granlund  <tege@gmplib.org>
 10812  
 10813  	* mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised
 10814  	case.
 10815  
 10816  2009-03-05  Torbjorn Granlund  <tege@gmplib.org>
 10817  
 10818  	* ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h,
 10819  	pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update.
 10820  
 10821  2009-03-03  Torbjorn Granlund  <tege@gmplib.org>
 10822  
 10823  	* mpn/ia64/bdiv_dbm1c.asm: Accept/return carry.
 10824  
 10825  2009-03-02  Torbjorn Granlund  <tege@gmplib.org>
 10826  
 10827  	* configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris
 10828  	system compiler.
 10829  
 10830  2009-03-01  Torbjorn Granlund  <tege@gmplib.org>
 10831  
 10832  	* longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer
 10833  	gcc.
 10834  
 10835  2009-02-04  Torbjorn Granlund  <tege@gmplib.org>
 10836  
 10837  	* mpn/generic/redc_2.c: Remove code for testing and timing.  Update
 10838  	to current FSF header.
 10839  	* mpn/generic/redc_1.c: Update to current FSF header.
 10840  
 10841  2009-01-21  Torbjorn Granlund  <tege@gmplib.org>
 10842  
 10843  	* mpz/powm.c (redc): Remove.
 10844  	(mpz_powm): Use mpn_redc_1 instead of redc.
 10845  
 10846  	* tests/mpz/t-powm.c: Rewrite reference code.
 10847  
 10848  2009-01-18  Torbjorn Granlund  <tege@gmplib.org>
 10849  
 10850  	* tests/mpz: Increase reps for many tests.
 10851  
 10852  	* mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of
 10853  	mpn_sub_1 (works around gcc 4.3 bugs and is also faster).
 10854  
 10855  2009-01-16  Torbjorn Granlund  <tege@gmplib.org>
 10856  
 10857  	* tests/tests.h: Declare refmpn_divrem_2.
 10858  
 10859  2009-01-15  Torbjorn Granlund  <tege@gmplib.org>
 10860  
 10861  	* mpz/perfpow.c: Add TMP_FREE before every return statement.
 10862  
 10863  	* mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE.
 10864  
 10865  	* configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2,
 10866  	the change was accidental and cause too much miscompilation.
 10867  
 10868  2009-01-14  Torbjorn Granlund  <tege@gmplib.org>
 10869  
 10870  	* tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when
 10871  	longlong.h specified UDIV_PREINV_ALWAYS.
 10872  
 10873  	* mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation
 10874  	divisor.
 10875  
 10876  2009-01-13  Torbjorn Granlund  <tege@gmplib.org>
 10877  
 10878  	* tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD,
 10879  	MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD.
 10880  
 10881  	* mpn/generic/mod_1.c: Rewrite.
 10882  	* mpn/generic/mod_1_1.c: New file.
 10883  	* mpn/generic/mod_1_2.c: New file.
 10884  	* mpn/generic/mod_1_3.c: New file.
 10885  	* mpn/generic/mod_1_4.c: New file.
 10886  	* configure.in (gmp_mpn_functions): Add mod_1_*.
 10887  	* mpn/asm-defs.m4 (define_mpn): Add mod_1_*.
 10888  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c.
 10889  	* gmp-impl.h: Declare new mpn_mod_1s_* functions and associated
 10890  	THRESHOLD macros.
 10891  	(udiv_rnd_preinv): New macro.
 10892  
 10893  2009-01-12  Torbjorn Granlund  <tege@gmplib.org>
 10894  
 10895  	* tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1.
 10896  
 10897  2009-01-08  Torbjorn Granlund  <tege@gmplib.org>
 10898  
 10899  	* tests/mpz/t-nextprime.c: New test file.
 10900  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime.
 10901  
 10902  	From Niels Möller:
 10903  	* mpz/nextprime.c: Handle large prime gaps by limiting incr.
 10904  
 10905  2009-01-04  Torbjorn Granlund  <tege@gmplib.org>
 10906  
 10907  	* mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source
 10908  	pointers after reallocation.  Misc cleanup.
 10909  
 10910  	* gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N.
 10911  
 10912  	* mpn/x86/fat/diveby3.c: New file.
 10913  
 10914  2008-12-30  Niels Möller  <nisse@lysator.liu.se>
 10915  
 10916  	* doc/gmp.texi (Greatest Common Divisor Algorithms): Updated
 10917  	section on GCD algorithms.
 10918  
 10919  2008-12-29  Torbjorn Granlund  <tege@gmplib.org>
 10920  
 10921  	* doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4
 10922  	and unbalanced multiplication.
 10923  	(Radix to Binary): Add warning that text is outdated,
 10924  	(Contributors): Fix typos.
 10925  
 10926  	* mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming
 10927  	unreachable recursive functions.
 10928  	* gmp-impl.h: Update toom itch functions.
 10929  
 10930  	* mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to
 10931  	placate tuneup.
 10932  
 10933  2008-12-28  Torbjorn Granlund  <tege@gmplib.org>
 10934  
 10935  	* mpn/x86_64/pentium4/aors_n.asm: Tune prologue code.
 10936  
 10937  	* mpn/x86_64/pentium4/aorslsh1_n.asm: New file.
 10938  
 10939  	* mpn/x86_64/darwin.m4: Define symbol "DARWIN".
 10940  	* mpn/x86_64/invert_limb.asm: Work around darwin quirks.
 10941  
 10942  	* mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin.
 10943  
 10944  	* mpn/x86_64/invert_limb.asm: New file.
 10945  
 10946  2008-12-27  Torbjorn Granlund  <tege@gmplib.org>
 10947  
 10948  	* mpn/x86_64/core2/aorslsh1_n.asm: New file.
 10949  
 10950  2008-12-26  Torbjorn Granlund  <tege@gmplib.org>
 10951  
 10952  	* mpz/perfpow.c: Handle negative arguments properly.
 10953  	* tests/mpz/t-perfpow.c: New file.
 10954  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow.
 10955  
 10956  2008-12-23  Torbjorn Granlund  <tege@gmplib.org>
 10957  
 10958  	* tests/mpz/t-mul.c (dump_abort): Improve error message.
 10959  
 10960  	* gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c:
 10961  	Remove private mpn_zero_p.
 10962  
 10963  	* tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD.
 10964  	(tune_sqr): Tune for SQR_TOOM4_THRESHOLD.
 10965  
 10966  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and
 10967  	toom4_sqr.c.
 10968  
 10969  	* configure.in (gmp_mpn_functions): Toom function updates.
 10970  
 10971  	* Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c.  Function names changed
 10972  	accordingly.
 10973  
 10974  	* mpn/toomMN_mul.c: Add scratch parameter.  Do recursive multiplies
 10975  	properly.  Misc tuning.  Remove CHECK and TIMING code.
 10976  
 10977  	* mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files.
 10978  
 10979  	* gmp-impl.h (mpn_toomMN_mul_itch): Several new functions.
 10980  	(mpn_zero_p): New functions.
 10981  	Add various TOOM4/TOOM44 related parameters.
 10982  	Update mpn_toomMN_mul prototypes.
 10983  
 10984  	* mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul.  Use TMP_BALLOC
 10985  	instead of malloc.
 10986  	(mpn_sqr_n): Analogous changes.
 10987  
 10988  	* mpn/generic/mul.c: Update unbalanced toom code to pass scratch space.
 10989  
 10990  2008-12-21  Torbjorn Granlund  <tege@gmplib.org>
 10991  
 10992  	* mpz/nextprime.c: Add TMP_SDECL/MARK/FREE.
 10993  
 10994  2008-12-20  Torbjorn Granlund  <tege@gmplib.org>
 10995  
 10996  	* mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface.
 10997  	(invsqrttab): New table, remove table approx_tab.
 10998  	(mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call.
 10999  	(mpn_sqrtrem): Update mpn_sqrtrem1 call.
 11000  
 11001  2008-12-18  Torbjorn Granlund  <tege@gmplib.org>
 11002  
 11003  	* mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5).
 11004  	Give credit to authors.
 11005  
 11006  	* mpn/x86_64/redc_1.asm: Align stack as mandated by ABI.
 11007  
 11008  	* mpn/x86_64/divrem_2.asm: Add some comments.
 11009  
 11010  	* mpn/x86_64/darwin.m4: New file.
 11011  	* configure.in: Use x86_64/darwin.m4.
 11012  
 11013  2008-12-15  Torbjorn Granlund  <tege@gmplib.org>
 11014  
 11015  	* doc/projects.html: Remove GCD and division projects, update text on
 11016  	multiplication.
 11017  
 11018  	* doc/tasks.html: Add a caution about that the file is somewhat
 11019  	outdated.
 11020  
 11021  2008-12-14  Torbjorn Granlund  <tege@gmplib.org>
 11022  
 11023  	* mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1,
 11024  	much improved for mpn_submul_1).
 11025  	* mpn/alpha/ev6/addmul_1: File removed.
 11026  	* mpn/alpha/ev6/submul_1: File removed.
 11027  
 11028  2008-12-09  Torbjorn Granlund  <tege@gmplib.org>
 11029  
 11030  	From David Harvey:
 11031  	* mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed.
 11032  
 11033  	* mpn/powerpc64/mode64/divrem_1.asm: Rewrite.
 11034  
 11035  	* mpn/powerpc64/mode64/mul_basecase.asm: New file.
 11036  
 11037  2008-12-08  Torbjorn Granlund  <tege@gmplib.org>
 11038  
 11039  	* mpn/powerpc64/mode64/gmp-mparam.h: New file.
 11040  
 11041  	* gmp-impl.h: Additional cleanups.
 11042  	(mpn_set_str_compute_powtab): New prototype.
 11043  	(mpn_powm, mpn_powlo): New prototypes.
 11044  
 11045  	* mpz/pow_ui.c: Handle some small exponents locally.
 11046  
 11047  2008-12-07  Torbjorn Granlund  <tege@gmplib.org>
 11048  
 11049  	* mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h).
 11050  
 11051  	* tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving
 11052  	the #define mpn_set_str* before including gmp-impl.h.
 11053  
 11054  	* All files: Change _PROTO => __GMP_PROTO.
 11055  
 11056  	* tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad.
 11057  	* tune/common.c (speed_mpn_dc_set_str): Remove, it is broken.
 11058  
 11059  	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static,
 11060  	and inline it.
 11061  
 11062  	* gmp-impl.h: Major cleanup.
 11063  	(Remove formal parameter names.  Use __GMP_PROTO consistently.  Move
 11064  	__GMP_PROTO and __MPN use to adjacent lines for declared function.
 11065  	Fix typos.  Remove code inside #if 0.)
 11066  
 11067  	* configure.in (gmp_mpn_functions): Add mul_toom33.  Reformat.
 11068  
 11069  2008-12-05  Torbjorn Granlund  <tege@gmplib.org>
 11070  
 11071  	* mpn/generic/redc_1.c: New file.
 11072  	* mpn/generic/redc_2.c: New file.
 11073  
 11074  	* configure.in (gmp_mpn_functions): List redc_1 and redc_2.
 11075  	(HAVE_NATIVE): Likewise.
 11076  
 11077  	* tune/common.c (speed_mpn_redc_1): Renamed from speed_redc.
 11078  	* tune/speed.c (routine): Remove "redc", and "mpn_redc_1".
 11079  	* tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC.
 11080  	Updated call.
 11081  	* tune/tuneup.c (tune_powm): Update redc call.
 11082  
 11083  2008-12-04  Torbjorn Granlund  <tege@gmplib.org>
 11084  
 11085  	* mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code
 11086  	and addlsh1 loop.  Misc cleanup.
 11087  
 11088  2008-12-02  Torbjorn Granlund  <tege@gmplib.org>
 11089  
 11090  	* mpn/x86_64/sqr_basecase.asm: New file.
 11091  
 11092  2008-11-30  Torbjorn Granlund  <tege@gmplib.org>
 11093  
 11094  	* mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant.
 11095  
 11096  2008-11-28  Torbjorn Granlund  <tege@gmplib.org>
 11097  
 11098  	* mpn/x86_64/redc_1.asm: Rewrite.
 11099  
 11100  2008-11-27  Torbjorn Granlund  <tege@gmplib.org>
 11101  
 11102  	* tests/refmpn.c (refmpn_redc_1): New function.
 11103  
 11104  2008-11-25  Torbjorn Granlund  <tege@gmplib.org>
 11105  
 11106  	* mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1.
 11107  
 11108  2008-11-23  Torbjorn Granlund  <tege@gmplib.org>
 11109  
 11110  	* mpn/x86_64/divrem_1.asm: Rewrite.
 11111  
 11112  	* alpha/divrem_2.asm: New file.
 11113  	* powerpc32/divrem_2.asm: New file.
 11114  	* powerpc64/mode64/divrem_2.asm: New file.
 11115  	* x86/divrem_2.asm: New file.
 11116  	* x86_64/divrem_2.asm: New file.
 11117  	* tests/refmpn.c (refmpn_divrem_2): New function.
 11118  
 11119  2008-11-22  Torbjorn Granlund  <tege@gmplib.org>
 11120  
 11121  	* mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed.
 11122  	* mpn/x86/k7/aorsmul_1.asm: Likewise.
 11123  
 11124  	* acinclude.m4 (GMP_VERSION): Include last component even when zero.
 11125  
 11126  2008-11-21  Torbjorn Granlund  <tege@gmplib.org>
 11127  
 11128  	* mpn/x86_64/README: Rewrite.
 11129  
 11130  	* tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for
 11131  	printf type correctness.
 11132  
 11133  	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
 11134  
 11135  	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
 11136  	Bump version info.
 11137  
 11138  2008-11-20  Torbjorn Granlund  <tege@gmplib.org>
 11139  
 11140  	* gmp-impl.h: Rename modlimb_invert to binvert_limb.
 11141  	* tune/speed.h: Likewise.
 11142  	* tune/modlinv.c: Likewise.
 11143  	* tune/common.c: Likewise.
 11144  	* tests/t-modlinv.c: Likewise.
 11145  	* tests/t-constants.c: Likewise.
 11146  	* mpn/sparc64/mode1o.c: Likewise.
 11147  	* mpn/alpha/dive_1.c: Likewise.
 11148  	* mpn/sparc64/dive_1.c: Likewise.
 11149  	* mpn/generic/mode1o.c: Likewise.
 11150  	* mpn/generic/dive_1.c: Likewise.
 11151  	* mpn/generic/bdivmod.c: Likewise.
 11152  	* mpn/alpha/mode1o.asm: Likewise.
 11153  	* mpn/asm-defs.m4: Likewise.
 11154  	* mpn/ia64/mode1o.asm: Likewise.
 11155  	* mpn/powerpc32/README: Likewise.
 11156  	* mpn/powerpc32/mode1o.asm: Likewise.
 11157  	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
 11158  	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
 11159  	* mpn/x86/dive_1.asm: Likewise.
 11160  	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
 11161  	* mpn/x86/k6/mode1o.asm: Likewise.
 11162  	* mpn/x86/k7/dive_1.asm: Likewise.
 11163  	* mpn/x86/k7/mode1o.asm: Likewise.
 11164  	* mpn/x86/p6/dive_1.asm: Likewise.
 11165  	* mpn/x86/p6/mode1o.asm: Likewise.
 11166  	* mpn/x86/pentium/dive_1.asm: Likewise.
 11167  	* mpn/x86/pentium/mode1o.asm: Likewise.
 11168  	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
 11169  	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
 11170  	* mpn/x86_64/dive_1.asm: Likewise.
 11171  	* mpn/x86_64/mode1o.asm: Likewise.
 11172  
 11173  	* mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment
 11174  	neutral loop.
 11175  
 11176  2008-11-18  Torbjorn Granlund  <tege@gmplib.org>
 11177  
 11178  	* configure.in: Remove gcd_finda related declarations.
 11179  	* gmp-impl.h (mpn_gcd_finda): Remove declaration.
 11180  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda.
 11181  	* mpn/asm-defs.m4: Remove define_mpn(gcd_finda).
 11182  	* mpn/x86/k6/gcd_finda.asm: Remove file.
 11183  	* tests/devel/try.c (param_init): Remove mpn_gcd_finda.
 11184  	(choice_array): Remove mpn_gcd_finda.
 11185  	* tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda.
 11186  	* tests/refmpn.c (refmpn_gcd_finda): Remove.
 11187  	* tests/tests.h (refmpn_gcd_finda): Remove declaration.
 11188  	* tune/common.c (speed_mpn_gcd_finda): Remove.
 11189  	* tune/gcd_finda_gen.c: Remove file.
 11190  	* tune/speed.h (speed_mpn_gcd_finda): Remove declaration.
 11191  	* tune/speed.c (routine): Remove mpn_gcd_finda entry.
 11192  
 11193  	* tests/mpz/t-powm.c: Print test number when failing a test.
 11194  
 11195  	* mpn/x86_64/redc_1.asm (CALL): Move from here...
 11196  	* mpn/x86_64/x86_64-defs.m4: ...to here.
 11197  
 11198  	* gmp-impl.h (mpn_jacobi_base): Remove parameter names.
 11199  
 11200  2008-11-11  Torbjorn Granlund  <tege@gmplib.org>
 11201  
 11202  	* tests/mpf/t-conv.c: Add some specific tests, supplementing the random
 11203  	tests.
 11204  
 11205  2008-11-09  Torbjorn Granlund  <tege@gmplib.org>
 11206  
 11207  	* mpf/set_str.c: Default 'base' before letting exp_base inherit it.
 11208  
 11209  	* tests/cxx/t-prec.cc: Use the right precision for all float constants.
 11210  
 11211  2008-11-08  Torbjorn Granlund  <tege@gmplib.org>
 11212  
 11213  	* doc/gmp.texi (Float Comparison): Update mpf_eq documentation.
 11214  
 11215  	* mpf/eq.c: Compare the right number of bits.
 11216  
 11217  2008-11-02  Torbjorn Granlund  <tege@gmplib.org>
 11218  
 11219  	Undo, it made testing too slow:
 11220  	* tests/mpz/t-mul.c: Use slower geometric progression for operand
 11221  	sizes.
 11222  
 11223  	* mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits.
 11224  
 11225  2008-10-31  Niels Möller  <nisse@lysator.liu.se>
 11226  
 11227  	* mpn/generic/hgcd2.c (div1): New function (taken from old gcdext
 11228  	implementation)
 11229  	(mpn_hgcd2): Use single precision for the second half of the work.
 11230  
 11231  2008-10-30  Torbjorn Granlund  <tege@gmplib.org>
 11232  
 11233  	* mpn/x86/p6/sse2/gmp-mparam.h: New file.
 11234  
 11235  2008-10-29  Torbjorn Granlund  <tege@gmplib.org>
 11236  
 11237  	* configure.in (x86 fat_path): Add "x86/p6/sse2".
 11238  
 11239  	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6
 11240  	(pentiumm, core2).
 11241  
 11242  	* mpn/x86/p6/sse2/mul_1.asm: New file.
 11243  	* mpn/x86/p6/sse2/addmul_1.asm: New file.
 11244  	* mpn/x86/p6/sse2/submul_1.asm: New file.
 11245  	* mpn/x86/p6/sse2/mul_basecase.asm: New file.
 11246  	* mpn/x86/p6/sse2/sqr_basecase.asm: New file.
 11247  	* mpn/x86/p6/sse2/popcount.asm: New file.
 11248  
 11249  	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for
 11250  	model and family.
 11251  
 11252  2008-10-28  Torbjorn Granlund  <tege@gmplib.org>
 11253  
 11254  	From Mickael Gastineau:
 11255  	* gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC.
 11256  
 11257  2008-10-27  Torbjorn Granlund  <tege@gmplib.org>
 11258  
 11259  	* gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE.
 11260  
 11261  2008-10-27  Niels Möller  <nisse@lysator.liu.se>
 11262  
 11263  	* tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once
 11264  	for each call to mpn_hgcd.
 11265  	(speed_mpn_hgcd_lehmer): Likewise.
 11266  
 11267  2008-10-26  Torbjorn Granlund  <tege@gmplib.org>
 11268  
 11269  	* configure.in: Point to p6/sse2 for pentiumm and core2.
 11270  
 11271  	* gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat
 11272  	definitions.
 11273  
 11274  	* tune/common.c, tune/speed.c, tune/speed.h:
 11275  	Add speed measurement of mpn_bdiv_dbm1c.
 11276  
 11277  2008-10-24  Torbjorn Granlund  <tege@gmplib.org>
 11278  
 11279  	* mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend.
 11280  
 11281  	* mpz/nextprime.c: Move declarations to function beginning.
 11282  
 11283  2008-10-23  Niels Möller  <nisse@lysator.liu.se>
 11284  
 11285  	* gmp-impl.h (DECL_gcdext_1): Deleted.
 11286  
 11287  2008-10-22  Torbjorn Granlund  <tege@gmplib.org>
 11288  
 11289  	* mpn/x86_64/atom/aors_n.asm: New file.
 11290  	* mpn/x86_64/atom/gmp-mparam.h: New file.
 11291  
 11292  2008-10-21  Torbjorn Granlund  <tege@gmplib.org>
 11293  
 11294  	With Neils Möller:
 11295  	* mpz/nextprime.c: Rewrite.
 11296  
 11297  	* tests/devel/try.c (main): Use strtol for 's' and 'S' optargs.
 11298  
 11299  	* mpn/x86_64/pentium4/rshift.asm: Misc cleanups.
 11300  	* mpn/x86_64/pentium4/lshift.asm: Likewise.
 11301  
 11302  	* mpn/x86_64/pentium4/aors_n.asm: Use fewer registers.
 11303  
 11304  	* configure.in: Set up specific path for x86_64/atom.
 11305  
 11306  2008-10-21  Niels Möller  <nisse@lysator.liu.se>
 11307  
 11308  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed
 11309  	qstack.c.
 11310  	* mpn/generic/qstack.c: Deleted obsolete file.
 11311  
 11312  2008-10-20  Torbjorn Granlund  <tege@gmplib.org>
 11313  
 11314  	* mpn/x86_64/core2/aorsmul_1.asm: New file.
 11315  
 11316  2008-10-19  Torbjorn Granlund  <tege@gmplib.org>
 11317  
 11318  	* mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE.
 11319  
 11320  	* gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS
 11321  	inside several of these macros.
 11322  
 11323  2008-10-17  Torbjorn Granlund  <tege@gmplib.org>
 11324  
 11325  	* tests/mpz/t-mul.c: Use slower geometric progression for operand
 11326  	sizes.  Do every other tests for same size operands.
 11327  
 11328  2008-10-15  Torbjorn Granlund  <tege@gmplib.org>
 11329  
 11330  	* mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue.
 11331  
 11332  	* mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old
 11333  	algorithm.
 11334  
 11335  	* config.guess, config.sub, configure.in: Support Intel Atom processor.
 11336  
 11337  2008-10-10  Torbjorn Granlund  <tege@gmplib.org>
 11338  
 11339  	* mpq/mul.c: Fix typo in last change.
 11340  
 11341  2008-10-09  Torbjorn Granlund  <tege@gmplib.org>
 11342  
 11343  	* tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug.
 11344  
 11345  2008-10-08  Torbjorn Granlund  <tege@gmplib.org>
 11346  
 11347  	* mpq/mul.c: Use TMP_ALLOC.  Cleanup.
 11348  	* mpq/div.c: Likewise.
 11349  
 11350  	* mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point
 11351  	addresses.
 11352  
 11353  2008-10-09  Niels Möller  <nisse@lysator.liu.se>
 11354  
 11355  	* mpn/x86/k7/gmp-mparam.h: Updated GCD-related values.
 11356  
 11357  2008-10-05  Torbjorn Granlund  <tege@gmplib.org>
 11358  
 11359  	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store
 11360  	mpn_fft_norm_modF return value, if (rec).
 11361  
 11362  2008-10-04  Torbjorn Granlund  <tege@gmplib.org>
 11363  
 11364  	* mpn/x86_64/aorsmul_1.asm: Replace with faster code.
 11365  	* mpn/x86_64/mul_1.asm: Likewise.
 11366  	* mpn/x86_64/addmul_2.asm: Likewise.
 11367  	* mpn/x86_64/mul_2.asm: Likewise.
 11368  	* mpn/x86_64/mul_basecase.asm: Likewise.
 11369  
 11370  2008-10-02  Torbjorn Granlund  <tege@gmplib.org>
 11371  
 11372  	* mpn/minithres/gmp-mparam.h: Update FFT values.
 11373  
 11374  2008-10-02  Niels Möller  <nisse@lysator.liu.se>
 11375  
 11376  	* hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug.
 11377  
 11378  2008-09-24  Torbjorn Granlund  <tege@gmplib.org>
 11379  
 11380  	* configure.in: Handle --enable-minithres.
 11381  	* mpn/minithres/gmp-mparam.h: Update all values.
 11382  
 11383  2008-09-22  Torbjorn Granlund  <tege@gmplib.org>
 11384  
 11385  	* tune/speed.c (routine): New entry for mpn_mul.
 11386  	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from
 11387  	SPEED_ROUTINE_MPN_MUL_BASECASE.
 11388  	(speed_mpn_mul): Renamed from speed_mpn_mul_basecase.
 11389  	(SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand.
 11390  
 11391  	* tune/common.c: Corresponding changes.
 11392  
 11393  2008-09-22  Niels Möller  <nisse@lysator.liu.se>
 11394  
 11395  	* mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function,
 11396  	replaces addmul2_n. Needs less copying.
 11397  	(mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface
 11398  	change in mpn_gcdext_subdiv_step
 11399  
 11400  	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use
 11401  	mpn_hgcd_mul_matrix1_vector.
 11402  	(hgcd_step): Updated for interface change in
 11403  	mpn_hgcd_mul_matrix1_inverse_vector.
 11404  
 11405  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
 11406  	interface changes in mpn_hgcd_mul_matrix1_vector,
 11407  	mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step.
 11408  
 11409  	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for
 11410  	interface change in mpn_hgcd_mul_matrix1_inverse_vector.
 11411  
 11412  	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use
 11413  	separate scratch arguments for the quotient and for the cofactor
 11414  	update.
 11415  
 11416  	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface
 11417  	change. Store first element in rp and leave ap unmodified. No
 11418  	additional scratch space or copying needed. Callers that require
 11419  	modification in place still need to copy one of the inputs.
 11420  	(mpn_hgcd_mul_matrix1_inverse_vector): Likewise.
 11421  
 11422  2008-09-22  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>
 11423  
 11424  	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0.
 11425  	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise.
 11426  
 11427  	* mpn/generic/gcd.c: Use libspeed for timing measurements.
 11428  
 11429  	* gmp-impl.h: Declare mpn_addaddmul_1msb0.
 11430  	* mpn/asm-defs.m4: Added addaddmul_1msb0.
 11431  	* mpn/x86_64/addaddmul_1msb0.asm: New file.
 11432  	* configure.in (gmp_mpn_functions_optional): Added
 11433  	addaddmul_1msb0.
 11434  	(HAVE_NATIVE): List addaddmul_1msb0.
 11435  
 11436  2008-09-21  Torbjorn Granlund  <tege@gmplib.org>
 11437  
 11438  	* mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default.
 11439  	(GET_STR_PRECOMPUTE_THRESHOLD): Likewise.
 11440  	Misc code cleanups.
 11441  
 11442  	* gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs.
 11443  
 11444  	Revert:
 11445  	* mpn/generic/set_str.c:
 11446  	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
 11447  
 11448  2008-09-18  Torbjorn Granlund  <tege@gmplib.org>
 11449  
 11450  	* mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define.
 11451  
 11452  	* mpn/ia64/diveby3.asm: Remove.
 11453  	* mpn/x86/diveby3.asm: Remove.
 11454  	* mpn/x86/k6/diveby3.asm: Remove.
 11455  	* mpn/x86/k7/diveby3.asm: Remove.
 11456  	* mpn/x86/p6/diveby3.asm: Remove.
 11457  	* mpn/x86/pentium/diveby3.asm: Remove.
 11458  	* mpn/x86_64/diveby3.asm: Remove.
 11459  	* mpn/x86/pentium4/sse2/diveby3.asm: Remove.
 11460  
 11461  	* configure.in (HAVE_NATIVE): List divexact_by3c.
 11462  
 11463  	* gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition.
 11464  	(DIVEXACT_BY3_METHOD): Don't default to 0 if
 11465  	HAVE_NATIVE_mpn_divexact_by3c.
 11466  
 11467  2008-09-18  Niels Möller  <nisse@lysator.liu.se>
 11468  
 11469  	* mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P.
 11470  
 11471  	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are
 11472  	normalized.
 11473  
 11474  2008-09-17  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>
 11475  
 11476  	* mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a
 11477  	slowdown for large inputs. As a compromise, use p = n/2 for the
 11478  	first iteration, and p = n/3 for the rest. Handle the first
 11479  	iteration specially, since the initial u0 and u1 are trivial.
 11480  
 11481  	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
 11482  	from 409 to 390.
 11483  
 11484  	* mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5.
 11485  	(mpn_gcdext): Use CHOOSE_P, and generalized the calculation of
 11486  	scratch space.
 11487  
 11488  	* tune/tuneup.c (tune_hgcd): Use default step factor.
 11489  
 11490  	* mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to
 11491  	412.
 11492  
 11493  	* mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the
 11494  	split when calling hgcd. Use p = 2n/3, as that seems better than
 11495  	the more obvious split p = n/2.
 11496  	(mpn_gcd): Use CHOOSE_P, and generalized the calculation of
 11497  	scratch space.
 11498  
 11499  2008-09-16  Torbjorn Granlund  <tege@gmplib.org>
 11500  
 11501  	* mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN
 11502  	functions.
 11503  
 11504  	* gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7,
 11505  	mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13,
 11506  	mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1.
 11507  
 11508  	* configure.in (gmp_mpn_functions): List bdiv_dbm1c.
 11509  	(HAVE_NATIVE): Likewise.
 11510  	* mpn/asm-defs.m4: Define bdiv_dbm1c.
 11511  	* gmp-impl.h (mpn_bdiv_dbm1c): Declare.
 11512  	(mpn_bdiv_dbm1): New macro.
 11513  	* mpn/generic/bdiv_dbm1c.c: New file.
 11514  	* mpn/alpha/bdiv_dbm1c.asm: New file.
 11515  	* mpn/ia64/bdiv_dbm1c.asm: New file.
 11516  	* mpn/powerpc32/bdiv_dbm1c.asm: New file.
 11517  	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file.
 11518  	* mpn/x86/bdiv_dbm1c.asm: New file.
 11519  	* mpn/x86_64/bdiv_dbm1c.asm: New file.
 11520  
 11521  	* mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function.
 11522  	Choose function depending on DIVEXACT_BY3_METHOD.
 11523  	* gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default.
 11524  
 11525  2008-09-16  Niels Möller  <nisse@lysator.liu.se>
 11526  
 11527  	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to
 11528  	gcdext.c, where it is used.
 11529  	* mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was
 11530  	mpn_hgcd_addmul2_n. Made static. Deleted input normalization.
 11531  	Deleted rn argument.
 11532  	(mpn_gcdext): Updated calls to addmul2_n, and added assertions.
 11533  
 11534  	* gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs.
 11535  	(MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb.
 11536  	(MPN_GCD_SUBDIV_STEP_ITCH): Likewise.
 11537  	(MPN_GCD_LEHMER_N_ITCH): Likewise.
 11538  
 11539  	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs.
 11540  	(hgcd_step): Use overlapping arguments to mpn_tdiv_qr.
 11541  	(mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds
 11542  	for the element size of the product. Needs two extra limbs of
 11543  	storage for the elements.
 11544  	(mpn_hgcd_itch): Updated storage calculation.
 11545  
 11546  	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use
 11547  	overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p.
 11548  
 11549  	* mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p.
 11550  
 11551  2008-09-15  Niels Möller  <nisse@lysator.liu.se>
 11552  
 11553  	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted
 11554  	tp pointer.
 11555  	(hgcd_matrix_update_q): Likewise.
 11556  	(mpn_hgcd_matrix_mul): Likewise.
 11557  	(mpn_hgcd_itch): Updated calculation of scratch space.
 11558  
 11559  	* gmp-impl.h (struct hgcd_matrix): Deleted tp pointer.
 11560  	(MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage.
 11561  	(mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations.
 11562  
 11563  2008-09-15  Niels Möller <nisse@lysator.liu.se>  <nisse@king.swox.se>
 11564  
 11565  	* mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New
 11566  	threshold.
 11567  
 11568  	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul.
 11569  	(mpn_hgcd_itch): Updated calculation of scratch space. Use
 11570  	count_leading_zeros to get the recursion depth.
 11571  
 11572  	* mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space,
 11573  	and use mpn_hgcd_itch.
 11574  
 11575  2008-09-15  Niels Möller  <nisse@lysator.liu.se>
 11576  
 11577  	* tune/tuneup.c (tune_matrix22_mul): New function.
 11578  	(all): Use it.
 11579  
 11580  	* tune/common.c (speed_mpn_matrix22_mul): New function.
 11581  
 11582  	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c.
 11583  
 11584  	* tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to
 11585  	select sizes for tests.
 11586  
 11587  	* gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold
 11588  
 11589  	* configure.in (gmp_mpn_functions): Added matrix22_mul.
 11590  	* gmp-impl.h: Added declarations for mpn_matrix22_mul and related
 11591  	functions.
 11592  
 11593  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
 11594  	matrix22_mul.c.
 11595  	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22.
 11596  
 11597  	* tests/mpn/t-matrix22.c: New file.
 11598  	* mpn/generic/matrix22_mul.c: New file.
 11599  
 11600  2008-09-11  Niels Möller  <nisse@king.swox.se>
 11601  
 11602  	* tune/tuneup.c: Updated tuning of gcdext.
 11603  
 11604  	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
 11605  	from 713 to 409.
 11606  
 11607  2008-09-11  Niels Möller  <nisse@lysator.liu.se>
 11608  
 11609  	* gmp-impl.h: Updated for gcdext changes.
 11610  	(GCDEXT_DC_THRESHOLD): New constant, renamed from
 11611  	GCDEXT_SCHOENHAGE_THRESHOLD.
 11612  
 11613  	* mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b
 11614  	as inputs.
 11615  	(mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd
 11616  	interface.
 11617  
 11618  	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n
 11619  	and made non-static. Changed interface to take non-normalized
 11620  	inputs, and only two size arguments.
 11621  	(mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n.
 11622  
 11623  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted
 11624  	function.
 11625  	(mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes
 11626  	inputs of equal size. Moved the code for the division step to a
 11627  	separate function...
 11628  	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New
 11629  	file, new function.
 11630  
 11631  	* configure.in (gmp_mpn_functions): Added gcdext_subdiv_step.
 11632  
 11633  2008-09-10  Torbjorn Granlund  <tege@gmplib.org>
 11634  
 11635  	* tests/devel/anymul_1.c: Include <string.h>.
 11636  
 11637  	* gmp-h.in: Unconditionally include <cstdio>.
 11638  
 11639  2008-09-10  Niels Möller  <nisse@lysator.liu.se>
 11640  
 11641  	* tune/common.c: #if:ed out speed_mpn_gcd_binary and
 11642  	speed_mpn_gcd_accel.
 11643  	* tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel
 11644  	and find_a.
 11645  	* tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c
 11646  	gcd_accel.c gcd_finda_gen.c.
 11647  	* tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD.
 11648  
 11649  	* mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses
 11650  	the new mpn_hgcd interface.
 11651  
 11652  	* */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to
 11653  	GCD_DC_THRESHOLD.
 11654  
 11655  	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was
 11656  	mpn_gcd_lehmer). Now takes inputs of equal size.
 11657  
 11658  	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2,
 11659  	to get better performance for small inputs.
 11660  
 11661  	* mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD.
 11662  	* mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to
 11663  	120.
 11664  	* */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to
 11665  	HGCD_THRESHOLD.
 11666  
 11667  2008-09-09  Torbjorn Granlund  <tege@gmplib.org>
 11668  
 11669  	* doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs.
 11670  
 11671  2008-09-09  Niels Möller  <nisse@lysator.liu.se>
 11672  
 11673  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted
 11674  	to new hgcd interface.
 11675  
 11676  	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro.
 11677  
 11678  	* hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made
 11679  	non-static.
 11680  
 11681  	* gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2.
 11682  
 11683  	* gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for
 11684  	division step. Added proper book-keeping of swaps, which affect
 11685  	the sign of the returned cofactor.
 11686  
 11687  	* tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext
 11688  	fails.
 11689  
 11690  	* gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle
 11691  	the special case n == 1 correctly.
 11692  
 11693  	* gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function.
 11694  	The special cancellation logic is not needed here.
 11695  
 11696  2008-09-08  Torbjorn Granlund  <tege@gmplib.org>
 11697  
 11698  	* mpn/generic/invert.c: Add working but slow code.
 11699  
 11700  	* mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros.
 11701  
 11702  	* mpn/ia64/submul_1.asm: Move some labels for broader assembler
 11703  	compatibility.
 11704  
 11705  	* gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare.
 11706  	* tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare.
 11707  	* tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4.
 11708  	(choice_array): Likewise.
 11709  	(call): Likewise.
 11710  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES):
 11711  	Add mul_3.c and mul_4.
 11712  	* mpn/asm-defs.m4: Define mul_3 and mul_4.
 11713  	* tests/refmpn.c (refmpn_mul_N): New function.
 11714  	(refmpn_mul_2): Remove old definition, call refmpn_mul_N.
 11715  	(refmpn_mul_3, refmpn_mul_4): New functions.
 11716  	* tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions.
 11717  	* tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare.
 11718  	* tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3.
 11719  
 11720  	* ltmain.sh: Update to libtool 1.5.24.
 11721  
 11722  	* mpn/generic/mul_toom22.c: Compute s and t more cleverly.
 11723  
 11724  2008-09-08  Niels Möller  <nisse@lysator.liu.se>
 11725  
 11726  	* tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref.
 11727  
 11728  	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function.
 11729  	(mpn_gcdext_lehmer): Various bugfixes.
 11730  
 11731  	* gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer.
 11732  
 11733  	* mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd.
 11734  	(mpn_gcd_lehmer): Added tp argument, for scratch space. Make both
 11735  	arguments odd before calling gcd_2.
 11736  
 11737  	* mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2,
 11738  	and return 0 immediately.
 11739  
 11740  	* gmp-impl.h (MPN_EXTRACT_NUMB): New macro.
 11741  
 11742  	* configure.in (gmp_mpn_functions): Added gcdext_lehmer.
 11743  
 11744  2008-09-05  Torbjorn Granlund  <tege@gmplib.org>
 11745  
 11746  	* mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of
 11747  	divexact_odd.
 11748  
 11749  	* doc/texinfo.tex: Update to 2007-06-29.13.
 11750  
 11751  	* doc/gmp.texi: Update GMP site URL.  Fix some typos.
 11752  
 11753  	* demos/pexpr.c (main): Allow bases up to 62.
 11754  
 11755  	* gmp-impl.h: Remove formal parameter names from function prototypes.
 11756  
 11757  	* config.guess: Recognize recent AMD and Itanium CPUs.
 11758  	Default X86 CPU recognition to configfsf.guess' value.
 11759  
 11760  	* configure.in: Handle core2 separately from athlon64.
 11761  
 11762  2008-09-05  Niels Möller  <nisse@lysator.liu.se>
 11763  
 11764  	* */Makefile.in, configure, aclocal.m4, config.in: Removed files
 11765  	from repository. They're instead generated by automake and
 11766  	autoconf before distribution.
 11767  
 11768  2008-08-25  Torbjorn Granlund  <tege@gmplib.org>
 11769  
 11770  	* mpf/set_str.c: Allocate mantissa space based on mantissa size,
 11771  	not on destination variable space.
 11772  	* mpf/set_str.c: Accept unary plus before exponent.
 11773  
 11774  2008-08-06  Torbjorn Granlund  <tege@gmplib.org>
 11775  
 11776  	* mpn/generic/mul_toom22.c: Add statistics gathering functionality,
 11777  	triggered by cpp predef STAT.
 11778  
 11779  	From David Harvey:
 11780  	* mpn/generic/mul_toom22.c: Decrease scratch space usage.
 11781  
 11782  2008-08-02  Torbjorn Granlund  <tege@gmplib.org>
 11783  
 11784  	* tests/misc/t-scanf.c: Avoid negative arguments to _ui functions.
 11785  	* tests/misc/t-printf.c: Likewise.
 11786  
 11787  	* acinclude.m4 (X86_PATTERN): Add geode.
 11788  
 11789  	* acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep.
 11790  
 11791  2008-08-01  Torbjorn Granlund  <tege@gmplib.org>
 11792  
 11793  	* acinclude.m4 (CL_AS_NOEXECSTACK): New.
 11794  	* configure.in: Use CL_AS_NOEXECSTACK.
 11795  	* mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK).
 11796  
 11797  	* gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of
 11798  	std::numeric_limits<double>::max_exponent for better portability.
 11799  
 11800  2008-07-29  Torbjorn Granlund  <tege@gmplib.org>
 11801  
 11802  	* gmpxx.h (__GMP_DBL_LIMBS): New #define.
 11803  	(__GMP_ULI_LIMBS): New #define.
 11804  	(__GMPXX_TMP_UI): New macro.
 11805  	(__GMPXX_TMP_SI): New macro.
 11806  	(__GMPXX_TMP_D): New macro.
 11807  	(struct __gmp_binary_and): Rewrite, using the new macros.
 11808  	(struct __gmp_binary_ior): Likewise.
 11809  	(struct __gmp_binary_xor): Likewise.
 11810  
 11811  2008-07-28  Torbjorn Granlund  <tege@gmplib.org>
 11812  
 11813  	* tests/cxx/t-binary.cc: Add some tests for logical operations.
 11814  
 11815  2008-07-24  Torbjorn Granlund  <tege@gmplib.org>
 11816  
 11817  	* gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove
 11818  	__GMPZZ_*.
 11819  	Remove repeated #undefs.
 11820  	(__gmp_alloc_cstring): Declare freefunc as extern "C".
 11821  
 11822  2008-07-23  Torbjorn Granlund  <tege@gmplib.org>
 11823  
 11824  	* gmp-h.in (__GMP_CC): New define, undocumented for now.
 11825  	(__GMP_CFLAGS): Likewise.
 11826  
 11827  2008-07-21  Torbjorn Granlund  <tege@gmplib.org>
 11828  
 11829  	* tests/amd64check.c: Fix a printf type clash.
 11830  
 11831  	* mpz/realloc.c: Amend last fix.
 11832  
 11833  	* gmp-h.in: Include <cstdlib> for C++.
 11834  	* gmp-h.in: Handle new gcc 4.3 inline semantics defaults.
 11835  
 11836  	* configfsf.guess: Update to version of 2008-04-14.
 11837  	* configfsf.sub: Update to version of 2008-06-16.
 11838  
 11839  	* configure.in: Separate core2 and athlon64 flags handling.
 11840  
 11841  2008-06-19  Torbjorn Granlund  <tege@gmplib.org>
 11842  
 11843  	* config.guess: Recognize pentiumm and AMD geode.
 11844  	* config.sub: Likewise.
 11845  	* configure.in: Likewise.
 11846  
 11847  2008-06-02  Torbjorn Granlund  <tege@gmplib.org>
 11848  
 11849  	* configure.in: Disallow odd nails sizes.
 11850  	* configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere.
 11851  
 11852  2008-05-23  Torbjorn Granlund  <tege@gmplib.org>
 11853  
 11854  	* mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t
 11855  	overflow.
 11856  	* mpz/realloc2.c: Likewise.
 11857  	* mpz/realloc.c: Detect mpz_t overflow.
 11858  
 11859  2008-05-22  Torbjorn Granlund  <tege@gmplib.org>
 11860  
 11861  	* configure.in (sparc): Remove -fast, it causes documented
 11862  	miscompilation.
 11863  
 11864  	* config.guess: Properly handle the "extended" variants of x86 cpuid.
 11865  
 11866  2008-05-09  Torbjorn Granlund  <tege@gmplib.org>
 11867  
 11868  	* gmp-impl.h (mpn_mul_fft): Now void.
 11869  	(udiv_qrnnd_preinv3): Special case for constant (nl).
 11870  
 11871  2008-05-08  Torbjorn Granlund  <tege@gmplib.org>
 11872  
 11873  	* mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)).
 11874  	(TRACE): Redefine to allow command line control.
 11875  	(mpn_mul_fft_internal): Now void, remove return value.
 11876  	(mpn_mul_fft): Likewise.
 11877  	(MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512.
 11878  	(mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice,
 11879  	then add/subtract result.  Get rid of temp allocation as a result.
 11880  	Remove some redundant CNST_LIMB.
 11881  	(mpn_fft_fftinv): Analogous changes.
 11882  	(mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and
 11883  	mpn_fft_fftinv.
 11884  
 11885  2008-03-10  Torbjorn Granlund  <tege@gmplib.org>
 11886  
 11887  	* tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed
 11888  	power-of-2 of test operands.
 11889  
 11890  2008-02-28  Torbjorn Granlund  <tege@gmplib.org>
 11891  
 11892  	* tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right
 11893  	shift.
 11894  
 11895  2008-02-27  Torbjorn Granlund  <tege@gmplib.org>
 11896  
 11897  	* mpz/mul_i.h: Check sml's size (not the signed small_mult).
 11898  
 11899  	* longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh
 11900  	when possible.
 11901  
 11902  	* longlong.h (count_trailing_zeros): Force destination register mode.
 11903  
 11904  	* gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not
 11905  	truncation.
 11906  
 11907  	* gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor):
 11908  	Add variants with unsigned long int argument.
 11909  
 11910  	* config.sub: Recog geode.
 11911  	* config.guess: Likewise.
 11912  	* acinclude.m4 (X86_PATTERN): Likewise.
 11913  
 11914  2008-02-10  Torbjorn Granlund  <tege@gmplib.org>
 11915  
 11916  	* mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug.
 11917  	* mpn/x86/x86-defs.m4 (Zdisp): Add more instructions.
 11918  
 11919  2008-02-08  Torbjorn Granlund  <tege@gmplib.org>
 11920  
 11921  	* mpn/x86_64/aors_n.asm: New file.
 11922  	* mpn/x86_64/add_n.asm: Delete.
 11923  	* mpn/x86_64/sub_n.asm: Delete.
 11924  
 11925  2008-02-07  Torbjorn Granlund  <tege@gmplib.org>
 11926  
 11927  	* mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change.
 11928  
 11929  2007-12-10  Torbjorn Granlund  <tege@swox.com>
 11930  
 11931  	* mpf/set_str.c (mpf_set_str): Write own code for converting the
 11932  	exponent, avoids strtol base < 36 limitation.
 11933  
 11934  2007-10-28  Torbjorn Granlund  <tege@swox.com>
 11935  
 11936  	* gmp-impl.h (mpn_dc_get_str_itch): New macro.
 11937  	(mpn_dc_get_str_powtab_alloc): New macro.
 11938  	(struct powers): Add field "shift".
 11939  
 11940  	* mpn/generic/get_str.c: Compute powers without low zero limbs; all
 11941  	functions modified.  Correct temporary allocation.  Misc cleanups.
 11942  
 11943  	* mpn/generic/set_str.c: Compute powers without low zero limbs; all
 11944  	functions modified.
 11945  	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
 11946  
 11947  2007-10-26  Torbjorn Granlund  <tege@swox.com>
 11948  
 11949  	* mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h.
 11950  	(mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm.
 11951  
 11952  2007-10-22  Torbjorn Granlund  <tege@swox.com>
 11953  
 11954  	* gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE.
 11955  	(mpn_sub_nc): Likewise.
 11956  
 11957  2007-10-17  Torbjorn Granlund  <tege@swox.com>
 11958  
 11959  	* tests/misc/t-printf.c: Fix a printf type clash.
 11960  	* tests/mpq/t-get_str.c: Likewise.
 11961  	* tests/mpz/t-import.c: Likewise.
 11962  
 11963  	* acinclude.m4: Conditionally disable some tests when compiled by a C++
 11964  	compiler.
 11965  
 11966  	* gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable.
 11967  
 11968  	* mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings.
 11969  
 11970  2007-10-08  Torbjorn Granlund  <tege@swox.com>
 11971  
 11972  	* mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA.
 11973  	* mpn/powerpc32/darwin.m4 (LEAL): Likewise.
 11974  	* mpn/powerpc64/aix.m4: Likewise.
 11975  
 11976  	* mpn/powerpc64/vmx/popcount.asm: Use LEAL.
 11977  
 11978  	* mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only
 11979  	usable for local symbols.
 11980  	(LEA): Replace with code for external references.
 11981  
 11982  	* mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL.
 11983  
 11984  2007-10-07  Torbjorn Granlund  <tege@swox.com>
 11985  
 11986  	* mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*.
 11987  	* mpn/x86/k6/mode1o.asm: Likewise.
 11988  	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
 11989  	* mpn/x86/k7/dive_1.asm: Likewise.
 11990  	* mpn/x86/k7/mode1o.asm: Likewise.
 11991  	* mpn/x86/p6/dive_1.asm: Likewise.
 11992  	* mpn/x86/p6/mode1o.asm: Likewise.
 11993  	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
 11994  	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
 11995  	* mpn/x86/pentium4/sse2/popcount.asm: Likewise.
 11996  
 11997  	* mpn/x86/p6/aors_n.asm: Table cycle counts.
 11998  
 11999  	* mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims.
 12000  
 12001  	* mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's.
 12002  
 12003  	* mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu.
 12004  	Expect target register to have prepended %.
 12005  
 12006  	* mpn/x86_64/add_n.asm: Use L() for labels.
 12007  	* mpn/x86_64/addlsh1_n.asm: Likewise.
 12008  	* mpn/x86_64/addmul_2.asm: Likewise.
 12009  	* mpn/x86_64/aorrlsh_n.asm: Likewise.
 12010  	* mpn/x86_64/aorsmul_1.asm: Likewise.
 12011  	* mpn/x86_64/com_n.asm: Likewise.
 12012  	* mpn/x86_64/copyd.asm: Likewise.
 12013  	* mpn/x86_64/copyi.asm: Likewise.
 12014  	* mpn/x86_64/diveby3.asm: Likewise.
 12015  	* mpn/x86_64/logops_n.asm: Likewise.
 12016  	* mpn/x86_64/lshsub_n.asm: Likewise.
 12017  	* mpn/x86_64/mul_1.asm: Likewise.
 12018  	* mpn/x86_64/mul_2.asm: Likewise.
 12019  	* mpn/x86_64/mul_basecase.asm: Likewise.
 12020  	* mpn/x86_64/popham.asm: Likewise.
 12021  	* mpn/x86_64/redc_1.asm: Likewise.
 12022  	* mpn/x86_64/rsh1add_n.asm: Likewise.
 12023  	* mpn/x86_64/rsh1sub_n.asm: Likewise.
 12024  	* mpn/x86_64/rshift.asm: Likewise.
 12025  	* mpn/x86_64/sub_n.asm: Likewise.
 12026  	* mpn/x86_64/sublsh1_n.asm Likewise.
 12027  	* mpn/x86_64/pentium4/aors_n.asm: Likewise.
 12028  	* mpn/x86_64/pentium4/lshift.asm: Likewise.
 12029  	* mpn/x86_64/pentium4/rshift.asm: Likewise.
 12030  
 12031  	* mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and
 12032  	END_OBJECT.
 12033  
 12034  	* mpn/generic/mul.c: Put TMP_DECL as last decl.
 12035  
 12036  2007-10-06  Torbjorn Granlund  <tege@swox.com>
 12037  
 12038  	* mpn/x86/pentium4/sse2/popcount.asm: New file.
 12039  
 12040  2007-09-26  Torbjorn Granlund  <tege@swox.com>
 12041  
 12042  	* mpz/get_str.c: Cast a char index to int to shut up compilers.
 12043  
 12044  	* mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert.
 12045  	* mpn/generic/dc_divappr_q.c: Likewise.
 12046  	* mpn/generic/mu_div_qr.c: Likewise.
 12047  	* mpn/generic/mu_divappr_q.c: Likewise.
 12048  	* mpn/generic/mu_div_q.c: Likewise.
 12049  	* mpn/generic/divexact.c: Likewise.
 12050  
 12051  	* mpn/generic/invert.c: New file, placeholder for now.
 12052  
 12053  2007-09-24  Torbjorn Granlund  <tege@swox.com>
 12054  
 12055  	* mpn/generic/toom_interpolate_5pts.c: New file, contents from
 12056  	mpn/generic/mul_n.c
 12057  	* mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed.
 12058  
 12059  	* mpn/generic/toom_interpolate_7pts.c: New file.
 12060  
 12061  	* mpn/x86/k7/mmx/popham.asm: Table cycle counts.
 12062  
 12063  	* mpn/x86/k6/README: Update URLs.
 12064  
 12065  	* mpn/powerpc32/README: Update URL's, company names.
 12066  
 12067  	* mpn/generic/get_d.c: Complete rewrite.
 12068  
 12069  	* mpn/generic/mul_toom33.c: New file.
 12070  
 12071  	* mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files.
 12072  	* mpn/generic/mul_toom32.c: Likewise.
 12073  	* mpn/generic/mul_toom42.c: Likewise.
 12074  
 12075  	* mpn/alpha/invert_limb.asm: Update cycle counts.  Fix a comment typo.
 12076  
 12077  	* mpf/get_str.c: Include stdlib.h, not stdio.h for NULL.
 12078  
 12079  	* doc/gmp.texi: Fix a typo.
 12080  
 12081  	* memory.c (__gmp_default_allocate, __gmp_default_reallocate):
 12082  	Cast size operands in error fprintf's.
 12083  
 12084  	* longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant
 12085  	args.
 12086  
 12087  	* gmp-impl.h (udiv_qrnnd_preinv3): New define.
 12088  	* gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from
 12089  	ia64 asm.
 12090  
 12091  	* gmp-h.in (mpn_neg_n): New function.
 12092  
 12093  2007-09-18  Torbjorn Granlund  <tege@swox.com>
 12094  
 12095  	* demos/pexpr.c (main): Add -v option.
 12096  	(enum op_t): New tag TIMING.
 12097  	(mpz_eval_expr): Execute TIMING.
 12098  	(fns): Add TIMING entry.
 12099  
 12100  	* gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication
 12101  	functions and division functions.
 12102  
 12103  2007-09-10  Torbjorn Granlund  <tege@swox.com>
 12104  
 12105  	* mpn/powerpc32/addlsh1_n.asm: Use L() for labels.
 12106  	* mpn/powerpc32/sublsh1_n.asm: Likewise.
 12107  
 12108  2007-09-09  Torbjorn Granlund  <tege@swox.com>
 12109  
 12110  	* mpn/x86/x86-defs.m4 (LEA): New define.
 12111  	* mpn/x86/darwin.m4: New file, for now just defining LEA.
 12112  	* configure.in: Pick up x86/darwin.m4.
 12113  	* mpn/x86/*: Use LEA for PIC references.
 12114  
 12115  	* configure.in: For X86/32, treat core2 like pentium3.
 12116  
 12117  2007-09-06  Torbjorn Granlund  <tege@swox.com>
 12118  
 12119  	* tests/amd64check.c (calling_conventions_values): Put constants,
 12120  	dynamic values in this array (was in scalars).
 12121  	(calling_conventions_check): Corresponding changes.
 12122  	* tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's
 12123  	array.
 12124  
 12125  2007-09-04  Torbjorn Granlund  <tege@swox.com>
 12126  
 12127  	* mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups.
 12128  	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
 12129  
 12130  	* mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size.
 12131  
 12132  	* tests/amd64call.asm: Remove bogus no-op moves.
 12133  
 12134  2007-09-03  Torbjorn Granlund  <tege@swox.com>
 12135  
 12136  	From Richard Guenther:
 12137  	* gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on
 12138  	__GNUC_STDC_INLINE__.
 12139  
 12140  	* tests/cxx/t-locale.cc: #include <cstdlib>, for abort.
 12141  
 12142  	* mpn/x86_64/core2/popcount.asm: New file.
 12143  	* mpn/x86_64/pentium4/popcount.asm: New file.
 12144  
 12145  	* mpn/x86_64/addmul_2.asm: New file.
 12146  	* mpn/x86_64/mul_2.asm: New file.
 12147  
 12148  	* mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers
 12149  	(saves space).
 12150  
 12151  2007-09-01  Torbjorn Granlund  <tege@swox.com>
 12152  
 12153  	* configure.in: Handle athlon64, core2, and pentium4 separately for
 12154  	64-bit ABI.
 12155  
 12156  	* config.sub: Recog athlon64, core2, and opteron.
 12157  
 12158  	* config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI.
 12159  	Return "athlon64" and "core2", not x86_64.
 12160  
 12161  2007-08-31  Torbjorn Granlund  <tege@swox.com>
 12162  
 12163  	From Patrick Pelissier:
 12164  	* gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE.
 12165  
 12166  2007-08-30  Torbjorn Granlund  <tege@swox.com>
 12167  
 12168  	* demos/isprime.c: Include string.h for strcmp.
 12169  
 12170  	* demos/factorize.c (main): Declare to int.
 12171  
 12172  2007-06-22  Torbjorn Granlund  <tege@swox.com>
 12173  
 12174  	* mpn/x86_64/pentium4/lshift.asm: Minor tuning.
 12175  	* mpn/x86_64/pentium4/rshift.asm: Likewise.
 12176  
 12177  2007-05-30  Torbjorn Granlund  <tege@swox.com>
 12178  
 12179  	* mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points.
 12180  
 12181  2007-05-22  Torbjorn Granlund  <tege@swox.com>
 12182  
 12183  	* tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops.
 12184  
 12185  2007-05-16  Torbjorn Granlund  <tege@swox.com>
 12186  
 12187  	* tests/mpz/convert.c: Tweak operand sizes for best coverage.
 12188  
 12189  	* tests/memory.c: Add red zones around allocations.
 12190  
 12191  2007-05-15  Torbjorn Granlund  <tege@swox.com>
 12192  
 12193  	* mpn/ia64/mul_1.asm: Make mul_1c entry point actually work.
 12194  
 12195  	* mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when
 12196  	ln == 0.
 12197  
 12198  	* tests/mpz/convert.c (string_urandomb): New function.
 12199  	(main): Use it by enabling ifdef'ed out code.
 12200  
 12201  2007-04-30  Torbjorn Granlund  <tege@swox.com>
 12202  
 12203  	* mpn/x86_64/mul_basecase.asm: Complete rewrite.
 12204  
 12205  	* mpn/x86_64/copyi.asm: Use short shift-by-one form.  Misc cleanups.
 12206  	* mpn/x86_64/copyi.asm: Likewise.
 12207  	* mpn/x86_64/popham.asm: Likewise.
 12208  
 12209  	* mpn/x86_64/aorsmul_1.asm: Cleanup formatting.
 12210  
 12211  2007-04-25  Torbjorn Granlund  <tege@swox.com>
 12212  
 12213  	* mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults.
 12214  
 12215  2007-02-24  Torbjorn Granlund  <tege@swox.com>
 12216  
 12217  	* doc/gmp.texi (Toom 3-Way Multiplication): Fix typo.
 12218  	(mpz_scan0, mpz_scan1): Fix typos.
 12219  	(Float Internals): Rewrite paragraph about struct types.
 12220  
 12221  2007-02-12  Torbjorn Granlund  <tege@swox.com>
 12222  
 12223  	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except
 12224  	diagonal code).
 12225  
 12226  2007-02-05  Torbjorn Granlund  <tege@swox.com>
 12227  
 12228  	* mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr,
 12229  	old mpn_fft_fft removed.
 12230  	(mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand.
 12231  	(mpn_fft_add_modF): Rewrite to avoid random branches.
 12232  	(mpn_fft_sub_modF): Likewise.
 12233  
 12234  	* mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite.
 12235  	* mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite.
 12236  	* mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on
 12237  	new addmul and mul code.
 12238  
 12239  2007-01-31  Torbjorn Granlund  <tege@swox.com>
 12240  
 12241  	* mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac
 12242  	development right.
 12243  
 12244  	* mpn/powerpc32/vmx/mod_34lsub1.asm: New file.
 12245  
 12246  	* mpn/powerpc32/aors_n.asm: New file, complete rewrite.
 12247  	* mpn/powerpc32/add_n.asm: Remove.
 12248  	* mpn/powerpc32/sub_n.asm: Remove.
 12249  
 12250  2007-01-25  Torbjorn Granlund  <tege@swox.com>
 12251  
 12252  	* mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups.
 12253  
 12254  	* mpn/x86_64/core2/lshift.asm: Rewrite.
 12255  	* mpn/x86_64/core2/rshift.asm: Rewrite.
 12256  
 12257  	* mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small
 12258  	speedup.
 12259  	* mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm.
 12260  
 12261  	* mpn/x86_64/pentium4/gmp-mparam.h: New file.
 12262  
 12263  	* mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract
 12264  	code.
 12265  	* mpn/x86_64/pentium4/add_n.asm: Remove.
 12266  	* mpn/x86_64/pentium4/sub_n.asm: Remove.
 12267  
 12268  2007-01-20  Torbjorn Granlund  <tege@swox.com>
 12269  
 12270  	* mpn/x86_64/lshift.asm: Add special case for cnt=1.
 12271  
 12272  2007-01-19  Torbjorn Granlund  <tege@swox.com>
 12273  
 12274  	* mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at
 12275  	3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5).
 12276  	* mpn/x86_64/addmul_1.asm: Remove.
 12277  	* mpn/x86_64/submul_1.asm: Remove.
 12278  
 12279  2006-12-29  Torbjorn Granlund  <tege@swox.com>
 12280  
 12281  	* randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in
 12282  	__gmp_randinit_mt_noseed.
 12283  	(__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions
 12284  	look similar.
 12285  	(__gmp_randclear_mt): Pass actually allocated size.
 12286  
 12287  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c,
 12288  	mul_toom32.c, mul_toom42.c.
 12289  
 12290  	* configure.in: Recognize athlon64 and core2 as alternatives to x86_64.
 12291  	Provide special settings for core2.
 12292  
 12293  	* configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32,
 12294  	mul_toom42.
 12295  
 12296  	* mpn/generic/mul_toom22.c: New file.
 12297  	* mpn/generic/mul.c: Use mpn_mul_toom22.  Trim cutoff points between
 12298  	the mpn_mul_toomN2 functions.  Handle balanced operands at function
 12299  	entry.
 12300  
 12301  2006-12-29  Marco Bodrato  <bodrato@mail.dm.unipi.it>
 12302  
 12303  	* mpn/generic/mul_n.c: Rewrite interpolation code.
 12304  
 12305  2006-12-28  Torbjorn Granlund  <tege@swox.com>
 12306  
 12307  	* mpn/generic/mul_toom32.c: New file.
 12308  	* mpn/generic/mul_toom42.c: New file.
 12309  	* mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for
 12310  	unbalanced operands.
 12311  
 12312  2006-12-17  Torbjorn Granlund  <tege@swox.com>
 12313  
 12314  	* mpn/x86_64/aorrlsh_n.asm: New file.
 12315  	* mpn/x86_64/lshsub_n.asm: New file.
 12316  
 12317  	* mpn/x86_64/core2/aors_n.asm: New file.
 12318  	* mpn/x86_64/core2/lshift.asm: New file.
 12319  	* mpn/x86_64/core2/rshift.asm: New file.
 12320  
 12321  	* mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific
 12322  	code.
 12323  
 12324  	* mpn/x86/p6/lshsub_n.asm: New file.
 12325  
 12326  2006-11-23  Torbjorn Granlund  <tege@swox.com>
 12327  
 12328  	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp
 12329  	locally, s->xp might be insufficient.
 12330  
 12331  2006-11-22  Torbjorn Granlund  <tege@swox.com>
 12332  
 12333  	* randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result
 12334  	param.
 12335  
 12336  2006-11-06  Torbjorn Granlund  <tege@swox.com>
 12337  
 12338  	* tune/set_strp.c: New file.
 12339  
 12340  2006-11-04  Torbjorn Granlund  <tege@swox.com>
 12341  
 12342  	* extract-dbl.c: Rewrite to handle nails better, and for general
 12343  	optimization.
 12344  
 12345  	* mpz/bin_uiui.c: Simplify.
 12346  
 12347  	* longlong.h (umul_ppmm) [mmix]: New.
 12348  
 12349  	* tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h,
 12350  	tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements
 12351  	of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD.
 12352  	Add tuning and speed measurement of mpn_addsub_n.
 12353  
 12354  2006-10-31  Torbjorn Granlund  <tege@swox.com>
 12355  
 12356  	* gmpxx.h: Remove ternary stuff, it is hardly an optimization and it
 12357  	writes to destination before reading all source operands.
 12358  
 12359  2006-10-25  Torbjorn Granlund  <tege@swox.com>
 12360  
 12361  	* mpn/generic/set_str.c: Complete rewrite.
 12362  	* mpn/generic/get_str.c: Likewise.
 12363  
 12364  	* gmp-impl.h (struct powers, powers_t): New types.
 12365  	Restructure GET_STR_* and SET_STR_* thresholds.
 12366  
 12367  2006-09-21  Torbjorn Granlund  <tege@swox.com>
 12368  
 12369  	* mpn/generic/rootrem.c: Remove some redundant casts.
 12370  
 12371  2006-07-12  Torbjorn Granlund  <tege@swox.com>
 12372  
 12373  	* mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed.
 12374  	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
 12375  
 12376  	* mpf/get_str.c: Avoid copying result when not needed.  Misc cleanups.
 12377  
 12378  	* tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris.
 12379  
 12380  2006-06-30  Torbjorn Granlund  <tege@swox.com>
 12381  
 12382  	* configure.in (powerpc-*): Remove repeated path component.
 12383  
 12384  2006-06-15  Torbjorn Granlund  <tege@swox.com>
 12385  
 12386  	* configure.in: (ia64-*-linux*): Don't use -O3.
 12387  
 12388  2006-06-14  Torbjorn Granlund  <tege@swox.com>
 12389  
 12390  	* mpq/get_str.c: Fix upper base limit boundary in an ASSERT.
 12391  
 12392  	* tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back.
 12393  
 12394  2006-05-31  Torbjorn Granlund  <tege@swox.com>
 12395  
 12396  	* tests/mpz/t-set_d.c (check_data): Add more data points.
 12397  
 12398  	* mpz/set_d.c: Handle negative return values from __gmp_extract_double.
 12399  
 12400  2006-05-17  Torbjorn Granlund  <tege@swox.com>
 12401  
 12402  	* configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat
 12403  	build.
 12404  
 12405  2006-05-16  Torbjorn Granlund  <tege@swox.com>
 12406  
 12407  	* demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10.
 12408  
 12409  	* mpn/generic/addsub_n.c: Fix criteria form when to call _nc functions.
 12410  
 12411  2006-05-12  Torbjorn Granlund  <tege@swox.com>
 12412  
 12413  	* config.guess: Recognize more ppc processor types.
 12414  
 12415  2006-05-11  Torbjorn Granlund  <tege@swox.com>
 12416  
 12417  	* tune/speed.c (usage): Update URL for gnuplot and quickplot.
 12418  
 12419  2006-05-10  Torbjorn Granlund  <tege@swox.com>
 12420  
 12421  	* configure.in (powerpc-*-*): Pass -maltivec to assembler for
 12422  	appropriate CPUs.
 12423  
 12424  2006-05-08  Torbjorn Granlund  <tege@swox.com>
 12425  
 12426  	* mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute.
 12427  
 12428  2006-05-03  Torbjorn Granlund  <tege@swox.com>
 12429  
 12430  	* mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.
 12431  
 12432  2006-04-27  Torbjorn Granlund  <tege@swox.com>
 12433  
 12434  	* mpz/divexact.c: Call mpz_tdiv_q for large operands.
 12435  
 12436  	* configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.
 12437  
 12438  2006-04-26  Torbjorn Granlund  <tege@swox.com>
 12439  
 12440  	* config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
 12441  	* config.sub: Handle ultrasparct1.
 12442  
 12443  2006-04-25  Torbjorn Granlund  <tege@swox.com>
 12444  
 12445  	* mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
 12446  	non-GNUC data.
 12447  
 12448  2006-04-20  Torbjorn Granlund  <tege@swox.com>
 12449  
 12450  	* tests/mpz/convert.c: Increase operands range.
 12451  
 12452  2006-04-19  Torbjorn Granlund  <tege@swox.com>
 12453  
 12454  	* configure.in: Support powerpc eABI.
 12455  	* mpn/powerpc32/eabi.m4: New file.
 12456  
 12457  	* configure.in: Support powerpc *bsd.
 12458  	* mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4.
 12459  	* mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4.
 12460  
 12461  	* mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY.
 12462  
 12463  2006-04-18  Torbjorn Granlund  <tege@swox.com>
 12464  
 12465  	* configure.in (gmp_mpn_functions_optional): Add lshiftc.
 12466  	(HAVE_NATIVE): Add lshiftc.
 12467  
 12468  	* mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM.
 12469  	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
 12470  	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
 12471  
 12472  	* mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty.
 12473  	* mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise.
 12474  	* mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise.
 12475  
 12476  	* mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4.
 12477  	* mpn/powerpc32/mode1o.asm: Use EXTERN.
 12478  	* mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition.
 12479  	* mpn/powerpc32/darwin.m4 (EXTERN): Likewise.
 12480  
 12481  2006-04-13  Torbjorn Granlund  <tege@swox.com>
 12482  
 12483  	* mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2
 12484  	is defined.
 12485  	(mpn_lshiftc): New name for mpn_lshift_com (for consistency with some
 12486  	stuff already in 4.1.4.
 12487  	(mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid
 12488  	divisions.
 12489  
 12490  	* tests/devel/try.c (choice_array): Add mpn_addsub_n[c].
 12491  
 12492  2006-04-11  Torbjorn Granlund  <tege@swox.com>
 12493  
 12494  	* aclocal.m4: Regenerate with patched libtool.
 12495  
 12496  	* mpn/asm-defs.m4 (ASM_END): Provide (empty) default.
 12497  
 12498  2006-04-08  Torbjorn Granlund  <tege@swox.com>
 12499  
 12500  	* configure.in (gmp_mpn_functions_optional): Add addsub.
 12501  
 12502  	* gmpxx.h: Remove missed MPFR references.
 12503  
 12504  	* gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic.
 12505  
 12506  	* gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
 12507  	define TMP_SALLOC and TMP_BALLOC.
 12508  
 12509  	* mpn/minithres/gmp-mparam.h: New file.
 12510  
 12511  	* tests/mpz/t-io_raw.c: Fix printf type/arg mismatches.
 12512  	* tests/mpz/t-export.c: Likewise.
 12513  	* tests/mpz/io.c: Likewise.
 12514  	* tests/t-constants.c: Likewise.
 12515  
 12516  	* mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to
 12517  	placate icc.
 12518  	* mpn/ia64/hamdist.asm: Likewise.
 12519  	* mpn/ia64/lorrshift.asm: Likewise.
 12520  	* mpn/ia64/dive_1.asm: Likewise.
 12521  
 12522  2006-04-05  Torbjorn Granlund  <tege@swox.com>
 12523  
 12524  	* tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
 12525  	(__gmp_tmp_free): Likewise.
 12526  
 12527  	* mpn/generic/mul_fft.c: Optimize many scalar divisions and mod
 12528  	operations into masks and shifts.
 12529  	(mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY.
 12530  
 12531  2006-03-26  Torbjorn Granlund  <tege@swox.com>
 12532  
 12533  	* Version 4.2 released.
 12534  
 12535  	* mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM.
 12536  	* mpn/powerpc64/darwin.m4: Likewise.
 12537  	* mpn/powerpc64/linux64.m4: Likewise.
 12538  	* mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM.
 12539  
 12540  2006-03-23  Torbjorn Granlund  <tege@swox.com>
 12541  
 12542  	* gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::.
 12543  
 12544  	* gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now.
 12545  	(struct __gmp_ternary_addmul2): Likewise.
 12546  	(struct __gmp_ternary_submul2): Likewise.
 12547  
 12548  	* gmpxx.h: #include <cstring>.
 12549  	(struct __gmp_alloc_cstring): Prefix strlen with std::.
 12550  
 12551  	* mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN.
 12552  	* mpn/x86/pentium/copyi.asm: Likewise.
 12553  	* mpn/x86/pentium/copyd.asm: Likewise.
 12554  
 12555  2006-03-22  Torbjorn Granlund  <tege@swox.com>
 12556  
 12557  	* gmp-h.in: Add a "using std::FILE" for C++.
 12558  	(_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H.
 12559  
 12560  	* gmpxx.h: Remove mpfr code.
 12561  	* tests/cxx: Likewise.
 12562  
 12563  	* gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with
 12564  	GNU/Linux public include file.
 12565  
 12566  	* configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype.
 12567  	Grab powerpc32/darwin.m4 for ABI=mode32.
 12568  
 12569  	* configure.in: Use host_cpu whenever just the cpu type is needed.
 12570  
 12571  2006-03-08  Torbjorn Granlund  <tege@swox.com>
 12572  
 12573  	* mpz/get_si.c: Fix a typo.
 12574  
 12575  	* tests/mpq/t-get_d.c (check_random): Improve random generation for
 12576  	nails.
 12577  
 12578  2006-02-28  Torbjorn Granlund  <tege@swox.com>
 12579  
 12580  	* tests/mpq/t-get_d.c (check_random): New function.
 12581  	(main): Call check_random.
 12582  
 12583  	* mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not
 12584  	BITS_PER_MP_LIMB.  Make it work for LIMBS_PER_DOUBLE == 4.
 12585  	Use MPZ_REALLOC.
 12586  
 12587  	* mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4.
 12588  
 12589  	* extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3.
 12590  
 12591  2006-02-27  Torbjorn Granlund  <tege@swox.com>
 12592  
 12593  	* mpz/cmp_d.c: Declare `i'.
 12594  	* mpz/cmpabs_d.c: Likewise.
 12595  
 12596  2006-02-23  Torbjorn Granlund  <tege@swox.com>
 12597  
 12598  	* mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
 12599  	* mpn/powerpc32/vmx/copyi.asm: Likewise.
 12600  
 12601  2006-02-22  Torbjorn Granlund  <tege@swox.com>
 12602  
 12603  	* mpn/powerpc32/vmx/logops_n.asm: New file.
 12604  
 12605  	* mpn/powerpc32/diveby3.asm: Rewrite.
 12606  
 12607  2006-02-21  Torbjorn Granlund  <tege@swox.com>
 12608  
 12609  	* mpn/powerpc32/vmx/copyi.asm: New file.
 12610  	* mpn/powerpc32/vmx/copyd.asm: New file.
 12611  
 12612  2006-02-17  Torbjorn Granlund  <tege@swox.com>
 12613  
 12614  	* mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
 12615  	deleted mpn_sub_n.
 12616  
 12617  2006-02-16  Torbjorn Granlund  <tege@swox.com>
 12618  
 12619  	* mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.
 12620  
 12621  2006-02-15  Torbjorn Granlund  <tege@swox.com>
 12622  
 12623  	* tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c.
 12624  
 12625  	* tests/devel/addmul_N.c: New file.
 12626  	* tests/devel/mul_N.c: New file.
 12627  
 12628  	* mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte
 12629  	boundary.
 12630  
 12631  	* mpn/alpha/ev6/nails/aors_n.asm: New file.
 12632  	* mpn/alpha/ev6/nails/add_n.asm: Remove.
 12633  	* mpn/alpha/ev6/nails/sub_n.asm: Remove.
 12634  
 12635  	* mpn/alpha/ev6/nails/addmul_1.asm: Rewrite.
 12636  	* mpn/alpha/ev6/nails/submul_1.asm: Likewise.
 12637  	* mpn/alpha/ev6/nails/mul_1.asm: Likewise.
 12638  
 12639  	* mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels.
 12640  	* mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels.
 12641  	* mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels.
 12642  
 12643  2006-02-13  Torbjorn Granlund  <tege@swox.com>
 12644  
 12645  	* mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
 12646  	1 c/l.
 12647  
 12648  	* mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC.
 12649  
 12650  	* mpn/x86_64/rsh1add_n.asm: Replace high register with rbx.
 12651  	* mpn/x86_64/rsh1sub_n.asm: Likewise.
 12652  
 12653  2006-02-10  Torbjorn Granlund  <tege@swox.com>
 12654  
 12655  	* mpn/powerpc64/sqr_diagonal.asm: Software pipeline.
 12656  
 12657  	* mpn/powerpc64/vmx/popcount.asm: Add prefetching.
 12658  
 12659  2006-02-07  Torbjorn Granlund  <tege@swox.com>
 12660  
 12661  	* mpn/powerpc64/mode64/diveby3.asm: Rewrite.
 12662  
 12663  2006-02-04  Torbjorn Granlund  <tege@swox.com>
 12664  
 12665  	* mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code.
 12666  	Move compare for huge n so that it is always executed.
 12667  
 12668  2006-02-03  Torbjorn Granlund  <tege@swox.com>
 12669  
 12670  	* mpn/powerpc32/linux.m4 (LEA): Add support for PIC.
 12671  
 12672  	* configure.in (powerpc): New optional, gcc_cflags_subtype.
 12673  
 12674  	* mpn/x86_64/pentium4/add_n.asm: New file.
 12675  	* mpn/x86_64/pentium4/sub_n.asm: New file.
 12676  	* mpn/x86_64/pentium4/lshift.asm: New file.
 12677  
 12678  	* mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to
 12679  	16-multiple.
 12680  	* mpn/powerpc64/aix.m4: Likewise.
 12681  	* mpn/powerpc64/darwin.m4: Likewise.
 12682  
 12683  	* mpn/powerpc64/copyi.asm: Align loop to 16-multiple.
 12684  	* mpn/powerpc64/copyd.asm: Likewise
 12685  
 12686  	* configure.in (powerpc): Add vmx to relevant paths.
 12687  
 12688  	* mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for
 12689  	alignment.
 12690  	* mpn/powerpc64/aix.m4: Likewise.
 12691  	* mpn/powerpc64/darwin.m4: Likewise.
 12692  
 12693  	* mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros,
 12694  	inherited from powerpc64 versions.
 12695  	* mpn/powerpc32/aix.m4: Likewise.
 12696  	* mpn/powerpc32/darwin.m4: Likewise.
 12697  
 12698  	* mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64.
 12699  	* mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file.
 12700  
 12701  2006-01-22  Torbjorn Granlund  <tege@swox.com>
 12702  
 12703  	* configure.in: Generalize OS-dependent patterns for powerpcs.
 12704  
 12705  2006-01-20  Torbjorn Granlund  <tege@swox.com>
 12706  
 12707  	* mpn/x86_64/popham.asm: Optimize.
 12708  
 12709  	* config.guess: Recognize power4 and up under linux-gnu.
 12710  	* config.sub: Generalize power recognition code.
 12711  	* acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors.
 12712  	* configure.in: Recognize powerpc processors masquerading as power
 12713  	processors.
 12714  
 12715  2006-01-19  Torbjorn Granlund  <tege@swox.com>
 12716  
 12717  	* mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller
 12718  	code.
 12719  	* mpn/x86_64/com_n.asm: Likewise.
 12720  
 12721  2006-01-18  Torbjorn Granlund  <tege@swox.com>
 12722  
 12723  	* mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing.
 12724  	* mpn/x86_64/sublsh1_n.asm: Likewise.
 12725  
 12726  2006-01-17  Torbjorn Granlund  <tege@swox.com>
 12727  
 12728  	* mpn/generic/diveby3.c: Use GMP standard parameter names.  Nailify
 12729  	alternative code.  Use restrict for params.
 12730  
 12731  	* configure.in: Recognize andn_n as not needing nailification.
 12732  
 12733  	* tests/mpq/t-equal.c (check_various): Disable a test that gives common
 12734  	factors for GMP_NUMB_BITS == 62.
 12735  
 12736  2006-01-16  Torbjorn Granlund  <tege@swox.com>
 12737  
 12738  	* mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
 12739  	was inaccurate for nails.
 12740  
 12741  2006-01-15  Torbjorn Granlund  <tege@swox.com>
 12742  
 12743  	* mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.
 12744  
 12745  2006-01-08  Torbjorn Granlund  <tege@swox.com>
 12746  
 12747  	* mpn/alpha/ev6/sqr_diagonal.asm: New file.
 12748  
 12749  2006-01-06  Torbjorn Granlund  <tege@swox.com>
 12750  
 12751  	* mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l.
 12752  
 12753  	* mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
 12754  	(mpn_mullow_n): Use it.
 12755  
 12756  	* mpn/powerpc64/mode64/dive_1.asm: Use EXTERN.
 12757  	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
 12758  
 12759  	* mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol.
 12760  	(LDSYM): Remove [RW] attribute.
 12761  	* mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition.
 12762  	* mpn/powerpc64/darwin.m4 (EXTERN): Likewise.
 12763  
 12764  2006-01-05  Torbjorn Granlund  <tege@swox.com>
 12765  
 12766  	* mpn/powerpc64/mode64/mode1o.asm: New file.
 12767  
 12768  	* mpn/powerpc64/mode64/dive_1.asm: Use L() for labels.  Invoke ASM_END.
 12769  
 12770  	* mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END.
 12771  
 12772  	* mpn/powerpc64/linux64.m4: Move toc entry generation from direct at
 12773  	DEF_OBJECT to delayed via LDSYM, define ASM_END to output it.
 12774  	* mpn/powerpc64/aix.m4: Likewise.
 12775  	* mpn/powerpc64/darwin.m4: Define a dummy ASM_END.
 12776  
 12777  	* mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings.
 12778  	* mpn/powerpc64/mode64/mul_1.asm: Likewise.
 12779  
 12780  	* mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5.
 12781  
 12782  2006-01-04  Torbjorn Granlund  <tege@swox.com>
 12783  
 12784  	* mpn/powerpc64/mode64/dive_1.asm: New file.
 12785  
 12786  	* mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START.
 12787  
 12788  	* mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo.
 12789  
 12790  	* mpn/x86_64/diveby3.asm: Rewrite.
 12791  
 12792  2006-01-03  Torbjorn Granlund  <tege@swox.com>
 12793  
 12794  	* configure.in: Update bugs reporting address.
 12795  
 12796  	* mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing.
 12797  	Misc cleanup.
 12798  
 12799  2006-01-02  Torbjorn Granlund  <tege@swox.com>
 12800  
 12801  	* mpn/powerpc64/linux64.m4 (CALL): New macro.
 12802  	* mpn/powerpc64/aix.m4: Likewise.
 12803  	* mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".
 12804  
 12805  2005-12-28  Torbjorn Granlund  <tege@swox.com>
 12806  
 12807  	* mpn/powerpc64/mode64/mod_34lsub1.asm: New file.
 12808  
 12809  2005-12-26  Torbjorn Granlund  <tege@swox.com>
 12810  
 12811  	* mpn/x86_64/mod_34lsub1.asm: New file.
 12812  
 12813  2005-12-20  Torbjorn Granlund  <tege@swox.com>
 12814  
 12815  	* mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12.
 12816  	Use addq instead of leaq for pointer updates; schedule them.  (These
 12817  	changes shaves one cycle of overhead and 0.25 c/l.)
 12818  
 12819  2005-12-18  Torbjorn Granlund  <tege@swox.com>
 12820  
 12821  	* mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
 12822  	* mpf/set_q.c: Likewise.
 12823  
 12824  2005-12-16  Torbjorn Granlund  <tege@swox.com>
 12825  
 12826  	* mpn/generic/tdiv_qr.c: Remove statement with no effect.
 12827  	Rename dead variable to `dummy'.
 12828  
 12829  2005-12-15  Torbjorn Granlund  <tege@swox.com>
 12830  
 12831  	* demos/pexpr.c (setup_error_handler): Add a missing ";".
 12832  
 12833  2005-11-27  Torbjorn Granlund  <tege@swox.com>
 12834  
 12835  	* mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking
 12836  	for unbalanced operands.
 12837  
 12838  	* mpn/generic/mul_fft.c: Remove many scalar divisions.
 12839  	(mpn_mul_fft_lcm): Simplify.
 12840  	(mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced
 12841  	operands.
 12842  
 12843  2005-11-22  Torbjorn Granlund  <tege@swox.com>
 12844  
 12845  	* configure.in: Properly recognize all 32-bit Solaris releases.
 12846  
 12847  2005-11-10  Torbjorn Granlund  <tege@swox.com>
 12848  
 12849  	* mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
 12850  	mpn_fft_add_modF and mpn_fft_normalize.
 12851  
 12852  2005-11-02  Torbjorn Granlund  <tege@swox.com>
 12853  
 12854  	* tests/mpz/reuse.c: Increase operand size, decrease # of reps.
 12855  
 12856  	* mpz/rootrem.c: Adapt to new mpn_rootrem.
 12857  	* mpz/root.c: Likewise.
 12858  
 12859  	* tests/mpz/reuse.c: Test mpz_rootrem.
 12860  
 12861  	With Paul Zimmermann:
 12862  	* mpn/generic/rootrem.c: Complete rewrite.
 12863  
 12864  2005-10-31  Torbjorn Granlund  <tege@swox.com>
 12865  
 12866  	* mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial
 12867  	dividing.
 12868  
 12869  	* mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead
 12870  	of mpz_tdiv_ui.
 12871  
 12872  	* mpz/divegcd.c: Correct probability number for GCD == 1.
 12873  
 12874  	* mpn/x86_64/mul_basecase.asm: Remove an obsolete comment.
 12875  
 12876  	* mpn/x86: Add cycle counts for array of x86 processors.
 12877  
 12878  	* mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp.
 12879  
 12880  	* mpn/powerpc32: Add POWER5 timings.
 12881  
 12882  	* mpn/powerpc32/README: Describe global reference variations.
 12883  
 12884  	* mpn/ia64/divrem_2.asm: Add some comments.
 12885  
 12886  	* mpn/ia64/divrem_1.asm: Reformat.
 12887  
 12888  	* mpn/ia64/addmul_2.asm: Correct a comment on slotting.
 12889  	* mpn/ia64/logops_n.asm: Likewise.
 12890  
 12891  	* mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl.
 12892  
 12893  	* mpn/generic/dive_1.c: Whitespace cleanup.
 12894  
 12895  	* mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting.
 12896  	* mpn/alpha/ev6/nails/addmul_2.asm: Likewise.
 12897  	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
 12898  
 12899  	* mpf/out_str.c: List some allocation improvement ideas.
 12900  
 12901  	* doc/gmp.texi: Update many URLs and email addresses.
 12902  
 12903  	* gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED.
 12904  
 12905  2005-10-26  Torbjorn Granlund  <tege@swox.com>
 12906  
 12907  	* tune/tuneup.c (tune_mullow): Update param.max_size for each threshold
 12908  	measurement.
 12909  
 12910  	* configure.in (POWERPC64_PATTERN/*-*-darwin*): Set
 12911  	SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64.
 12912  	(POWERPC64_PATTERN/*-*-linux*): Likewise.
 12913  
 12914  2005-10-03  Torbjorn Granlund  <tege@swox.com>
 12915  
 12916  	* demos/factorize.c (factor_using_division_2kp): Honor verbose flag.
 12917  	(factor_using_pollard_rho): Divide out new factor before it's
 12918  	clobbered.  Don't stop factoring after a composite factor was found.
 12919  
 12920  2005-09-17  Torbjorn Granlund  <tege@swox.com>
 12921  
 12922  	* demos/pexpr.c (fns): Add factorial keywords.
 12923  
 12924  2005-08-16  Torbjorn Granlund  <tege@swox.com>
 12925  
 12926  	* tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
 12927  	* mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".
 12928  
 12929  2005-08-15  Torbjorn Granlund  <tege@swox.com>
 12930  
 12931  	* configure.in: Change "amd64" => "x86_64".
 12932  
 12933  2005-06-13  Torbjorn Granlund  <tege@swox.com>
 12934  
 12935  	* mpn/generic/pre_mod_1.c: Canonicalize variable names.
 12936  
 12937  	* mpn/generic/divrem.c: Rate qxn test as UNLIKELY.
 12938  
 12939  	* mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK.
 12940  
 12941  	* tune/tuneup.c (tune_mullow): Fix all max_size fields.
 12942  
 12943  	* gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define.
 12944  	* tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT.
 12945  	(sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT.
 12946  
 12947  	* mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT.
 12948  
 12949  	* gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n):
 12950  	Handle nails.
 12951  
 12952  2005-06-13  Niels Möller  <nisse@lysator.liu.se>
 12953  
 12954  	* mpn/generic/gcdext.c (gcdext_schoenhage): Check for the
 12955  	(unlikely) case that one of the hgcd/euclid steps results in two
 12956  	remainders of one limb each. Then use gcdext_1.
 12957  
 12958  2005-06-12  Torbjorn Granlund  <tege@swox.com>
 12959  
 12960  	* mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.
 12961  
 12962  2005-06-11  Torbjorn Granlund  <tege@swox.com>
 12963  
 12964  	* mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later.
 12965  	Add mpn_add_nc entry.
 12966  
 12967  	* mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads.
 12968  
 12969  2005-06-09  Torbjorn Granlund  <tege@swox.com>
 12970  
 12971  	* mpn/ia64/dive_1.asm: Fix issues with HP-UX.
 12972  
 12973  2005-06-08  Torbjorn Granlund  <tege@swox.com>
 12974  
 12975  	* mpn/ia64/diveby3.asm: Update TODO list.
 12976  
 12977  	* mpn/ia64/mode1o.asm: Fix comment typos.
 12978  
 12979  	* mpn/ia64/dive_1.asm: New file.
 12980  
 12981  2005-06-07  Torbjorn Granlund  <tege@swox.com>
 12982  
 12983  	* mpn/ia64/mode1o.asm: Add prefetching.
 12984  
 12985  	* mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.
 12986  
 12987  2005-06-06  Torbjorn Granlund  <tege@swox.com>
 12988  
 12989  	* mpn/ia64/hamdist.asm: Complete rewrite.
 12990  	* mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in.
 12991  
 12992  	* mpn/ia64/aors_n.asm: Rewrite feed-in code.
 12993  	* mpn/ia64/rsh1aors_n.asm: Likewise.
 12994  	* mpn/ia64/aorslsh1_n.asm: Likewise.
 12995  	* mpn/ia64/lorrshift.asm: Likewise.
 12996  
 12997  2005-06-04  Torbjorn Granlund  <tege@swox.com>
 12998  
 12999  	* tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless
 13000  	USE_PREINV_MOD_1.
 13001  	(choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD
 13002  	is zero.
 13003  
 13004  2005-06-03  Torbjorn Granlund  <tege@swox.com>
 13005  
 13006  	* mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
 13007  	* mpn/alpha/ev6/mul_1.asm: Likewise.
 13008  
 13009  2005-06-02  Torbjorn Granlund  <tege@swox.com>
 13010  
 13011  	* tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround
 13012  	to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI.
 13013  
 13014  2005-06-01  Torbjorn Granlund  <tege@swox.com>
 13015  
 13016  	* tests/devel/try.c (main): Fix a typo.
 13017  
 13018  2005-05-31  Torbjorn Granlund  <tege@swox.com>
 13019  
 13020  	* mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.
 13021  
 13022  2005-05-30  Torbjorn Granlund  <tege@swox.com>
 13023  
 13024  	* tests/misc.c (tests_rand_start): Mask random seed to 32 bits.
 13025  
 13026  2005-05-29  Torbjorn Granlund  <tege@swox.com>
 13027  
 13028  	* mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM.
 13029  	* mpn/powerpc64/mode32/addmul_1.asm: Likewise.
 13030  	* mpn/powerpc64/mode32/submul_1.asm: Likewise.
 13031  
 13032  	* mpn/powerpc32/mode1o.asm: Rewrite to actually work.
 13033  
 13034  	* mpn/powerpc32/aix.m4 (LEA): New macro.
 13035  	(ASM_END): New macro.
 13036  
 13037  	* mpn/powerpc32/linux.m4: New file.
 13038  	* mpn/powerpc32/darwin.m4: New file.
 13039  	* configure.in: Use linux.m4 and darwin.m4.
 13040  	(powerpc64-linux-gnu): Add support for mode32.
 13041  
 13042  2005-05-25  Torbjorn Granlund  <tege@swox.com>
 13043  
 13044  	* mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw.
 13045  
 13046  	* tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo.
 13047  
 13048  	* demos/isprime.c: #include stdlib.h.
 13049  	* tests/rand/t-urbui.c: Likewise.
 13050  	* tests/rand/t-urmui.c: Likewise.
 13051  
 13052  	* tests/mpz/t-popcount.c (check_random): Remove spurious printf arg.
 13053  
 13054  	* mpn/ia64/lorrshift.asm: Cleanup code layout.
 13055  	* mpn/ia64/popcount.asm: Likewise.
 13056  
 13057  2005-05-24  Torbjorn Granlund  <tege@swox.com>
 13058  
 13059  	* tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field.
 13060  	(compare): Handle SIZE_GET_STR as SIZE_RETVAL.
 13061  
 13062  	* tests/refmpn.c (refmpn_get_str): Rewrite to make it work.
 13063  
 13064  2005-05-23  Torbjorn Granlund  <tege@swox.com>
 13065  
 13066  	* mpn/amd64/add_n.asm: Add mpn_add_nc entry point.
 13067  	* mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point.
 13068  
 13069  	* longlong.h (many places): Remove lvalue casts.
 13070  
 13071  	* gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow
 13072  	for > 4G digits.
 13073  
 13074  	* mpn/alpha/ev6/add_n.asm: Prefetch using ldl.
 13075  	* mpn/alpha/ev6/sub_n.asm: Likewise.
 13076  
 13077  	* mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl.
 13078  
 13079  	* mpn/ia64/aors_n.asm: Prefetch using lfetch.
 13080  	* mpn/ia64/lorrshift.asm: Likewise.
 13081  	* mpn/ia64/popcount.asm: Likewise.
 13082  	* mpn/ia64/diveby3.asm: Likewise.
 13083  
 13084  2005-05-22  Torbjorn Granlund  <tege@swox.com>
 13085  
 13086  	* mpn/alpha/ev67/popcount.asm: Prefetch.
 13087  	* mpn/alpha/ev67/hamdist.asm: Prefetch.
 13088  
 13089  	* longlong.h (add_ssaaaa) [x86]: Remove lvalue casts.
 13090  	(sub_ddmmss) [x86]: Likewise.
 13091  
 13092  	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD.
 13093  	(param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD.
 13094  	(param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB.
 13095  
 13096  2005-05-21  Torbjorn Granlund  <tege@swox.com>
 13097  
 13098  	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor
 13099  	field according to UDIV_NEEDS_NORMALIZATION.
 13100  
 13101  	* mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments.
 13102  
 13103  2005-05-20  Torbjorn Granlund  <tege@swox.com>
 13104  
 13105  	* mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in
 13106  	proper register.
 13107  
 13108  	* mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version):
 13109  	Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code.
 13110  
 13111  2005-05-19  Torbjorn Granlund  <tege@swox.com>
 13112  
 13113  	* mpn/alpha/diveby3.asm: Make it actually work.
 13114  
 13115  	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define.
 13116  	* mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest
 13117  	operands; use TMP_S* allocation for medium operands.
 13118  
 13119  	* gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test.
 13120  
 13121  2005-05-18  Torbjorn Granlund  <tege@swox.com>
 13122  
 13123  	* mpn/generic/mul_n.c: Make squaring and multiplication code more
 13124  	similar.  Use TMP_S* functions.
 13125  
 13126  	* gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument.
 13127  	(TMP_SALLOC): New macro for "small" allocations.
 13128  	(TMP_BALLOC): New macro for "big" allocations.
 13129  	(TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use
 13130  	just TMP_SALLOC.
 13131  	(WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant
 13132  	functions, depending on size.
 13133  
 13134  	* *.c: Remove TMP_XXXX marker arguments.
 13135  
 13136  	* acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case.
 13137  
 13138  2005-05-16  Torbjorn Granlund  <tege@swox.com>
 13139  
 13140  	* mpn/ia64/gmp-mparam.h: Further extend FFT tables.
 13141  
 13142  2005-05-15  Torbjorn Granlund  <tege@swox.com>
 13143  
 13144  	* gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
 13145  	(udiv_qrnnd_preinv2gen): Likewise.
 13146  
 13147  2005-05-14  Torbjorn Granlund  <tege@swox.com>
 13148  
 13149  	* longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
 13150  	operands.
 13151  	* (sub_ddmmss) [x86_64]: Likewise.
 13152  
 13153  2005-05-02  Torbjorn Granlund  <tege@swox.com>
 13154  
 13155  	* acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle
 13156  	version numbers like B.11.X.32509-32512.GP.
 13157  
 13158  	* mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE.
 13159  
 13160  	* mpn/powerpc64/mode64/aors_n.asm: Add a MULFUNC_PROLOGUE.
 13161  
 13162  	* mpf/inp_str.c: Use plain int for mpf_set_str return value (works
 13163  	around gcc 4 bug).
 13164  
 13165  	* acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly
 13166  	syntax.
 13167  	(long long reliability test 1): New GMP_PROG_CC_WORKS_PART test.
 13168  	(long long reliability test 2): New GMP_PROG_CC_WORKS_PART test.
 13169  
 13170  	* configure.in: Add mode64 support for darwin.  Use darwin.m4.
 13171  	Add cflags_opt flags for mode32 darwin.
 13172  
 13173  	* mpn/powerpc64: Use L() for all asm files.
 13174  
 13175  	* mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes".
 13176  
 13177  	* mpn/powerpc64/darwin.m4: New file.
 13178  
 13179  	* mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM.
 13180  	Rework DEF_OBJECT to need just one argument.
 13181  	* mpn/powerpc64/aix.m4: Likewise.
 13182  
 13183  	* mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with
 13184  	LDSYM.  Optimize somewhat.  Remove 2nd DEF_OBJECT operand.
 13185  
 13186  2005-05-01  Torbjorn Granlund  <tege@swox.com>
 13187  
 13188  	* mpn/generic/popham.c: Compute final summation differently for 64-bit.
 13189  
 13190  	* tests/mpz/t-popcount.c (check_random): New function.
 13191  	(main): Call it.
 13192  
 13193  2005-04-28  Torbjorn Granlund  <tege@swox.com>
 13194  
 13195  	* mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop.
 13196  	* mpn/amd64/sub_n.asm: Likewise.
 13197  
 13198  2005-04-09  Torbjorn Granlund  <tege@swox.com>
 13199  
 13200  	* mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of
 13201  	mp_size_t argument.
 13202  	* mpn/powerpc64/copyd.asm: Likewise.
 13203  	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
 13204  	* mpn/powerpc64/lshift.asm: Likewise.
 13205  	* mpn/powerpc64/rshift.asm: Likewise.
 13206  	* mpn/powerpc64/logops_n.asm: Likewise.
 13207  	* mpn/powerpc64/com_n.asm: Likewise.
 13208  
 13209  2005-04-08  Torbjorn Granlund  <tege@swox.com>
 13210  
 13211  	* mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.
 13212  
 13213  2005-04-07  Torbjorn Granlund  <tege@swox.com>
 13214  
 13215  	* mpn/powerpc32/add_n.asm: Add nc entry point.
 13216  	* mpn/powerpc32/sub_n.asm: Likewise.
 13217  
 13218  	* mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers.
 13219  
 13220  	* mpn/alpha/add_n.asm: Add correct cycle/limb numbers.
 13221  	* mpn/alpha/sub_n.asm: Likewise.
 13222  	* mpn/alpha/ev5/add_n.asm: Likewise.
 13223  	* mpn/alpha/ev5/sub_n.asm: Likewise.
 13224  
 13225  2005-03-31  Torbjorn Granlund  <tege@swox.com>
 13226  
 13227  	* mpn/x86/k7/gmp-mparam.h: Fix typo in last change.
 13228  
 13229  2005-03-19  Torbjorn Granlund  <tege@swox.com>
 13230  
 13231  	* mpn/amd64/gmp-mparam.h: Update.
 13232  
 13233  	* mpn/alpha/gmp-mparam.h: Update.
 13234  	* mpn/alpha/ev5/gmp-mparam.h: Update.
 13235  	* mpn/alpha/ev6/gmp-mparam.h: Update.
 13236  
 13237  	* mpn/ia64/gmp-mparam.h: Update.
 13238  
 13239  	* mpn/x86/p6/mmx/gmp-mparam.h: Update.
 13240  	* mpn/x86/pentium4/sse2/gmp-mparam.h: Update.
 13241  	* mpn/x86/k7/gmp-mparam.h: Update.
 13242  
 13243  	* tests/mpz/t-gcd.c (main): Honor command line reps argument.
 13244  
 13245  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code
 13246  	for generating test operands.
 13247  
 13248  2005-03-17  Niels Möller  <nisse@lysator.liu.se>
 13249  
 13250  	* mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much
 13251  	to adjust the top quotient.
 13252  	(hgcd_adjust): The quotient can be off by either 1 or 2.
 13253  
 13254  2005-03-16  Torbjorn Granlund  <tege@swox.com>
 13255  
 13256  	* tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of
 13257  	gcd,gcdext thresholds.
 13258  
 13259  2005-03-15  Niels Möller  <nisse@lysator.liu.se>
 13260  
 13261  	* mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer,
 13262  	reuse all temporary limb storage, including the storage used for the
 13263  	qstack.
 13264  
 13265  2005-03-09  Torbjorn Granlund  <tege@swox.com>
 13266  
 13267  	* mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE.
 13268  
 13269  2005-03-05  Torbjorn Granlund  <tege@swox.com>
 13270  
 13271  	* mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE.
 13272  	* mpn/ia64/gmp-mparam.h: Likewise.
 13273  
 13274  2005-02-17  Torbjorn Granlund  <tege@swox.com>
 13275  
 13276  	* mpn/ia64/divrem_1.asm: Add preinv entry point.
 13277  
 13278  2005-01-13  Torbjorn Granlund  <tege@swox.com>
 13279  
 13280  	* gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
 13281  	(MPN_SIZEINBASE_16): Likewise.
 13282  
 13283  2004-12-17  Torbjorn Granlund  <tege@swox.com>
 13284  
 13285  	* tune/speed.c (run_gnuplot): Use lines, not linespoints.
 13286  	Output a reset gnuplot command initially.
 13287  
 13288  2004-12-04  Torbjorn Granlund  <tege@swox.com>
 13289  
 13290  	* mpn/generic/random2.c (gmp_rrandomb): Rework again.
 13291  	* mpz/rrandomb.c (gmp_rrandomb): Likewise.
 13292  
 13293  	* mpn/amd64/redc_1.asm: Call via PLT when PIC.
 13294  
 13295  2004-11-29  Torbjorn Granlund  <tege@swox.com>
 13296  
 13297  	* mpn/amd64/divrem_1.asm: Add preinv entry point.
 13298  	* mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1.
 13299  
 13300  2004-11-24  Torbjorn Granlund  <tege@swox.com>
 13301  
 13302  	* mpn/alpha/diveby3.asm: Use correct prefetch instruction.
 13303  
 13304  2004-11-19  Torbjorn Granlund  <tege@swox.com>
 13305  
 13306  	* mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
 13307  	Add r31 dummy operand to `br' instruction.
 13308  
 13309  2004-11-17  Torbjorn Granlund  <tege@swox.com>
 13310  
 13311  	* mpn/powerpc64/mode64/addmul_1.asm: Rewrite.
 13312  	* mpn/powerpc64/mode64/mul_1.asm: Rewrite.
 13313  
 13314  	* configure.in: Invoke AC_C_RESTRICT.
 13315  
 13316  2004-11-16  Torbjorn Granlund  <tege@swox.com>
 13317  
 13318  	* mpn/alpha/diveby3.asm: New file.
 13319  
 13320  2004-11-13  Torbjorn Granlund  <tege@swox.com>
 13321  
 13322  	* mpn/amd64/popham.asm: New file.
 13323  
 13324  2004-11-12  Torbjorn Granlund  <tege@swox.com>
 13325  
 13326  	* mpn/amd64/add_n.asm: Correct cycle count.
 13327  	* mpn/amd64/sub_n.asm: Likewise.
 13328  
 13329  	* mpn/amd64/dive_1.asm: Speed divisors with many factors of 2.
 13330  
 13331  2004-11-11  Torbjorn Granlund  <tege@swox.com>
 13332  
 13333  	* mpn/amd64/dive_1.asm: New file.
 13334  
 13335  2004-11-10  Torbjorn Granlund  <tege@swox.com>
 13336  
 13337  	* mpn/generic/popham.c: Add comment.
 13338  
 13339  2004-11-09  Torbjorn Granlund  <tege@swox.com>
 13340  
 13341  	* mpn/amd64/com_n.asm: New file.
 13342  
 13343  	* mpn/amd64/logops_n.asm: New file.
 13344  
 13345  2004-11-08  Torbjorn Granlund  <tege@swox.com>
 13346  
 13347  	* mpn/powerpc64/com_n.asm: New file.
 13348  
 13349  2004-11-05  Torbjorn Granlund  <tege@swox.com>
 13350  
 13351  	* mpn/amd64/diveby3.asm: New file.
 13352  
 13353  	* config.guess: Strip any PPC string in /proc/cpuinfo.
 13354  	Recognize 970 in that code.
 13355  
 13356  2004-11-01  Torbjorn Granlund  <tege@swox.com>
 13357  
 13358  	* mpn/amd64/mul_basecase.asm: New file.
 13359  
 13360  	* mpn/amd64/redc_1.asm: New file.
 13361  
 13362  2004-10-25  Torbjorn Granlund  <tege@swox.com>
 13363  
 13364  	* mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts.
 13365  
 13366  	* mpn/powerpc64/README: Update POWER5/PPC970 pipeline information.
 13367  
 13368  	* mpn/generic/mul_basecase.c (MAX_LEFT): Add comment.
 13369  
 13370  	* doc/gmp.texi: Consistently use "x86" denotation.
 13371  	(Assembler SIMD Instructions): Mention SSE2 usage.
 13372  
 13373  	* demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call.
 13374  
 13375  2004-10-18  Torbjorn Granlund  <tege@swox.com>
 13376  
 13377  	* mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry
 13378  	inversion trick.
 13379  
 13380  2004-10-16  Torbjorn Granlund  <tege@swox.com>
 13381  
 13382  	* configure.in: Support icc under x86.
 13383  	(ia64-*-linux*): Pass -no-gcc to icc.
 13384  
 13385  2004-10-15  Torbjorn Granlund  <tege@swox.com>
 13386  
 13387  	* longlong.h (ia64 umul_ppmm): Add version for icc.
 13388  
 13389  	* configure.in: Support icc under ia64-*-linux*.
 13390  
 13391  	* acinclude.m4: New "compiler works" test for icc 8.1 bug.
 13392  	(GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC.
 13393  
 13394  2004-10-14  Torbjorn Granlund  <tege@swox.com>
 13395  
 13396  	* mpn/generic/gcdext.c: Add a few missing TMP_MARK.
 13397  
 13398  2004-10-14  Torbjorn Granlund  <tege@swox.com>
 13399  
 13400  	* acinclude.m4 (GMP_ASM_W32): Try also "data4".
 13401  
 13402  	* mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel
 13403  	assembler.
 13404  	* mpn/ia64/aors_n.asm: Likewise.
 13405  
 13406  	* mpn/ia64/divrem_2.asm: Add ".prologue".
 13407  
 13408  	* mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the
 13409  	Intel assembler.
 13410  
 13411  	* longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
 13412  	* gmp-impl.h: Likewise.
 13413  
 13414  2004-10-12  Torbjorn Granlund  <tege@swox.com>
 13415  
 13416  	* mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for
 13417  	n=2.
 13418  	* mpn/ia64/addmul_2.asm: Likewise.
 13419  
 13420  	* tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2.
 13421  
 13422  	* tune/speed.c (routine): Make R parameter optional for mpn_mul_2.
 13423  
 13424  2004-10-11  Torbjorn Granlund  <tege@swox.com>
 13425  
 13426  	* mpn/sparc64/addmul_1.asm: Update a comment.
 13427  
 13428  	* tests/devel/aors_n.c: #include tests.h.
 13429  	* tests/devel/anymul_1.c: Likewise.
 13430  	* tests/devel/shift.c: Likewise.
 13431  	* tests/devel/copy.c: Likewise.
 13432  
 13433  	* tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n,
 13434  	mpn_rsh1add_n, and mpn_rsh1sub_n.
 13435  
 13436  	* mpn/ia64/submul_1.asm: Add TODO item.
 13437  
 13438  	* mpn/ia64/aors_n.asm: Rewrite function entry code (again).
 13439  	* mpn/ia64/aorslsh1_n.asm: Likewise.
 13440  	* mpn/ia64/logops_n.asm: Likewise.
 13441  
 13442  	* mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code.
 13443  	* mpn/ia64/lorrshift.asm: Likewise.  Remove several spurious loads.
 13444  
 13445  	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
 13446  	file removals and additions.
 13447  
 13448  2004-10-10  Torbjorn Granlund  <tege@swox.com>
 13449  
 13450  	* mpn/ia64/copyi.asm: Tune function entry code.
 13451  	* mpn/ia64/copyd.asm: Likewise.
 13452  
 13453  	* mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed
 13454  	and size.
 13455  	* mpn/ia64/aors_n.asm: Likewise.
 13456  
 13457  	* mpn/powerpc64/logops_n.asm: Correct cycles counts.
 13458  	* mpn/powerpc64/mode64/aors_n.asm: Likewise.
 13459  
 13460  	* tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR.
 13461  
 13462  	* tests/devel/logops_n.c: New file, handle all logical operations.
 13463  
 13464  	* tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and
 13465  	mpn_submul_1
 13466  	* tests/devel/mul_1.c: Remove.
 13467  	* tests/devel/addmul_1.c: Remove.
 13468  	* tests/devel/submul_1.c: Remove.
 13469  
 13470  	* tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift.
 13471  	* tests/devel/lshift.c: Remove.
 13472  	* tests/devel/rshift.c: Remove.
 13473  
 13474  	* tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n.
 13475  	* tests/devel/add_n.c: Remove.
 13476  	* tests/devel/sub_n.c: Remove.
 13477  
 13478  2004-10-09  Torbjorn Granlund  <tege@swox.com>
 13479  
 13480  	* mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
 13481  	* mpn/powerpc64/aix.m4: Likewise.
 13482  	* mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and
 13483  	TOCREF for approx_tab.
 13484  
 13485  	* mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point.
 13486  
 13487  2004-10-08  Torbjorn Granlund  <tege@swox.com>
 13488  
 13489  	* mpn/powerpc64/copyi.asm: New file.
 13490  	* mpn/powerpc64/copyd.asm: New file.
 13491  	* gmp-h.in: Remove PPC MPN_COPY variants.
 13492  	* gmp-impl.h: Likewise.
 13493  
 13494  	* mpn/powerpc64/logops_n.asm: New file.
 13495  
 13496  	* mpn/powerpc64/mode64/invert_limb.asm: New file.
 13497  
 13498  2004-10-07  Torbjorn Granlund  <tege@swox.com>
 13499  
 13500  	* mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and
 13501  	its derivatives.
 13502  	* mpn/powerpc64/mode64/add_n.asm: Delete.
 13503  	* mpn/powerpc64/mode64/sub_n.asm: Delete.
 13504  
 13505  	* configfsf.guess: Patch HP-UX code to accommodate HP compiler's new
 13506  	inability to read from stdin.
 13507  
 13508  	* mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.
 13509  
 13510  2004-10-02  Torbjorn Granlund  <tege@swox.com>
 13511  
 13512  	* mpn/amd64/README: Update for new developments, fix typos.
 13513  
 13514  	* mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb).
 13515  
 13516  	* mpn/amd64/addmul_1.asm: Remove unreachable code block.
 13517  
 13518  2004-09-30  Torbjorn Granlund  <tege@swox.com>
 13519  
 13520  	* mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb.
 13521  
 13522  	* mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code
 13523  	density.
 13524  	* mpn/ia64/mul_1.asm: Analogous changes.
 13525  
 13526  2004-09-29  Torbjorn Granlund  <tege@swox.com>
 13527  
 13528  	* gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
 13529  	flag.
 13530  
 13531  2004-09-28  Torbjorn Granlund  <tege@swox.com>
 13532  
 13533  	* mpn/ia64/divrem_1.asm: Add cycle counts to loop.
 13534  
 13535  	* mpn/ia64/divrem_2.asm: New file.
 13536  
 13537  2004-09-28  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 13538  
 13539  	* mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
 13540  	recursive fft parameters.
 13541  
 13542  2004-09-20  Torbjorn Granlund  <tege@swox.com>
 13543  
 13544  	* tests/misc.c (tests_rand_start): Default to strtoul for re-seeding.
 13545  
 13546  	* tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3.
 13547  
 13548  2004-09-19  Torbjorn Granlund  <tege@swox.com>
 13549  
 13550  	* tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.
 13551  
 13552  2004-09-18  Torbjorn Granlund  <tege@swox.com>
 13553  
 13554  	* tests/misc.c (tests_rand_start): Invoke fflush after printing seed.
 13555  
 13556  	* tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run
 13557  	extra FFT tests if set.
 13558  	(ref_mpn_mul): Use library code for kara and toom, but skewded so that
 13559  	we never use the same algorithm that we're testing.
 13560  	(mul_kara): Delete.
 13561  	(debug_mp): Print just one line of large numbers.
 13562  	(ref_mpn_mul): Rework usage of tp temporary space.
 13563  
 13564  2004-09-15  Torbjorn Granlund  <tege@swox.com>
 13565  
 13566  	* mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp.
 13567  	* mpn/ia64/addmul_2.asm: Likewise.
 13568  
 13569  2004-09-13  Torbjorn Granlund  <tege@swox.com>
 13570  
 13571  	* mpn/ia64/invert_limb.asm: Rewrite.
 13572  
 13573  	* mpn/ia64/logops_n.asm: Insert some more stops.
 13574  
 13575  2004-09-12  Torbjorn Granlund  <tege@swox.com>
 13576  
 13577  	* mpn/ia64/gmp-mparam.h: Update.
 13578  	* mpn/amd64/gmp-mparam.h: Update.
 13579  
 13580  	* mpn/ia64/sqr_diagonal.asm: Shave off a few cycles.
 13581  
 13582  2004-09-11  Torbjorn Granlund  <tege@swox.com>
 13583  
 13584  	* mpn/ia64/mul_2.asm: New file.
 13585  	* mpn/ia64/addmul_2.asm: New file.
 13586  
 13587  	* mpn/ia64/addmul_1.asm: Tune a cycle from prologue.
 13588  
 13589  	* mpn/ia64/lorrshift.asm: Insert stops after several branches.
 13590  	* mpn/ia64/aorslsh1_n.asm: Likewise.
 13591  	* mpn/ia64/rsh1aors_n.asm: Likewise.
 13592  
 13593  	* mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
 13594  	accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.
 13595  
 13596  2004-09-07  Torbjorn Granlund  <tege@swox.com>
 13597  
 13598  	* mpn/ia64/submul_1.asm: Rewrite.
 13599  
 13600  	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
 13601  	* mpn/ia64/mul_1.asm: Likewise.
 13602  
 13603  2004-09-02  Torbjorn Granlund  <tege@swox.com>
 13604  
 13605  	* mpn/ia64/mul_1.asm: Optimize feed-in code.
 13606  	* mpn/ia64/addmul_1.asm: Rewrite feed-in code.
 13607  
 13608  2004-08-29  Torbjorn Granlund  <tege@swox.com>
 13609  
 13610  	* tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.
 13611  
 13612  2004-07-16  Torbjorn Granlund  <tege@swox.com>
 13613  
 13614  	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
 13615  
 13616  2004-06-17  Kevin Ryde  <kevin@swox.se>
 13617  
 13618  	* doc/gmp.texi: Use @. when sentence ends with a capital, for good
 13619  	spacing in tex.
 13620  	(Language Bindings): Add gmp-d, reported by Ben Hinkle.  Update SWI
 13621  	Prolog URL, reported by Jan Wielemaker.
 13622  
 13623  2004-06-09  Torbjorn Granlund  <tege@swox.com>
 13624  
 13625  	* configure.in: Handle --enable-fat.  Use that to enable x86 fat
 13626  	builds, remove magic meaning of i386-*-*.
 13627  
 13628  2004-06-03  Kevin Ryde  <kevin@swox.se>
 13629  
 13630  	* gmp-impl.h (memset): Use a local char* pointer, in case parameter is
 13631  	something else (eg. tune/common.c).  Reported by Emmanuel Thomé.
 13632  
 13633  2004-06-01  Kevin Ryde  <kevin@swox.se>
 13634  
 13635  	* config.guess (i?86-*-*): Avoid "Illegal instruction" message which
 13636  	goes to stdout on 80386 freebsd4.9.
 13637  
 13638  2004-05-23  Niels Möller  <nisse@lysator.liu.se>
 13639  
 13640  	* mpn/generic/gcdext.c (gcdext_1_u): New function.
 13641  	(mpn_gcdext): Use it.
 13642  
 13643  2004-05-23  Torbjorn Granlund  <tege@swox.com>
 13644  
 13645  	* mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.
 13646  
 13647  2004-05-22  Torbjorn Granlund  <tege@swox.com>
 13648  
 13649  	* mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.
 13650  
 13651  	* mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code.
 13652  
 13653  	* mpn/powerpc32/lshift.asm: Add more cycle numbers.
 13654  	* mpn/powerpc32/rshift.asm: Likewise.
 13655  
 13656  	* mpn/ia64/addmul_1.asm: Reformat.
 13657  
 13658  2004-05-21  Torbjorn Granlund  <tege@swox.com>
 13659  
 13660  	* gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare.
 13661  
 13662  	* tune/Makefile.am: Compile gcdext.c.
 13663  
 13664  	* gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150.
 13665  	(GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default.  Override when
 13666  	TUNE_PROGRAM_BUILD.
 13667  	(GCDEXT_THRESHOLD): Remove.
 13668  
 13669  	* tune/tuneup.c (gcdext_schoenhage_threshold): New variable.
 13670  	(gcdext_threshold): Remove variable.
 13671  	(tune_gcd_schoenhage): Lower step_factor to 0.1.
 13672  	(tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage.
 13673  	(tune_gcdext): Remove function.
 13674  	(all): Corresponding changes.
 13675  
 13676  2004-05-21  Niels Möller  <nisse@lysator.liu.se>
 13677  
 13678  	* mpn/generic/gcdext.c: Complete rewrite.  Uses fast Lehmer code for
 13679  	small operands, and Schoenhage code for large operands.
 13680  
 13681  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
 13682  	not smaller than 2nd operand.
 13683  
 13684  2004-05-17  Kevin Ryde  <kevin@swox.se>
 13685  
 13686  	* gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails
 13687  	use ?: same as normal case, to avoid warnings from Borland C++ 6.0.
 13688  	Reported by delta trinity.
 13689  
 13690  2004-05-15  Kevin Ryde  <kevin@swox.se>
 13691  
 13692  	* tune/time.c (getrusage_backwards_p): New function
 13693  	(speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage.
 13694  	* configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage
 13695  	doesn't exist.
 13696  	* tune/README (NetBSD 1.4.1 m68k): Update notes.
 13697  
 13698  	* configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and
 13699  	cc_n32_ldflags, libtool knows to put the linker in n32 mode.
 13700  
 13701  2004-05-15  Torbjorn Granlund  <tege@swox.com>
 13702  
 13703  	* config.guess (powerpc*-*-*): Add more processor types to mfpvr code.
 13704  	* configure.in: Generalize powerpc subtype matching code.
 13705  
 13706  	* mpz/fac_ui.c: Misc cleanups, spelling corrections.
 13707  
 13708  2004-05-14  Kevin Ryde  <kevin@swox.se>
 13709  
 13710  	* mpf/sub.c: When one operand cancels high limbs of the other, strip
 13711  	high zeros on the balance before truncating to destination precision.
 13712  	Truncating first loses accuracy and can lead to a result 0 despite
 13713  	operands being not equal.  Reported by John Abbott.
 13714  	Also, ensure exponent is zero when result is zero, for instance if
 13715  	operands are exactly equal.
 13716  	* tests/mpf/t-sub.c (check_data): New function, exercising these.
 13717  
 13718  2004-05-12  Kevin Ryde  <kevin@swox.se>
 13719  
 13720  	* configure.in (AC_PROG_RANLIB): New macro, supposedly required by
 13721  	automake, though it doesn't complain.
 13722  
 13723  	* demos/expr/Makefile.am (ARFLAGS): Add a default setting, to
 13724  	workaround an automake bug.
 13725  
 13726  2004-05-10  Kevin Ryde  <kevin@swox.se>
 13727  
 13728  	* */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4.
 13729  
 13730  	* doc/gmp.texi (Demonstration Programs): Add a remark about expression
 13731  	evaluation in the main gmp library.
 13732  
 13733  	* demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use
 13734  	mpf_init2 to follow requested precision.
 13735  	* demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init,
 13736  	to make parameters match.
 13737  
 13738  	* demos/expr/run-expr.c: Don't use getopt, to avoid needing configury
 13739  	for optarg declaration.  Remove TRY macro, rename foo and bar to var_a
 13740  	and var_b, for clarity.
 13741  	* demos/expr/expr-impl.h: Don't use expr-config.h.
 13742  	* configure.in (demos/expr/expr-config.h): Remove.
 13743  	* demos/expr/expr-config.in: Remove file.
 13744  
 13745  2004-05-08  Kevin Ryde  <kevin@swox.se>
 13746  
 13747  	* doc/configuration (Configure): Update for current automake not
 13748  	copying acinclude.m4 into aclocal.m4.
 13749  
 13750  	* configure.in, Makefile.am, doc/gmp.texi, doc/configuration,
 13751  	tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README,
 13752  	demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in,
 13753  	demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c:
 13754  	MPFR now published separately, remove various bits.
 13755  	* mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c,
 13756  	demos/expr/exprfra.c: Remove.
 13757  
 13758  2004-05-07  Kevin Ryde  <kevin@swox.se>
 13759  
 13760  	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library
 13761  	path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands
 13762  	"set -e", so we need an "|| true" in case there's nothing to copy (for
 13763  	instance in a static build).
 13764  
 13765  2004-05-06  Kevin Ryde  <kevin@swox.se>
 13766  
 13767  	* mpn/alpha/mode1o.c: Remove, in favour of ...
 13768  	* mpn/alpha/mode1o.asm: New file.
 13769  	* mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro.
 13770  
 13771  	* tune/amd64.asm: Save rbx in r10 rather than on the stack.
 13772  
 13773  	* configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case
 13774  	we're in ABI=32 on an old OS not supporting xmm regs.
 13775  	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under
 13776  	-march=k8 too, and not under ABI=64.
 13777  
 13778  	* doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation
 13779  	and overflows.  For mpz_get_d_2exp note truncation, note result if
 13780  	OP==0, and cross reference libc frexp.
 13781  	(Rational Conversions): For mpq_get_d, note truncation and overflows.
 13782  	(Converting Floats): For mpf_get_d, note truncation and overflows.
 13783  	For mpf_get_d_2exp, note truncation, note result if OP==0.
 13784  	(Assembler Code Organisation): Note nails subdirectories.
 13785  	Clarification of get_d_2exp OP==0 reported by Sylvain Pion.
 13786  
 13787  2004-05-05  Torbjorn Granlund  <tege@swox.com>
 13788  
 13789  	* mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files
 13790  	(mainly by Niels Möller).
 13791  	* configure.in, mpn/Makefile.am: Add them.
 13792  
 13793  	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD,
 13794  	MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD.
 13795  
 13796  	* tune/Makefile.am: Compile mullow_n.c.
 13797  	* tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase):
 13798  	New functions.
 13799  	* tune/speed.c (routine): Add entries for mpn_mullow_n and
 13800  	mpn_mullow_basecase.
 13801  	* tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL,
 13802  	SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines.
 13803  	* tune/tuneup.c (tune_mullow): New function.
 13804  
 13805  	* gmp-impl.h (invert_limb): Compute branch-freely.
 13806  
 13807  2004-05-02  Kevin Ryde  <kevin@swox.se>
 13808  
 13809  	* mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC.
 13810  	Use 32-bit insns to save code bytes, and to save a couple of cycles on
 13811  	the initial setup multiplies.
 13812  
 13813  2004-05-01  Kevin Ryde  <kevin@swox.se>
 13814  
 13815  	* doc/gmp.texi (References): Update gcc online docs url to
 13816  	gcc.gnu.org.
 13817  
 13818  	* configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this
 13819  	pattern.  (Believe the mips64*-*-* part also used picks up all current
 13820  	irix6 tuples anyway.)  Reported by Rainer Orth.
 13821  
 13822  2004-04-30  Kevin Ryde  <kevin@swox.se>
 13823  
 13824  	* acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED,
 13825  	GMP_ASM_X86_GOT_EAX_OK): New macros.
 13826  	(GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by
 13827  	recent gcc.  Reported by David Newman.
 13828  
 13829  	* doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an
 13830  	alternative to gmp_randinit.
 13831  
 13832  2004-04-29  Torbjorn Granlund  <tege@swox.com>
 13833  
 13834  	* configfsf.guess: Update to 2004-03-12.
 13835  	* configfsf.sub: Likewise.
 13836  
 13837  2004-04-27  Torbjorn Granlund  <tege@swox.com>
 13838  
 13839  	* mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation
 13840  	and to generate even numbers.
 13841  	* mpn/generic/random2.c (gmp_rrandomb): Likewise.
 13842  
 13843  2004-04-25  Kevin Ryde  <kevin@swox.se>
 13844  
 13845  	* gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint
 13846  	on a memory output, apparently not supported and provokes a warning
 13847  	from gcc 3.4.
 13848  
 13849  2004-04-24  Kevin Ryde  <kevin@swox.se>
 13850  
 13851  	* longlong.h (count_leading_zeros_gcc_clz,
 13852  	count_trailing_zeros_gcc_ctz): New macros.
 13853  	(count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc
 13854  	3.4.
 13855  
 13856  	* configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of
 13857  	each option list, for use by gcc 3.4 to avoid deprecation warnings
 13858  	about -mcpu.
 13859  
 13860  	* mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c,
 13861  	mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR()
 13862  	on function definition too, as demanded by gcc 3.4.
 13863  
 13864  2004-04-22  Kevin Ryde  <kevin@swox.se>
 13865  
 13866  	* tests/rand/t-lc2exp.c (check_bigc1): New test.
 13867  
 13868  	* doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our
 13869  	preference for this in an @appendix, and because texi2pdf doesn't
 13870  	support @appendixsubsec directly within an @appendix.
 13871  
 13872  2004-04-20  Kevin Ryde  <kevin@swox.se>
 13873  
 13874  	* doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7.
 13875  	* doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in
 13876  	@ref within @copying, recent texinfo.tex doesn't like that.
 13877  
 13878  	* demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw
 13879  	DLLs.
 13880  
 13881  	* */Makefile.in, install-sh: Update to automake 1.8.3.
 13882  	* ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6.
 13883  
 13884  	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant
 13885  	expression, rather than a configure test.
 13886  	* acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer
 13887  	needed.
 13888  	* tests/t-hightomask.c: New file.
 13889  	* tests/Makefile.am (check_PROGRAMS): Add it.
 13890  
 13891  	* macos/configure (parse_top_configure): Look for PACKAGE_NAME and
 13892  	PACKAGE_VERSION now used by autoconf.
 13893  	(what_objects): Only demand 9 object files, as for instance occurs in
 13894  	the scanf directory.
 13895  	(asm files): Transform labels L(foo) -> Lfoo.  Take func name from
 13896  	PROLOGUE to support empty "EPILOGUE()".  Recognise and substitute
 13897  	register name "define()"s.
 13898  	* macos/Makefile.in (CmnObjs): Add tal-notreent.o.
 13899  
 13900  2004-04-19  Torbjorn Granlund  <tege@swox.com>
 13901  
 13902  	* tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define.
 13903  	(speed_mpn_rootrem): Declare.
 13904  	* tune/common.c (speed_mpn_rootrem): New function.
 13905  	* tune/speed.c (routine): Add entry for mpn_rootrem.
 13906  
 13907  2004-04-16  Kevin Ryde  <kevin@swox.se>
 13908  
 13909  	* doc/fdl.texi: Update from FSF, just fixing a couple of typos.
 13910  
 13911  	* macos/configure, macos/Makefile.in: Add printf and scanf directories.
 13912  
 13913  	* tests/mpz/t-gcd.c (check_data): New function, exercising K6
 13914  	gcd_finda bug.
 13915  
 13916  2004-04-14  Kevin Ryde  <kevin@swox.se>
 13917  
 13918  	* doc/gmp.texi (Reentrancy, Random State Initialization): Note
 13919  	gmp_randinit use of gmp_errno is not thread safe.  Reported by Vincent
 13920  	Lefèvre.
 13921  
 13922  	* doc/gmp.texi (Random State Initialization): Add index entries for
 13923  	gmp_errno and constants.
 13924  
 13925  	* mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB.
 13926  
 13927  	* configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg.
 13928  
 13929  2004-04-12  Kevin Ryde  <kevin@swox.se>
 13930  
 13931  	* demos/perl/GMP.xs (static_functable): New macro, use it for all
 13932  	function tables, to support mingw DLL builds.
 13933  	* demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on
 13934  	DLLs, should be ok now.
 13935  
 13936  	* demos/perl/sample.pl: Print the module and library versions in use.
 13937  
 13938  	* demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'.
 13939  	* demos/perl/GMP.pm (COPYRIGHT): New in the doc section.
 13940  
 13941  	* Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy.
 13942  
 13943  	* tal-debug.c: Add <stdlib.h> for abort.
 13944  
 13945  2004-04-07  Torbjorn Granlund  <tege@swox.com>
 13946  
 13947  	* tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.
 13948  
 13949  	* mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).
 13950  
 13951  2004-04-07  Kevin Ryde  <kevin@swox.se>
 13952  
 13953  	* mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups.
 13954  	Zero flag is wrong here, it relects only the high limb of the compare,
 13955  	leading to n1>=n2 not satisfied and wrong results.  cp[1]==0x7FFFFFFF
 13956  	with cp[0]>=0x80000001 provokes this.
 13957  
 13958  	* doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under
 13959  	the pow function description too.
 13960  	(Language Bindings): Add XEmacs (betas at this stage).  Reported by
 13961  	Jerry James.
 13962  
 13963  	* tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed.
 13964  
 13965  	* gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R.
 13966  	* gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout
 13967  	instead of 0, in case a K&R treats int and FILE* params differently.
 13968  
 13969  2004-04-04  Kevin Ryde  <kevin@swox.se>
 13970  
 13971  	* gmp-impl.h (BSWAP_LIMB) [amd64]: New macro.
 13972  	(FORCE_DOUBLE): Use this for amd64 too.
 13973  
 13974  	* tests/amd64check.c, tests/amd64call.asm: New files, derived in part
 13975  	from x86check.c and x86call.asm.
 13976  	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them.
 13977  	* configure.in (x86_64-*-* ABI=64): Use them.
 13978  
 13979  2004-04-03  Kevin Ryde  <kevin@swox.se>
 13980  
 13981  	* mpn/amd64/mode1o.asm: New file.
 13982  	* mpn/amd64/amd64-defs.m4 (ASSERT): New macro.
 13983  
 13984  	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add
 13985  	note on how "dr" part of algorithm is handled.
 13986  
 13987  	* mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm,
 13988  	mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds.
 13989  
 13990  2004-03-31  Kevin Ryde  <kevin@swox.se>
 13991  
 13992  	* doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix.
 13993  
 13994  	* mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY.
 13995  
 13996  2004-03-28  Torbjorn Granlund  <tege@swox.com>
 13997  
 13998  	* mpn/amd64/divrem_1.asm: Trim a few cycles.
 13999  
 14000  2004-03-27  Torbjorn Granlund  <tege@swox.com>
 14001  
 14002  	* mpn/amd64/sublsh1_n.asm: Fix typo.
 14003  
 14004  	* mpn/generic/divrem_1.c: Fix typo.
 14005  
 14006  	* mpn/generic/sqr_basecase.c: Fix typo.
 14007  
 14008  	* mpn/amd64/divrem_1.asm: New file.
 14009  
 14010  2004-03-20  Kevin Ryde  <kevin@swox.se>
 14011  
 14012  	* longlong.h (power, powerpc): Add comments on how we select this code.
 14013  
 14014  	* gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the
 14015  	two identically but ?: is a bit clearer.
 14016  
 14017  	* insert-dbl.c: Remove file, no longer used, scaling is now integrated
 14018  	in mpn_get_d.
 14019  	* Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c.
 14020  	* gmp-impl.h (__gmp_scale2): Remove prototype.
 14021  
 14022  2004-03-17  Kevin Ryde  <kevin@swox.se>
 14023  
 14024  	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64.
 14025  
 14026  	* mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form.
 14027  
 14028  2004-03-16  Torbjorn Granlund  <tege@swox.com>
 14029  
 14030  	* mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
 14031  	mpn_addmul_2s.
 14032  
 14033  2004-03-14  Kevin Ryde  <kevin@swox.se>
 14034  
 14035  	* mpf/mul_ui.c: Incorporate carry from low limbs, for exactness.
 14036  	* tests/mpf/t-mul_ui.c: New file.
 14037  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14038  
 14039  	* mpf/div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
 14040  	divisor, since truncating can lose accuracy.
 14041  	* tests/mpf/t-div.c: New file.
 14042  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14043  
 14044  	* tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend
 14045  	bogus 99/4 test.
 14046  	* tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap.
 14047  
 14048  	* tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function.
 14049  
 14050  	* mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for
 14051  	when vval=-0x800..00 and limb==longlong.
 14052  
 14053  	* mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when
 14054  	uexp==2 but value bigger than an mp_limb_t.
 14055  	* tests/mpf/t-cmp_si.c (check_data): Add test cases.
 14056  
 14057  	* tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for
 14058  	negative bases used for upper case hex in integer traces.
 14059  
 14060  2004-03-12  Torbjorn Granlund  <tege@swox.com>
 14061  
 14062  	* mpn/generic/sb_divrem_mn.c: Correct header comment.
 14063  
 14064  2004-03-11  Kevin Ryde  <kevin@swox.se>
 14065  
 14066  	* aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version
 14067  	1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for
 14068  	development when changing contents or with duplicate named files like
 14069  	we have.
 14070  
 14071  	Revert this, ie restore AR_FLAGS=cq:
 14072  	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
 14073  	does this itself on detecting duplicate object filenames in piecewise
 14074  	linking mode.
 14075  
 14076  	* randbui.c, randmui.c [longlong+nails]: Correction to conditionals
 14077  	for second limb.
 14078  
 14079  	* mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c,
 14080  	mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c,
 14081  	mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c,
 14082  	mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c,
 14083  	mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c
 14084  	[longlong+nails]: Amend #if to avoid warnings about shift amount.
 14085  
 14086  2004-03-07  Kevin Ryde  <kevin@swox.se>
 14087  
 14088  	* mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate
 14089  	result.  Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter
 14090  	UNLIKELY.
 14091  
 14092  	* mpf/ui_div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
 14093  	divisor, since truncating can lose accuracy.
 14094  	* tests/mpf/t-ui_div.c: New file.
 14095  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14096  
 14097  	* mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer
 14098  	and avoid 1 limb alloc when not wanted.
 14099  
 14100  	* gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined.
 14101  	(TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less
 14102  	preprocessor conditionals.
 14103  
 14104  	* mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments.
 14105  
 14106  	* tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify.
 14107  
 14108  2004-03-04  Kevin Ryde  <kevin@swox.se>
 14109  
 14110  	* gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit
 14111  	of K&R.
 14112  	* tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R.
 14113  
 14114  	* doc/configuration (Configure): Remove mkinstalldirs, no longer used.
 14115  
 14116  	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
 14117  	does this itself on detecting duplicate object filenames in piecewise
 14118  	linking mode.
 14119  
 14120  	* configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify
 14121  	ABI=2.0n versus ABI=2.0w.  In particular this lets CC=cc_bundled
 14122  	correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64
 14123  	to that compiler, currently).
 14124  
 14125  	* doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using
 14126  	global default precision.
 14127  	(Random State Miscellaneous): Describe gmp_urandomb_ui as giving N
 14128  	bits.
 14129  	(C++ Interface Floats): Describe operator= copying the value, not the
 14130  	precision, and what this can mean about copy constructor versus
 14131  	default constructor plus assignment.
 14132  
 14133  	* mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting.
 14134  	Don't truncate the divisor, it can make the result inaccurate.
 14135  	* tests/mpf/t-set_q.c: New file.
 14136  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14137  
 14138  	* mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1.
 14139  	No actual bug here, because MPN_COPY has thusfar been an alias for
 14140  	MPN_COPY_INCR, only an ASSERT failure.
 14141  	* tests/mpf/t-set.c: New file.
 14142  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14143  
 14144  	* mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call.
 14145  
 14146  	* mpf/set_d.c: Rate d==0 as UNLIKELY.  Store size before extract call,
 14147  	to shorten lifespan of "negative".
 14148  
 14149  	* mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c,
 14150  	mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one
 14151  	less live quantity across that call.
 14152  	* mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before
 14153  	alloc call, to overlap with other operations.
 14154  
 14155  	* tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize,
 14156  	refmpf_validate, refmpf_validate_division): New functions.
 14157  
 14158  	* tests/refmpn.c, tests/tests.h (refmpn_copy_extend,
 14159  	refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions.
 14160  
 14161  	* tal-debug.c: Add <string.h> for strcmp.
 14162  
 14163  	* tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t
 14164  	for loop index, to quieten g++ warning.
 14165  
 14166  2004-03-02  Kevin Ryde  <kevin@swox.se>
 14167  
 14168  	* tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes.
 14169  
 14170  2004-03-01  Torbjorn Granlund  <tege@swox.com>
 14171  
 14172  	With Karl Hasselström:
 14173  	* mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with
 14174  	meat from old mpn_dc_divrem_n.  Accept scratch parameter.  Rewrite to
 14175  	avoid a recursive call.
 14176  	(mpn_dc_div_3_by_2): New function, with meat from old
 14177  	mpn_dc_div_3_halves_by_2.  Accept scratch parameter.
 14178  	(mpn_dc_divrem_n): Now just allocate scratch space and call new
 14179  	mpn_dc_div_2_by_1.
 14180  
 14181  2004-02-29  Kevin Ryde  <kevin@swox.se>
 14182  
 14183  	* longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining
 14184  	mpn/alpha/cntlz.asm cmpbge technique.
 14185  
 14186  	* aclocal.m4, configure, install-sh, missing, ltmain.sh,
 14187  	*/Makefile.in: Update to automake 1.8.2 and libtool 1.5.2.
 14188  
 14189  	* doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows
 14190  	C99 / and %.
 14191  	(Exact Remainder): Index entries for divisibility testing algorithm.
 14192  
 14193  	* tune/time.c (speed_endtime): Return 0.0 for negative time measured.
 14194  	Revise usage comments for clarity.
 14195  	* tune/common.c (speed_measure): Recognise speed_endtime 0.0 for
 14196  	failed measurement.
 14197  
 14198  	* tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup.
 14199  
 14200  2004-02-27  Torbjorn Granlund  <tege@swox.com>
 14201  
 14202  	* tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor.
 14203  
 14204  	* tests/mpz/t-gcd.c: Decrease # of tests to 50.
 14205  
 14206  2004-02-27  Kevin Ryde  <kevin@swox.se>
 14207  
 14208  	* tests/devel/try.c: Add a comment that this is not for Cray systems.
 14209  
 14210  	* mpf/set_q.c: Don't support den(q)<0, demand canonical form in the
 14211  	usual way.
 14212  
 14213  2004-02-24  Torbjorn Granlund  <tege@swox.com>
 14214  
 14215  	From Kevin:
 14216  	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
 14217  	criterion met.
 14218  
 14219  2004-02-22  Kevin Ryde  <kevin@swox.se>
 14220  
 14221  	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS):
 14222  	Remove files that might look like compiler output, so our "||"
 14223  	alternatives are not fooled.
 14224  
 14225  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code
 14226  	mis-compiled by certain IA-64 HP cc at +O3.
 14227  
 14228  	* gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for
 14229  	the benefit of freebsd where .mcount clobbers registers.  Spotted by
 14230  	Torbjorn.
 14231  	* configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New
 14232  	AC_DEFINEs.
 14233  
 14234  2004-02-21  Kevin Ryde  <kevin@swox.se>
 14235  
 14236  	* configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's
 14237  	not used in ABI=64 on the BSD systems.
 14238  
 14239  2004-02-18  Niels Möller  <nisse@lysator.liu.se>
 14240  
 14241  	* tests/mpz/t-gcd.c (gcdext_valid_p): New function.
 14242  	(ref_mpz_gcd): Deleted function.
 14243  	(one_test): Rearranged to call mpz_gcdext first, so that the
 14244  	returned value can be validated.
 14245  	(main): Don't use ref_mpz_gcd.
 14246  
 14247  2004-02-18  Torbjorn Granlund  <tege@swox.com>
 14248  
 14249  	* gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section.
 14250  
 14251  	* tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT.
 14252  
 14253  	* mpz/rrandomb.c (gmp_rrandomb): Rewrite.
 14254  
 14255  	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5.
 14256  
 14257  2004-02-18  Kevin Ryde  <kevin@swox.se>
 14258  
 14259  	* mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]:
 14260  	Always store second limb, to avoid a conditional.
 14261  
 14262  	* tests/mpf/t-get_ui.c: New file.
 14263  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14264  	* tests/mpf/t-get_si.c (check_limbdata): Further tests.
 14265  	* gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines.
 14266  
 14267  	* mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by
 14268  	other conditions.  Attempt greater clarity by expressing conditions as
 14269  	based on available data range.
 14270  	* mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size,
 14271  	since may still have second limb above radix point available.
 14272  	* mpf/get_ui.c: Nailify.
 14273  
 14274  2004-02-16  Kevin Ryde  <kevin@swox.se>
 14275  
 14276  	* mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of
 14277  	count_leading_zeros on limb&-limb.
 14278  
 14279  	* mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on
 14280  	">>" of negatives.  Correction to comment, exp is rounded upwards.
 14281  	SIZ(r) always prec now, no need for tsize expression.  Store EXP(r)
 14282  	and SIZ(r) where calculated to reduce variable lifespans.  Make tsize
 14283  	mp_size_t not mp_exp_t, though of course those are currently the same.
 14284  
 14285  	* gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING,
 14286  	GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we
 14287  	don't want to use globals for communicating error information.
 14288  
 14289  	* mpz/gcd_ui.c [nails]: Correction, actually return a value.
 14290  
 14291  	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code.
 14292  
 14293  2004-02-15  Kevin Ryde  <kevin@swox.se>
 14294  
 14295  	* tests/mpz/t-jac.c (check_data): Remove unnecessary variable
 14296  	"answer".
 14297  
 14298  2004-02-14  Torbjorn Granlund  <tege@swox.com>
 14299  
 14300  	* mpn/ia64/aors_n.asm: Break a group with a RAW conflict.
 14301  
 14302  2004-02-14  Kevin Ryde  <kevin@swox.se>
 14303  
 14304  	* acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're
 14305  	concerned about.
 14306  
 14307  	* mpn/generic/mul_n.c: Add some remarks about toom3 high zero
 14308  	stripping.
 14309  
 14310  	* mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue
 14311  	remarks.  What to do about going outside `up' space is a problem, but
 14312  	anything to address it would be an incompatible change.
 14313  
 14314  2004-02-12  Torbjorn Granlund  <tege@swox.com>
 14315  
 14316  	* tests/mpn/t-hgcd.c: Remove unused variables.
 14317  
 14318  	* mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX
 14319  	assembler.  Misc HP-UX changes.
 14320  	* mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler.
 14321  
 14322  2004-02-11  Kevin Ryde  <kevin@swox.se>
 14323  
 14324  	* longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and
 14325  	HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines.
 14326  
 14327  	* gmp-impl.h: Add remarks about limits.h and Cray etc.
 14328  
 14329  	* mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines,
 14330  	hpux 11.23 assembler doesn't like that.
 14331  	* mpn/ia64/README: Add a note on this.
 14332  
 14333  	* dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used.  Reported
 14334  	by Jason Moxham.
 14335  
 14336  	* mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections.
 14337  
 14338  2004-02-10  Torbjorn Granlund  <tege@swox.com>
 14339  
 14340  	* tests/mpz/t-gcd.c: Decrease # of tests run.
 14341  
 14342  	* mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.
 14343  
 14344  2004-02-01  Torbjorn Granlund  <tege@swox.com>
 14345  
 14346  	From Kevin:
 14347  	* config.guess: Recognize AMD's hammer processors, return x86_64.
 14348  
 14349  2004-01-31  Niels Möller  <nisse@lysator.liu.se>
 14350  
 14351  	* mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static.
 14352  
 14353  2004-01-25  Niels Möller  <nisse@lysator.liu.se>
 14354  
 14355  	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd.
 14356  
 14357  	* mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3.
 14358  	(mpn_cmp_sum3): New function.
 14359  	(mpn_diff_smaller_p): Remove.
 14360  	(hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step):
 14361  	Remove tp,talloc arguments.  Callers changed.
 14362  
 14363  2004-01-25  Torbjorn Granlund  <tege@swox.com>
 14364  
 14365  	* tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and
 14366  	tune_hgcd.
 14367  
 14368  	* mpn/generic/gcd.c: Reenable Schoenhage code.
 14369  
 14370  	With Niels Möller:
 14371  	* mpn/generic/hgcd.c: Add const and inline to several functions.
 14372  	(qstack_push_start qstack_push_end qstack_push_quotient): Remove.
 14373  	(euclid_step): Insert removed functions here.
 14374  	(hgcd_adjust): Simplify, don't handle d != 1.
 14375  	(qstack_adjust): Corresponding changes.
 14376  	(mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero.
 14377  	(hgcd_start_row_p): Tweak.
 14378  	(hgcd_final): Shorten life of ralloc.
 14379  
 14380  2004-01-24  Kevin Ryde  <kevin@swox.se>
 14381  
 14382  	* tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts.
 14383  
 14384  	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN.
 14385  	(mpn_dc_sqrtrem): Add casts for K&R.
 14386  
 14387  	* mpf/sqrt_ui.c: Nailify.
 14388  
 14389  	* mpf/set_z.c: Do MPN_COPY last, for possible tail call.
 14390  
 14391  	* doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note
 14392  	exponent is in limbs.
 14393  
 14394  	* mpn/ia64/README: Add remark about concentrating on itanium-2.
 14395  
 14396  2004-01-22  Kevin Ryde  <kevin@swox.se>
 14397  
 14398  	* mpf/sqrt.c: Change tsize calculation to get prec limbs result
 14399  	always, previously got prec+1 when exp was odd.
 14400  	* tests/mpf/t-sqrt.c (check_rand1): New function, code from main.
 14401  	(check_rand2): New function.
 14402  
 14403  	* mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result,
 14404  	previously got prec+1.
 14405  	* tests/mpf/t-sqrt_ui.c: New file.
 14406  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 14407  
 14408  	* tests/refmpf.c, tests/tests.h (refmpf_add_ulp,
 14409  	refmpf_set_prec_limbs): New functions.
 14410  
 14411  	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double,
 14412  	mpn_get_d now does this.  Remove res==1.0 check for round upwards,
 14413  	mpn_get_d now rounds towards zero.  Move exp store to make mpn_get_d a
 14414  	tail call.
 14415  
 14416  	* configure.in (x86-*-*): Use ABI=32 rather than ABI=standard.
 14417  	Use gcc -m32 when available, to force mode on bi-arch amd64 gcc.
 14418  	* configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups
 14419  	as ABI=64.  Support ABI=32, using athlon code.  Use gcc -mcpu=k8,
 14420  	-march=k8.
 14421  	(amd64-*-*): Remove pattern, config.sub only gives x86_64.
 14422  	* doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs.
 14423  
 14424  	* mpn/amd64/README: Add reference to ABI spec.
 14425  
 14426  2004-01-17  Niels Möller  <nisse@lysator.liu.se>
 14427  
 14428  	* mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n
 14429  	change for now.
 14430  
 14431  	* mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n.
 14432  
 14433  2004-01-17  Kevin Ryde  <kevin@swox.se>
 14434  
 14435  	* tune/README: Remove open/mpn versions of toom3, no longer exist.
 14436  	* tune/powerpc64.asm: Remove unused L(again).
 14437  	* tune/time.c (mftb): Note single mftb possible for powerpc64.
 14438  
 14439  	* mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last
 14440  	step, for better parallelism.
 14441  
 14442  	* mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from
 14443  	previous mpz_get_d code.
 14444  
 14445  	* tune/freq.c: Add some comments about systems not covered.
 14446  
 14447  	* gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks.
 14448  	Reported by Tomas Zahradnicky.
 14449  
 14450  2004-01-16  Niels Möller  <nisse@lysator.liu.se>
 14451  
 14452  	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U.
 14453  	(hgcd_adjust): Use mpn_addlsh1_n when available.
 14454  
 14455  2004-01-16  Kevin Ryde  <kevin@swox.se>
 14456  
 14457  	* configure.in (powerpc64-*-linux*): Try gcc64.  Try -m64 with
 14458  	"cflags_maybe" to get it used in all probing.  Add sizeof-long-8 test
 14459  	to check the mode is right if -m64 is not applicable.
 14460  
 14461  2004-01-15  Kevin Ryde  <kevin@swox.se>
 14462  
 14463  	* configure.in (--with-readline=detect): Check for readline/readline.h
 14464  	and readline/history.h.  Report result of detection.
 14465  
 14466  2004-01-14  Niels Möller  <nisse@lysator.liu.se>
 14467  
 14468  	* tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer.
 14469  	* tune/common.c (speed_mpn_hgcd_lehmer): Disabled function.
 14470  
 14471  	* mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer)
 14472  	(mpn_hgcd_equal): Deleted functions.
 14473  
 14474  	* mpn/generic/gcd.c (hgcd_start_row_p): Deleted function.
 14475  	(gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer.
 14476  
 14477  	* mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos.
 14478  	(mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly,
 14479  	not mpn_hgcd_lehmer.
 14480  
 14481  	* mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to
 14482  	mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled).
 14483  
 14484  	* gmp-impl.h (mpn_hgcd_fix): Updated prototype.
 14485  
 14486  	* mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments
 14487  	by a pointer const struct hgcd_row *s. Updated callers.
 14488  
 14489  	* mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input.
 14490  	Moved function definition before hgcd_jebelean.
 14491  	(hgcd_jebelean): Interface change, analogous to hgcd2.
 14492  	(mpn_hgcd_fix): Normalize v. Require that v > 0.
 14493  	(hgcd_adjust): Fix bug in carry update.
 14494  	(mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean
 14495  	now sometimes returning 1. Reintroduced hgcd_adjust.
 14496  
 14497  	* mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first
 14498  	hgcd2 call.
 14499  
 14500  	* mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1
 14501  	instead of 2, in the no progress case r0=A, r1=B.
 14502  
 14503  	* mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return
 14504  	value. Now takes a struct hgcd_row * and the uv size, and returns
 14505  	updated uvsize.
 14506  	(hgcd_final): Special handling of the case hgcd2 returning 1. Now
 14507  	uses hgcd_adjust, instead of a full Euclid division.
 14508  
 14509  2004-01-13  Niels Möller  <nisse@lysator.liu.se>
 14510  
 14511  	* mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a
 14512  	single function euclid_step.
 14513  	(mpn_hgcd): Reorganized the logic for the second recursive call.
 14514  	Avoid unnecessary Euclid steps.
 14515  
 14516  	* tests/mpn/t-hgcd.c (hgcd_values): One more test value.
 14517  
 14518  	* tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the
 14519  	hgcd_jebelean bug.
 14520  
 14521  	* mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error.
 14522  	(mpn_hgcd): Simplified the logic for the first recursive call. Now
 14523  	it uses only the correct values from the recursive call, and
 14524  	doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be
 14525  	reintroduced later, though).
 14526  
 14527  	* tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal)
 14528  	(hgcd_ref_init, hgcd_ref_clear): New functions.
 14529  	(hgcd_ref): Reference implementation of hgcd, using mpz.
 14530  	(one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer.
 14531  	(main): Skip one_step if both input values are zero.
 14532  
 14533  2004-01-12  Niels Möller  <nisse@lysator.liu.se>
 14534  
 14535  	* mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer
 14536  	steps instead of a division loop.
 14537  	(mpn_hgcd_lehmer): Deleted old Lehmer code, instead just
 14538  	initialize and then call hgcd_final.
 14539  
 14540  	* tests/tests.h: Added refmpn_free_limbs prototype.
 14541  	* tests/refmpn.c (refmpn_free_limbs): New function.
 14542  
 14543  	* tests/mpn/t-hgcd.c: Try the same kind of random inputs as for
 14544  	mpz/t-gcd.
 14545  
 14546  2004-01-11  Niels Möller  <nisse@lysator.liu.se>
 14547  
 14548  	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more
 14549  	analysis of the size reduction for one Lehmer step.
 14550  
 14551  	* tests/mpn/t-hgcd.c: New file.
 14552  
 14553  2004-01-11  Torbjorn Granlund  <tege@swox.com>
 14554  
 14555  	With Niels Möller:
 14556  	* mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs.
 14557  	(hgcd_mul): Normalize R[1].uvp[1].  Add some more ASSERTs.
 14558  	(hgcd_update_uv): Streamline.  ASSERT that input and output is
 14559  	normalized.
 14560  
 14561  2004-01-11  Kevin Ryde  <kevin@swox.se>
 14562  
 14563  	* mpn/alpha/ev6/slot.pl: New file, derived in part from
 14564  	mpn/x86/k6/cross.pl.
 14565  
 14566  	* mpn/alpha/alpha-defs.m4 (ASSERT): New macro.
 14567  
 14568  	* mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug.
 14569  	(m4_assert_defined): Use it.
 14570  
 14571  	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro.
 14572  	* mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr.
 14573  
 14574  	* configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with
 14575  	readline, when available.
 14576  
 14577  	* longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather
 14578  	than __x>al, since the former can be done without waiting for __x,
 14579  	helping superscalar chips, in particular alpha ev5 and ev6.
 14580  
 14581  	* longlong.h (sub_ddmmss) [ia64]: New macro.
 14582  
 14583  	* tests/t-sub.c: New file.
 14584  	* tests/Makefile.am (check_PROGRAMS): Add it.
 14585  	* tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function.
 14586  
 14587  2004-01-09  Kevin Ryde  <kevin@swox.se>
 14588  
 14589  	* mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from
 14590  	mpn/x86/mod_34lsub1.asm.
 14591  
 14592  	* configure.in (IA64_PATTERN): Use -mtune on gcc 3.4.
 14593  
 14594  2004-01-07  Kevin Ryde  <kevin@swox.se>
 14595  
 14596  	* gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to
 14597  	keep in our namespace.  (Not actually used anywhere currently.)
 14598  	Reported by Patrick Pelissier.
 14599  
 14600  	* mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style
 14601  	as gmp-h.in (though mp-h.in is not actually used during configure).
 14602  
 14603  	* mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
 14604  	Use __dllexport__ and __dllimport__ to keep out of application
 14605  	namespace.  Same previously done in gmp-h.in.
 14606  
 14607  2004-01-06  Kevin Ryde  <kevin@swox.se>
 14608  
 14609  	* configfsf.sub, configfsf.guess: Update to 2004-01-05.
 14610  	* configure.in (amd64-*-* | x86_64-*-*): Update comments on what
 14611  	configfsf.sub does.
 14612  
 14613  2004-01-04  Kevin Ryde  <kevin@swox.se>
 14614  
 14615  	* mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
 14616  	(ASSEMBLY RULES): Note what gcc says about !literal! etc.
 14617  
 14618  2004-01-03  Kevin Ryde  <kevin@swox.se>
 14619  
 14620  	* mpn/alpha/ev67/gcd_1.asm: New file.
 14621  
 14622  	* mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from
 14623  	mpn/x86/pentium4/sse2/addlsh1_n.asm.
 14624  
 14625  	* mpn/x86/p6/p3mmx/popham.asm: Note measured speeds.
 14626  
 14627  	* mpn/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes
 14628  	no difference to the generated code).  Corrections to a couple of
 14629  	comments.
 14630  
 14631  	* mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not
 14632  	used, no such parameter.
 14633  
 14634  	* mpn/generic/gcd.c: Use <stdio.h> for NULL.
 14635  
 14636  	* doc/gmp.texi (Single Limb Division): Correction to tex expression
 14637  	for (1/2)x1.  And minor wording tweaks elsewhere.
 14638  
 14639  	* gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments
 14640  	about how carries returned.
 14641  
 14642  	* longlong.h (umul_ppmm) [generic]: Add comments about squaring
 14643  	(dropped from tasks list)
 14644  
 14645  2003-12-31  Kevin Ryde  <kevin@swox.se>
 14646  
 14647  	* demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found.
 14648  	* demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX
 14649  	being the same as ~0 (which is not true in old perl).
 14650  	* demos/perl/test.pl: Update tests.
 14651  	* demos/perl/typemap (gmp_UV): New type.
 14652  
 14653  	* demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't
 14654  	necessarily exceed a long.
 14655  
 14656  	* demos/perl/GMP.pm: Add a remark about get_str to the bugs section.
 14657  
 14658  	* mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts
 14659  	for K&R.
 14660  	* tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how
 14661  	they're used, for the benefit of K&R calling.
 14662  
 14663  	* doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm.
 14664  	And add further index entries in various places.
 14665  
 14666  	* mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available.
 14667  
 14668  	* gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n,
 14669  	mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with
 14670  	the prototypes, for ease of locating.
 14671  
 14672  2003-12-30  Torbjorn Granlund  <tege@swox.com>
 14673  
 14674  	* tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and
 14675  	tune_hgcd for now.
 14676  
 14677  2003-12-29  Torbjorn Granlund  <tege@swox.com>
 14678  
 14679  	* tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.
 14680  
 14681  	* mpn/ia64/mul_1.asm: Amend TODO list.
 14682  
 14683  	* mpn/sparc64/README: Remove mpn_Xmul_2, done.
 14684  	Add blurb about L1 cache conflicts.
 14685  
 14686  	* mpn/generic/gcd.c: Disable Schoenhage code for now.
 14687  
 14688  2003-12-29  Kevin Ryde  <kevin@swox.se>
 14689  
 14690  	* mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.
 14691  
 14692  2003-12-27  Kevin Ryde  <kevin@swox.se>
 14693  
 14694  	* tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.
 14695  
 14696  	* mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT),
 14697  	mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2,
 14698  	HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an
 14699  	ANSI-ism, avoid.
 14700  
 14701  	* Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on
 14702  	ansi2knr to avoid a circular build rule.
 14703  	* configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am.
 14704  
 14705  	* configure.in (cflags_maybe): Don't loop adding cflags_maybe if the
 14706  	user has set CFLAGS.
 14707  
 14708  2003-12-24  Torbjorn Granlund  <tege@swox.com>
 14709  
 14710  	* mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+".
 14711  	(mpn_gcd): Allocate scratch space on heap for gcd_schoenhage.
 14712  	(mpn_gcd): Don't invoke MPN_NORMALIZE on input operands.
 14713  
 14714  2003-12-23  Kevin Ryde  <kevin@swox.se>
 14715  
 14716  	* configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to
 14717  	get the right mode when the user sets the CFLAGS.
 14718  	(testlist): Introduce "any_<abi>_testlist" to apply to all compilers.
 14719  
 14720  	* demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove
 14721  	output rules, these are only meant for inputs.
 14722  	(MPZ_MUTATE): Remove, not used since changes for magic.
 14723  
 14724  	* demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New
 14725  	variables, initialized in BOOT.
 14726  	* demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit
 14727  	sv_bless, to save a gv_stashpv for every new object.
 14728  
 14729  2003-12-22  Kevin Ryde  <kevin@swox.se>
 14730  
 14731  	* mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and
 14732  	ev5/dive_1.c, these are good for ev4, and would like them in a generic
 14733  	alpha build.
 14734  
 14735  2003-12-21  Kevin Ryde  <kevin@swox.se>
 14736  
 14737  	* doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in
 14738  	mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means
 14739  	by "logical".  Reported by Rüdiger Schütz.
 14740  
 14741  	* gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good.
 14742  
 14743  2003-12-20  Torbjorn Granlund  <tege@swox.com>
 14744  
 14745  	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of
 14746  	mpn_sub_n where possible.  Use mp_size_t for relevant variables.
 14747  
 14748  2003-12-20  Kevin Ryde  <kevin@swox.se>
 14749  
 14750  	* tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change,
 14751  	don't want "- 1" on the TMP_ALLOC_LIMBS.
 14752  
 14753  	* demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is
 14754  	included, not GMP_RNDZ which is now an enum.
 14755  
 14756  	* demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and
 14757  	mpfr_fits_ulong_p.
 14758  	(e_mpfr_get_ui_fits): Use mpfr_get_ui.
 14759  
 14760  	* mpfr/*: Update to mpfr cvs head 2003-12-20.
 14761  
 14762  	* configure, config.in: Update to autoconf 2.59.
 14763  	* */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh,
 14764  	doc/mdate-sh: Update to automake 1.8.
 14765  
 14766  	* mkinstalldirs: Remove, not required by automake 1.8.
 14767  	* doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8.
 14768  
 14769  	* configure.in (AC_PREREQ): Require autoconf 2.59.
 14770  	(AM_INIT_AUTOMAKE): Require automake 1.8.
 14771  	(AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef
 14772  	__cplusplus we want.
 14773  	(gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code,
 14774  	autoconf now ok.
 14775  
 14776  	* acinclude.m4 (GMP_C_INLINE): Remove.
 14777  	(GMP_H_EXTERN_INLINE): Use AC_C_INLINE.
 14778  	(GMP_PROG_AR): Comment on automake $ARFLAGS.
 14779  
 14780  2003-12-19  Niels Möller  <nisse@lysator.liu.se>
 14781  
 14782  	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried
 14783  	to explain how it works.
 14784  	(slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use
 14785  	CPP to wrap assertion checks around all calls to
 14786  	mpn_diff_smaller_p.
 14787  
 14788  	* mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling.
 14789  
 14790  	* mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use
 14791  	GMP_NUMB_MAX, not MP_LIMB_T_MAX.
 14792  	(mpn_hgcd_itch): Improved size calculation.
 14793  	(mpn_hgcd_max_recursion): Moved function from qstack.c. Should to
 14794  	be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned.
 14795  
 14796  	* mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from
 14797  	here.
 14798  
 14799  2003-12-19  Torbjorn Granlund  <tege@swox.com>
 14800  
 14801  	* tests/mpf/t-get_d.c: Print message before aborting.
 14802  
 14803  	* mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable
 14804  	with 0.  Remove bogus comment.
 14805  
 14806  	* mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.
 14807  
 14808  2003-12-18  Niels Möller  <niels@lysator.liu.se>
 14809  
 14810  	* mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is
 14811  	smaller than the input r1.
 14812  
 14813  2003-12-18  Torbjorn Granlund  <tege@swox.com>
 14814  
 14815  	* mpz/get_d.c: Don't include longlong.h.
 14816  
 14817  	* tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid
 14818  	a dummy r/w outside of allocated area.
 14819  
 14820  2003-12-18  Kevin Ryde  <kevin@swox.se>
 14821  
 14822  	* mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does.
 14823  
 14824  	* configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure
 14825  	include() from automake 1.8 aclocal.
 14826  	* acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal.
 14827  
 14828  2003-12-17  Niels Möller  <nisse@lysator.liu.se>
 14829  
 14830  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]:
 14831  	Enabled code also for GMP_NAIL_BITS > 0.
 14832  	* tune/speed.c [nails]: Enable speed_mpn_hgcd and
 14833  	speed_mpn_hgcd_lehmer.
 14834  	* tune/tuneup.c (tune_hgcd) [nails]: Likewise.
 14835  
 14836  	* mpn/generic/gcd.c [nails]: Use Schönhage's algorithm also for
 14837  	GMP_NAIL_BITS > 0.
 14838  
 14839  	* mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0.
 14840  	(MPN_EXTRACT_LIMB) [nails]: Handle nails.
 14841  	(__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the
 14842  	stack. Also check that r[i] >= r[i+1].
 14843  	(mpn_hgcd2_lehmer_step) [nails]: Handle nails.
 14844  	(mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid
 14845  	trigging that assert in __gmpn_hgcd_sanity.
 14846  	(mpn_hgcd): Likewise.
 14847  
 14848  	* mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware
 14849  	version.
 14850  	(SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the
 14851  	non-nail case.
 14852  	(HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version
 14853  	for K&R compilers.
 14854  	(mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware
 14855  	code for checking Jebelean's condition.
 14856  
 14857  2003-12-13  Kevin Ryde  <kevin@swox.se>
 14858  
 14859  	* mpq/get_d.c: Amend comments per mpn_get_d change.
 14860  	(limb2dbl): Remove, no longer used.
 14861  
 14862  	* gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to
 14863  	comments, MP_SIZE_T_MAX means preinv never.
 14864  
 14865  	* gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]:
 14866  	Remove overrides, divexact_1 and modexact_1 have been nailified.
 14867  
 14868  	* mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value
 14869  	requirement.
 14870  
 14871  	* tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around
 14872  	GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall.
 14873  	* tests/t-constants.c (main), tests/t-count_zeros.c (check_clz),
 14874  	tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi),
 14875  	tests/mpq/t-get_d.c (check_onebit): : Correction to printfs.
 14876  	* tests/mpn/t-fat.c: Add <string.h> for memcpy.
 14877  	* tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned".
 14878  	* tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit".
 14879  	* tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for
 14880  	initializers.
 14881  	* tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun):
 14882  	Correction to return values.
 14883  
 14884  	* doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase
 14885  	can be used to locate the most significant bit.  Reword a bit for
 14886  	clarity.
 14887  
 14888  2003-12-12  Niels Möller  <niels@lysator.liu.se>
 14889  
 14890  	* mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer
 14891  	overrun.
 14892  	* mpn/generic/hgcd.c: Improved comments.
 14893  
 14894  2003-12-11  Torbjorn Granlund  <tege@swox.com>
 14895  
 14896  	* gmp-impl.h: Change asm => __asm__, tabify.
 14897  	* mpz/get_d_2exp.c: Likewise.
 14898  	* mpf/get_d_2exp.c: Likewise.
 14899  
 14900  	* tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities.
 14901  
 14902  2003-12-10  Torbjorn Granlund  <tege@swox.com>
 14903  
 14904  	* tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
 14905  	progression, to allow for larger operands and less varying timing.
 14906  
 14907  	* tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor.
 14908  	(tune_hgcd): Likewise.
 14909  
 14910  2003-12-10  Kevin Ryde  <kevin@swox.se>
 14911  
 14912  	* demos/perl/test.pl: Should be $] for perl version in old perl.
 14913  
 14914  	* configure.in (sparc64-*-*): Single block of gcc configs for all
 14915  	systems, on unknown systems try both ABI 32 and 64.
 14916  
 14917  	* configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with
 14918  	options to generate .def files with windows DLLs.
 14919  	* Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them.
 14920  
 14921  	* mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow
 14922  	convention and cooperate with tune/tuneup.c.
 14923  
 14924  	* tune/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side
 14925  	default 1000 is approx the crossover point on athlon.
 14926  
 14927  	* tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c,
 14928  	tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter
 14929  	rather than returning a value, avoids alloca in a function call.
 14930  	* tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now
 14931  	inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment
 14932  	extraction.
 14933  
 14934  	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal,
 14935  	__gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater,
 14936  	__gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and
 14937  	mpfr_cmp_d.
 14938  	* tests/cxx/t-ops.cc: Exercise this.
 14939  
 14940  	* demos/perl/Makefile.PL: Don't install sample.pl and test2.pl.
 14941  
 14942  	* demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any
 14943  	rounding.
 14944  	* demos/perl/test.pl: Exercise this.
 14945  
 14946  	* demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
 14947  	* demos/perl/test.pl: Exercise this.
 14948  
 14949  2003-12-08  Kevin Ryde  <kevin@swox.se>
 14950  
 14951  	* demos/perl/GMP.pm: Correction to canonicalize example.
 14952  
 14953  	* demos/perl/GMP.xs: New type check scheme, support magic scalars,
 14954  	support UV when available.  Remove some unused local variables.
 14955  	(coerce_long): Check range of double.
 14956  	(get_d_2exp): Remove stray printf.
 14957  
 14958  	* demos/perl/test.pl: Exercise magic, rearrange to make it clearer
 14959  	what's being tested.
 14960  
 14961  2003-12-07  Kevin Ryde  <kevin@swox.se>
 14962  
 14963  	* mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the
 14964  	convention of N<THRESH for the lower algorithm, not <=.  Fixes
 14965  	algorithm selection in tuneup.c.
 14966  
 14967  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Use intended
 14968  	align_xp, align_yp.
 14969  
 14970  	* tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT,
 14971  	for the benefit of ASSERT in mpn_mul_n.
 14972  
 14973  	* tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should
 14974  	use MPN_TOOM3_MUL_N_MINSIZE.
 14975  
 14976  	* tune/speed.c (check_align_option): Correction to printf format.
 14977  	* tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable.
 14978  
 14979  	* scanf/doscan.c: Correction to a couple of trace printfs.
 14980  	Add <stdlib.h> for strtol.
 14981  
 14982  	* tests/misc/t-scanf.c (test_sscanf_eof_ok): New function.
 14983  	(check_misc): Use it to suppress tests broken by libc.
 14984  	And should be EOF rather than -1 in various places.
 14985  
 14986  2003-12-06  Torbjorn Granlund  <tege@swox.com>
 14987  
 14988  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
 14989  	Move SPEED_TMP_ALLOC_LIMBS invocations out from calls.
 14990  
 14991  	* mpn/generic/get_str.c (mpn_get_str, POW2_P case):
 14992  	Don't append extra '\0' byte.
 14993  
 14994  2003-12-05  Niels Möller  <niels@lysator.liu.se>
 14995  
 14996  	* tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd):
 14997  	Updated for the renaming hgcd_sanity -> ASSERT_HGCD.
 14998  
 14999  	* mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final
 15000  	declaration in the declaration section of a block.
 15001  
 15002  	* tune/speed.h (mpn_gcd_accel): Added prototype.
 15003  
 15004  2003-12-05  Torbjorn Granlund  <tege@swox.com>
 15005  
 15006  	* randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
 15007  	inside "!=".
 15008  
 15009  	* mpf/get_str.c: Remove unused variable "fracn".
 15010  
 15011  2003-12-03  Kevin Ryde  <kevin@swox.se>
 15012  
 15013  	* configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New
 15014  	AC_SUBSTs, use them to create .def files with Windows DLLs.
 15015  	* doc/gmp.texi (Notes for Particular Systems): Update notes on mingw
 15016  	DLL with MS C.
 15017  
 15018  	* mpz/export.c: Allow NULL for countp.
 15019  	* doc/gmp.texi (Integer Import and Export): Describe this.
 15020  	Suggested by Jack Lloyd.
 15021  
 15022  	* mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code.
 15023  	Superiority of this reported by Patrick Pelissier.
 15024  
 15025  2003-11-30  Kevin Ryde  <kevin@swox.se>
 15026  
 15027  	* mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files.
 15028  
 15029  	* mpn/alpha/ev67: New directory.
 15030  	* configure.in (alphaev67, alphaev68, alphaev7*): Use it.
 15031  
 15032  	* doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and
 15033  	pxref, remove macros.
 15034  	(GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop
 15035  	and GMPpxreftop.
 15036  	(Debugging): Remove debauch, seems to have disappeared.
 15037  	(Language Bindings): Corrections to URLs for CLN, Omni F77, Pike.
 15038  
 15039  2003-11-29  Kevin Ryde  <kevin@swox.se>
 15040  
 15041  	* demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings
 15042  	about $#.
 15043  
 15044  	* demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible
 15045  	rounding of 0x7F..FF in a double on 64-bit systems.
 15046  
 15047  	* configure.in (ppc601-*-*): Remove this case, it never matched
 15048  	anything, the name adopted is powerpc601.
 15049  	(powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601.
 15050  
 15051  	* configure.in: Introduce ${cc}_cflags_maybe, used if they work.
 15052  	(*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode.
 15053  
 15054  	* doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list.
 15055  	(Build Options): Add cpu types alphaev7 and amd64.  Update texinfo
 15056  	html cross reference.
 15057  
 15058  2003-11-28  Niels Möller  <nisse@lysator.liu.se>
 15059  
 15060  	* tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0.
 15061  	* tune/speed.c (routine): Likewise.
 15062  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise.
 15063  
 15064  	* mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c
 15065  	[GMP_NAIL_BITS]: Disabled new code if we have nails.
 15066  
 15067  	* mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
 15068  	for compilation with --enable-assert).
 15069  
 15070  	* tune/tuneup.c (hgcd_schoenhage_threshold,
 15071  	gcd_schoenhage_threshold): New variables.
 15072  	(tune_hgcd, tune_gcd_schoenhage): New functions.
 15073  	(all): Call tune_hgcd and tune_gcd_schoenhage.
 15074  
 15075  	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer)
 15076  	(speed_mpn_gcd_accel): New functions.
 15077  	* tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and
 15078  	mpn_gcd _accel.
 15079  	* tune/speed.h: Added corresponding prototypes.
 15080  
 15081  	* tune/gcd_accel.c: New file.
 15082  
 15083  	* tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX.
 15084  
 15085  	* tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c.
 15086  	(TUNE_MPN_SRCS_BASIC): Added hgcd.c.
 15087  
 15088  	* mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD)
 15089  	(GCD_SCHOENHAGE_THRESHOLD): Tuned values.
 15090  
 15091  	* mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the
 15092  	old mpn_gcd function (which implements accelerated binary gcd) to
 15093  	gcd_binary_odd.
 15094  	(gcd_binary): New function, with the additional book keeping
 15095  	needed when using gcd_binary_odd to compute the gcd of non-odd
 15096  	numbers.
 15097  	(hgcd_tdiv): New function.
 15098  	(gcd_lehmer): New function, currently #if:ed out.
 15099  	(hgcd_start_row_p): New function, duplicated from hgcd.c.
 15100  	(gcd_schoenhage_itch): New function.
 15101  	(gcd_schoenhage): New function.
 15102  	(mpn_gcd): New advertised gcd function, which calls
 15103  	mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of
 15104  	the input.
 15105  
 15106  	* mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function
 15107  	(was lehmer_step), and made non-static. Updated callers.
 15108  
 15109  	* gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro.
 15110  	(mpn_hgcd2_lehmer_step): Added prototype.
 15111  
 15112  2003-11-27  Niels Möller  <nisse@lysator.liu.se>
 15113  
 15114  	* tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
 15115  	don't need to forward declare the array.
 15116  
 15117  2003-11-26  Niels Möller  <nisse@lysator.liu.se>
 15118  
 15119  	* mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition
 15120  	(the function belongs to hgcd2.c).
 15121  
 15122  2003-11-26  Torbjorn Granlund  <tege@swox.com>
 15123  
 15124  	* tests/mpz/t-gcd.c: Generate random operands up to 32767 bits;
 15125  	decrease # of test to 1000.
 15126  	(gcd_values): Remove oversize test case.
 15127  
 15128  2003-11-26  Niels Möller  <niels@lysator.liu.se>
 15129  
 15130  	* gmp-impl.h: Added name mangling for hgcd-related functions. Also
 15131  	use __GMP_PROTO.
 15132  	(MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c.
 15133  	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
 15134  	Adapted to name changes.
 15135  
 15136  	* tests/mpz/t-gcd.c (main): Added some tests with non-random
 15137  	input.
 15138  
 15139  2003-11-25  Niels Möller  <nisse@lysator.liu.se>
 15140  
 15141  	* gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.
 15142  	(struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row)
 15143  	(struct hgcd): New structs. Also added prototypes for new hgcd,
 15144  	hgcd2, qstack and gcd functions.
 15145  
 15146  	* configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack.
 15147  
 15148  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c,
 15149  	hgcd.c and qstack.c.
 15150  
 15151  	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
 15152  	New files, needed for the sub-quadratic gcd.
 15153  
 15154  2003-11-25  Kevin Ryde  <kevin@swox.se>
 15155  
 15156  	* doc/gmp.texi (Language Bindings): Add Axiom.
 15157  
 15158  2003-11-22  Kevin Ryde  <kevin@swox.se>
 15159  
 15160  	* mpn/alpha/README: More notes on assembler syntax variations.
 15161  
 15162  	* mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u
 15163  	not bis, and move to alpha-defs.m4 since it can be happily used
 15164  	everywhere.
 15165  
 15166  	* mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4
 15167  	(bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or
 15168  	HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness.
 15169  
 15170  	* mpn/alpha/alpha-defs.m4: New file.
 15171  	* configure.in (alpha*-*-*): Use it.
 15172  
 15173  2003-11-21  Kevin Ryde  <kevin@swox.se>
 15174  
 15175  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21.
 15176  
 15177  	* mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not"
 15178  	isn't recognised by on Cray Unicos.  Add missing "gp" to PROLOGUE.
 15179  	* mpn/alpha/README: Add a note on "not".
 15180  
 15181  2003-11-19  Torbjorn Granlund  <tege@swox.com>
 15182  
 15183  	* mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding
 15184  	spurious reads beyond operand limits.
 15185  
 15186  	* mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END.
 15187  
 15188  	* mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function.
 15189  	(mpn_lshift_com): Make static, nailify properly.
 15190  
 15191  2003-11-19  Kevin Ryde  <kevin@swox.se>
 15192  
 15193  	* mpn/generic/diveby3.c: Use a "q" variable to make it clearer what
 15194  	the code is doing.
 15195  
 15196  	* mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New
 15197  	files.
 15198  
 15199  	* mpn/alpha/ev5/com_n.asm: New file.
 15200  
 15201  	* doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide):
 15202  	New sections by Torbjorn, tweaked by me.
 15203  
 15204  2003-11-17  Torbjorn Granlund  <tege@swox.com>
 15205  
 15206  	* mpn/powerpc32: Add power4/powerpc970 cycle counts.
 15207  	Use cmpwi instead of cmpi to placate darwin.
 15208  
 15209  2003-11-15  Kevin Ryde  <kevin@swox.se>
 15210  
 15211  	* config.guess: Add comments on MacOS "machine" command.
 15212  
 15213  	* tests/devel/try.c (main): Use gmp_randinit_default explicitly on
 15214  	__gmp_rands, since RANDS doesn't allow seeding.
 15215  
 15216  	* doc/gmp.texi (Assigning Integers): Remove notes on possible change
 15217  	to disallow whitespace, this would be an incompatible change and
 15218  	really can't be made.
 15219  	(Toom 3-Way Multiplication): Updates for Paul's new code.
 15220  
 15221  	* mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put
 15222  	if/else braces around whole of #if code, for readability.
 15223  
 15224  	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
 15225  	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps
 15226  	etc.
 15227  
 15228  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15.
 15229  
 15230  2003-11-14  Torbjorn Granlund  <tege@swox.com>
 15231  
 15232  	* mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".
 15233  
 15234  2003-11-13  Torbjorn Granlund  <tege@swox.com>
 15235  
 15236  	* mpn/alpha/aorslsh1_n.asm: New file.
 15237  
 15238  2003-11-12  Kevin Ryde  <kevin@swox.se>
 15239  
 15240  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2
 15241  	assembler, test code by Torbjorn.
 15242  	* configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback.
 15243  
 15244  	* tune/speed.c (main): Use gmp_randinit_default explicitly on
 15245  	__gmp_rands, since RANDS doesn't allow seeding.
 15246  
 15247  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12.
 15248  
 15249  	* gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to
 15250  	gmp-impl.h, for use by RANDS.
 15251  
 15252  	* mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake.
 15253  	(.obj): Use test -f and $(CYGPATH_W) as per automake.
 15254  
 15255  2003-11-11  Kevin Ryde  <kevin@swox.se>
 15256  
 15257  	* configure.in: Make umul and udiv standard-optional objects, rather
 15258  	than under various extra_functions.
 15259  
 15260  	* mpn/pa32/hppa1_1/pa7100/add_n.asm,
 15261  	mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
 15262  	mpn/pa32/hppa1_1/pa7100/lshift.asm,
 15263  	mpn/pa32/hppa1_1/pa7100/rshift.asm,
 15264  	mpn/pa32/hppa1_1/pa7100/sub_n.asm,
 15265  	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels.
 15266  
 15267  	* mpf/set_str.c: Don't use memcmp for decimal point testing, just a
 15268  	loop is enough and avoids any chance of memcmp reading past the end of
 15269  	the given string.
 15270  
 15271  	* randmts.c, randmt.h: New files.
 15272  	* Makefile.am (libgmp_la_SOURCES): Add them.
 15273  	* randmt.c: Move seeding to randmts.c, common defines in randmt.h.
 15274  	* gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed.
 15275  	* tests/misc.c (tests_rand_start): Use gmp_randinit_default
 15276  	explicitly, not RANDS.
 15277  
 15278  	* mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the
 15279  	benefit of itanium 2.
 15280  	* mpn/ia64/gcd_1.asm: Remove own .align 32.
 15281  
 15282  	* mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK.
 15283  	* mpn/ia64/hamdist.asm: Use ALIGN instead of .align.
 15284  
 15285  	* acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro.
 15286  	* configure.in (IA64_PATTERN): Use it.
 15287  	* mpn/ia64/README: Add notes on gas big endian align problem.
 15288  
 15289  2003-11-10  Torbjorn Granlund  <tege@swox.com>
 15290  
 15291  	* mpn/ia64/mul_1.asm: Rewrite.
 15292  
 15293  2003-11-08  Torbjorn Granlund  <tege@swox.com>
 15294  
 15295  	* mpn/x86/aors_n.asm: Align loop to a multiple of 16.  Also align
 15296  	M4_function_n to a multiple of 16, to minimize alignment padding.
 15297  	Update P6 cycle counts reflecting improvements with new alignment.
 15298  
 15299  2003-11-07  Kevin Ryde  <kevin@swox.se>
 15300  
 15301  	* gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define.
 15302  	(ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68.
 15303  	* longlong.h (count_leading_zeros, count_trailing_zeros): Ditto.
 15304  
 15305  	* doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI
 15306  	system packaging.
 15307  	(ABI and ISA): Add GNU/Linux ABI=64.
 15308  	(Binary GCD): Add notes on 1x1 GCD algorithms.
 15309  
 15310  	* mpn/alpha/README: Add some literature references.
 15311  
 15312  	* mpn/ia64/mode1o.asm: Various corrections to initial checkin.
 15313  	* mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting.
 15314  
 15315  2003-11-05  Torbjorn Granlund  <tege@swox.com>
 15316  
 15317  	* mpn/powerpc64/linux64.m4: New file.
 15318  	* configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
 15319  	Use linux64.m4.
 15320  
 15321  	* mpn/ia64/logops_n.asm: New file.
 15322  
 15323  2003-11-05  Kevin Ryde  <kevin@swox.se>
 15324  
 15325  	* tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz",
 15326  	for the benefit of sparc cypress under netbsd 1.6.1.
 15327  
 15328  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05.
 15329  
 15330  	* mpn/alpha/ev5/dive_1.c: New file.
 15331  
 15332  	* configure.in (x86_64-*-*): Accept together with amd64-*-*.
 15333  
 15334  	* tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers.
 15335  	* tune/speed.h (CACHE_LINE_SIZE): Amend comments.
 15336  
 15337  2003-11-04  Torbjorn Granlund  <tege@swox.com>
 15338  
 15339  	* tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.
 15340  
 15341  2003-11-03  Kevin Ryde  <kevin@swox.se>
 15342  
 15343  	* mpn/ia64/hamdist.asm: New file.
 15344  	* mpn/ia64/mode1o.asm: New file.
 15345  	* mpn/ia64/ia64-defs.m4 (ASSERT): New macro.
 15346  
 15347  	* tests/mpz/t-set_d.c (check_2n_plus_1): New test.
 15348  
 15349  2003-11-01  Kevin Ryde  <kevin@swox.se>
 15350  
 15351  	* mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it
 15352  	provokes code gen problems on HP cc.
 15353  	(BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with
 15354  	BITREV_ULONG.
 15355  	Fix by Jason Moxham.
 15356  
 15357  	* mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to
 15358  	truncate divisor.  Amend stated 750/7400 speeds, and note operands
 15359  	that give the extremes.
 15360  
 15361  	* mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc
 15362  	3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong.
 15363  
 15364  	* mpn/generic/diveby3.c: Show a better style carry handling in the
 15365  	alternative pipelined sample code.
 15366  
 15367  	Revert this, the longlong.h macros need -mpowerpc64:
 15368  	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
 15369  	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
 15370  	when bad.
 15371  
 15372  2003-10-31  Torbjorn Granlund  <tege@swox.com>
 15373  
 15374  	* mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a
 15375  	cycle on POWER4.
 15376  
 15377  	* mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems
 15378  	revealed on Mac OS X.
 15379  
 15380  	* mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4.
 15381  
 15382  	* mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4.
 15383  
 15384  2003-10-31  Kevin Ryde  <kevin@swox.se>
 15385  
 15386  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31.
 15387  
 15388  	* mpn/powerpc64/README: Add subdirectory organisation notes.
 15389  
 15390  	* tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc
 15391  	2.95 with -mcpu=ultrasparc.
 15392  
 15393  	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
 15394  	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
 15395  	when bad.
 15396  
 15397  	* configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags.
 15398  
 15399  	* mpn/ia64/divrem_1.asm, mpn/ia64/gcd_1.asm: Use "C" for comments.
 15400  	* mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this.
 15401  
 15402  	* mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files.
 15403  	* configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN.
 15404  
 15405  	* doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes
 15406  	for -mshort and PalmOS, now works.
 15407  	(References): Correction, GMP Square Root proof already there, just
 15408  	wanting URL from RRRR 4475.
 15409  
 15410  2003-10-29  Kevin Ryde  <kevin@swox.se>
 15411  
 15412  	* configure.in (sparc*-*-*): Use gcc -m32 when that option works, to
 15413  	force 32-bit mode on dual 32/64 configurations like GNU/Linux.
 15414  	(sparc64-*-linux*): Add support for ABI=64.
 15415  
 15416  	* mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with
 15417  	udiv_qrnnd_preinv to avoid warning about shift > type.
 15418  
 15419  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29.
 15420  
 15421  	* tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't
 15422  	update that, avoids certain g++ 2.96 problems.
 15423  
 15424  	* tests/mpn/t-fat.c: New file.
 15425  	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
 15426  
 15427  	* configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros
 15428  	for fat.h.
 15429  	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead
 15430  	of memcpy.  Correction to location of "initialized" set.  Improve
 15431  	various comments.
 15432  
 15433  2003-10-27  Torbjorn Granlund  <tege@swox.com>
 15434  
 15435  	* mpn/sparc64/mul_1.asm: Change addcc => add in a few places.
 15436  	* mpn/sparc64/addmul_1.asm: Likewise.
 15437  
 15438  	* mpn/sparc32/v9/mul_1.asm: Apply cross-jumping.
 15439  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 15440  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 15441  	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise.
 15442  
 15443  2003-10-27  Kevin Ryde  <kevin@swox.se>
 15444  
 15445  	* tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0)
 15446  	-mcpu=ultrasparc LONG_MIN is wrong and kills the compile.
 15447  
 15448  	* tests/cxx/t-istream.cc: Correction to tellg tests, don't assume
 15449  	streampos is zero based.
 15450  
 15451  	* configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h.
 15452  	* mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround,
 15453  	since Cray cc doesn't define __alpha.
 15454  
 15455  	* mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility
 15456  	attribute.
 15457  
 15458  2003-10-25  Kevin Ryde  <kevin@swox.se>
 15459  
 15460  	* mpn/ia64/gcd_1.asm: New file.
 15461  
 15462  	* tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha.
 15463  
 15464  	* doc/gmp.texi (C++ Formatted Input): Describe base indicator handling.
 15465  
 15466  	* tests/cxx/t-istream.cc: New file.
 15467  	* tests/cxx/Makefile.am: Add it.
 15468  
 15469  	* cxx/ismpznw.cc: New file, integer input without whitespace ...
 15470  	* cxx/ismpz.cc: ... from here.
 15471  	* gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype.
 15472  	* cxx/ismpq.cc: Rewrite using mpz input routines.  Change to accept a
 15473  	separate base indicator on numerator and denominator.  Fix base
 15474  	indicator case where "123/0456" would stop at "123/0".
 15475  	* Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc.
 15476  
 15477  	* tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c
 15478  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 15479  
 15480  	* mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and
 15481  	stack alignment.
 15482  	* mpn/m68k/README: Add notes on this.
 15483  	* configure.in (SIZEOF_UNSIGNED): New define in config.m4.
 15484  	* mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew.
 15485  	Reported by Patrick Pelissier.
 15486  
 15487  	* mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid
 15488  	deprecation warnings from perl 5.8.
 15489  
 15490  	* configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6.
 15491  	If gcc is to be believed the old C3s don't have cmov.
 15492  
 15493  	* Makefile.am: Amend comments about not building from libtool
 15494  	convenience libraries.
 15495  
 15496  	* mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename
 15497  	in missing EPILOGUE error messages.
 15498  	(m4_file_seen): Amend comments about where used.
 15499  
 15500  	* Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to
 15501  	ansi2knr rules.
 15502  
 15503  	* gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in
 15504  	applications using g++ -Wold-style-cast.
 15505  
 15506  	* mpn/z8000/README: New file.
 15507  
 15508  2003-10-22  Kevin Ryde  <kevin@swox.se>
 15509  
 15510  	* mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023,
 15511  	CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism,
 15512  	and use on Cray Unicos alpha too, which has the same problem.
 15513  
 15514  	* configure.in (powerpc64-*-darwin*): Make ABI=32 available as the
 15515  	final fallback, remove mode64 until we know how it will work.
 15516  
 15517  	* doc/gmp.texi (Build Options): Add powerpc970 to available CPUs.
 15518  	(ABI and ISA): Add mode32 for Darwin.
 15519  
 15520  	* configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid
 15521  	known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on
 15522  	HP-UX.
 15523  
 15524  	* configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for
 15525  	the default 32-bit ABI.  Fixes powerpc64-*-aix* which is documented as
 15526  	choices "aix64 32" but had "aix64 standard".
 15527  
 15528  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22.
 15529  
 15530  	* doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort
 15531  	and PalmOS calling conventions not supported.  Reported by Patrick
 15532  	Pelissier.
 15533  	(References): Add Paul Zimmermann's Inria 4475 paper.
 15534  
 15535  2003-10-21  Torbjorn Granlund  <tege@swox.com>
 15536  
 15537  	* mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate
 15538  	Itanium 2 getf.sig latency.
 15539  
 15540  2003-10-21  Kevin Ryde  <kevin@swox.se>
 15541  
 15542  	* tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n,
 15543  	mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n.  Typo in mpn_preinv_divrem_1
 15544  	conditional.
 15545  
 15546  2003-10-20  Torbjorn Granlund  <tege@swox.com>
 15547  
 15548  	* mpn/powerpc64/mode32/add_n.asm: New file.
 15549  	* mpn/powerpc64/mode32/sub_n.asm: New file.
 15550  	* mpn/powerpc64/mode32/mul_1.asm: New file.
 15551  	* mpn/powerpc64/mode32/addmul_1.asm: New file.
 15552  	* mpn/powerpc64/mode32/submul_1.asm: New file.
 15553  
 15554  2003-10-19  Torbjorn Granlund  <tege@swox.com>
 15555  
 15556  	* longlong.h (AMD64): __x86_64__ => __amd64__.
 15557  	(64-bit powerpc): Only define carry-dependent macros if
 15558  	!_LONG_LONG_LIMB.
 15559  
 15560  	* acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*.
 15561  
 15562  	* configure.in (POWERPC64_PATTERN): Handle *-*-darwin*.
 15563  	(POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64.
 15564  
 15565  	* mpn/powerpc64/mode64/mul_1.asm: Change cal => addi.
 15566  	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
 15567  	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
 15568  	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
 15569  
 15570  	* mpn/powerpc64/mode64/mul_1.asm: Move from "..".
 15571  	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
 15572  	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
 15573  	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
 15574  	* mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise.
 15575  	* mpn/powerpc64/mode64/add_n.asm: Likewise.
 15576  	* mpn/powerpc64/mode64/addsub_n.asm: Likewise.
 15577  	* mpn/powerpc64/mode64/sub_n.asm: Likewise.
 15578  	* mpn/powerpc64/mode64/addlsh1_n.asm: Likewise.
 15579  	* mpn/powerpc64/mode64/diveby3.asm: Likewise.
 15580  	* mpn/powerpc64/mode64/rsh1add_n.asm: Likewise.
 15581  	* mpn/powerpc64/mode64/sublsh1_n.asm: Likewise.
 15582  
 15583  	* mpn/powerpc64/lshift.asm: Handle mode32 ABI.
 15584  	* mpn/powerpc64/rshift.asm: Likewise.
 15585  	* mpn/powerpc64/umul.asm: Likewise.
 15586  
 15587  	* tune/powerpc64.asm: Make it actually work.
 15588  
 15589  2003-10-19  Kevin Ryde  <kevin@swox.se>
 15590  
 15591  	* mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant
 15592  	comparison bug.
 15593  
 15594  	* gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw
 15595  	std::length_error if size is too big.
 15596  	* tests/cxx/t-rand.cc (check_randinit): Exercise this.
 15597  
 15598  	* mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from
 15599  	mpn/x86/pentium4/sse2/add_n.asm.
 15600  
 15601  	* doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++
 15602  	Interface Floats): Note std::invalid_argument exception for invalid
 15603  	strings to constructors and operator=.
 15604  	(C++ Interface Random Numbers): Note std::length_error exception for
 15605  	size too big in gmp_randinit_lc_2exp_size.
 15606  
 15607  2003-10-18  Kevin Ryde  <kevin@swox.se>
 15608  
 15609  	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18.
 15610  
 15611  	* gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors
 15612  	and operator= taking string or char*): Throw std::invalid_argument if
 15613  	string cannot be converted.
 15614  	* tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this.
 15615  
 15616  	* cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale
 15617  	ctype facet for isspace when available.  Only accept space at the
 15618  	start of the input, same as g++ libstdc++.  Use ASSERT_NOCARRY to
 15619  	check result of mpz_set_str etc.
 15620  	* cxx/ismpf.cc: Don't accept "@" for exponent indicator.
 15621  
 15622  	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove
 15623  	_open and _mpn variants of mpn_toom3_mul_n, only one style now.
 15624  	* tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files.
 15625  
 15626  	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
 15627  	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
 15628  
 15629  	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character
 15630  	constants, hex is an ANSI-ism.
 15631  
 15632  	* mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per
 15633  	mpn/generic/mode1o.c.
 15634  
 15635  	* mpn/generic/diveby3.c: Add commented out alternative code and notes
 15636  	for taking the multiply off the dependent chain.  Amend/clarify some
 15637  	of the other comments.
 15638  
 15639  	* configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available.
 15640  	(powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not
 15641  	available.
 15642  
 15643  	* doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not
 15644  	supported.
 15645  	(C++ Formatted Input, C++ Formatted Output): Cross reference class
 15646  	interface on overloading.
 15647  
 15648  	* mpn/m68k/README: Add various ideas from doc/tasks.html.
 15649  
 15650  	* mpn/m88k/README: New file.
 15651  
 15652  2003-10-16  Torbjorn Granlund  <tege@swox.com>
 15653  
 15654  	* config.sub: Recognize powerpc970.
 15655  
 15656  2003-10-15  Torbjorn Granlund  <tege@swox.com>
 15657  
 15658  	* config.guess: Recognize powerpc970 under MacOS.
 15659  
 15660  2003-10-15  Kevin Ryde  <kevin@swox.se>
 15661  
 15662  	* configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test.
 15663  	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
 15664  	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
 15665  
 15666  	* mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE.
 15667  	* configure.in (amd64-*-*): Use it.
 15668  	* mpn/amd64/addlsh1_n.asm: Add ALIGN(16).
 15669  
 15670  	* mpfr/*: Update to mpfr cvs 2003-10-15.
 15671  
 15672  	* mpn/generic/get_d.c: Rewrite, simplifying and truncating towards
 15673  	zero unconditionally.
 15674  	* tests/mpn/t-get_d.c: Add various further tests.
 15675  	* gmp-impl.h (FORCE_DOUBLE): New macro.
 15676  
 15677  	* gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into
 15678  	C++ mangled function names.
 15679  
 15680  	* doc/gmp.texi (Build Options): Update notes for new doc subdir.
 15681  	(Low-level Functions): Note mpn functions don't check for zero limbs
 15682  	etc, it's up to an application to strip.
 15683  
 15684  	* doc/configuration (Configure): mdate-sh now in doc subdir, add
 15685  	generated fat.h.
 15686  
 15687  2003-10-14  Torbjorn Granlund  <tege@swox.com>
 15688  
 15689  	* mpn/ia64/lorrshift.asm: Rewrite.
 15690  
 15691  	* mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints.
 15692  
 15693  2003-10-13  Torbjorn Granlund  <tege@swox.com>
 15694  
 15695  	* mpn/ia64/diveby3.asm: New file.
 15696  
 15697  2003-10-13  Kevin Ryde  <kevin@swox.se>
 15698  
 15699  	* mpn/powerpc32/mod_34lsub1.asm: New file.
 15700  
 15701  	* mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in
 15702  	second operand of mullw, to allow possible early-out, which the
 15703  	0xAA..AB inverse cannot give.  This improvement noticed by Torbjorn.
 15704  
 15705  	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether
 15706  	local label is purely temporary or appears in object files, for
 15707  	development purposes.
 15708  
 15709  	* doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved
 15710  	from top-level.
 15711  	* doc/Makefile.am: New file.
 15712  	* configure.in (AC_OUTPUT): Add doc/Makefile.
 15713  	* Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST.
 15714  	(info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am.
 15715  	* mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir.
 15716  	(TEXINFO_TEX): texinfo.tex now in doc subdir.
 15717  	(AM_MAKEINFOFLAGS): Set -I to doc subdir.
 15718  
 15719  	* mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as
 15720  	UNLIKELY.
 15721  
 15722  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test
 15723  	for high zero limbs.
 15724  
 15725  2003-10-12  Torbjorn Granlund  <tege@swox.com>
 15726  
 15727  	* mpn/powerpc64/diveby3.asm: New file (trivial edits of
 15728  	powerpc32/diveby3.asm).
 15729  
 15730  	* mpn/powerpc32/diveby3.asm: Update cycle counts with more processors.
 15731  	* mpn/powerpc32/sqr_diagonal.asm: Likewise.
 15732  
 15733  	* mpn/pa64/add_n.asm: Correct PA8500 cycle counts.
 15734  	* mpn/pa64/sub_n.asm: Likewise.
 15735  
 15736  	* mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo.
 15737  	* mpn/m68k/lshift.asm: Likewise.
 15738  	* mpn/m68k/rshift.asm: Likewise.
 15739  
 15740  	* mpn/m68k/README: Correct an URL; add some STATUS comments.
 15741  
 15742  	* mpn/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well.
 15743  
 15744  	* mpn/powerpc32/addlsh1_n.asm: New file.
 15745  	* mpn/powerpc32/sublsh1_n.asm: New file.
 15746  
 15747  2003-10-12  Kevin Ryde  <kevin@swox.se>
 15748  
 15749  	* mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files.
 15750  	* mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32,
 15751  	invert_half_limb, udiv_qrnnd_half_preinv): New macros.
 15752  
 15753  	* gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit,
 15754  	so as not to depend on signed right shifts being arithmetic.
 15755  
 15756  	* mpn/powerpc32/diveby3.asm: New file.
 15757  
 15758  	* mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from
 15759  	udiv_qrnnd_preinv about shift count when int<long.  Do the same with
 15760  	udiv_qrnnd, for consistency.
 15761  
 15762  	* Makefile.am (install-data-hook): Print a warning recommending "make
 15763  	check" to watch out for compiler bugs.  Proposed by Torbjorn.
 15764  
 15765  	* mpn/ia64/README (mpn_lshift, mpn_rshift): Amend prospective itanium2
 15766  	speed, 0.75 c/l with shrp plus shl/shr.
 15767  
 15768  	* mpn/ia64/popcount.asm: Add comment on optimality.
 15769  
 15770  2003-10-11  Torbjorn Granlund  <tege@swox.com>
 15771  
 15772  	* mpn/ia64/rsh1aors_n.asm: New file.
 15773  
 15774  	* mpn/asm-defs.m4: Handle rsh1aors_n.
 15775  
 15776  	* configure.in (tmp_mulfunc): Handle rsh1aors_n.
 15777  
 15778  2003-10-11  Kevin Ryde  <kevin@swox.se>
 15779  
 15780  	* mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory
 15781  	access for 0xAAAAAAAB constant.
 15782  
 15783  	* gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm
 15784  	versions using ctpop.
 15785  
 15786  	* mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description
 15787  	and M4_desc_retval used only in comments.
 15788  
 15789  	* mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1.
 15790  
 15791  2003-10-09  Torbjorn Granlund  <tege@swox.com>
 15792  
 15793  	* mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed.
 15794  	* mpn/powerpc64/sublsh1_n.asm: Likewise.
 15795  
 15796  2003-10-09  Kevin Ryde  <kevin@swox.se>
 15797  
 15798  	* mpfr/*: Update to mpfr cvs 2003-10-09.
 15799  
 15800  	* tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on
 15801  	systems which use that, eg. hpux 9.
 15802  
 15803  2003-10-07  Kevin Ryde  <kevin@swox.se>
 15804  
 15805  	* tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf change.
 15806  
 15807  	* configure.in: Check for psp_iticksperclktick in struct pst_processor.
 15808  	* tune/freq.c (freq_pstat_getprocessor): Use this.
 15809  
 15810  	* tests/devel/try.c (divisor_array): Add a couple of half-limb values.
 15811  
 15812  	* acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to
 15813  	set result "yes" when cross compiling.
 15814  
 15815  2003-10-06  Torbjorn Granlund  <tege@swox.com>
 15816  
 15817  	* mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of
 15818  	mpn_add_1 and mpn_sub_1.
 15819  
 15820  	* mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code.
 15821  
 15822  2003-10-05  Torbjorn Granlund  <tege@swox.com>
 15823  
 15824  	* mpn/pa64/mul_1.asm: Misc comment cleanups.
 15825  	* mpn/pa64/addmul_1.asm: Likewise.
 15826  	* mpn/pa64/submul_1.asm: Likewise.
 15827  
 15828  	* mpn/pa64/README: Correct cycle counts.
 15829  
 15830  	* mpn/pa64/aorslsh1_n.asm: New file.
 15831  
 15832  2003-10-04  Kevin Ryde  <kevin@swox.se>
 15833  
 15834  	* tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo,
 15835  	freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of
 15836  	MHz etc at end of sscanf format string.  In particular need this for
 15837  	freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used
 15838  	for the frequency.
 15839  
 15840  	* tests/misc.c, tests/tests.h (tests_setjmp_sigfpe,
 15841  	tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target,
 15842  	tests_dbl_mant_bits): New.
 15843  
 15844  	* configure.in (viac3*-*-*): Add gcc VIA c3 options.
 15845  
 15846  	* mpfr/*: Update to mpfr cvs 2003-10-04.
 15847  
 15848  	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
 15849  	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps.
 15850  	* tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
 15851  	refmpn_rsh1sub_n): Add prototypes.
 15852  
 15853  	* tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n,
 15854  	mpn_rsh1add_n, mpn_rsh1sub_n.
 15855  
 15856  2003-10-03  Torbjorn Granlund  <tege@swox.com>
 15857  
 15858  	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
 15859  	refmpn_rsh1sub_n): New functions.
 15860  
 15861  2003-10-03  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 15862  
 15863  	* mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1
 15864  	instead of MPN_INCR_/MPN_DECR_U.
 15865  
 15866  2003-10-02  Torbjorn Granlund  <tege@swox.com>
 15867  
 15868  	* configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.
 15869  
 15870  2003-10-02  Kevin Ryde  <kevin@swox.se>
 15871  
 15872  	* configure.in (ia64*-*-hpux*): For cc, let +O optimization level
 15873  	fallback if +O3 doesn't work.
 15874  
 15875  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca
 15876  	when available, to pick up Itanium HP-UX cc internal errors in +O2.
 15877  	Provoking code by Torbjorn.
 15878  
 15879  2003-10-01  Torbjorn Granlund  <tege@swox.com>
 15880  
 15881  	* mpn/ia64/gmp-mparam.h: Retune.
 15882  
 15883  	* mpn/asm-defs.m4: Handle aorslsh1_n.
 15884  
 15885  	* configure.in (tmp_mulfunc): Handle aorslsh1_n.
 15886  
 15887  	* mpn/ia64/aorslsh1_n.asm: New file.
 15888  
 15889  	* mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and
 15890  	mpn_sub_n.
 15891  	* mpn/ia64/add_n.asm: Replace by aors_n.asm.
 15892  	* mpn/ia64/sub_n.asm: Replace by aors_n.asm.
 15893  
 15894  2003-10-01  Kevin Ryde  <kevin@swox.se>
 15895  
 15896  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a
 15897  	separate case and consider it non-IEEE, since it looks like this is
 15898  	due to some sort of restricted or incorrect software floats.
 15899  
 15900  	* demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in
 15901  	separate objdir now.
 15902  
 15903  	* cxx/dummy.cc: Moved from top-level dummy.cc.
 15904  	* Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc,
 15905  	correction to comment about this.
 15906  
 15907  2003-09-30  Torbjorn Granlund  <tege@swox.com>
 15908  
 15909  	* demos/pexpr.c: Correct documentation of -split.
 15910  	(TIME): Remove cast of result to double.
 15911  	(main): Change timing variables to int.
 15912  	(main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than
 15913  	100000 digits.
 15914  
 15915  2003-09-28  Torbjorn Granlund  <tege@swox.com>
 15916  
 15917  	* mpn/*/*.asm: Clean up spacing, tabify.
 15918  
 15919  	* mpn/alpha/rshift.asm: Table cycle counts.
 15920  	* mpn/alpha/lshift.asm: Likewise.
 15921  	* mpn/alpha/ev5/rshift.asm: Likewise.
 15922  	* mpn/alpha/ev5/lshift.asm: Likewise.
 15923  	* mpn/alpha/ev6/add_n.asm: Likewise.
 15924  	* mpn/alpha/ev6/sub_n.asm: Likewise.
 15925  
 15926  	* mpn/ia64/lorrshift.asm: Amend comments about performance.
 15927  
 15928  	* mpn/pa64/mul_1.asm: Fix comment typo.
 15929  	* mpn/pa64/addmul_1.asm: Likewise.
 15930  	* mpn/pa64/submul_1.asm: Likewise.
 15931  
 15932  	* mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break
 15933  	recurrency.  Add remarks about possible further speedup.
 15934  	* mpn/amd64/sublsh1_n.asm: Likewise.
 15935  
 15936  	* mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup.
 15937  	* mpn/amd64/rsh1sub_n.asm: Likewise.
 15938  
 15939  2003-09-27  Torbjorn Granlund  <tege@swox.com>
 15940  
 15941  	* mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.
 15942  
 15943  	* mpn/powerpc64/rsh1add_n.asm: New file.
 15944  	* mpn/powerpc64/rsh1sub_n.asm: New file.
 15945  	* mpn/powerpc64/rshift.asm: Rewrite.
 15946  	* mpn/powerpc64/lshift.asm: Rewrite.
 15947  
 15948  2003-09-26  Torbjorn Granlund  <tege@swox.com>
 15949  
 15950  	* mpn/powerpc64/addlsh1_n.asm: New file.
 15951  	* mpn/powerpc64/sublsh1_n.asm: New file.
 15952  
 15953  2003-09-25  Torbjorn Granlund  <tege@swox.com>
 15954  
 15955  	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
 15956  	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on
 15957  	corresponding HAVE_NATIVE_*.
 15958  
 15959  2003-09-25  Kevin Ryde  <kevin@swox.se>
 15960  
 15961  	* mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB.
 15962  
 15963  	* demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and
 15964  	mpfr_number_p merely returning non-zero, rather than 1 or 0.
 15965  
 15966  	* demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta.
 15967  
 15968  	* demos/expr/Makefile.am (LDADD): Update comments on $(LIBM).
 15969  
 15970  2003-09-24  Torbjorn Granlund  <tege@swox.com>
 15971  
 15972  	* tune/speed.c (routine): Add entries for mpn_addlsh1_n, mpn_sublsh1_n,
 15973  	mpn_rsh1add_n, and mpn_rsh1sub_n.
 15974  
 15975  	* tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
 15976  	speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n.
 15977  
 15978  	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
 15979  	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions.
 15980  
 15981  	* gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and
 15982  	mpn_rsh1sub_n.
 15983  
 15984  	* mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n,
 15985  	rsh1add_n, and rsh1sub_n.
 15986  
 15987  	* mpn/powerpc64/*.asm: Add cycle counts in consistent style.  Misc
 15988  	styling edits.
 15989  
 15990  	* mpn/amd64/gmp-mparam.h: Retune.
 15991  
 15992  	* configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n,
 15993  	HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n,
 15994  	HAVE_NATIVE_mpn_rsh1sub_n.
 15995  	(gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n,
 15996  	and rsh1sub_n.
 15997  
 15998  	* mpn/amd64/addlsh1_n.asm: New file.
 15999  	* mpn/amd64/sublsh1_n.asm: New file.
 16000  	* mpn/amd64/rsh1add_n.asm: New file.
 16001  	* mpn/amd64/rsh1sub_n.asm: New file.
 16002  
 16003  2003-09-24  Kevin Ryde  <kevin@swox.se>
 16004  
 16005  	* mpfr/*: Update to mpfr cvs 2003-09-24.
 16006  
 16007  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.
 16008  
 16009  2003-09-23  Torbjorn Granlund  <tege@swox.com>
 16010  
 16011  	* gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.
 16012  
 16013  2003-09-23  Kevin Ryde  <kevin@swox.se>
 16014  
 16015  	* gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.
 16016  
 16017  2003-09-22  Torbjorn Granlund  <tege@swox.com>
 16018  
 16019  	* tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define.
 16020  	* tune/mul_n_open.c (__gmpn_sqr_n): New #define.
 16021  
 16022  	* mpn/generic/mul.c (mpn_sqr_n): Move from here...
 16023  	* mpn/generic/mul_n.c (mpn_sqr_n): ...to here.
 16024  	(mpn_sqr_n): Allocate workspace for toom3 using TMP_* mechanism except
 16025  	for very large operands when !WANT_FFT.
 16026  
 16027  	* mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes.
 16028  
 16029  	* mpn/generic/mul.c: Remove spurious #include <stdio.h>.
 16030  
 16031  	* mpn/x86/k7/gmp-mparam.h: Retune.
 16032  
 16033  	* mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using
 16034  	TMP_* mechanism except for very large operands when !WANT_FFT.
 16035  
 16036  	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE):
 16037  	Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n.
 16038  	(MPN_TOOM3_MAX_N): New #define.
 16039  
 16040  	* mpn/amd64/gmp-mparam.h: Retune.
 16041  
 16042  	* mpn/Makefile.am (TARG_DIST): Add amd64.
 16043  
 16044  	* mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available.
 16045  
 16046  	* mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros.
 16047  
 16048  2003-09-22  Kevin Ryde  <kevin@swox.se>
 16049  
 16050  	* mpfr/*: Update to mpfr cvs 2003-09-22.
 16051  
 16052  2003-09-21  Kevin Ryde  <kevin@swox.se>
 16053  
 16054  	* mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1,
 16055  	USE_PREINV_MOD_1): Set to 1 for new asm versions.
 16056  
 16057  	* mpfr/*: Update to mpfr cvs 2003-09-21.
 16058  
 16059  2003-09-21  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 16060  
 16061  	* mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use
 16062  	mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to
 16063  	mpn_addlsh1_n.  Avoid all copying, at the expense of some additional
 16064  	workspace.
 16065  
 16066  	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accommodate
 16067  	latest toom3 code.
 16068  
 16069  2003-09-19  Kevin Ryde  <kevin@swox.se>
 16070  
 16071  	* mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
 16072  	New files.
 16073  
 16074  2003-09-16  Kevin Ryde  <kevin@swox.se>
 16075  
 16076  	* tune/speed.c (run_one): Don't scale the -1.0 not-available return.
 16077  	Print "n/a" for times not-available.
 16078  
 16079  2003-09-13  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 16080  
 16081  	* mpn/generic/mul_n.c (toom3_interpolate): New function.
 16082  	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate.
 16083  
 16084  2003-09-12  Torbjorn Granlund  <tege@swox.com>
 16085  
 16086  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused
 16087  	variables.
 16088  	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last
 16089  	MPN_DECR_U calls.
 16090  
 16091  2003-09-12  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 16092  
 16093  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.
 16094  
 16095  2003-09-12  Torbjorn Granlund  <tege@swox.com>
 16096  
 16097  	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate
 16098  	to use the same form as MPN_TOOM3_MUL_N_TSIZE.
 16099  	(MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3
 16100  	code requirements.
 16101  	* mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove.
 16102  	(USE_MORE_MPN): Remove.
 16103  
 16104  2003-08-31  Kevin Ryde  <kevin@swox.se>
 16105  
 16106  	* mpfr/*: Update to mpfr cvs 2003-08-31.
 16107  
 16108  2003-08-30  Kevin Ryde  <kevin@swox.se>
 16109  
 16110  	* mpfr/*: Update to mpfr cvs 2003-08-30.
 16111  
 16112  2003-08-29  Torbjorn Granlund  <tege@swox.com>
 16113  
 16114  	* mpn/amd64/copyi.asm: New file.
 16115  	* mpn/amd64/copyd.asm: New file.
 16116  	* mpn/amd64/README: New file.
 16117  
 16118  2003-08-28  Torbjorn Granlund  <tege@swox.com>
 16119  
 16120  	* mpn/amd64/lshift.asm: New file.
 16121  	* mpn/amd64/rshift.asm: New file.
 16122  	* mpn/amd64/gmp-mparam.h: Retune.
 16123  
 16124  2003-08-23  Kevin Ryde  <kevin@swox.se>
 16125  
 16126  	* tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value
 16127  	established.
 16128  
 16129  	* mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return
 16130  	exactness indication, can get that from testing the remainder.
 16131  
 16132  	* mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments
 16133  	about loads and stores and what speed should be possible.
 16134  
 16135  2003-08-22  Torbjorn Granlund  <tege@swox.com>
 16136  
 16137  	* mpn/amd64/add_n.asm: New file.
 16138  	* mpn/amd64/sub_n.asm: New file.
 16139  	* mpn/amd64/mul_1.asm: New file.
 16140  	* mpn/amd64/addmul_1.asm: New file.
 16141  	* mpn/amd64/submul_1.asm: New file.
 16142  
 16143  2003-08-19  Kevin Ryde  <kevin@swox.se>
 16144  
 16145  	* longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main
 16146  	__GNUC__ block.  Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since
 16147  	these forms are only for ABI=2.0w.
 16148  
 16149  	* longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to
 16150  	avoid bfffo on GCC 3.4 in CPU32 mode.  Reported by Bernardo Innocenti.
 16151  
 16152  	* longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force
 16153  	64-bit register destination.  Pointed out by Torbjorn.
 16154  
 16155  	* mpz/combit.c: Correction to carry handling when extending a
 16156  	negative, and use __GMPN_ADD_1.  Correction to complement limb for a
 16157  	negative when there's a non-zero low limb.
 16158  	* tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these.
 16159  
 16160  	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add
 16161  	get_d_2exp.
 16162  	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm,
 16163  	demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui.
 16164  	(GMP::Rand::randstate): Accept a randstate object to copy.
 16165  	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm,
 16166  	demos/perl/test.pl: Add combit, rootrem.
 16167  
 16168  2003-08-19  Torbjorn Granlund  <tege@swox.com>
 16169  
 16170  	* tune/Makefile.am (EXTRA_DIST): Add amd64.asm.
 16171  
 16172  2003-08-17  Kevin Ryde  <kevin@swox.se>
 16173  
 16174  	* gmpxx.h [__MPFR_H]: Include full <iostream> for inlines.
 16175  	* tests/cxx/t-headfr.cc: New file, exercising this.
 16176  	* tests/cxx/Makefile.am: Add it.
 16177  
 16178  	* tests/cxx/t-constr.cc: Include config.h for WANT_MPFR.
 16179  
 16180  	* gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment.
 16181  	Reported by Derrick Bass.
 16182  	* tests/cxx/t-assign.cc (check_mpfr): Exercise this.
 16183  
 16184  	* configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of
 16185  	tests/cxx/t-*.cc.  (Was always meant to have been defined.)
 16186  	* tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr.
 16187  
 16188  	* gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode
 16189  	(struct __gmp_hypot_function): Correction to mpfr_hypot addition.
 16190  	* tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long
 16191  	tests.
 16192  
 16193  2003-08-16  Torbjorn Granlund  <tege@swox.com>
 16194  
 16195  	* configure.in (amd64): New.
 16196  
 16197  	* mpn/amd64/gmp-mparam.h: New file.
 16198  
 16199  	* tune/amd64.asm: New file, derived in part from tune/pentium.asm.
 16200  
 16201  2003-08-15  Kevin Ryde  <kevin@swox.se>
 16202  
 16203  	* tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2.
 16204  	(freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too.
 16205  
 16206  2003-08-14  Kevin Ryde  <kevin@swox.se>
 16207  
 16208  	* mpq/get_d.c: Use mpn_get_d.
 16209  	* tests/mpq/t-get_d.c (check_onebit): New test.
 16210  
 16211  	* gmp.texi (Notes for Particular Systems): Under x86 cpu types, note
 16212  	i386 is a fat binary, remove pentium4 recommendation since i386 is now
 16213  	quite reasonable for p4.
 16214  	(Notes for Particular Systems): Under Windows DLLs, remove caveat
 16215  	about --enable-cxx now ok, update .lib creation for new libtool,
 16216  	remove .exp not needed for MS C.
 16217  	(Notes for Package Builds): i386 is a fat binary.
 16218  	(Reentrancy): Remove SCO ctype.h note, don't want to list every system
 16219  	misfeature, and was quite possibly for non-threading mode anyway.
 16220  	(Autoconf): Remove notes on gmp 2 detection, too old to want to
 16221  	encourage anyone to use.
 16222  	(Karatsuba Multiplication): Correction to threshold increase/decrease
 16223  	for a and b terms.  Reported by Richard Brent and Paul Zimmermann.
 16224  	Also add various further index entries.
 16225  
 16226  	* tune/freq.c (freq_attr_get_invent): New function.
 16227  	(freq_irix_hinv): Remove, in favour or freq_attr_get_invent.
 16228  	* configure.in (AC_CHECK_FUNCS): Add attr_get.
 16229  	(AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h.
 16230  
 16231  2003-08-03  Kevin Ryde  <kevin@swox.se>
 16232  
 16233  	* tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.
 16234  
 16235  2003-08-02  Kevin Ryde  <kevin@swox.se>
 16236  
 16237  	* mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF
 16238  	problem systems.
 16239  
 16240  	* configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no,
 16241  	since libtool no longer uses it.  This was a workaround fixing ctype.h
 16242  	in SCO 5 shared libraries; not sure if libtool now gets it right on
 16243  	its own, let's hope so.
 16244  
 16245  	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no
 16246  	longer demands HOST_CC.
 16247  
 16248  	* configure.in: When C or C++ compiler not found, refer user to
 16249  	config.log.
 16250  
 16251  	* configure.in (i386-*-*): Turn i386 into a fat binary build.
 16252  	* mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm,
 16253  	mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c:
 16254  	New files.
 16255  	* gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure.
 16256  	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define.
 16257  	* mpn/asm-defs.m4 (foreach): New macro.
 16258  	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define.
 16259  	* mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat
 16260  	binaries.
 16261  	* mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments
 16262  	about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx.
 16263  
 16264  	* configure.in: Add various supports for fat binaries, via fat_path,
 16265  	fat_functions and fat_thresholds variables.
 16266  	* acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too.
 16267  	(GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros.
 16268  	* gmp-impl.h: Add various supports for fat binaries.
 16269  	(DECL_add_n etc): New macros.
 16270  	(mpn_mul_basecase etc): Define only if not already defined.
 16271  	* mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary.
 16272  	(MPN): Use m4_unquote, for the benefit of fat binary name expansion.
 16273  	* doc/configuration: Notes on fat binaries.
 16274  	* gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always.
 16275  	(MUL_KARATSUBA_THRESHOLD_LIMIT): New define.
 16276  	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use these.
 16277  	* tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c,
 16278  	tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to
 16279  	tell fat.h what's being done.
 16280  
 16281  	* config.guess (alpha-*-*): Update comments on what configfsf.guess
 16282  	does and doesn't do for us.
 16283  
 16284  2003-07-31  Kevin Ryde  <kevin@swox.se>
 16285  
 16286  	* config.guess: Remove $dummy.o files everywhere, in case vendor
 16287  	compilers produce that even when not asked.
 16288  
 16289  	* demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to
 16290  	avoid C++ keyword.
 16291  	(coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining
 16292  	about uninitialized variables.
 16293  
 16294  	* demos/perl/INSTALL: Add notes on building with a DLL.
 16295  
 16296  	* longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination
 16297  	is a 64-bit register.  Diagnosed by Francois G. Dorais.
 16298  
 16299  2003-07-31  Torbjorn Granlund  <tege@swox.com>
 16300  
 16301  	* longlong.h [ppc]: Remove nested test for vxworks.
 16302  
 16303  2003-07-24  Kevin Ryde  <kevin@swox.se>
 16304  
 16305  	* gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for
 16306  	mpz*long and long*mpz.
 16307  	* tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong.
 16308  
 16309  	* cxx/ismpf.cc: Use std::locale decimal point when available.  Expect
 16310  	localeconv available always.
 16311  	* tests/cxx/t-locale.cc: Enable check_input tests.
 16312  
 16313  	* gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot.
 16314  	* tests/cxx/t-misc.cc (check_mpfr_hypot): New tests.
 16315  
 16316  	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc,
 16317  	tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc:
 16318  	Include config.h for WANT_MPFR.
 16319  
 16320  	* tests/mpz/bit.c (check_single): Correction to a diagnostic print.
 16321  
 16322  2003-07-24  Niels Möller  <nisse@lysator.liu.se>
 16323  
 16324  	* mpz/combit.c: New file.
 16325  	* Makefile.am, mpz/Makefile.am: Add it.
 16326  	* gmp-h.in (mpz_combit): Add prototype.
 16327  	* tests/mpz/bit.c (check_single): Exercise mpz_combit.
 16328  
 16329  2003-07-16  Kevin Ryde  <kevin@swox.se>
 16330  
 16331  	* mpn/generic/get_d.c: Correction to infinity handling for large exp.
 16332  
 16333  2003-07-14  Kevin Ryde  <kevin@swox.se>
 16334  
 16335  	* mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use
 16336  	mpn_get_d.
 16337  
 16338  	* mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c.
 16339  	* configure.in, mpn/Makefile.am: Add it.
 16340  	* gmp-impl.h (mpn_get_d): Add prototype.
 16341  
 16342  	* tests/mpn/t-get_d.c: New file.
 16343  	* tests/mpn/Makefile.am: Add it.
 16344  
 16345  	* tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives.
 16346  	(check_onebit): Add a few more bit sizes.
 16347  
 16348  	* tests/misc.c, tests/tests.h (tests_isinf): New function.
 16349  
 16350  2003-07-12  Kevin Ryde  <kevin@swox.se>
 16351  
 16352  	* configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as
 16353  	automake does in the actual build.
 16354  
 16355  	* acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare
 16356  	namespace before trying to use.  In std iostream test, provoke a
 16357  	failure from Compaq C++ in pre-standard mode.
 16358  
 16359  2003-07-08  Kevin Ryde  <kevin@swox.se>
 16360  
 16361  	* acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various
 16362  	known problems, and indicate to the user the reason for rejecting.
 16363  	(GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each
 16364  	compiled program.
 16365  
 16366  2003-07-05  Kevin Ryde  <kevin@swox.se>
 16367  
 16368  	* config.sub: Add comments to our alias transformations.
 16369  
 16370  	* configfsf.sub, configfsf.guess: Update to 2003-07-04.
 16371  
 16372  	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show
 16373  	failing program in config.log, per other autoconf tests.
 16374  
 16375  	* configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub.
 16376  
 16377  2003-06-28  Kevin Ryde  <kevin@swox.se>
 16378  
 16379  	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round
 16380  	upwards.
 16381  
 16382  	* tests/mpz/t-get_d_2exp.c: New file.
 16383  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 16384  	* tests/mpf/t-get_d_2exp.c: New file.
 16385  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 16386  	* tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New
 16387  	functions.
 16388  	* tests/misc.c, tests/tests.h (tests_hardware_getround,
 16389  	tests_hardware_setround): New functions.
 16390  
 16391  2003-06-25  Kevin Ryde  <kevin@swox.se>
 16392  
 16393  	* mpn/sparc64/dive_1.c: New file.
 16394  
 16395  	* mpn/sparc64/sparc64.h: New file.
 16396  	* mpn/sparc64/mode1o.c: Remove things now in sparc64.h.
 16397  
 16398  	* mpfr/*: Update to mpfr cvs 2003-06-25.
 16399  
 16400  	* acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro
 16401  	gcc, don't use ANSI style function definition.
 16402  
 16403  2003-06-22  Kevin Ryde  <kevin@swox.se>
 16404  
 16405  	* mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend,
 16406  	handled by PROLOGUE and EPILOGUE.  Comment out .callinfo, per other
 16407  	asm files.
 16408  
 16409  	* gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix
 16410  	long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN.
 16411  	(mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend.
 16412  	* tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging
 16413  	operator/ and operator% sections for clarity.
 16414  
 16415  2003-06-21  Kevin Ryde  <kevin@swox.se>
 16416  
 16417  	* mpfr/*: Update to mpfr cvs 2003-06-21.
 16418  
 16419  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an
 16420  	ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6.
 16421  	* configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for
 16422  	this compiler.
 16423  
 16424  	* gmpxx.h (get_d): Remove comments about long double, double is
 16425  	correct for get_d, a future long double form would be get_ld.
 16426  
 16427  2003-06-19  Kevin Ryde  <kevin@swox.se>
 16428  
 16429  	* mpfr/*: Update to mpfr cvs 2003-06-19.
 16430  
 16431  	* mpn/generic/dive_1.c: Share src[0] fetch among all cases.  No need
 16432  	for separate final umul_ppmm in even case, make it part of the loop.
 16433  
 16434  	* mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify.
 16435  
 16436  	* mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this
 16437  	nailifies it.
 16438  	* tests/mpf/t-set_si.c: Nailify tests.
 16439  
 16440  	* mpf/iset_ui.c: Nailify, as per mpf/set_ui.c
 16441  	* tests/mpf/t-set_ui.c: New file.
 16442  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 16443  
 16444  2003-06-15  Kevin Ryde  <kevin@swox.se>
 16445  
 16446  	* mpfr/*: Update to mpfr cvs 2003-06-15.
 16447  
 16448  	* mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.
 16449  
 16450  2003-06-12  Kevin Ryde  <kevin@swox.se>
 16451  
 16452  	* configure.in (--enable-assert): Emit WANT_ASSERT to config.m4.
 16453  	* mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check
 16454  	WANT_ASSERT is defined.
 16455  
 16456  	* mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9.
 16457  
 16458  	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack,
 16459  	discard error messages from cp, for the benefit of --disable-shared or
 16460  	systems not using names libgmp.so.*.
 16461  
 16462  	* tests/devel/try.c (try_one): When overlapping, copy source data
 16463  	after filling dst.  Previously probably used only DEADVAL in
 16464  	overlapping cases.
 16465  
 16466  2003-06-11  Torbjorn Granlund  <tege@swox.com>
 16467  
 16468  	* mpf/random2.c: Rewrite.  Ignore sign of exp parameter.
 16469  
 16470  2003-06-10  Kevin Ryde  <kevin@swox.se>
 16471  
 16472  	* mpn/sparc64/mode1o.c: New file.
 16473  
 16474  2003-06-09  Torbjorn Granlund  <tege@swox.com>
 16475  
 16476  	* mpn/powerpc32/lshift.asm: Add more cycle counts.
 16477  	* mpn/powerpc32/rshift.asm: Add more cycle counts.
 16478  
 16479  	* mpn/ia64/addmul_1.asm: Reformat comments for 80 columns.
 16480  
 16481  	* gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv.
 16482  	(udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm.
 16483  	(udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2
 16484  	the default.
 16485  	* tune/speed.c: Corresponding changes.
 16486  	* tune/speed.h: Likewise.
 16487  	* tune/common.c: Likewise.
 16488  
 16489  	* mpf/get_str.c: Simplify `off' computation.
 16490  
 16491  	* longlong.h: Tabify.
 16492  
 16493  2003-06-09  Kevin Ryde  <kevin@swox.se>
 16494  
 16495  	* gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to
 16496  	cover all flavours.
 16497  	* configure.in: Ditto in some comments.
 16498  
 16499  	* mpfr/*: Update to mpfr cvs 2003-06-09.
 16500  
 16501  	* tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for
 16502  	the benefit of gcc 3.2 on itanium2-hp-hpux11.22.
 16503  
 16504  	* tune/many.pl (mul_2): Add speed routine settings.
 16505  	(MAKEFILE): Close when done, for the benefit of development hackery.
 16506  
 16507  2003-06-08  Kevin Ryde  <kevin@swox.se>
 16508  
 16509  	* mpfr/*: Update to mpfr cvs 2003-06-08.
 16510  
 16511  	* mpn/x86/x86-defs.m4 (femms): Remove fallback to emms.
 16512  	(cmovCC, psadbw): Remove simulated versions.
 16513  	(cmov_available_p, psadbw_available_p): Remove.
 16514  	This trickery was only ever for development purposes on machines
 16515  	without those instructions.  Removing it simplifies gmp and in
 16516  	particular avoids complications for fat binary builds.  Development
 16517  	can be done with a wrapper around "as" if really needed.
 16518  
 16519  	* mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own
 16520  	mpn/x86/k6/divrem_1.asm.  Amend K6 comments now moved to there.
 16521  	* mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used.
 16522  
 16523  	* mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm.
 16524  
 16525  	* mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm.
 16526  
 16527  	* mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch
 16528  	prediction.  Put done_zero at end for less wastage in alignment.  Use
 16529  	decl+jnz unconditionally since in fact it's ok on k6.  Amend comments.
 16530  
 16531  2003-06-07  Kevin Ryde  <kevin@swox.se>
 16532  
 16533  	* mpn/generic/mode1o.c: Fix ASSERTs on return value.
 16534  
 16535  	* gmp.texi (Build Options): Add viac3 and viac32 cpu types.
 16536  	(ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed.  More indexing.
 16537  
 16538  	* configfsf.guess, configfsf.sub: Update to 2003-06-06.
 16539  	* config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed
 16540  	by new configfsf.guess.
 16541  
 16542  2003-06-06  Torbjorn Granlund  <tege@swox.com>
 16543  
 16544  	* mpn/ia64/submul_1.asm: Add branch over .align block.
 16545  
 16546  2003-06-05  Torbjorn Granlund  <tege@swox.com>
 16547  
 16548  	* longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0.
 16549  	Allow more immediate operands.
 16550  	(sub_ddmmss) [pa64]: Likewise.
 16551  	(add_ssaaaa) [pa32]: Likewise.
 16552  	(sub_ddmmss) [pa32]: Likewise.
 16553  
 16554  	* mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please
 16555  	picky GNU assembler.
 16556  
 16557  2003-06-05  Kevin Ryde  <kevin@swox.se>
 16558  
 16559  	* gmp.texi (Integer Special Functions): In mpz_array_init, fix type
 16560  	shown for integer_array and give an example use.
 16561  
 16562  2003-06-04  Torbjorn Granlund  <tege@swox.com>
 16563  
 16564  	* mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
 16565  	alpha.
 16566  
 16567  2003-06-03  Kevin Ryde  <kevin@swox.se>
 16568  
 16569  	* mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings.
 16570  
 16571  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test
 16572  	program, hex is not supported by K&R.
 16573  
 16574  2003-06-02  Torbjorn Granlund  <tege@swox.com>
 16575  
 16576  	* mpn/mips64/divrem_1.asm: New file.
 16577  
 16578  2003-06-01  Torbjorn Granlund  <tege@swox.com>
 16579  
 16580  	* mpn/powerpc32/lshift.asm: Reformat code.
 16581  	* mpn/powerpc32/rshift.asm: Reformat code.
 16582  
 16583  2003-05-30  Kevin Ryde  <kevin@swox.se>
 16584  
 16585  	* tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to
 16586  	avoid any chance of losing output on segv etc.
 16587  
 16588  2003-05-28  Torbjorn Granlund  <tege@swox.com>
 16589  
 16590  	* mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
 16591  	Remove redundant variable prec.
 16592  
 16593  2003-05-26  Torbjorn Granlund  <tege@swox.com>
 16594  
 16595  	* tests/mpz/convert.c: Test bases up to 62.
 16596  
 16597  	* tests/mpf/t-conv.c: Test bases up to 62.
 16598  
 16599  	* demos/pexpr.c: Don't iterate to get accurate timing.
 16600  
 16601  	* mpf/set_str.c (mpn_pow_1_highpart): Cleanup.
 16602  
 16603  	* mp_dv_tab.c: Fix typo.
 16604  
 16605  	* mpf/get_str.c: Rewrite (now sub-quadratic).
 16606  
 16607  2003-05-22  Kevin Ryde  <kevin@swox.se>
 16608  
 16609  	* tests/mpn/t-divrem_1.c: New file.
 16610  	* tests/mpn/Makefile.am: Add it.
 16611  
 16612  2003-05-22  Torbjorn Granlund  <tege@swox.com>
 16613  
 16614  	* config.sub: Recognize viac3* processors.
 16615  
 16616  2003-05-20  Torbjorn Granlund  <tege@swox.com>
 16617  
 16618  	* mpn/sparc64/addmul_2.asm: New file.
 16619  
 16620  2003-05-19  Torbjorn Granlund  <tege@swox.com>
 16621  
 16622  	* configure.in: Recognize alphaev7* as alphaev67.
 16623  
 16624  	* config.guess: Recognize viac3* processors.
 16625  	* configure.in: Set up path for viac3* processors.
 16626  	* acinclude.m4 (X86_PATTERN): Include viac3* processors.
 16627  
 16628  2003-05-19  Kevin Ryde  <kevin@swox.se>
 16629  
 16630  	* tune/freq.c (freq_pstat_getprocessor): New function.
 16631  	(freq_all): Use it.
 16632  	* configure.in (AC_CHECK_HEADERS): Add sys/pstat.h.
 16633  	(AC_CHECK_FUNCS): Add pstat_getprocessor.
 16634  
 16635  2003-05-15  Kevin Ryde  <kevin@swox.se>
 16636  
 16637  	* mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline",
 16638  	since the code is a bit too big.  gcc doesn't actually inline when
 16639  	alloca (TMP_ALLOC) is used anyway.
 16640  
 16641  2003-05-13  Kevin Ryde  <kevin@swox.se>
 16642  
 16643  	* gmp.texi (Notes for Particular Systems): Libtool directory is .libs
 16644  	not _libs for mingw dll.  Reported by Andreas Fabri.
 16645  
 16646  2003-05-07  Kevin Ryde  <kevin@swox.se>
 16647  
 16648  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code
 16649  	from gcc -march=pentium4, to check the assembler supports that.
 16650  	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros.
 16651  	* configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4
 16652  	(with sse2) is ok.
 16653  
 16654  2003-05-06  Kevin Ryde  <kevin@swox.se>
 16655  
 16656  	* mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1.
 16657  
 16658  	* tune/freq.c (<sys/sysinfo.h>): Include only when needed for
 16659  	getsysinfo(), to avoid a problem with this file on AIX 5.1.
 16660  
 16661  2003-05-03  Torbjorn Granlund  <tege@swox.com>
 16662  
 16663  	* mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
 16664  	reverting last change).
 16665  
 16666  2003-05-03  Kevin Ryde  <kevin@swox.se>
 16667  
 16668  	* gmp.texi: Use @code for files in @cindex entries, it looks nicer
 16669  	than @file.
 16670  
 16671  	* Makefile.am: Note gmp 4.1.1 and 4.1.2 version info.
 16672  
 16673  	* configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray
 16674  	system setups, letting AC_REQUIRE do its job instead of a hard coded
 16675  	AC_PROG_EGREP.
 16676  
 16677  	* config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which
 16678  	segfaults on Debian "ash" 0.4.16.
 16679  
 16680  2003-05-01  Kevin Ryde  <kevin@swox.se>
 16681  
 16682  	* configure.in (AC_CHECK_FUNCS): Add getsysinfo.
 16683  	(AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h.
 16684  	* tune/freq.c (freq_getsysinfo): New function.
 16685  	(freq_all): Use it.
 16686  	(freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq,
 16687  	freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set
 16688  	speed_cycletime before trying to print it, when verbose.
 16689  
 16690  2003-04-28  Torbjorn Granlund  <tege@swox.com>
 16691  
 16692  	* mpf/set_str.c: Major overhaul.
 16693  	(mpn_pow_1_highpart): New helper function, meat extracted from
 16694  	mpf_set_str.
 16695  
 16696  2003-04-24  Kevin Ryde  <kevin@swox.se>
 16697  
 16698  	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4.
 16699  
 16700  	* configure, ltmain.sh, aclocal.m4: Update to libtool 1.5.
 16701  
 16702  	* longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each,
 16703  	since gcc only supports one per asm.
 16704  
 16705  	* printf/doprnt.c: Add M for mp_limb_t.
 16706  	* tests/misc/t-printf.c: Exercise this.
 16707  
 16708  	* tests/mpz/t-cmp_d.c: Test infinities.
 16709  	* tests/mpf/t-cmp_d.c: New file.
 16710  	* tests/mpf/Makefile.am: Add it.
 16711  
 16712  	* mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger
 16713  	than any value.
 16714  	* mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid.
 16715  
 16716  	* configure.in (AC_CHECK_FUNCS): Add raise.
 16717  	* invalid.c: New file.
 16718  	* Makefile.am: Add it.
 16719  	* gmp-impl.h (__gmp_invalid_operation): Add prototype.
 16720  	(DOUBLE_NAN_INF_ACTION): New macro.
 16721  
 16722  	* tests/trace.c, tests/tests.h (d_trace): New function.
 16723  	* tests/misc.c, tests/tests.h (tests_infinity_d): New function.
 16724  	* tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui.
 16725  
 16726  	* tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various
 16727  	mp_size_t values for printf %ld in case mp_size_t==int.  Use
 16728  	gmp_printf for mp_limb_t values.
 16729  
 16730  	* gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t,
 16731  	gmp_randstate_t.  Note ulong for bit counts and size_t for byte
 16732  	counts.  Don't bother with @noindent.
 16733  	(Debugging): New valgrind is getting MMX/SSE.
 16734  	(Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs.
 16735  	(Float Comparison): mpf_cmp_d behaviour on NaNs and Infs.
 16736  	(Low-level Functions): Note with mpn_hamdist what hamming distance is.
 16737  	(Formatted Output Strings): Add type M.
 16738  	(Internals): Remove remarks on ulong bits and size_t bytes.  Move int
 16739  	field remarks to ...
 16740  	(Integer Internals, Float Internals): ... here.
 16741  
 16742  2003-04-19  Kevin Ryde  <kevin@swox.se>
 16743  
 16744  	* configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.
 16745  
 16746  	* mpn/x86/p6/mul_basecase.asm: New file.
 16747  
 16748  2003-04-18  Kevin Ryde  <kevin@swox.se>
 16749  
 16750  	* configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not
 16751  	available, and don't use mpn/m68k/mc68020 asm routines.  (Avoids 32x32
 16752  	mul and 64/32 div which trap to the kernel on 68060.  Advice by
 16753  	Richard Zidlicky.)
 16754  	* mpn/m68k/README: Update notes on directory usage.
 16755  
 16756  	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the
 16757  	test programs run with a shared libgmpxx on openbsd 3.2.
 16758  
 16759  	* gmp.texi (Language Bindings): Add Guile.
 16760  
 16761  2003-04-12  Kevin Ryde  <kevin@swox.se>
 16762  
 16763  	* configure.in (cygwin*, mingw*, pw32*, os2*): Add
 16764  	-Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in
 16765  	latest mingw and libtool.
 16766  
 16767  	* acinclude.m4 (GMP_ASM_COFF_TYPE): New macro.
 16768  	* configure.in (x86s): Use it.
 16769  	* mpn/x86/x86-defs.m4 (COFF_TYPE): New macro.
 16770  	(PROLOGUE_cpu): Use it, for the benefit of mingw DLLs.
 16771  
 16772  	* gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC.
 16773  
 16774  	* gmp.texi (Known Build Problems): Remove windows test program .exe
 16775  	repeated built, fixed by new libtool.  Remove MacOS C++ shared library
 16776  	creation, fixed by new libtool.
 16777  	(Notes for Package Builds, Known Build Problems): Remove DESTDIR notes
 16778  	on libgmpxx, fixed in new libtool.
 16779  
 16780  2003-04-10  Torbjorn Granlund  <tege@swox.com>
 16781  
 16782  	* configure.in: Match turbosparc.
 16783  	* config.guess: Recognize turbosparc (just for *bsd for now).
 16784  
 16785  2003-04-09  Kevin Ryde  <kevin@swox.se>
 16786  
 16787  	* mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX.
 16788  
 16789  	* tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via
 16790  	MP_SIZE_T_MAX, eg. for nails.
 16791  
 16792  	* tests/cxx/t-ternary.cc: Split up tests to help compile speed and
 16793  	memory usage.
 16794  
 16795  	* tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong
 16796  	for seed not uint.
 16797  
 16798  	* gmp.texi: Add @: after various abbreviations, more index entries.
 16799  	(leftarrow): New macro, for non-tex.
 16800  	(Random State Initialization): Remove commented gmp_randinit_lc, not
 16801  	going to be implemented.
 16802  	(Random Number Algorithms): New section.
 16803  	(References): Add Matsumoto and Nishimura on Mersenne Twister, add
 16804  	Bertot, Magaud and Zimmermann on GMP Square Root.
 16805  
 16806  2003-04-06  Kevin Ryde  <kevin@swox.se>
 16807  
 16808  	* tests/mpz/t-gcd_ui.c: New file.
 16809  	* tests/mpz/Makefile.am: Add it.
 16810  
 16811  	* mpz/gcd_ui.c: Correction to return value on longlong limb systems,
 16812  	limb might not fit a ulong.
 16813  
 16814  2003-04-04  Kevin Ryde  <kevin@swox.se>
 16815  
 16816  	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
 16817  	2003-04-02.
 16818  
 16819  2003-04-02  Kevin Ryde  <kevin@swox.se>
 16820  
 16821  	* configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len,
 16822  	libtool has addressed this now.
 16823  	(AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK
 16824  	no longer needs it.
 16825  
 16826  	* acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and
 16827  	ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by
 16828  	libtool's call to AC_CHECK_TOOL.
 16829  
 16830  2003-04-01  Kevin Ryde  <kevin@swox.se>
 16831  
 16832  	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
 16833  	2003-03-31.
 16834  
 16835  	* configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool
 16836  	running F77 probes.
 16837  
 16838  	* randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is
 16839  	in each field.
 16840  	(randseed_lc): Rename seedp to seedz to avoid confusion with seedp in
 16841  	the lc function.  Suggested by Pedro Gimeno.
 16842  	(gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE.  No need for
 16843  	"+1" in mpz_init2 of _mp_seed.  Don't bother with mpz_init2 for _mp_a.
 16844  
 16845  2003-03-29  Kevin Ryde  <kevin@swox.se>
 16846  
 16847  	* configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O.
 16848  	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro.
 16849  
 16850  	* configure.in (AC_CHECK_TYPES): Add notes on why tested.
 16851  
 16852  	* gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros,
 16853  	use them for all external references to get URLs into HTML output.
 16854  	(Random State Initialization): Add gmp_randinit_set.
 16855  	(Random State Miscellaneous): New section.
 16856  
 16857  2003-03-29  Kevin Ryde  <kevin@swox.se>
 16858  
 16859  	* randbui.c, randmui.c: New files.
 16860  	* Makefile.am: Add them.
 16861  	* gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes.
 16862  	* tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files.
 16863  	* tests/rand/Makefile.am: Add them.
 16864  
 16865  	* gmp-impl.h (gmp_randstate_srcptr): New typedef.
 16866  	(gmp_randfnptr_t): Add randiset_fn.
 16867  	* randiset.c: New file.
 16868  	* Makefile.am: Add it.
 16869  	* gmp-h.in (gmp_randinit_set): Add prototype.
 16870  	* randlc2x.c, randmt.c: Add gmp_randinit_set support.
 16871  	* tests/rand/t-iset.c: New file.
 16872  	* tests/rand/Makefile.am: Add it.
 16873  
 16874  	* tests/misc.c, tests/tests.h (call_rand_algs): New function.
 16875  
 16876  2003-03-27  Kevin Ryde  <kevin@swox.se>
 16877  
 16878  	* mpz/bin_uiui.c: Use plain "*" for kacc products rather than
 16879  	umul_ppmm since high not needed, except for an ASSERT now amended.
 16880  
 16881  2003-03-26  Kevin Ryde  <kevin@swox.se>
 16882  
 16883  	* demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove,
 16884  	nextbelow, nexttoward): New functions.
 16885  	* demos/expr/t-expr.c: Exercise these.
 16886  
 16887  	* mpfr/*: Update to mpfr cvs 2003-03-26.
 16888  
 16889  	* gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc.
 16890  
 16891  	* tune/time.c (cycles_works_p): Scope variables down to relevant part
 16892  	to avoid warnings about unused.
 16893  
 16894  	* configfsf.guess, configfsf.sub: Update to 2003-02-22.
 16895  	* config.guess: Fake a $RANDOM variable when running configfsf.guess,
 16896  	to workaround a problem on m68k NetBSD 1.4.1.
 16897  
 16898  	* mpz/fac_ui.c: Remove unused variable "z1".
 16899  
 16900  	* tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5.
 16901  
 16902  2003-03-24  Torbjorn Granlund  <tege@swox.com>
 16903  
 16904  	* randlc2x.c (randget_lc): Remove write-only variable rn.
 16905  	* mpf/eq.c: Remove write-only variable usign.
 16906  	* gen-psqr.c (main): Remove write-only variable numb_bits.
 16907  
 16908  2003-03-17  Torbjorn Granlund  <tege@swox.com>
 16909  
 16910  	* Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c.
 16911  	(libmp_la_SOURCES): Add mp_dv_tab.c.
 16912  
 16913  	* mpn/alpha/invert_limb.asm: Add a few comments.
 16914  
 16915  	* mp_dv_tab.c: New file, defining __gmp_digit_value_tab.
 16916  
 16917  	* mpz/set_str.c: Get rid of function digit_value_in_base and use table
 16918  	__gmp_digit_value_tab instead.
 16919  	* mpz/inp_str.c: Likewise.
 16920  	* mpf/set_str.c: Likewise.
 16921  	* mpbsd/min.c: Likewise.
 16922  	* mpbsd/xtom.c: Likewise.
 16923  
 16924  	* mpz/set_str.c: Allow bases <= 62.  Return error for invalid bases.
 16925  	* mpz/inp_str.c: Likewise.
 16926  	* mpf/set_str.c: Likewise.
 16927  	* mpz/out_str.c: Likewise.
 16928  	* mpz/get_str.c: Likewise.
 16929  	* mpf/get_str.c: Likewise.
 16930  
 16931  	* mpz/inp_str.c: Restructure to allocate more string space just
 16932  	before needed.
 16933  	* mpbsd/min.c: Likewise.
 16934  
 16935  	* longlong.h (__udiv_qrnnd_c): Remove redundant casts.
 16936  	(32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various
 16937  	sparc_v8 spellings.
 16938  
 16939  2003-03-17  Kevin Ryde  <kevin@swox.se>
 16940  
 16941  	* mpfr/*: Update to mpfr cvs 2003-03-17.
 16942  
 16943  2003-03-15  Kevin Ryde  <kevin@swox.se>
 16944  
 16945  	* Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
 16946  	sources, instead of a libdummy.la.
 16947  
 16948  2003-03-16  Torbjorn Granlund  <tege@swox.com>
 16949  
 16950  	* config.guess: Recognize supersparc and microsparc for *BSD systems.
 16951  	Generalize some superscalar recognition patterns.
 16952  
 16953  2003-03-14  Torbjorn Granlund  <tege@swox.com>
 16954  
 16955  	* mpn/sparc64/udiv.asm: New file.
 16956  
 16957  2003-03-13  Torbjorn Granlund  <tege@swox.com>
 16958  
 16959  	* mpn/sparc64: Table cycle counts.  Update some comments.
 16960  
 16961  	* mpn/powerpc64/divrem_1.asm: New file.
 16962  
 16963  2003-03-10  Torbjorn Granlund  <tege@swox.com>
 16964  
 16965  	* mpn/generic/mul.c (mpn_mul): Don't blindly expect
 16966  	MUL_KARATSUBA_THRESHOLD to be a constant.
 16967  
 16968  2003-03-07  Torbjorn Granlund  <tege@swox.com>
 16969  
 16970  	* mpn/generic/mul.c (mpn_mul): New operand splitting code for
 16971  	avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn.
 16972  	(MUL_BASECASE_MAX_UN): New #define, default to 500 for now.
 16973  
 16974  2003-03-07  Kevin Ryde  <kevin@swox.se>
 16975  
 16976  	* Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include.
 16977  	* gmp.texi (Build Options): Add notes on this.
 16978  	Reported by Vincent Lefèvre.
 16979  
 16980  2003-03-06  Kevin Ryde  <kevin@swox.se>
 16981  
 16982  	* configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu,
 16983  	for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which
 16984  	doesn't otherwise put the assembler in the right mode for -mcpu=ev6.
 16985  
 16986  2003-03-05  Torbjorn Granlund  <tege@swox.com>
 16987  
 16988  	* mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers.
 16989  
 16990  	* mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations,
 16991  	accumulate carries and add at the end.
 16992  	(mpz_powm): Trim tp allocation, now as redc doesn't need carry guard.
 16993  
 16994  2003-02-25  Torbjorn Granlund  <tege@swox.com>
 16995  
 16996  	* mpn/x86/pentium4/copyd.asm: Correct header comment.
 16997  
 16998  	* mpn/arm/addmul_1.asm: Correct cycle counts.
 16999  	* mpn/arm/submul_1.asm: Likewise.
 17000  
 17001  2003-02-20  Kevin Ryde  <kevin@swox.se>
 17002  
 17003  	* demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid
 17004  	infinite loop if k=0 and gcd!=1 reveals a factor.  Reported by John
 17005  	Pongsajapan.
 17006  
 17007  	* gmp.texi, fdl.texi: Update to FDL version 1.2.
 17008  
 17009  2003-02-18  Torbjorn Granlund  <tege@swox.com>
 17010  
 17011  	* mpn/arm/mul_1.asm: Fix typo introduced in last change.
 17012  
 17013  2003-02-17  Torbjorn Granlund  <tege@swox.com>
 17014  
 17015  	* mpn/ia64/gmp-mparam.h: Retune.
 17016  
 17017  	* mpn/sparc64/copyi.asm: Add some header comments.
 17018  	* mpn/sparc64/copyd.asm: Likewise.
 17019  
 17020  	* mpn/arm/mul_1.asm: Put vl operand last for umull/umlal.
 17021  	Add some header comments.
 17022  	* mpn/arm/addmul_1.asm: Rewrite.
 17023  	* mpn/arm/submul_1.asm: Rewrite.
 17024  	* mpn/arm/gmp-mparam.h: Retune.
 17025  
 17026  2003-02-16  Torbjorn Granlund  <tege@swox.com>
 17027  
 17028  	* mpn/arm/copyi.asm: New file.
 17029  	* mpn/arm/copyd.asm: New file.
 17030  
 17031  2003-02-16  Kevin Ryde  <kevin@swox.se>
 17032  
 17033  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
 17034  	byte seen on an arm system.
 17035  
 17036  2003-02-15  Torbjorn Granlund  <tege@swox.com>
 17037  
 17038  	* mpn/arm/gmp-mparam.h: Retune.
 17039  
 17040  2003-02-13  Torbjorn Granlund  <tege@swox.com>
 17041  
 17042  	* mpn/powerpc32/750/com_n.asm: Add more cycle counts.
 17043  
 17044  2003-02-13  Kevin Ryde  <kevin@swox.se>
 17045  
 17046  	* configure.in (AC_PREREQ): Bump to 2.57.
 17047  
 17048  	* configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying
 17049  	-Wa,-oldas only when necessary.
 17050  
 17051  	* configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it
 17052  	overrides options recent gcc adds for -mcpu, making generated code
 17053  	fail to assemble.
 17054  
 17055  	* tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c.
 17056  
 17057  2003-02-12  Torbjorn Granlund  <tege@swox.com>
 17058  
 17059  	* mpn/x86/pentium4/sse2/gmp-mparam.h: Retune.
 17060  	* mpn/x86/k7/gmp-mparam.h: Retune.
 17061  	* mpn/x86/k6/gmp-mparam.h: Retune.
 17062  	* mpn/x86/p6/gmp-mparam.h: Retune.
 17063  	* mpn/x86/p6/mmx/gmp-mparam.h: Retune.
 17064  
 17065  	* tests/mpz/t-mul.c (main): Rewrite FFT testing code.
 17066  
 17067  2003-02-10  Torbjorn Granlund  <tege@swox.com>
 17068  
 17069  	* config.guess: Recognize "power2" systems.
 17070  
 17071  	* mpn/powerpc64/gmp-mparam.h: Fix indentation.
 17072  	* mpn/power/gmp-mparam.h: Retune.
 17073  	* mpn/alpha/ev6/nails/gmp-mparam.h: Retune.
 17074  	* mpn/sparc64/gmp-mparam.h: Retune.
 17075  	* mpn/pa64/gmp-mparam.h: Retune.
 17076  	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
 17077  	* mpn/sparc32/v8/gmp-mparam.h: Retune.
 17078  	* mpn/mips64/gmp-mparam.h: Retune.
 17079  	* mpn/alpha/ev6/gmp-mparam.h: Retune.
 17080  	* mpn/powerpc32/gmp-mparam.h: Retune.
 17081  	* mpn/powerpc32/750/gmp-mparam.h: Retune.
 17082  	* mpn/alpha/ev5/gmp-mparam.h: Retune.
 17083  	* mpn/m68k/gmp-mparam.h: Retune.
 17084  	* mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD.
 17085  
 17086  	* configure.in: Undo this, problem doesn't happen any more:
 17087  	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
 17088  
 17089  2003-02-03  Kevin Ryde  <kevin@swox.se>
 17090  
 17091  	* gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
 17092  	around macro parameters.  Reported by Jason Moxham.
 17093  
 17094  2003-02-01  Kevin Ryde  <kevin@swox.se>
 17095  
 17096  	* gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n.
 17097  	Reported by Jason Moxham.
 17098  	(Formatted Input Strings): Correction to strtoul cross reference
 17099  	formatting.
 17100  	(BSD Compatible Functions): Add index entry for MINT.
 17101  
 17102  2003-01-29  Torbjorn Granlund  <tege@swox.com>
 17103  
 17104  	* gmp-impl.h (mpn_mul_fft): Now returns int.
 17105  
 17106  2003-01-29  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 17107  
 17108  	* mpn/generic/mul_fft.c: Major rewrite.
 17109  
 17110  2003-01-25  Kevin Ryde  <kevin@swox.se>
 17111  
 17112  	* config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr
 17113  	fails on NetBSD.
 17114  	(trap): Remove $dummy.core on abnormal termination too.
 17115  
 17116  	* mpfr/*: Update to mpfr cvs 2003-01-25.
 17117  
 17118  2003-01-24  Torbjorn Granlund  <tege@swox.com>
 17119  
 17120  	* mpn/ia64/README: Update cycle counts to match current code.
 17121  
 17122  2003-01-18  Kevin Ryde  <kevin@swox.se>
 17123  
 17124  	* mpfr/*: Update to mpfr cvs 2003-01-18.
 17125  
 17126  2003-01-17  Torbjorn Granlund  <tege@swox.com>
 17127  
 17128  	* gmp.texi: Canonicalize URLs.
 17129  
 17130  2003-01-15  Kevin Ryde  <kevin@swox.se>
 17131  
 17132  	* gmp.texi (Notes for Particular Systems): Add hardware floating point
 17133  	precision mode.
 17134  
 17135  	* mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs
 17136  	2003-01-15.
 17137  
 17138  2003-01-11  Kevin Ryde  <kevin@swox.se>
 17139  
 17140  	* mpfr/*: Update to mpfr cvs 2003-01-11.
 17141  
 17142  2003-01-09  Kevin Ryde  <kevin@swox.se>
 17143  
 17144  	* mpfr/get_str.c: Update to mpfr cvs 2003-01-09.
 17145  
 17146  	* doc/configuration: Various updates.
 17147  
 17148  2003-01-06  Torbjorn Granlund  <tege@swox.com>
 17149  
 17150  	* mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
 17151  	* mpn/alpha/copyd.asm: Likewise.
 17152  
 17153  2003-01-05  Kevin Ryde  <kevin@swox.se>
 17154  
 17155  	* demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return
 17156  	value.
 17157  
 17158  	* configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with
 17159  	libtool patch to avoid bash printf option problem when building shared
 17160  	libraries with cxx.
 17161  
 17162  	* configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since
 17163  	sse2 causes buggy code from gcc 3.2.1 and is only supported on new
 17164  	enough kernels.
 17165  
 17166  	* acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per
 17167  	report by Krzysztof Kozminski.
 17168  
 17169  	* gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r".
 17170  
 17171  	* gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast.
 17172  	(GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3,
 17173  	mpn_divmod): Use it.  Reported by Krzysztof Kozminski.
 17174  	(mpz_odd_p): No need for the outermost cast to "int".
 17175  	* tests/cxx/t-cast.cc: New file.
 17176  	* tests/cxx/Makefile.am: Add it.
 17177  
 17178  2003-01-04  Kevin Ryde  <kevin@swox.se>
 17179  
 17180  	* mpfr/set_str.c: Update to mpfr cvs 2003-01-04.
 17181  
 17182  	* demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str
 17183  	returning count of characters accepted.
 17184  
 17185  2003-01-03  Torbjorn Granlund  <tege@swox.com>
 17186  
 17187  	* mpn/alpha/copyi.asm: New file.
 17188  	* mpn/alpha/copyd.asm: New file.
 17189  
 17190  2003-01-03  Kevin Ryde  <kevin@swox.se>
 17191  
 17192  	* demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have
 17193  	changed.
 17194  
 17195  	* mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs
 17196  	2003-01-03.
 17197  
 17198  	* gmp.texi (Introduction to GMP): Mention release announcements
 17199  	mailing list, and put home page and ftp before mailing lists.
 17200  
 17201  2002-12-28  Torbjorn Granlund  <tege@swox.com>
 17202  
 17203  	* mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.
 17204  
 17205  2002-12-28  Kevin Ryde  <kevin@swox.se>
 17206  
 17207  	* acinclude.m4 (M68K_PATTERN): New macro.
 17208  	(GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends.
 17209  	* configure.in: Ditto.
 17210  
 17211  	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid
 17212  	warnings about char overflows.
 17213  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto.
 17214  
 17215  2002-12-28  Pedro Gimeno  <pggimeno@wanadoo.es>
 17216  
 17217  	* randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding.
 17218  	(randseed_mt): Add ASSERT checking result of mpz_export.
 17219  
 17220  2002-12-24  Kevin Ryde  <kevin@swox.se>
 17221  
 17222  	* gmp.texi (Integer Import and Export): Clarify treatment of signs,
 17223  	reported by Kent Boortz.
 17224  
 17225  	* randmt.c: Use gmp_uint_least32_t.
 17226  	(randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits.
 17227  
 17228  	* gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32.
 17229  	* configure.in (AC_CHECK_TYPES): Add uint_least32_t.
 17230  	(AC_CHECK_SIZEOF): Add unsigned short.
 17231  
 17232  2002-12-22  Kevin Ryde  <kevin@swox.se>
 17233  
 17234  	* gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit.
 17235  	(ULONG_PARITY) [_CRAY, __ia64]: New macros.
 17236  	* tests/t-parity.c: New test.
 17237  	* tests/Makefile.am (check_PROGRAMS): Add it.
 17238  
 17239  	* longlong.h (count_trailing_zeros) [ia64]: New macro.
 17240  
 17241  	* tests/t-count_zeros.c (check_various): Remove unused variable "n".
 17242  
 17243  	* mpn/x86/README: Revise notes on PIC, PLT and GOT.
 17244  
 17245  	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt"
 17246  	to GMP::Rand::randstate.
 17247  
 17248  2002-12-22  Pedro Gimeno  <pggimeno@wanadoo.es>
 17249  
 17250  	* randmt.c (randseed_mt): Fix bug that might cause the generator to
 17251  	return all zeros with certain seeds.  Fix WARM_UP==0 case.
 17252  	(gmp_randinit_mt): Initialize to a known state by default.
 17253  	(randget_mt): Remove check for uninitialized buffer: no longer needed.
 17254  	(recalc_buffer): Use ?: instead of two-element array.
 17255  
 17256  	* tests/rand/t-mt.c: New test.
 17257  	* tests/rand/Makefile.am (check_PROGRAMS): Add it.
 17258  
 17259  2002-12-21  Kevin Ryde  <kevin@swox.se>
 17260  
 17261  	* cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h>
 17262  	and <string.h>.  No need for <stdio.h>.
 17263  
 17264  	* demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c,
 17265  	demos/expr/exprza.c: Use mp_get_memory_functions, not
 17266  	__gmp_allocate_func etc.
 17267  	* demos/expr/t-expr.c: Don't use gmp-impl.h.
 17268  	(numberof): New macro.
 17269  
 17270  	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
 17271  	__gmp_free_func): Move declarations to gmp-impl.h
 17272  
 17273  	* mp_get_fns.c: New file.
 17274  	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
 17275  	* gmp-h.in (mp_get_memory_functions): Add prototype.
 17276  	* gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to
 17277  	"free" not "deallocate" function.
 17278  	* gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions,
 17279  	not __gmp_free_func.
 17280  
 17281  	* gmp-impl.h [__cplusplus]: Add <cstring> for strlen.
 17282  	(gmp_allocated_string): Hold length in a field.
 17283  	* cxx/osdoprnti.cc, cxx/osmpf.cc: Use this.
 17284  
 17285  2002-12-20  Torbjorn Granlund  <tege@swox.com>
 17286  
 17287  	* tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon
 17288  	failure.
 17289  
 17290  	* mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero.
 17291  
 17292  2002-12-19  Torbjorn Granlund  <tege@swox.com>
 17293  
 17294  	* mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space
 17295  	for pp temporary to allow for worst case overestimate of root.
 17296  	Add some asserts.
 17297  
 17298  	* tests/mpz/t-root.c: Generalize and speed up.
 17299  
 17300  2002-12-19  Kevin Ryde  <kevin@swox.se>
 17301  
 17302  	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test.
 17303  
 17304  	* gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard
 17305  	I/O mode.
 17306  	* gmp.texi (Notes for Particular Systems): Compaq C++ must be used in
 17307  	"standard" iostream mode.
 17308  
 17309  2002-12-18  Torbjorn Granlund  <tege@swox.com>
 17310  
 17311  	* mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing
 17312  	little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined.
 17313  
 17314  2002-12-18  Kevin Ryde  <kevin@swox.se>
 17315  
 17316  	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New
 17317  	defines in config.m4.
 17318  
 17319  2002-12-17  Torbjorn Granlund  <tege@swox.com>
 17320  
 17321  	* printf/printffuns.c (gmp_fprintf_reps): Make it actually work
 17322  	for padding > 256.
 17323  
 17324  2002-12-17  Kevin Ryde  <kevin@swox.se>
 17325  
 17326  	* tune/freq.c: Add <string.h> for memcmp.
 17327  
 17328  	* mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD.
 17329  
 17330  	* gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc.
 17331  	(Formatted Input Strings): Type "l" is for double too.  Hex floats are
 17332  	accepted for mpf_t.
 17333  	(Formatted Input Functions): Describe tightened parse rule, clarify
 17334  	return value a bit.
 17335  
 17336  	* scanf/doscan.c: Add hex floats, tighten matching to follow C99, for
 17337  	instance "0x" is no longer acceptable to "%Zi".
 17338  	Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't
 17339  	like them the same.
 17340  	* tests/misc/t-scanf.c: Update tests.
 17341  	* tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake
 17342  	decimal point.
 17343  
 17344  	* config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise
 17345  	ultrasparcs.
 17346  
 17347  	* mpfr/tests/dummy.c: New file.
 17348  	* mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it.
 17349  
 17350  2002-12-14  Kevin Ryde  <kevin@swox.se>
 17351  
 17352  	* mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz
 17353  	sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the
 17354  	ansi2knr setups right for sources in other directories.
 17355  
 17356  	* mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr.
 17357  
 17358  2002-12-13  Kevin Ryde  <kevin@swox.se>
 17359  
 17360  	* mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for
 17361  	fdl.texi in recent mpfr.
 17362  
 17363  	* configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray
 17364  	conditional AC_EGREP_CPP.
 17365  
 17366  	* configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid
 17367  	problems with new compaq "as" on OSF 5.1.
 17368  
 17369  	* mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does
 17370  	it automatically.
 17371  
 17372  	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by
 17373  	autoconf 2.57.
 17374  
 17375  	* configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of
 17376  	new mpfr using LIBOBJ.
 17377  
 17378  	* configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies
 17379  	$(top_builddir)/ansi2knr".
 17380  	* */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in.
 17381  
 17382  	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.57.
 17383  	* */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs:
 17384  	Update to automake 1.7.2.
 17385  
 17386  	* gmp.texi (Build Options): Add hppa64 to cpu types.
 17387  	(ABI and ISA): Add gcc to hppa 2.0.
 17388  	(Debugging): Add maximum debuggability config options.
 17389  	(Language Bindings): Add Arithmos, reported by Johan Vervloet.
 17390  	(Formatted Output Strings): 128 bits is about 40 digits, ll is only
 17391  	for long long not long double.
 17392  	(Formatted Input Strings): ll is only for long long not long double.
 17393  
 17394  	* mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0,
 17395  	under the rule n==c mod d iff exists q satisfying n=c+q*d.
 17396  	* gmp.texi (Integer Division): Describe this.
 17397  	Suggested by Jason Moxham.
 17398  
 17399  2002-12-13  Pedro Gimeno  <pggimeno@wanadoo.es>
 17400  
 17401  	* randlc2x.c (lc): Remove check for seedn < an, which is now
 17402  	superfluous.  Add ASSERT to ensure it's correct.  Add ASSERT to check
 17403  	precondition of __GMPN_ADD.
 17404  	(gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit
 17405  	for both seed and a.  Simplify seedn < p->_cn case.
 17406  
 17407  	* tests/rand/t-lc2exp.c (check_bigs): Test negative seeds.
 17408  
 17409  2002-12-12  Torbjorn Granlund  <tege@swox.com>
 17410  
 17411  	* mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'.
 17412  	Add empty `.callinfo'.
 17413  
 17414  2002-12-11  Torbjorn Granlund  <tege@swox.com>
 17415  
 17416  	* mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a
 17417  	label.
 17418  
 17419  2002-12-11  Kevin Ryde  <kevin@swox.se>
 17420  
 17421  	* configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0.
 17422  
 17423  	* mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend.
 17424  	* configure.in (hppa*-*-*): Use it.
 17425  
 17426  	* printf/doprnt.c: Comments on "ll" versus "L".
 17427  
 17428  	* tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones.
 17429  
 17430  2002-12-11  Torbjorn Granlund  <tege@swox.com>
 17431  
 17432  	* mpz/get_d.c (limb2dbl): New macro for conversion to `double'.
 17433  	Define it to something non-trivial for 64-bit hppa.
 17434  	* mpq/get_d.c: Likewise.
 17435  	* mpf/get_d.c: Likewise.
 17436  
 17437  	* mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l.
 17438  
 17439  2002-12-09  Kevin Ryde  <kevin@swox.se>
 17440  
 17441  	* tune/Makefile.am: Don't use -static under --disable-static, it tends
 17442  	not to work.
 17443  	* configure.in (ENABLE_STATIC): New AM_CONDITIONAL.
 17444  
 17445  	* gmp-h.in: Use <iostream> instead of <iosfwd> with Compaq C++ in
 17446  	pre-standard I/O mode.
 17447  
 17448  	* tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests.
 17449  
 17450  2002-12-08  Kevin Ryde  <kevin@swox.se>
 17451  
 17452  	* configure.in (*-*-ultrix*): Remove forcible --disable-shared,
 17453  	believe this was a generic problem with libtool, now gone.
 17454  
 17455  2002-12-08  Torbjorn Granlund  <tege@swox.com>
 17456  
 17457  	* gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation.
 17458  
 17459  2002-12-07  Torbjorn Granlund  <tege@swox.com>
 17460  
 17461  	* tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in
 17462  	mpq_cmp_ui calls.
 17463  
 17464  	* configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around
 17465  	compiler bug with mpfr/tests/tdiv.
 17466  
 17467  2002-12-07  Kevin Ryde  <kevin@swox.se>
 17468  
 17469  	* configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional.
 17470  	New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler
 17471  	support for 2.0n.
 17472  	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error
 17473  	from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions.
 17474  	(GMP_HPPA_LEVEL_20): New macro.
 17475  
 17476  2002-12-07  Pedro Gimeno  <pggimeno@wanadoo.es>
 17477  
 17478  	* gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void.
 17479  	(LIMBS_PER_ULONG, MPN_SET_UI): New macros.
 17480  	(MPZ_FAKE_UI): Rename couple of parameters.
 17481  
 17482  	* randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced
 17483  	with mpn style _cp and _cn.  All callers changed.
 17484  	(randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case.
 17485  	Remove return value.
 17486  	(gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation.
 17487  
 17488  	* randmt.c (mangle_seed): New function by Kevin.
 17489  	(randseed_mt): Use it instead of mpz_powm, for performance.  Remove
 17490  	return value.  Remove commented out code (an inferior alternative to
 17491  	mpz_export).
 17492  
 17493  	* randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI.
 17494  
 17495  	* tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests.
 17496  	* tests/rand/t-urndmm.c: Add L to constants in calls, for K&R.
 17497  
 17498  2002-12-06  Torbjorn Granlund  <tege@swox.com>
 17499  
 17500  	* configure.in: Remove -g.
 17501  	(hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0.
 17502  
 17503  2002-12-05  Torbjorn Granlund  <tege@swox.com>
 17504  
 17505  	* mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend.
 17506  	* mpn/pa64/udiv.asm: Likewise.
 17507  
 17508  2002-12-05  Kevin Ryde  <kevin@swox.se>
 17509  
 17510  	* mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to.
 17511  	* mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas
 17512  	doesn't like ".level 2.0N".
 17513  
 17514  	* configure.in (hppa*-*-*): Group path and flags choices, for clarity.
 17515  	(hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available.
 17516  	(hppa2.0*-*-*): Ditto -mpa-risc-2-0.
 17517  	(*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than
 17518  	the converse of allowing it for hpux1[1-9]; ie. list the bad systems
 17519  	rather than try to guess the good systems.
 17520  	(hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers.
 17521  	(hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or
 17522  	64-bit build of the compiler.
 17523  	(hppa64-*-*): Add this as equivalent to hppa2.0-*-*.
 17524  	* acinclude.m4 (GMP_C_TEST_SIZEOF): New macro.
 17525  
 17526  	* tests/tests.h (ostringstream::str): Must null-terminate
 17527  	ostrstream::str() for the string constructor.
 17528  
 17529  2002-12-04  Torbjorn Granlund  <tege@swox.com>
 17530  
 17531  	* mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff.
 17532  
 17533  	* longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo.
 17534  
 17535  	* mpn/powerpc32/powerpc-defs.m4: Define float registers with `f'
 17536  	prefix.
 17537  
 17538  2002-12-04  Kevin Ryde  <kevin@swox.se>
 17539  
 17540  	* gmp.texi (Floating-point Functions): Note the mantissa is binary and
 17541  	decimal fractions cannot be represented exactly.  Suggested by Serge
 17542  	Winitzki.
 17543  	(Known Build Problems): Note libtool stripping options when linking.
 17544  	Reported by Vincent Lefevre.
 17545  
 17546  	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a
 17547  	failure, that's a valid result.
 17548  	(GMP_ASM_GLOBL): Establish this from the host cpu type.
 17549  	(IA64_PATTERN): New macro.
 17550  	(GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI,
 17551  	GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created.
 17552  	* configure.in: Use IA64_PATTERN.
 17553  
 17554  2002-12-03  Torbjorn Granlund  <tege@swox.com>
 17555  
 17556  	* tune/hppa.asm: Use config.m4.
 17557  	* tune/hppa2.asm: Likewise.
 17558  	* tune/hppa2w.asm: Likewise.
 17559  
 17560  	* mpn/pa64: Use LDEF.
 17561  
 17562  2002-12-03  Kevin Ryde  <kevin@swox.se>
 17563  
 17564  	* INSTALL: Use return rather than exit in the example programs.
 17565  	Suggested by Richard Dawe.
 17566  
 17567  	* gmp.texi (Build Options): Move non-unix notes to ...
 17568  	(Notes for Particular Systems): ... here.  Mention MS Interix,
 17569  	reported by Paul Leyland.
 17570  	(C++ Interface Random Numbers): Add gmp_randinit_mt to examples.
 17571  
 17572  	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first,
 17573  	for the benefit of hppa hp-ux.
 17574  	(GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to
 17575  	construct an asm file, and in case of failure fallback on no
 17576  	underscore and a warning.
 17577  
 17578  	* longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]:
 17579  	Restrict __asm__ ctlz and cttz to __GNUC__.
 17580  
 17581  	* gen-psqr.c (HAVE_CONST, const): New macros.
 17582  
 17583  	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt.
 17584  
 17585  2002-12-02  Torbjorn Granlund  <tege@swox.com>
 17586  
 17587  	* gmp-impl.h: Split popc_limb again, combined version gives too many
 17588  	compiler warnings.
 17589  
 17590  2002-12-01  Torbjorn Granlund  <tege@swox.com>
 17591  
 17592  	* mpn/generic/gcdext.c (div1): Disable unused function.
 17593  
 17594  	* mpz/root.c: Don't include stdlib.h or longlong.h.
 17595  	* mpz/rootrem.c: Likewise.
 17596  
 17597  	* extract-dbl.c: abort => ASSERT_ALWAYS.
 17598  	* mpz/set_d.c: Likewise.
 17599  	* mpn/generic/tdiv_qr.c: Likewise.
 17600  
 17601  	* gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to
 17602  	`const void *', to match qsort spec.
 17603  
 17604  2002-12-01  Kevin Ryde  <kevin@swox.se>
 17605  
 17606  	* gmp.texi (Integer Division): Fix a couple of @math's for tex.
 17607  	Use @dots in more places.
 17608  
 17609  	* tests/cxx/t-locale.cc: Test non std::locale systems too.
 17610  	* tests/cxx/clocale.c: New file, reinstating what was localeconv.c,
 17611  	and subverting nl_langinfo too.
 17612  	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
 17613  
 17614  	* tests/tests.h (ostringstream, istringstream): Provide fakes of these
 17615  	if <sstream> not available.
 17616  	* tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove <sstream>.
 17617  	* configure.in (AC_CHECK_HEADERS) [C++]: Add <sstream>.
 17618  
 17619  2002-11-30  Torbjorn Granlund  <tege@swox.com>
 17620  
 17621  	* printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up
 17622  	compiler warnings.
 17623  
 17624  	* mpn/ia64/invert_limb.asm: Add `many' hints to return insns.
 17625  
 17626  	* mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in
 17627  	one of them.
 17628  
 17629  	* mpn/ia64/popcount.asm: Properly restore register ar.lc.
 17630  
 17631  	* longlong.h (umul_ppmm) [ia64]: Form both product parts in asm.
 17632  
 17633  	* mpz/bin_uiui.c: Cast umul_ppmm operands.
 17634  
 17635  	* scanf/doscan.c (gmpscan): Remove unused label store_get_digits.
 17636  
 17637  	* gmp-impl.h: #undef MIN and MAX before #defining.
 17638  
 17639  	* mpn/ia64/copyi.asm: Add `;' after bundle declarators.
 17640  	* mpn/ia64/copyd.asm: Likewise.
 17641  
 17642  	* mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler.
 17643  
 17644  2002-11-30  Kevin Ryde  <kevin@swox.se>
 17645  
 17646  	* configure.in (AC_CHECK_HEADERS): Add nl_types.h.
 17647  	* tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1.
 17648  
 17649  2002-11-29  Torbjorn Granlund  <tege@swox.com>
 17650  
 17651  	* tests/devel/addmul_1.c: Provide prototype for mpn_print.
 17652  	(OPS): Account for function overhead.
 17653  	* tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise.
 17654  
 17655  	* mpn/ia64/addmul_1.asm: Rewrite.
 17656  
 17657  2002-11-28  Torbjorn Granlund  <tege@swox.com>
 17658  
 17659  	* mpn/ia64/sqr_diagonal.asm: Don't allocate any registers.
 17660  
 17661  	* mpn/ia64/submul_1.asm: Adapt to Itanium 2.
 17662  
 17663  	* mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code.
 17664  
 17665  	* mpn/ia64/add_n.asm: Rewrite.
 17666  	* mpn/ia64/sub_n.asm: Rewrite.
 17667  
 17668  2002-11-28  Kevin Ryde  <kevin@swox.se>
 17669  
 17670  	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather
 17671  	than libdummy.
 17672  	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for
 17673  	x86call.asm and x86check.c rather than libdummy.
 17674  
 17675  2002-11-27  Torbjorn Granlund  <tege@swox.com>
 17676  
 17677  	* tests/mpz/t-mul.c: Implement reference Karatsuba multiplication.
 17678  	Rewrite testing scheme to run fewer really huge tests.
 17679  
 17680  2002-11-26  Torbjorn Granlund  <tege@swox.com>
 17681  
 17682  	* tests: Decrease repetition count for some of the slowest tests.
 17683  
 17684  	* mpn/ia64/divrem_1.asm: New file.
 17685  
 17686  2002-11-25  Torbjorn Granlund  <tege@swox.com>
 17687  
 17688  	* mpfr/tests/tdiv.c: Decrease number of performed tests.
 17689  
 17690  2002-11-23  Torbjorn Granlund  <tege@swox.com>
 17691  
 17692  	* mpn/ia64/mul_1.asm: Rewrite.
 17693  
 17694  2002-11-23  Kevin Ryde  <kevin@swox.se>
 17695  
 17696  	* mpn/ia64/README: Add some references.
 17697  
 17698  	* gmp.texi (Build Options): Add itanium and itanium2, mention DocBook
 17699  	and XML from makeinfo, add texinfo top level cross reference.
 17700  	(Integer Division): Try to clarify 2exp functions a bit.
 17701  	(C++ Interface Floats): Giving bad string to constructor is undefined.
 17702  	(C++ Interface Integers, C++ Interface Rationals): Ditto, and show
 17703  	default base in prototype, not the description.
 17704  
 17705  	* config.sub, config.guess, configure.in (itanium, itanium2): New cpu
 17706  	types.
 17707  
 17708  	* tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress
 17709  	%zd test on glibc prior to 2.1, it's not supported.
 17710  
 17711  2002-11-22  Torbjorn Granlund  <tege@swox.com>
 17712  
 17713  	* mpn/ia64/copyi.asm: Optimize for Itanium 2.
 17714  	* mpn/ia64/copyd.asm: Likewise.
 17715  
 17716  2002-11-20  Torbjorn Granlund  <tege@swox.com>
 17717  
 17718  	* mpn/ia64/sqr_diagonal.asm: New file.
 17719  
 17720  	* mpn/ia64/submul_1.asm: Handle vl == 0 specially.
 17721  
 17722  2002-11-20  Kevin Ryde  <kevin@swox.se>
 17723  
 17724  	* tests/cxx/t-locale.cc: Test with locales imbued into stream, use
 17725  	<sstream>, eliminated some C-isms.  istream tests disabled, not yet
 17726  	locale-ized.
 17727  	* tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c.
 17728  	* tests/cxx/localeconv.c: Remove file.
 17729  
 17730  	* configure.in (AC_CHECK_TYPES) [C++]: Add std::locale.
 17731  	* printf/doprntf.c: Add decimal point parameter, remove localeconv use.
 17732  	* gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to
 17733  	__gmp_doprnt_mpf2 to protect old libgmpxx.
 17734  	* cxx/osmpf.cc: Use this with ostream locale decimal_point facet.
 17735  	* printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT.
 17736  
 17737  	* gmp-h.in: More comments on __declspec for windows DLLs.
 17738  
 17739  	* mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for
 17740  	decimal point string, same as input chars.
 17741  
 17742  	* configure.in (AC_CHECK_HEADERS): Add langinfo.h.
 17743  	(AC_CHECK_FUNCS): Add nl_langinfo.
 17744  	* gmp-impl.h (GMP_DECIMAL_POINT): New macro.
 17745  	* mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't
 17746  	bother with special code for non-locale systems.
 17747  	* tests/misc/t-locale.c: Subvert nl_langinfo too.
 17748  
 17749  	* configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro.
 17750  	* mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting
 17751  	extra underscore for OpenBSD.
 17752  	* mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes.
 17753  	Reported by Christian Weisgerber.
 17754  
 17755  	* tests/cxx/t-rand.cc (check_randinit): New function, collecting up
 17756  	constructor tests.
 17757  
 17758  	* tests/cxx/t-ostream.cc: Use <sstream> instead of <strstream>, use
 17759  	compare instead of strcmp.
 17760  
 17761  	* gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int.
 17762  
 17763  2002-11-18  Kevin Ryde  <kevin@swox.se>
 17764  
 17765  	* tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by
 17766  	Torbjorn.
 17767  
 17768  2002-11-19  Torbjorn Granlund  <tege@swox.com>
 17769  
 17770  	* mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code.
 17771  	Streamline prologue.
 17772  	* mpn/ia64/addmul_1.asm: Likewise.
 17773  	* mpn/ia64/submul_1.asm: New file.
 17774  	* mpn/ia64/submul_1.c: Remove.
 17775  
 17776  2002-11-17  Torbjorn Granlund  <tege@swox.com>
 17777  
 17778  	* mpn/generic/popham.c: New file, using new faster algorithm.
 17779  	* mpn/generic/popcount.c: Remove.
 17780  	* mpn/generic/hamdist.c: Remove.
 17781  
 17782  	* mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16.
 17783  	* mpn/ia64/mul_1.asm: Likewise.
 17784  
 17785  	* mpn/ia64/addmul_1.asm: Add pred.rel declarations.  Resolve RAW
 17786  	hazards for condition code registers, duplicating code as needed.  Add
 17787  	prediction to all branches.
 17788  	* mpn/ia64/mul_1.asm: Likewise.
 17789  	* mpn/ia64/add_n.asm: Likewise.
 17790  	* mpn/ia64/sub_n.asm: Likewise.
 17791  	* mpn/ia64/copyi.asm: Likewise.
 17792  	* mpn/ia64/copyd.asm: Likewise.
 17793  
 17794  	* mpn/generic/random2.c: Add a cast to silence some compilers.
 17795  
 17796  2002-11-16  Torbjorn Granlund  <tege@swox.com>
 17797  
 17798  	* mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed
 17799  	values).
 17800  
 17801  2002-11-16  Kevin Ryde  <kevin@swox.se>
 17802  
 17803  	* configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and
 17804  	is unlikely to ever do so.
 17805  	* configure.in: Allow ABI=32 for powerpc64.
 17806  	Reported by David Edelsohn.
 17807  
 17808  2002-11-14  Kevin Ryde  <kevin@swox.se>
 17809  
 17810  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c
 17811  	addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c.
 17812  
 17813  	* gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
 17814  	Use __dllexport__ and __dllimport__ to keep out of application
 17815  	namespace.
 17816  
 17817  2002-11-14  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 17818  
 17819  	* gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t,
 17820  	__gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for
 17821  	the benefit of g++ prior to 3.2.
 17822  
 17823  2002-11-12  Kevin Ryde  <kevin@swox.se>
 17824  
 17825  	* gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to
 17826  	use extern "C" on C function pointer arguments.
 17827  
 17828  2002-11-09  Kevin Ryde  <kevin@swox.se>
 17829  
 17830  	* configure.in, Makefile.am, printf/Makefile.am,
 17831  	printf/repl-vsnprintf.c: Handle vsnprintf replacement with C
 17832  	conditionals.
 17833  
 17834  	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent
 17835  	HP cc +O3 causes for AC_CHECK_FUNCS.
 17836  
 17837  	* gmp.texi (Notes for Particular Systems): Add Sparc app regs.
 17838  	(Debugging): Note gcc -fstack options to detect overflow.
 17839  	(Formatted Output Strings, Formatted Input Strings): Format strings
 17840  	are not multibyte.
 17841  
 17842  2002-11-06  Torbjorn Granlund  <tege@swox.com>
 17843  
 17844  	* mpn/generic/tdiv_qr.c: Remove a bogus assert.
 17845  
 17846  2002-11-05  Torbjorn Granlund  <tege@swox.com>
 17847  
 17848  	* mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls.
 17849  
 17850  2002-11-04  Kevin Ryde  <kevin@swox.se>
 17851  
 17852  	* acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++.
 17853  
 17854  	* demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h.
 17855  
 17856  	* mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c,
 17857  	scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c,
 17858  	demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c,
 17859  	demos/expr/exprz.c, demos/expr/exprza.c: Add <string.h> for strlen and
 17860  	memcpy.
 17861  
 17862  2002-11-02  Kevin Ryde  <kevin@swox.se>
 17863  
 17864  	* longlong.h: Test __x86_64__ not __x86_64.  Reported by Andreas
 17865  	Jaeger.
 17866  
 17867  	* mpz/import.c, mpz/export.c: Use char* subtract from NULL to get
 17868  	pointer alignment, for the benefit of Cray vector systems.
 17869  
 17870  	* cxx/ismpf.cc: Use <clocale>.
 17871  	* tests/cxx/t-locale.cc: No need to conditionalize <clocale>.
 17872  
 17873  	* scanf/doscan.c: Don't use isascii, rely on C99 ctype.h.
 17874  
 17875  	* gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference
 17876  	texinfo manual.
 17877  	(ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD
 17878  	and OpenBSD sparc64.
 17879  	(Notes for Package Builds): Cross reference libtool manual.
 17880  	(Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas.
 17881  	(Known Build Problems): Add MacOS X C++ shared libraries.
 17882  
 17883  2002-10-31  Kevin Ryde  <kevin@swox.se>
 17884  
 17885  	* gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
 17886  	tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5,
 17887  	mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring.
 17888  	* configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5,
 17889  	HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7,
 17890  	HAVE_NATIVE_mpn_addmul_8.
 17891  	(gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8.
 17892  
 17893  	* tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h
 17894  	(try_one): Do dest setups after sources, for benefit of
 17895  	dst0_from_src1.
 17896  
 17897  2002-11-01  Torbjorn Granlund  <tege@swox.com>
 17898  
 17899  	* mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for
 17900  	sub-division when numerator is more than twice the size of the
 17901  	denominator.  Simplify loop logic for the same case.  Clean up a
 17902  	few comments.
 17903  
 17904  2002-10-29  Torbjorn Granlund  <tege@swox.com>
 17905  
 17906  	* configure.in (*-cray-unicos*): Pass -hnofastmd again.
 17907  
 17908  2002-10-25  Torbjorn Granlund  <tege@swox.com>
 17909  
 17910  	* tests/tadd.c: Disable test of denorms.
 17911  
 17912  2002-10-23  Linus Nordberg  <linus@swox.se>
 17913  
 17914  	* gmp.texi (Introduction to GMP): Update section about mailing
 17915  	lists.
 17916  
 17917  2002-10-23  Kevin Ryde  <kevin@swox.se>
 17918  
 17919  	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when
 17920  	__GMP_NO_ATTRIBUTE_CONST_PURE is defined.
 17921  	* gmp-impl.h (ATTRIBUTE_CONST): Ditto.
 17922  	* tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE.
 17923  
 17924  	* tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes.
 17925  	* tune/speed.h: Remove various "dummy" variables attempting to keep
 17926  	"pure" calls live, no longer necessary.  They weren't sufficient for
 17927  	recent MacOS cc anyway.
 17928  
 17929  2002-10-21  Torbjorn Granlund  <tege@swox.com>
 17930  
 17931  	* mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c.
 17932  	* mpn/cray/ieee/submul_1.c: Likewise.
 17933  
 17934  2002-10-19  Kevin Ryde  <kevin@swox.se>
 17935  
 17936  	* configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and
 17937  	OpenBSD sparc64.  Reported by Christian Weisgerber.
 17938  	(AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD.
 17939  
 17940  	* demos/calc/calc.y: Change ={ to {, needed for bison 1.50.
 17941  
 17942  	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]:
 17943  	Should be UDItype.
 17944  
 17945  	* mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast
 17946  	chars through "unsigned char" to zero extend, required by C99 ctype.h.
 17947  
 17948  2002-10-18  Torbjorn Granlund  <tege@swox.com>
 17949  
 17950  	* tests/mpz/t-root.c: Test also mpz_rootrem.
 17951  
 17952  	* mpn/generic/rootrem.c: Avoid overflow problem when n is huge.
 17953  
 17954  	* mpz/root.c: Avoid overflow problems in allocation computation; also
 17955  	simplify it.  Misc cleanups.
 17956  
 17957  	* mpz/rootrem.c: New file.
 17958  	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
 17959  
 17960  2002-10-17  Torbjorn Granlund  <tege@swox.com>
 17961  
 17962  	* gmp-impl.h (popc_limb): Combine variants.
 17963  
 17964  2002-10-14  Kevin Ryde  <kevin@swox.se>
 17965  
 17966  	* configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h
 17967  	test, needed by SunOS, and next autoconf will insist headers actually
 17968  	compile.
 17969  
 17970  2002-10-08  Kevin Ryde  <kevin@swox.se>
 17971  
 17972  	* tune/time.c (speed_time_init): Allow for Cray times() apparently
 17973  	being a cycle counter.
 17974  
 17975  	* dumbmp.c (mpz_get_str): Fix buf size allocation.
 17976  
 17977  	* tests/trace.c, tests/tests.h (mp_limb_trace): New function.
 17978  
 17979  	* tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO.
 17980  	* tests/devel/try.c (malloc_region): Add a cast for SunOS cc.
 17981  
 17982  	* configure.in (AC_CHECK_FUNCS): Add strerror.
 17983  	(AC_CHECK_DECLS): Add sys_errlist, sys_nerr.
 17984  	* tune/time.c, tests/devel/try.c: Use them.
 17985  
 17986  2002-10-05  Kevin Ryde  <kevin@swox.se>
 17987  
 17988  	* configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc.
 17989  	* printf/repl-vsnprintf.c: Use this.
 17990  
 17991  	* configure.in (*sparc*-*-*): Collect up various options for clarity,
 17992  	use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use
 17993  	-xtarget=native, use cc configs with acc, merge SunOS bundled cc and
 17994  	SunPRO cc configs.
 17995  
 17996  	* gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO.
 17997  	(MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the
 17998  	benefit of SunOS cc which requires pointers of the same type on the
 17999  	two legs of a ?:.
 18000  
 18001  	* dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc.
 18002  
 18003  	* acinclude.m4: Allow for i960 b.out default cc output.
 18004  
 18005  	* gmp.texi (Random State Initialization): Add gmp_randinit_mt.
 18006  	(Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use.
 18007  	(Factorial Algorithm): Describe Jason's new code.
 18008  	(Binomial Coefficients Algorithm): Ideas about improvements
 18009  	moved to doc/projects.html.
 18010  	(Contributors): Add Jason Moxham and Pedro Gimeno.
 18011  
 18012  2002-10-03  Kevin Ryde  <kevin@swox.se>
 18013  
 18014  	* gen-psqr.c: New file.
 18015  	* Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h.
 18016  	* mpn/generic/perfsqr.c: Use generated data, put mod 256 data into
 18017  	limbs to save space, use mpn_mod_34lsub1 when good.
 18018  	* tests/mpn/t-perfsqr.c: New file.
 18019  	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
 18020  	* tests/mpz/t-perfsqr.c (check_modulo): New test.
 18021  	(check_sqrt): New function holding current tests.
 18022  
 18023  	* configure.in (AC_INIT): Modernize to package name and version here
 18024  	rather than AM_INIT_AUTOMAKE, add bug report email.
 18025  	(AC_CONFIG_SRCDIR): New macro.
 18026  
 18027  	* gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not
 18028  	normal in current uses), clarify the comments a bit.
 18029  
 18030  2002-09-30  Kevin Ryde  <kevin@swox.se>
 18031  
 18032  	* mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC,
 18033  	same as .S.lo and .asm.lo.
 18034  
 18035  	* Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in
 18036  	test -f stuff to avoid Sun make rewriting them.
 18037  
 18038  2002-09-28  Kevin Ryde  <kevin@swox.se>
 18039  
 18040  	* tests/devel/try.c, tune/speed.c: Avoid strings longer than C99
 18041  	guarantees.
 18042  
 18043  	* tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize,
 18044  	refmpn_sqrtrem): New functions.
 18045  	* tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem.
 18046  	(compare): Correction to tr->dst_size subscripting.
 18047  
 18048  	* dumbmp.c: Add several new functions, allow for initial n<d in
 18049  	mpz_tdiv_q (now in mpz_tdiv_qr actually).
 18050  
 18051  	* gen-bases.c (chars_per_limb): Get GMP_NUMB_BITS for base==2,
 18052  	similarly other powers of 2, which this was in the past.
 18053  	* tests/refmpn.c (refmpn_chars_per_limb): Ditto.
 18054  	* tests/mpn/t-mp_bases.c: Test chars_per_limb for power-of-2 bases too.
 18055  
 18056  	* Makefile.am, mpz/Makefile.am: Setups for gen-fac_ui.c generating
 18057  	mpz/fac_ui.h.
 18058  
 18059  2002-09-28  Jason Moxham <J.L.Moxham@maths.soton.ac.uk>
 18060  
 18061  	* dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions.
 18062  	* gen-fac_ui.c: New file.
 18063  	* mpz/fac_ui.c: Rewrite.
 18064  
 18065  2002-09-26  Kevin Ryde  <kevin@swox.se>
 18066  
 18067  	* tests/cxx/localeconv.c: New file, split from t-locale.cc.
 18068  	* tests/cxx/t-locale.cc: Use it.
 18069  	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
 18070  
 18071  	* tests/cxx/Makefile.am: Updates for Gerardo's new test programs.
 18072  
 18073  2002-09-26  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18074  
 18075  	* gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and
 18076  	double/mpfr comparisons.
 18077  
 18078  	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc,
 18079  	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various
 18080  	tests, including some for mpfr, some split from t-expr.cc.
 18081  	* tests/cxx/t-locale.cc: Modernize include files.
 18082  	* tests/cxx/t-ostream.cc: Modernize include files, use cout rather
 18083  	than printf for diagnostics.
 18084  	* tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from
 18085  	t-allfuns.cc.
 18086  	* tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc.
 18087  	* tests/cxx/t-prec.cc: New file.
 18088  	* tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files.
 18089  
 18090  2002-09-25  Torbjorn Granlund  <tege@swox.com>
 18091  
 18092  	* configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much
 18093  	performance loss.  Let's trust Cray to fix their compilers.
 18094  
 18095  2002-09-24  Torbjorn Granlund  <tege@swox.com>
 18096  
 18097  	* mpn/powerpc32/add_n.asm: Rewrite.
 18098  	* mpn/powerpc32/sub_n.asm: Rewrite.
 18099  
 18100  2002-09-24  Pedro Gimeno  <pggimeno@wanadoo.es>
 18101  
 18102  	* randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t,
 18103  	make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons
 18104  	for mpn_mul.
 18105  	* gmp-impl.h (MPZ_FAKE_UI): New macro.
 18106  
 18107  	* randmt.c: Some constants made long for K&R compliance; remove UL at
 18108  	the end of other constants; use mp_size_t where appropriate; use
 18109  	mpz_export to split the seed.
 18110  
 18111  	* gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow
 18112  	them to be used as lvalues.
 18113  	* randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed.
 18114  
 18115  	* mpz/urandomm.c: Replace mpn_cmp with MPN_CMP.
 18116  
 18117  	* tests/rand/gen.c: Get rid of gmp_errno.
 18118  
 18119  2002-09-24  Kevin Ryde  <kevin@swox.se>
 18120  
 18121  	* gmp.texi (Custom Allocation): Keep allocate_function etc out of the
 18122  	function index by using @deftypevr.
 18123  	More index entries.
 18124  
 18125  2002-09-24  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18126  
 18127  	* gmpxx.h (mpfr_class constructors from strings): Precision was set
 18128  	incorrectly, fixed.
 18129  
 18130  2002-09-23  Torbjorn Granlund  <tege@swox.com>
 18131  
 18132  	* mpf/urandomb.c: Don't crash for overlarge nbits argument.
 18133  	Let nbits==0 mean to fill number with random bits.
 18134  
 18135  2002-09-21  Torbjorn Granlund  <tege@swox.com>
 18136  
 18137  	* mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction.
 18138  
 18139  2002-09-20  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18140  
 18141  	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken
 18142  	mpq/double functions.
 18143  
 18144  2002-09-18  Torbjorn Granlund  <tege@swox.com>
 18145  
 18146  	* randmt.c (randget_mt): Fix typo.
 18147  
 18148  2002-09-18  Kevin Ryde  <kevin@swox.se>
 18149  
 18150  	* gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for
 18151  	the benefit places calling it with RANDS.
 18152  
 18153  	* randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety.
 18154  
 18155  	* tune/tuneup.c (sqr_karatsuba_threshold): Initialize to
 18156  	TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization.
 18157  
 18158  	* gmp.texi (Integer Comparisons): Remove mention of non-existent
 18159  	mpz_cmpabs_si, reported by Conrad Curry.
 18160  
 18161  	* tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed,
 18162  	gmp_randseed_ui and mpz_urandomb.
 18163  
 18164  2002-09-18  Pedro Gimeno  <pggimeno@wanadoo.es>
 18165  
 18166  	* tests/rand/gen.c: Add mt, remove lc and bbs.
 18167  
 18168  	* Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and
 18169  	randraw.c.
 18170  
 18171  	* randmt.c: New file.
 18172  	* gmp-h.in (gmp_randinit_mt): Add prototype.
 18173  	* randdef.c: Use gmp_randinit_mt.
 18174  
 18175  	* gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros.
 18176  	(gmp_randfnptr_t): New structure.
 18177  	(_gmp_rand): Now a macro not a function.
 18178  	* gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c.
 18179  	(__gmp_randstate_struct): Revise comments on field usage.
 18180  	* randsd.c, randclr.c: Use function pointer scheme.
 18181  	* randsdui.c: Use gmp_randseed.
 18182  	* randraw.c: Remove file.
 18183  	* randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c
 18184  	and randraw.c, use function pointer scheme, integrate seed==0/a==0
 18185  	into main case and fix case where bits(a) < m2exp.
 18186  
 18187  	* randlc.c: Remove file, never documented and never worked.
 18188  	* gmp-h.in (gmp_randinit_lc): Remove prototype.
 18189  
 18190  2002-09-16  Torbjorn Granlund  <tege@swox.com>
 18191  
 18192  	* mpn/alpha/mod_34lsub1.asm: New file.
 18193  
 18194  2002-09-16  Kevin Ryde  <kevin@swox.se>
 18195  
 18196  	* configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not
 18197  	currently used, and #define restrict upsets Microsoft C headers on
 18198  	win64.  Reported by David Librik.
 18199  
 18200  	* configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some
 18201  	unnecessary -march=i486 fallbacks.
 18202  
 18203  	* gmp.texi (Notes for Particular Systems): Note cl /MD is required for
 18204  	Microsoft C and MINGW to cooperate on I/O.  Explained by David Librik.
 18205  	(Language Bindings): Add linbox.
 18206  	* gmp.texi (Language Bindings):
 18207  
 18208  2002-09-12  Kevin Ryde  <kevin@swox.se>
 18209  
 18210  	* mpz/aorsmul_i.c: Allow for w==x overlap with nails.  Test
 18211  	BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0.
 18212  	* tests/mpz/t-aorsmul.c: Test this.
 18213  
 18214  	* tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0
 18215  	* tune/speed.c: Add mpn_mod_34lsub1.
 18216  
 18217  2002-09-10  Pedro Gimeno  <pggimeno@wanadoo.es>
 18218  
 18219  	* rand.c: Remove old disabled BBS code.
 18220  	* mpf/urandomb.c: Use BITS_TO_LIMBS.
 18221  
 18222  2002-09-10  Kevin Ryde  <kevin@swox.se>
 18223  
 18224  	* gmp.texi (Multiplication Algorithms): FFT is now enabled by default.
 18225  
 18226  2002-09-10  Pedro Gimeno  <pggimeno@wanadoo.es>
 18227  
 18228  	* mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if
 18229  	_gmp_rand forever returns all "1" bits.
 18230  	* tests/rand/t-urndmm.c: New file
 18231  	* tests/rand/Makefile.am (check_PROGRAMS): Add it.
 18232  
 18233  	* gmp-impl.h (BITS_TO_LIMBS): New macro.
 18234  	* mpz/urandomb.c: Use it, and use MPZ_REALLOC.
 18235  
 18236  2002-09-08  Kevin Ryde  <kevin@swox.se>
 18237  
 18238  	* acinclude.m4 (GMP_GCC_WA_MCPU): New macro.
 18239  	* configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't
 18240  	new enough to know ev67.  Reported by David Bremner.
 18241  
 18242  2002-07-30  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18243  
 18244  	* gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead.
 18245  	(__gmp_expr): Reorganise specializations, use __gmp_expr<T,T> not
 18246  	mpz_class etc.
 18247  	(mpfr evals): Remove mode parameter, was always
 18248  	__gmp_default_rounding_mode anyway.
 18249  
 18250  2002-09-07  Kevin Ryde  <kevin@swox.se>
 18251  
 18252  	* gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of
 18253  	applications using gcc -Wundef.
 18254  
 18255  	* longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas,
 18256  	since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67
 18257  	and ev68 which don't need it.  Reported by David Bremner.
 18258  
 18259  	* gmp.texi (Demonstration Programs): New section, expanding on what
 18260  	was under "Build Options".
 18261  	(Converting Floats): Don't need \ for _ in @var within @math.
 18262  	Add and amend various index entries.
 18263  
 18264  	* demos/qcn.c: Add -p prime limit option.
 18265  
 18266  2002-08-30  Kevin Ryde  <kevin@swox.se>
 18267  
 18268  	* mpz/pprime_p.c: Handle small negatives with isprime, in particular
 18269  	must do so for n==-2.
 18270  	* tests/mpz/t-pprime_p.c: New file.
 18271  	* tests/mpz/Makefile.am: Add it.
 18272  
 18273  2002-08-26  Torbjorn Granlund  <tege@swox.com>
 18274  
 18275  	* gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs,
 18276  	reported by Paul Zimmermann.
 18277  
 18278  2002-08-26  Kevin Ryde  <kevin@swox.se>
 18279  
 18280  	* configure.in: Echo the ABI being tried for the compilers.
 18281  	(powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too.
 18282  	(AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c.
 18283  
 18284  2002-08-24  Kevin Ryde  <kevin@swox.se>
 18285  
 18286  	* configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_):
 18287  	Setup templates for these using AH_VERBATIM rather than acconfig.h,
 18288  	preferred by latest autoconf.  Prune lists to just things used.
 18289  	* acconfig.h: Remove file.
 18290  
 18291  	* mpn/powerpc32/mode1o.asm: Forgot ASM_START.
 18292  
 18293  	* tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid
 18294  	confusion with autoconf outputs, and turn it into a "const" variable.
 18295  
 18296  2002-08-23  Torbjorn Granlund  <tege@swox.com>
 18297  
 18298  	* configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on
 18299  	ABI, not configuration triple.
 18300  
 18301  	* mpz/pprime_p.c: Partially undo last change--handle small and
 18302  	negative numbers in the same test.
 18303  
 18304  2002-08-22  Kevin Ryde  <kevin@swox.se>
 18305  
 18306  	* gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note
 18307  	mpn/generic/mul_fft.c is not nails-capable, and don't bother setting
 18308  	other FFT data for nails.
 18309  
 18310  	* configfsf.guess: Update to 2002-08-19.
 18311  	* configfsf.sub: Update to 2002-08-20.
 18312  
 18313  	* config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL
 18314  	message on AIX.
 18315  
 18316  2002-08-20  Kevin Ryde  <kevin@swox.se>
 18317  
 18318  	* gmp.texi (Build Options): Add ia64 under cpu types.
 18319  	(ABI and ISA): Describe IRIX 6 ABI=o32.
 18320  	(Notes for Particular Systems): Remove -march=pentiumpro, now ok.
 18321  	(Known Build Problems): Binutils 2.12 is ok for libgmp.a.
 18322  	(Emacs): New section.
 18323  	(Language Bindings): Update MLton URL, reported by Stephen Weeks.
 18324  	(Prime Testing Algorithm): New section.
 18325  	Don't put a blank line after @item in @table since it can make a page
 18326  	break between the heading and the entry.
 18327  	Misc tweaks elsewhere, in particular more index entries.
 18328  
 18329  	* mpz/millerrabin.c: Need x to be size+1 for change to urandomm.
 18330  
 18331  	* gmp-impl.h: Comments on the use of __GMP_DECLSPEC.
 18332  
 18333  	* tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the
 18334  	benefit of mingw.
 18335  
 18336  	* tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb):
 18337  	Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB.
 18338  
 18339  2002-08-17  Kevin Ryde  <kevin@swox.se>
 18340  
 18341  	* mpn/powerpc32/mode1o.asm: New file.
 18342  	* configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro.
 18343  	* mpn/asm-defs.m4: Use it to help setting up PIC.
 18344  
 18345  	* configure.in (AC_PREREQ): Bump to 2.53.
 18346  
 18347  	* mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro.
 18348  	(PROLOGUE_cpu): New macro, giving ALIGN(4) not 8.
 18349  
 18350  2002-08-16  Torbjorn Granlund  <tege@swox.com>
 18351  
 18352  	* mpn/m68k/lshift.asm: Fix typo in !scale_available_p code.
 18353  	* mpn/m68k/rshift.asm: Likewise.
 18354  
 18355  2002-08-16  Kevin Ryde  <kevin@swox.se>
 18356  
 18357  	* configure.in (--enable-profiling=instrument): New option.
 18358  	* gmp.texi (Profiling): Describe it.
 18359  	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal):
 18360  	Add support.
 18361  	(call_mcount): Share PIC setups with call_instrument.
 18362  	* mpn/x86/*.asm: Use ret_internal.
 18363  	* mpn/asm-defs.m4 (m4_unquote): New macro.
 18364  	* tests/mpn/t-instrument.c: New file.
 18365  	* tests/mpn/Makefile.am: Add it.
 18366  
 18367  	* mpn/alpha/umul.asm: Add ASM_END.
 18368  
 18369  2002-08-12  Kevin Ryde  <kevin@swox.se>
 18370  
 18371  	* mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than
 18372  	using mpz_init etc.
 18373  
 18374  	* mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x,
 18375  	reported by Jason Moxham.  Exclude x==n-1, ie. -1 mod n.  Use
 18376  	gmp_randinit_default.
 18377  
 18378  	* mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos.
 18379  
 18380  	* tests/devel/try.c: Add mpn_copyi and mpn_copyd.
 18381  
 18382  2002-08-09  Kevin Ryde  <kevin@swox.se>
 18383  
 18384  	* Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp
 18385  	from MOSTLYCLEANFILES, automake does these itself now.
 18386  
 18387  	* */Makefile.in, aclocal.m4, configure, install-sh, missing,
 18388  	mkinstalldirs: Update to automake 1.6.3.
 18389  
 18390  	* mpn/ia64/README: Some notes on assembler syntax.
 18391  
 18392  	* mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body.
 18393  	* mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm,
 18394  	mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant
 18395  	instruction.
 18396  	* mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr.
 18397  	* mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position.
 18398  	* mpn/ia64/lorrshift.asm: Add .prologue stuff.
 18399  
 18400  	* configure.in (*-*-unicos*): Remove forcible --disable-shared,
 18401  	libtool gets this right itself now.
 18402  
 18403  2002-08-07  Kevin Ryde  <kevin@swox.se>
 18404  
 18405  	* mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from
 18406  	mpn/x86/pentium/mmx/popham.asm.
 18407  	* mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain
 18408  	mpn/x86/pentium/popcount.asm for the popcount.
 18409  
 18410  	* mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm.
 18411  	* configure.in (alpha*-*-*): Add umul to extra_functions.
 18412  
 18413  	* mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO.
 18414  
 18415  2002-08-05  Torbjorn Granlund  <tege@swox.com>
 18416  
 18417  	* acconfig.h: Remove spurious undefs for mpn_divrem_newton and
 18418  	mpn_divrem_classic.
 18419  
 18420  2002-08-05  Kevin Ryde  <kevin@swox.se>
 18421  
 18422  	* tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c,
 18423  	tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c,
 18424  	tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c,
 18425  	tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More
 18426  	care with long and mp_size_t parameters, for the benefit of K&R.
 18427  
 18428  	* demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm,
 18429  	demos/perl/test.pl: Add mpz_import and mpz_export.
 18430  	* demos/perl/GMP.pm: Remove "preliminary" warning.
 18431  
 18432  	* mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to
 18433  	pick up m4 defines etc.
 18434  
 18435  	* Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here,
 18436  	not libgmpxx_la_LIBADD, for the benefit of "make -j2".
 18437  
 18438  	* mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not
 18439  	optimal and might not be sufficient, but seems to work.
 18440  
 18441  2002-08-03  Kevin Ryde  <kevin@swox.se>
 18442  
 18443  	* gmp.texi (Profiling): Use a table and expand for clarity.
 18444  	(Integer Special Functions): New section for mpz_array_init,
 18445  	_mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use.
 18446  
 18447  	* configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared,
 18448  	libtool gets this right itself now.
 18449  
 18450  2002-07-30  Kevin Ryde  <kevin@swox.se>
 18451  
 18452  	* mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr,
 18453  	and make final stwu into an stw.
 18454  
 18455  	* gmp.texi (Known Build Problems): An easier workaround for DESTDIR,
 18456  	using LD_LIBRARY_PATH.
 18457  	(C++ Interface MPFR): Remove mpfrxx.h.
 18458  
 18459  	* mpfrxx.h: Remove file.
 18460  	* Makefile.am: Remove mpfrxx.h.
 18461  	* tests/cxx/Makefile.am: Add Gerardo's new test programs.
 18462  
 18463  2002-07-30  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18464  
 18465  	* gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc.  Reorganise some
 18466  	macros for maintainability.  Merge mpfrxx.h.
 18467  	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates.
 18468  	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc,
 18469  	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files.
 18470  
 18471  2002-07-27  Kevin Ryde  <kevin@swox.se>
 18472  
 18473  	* longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use
 18474  	__builtin_ffs for now, doesn't seem to work.
 18475  
 18476  	* configure.in: Establish CONFIG_SHELL to avoid a problem with
 18477  	AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*.
 18478  
 18479  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to
 18480  	mpn_gcd_finda go dead.
 18481  
 18482  	* mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs.
 18483  
 18484  2002-07-24  Kevin Ryde  <kevin@swox.se>
 18485  
 18486  	* demos/primes.c: Use __GMP_PROTO and don't use signed, for the
 18487  	benefit of K&R.
 18488  
 18489  	* demos/calc/calclex.l: Add <string.h> for strcmp.
 18490  
 18491  	* mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux*
 18492  	and should be standard, rather than worrying about RODATA.
 18493  
 18494  	* gmp.texi (Function Classes): Add cross references.
 18495  	(Integer Import and Export): Fix return value grouping.
 18496  
 18497  	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for
 18498  	ia64.  Add notes on what the various styles are for.
 18499  
 18500  	* mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not
 18501  	to kill text on the same line.
 18502  	(EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro
 18503  	expansion in the rest of the EPILOGUE line.
 18504  
 18505  2002-07-21  Kevin Ryde  <kevin@swox.se>
 18506  
 18507  	* tune/speed.h: Fix some missing _PROTOs.
 18508  
 18509  	* Makefile.am (DISTCLEANFILES): Add configure.lineno.
 18510  
 18511  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define
 18512  	HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in
 18513  	config.m4 too.
 18514  	* mpn/ia64/invert_limb.asm: Add big-endian data.
 18515  
 18516  	* tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type.
 18517  
 18518  2002-07-20  Kevin Ryde  <kevin@swox.se>
 18519  
 18520  	* mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c:
 18521  	More care with long and mp_size_t parameters, for the benefit of K&R.
 18522  
 18523  	* gmp-impl.h (invert_limb): Use parens around macro arguments.
 18524  	(mpn_invert_limb): Give prototype and define unconditionally.
 18525  
 18526  	* gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New
 18527  	macros.
 18528  	* mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go
 18529  	dead when not wanted.
 18530  
 18531  2002-07-17  Kevin Ryde  <kevin@swox.se>
 18532  
 18533  	* tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are
 18534  	that type, for the benefit of hpux ia64 bundled cc ABI=64.
 18535  
 18536  	* configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get
 18537  	the right headers for ansi2knr.
 18538  
 18539  	* acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS
 18540  	with $CCAS and when linking, as done by the makefiles.
 18541  	(GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics.
 18542  
 18543  	* gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*.
 18544  	(GMP_UINT32): New define, 32 bit type for ieee_double_extract.
 18545  	* configure.in: Add AC_CHECK_SIZEOF unsigned.
 18546  	* configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove.
 18547  	(GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here.
 18548  
 18549  	* configure.in, acinclude.m4 (GMP_C_SIZES): Remove.
 18550  	* acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this
 18551  	scheme, not required.
 18552  	* configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for
 18553  	these unconditionally, check mp_limb_t against gmp-mparam.h values.
 18554  	* gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on
 18555  	SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h.
 18556  	(BITS_PER_ULONG): Define here now.
 18557  
 18558  	* gmp.texi (ABI and ISA): Add HP-UX IA-64 choices.
 18559  	(Random State Initialization): Typo in m2exp described for
 18560  	gmp_randinit_lc_2exp_size.
 18561  	(Formatted Output Functions): Clarify gmp_obstack_printf a bit.
 18562  	(Formatted Input Strings): Typo in %n summary.
 18563  
 18564  	* mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since
 18565  	endianness detection is now cross-compile friendly.
 18566  	* mpz/out_raw.c (HTON_LIMB_STORE): Ditto.
 18567  
 18568  	* mpz/fib_ui.c: Nailify.
 18569  	* mpz/random.c: Nailify.
 18570  
 18571  	* mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent
 18572  	float rounding gremlin on powerpc.
 18573  
 18574  2002-07-15  Kevin Ryde  <kevin@swox.se>
 18575  
 18576  	* Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64
 18577  	make doesn't like that.
 18578  
 18579  	* mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after
 18580  	.mib etc, for the benefit of hpux.
 18581  
 18582  	* configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for
 18583  	consistency.
 18584  
 18585  	* gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1.
 18586  	Reported by nix@esperi.demon.co.uk.
 18587  	* mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto.
 18588  
 18589  2002-07-13  Kevin Ryde  <kevin@swox.se>
 18590  
 18591  	* mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm.
 18592  
 18593  	* tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD):
 18594  	Always zero for native mpn_divexact_1, mpn_modexact_1_odd.
 18595  
 18596  	* gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure,
 18597  	ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines.
 18598  	* acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes.
 18599  
 18600  	* gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3,
 18601  	mpn_addmul_4): Add prototypes and defines.
 18602  
 18603  	* gmp.texi (Number Theoretic Functions): Clarify return value.
 18604  	Reported by Peter Keller.
 18605  
 18606  2002-07-10  Kevin Ryde  <kevin@swox.se>
 18607  
 18608  	* configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of
 18609  	AM_PROG_LEX, now ok when lex is missing.
 18610  
 18611  	* longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab
 18612  	variant under LONGLONG_STANDALONE.
 18613  	(count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs.
 18614  
 18615  	* gmp-impl.h (popc_limb): Add an ia64 asm version.
 18616  	(DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG
 18617  	which is in gcc but means something unrelated in MS Visual C 7.0.
 18618  	Reported by David Librik.
 18619  
 18620  	* mpz/divexact.c: Add an ASSERT that den divides num.
 18621  
 18622  	* mpn/asm-defs.m4 (LDEF): New macro.
 18623  	(INT32, INT64): Use it.
 18624  	* mpn/pa32/*.asm: Use it.
 18625  	* mpn/pa32/README: Update notes on labels.
 18626  
 18627  	* tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb):
 18628  	Renamed from refmpn_bswap_limb.
 18629  	* tests/t-bswap.c: Add tests_start/tests_end for randomization.
 18630  
 18631  	* tests/refmpn.c, tests/tests.h (ref_popc_limb): New function.
 18632  	* tests/t-popc.c: New file.
 18633  	* tests/Makefile.am: Add it.
 18634  
 18635  	* mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not
 18636  	accepted by ia64-*-hpux*.
 18637  
 18638  	* acinclude.m4 (GMP_ASM_BYTE): New macro.
 18639  	(GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it.
 18640  	(GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host.
 18641  	(GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*.
 18642  	(GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host.
 18643  	(GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to
 18644  	test program, required by ia64-*-hpux*.
 18645  	(GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:",
 18646  	the former being how it's currently being used in fact.
 18647  
 18648  	* configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro.
 18649  	* configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes.
 18650  
 18651  2002-07-06  Kevin Ryde  <kevin@swox.se>
 18652  
 18653  	* tests/cxx/t-allfuns.cc: New file.
 18654  	* tests/cxx/Makefile.am: Add it.
 18655  
 18656  	* mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes
 18657  	to zero.  Use _mpz_realloc return value.
 18658  
 18659  	* gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input):
 18660  	Cross reference to Headers and Libraries for libgmpxx stuff.
 18661  	(Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS.
 18662  	mpn_set_str takes "unsigned char *", reported by Mark Sofroniou.
 18663  	(C++ Interface General): Describe linking with libgmpxx and libgmp.
 18664  
 18665  2002-07-01  Kevin Ryde  <kevin@swox.se>
 18666  
 18667  	* tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in
 18668  	one(), tune just one at a time and let the callers hand dependencies.
 18669  	Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD
 18670  	oddities in tune_sqr() instead.
 18671  
 18672  	* mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h,
 18673  	longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
 18674  	tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r
 18675  	rather than having variant parameter order for mpn_umul_ppmm and
 18676  	mpn_udiv_qrnnd on pa64.
 18677  
 18678  	* gmp-h.in (mpz_export): Remove a spurious parameter name.
 18679  	* gmp-impl.h (mpn_rootrem): Use __MPN.
 18680  
 18681  2002-06-29  Kevin Ryde  <kevin@swox.se>
 18682  
 18683  	* longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the
 18684  	general mechanism for that suffices.
 18685  
 18686  	* mpf/inp_str.c: Fix returned count of chars read, reported by Paul
 18687  	Zimmermann.  Also fix a memory leak for invalid input.
 18688  	* tests/mpf/t-inp_str.c: New file.
 18689  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 18690  
 18691  	* tests/devel/try.c (mpn_mod_34lsub1): Only exists for
 18692  	GMP_NUMB_BITS%4==0.
 18693  	(SIZE2_FIRST): Respect option_firstsize2 for "fraction" case.
 18694  
 18695  	* mpn/generic/diveby3.c: Further nailifications.
 18696  	* gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd.
 18697  	(GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants.
 18698  	* tests/t-constants.c: Check them.
 18699  
 18700  	* gmp-h.in (__GMP_CRAY_Pragma): New macro.
 18701  	(__GMPN_COPY_REST): Use it.
 18702  	* gmp-impl.h (CRAY_Pragma): Use it.
 18703  
 18704  2002-06-25  Kevin Ryde  <kevin@swox.se>
 18705  
 18706  	* mpz/import.c, mpz/export.c: Cast data pointer through "char *" in
 18707  	alignment tests, for the benefit of Cray vector systems.
 18708  
 18709  	* configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok
 18710  	with current code.
 18711  	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove
 18712  	macros, no longer needed
 18713  
 18714  	* acinclude.m4 (GMP_ASM_RODATA): Remove temporary files.
 18715  
 18716  	* configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication
 18717  	through AC_REQUIRE.
 18718  
 18719  2002-06-23  Kevin Ryde  <kevin@swox.se>
 18720  
 18721  	* tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just
 18722  	that they're non-zero.
 18723  
 18724  	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output
 18725  	exactly, rather than parsing it with GMP_GCC_VERSION_GE.
 18726  	(GMP_ASM_UNDERSCORE): Use GLOBL_ATTR.
 18727  
 18728  	* mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm:
 18729  	Renamed from udiv_qrnnd.asm, for consistency with other udiv's.
 18730  	* mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise.
 18731  	* configure.in (hppa*-*-*): Update extra_functions.
 18732  	(NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from
 18733  	nails-neutral list, no longer needed.
 18734  
 18735  	* gmp-h.in (__DECC): Add notes on testing this for ANSI-ness.
 18736  	(__GMP_EXTERN_INLINE): Add static __inline for DEC C.
 18737  	(mpz_mod_ui): Move up to main section, it's still documented.
 18738  
 18739  2002-06-22  Kevin Ryde  <kevin@swox.se>
 18740  
 18741  	* mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c,
 18742  	mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups.
 18743  	* gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro.
 18744  
 18745  	* mpn/generic/mod_34lsub1.c: Nailify.
 18746  	* tests/devel/try.c (CNST_34LSUB1): Nailify.
 18747  	* gmp-impl.h (ADDC_LIMB): New macro.
 18748  
 18749  	* gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default
 18750  	base=10 and ndigits=0.
 18751  	(mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add
 18752  	versions accepting "const char *".
 18753  	* mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and
 18754  	uncommenting set_str and operator=.
 18755  	* gmp.texi (C++ Interface Integers, C++ Interface Rationals)
 18756  	(C++ Interface Floats): Update.
 18757  
 18758  	* gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions.
 18759  	(const, signed): Move to near top of file, fixes --enable-alloca=debug
 18760  	on K&R.
 18761  
 18762  	* gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c.
 18763  	* dumbmp.c (mpz_init_set_ui): New function.
 18764  	* Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c.
 18765  	* gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table
 18766  	(for the benefit of tests/mpz/t-fib_ui.c).
 18767  	* mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code.
 18768  
 18769  	* Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES,
 18770  	use += more.
 18771  
 18772  	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES):
 18773  	Don't let "unknown" get into the cache variables.
 18774  	(GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix.
 18775  	(GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs.
 18776  	(GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct
 18777  	result if CPP_FOR_BUILD overrides the cache variable.
 18778  	(GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from
 18779  	GMP_PROG_CC_FOR_BUILD.  Allow for "conftest" default compiler output.
 18780  	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this,
 18781  	separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD.
 18782  
 18783  	* configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ...
 18784  	* Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange
 18785  	MPN_OBJECTS to be common between libgmp and libmp.
 18786  
 18787  2002-06-20  Torbjorn Granlund  <tege@swox.com>
 18788  
 18789  	* mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if
 18790  	basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times
 18791  	the corresponding *_THRESHOLD.
 18792  
 18793  2002-06-20  Kevin Ryde  <kevin@swox.se>
 18794  
 18795  	* mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE.
 18796  	Reported by Paul Zimmermann.
 18797  
 18798  	* configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define
 18799  	to 1", for clarity as per autoconf.
 18800  	* acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates.
 18801  
 18802  2002-06-20  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 18803  
 18804  	* gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and
 18805  	mpq_class::get_den return mpz_class& as per the documentation.
 18806  	Reported by Roberto Bagnara.
 18807  
 18808  2002-06-18  Kevin Ryde  <kevin@swox.se>
 18809  
 18810  	* tests/rand/t-lc2exp.c: New file.
 18811  	* tests/rand/Makefile.am: Add it, and use tests/libtests.la.
 18812  
 18813  	* randraw.c (lc): Pad seed==0 case with zero limbs, return same
 18814  	(m2exp+1)/2 bits as normal, right shift "c" result as normal.
 18815  
 18816  	* configure.in: Don't bother with line numbers in some diagnostics.
 18817  	(*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity.
 18818  
 18819  	* tests/mpz/Makefile.am, tests/mpq/Makefile.am,
 18820  	tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program
 18821  	temporaries, to get t-scanf.tmp and reduce future maintenance.
 18822  
 18823  2002-06-16  Torbjorn Granlund  <tege@swox.com>
 18824  
 18825  	* mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in
 18826  	new `tmp' parameter.  Trim allocation needs by reusing input parameter.
 18827  
 18828  2002-06-15  Torbjorn Granlund  <tege@swox.com>
 18829  
 18830  	* mpn/sparc32/v9/udiv.asm: New file.
 18831  
 18832  2002-06-15  Kevin Ryde  <kevin@swox.se>
 18833  
 18834  	* acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw
 18835  	gcc 3.1 version number.  Reported by Jim Fougeron.
 18836  
 18837  	* configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make
 18838  	AC_LIBTOOL_WIN32_DLL work with autoconf 2.53.
 18839  
 18840  	* acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value,
 18841  	not an expression, for the benefit of the gen-bases invocation.
 18842  
 18843  	* config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess.
 18844  
 18845  2002-06-15  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 18846  
 18847  	* mpfr/set_q.c: Allow for 1 bit numerator or denominator.
 18848  
 18849  2002-06-14  Kevin Ryde  <kevin@swox.se>
 18850  
 18851  	* configure.in (AC_C_BIGENDIAN): Use new style action parameters.
 18852  
 18853  	* randlc2x.c: Allow for a<0, allow for c>=2^m2exp.
 18854  	* randraw.c (lc): Allow for a==0.
 18855  
 18856  	* mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm.  Don't know if float
 18857  	is the best way for v7, but it's what configure has chosen since gmp 3.
 18858  	* configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all,
 18859  	in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than
 18860  	udiv_fp previously used for v9 chips.
 18861  
 18862  	* gen-bases.c: New file, derived from mpn/mp_bases.c.
 18863  	* dumbmp.c: New file, mostly by Torbjorn, some by me.
 18864  	* configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD,
 18865  	GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD,
 18866  	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros.
 18867  	(GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD.
 18868  	* Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c.
 18869  	* gmp-impl.h: Use mp_bases.h.
 18870  	* mpn/mp_bases.c: Remove file.
 18871  	* mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES.
 18872  
 18873  	* tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to
 18874  	double, fixes gcc 3.1 with -O4.  Reported by Michael Lee.
 18875  	* configure.in (AC_C_VOLATILE): New macro.
 18876  
 18877  	* tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end.
 18878  	Don't mix varargs and fixed args functions, not good on x86_64.
 18879  	Reported by Marcus Meissner.
 18880  
 18881  	* Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in
 18882  
 18883  	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.53.
 18884  	* */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure:
 18885  	Update to automake 1.6.1.
 18886  	* configfsf.guess, configfsf.sub: Update to 2002-05-29.
 18887  
 18888  2002-06-12  Kevin Ryde  <kevin@swox.se>
 18889  
 18890  	* acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version.
 18891  	(GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf.
 18892  	(GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe.
 18893  
 18894  2002-06-09  Torbjorn Granlund  <tege@swox.com>
 18895  
 18896  	* randraw.c (lc): Remove broken ASSERT_ALWAYS.
 18897  
 18898  	* mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD
 18899  	values.
 18900  	* mpn/x86/p6/mmx/gmp-mparam.h: New file.
 18901  
 18902  2002-06-09  Kevin Ryde  <kevin@swox.se>
 18903  
 18904  	* mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings.
 18905  
 18906  	* acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template.
 18907  
 18908  	* tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb,
 18909  	refmpn_big_base): New functions.
 18910  	* tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted
 18911  	unless it's being used.
 18912  
 18913  	* gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs.
 18914  	(Known Build Problems): Notes on MacOS and GCC.
 18915  	(Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong.
 18916  	(Low-level Functions): mpn_get_str accepts base==256.
 18917  	(Formatted Output Functions): Note output is not atomic.
 18918  	(Internals): Note mp_size_t for limb counts.
 18919  
 18920  	* mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove
 18921  	these types from mp.h, not needed.
 18922  
 18923  	* mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the
 18924  	parameter order to make sparc gcc 2.95.2 happy.
 18925  
 18926  	* doc/configuration: Notes on bootstrapping.
 18927  
 18928  2002-06-08  Kevin Ryde  <kevin@swox.se>
 18929  
 18930  	* mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is
 18931  	not affected by mpfr_set_machine_rnd_mode.
 18932  
 18933  	* mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32.
 18934  
 18935  	* configure.in (alphev56): Fix to use ev5 path.
 18936  
 18937  2002-06-06  Kevin Ryde  <kevin@swox.se>
 18938  
 18939  	* gmp-h.in: Use __gmp_const not const, in a number of places.
 18940  
 18941  	* configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and
 18942  	v8, for consistency with v9 choices.
 18943  	(sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64.
 18944  	(x86): Move MMX $path munging to before printout.
 18945  	(CCAS): Move upward to support this.
 18946  
 18947  	* gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes,
 18948  	add a version for arbitrary limb size, use GMP_NUMB_BITS.
 18949  	(modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS.
 18950  
 18951  	* gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros.
 18952  	(mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the
 18953  	fetch or mpn call likely, unconditionally calculate the alternative so
 18954  	as to avoid an "else" clause.
 18955  	* gmp-impl.h (LIKELY, UNLIKELY): Aliases.
 18956  
 18957  	* configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for
 18958  	MPFR_CONFIGS so it detects fesetround, and let it go through to
 18959  	$MPFR_LIBS.
 18960  	* mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND.
 18961  
 18962  	* tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer
 18963  	setups are bogus and have been seen failing on hppa.
 18964  
 18965  	* tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c:
 18966  	Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c.
 18967  
 18968  2002-06-05  Torbjorn Granlund  <tege@swox.com>
 18969  
 18970  	* tests/mpz/t-powm_ui.c Print proper routine name in error message.
 18971  
 18972  2002-06-03  Kevin Ryde  <kevin@swox.se>
 18973  
 18974  	* tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support.
 18975  	(FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor.
 18976  	(freq_measure): Use for mftb measuring too.
 18977  	* tune/powerpc.asm, tune/powerpc64.asm: New files.
 18978  	* configure.in, tune/Makefile.am: Add them.
 18979  
 18980  	* gmp-impl.h (popc_limb): Add versions for Cray and fallback for
 18981  	arbitrary limb size.
 18982  
 18983  	* mpn/sparc32/sparc-defs.m4: New file.
 18984  	* configure.in (sparc*-*-*): Use it.
 18985  	* acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro.
 18986  	* configure.in (sparc64): Use it.  Also, use -Wc,-m64 for linking.
 18987  	* mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm,
 18988  	mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm,
 18989  	mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm,
 18990  	mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm,
 18991  	mpn/sparc64/submul_1.asm: Use REGISTER for .register.
 18992  
 18993  2002-06-01  Kevin Ryde  <kevin@swox.se>
 18994  
 18995  	* mpz/powm_ui.c: Fix for result range in certain circumstances.
 18996  
 18997  	* mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1.
 18998  	Anomaly pointed out by Alexander Kruppa.
 18999  
 19000  2002-05-31  Torbjorn Granlund  <tege@swox.com>
 19001  
 19002  	* mpz/export.c: Cast pointer via `unsigned long' when checking
 19003  	alignment to avoid compiler warnings.
 19004  
 19005  2002-05-29  Kevin Ryde  <kevin@swox.se>
 19006  
 19007  	* gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary
 19008  	limb size.
 19009  	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define.
 19010  
 19011  2002-05-27  Torbjorn Granlund  <tege@swox.com>
 19012  
 19013  	* mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning
 19014  	when possible.  Add code for mpn_addmul_5 and mpn_addmul_6.
 19015  
 19016  2002-05-25  Kevin Ryde  <kevin@swox.se>
 19017  
 19018  	* tune/tuneup.c: Misc nailifications, and disable preinv thresholds
 19019  	with nails.
 19020  	* tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and
 19021  	mpn_divrem_2.
 19022  	* mpz/powm.c (redc): Nailify q.
 19023  
 19024  	* tests/mpn/t-scan.c: Reduce the amount of testing, to go faster.
 19025  
 19026  2002-05-23  Torbjorn Granlund  <tege@swox.com>
 19027  
 19028  	* Version 4.1 released.
 19029  
 19030  	* mpn/alpha/ev6/nails/gmp-mparam.h: New file.
 19031  
 19032  	* tests/devel/add_n.c (refmpn_add_n): Nailify.
 19033  	* tests/devel/sub_n.c (refmpn_sub_n): Nailify.
 19034  	* tests/devel/addmul_1.c (refmpn_addmul_1): Nailify.
 19035  	* tests/devel/submul_1.c (refmpn_submul_1): Nailify.
 19036  
 19037  	* mpn/alpha/ev6/nails/add_n.asm: New file.
 19038  	* mpn/alpha/ev6/nails/sub_n.asm: New file.
 19039  	* mpn/alpha/ev6/nails/mul_1.asm: New file.
 19040  	* mpn/alpha/ev6/nails/submul_1.asm: New file.
 19041  
 19042  2002-05-22  Torbjorn Granlund  <tege@swox.com>
 19043  
 19044  	* mpn/alpha/ev6/nails/addmul_1.asm: New file.
 19045  
 19046  	* mpz/inp_str.c (mpz_inp_str_nowhite): Nailify.
 19047  
 19048  	* mpn/generic/mul_basecase.c: Update pointers before conditional
 19049  	MAX_LEFT break statements.
 19050  
 19051  2002-05-21  Torbjorn Granlund  <tege@swox.com>
 19052  
 19053  	* tests/mpz/t-gcd.c: Test mpz_gcd_ui.
 19054  
 19055  	* mpz/lcm_ui.c: Nailify.
 19056  
 19057  	* mpz/gcd_ui.c: Nailify.  Make it work as documented, allowing
 19058  	NULL to be passed for result parameter.  Fix gcd(0,0) case.
 19059  
 19060  	* mpz/set_str.c: Nailify.
 19061  
 19062  	* randlc2x.c (gmp_randinit_lc_2exp): Nailify.
 19063  
 19064  	From Jakub Jelinek:
 19065  	* longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]:
 19066  	Make it actually work.
 19067  
 19068  2002-05-18  Torbjorn Granlund  <tege@swox.com>
 19069  
 19070  	* mpf/ui_div.c: Shut up compiler warning.
 19071  
 19072  	* mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and
 19073  	mpn_addmul_4, as available.
 19074  
 19075  	* mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls.
 19076  	* mpn/alpha/ev6/nails/addmul_3.asm: Likewise
 19077  	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
 19078  
 19079  	* configure.in (*-cray-unicos*): Back again to -hscalar0.
 19080  	(gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3,
 19081  	and addmul_4.
 19082  	* acconfig.h: Add #undefs for new optional mpn functions.
 19083  
 19084  2002-05-18  Kevin Ryde  <kevin@swox.se>
 19085  
 19086  	* gmp.texi (Integer Import and Export): Mention Cray unfilled words.
 19087  
 19088  	* mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of
 19089  	__gmp_extract_double.  Reported by Henrik Johansson.
 19090  
 19091  2002-05-17  Torbjorn Granlund  <tege@swox.com>
 19092  
 19093  	* mpn/alpha/ev6/nails/addmul_2.asm: New file.
 19094  	* mpn/alpha/ev6/nails/addmul_3.asm: New file.
 19095  	* mpn/alpha/ev6/nails/addmul_4.asm: New file.
 19096  
 19097  	* mpn/generic/dump.c: Rewrite and nailify.
 19098  
 19099  2002-05-16  Kevin Ryde  <kevin@swox.se>
 19100  
 19101  	* mpfr/Makefile.am (EXTRA_DIST): Add BUGS file.
 19102  
 19103  2002-05-15  Torbjorn Granlund  <tege@swox.com>
 19104  
 19105  	* configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd
 19106  	as workaround for compiler bug.
 19107  	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
 19108  
 19109  2002-05-14  Torbjorn Granlund  <tege@swox.com>
 19110  
 19111  	* configure.in (*-cray-unicos*): Pass -hscalar0 to work around
 19112  	compiler bug for mpz/import.c.
 19113  
 19114  2002-05-11  Torbjorn Granlund  <tege@swox.com>
 19115  
 19116  	* mpz/import.c: Cast pointer via `unsigned long' when checking
 19117  	alignment to avoid compiler warnings.
 19118  
 19119  	* mpn/generic/rootrem.c: Adjust allocation of qp temporary area.
 19120  
 19121  2002-05-09  Kevin Ryde  <kevin@swox.se>
 19122  
 19123  	* mpz/import.c: Corrections to size store, special case tests, and
 19124  	general case ACCUMULATE.
 19125  	* tests/mpz/t-import.c, tests/mpz/t-export.c: More test data.
 19126  
 19127  2002-05-09  Torbjorn Granlund  <tege@swox.com>
 19128  
 19129  	* mpn/generic/rootrem.c: Use temp space for root, copy value in place
 19130  	before returning.
 19131  	* mpz/root.c: Don't allocate extra limb for root value.
 19132  	* mpz/perfpow.c: Undo last change.
 19133  
 19134  2002-05-08  Torbjorn Granlund  <tege@swox.com>
 19135  
 19136  	* gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make
 19137  	it not clash with caller.
 19138  
 19139  	* mpn/generic/rootrem.c: New file.
 19140  	* configure.in (gmp_mpn_functions): Add rootrem and pow_1.
 19141  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and
 19142  	pow_1.c
 19143  	* gmp-impl.h (mpn_rootrem): Add declaration.
 19144  	* mpz/perfpow.c: Amend allocations for mpn_rootrem requirements.
 19145  	* mpz/root.c: Rewrite to use mpn_rootrem.
 19146  
 19147  2002-05-08  Kevin Ryde  <kevin@swox.se>
 19148  
 19149  	* gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values.
 19150  
 19151  	* mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction
 19152  	part, making the code match the documentation.
 19153  
 19154  	* gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub.
 19155  
 19156  2002-05-07  Kevin Ryde  <kevin@swox.se>
 19157  
 19158  	* mpn/powerpc32/README: New file.
 19159  
 19160  	* mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t.
 19161  
 19162  	* tune/README: Misc updates including sparc32/v9 smoothness, low res
 19163  	timebase, and mpn_add_n operand overlaps.
 19164  	* tune/many.pl: Add udiv.asm support.
 19165  
 19166  	* gmp.texi (Build Options): A couple of --build better as --host.
 19167  	(Known Build Problems, Notes for Package Builds): Add DESTDIR problem.
 19168  	(Compatibility with older versions): Compatible with 4.x versions.
 19169  	(Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose.
 19170  	(Integer Import and Export): New section.
 19171  	(Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1
 19172  	for operand of 0.
 19173  	(Language Bindings): Add GNU Pascal.
 19174  	(Low-level Functions): Add GMP_NUMB_MAX.
 19175  
 19176  	* tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c:
 19177  	New tests.
 19178  	* tests/mpz/Makefile.am: Add them.
 19179  
 19180  	* mpz/import.c, mpz/export.c: New files.
 19181  	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
 19182  
 19183  	* gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h.
 19184  	* gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned.
 19185  	(CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE,
 19186  	ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros.
 19187  	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN.
 19188  
 19189  2002-05-07  Torbjorn Granlund  <tege@swox.com>
 19190  
 19191  	* mpz/aors_ui.h: Nailify.
 19192  
 19193  	* tests/mpz/t-addsub.c: New file.
 19194  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub.
 19195  
 19196  	* mpz/ui_sub.c: New file.
 19197  	* mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c.
 19198  	* Makefile.am (MPZ_OBJECTS): Ditto.
 19199  	* gmp-h.in (mpz_ui_sub): Add declaration.
 19200  
 19201  	* gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc
 19202  	return value.
 19203  
 19204  	* gmp-h.in (mpn_pow_1): Add declaration.
 19205  
 19206  	* mpn/generic/pow_1.c: Handle exp <= 1.  Reverse rp/tp parity scheme
 19207  	for bn == 1 arm.
 19208  
 19209  	* Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT.
 19210  
 19211  2002-05-06  Torbjorn Granlund  <tege@swox.com>
 19212  
 19213  	* demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base.
 19214  
 19215  	* randraw.c (lc): Remove an unused variable.
 19216  
 19217  	* mpn/generic/get_str.c: Clarify an algorithm description.
 19218  
 19219  	* tests/mpf/t-trunc.c: Nailify.
 19220  	* tests/mpf/t-set_si.c: Disable for nails.
 19221  
 19222  	* mpf/cmp_si.c: Nailify.
 19223  	* mpf/cmp_ui.c: Nailify.
 19224  	* mpf/div.c: Nailify.
 19225  	* mpf/div_2exp.c: Nailify.
 19226  	* mpf/div_ui.c: Nailify.
 19227  	* mpf/eq.c: Nailify.
 19228  	* mpf/get_d.c: Nailify.
 19229  	* mpf/get_d_2exp.c: Nailify.
 19230  	* mpf/get_si.c: Nailify.
 19231  	* mpf/get_str.c: Nailify.
 19232  	* mpf/get_ui.c: Nailify.
 19233  	* mpf/mul_2exp.c: Nailify.
 19234  	* mpf/random2.c: Nailify.
 19235  	* mpf/set_q.c: Nailify.
 19236  	* mpf/set_si.c: Nailify.
 19237  	* mpf/set_str.c: Nailify.
 19238  	* mpf/set_ui.c: Nailify.
 19239  	* mpf/sub.c: Nailify.
 19240  	* mpf/ui_div.c: Nailify.
 19241  	* mpf/ui_sub.c: Nailify.
 19242  	* mpf/urandomb.c: Nailify.
 19243  
 19244  	* gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify.
 19245  
 19246  	* mpz/get_si.c: Misc variable name changes.
 19247  
 19248  	* mpf/fits_u.h: Rewrite - nailify.
 19249  	* mpf/fits_s.h: Likewise.
 19250  
 19251  	* mpz/mod.c: Disambiguate if-statement with extra {}.
 19252  
 19253  	* mpf/int_p.c: Fix type of size variables.
 19254  	* mpf/get_ui: Likewise.
 19255  	* mpf/get_si: Likewise.
 19256  	* mpq/equal.c: Likewise.
 19257  	* mpq/get_d.c: Likewise.
 19258  	* mpz/cmp_d.c: Likewise.
 19259  	* mpz/cmpabs_d.c: Likewise.
 19260  	* mpz/divis_2exp.c: Likewise.
 19261  	* mpz/kronuz.c: Likewise.
 19262  	* mpz/kronzu.c: Likewise.
 19263  	* mpz/kronzs.c: Likewise.
 19264  	* mpz/kronsz.c: Likewise.
 19265  	* mpz/scan0.c: Likewise.
 19266  	* mpz/scan1.c: Likewise.
 19267  	* mpz/tstbit.c: Likewise.
 19268  	* mpz/cong_2exp.c: Likewise.
 19269  	* mpz/divis.c: Likewise.
 19270  
 19271  2002-05-04  Torbjorn Granlund  <tege@swox.com>
 19272  
 19273  	* mpn/generic/gcd.c: Additional nailify changes.
 19274  
 19275  2002-05-04  Kevin Ryde  <kevin@swox.se>
 19276  
 19277  	* gmp-h.in (__GNU_MP_VERSION): Set to 4.1.
 19278  	* Makefile.am (-version-info): Bump for new release.
 19279  
 19280  2002-04-30  Torbjorn Granlund  <tege@swox.com>
 19281  
 19282  	* mpn/generic/divrem_1.c: Additional nailify changes.
 19283  	* mpn/generic/mod_1.c: Likewise.
 19284  
 19285  	* tests/mpq/t-get_d.c: Print floats with all 16 digits.
 19286  
 19287  	* mpq/get_d.c: Nailify.
 19288  
 19289  	* tests/mpq/t-set_f.c: Disable for nails.
 19290  
 19291  	* mpz/get_d.c: Nailify.
 19292  
 19293  	* gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify.
 19294  
 19295  	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it.
 19296  
 19297  	* extract-dbl.c: Nailify.
 19298  
 19299  2002-04-29  Torbjorn Granlund  <tege@swox.com>
 19300  
 19301  	* mpq/md_2exp.c (mord_2exp): Nailify.
 19302  
 19303  	* mpq/cmp_ui.c: Nailify.
 19304  
 19305  	* mpq/cmp.c (mpq_cmp): Nailify.
 19306  
 19307  	* mpn/generic/gcd.c: Nailify.  GNUify code layout.
 19308  
 19309  	* mpn/generic/gcdext.c: Nailify.  Misc changes.
 19310  
 19311  	* tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions.
 19312  	* tests/mpz/t-gcd.c: Likewise.
 19313  
 19314  	* mpz/gcd.c: Nailify.
 19315  
 19316  	* mpn/generic/random.c: Nailify.
 19317  
 19318  	* gmp-impl.h (modlimb_invert): Nailify.
 19319  
 19320  2002-04-27  Torbjorn Granlund  <tege@swox.com>
 19321  
 19322  	* mpn/generic/gcdext.c (div2): Remove qh parameter.
 19323  	(mpn_gcdext): Streamline double-limb code.
 19324  	Move GCDEXT_THRESHOLD check to after initial division.
 19325  
 19326  2002-04-27  Kevin Ryde  <kevin@swox.se>
 19327  
 19328  	* gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd
 19329  	GMP_NUMB_BITS.
 19330  
 19331  	* tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix
 19332  	SGI_CYCLECNTR_SIZE handling.
 19333  
 19334  	* demos/expr/exprfr.c: Add nan and inf constants.
 19335  	* demos/expr/t-expr.c: Exercise them.
 19336  
 19337  2002-04-26  Torbjorn Granlund  <tege@swox.com>
 19338  
 19339  	* mpz/cmp_ui.c: Fix overflow conditions for nails.
 19340  
 19341  	* gmp-h.in (mpz_get_ui): Fix typo from last change.
 19342  
 19343  	* mpz/n_pow_ui.c: Adjust allocation for nails.
 19344  	(GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX.
 19345  	Fix umul_ppmm invocation for for nails.
 19346  
 19347  2002-04-24  Torbjorn Granlund  <tege@swox.com>
 19348  
 19349  	* mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of
 19350  	mpn_divmod.
 19351  
 19352  2002-04-24  Kevin Ryde  <kevin@swox.se>
 19353  
 19354  	* configure.in (*-*-cygwin*): Give a sensible default command line
 19355  	limit, to avoid blowups reported by Jim Fougeron on windows 9x.
 19356  	(--enable-nails): Make the default 2, since mp_bases has data for that.
 19357  
 19358  	* mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to
 19359  	avoid a mis-conversion on alpha gcc 3.0.2.
 19360  	(_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa.
 19361  
 19362  2002-04-23  Torbjorn Granlund  <tege@swox.com>
 19363  
 19364  	* mpz/dive_ui.c: Fix typo.
 19365  
 19366  	* mpz/fits_s.h: Rewrite.
 19367  
 19368  	* mpz/jacobi.c: Nailify.
 19369  	* mpz/kronuz.c: Additional nailify changes.
 19370  	* mpz/kronsz.c: Likewise.
 19371  
 19372  2002-04-23  Kevin Ryde  <kevin@swox.se>
 19373  
 19374  	* demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr.
 19375  
 19376  	* mpz/divis_ui.c, mpz/cong_ui.c: Nailify.
 19377  	* mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify.
 19378  	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c,
 19379  	mpn/generic/divrem_2.c: Nailify ASSERTs.
 19380  	* mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify.
 19381  	* mpz/inp_raw.c, mpz/out_raw.c: Nailify.
 19382  	* mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify.
 19383  	* mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify.
 19384  	* gmp-impl.h (NEG_MOD): Nailify.
 19385  
 19386  	* gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data.
 19387  
 19388  	* mpfr/get_d.c: Patch from Paul to avoid problem with constant folding
 19389  	in gcc on OSF.
 19390  
 19391  	* mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro.
 19392  
 19393  2002-04-22  Torbjorn Granlund  <tege@swox.com>
 19394  
 19395  	* demos/pexpr.c: Handle "binomial" operator.
 19396  
 19397  	* mpz/cmp_ui.c: Move assignments of `up' out of conditionals.
 19398  
 19399  	* mpn/generic/gcdext.c: Fix fencepost error in STAT code.
 19400  
 19401  	* gmp-impl.h (mpn_com_n): Nailify.
 19402  
 19403  	* tests/mpz/t-cdiv_ui.c: New file.
 19404  	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui.
 19405  	* mpz/cdiv_qr_ui.c: Nailify.
 19406  	* mpz/cdiv_q_ui.c: Nailify.
 19407  	* mpz/cdiv_r_ui.c: Nailify.
 19408  	* mpz/cdiv_ui.c: Nailify.
 19409  
 19410  	* tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an
 19411  	unsigned type.
 19412  	* tests/misc/t-scanf.c: Likewise.
 19413  
 19414  	* mpz/mul_i.h: Rework nails code to handle parameter overlap.
 19415  
 19416  	* tests/mpz/t-set_f.c: Disable for nails.
 19417  
 19418  2002-04-21  Torbjorn Granlund  <tege@swox.com>
 19419  
 19420  	* mpz/set_si.c: Add cast to support LONG_LONG_LIMB.
 19421  	* mpz/iset_si.c: Likewise.
 19422  
 19423  	* mpz/bin_ui.c: Nailify.
 19424  	* mpz/bin_uiui.c: Nailify.
 19425  
 19426  	* mpz/cmpabs_ui.c: Nailify.
 19427  
 19428  	* tests/mpz/t-aorsmul.c: Nailify.
 19429  	* mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better.
 19430  
 19431  2002-04-20  Torbjorn Granlund  <tege@swox.com>
 19432  
 19433  	* tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui.
 19434  	* tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui.
 19435  
 19436  	* mpz/tdiv_ui.c: Rewrite nails code.
 19437  	* mpz/fdiv_ui.c: Nailify.
 19438  
 19439  	* tests/mpz/t-tdiv_ui.c: Check returned remainders.
 19440  	* tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes.
 19441  
 19442  	* mpz/tdiv_q_ui.c: Remove spurious TMP_* calls.
 19443  
 19444  	* mpz/fdiv_qr_ui.c: Nailify.
 19445  	* mpz/fdiv_q_ui.c: Nailify.
 19446  	* mpz/fdiv_r_ui.c: Nailify.
 19447  
 19448  	* mpz/get_si.c: Misc nailify changes to shut up compiler warnings.
 19449  
 19450  	* mpz/ui_pow_ui.c: Fix typo in last change.
 19451  
 19452  2002-04-20  Kevin Ryde  <kevin@swox.se>
 19453  
 19454  	* tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types.
 19455  
 19456  	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm
 19457  	(mpn_preinv_divrem_1): New entrypoint.
 19458  	(mpn_divrem_1): Avoid a branch when testing high<divisor.
 19459  	* mpn/asm-defs.m4: Add define_mpn(preinv_divrem_1).
 19460  	* configure.in: Allow divrem_1.asm to provide mpn_preinv_divrem_1.
 19461  
 19462  	* gmp-impl.h [nails]: Add #undefs of MUL_KARATSUBA_THRESHOLD etc, to
 19463  	override CPU gmp-mparam.h.  Remove JACOBI_BASE_METHOD override since
 19464  	it's nails-neutral.
 19465  
 19466  	* tests/mpn/t-mp_bases.c: New file.
 19467  	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
 19468  	* tests/t-constants.c: Move MP_BASES constants checks to it.
 19469  
 19470  	* mpn/mp_bases.c: Fix big_base_inverted values for nails.
 19471  	* gmp-impl.h (MP_BASES_BIG_BASE_INVERTED_10,
 19472  	MP_BASES_NORMALIZATION_STEPS_10): Fix nails values.
 19473  	(MP_BASES_*): Remove GMP_NUMB_BITS == 30 data.
 19474  
 19475  	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm: Add
 19476  	NAILS_SUPPORT indicators.
 19477  
 19478  	* configure.in: Grep for NAILS_SUPPORT in cpu-specific code, and look
 19479  	in "nails" subdirectories, print path used.
 19480  	* mpn/asm-defs.m4 (NAILS_SUPPORT): New macro.
 19481  
 19482  	* mpfr/mpfr-test.h: Include config.h, for the benefit of test programs
 19483  	not using gmp-impl.h.
 19484  
 19485  2002-04-19  Torbjorn Granlund  <tege@swox.com>
 19486  
 19487  	* tests/mpz/t-scan.c: Nailify.
 19488  
 19489  	* mpz/tdiv_qr_ui.c: Nailify.
 19490  	* mpz/tdiv_q_ui.c: Nailify.
 19491  	* mpz/tdiv_r_ui.c: Nailify.
 19492  	* mpz/tdiv_ui.c: Nailify.
 19493  
 19494  	* mpz/cmp_ui.c: Nailify.
 19495  
 19496  	* mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings.
 19497  
 19498  	* mpz/scan0.c: Nailify.
 19499  	* mpz/scan1.c: Nailify.
 19500  
 19501  	* tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify.
 19502  
 19503  2002-04-18  Torbjorn Granlund  <tege@swox.com>
 19504  
 19505  	* mpz/aorsmul_i.c: Nailify.
 19506  
 19507  	* mpz/cmp_si.c: Nailify (botched).
 19508  
 19509  	* mpz/ui_pow_ui.c: Nailify.
 19510  
 19511  	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify.
 19512  
 19513  	* mpz/fits_s.h: Nailify.
 19514  
 19515  	* tests/mpz/bit.c (check_tstbit): Nailify.
 19516  
 19517  	From Paul Zimmermann:
 19518  	* mpn/generic/sqrtrem.c: Nailify.
 19519  
 19520  	* mpz/n_pow_ui.c: Nailify.
 19521  
 19522  	* mpz/cfdiv_r_2exp.c: Nailify.
 19523  
 19524  	* randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid
 19525  	extra MPN_COPY.
 19526  
 19527  2002-04-17  Torbjorn Granlund  <tege@swox.com>
 19528  
 19529  	* mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition.
 19530  
 19531  	* mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4.
 19532  
 19533  	* gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast
 19534  	division.
 19535  
 19536  	* mpn/generic/random2.c: Nailify.
 19537  
 19538  	* mpz/fac_ui.c: Nailify.
 19539  
 19540  	* mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings.
 19541  
 19542  	* mpn/generic/sqrtrem.c: Adopt to GNU coding standards.
 19543  	(mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem.
 19544  	Partial nailification.
 19545  
 19546  	* configure.in: As a temporary hack, clear extra_functions for nails
 19547  	builds.
 19548  
 19549  	* gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc
 19550  	warnings.
 19551  
 19552  2002-04-17  Kevin Ryde  <kevin@swox.se>
 19553  
 19554  	* texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2.
 19555  	* gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out
 19556  	in one run).
 19557  
 19558  	* mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify.
 19559  
 19560  	* tests/mpn/t-scan.c: New file.
 19561  	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
 19562  
 19563  	* tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for
 19564  	bit index.
 19565  	(refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New
 19566  	functions.
 19567  
 19568  	* mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case.
 19569  
 19570  2002-04-17  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 19571  
 19572  	* gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove
 19573  	mpfr_class::get_str2, use mp_rnd_t for rounding modes, use
 19574  	8*sizeof(double) for mpfr_t's holding doubles.
 19575  
 19576  2002-04-17  Torbjorn Granlund  <tege@swox.com>
 19577  
 19578  	* mpz/powm.c: Nailify.
 19579  	* mpz/powm_ui.c: Nailify.
 19580  
 19581  2002-04-16  Torbjorn Granlund  <tege@swox.com>
 19582  
 19583  	* mpz/hamdist.c: Nailify.
 19584  	* tests/misc.c (urandom): Nailify.
 19585  
 19586  	* mpz/get_si.c: Nailify.
 19587  	* gmp-h.in (mpz_get_ui): Nailify.  Streamline (and probably upset
 19588  	memory checkers).
 19589  
 19590  	* gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS
 19591  	being 28, 60, and 63.
 19592  	* mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63.
 19593  
 19594  	* mpz/iset_si.c: Nailify.
 19595  	* mpz/iset_ui.c: Nailify
 19596  
 19597  	* tests/mpz/convert.c (main): Print test number in error message.
 19598  
 19599  	* mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails
 19600  	field after bignum division.
 19601  
 19602  2002-04-16  Kevin Ryde  <kevin@swox.se>
 19603  
 19604  	* gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h.
 19605  
 19606  	* gmp.texi: Use @documentdescription and @copying, per texinfo 4.2.
 19607  	(Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite
 19608  	mpn_set_str description, add nails section.
 19609  	(C++ Interface General): Remove bool from types that mix with classes.
 19610  	(Language Bindings): Add STklos, GNU Smalltalk, Regina.
 19611  	(Binary to Radix, Radix to Binary): Describe new code.
 19612  	(Assembler Cache Handling): More notes, mostly by Torbjorn.
 19613  
 19614  	* macos/configure (%vars): Remove __GMP from substitutions, per change
 19615  	to main configure.
 19616  
 19617  	* mpn/generic/dive_1.c: Nailify.
 19618  	* mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out
 19619  	alternate implementation.
 19620  	* gmp-impl.h (SUBC_LIMB): New macro.
 19621  
 19622  	* tests/devel/try.c (validate_divexact_1): Correction to compare.
 19623  	(udiv_qrnnd): New testing.
 19624  	(SHIFT_LIMIT): Nailify.
 19625  	(-b): New option, remove spurious "H" from getopt string.
 19626  
 19627  	* mpz/clrbit.c: Nailify.
 19628  	* tests/mpz/t-hamdist.c: Nailify.
 19629  	* gmp-impl.h (MPN_FIB2_SIZE): Nailify.
 19630  	(PP): Nailify conditionals.
 19631  	* tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify.
 19632  
 19633  	* configure.in, acinclude.m4: Establish GMP_NAIL_BITS and
 19634  	GMP_LIMB_BITS for gmp-h.in configure tests.
 19635  
 19636  	* mpfr/*, configure.in: Update to final mpfr 2.0.1.
 19637  	* mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff.
 19638  	* mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests.
 19639  
 19640  2002-04-15  Torbjorn Granlund  <tege@swox.com>
 19641  
 19642  	* mpn/generic/divrem_1.c (EXTRACT): Remove.
 19643  
 19644  	* tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string.
 19645  
 19646  	* mpz/rrandomb.c: Nailify.  Needs further work.
 19647  
 19648  	* mpn/generic/mod_1.c: Nailify.
 19649  
 19650  	* gmp-impl.h: Set various *_THRESHOLD values to be used for nails to
 19651  	avoid not yet qualified algorithms.
 19652  	(MPZ_CHECK_FORMAT): Check that nail part is zero.
 19653  
 19654  	* tests/mpz/t-mul.c (main): Test squaring even for huge operands.
 19655  	(base_mul): Nailify.
 19656  	(dump_abort): Accept argument for error string.  Print product
 19657  	difference.
 19658  
 19659  	* mpn/generic/set_str.c: Nailify.
 19660  
 19661  	* gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify.
 19662  
 19663  2002-04-14  Torbjorn Granlund  <tege@swox.com>
 19664  
 19665  	* randraw.c (lc): Return non-nonsense return value for seed=0 case.
 19666  	Check for m2exp being non-zero early; remove all other tests of m2exp.
 19667  	Remove redundant MPN_ZERO call.
 19668  	Let mpn_rshift put result in place to avoid extra MPN_COPY.
 19669  	Remove confusing comment before function `lc' describing BBS algorithm.
 19670  	Misc simplification and cleanups.
 19671  	Nailify.  Needs further work.
 19672  
 19673  	* mpz/set_si.c: Nailify.
 19674  	* mpz/set_ui.c: Nailify.
 19675  	* mpz/mul_i.h: Nailify.
 19676  
 19677  	* tests/mpz/t-mul_i.c: Actually test _ui routines.  Add some more test
 19678  	values.
 19679  
 19680  	* mpn/generic/mul_n.c: Finish nailifying toom3 code.
 19681  
 19682  2002-04-13  Kevin Ryde  <kevin@swox.se>
 19683  
 19684  	* mpfr/*: Update to another new mpfr 2.0.1.
 19685  	* configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am:
 19686  	Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build.
 19687  
 19688  	* mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a.
 19689  
 19690  2002-04-11  Kevin Ryde  <kevin@swox.se>
 19691  
 19692  	* mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine.
 19693  
 19694  	* mpfr/*, configure.in: Update to new mpfr 2.0.1.
 19695  
 19696  	* tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround):
 19697  	Fixes for nails.
 19698  
 19699  	* tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests.
 19700  	(MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only
 19701  	check these under USE_PREINV_DIVREM_1.
 19702  	* tests/t-modlinv.c: Nailify tests.
 19703  
 19704  2002-04-11  Gerardo Ballabio <gerardo.ballabio@unimib.it>
 19705  
 19706  	* gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only
 19707  	need <iosfwd> now.
 19708  
 19709  2002-04-11  Torbjorn Granlund  <tege@swox.com>
 19710  
 19711  	* mpn/generic/diveby3.c: Nailify.
 19712  	* gmp-impl.h (MODLIMB_INVERSE_3): Nailify.
 19713  
 19714  	* mpn/generic/mul_n.c: Nailify Toom3 code.
 19715  
 19716  2002-04-10  Kevin Ryde  <kevin@swox.se>
 19717  
 19718  	* gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to
 19719  	3, as needed by nails case.
 19720  
 19721  	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl
 19722  	assert, add rp,n and up,n asserts.
 19723  
 19724  	* mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h.
 19725  
 19726  2002-04-10  Torbjorn Granlund  <tege@swox.com>
 19727  
 19728  	* mpn/generic/divrem_1.c: Nailify.  Update mp_size_t variables to use
 19729  	`n' suffix instead of `size' suffix.
 19730  	* mpn/generic/divrem_2.c: Likewise.
 19731  	* mpn/generic/sb_divrem_mn.c: Nailify.
 19732  	* mpn/generic/tdiv_qr.c: Nailify.
 19733  	(SHL): Remove silly macro.
 19734  
 19735  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by
 19736  	mpn_incr_u call.  Handle nails in ws[n] increment.
 19737  	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise.
 19738  
 19739  	* gmp-h.in (GMP_NUMB_MASK): New #define.
 19740  	(__GMPN_AORS_1): Add version for nails.
 19741  
 19742  	* gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h.
 19743  	(mpn_incr_u): Don't assume `incr' is non-zero.
 19744  	(mpn_decr_u): Similarly.
 19745  
 19746  2002-04-09  Kevin Ryde  <kevin@swox.se>
 19747  
 19748  	* mpfr/*, configure.in: Update to mpfr 2.0.1.
 19749  
 19750  	* tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails.
 19751  	* tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function.
 19752  
 19753  	* mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert.
 19754  
 19755  	* mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
 19756  	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid
 19757  	ELF .size directive.  Reported by LaMont Jones.
 19758  
 19759  	* tests/mpz/t-set_si.c: Add nails support.
 19760  
 19761  2002-04-05  Torbjorn Granlund  <tege@swox.com>
 19762  
 19763  	* gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions.
 19764  	(mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB.
 19765  	Add GMP_NUMB_BITS == 30 version.
 19766  	(__gmp_doprnt, etc): Remove parameter names.
 19767  
 19768  	* mpn/generic/mul_n.c: Nailify Karatsuba code.
 19769  	* mpn/generic/get_str.c: Nailify.
 19770  	* mpn/generic/sqr_basecase.c: Nailify.
 19771  	* mpn/generic/lshift.c: Nailify.
 19772  	* mpn/generic/rshift.c: Likewise.
 19773  	* mpn/generic/add_n.c: Nailify.  Revamp non-nail code.
 19774  	* mpn/generic/sub_n.c: Likewise.
 19775  	* mpn/generic/mul_1.c: Likewise.
 19776  	* mpn/generic/addmul_1.c: Likewise.
 19777  	* mpn/generic/submul_1.c: Likewise.
 19778  
 19779  2002-04-02  Kevin Ryde  <kevin@swox.se>
 19780  
 19781  	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]:
 19782  	Corrections to constraints, and restrict to bigendian.
 19783  
 19784  2002-03-31  Kevin Ryde  <kevin@swox.se>
 19785  
 19786  	* tests/mpz/dive.c: Better diagnostics.
 19787  
 19788  	* tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests.
 19789  
 19790  	* tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest):
 19791  	New functions.
 19792  
 19793  	* tests/t-bswap.c: New file.
 19794  	* tests/Makefile.am (check_PROGRAMS): Add it.
 19795  
 19796  	* tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support.
 19797  
 19798  	* gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord,
 19799  	rename "n" to incr per generic versions, restrict to nails==0.
 19800  	(mpn_incr_u, mpn_decr_u): Add nails support.
 19801  	(GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros.
 19802  
 19803  	* tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New
 19804  	functions.
 19805  	* tests/trace.c: Handle NULL operands.
 19806  
 19807  	* tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary
 19808  	nail support.
 19809  
 19810  	* tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail,
 19811  	refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str,
 19812  	refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb):
 19813  	New functions.
 19814  
 19815  	* gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from
 19816  	ASSERT_MP_LIMB_T.
 19817  
 19818  	* mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put
 19819  	speeds after the copyright notice, so as to keep that clear.
 19820  
 19821  2002-03-29  Kevin Ryde  <kevin@swox.se>
 19822  
 19823  	* configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection,
 19824  	for 32-bit mode.
 19825  
 19826  2002-03-28  Torbjorn Granlund  <tege@swox.com>
 19827  
 19828  	* mpn: Fix spacing in many files.
 19829  
 19830  	* mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c.
 19831  	* mpn/generic/aors_n.c: Split into add_n.c and sub_n.c.
 19832  
 19833  	* mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb.  Fix a comment.
 19834  	* mpn/pa64/sub_n.asm: Likewise.
 19835  
 19836  	* mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb.
 19837  	* mpn/pa64/addmul_1.asm: Likewise.
 19838  	* mpn/pa64/submul_1.asm: Likewise.
 19839  
 19840  2002-03-28  Kevin Ryde  <kevin@swox.se>
 19841  
 19842  	* gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp,
 19843  	reported by epl@unimelb.edu.au.
 19844  	(References): Update Burnikel and Ziegler URL, reported by Keith
 19845  	Briggs.
 19846  
 19847  	* gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from
 19848  	AC_SUBSTs, since autoconf says leading "_" in makefile variables is
 19849  	not portable.
 19850  
 19851  	* demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary.
 19852  	* configure.in, demos/expr/expr-config-h.in: Configs for this.
 19853  
 19854  2002-03-27  Torbjorn Granlund  <tege@swox.com>
 19855  
 19856  	* mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32.
 19857  
 19858  	* configure.in (path_20w): Remove pa64w.
 19859  
 19860  	* mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to
 19861  	that on PA8500.
 19862  
 19863  2002-03-26  Torbjorn Granlund  <tege@swox.com>
 19864  
 19865  	* mpn/pa32: New name for mpn/hppa.
 19866  	* configure.in: Corresponding changes.
 19867  
 19868  	* mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W.
 19869  	* mpn/pa64/umul_ppmm.S: Remove.
 19870  
 19871  	* mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W.
 19872  	* mpn/pa64w/udiv_qrnnd.asm: Remove.
 19873  
 19874  2002-03-26  Kevin Ryde  <kevin@swox.se>
 19875  
 19876  	* mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf
 19877  	handling in "double", for the benefit of alpha.
 19878  
 19879  	* configure (hppa2.0w): Set path to "pa64w pa64".
 19880  
 19881  	* acinclude.m4, configure.in (GMP_C_INLINE): New macro.
 19882  	* acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling.
 19883  
 19884  2002-03-25  Torbjorn Granlund  <tege@swox.com>
 19885  
 19886  	* mpn/pa64w/add_n.s: Remove.
 19887  	* mpn/pa64w/sub_n.s: Remove.
 19888  	* mpn/pa64w/lshift.s: Remove.
 19889  	* mpn/pa64w/rshift.s: Remove.
 19890  	* mpn/pa64w/mul_1.S: Remove.
 19891  	* mpn/pa64w/addmul_1.S: Remove.
 19892  	* mpn/pa64w/submul_1.S: Remove.
 19893  	* mpn/pa64w/sqr_diagonal.asm: Remove.
 19894  
 19895  	* mpn/pa64/mul_1.asm: New file with twice faster code; generalized
 19896  	for both 2.0N and 2.0W.
 19897  	* mpn/pa64/submul_1.asm: Likewise.
 19898  	* mpn/pa64/mul_1.S: Remove.
 19899  	* mpn/pa64/submul_1.S: Remove.
 19900  
 19901  	* mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W.
 19902  
 19903  	* mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W.
 19904  	* mpn/pa64/sub_n.asm: Likewise.
 19905  	* mpn/pa64/lshift.asm: Likewise.
 19906  	* mpn/pa64/rshift.asm: Likewise.
 19907  	* mpn/pa64/add_n.s: Remove.
 19908  	* mpn/pa64/sub_n.s: Remove.
 19909  	* mpn/pa64/lshift.s: Remove.
 19910  	* mpn/pa64/rshift.s: Remove.
 19911  
 19912  2002-03-24  Kevin Ryde  <kevin@swox.se>
 19913  
 19914  	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros.
 19915  	* mpz/inp_raw.c, mpz/out_raw.c: Use them.
 19916  	* acconfig.h (HAVE_HOST_CPU): Add some powerpc types.
 19917  
 19918  	* mpn/powerpc32/750/com_n.asm: New file.
 19919  
 19920  	* mpfr/tests/tout_str.c: Disable random tests, since they fail on
 19921  	alphaev56-unknown-freebsd4.1 and do nothing by default.
 19922  
 19923  	* mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for
 19924  	the benefit of alpha.
 19925  	* mpfr/sqrt.c: Clear nan flag on -0.
 19926  
 19927  	* demos/factorize.c: Use mpn_random() instead of random(), to avoid
 19928  	portability problems.
 19929  
 19930  	* demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid
 19931  	warnings.
 19932  
 19933  	* demos/pexpr.c (setup_error_handler): Corrections to sigstack code.
 19934  
 19935  	* demos/calc/calc.y: Add some `;'s to make bison 1.34 happy.
 19936  
 19937  2002-03-23  Torbjorn Granlund  <tege@swox.com>
 19938  
 19939  	* mpn/pa64/addmul_1.asm: New file with twice faster code; generalized
 19940  	for both 2.0N and 2.0W.
 19941  
 19942  2002-03-22  Kevin Ryde  <kevin@swox.se>
 19943  
 19944  	* tune/time.c: Add SGI hardware counter measuring method, change some
 19945  	abort()s into ASSERT_FAIL()s.
 19946  
 19947  	* configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h.
 19948  	(AC_CHECK_FUNCS): Add syssgi.
 19949  
 19950  	* configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use
 19951  	-mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so
 19952  	denorms work.
 19953  
 19954  	* mpfr/isinteger.c: Fix a memory leak.
 19955  
 19956  2002-03-21  Torbjorn Granlund  <tege@swox.com>
 19957  
 19958  	* tune/speed.c (struct choice_t): Make `r' an mp_limb_t.
 19959  
 19960  2002-03-21  Kevin Ryde  <kevin@swox.se>
 19961  
 19962  	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an
 19963  	AH_VERBATIM and better explanation.
 19964  	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE
 19965  	constants.
 19966  
 19967  	* gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned
 19968  	by mpz_gcdext.
 19969  
 19970  	* demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an
 19971  	autoconf test for stack_t.
 19972  
 19973  	* configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c,
 19974  	tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec,
 19975  	don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and
 19976  	__GMP_LIBGMP_STATIC.
 19977  
 19978  	* gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of
 19979  	tests/t-constants.c.
 19980  
 19981  	* tune/many.pl, tune/speed.h: Remove suffix hack for back.asm.
 19982  
 19983  2002-03-21  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 19984  
 19985  	* mpfr/sin_cos.c (mpfr_sin_cos): New file.
 19986  	* mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it.
 19987  	* mpfr/tan.c: Fix sign in 2nd and 4th quadrants.
 19988  
 19989  	* mpfr/log10.c: Fix hangs on certain inputs.
 19990  
 19991  2002-03-20  Torbjorn Granlund  <tege@swox.com>
 19992  
 19993  	* demos/pexpr.c (setup_error_handler): Declare `s', the first
 19994  	sigaltstack parameter, using `stack_t' just on AIX.
 19995  
 19996  2002-03-19  Torbjorn Granlund  <tege@swox.com>
 19997  
 19998  	* mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead
 19999  	of the callee-saves r30 and r31.
 20000  
 20001  2002-03-19  Kevin Ryde  <kevin@swox.se>
 20002  
 20003  	* tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where
 20004  	previously got the wrong result from "bogomips".
 20005  
 20006  	* mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on
 20007  	750, and smaller too.
 20008  	* mpn/powerpc32/*.asm: Use L(), add some measured speeds.
 20009  
 20010  	* longlong.h (count_trailing_zeros) [vax]: Add a version using ffs,
 20011  	but commented out.
 20012  
 20013  2002-03-17  Kevin Ryde  <kevin@swox.se>
 20014  
 20015  	* tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional
 20016  	".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops.
 20017  	Remove mpn_add_n_inplace and mpn_add_n_self.
 20018  	* tune/many.pl: Fix MULFUNC_PROLOGUE parsing.
 20019  
 20020  	* gmp.texi (Known Build Problems): Note `make' problem with long
 20021  	libgmp.la dependencies list.
 20022  
 20023  	* printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent
 20024  	HAVE_SIZE_T, just use size_t unconditionally.
 20025  	* printf/doprnt.c (%zd etc): Fix 'z' type parsing.
 20026  	* tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests.
 20027  
 20028  	* configure.in: Use AC_COPYRIGHT.
 20029  	Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST).
 20030  
 20031  	* tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already
 20032  	gets an ansi2knr rule from nodist_tuneup_SOURCES.
 20033  
 20034  	* longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test
 20035  	HAVE_HOST_CPU_i686 too.
 20036  
 20037  	* mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if.
 20038  
 20039  2002-03-14  Kevin Ryde  <kevin@swox.se>
 20040  
 20041  	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm,
 20042  	mpn/x86/k6/mmx/com_n.asm: Add nails support.
 20043  
 20044  	* texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1).
 20045  	* gmp.texi (@ma): Remove, @math does this now.
 20046  
 20047  	* mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective
 20048  	outer loops.
 20049  
 20050  	* configure.in (--enable-cxx): Correction to the default stated in the
 20051  	help string.
 20052  	(power*-*-aix*, not powerpc): Use aix.m4, don't run
 20053  	GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4.
 20054  
 20055  2002-03-13  Torbjorn Granlund  <tege@swox.com>
 20056  
 20057  	* mpn/sparc32/gmp-mparam.h: New file.
 20058  
 20059  2002-03-13  Kevin Ryde  <kevin@swox.se>
 20060  
 20061  	* demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos,
 20062  	sin, rename log2 constant to loge2 to make room for log2 function.
 20063  	* demos/expr/t-expr.c: More tests.
 20064  
 20065  	* mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+".
 20066  
 20067  	* mpfr/acos.c: Avoid a memory leak for certain operands.
 20068  
 20069  	* acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro.
 20070  
 20071  	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
 20072  	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
 20073  	Change ac_objext to OBJEXT, which is the documented variable.
 20074  
 20075  	* config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc
 20076  	in the AIX test, since old versions don't have them all.
 20077  
 20078  2002-03-11  Kevin Ryde  <kevin@swox.se>
 20079  
 20080  	* configure.in (LIBC211): New AC_DEFINE, for mpfr.
 20081  
 20082  	* configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2
 20083  	to fall back on it, but detect it doesn't work with gcc 2.95.  Use
 20084  	single mips-defs.m4 for both mips32 and mips64.
 20085  	* acinclude.m4 (GMP_GCC_MIPS_O32): New macro.
 20086  	* mpn/mips32/mips-defs.m4: Renamed from mips.m4.
 20087  	* mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4).
 20088  
 20089  	* mpn/powerpc32/750: New directory.
 20090  	* configure.in (powerpc740, powerpc750, powerpc7400): Use it.
 20091  	* mpn/powerpc32/750/gmp-mparam.h: New file.
 20092  
 20093  	* config.sub, gmp.texi (ultrasparc1): Remove this, just use plain
 20094  	"ultrasparc".
 20095  
 20096  2002-03-10  Kevin Ryde  <kevin@swox.se>
 20097  
 20098  	* mpfr: Update to 20020301, except internal_ceil_exp2.c,
 20099  	internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c,
 20100  	i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3.  And sqrtrem.c
 20101  	removed since no longer required.
 20102  	* mpfr/mpfr.texi: Fix some formatting.
 20103  	* mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling.
 20104  	* mpfr/sinh.c: Patch by Paul to fix err calculation when t==0.
 20105  	* mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be
 20106  	sorted out.
 20107  
 20108  	* configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups
 20109  	for clarity.
 20110  
 20111  	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New
 20112  	macros.
 20113  
 20114  2002-03-07  Kevin Ryde  <kevin@swox.se>
 20115  
 20116  	* gmp.texi (Build Options): Note all the ultrasparcs accepted.
 20117  	(Language Bindings): Add Math::BigInt::GMP.
 20118  
 20119  	* config.sub (ultrasparc2i): New cpu type.
 20120  	* config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection.
 20121  
 20122  2002-03-05  Kevin Ryde  <kevin@swox.se>
 20123  
 20124  	* longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67,
 20125  	alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h).
 20126  	(count_leading_zeros) [sparclite]: Fix parameter order (as per gcc
 20127  	longlong.h).
 20128  	* acconfig.h (HAVE_HOST_CPU_alphaev68): New define.
 20129  
 20130  	* config.guess [i?86-*-*]: Suppress error messages if compiler not
 20131  	found or test program won't run.
 20132  	[rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test.
 20133  
 20134  2002-03-04  Torbjorn Granlund  <tege@swox.com>
 20135  
 20136  	* mpn/generic/pow_1.c: New file.
 20137  
 20138  2002-03-03  Kevin Ryde  <kevin@swox.se>
 20139  
 20140  	* gmp.texi (Build Options): Note compiler must be able to fully link,
 20141  	add alphapca57 and alphaev68, give a clearer example of MPN_PATH
 20142  	(Debugging): Add notes on valgrind.
 20143  	(C++ Formatted Output): Clarify mpf showbase handling, in particular
 20144  	note "00.4" in octal.
 20145  
 20146  	* printf/doprntf.c: Do a showbase on octal float fractions, for
 20147  	instance "00.4" where previously it gave "0.4".
 20148  	* tests/cxx/t-ostream.cc: Update.
 20149  
 20150  	* gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test
 20151  	__WIN32__ for Borland C, reported by "delta trinity".
 20152  
 20153  	* gmp-h.in, mp-h.in: Use <cstddef> for size_t under C++, suggested by
 20154  	Hans Aberg some time ago.
 20155  	* gmp-h.in (<iosfwd>): Move to top of file for clarity.
 20156  
 20157  	* Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++.
 20158  	(CXX_OBJECTS): Add osfuns$U.lo.
 20159  	* dummy.cc: New file.
 20160  	* cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX.
 20161  	(libcxx_la_SOURCES): Add osfuns.cc.
 20162  	* gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs.
 20163  	* gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx.
 20164  
 20165  	* longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used.
 20166  
 20167  	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to
 20168  	__totbits for nails.
 20169  
 20170  	* gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind.
 20171  	(JACOBI_0LS): Ditto, and fix parens around arguments.
 20172  
 20173  	* mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels
 20174  	unique, since simplified L() scheme no longer gives that effect.
 20175  	(notl_or_xorl_GMP_NUMB_MASK): New macro.
 20176  	Add m4_assert_numargs in a few places.
 20177  
 20178  	* configure.in (*sparc*): Fix cycle counter setups for ABI=64.
 20179  
 20180  2002-02-28  Torbjorn Granlund  <tege@swox.com>
 20181  
 20182  	* mpn/vax/gmp-mparam.h: New file.
 20183  
 20184  2002-02-28  Kevin Ryde  <kevin@swox.se>
 20185  
 20186  	* gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block,
 20187  	reported by librik@panix.com.
 20188  
 20189  	* gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT):
 20190  	Use __declspec(dllexport) and __declspec(dllimport) on Borland.
 20191  	* gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland.
 20192  	Reported by "delta trinity".
 20193  
 20194  	* gmp-impl.h (va_copy): Fall back on memcpy, not "=".
 20195  
 20196  	* mpn/generic/pre_mod_1.c: Add a comment about obsolescence.
 20197  
 20198  	* tune/time.c (MICROSECONDS_P): Don't trust time differences of 1
 20199  	microsecond.
 20200  
 20201  	* tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for
 20202  	test data strings, avoids warnings on Sun CC.
 20203  
 20204  2002-02-27  Torbjorn Granlund  <tege@swox.com>
 20205  
 20206  	* configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to
 20207  	disable some crazy -fast optimizations.
 20208  
 20209  2002-02-25  Torbjorn Granlund  <tege@swox.com>
 20210  
 20211  	* configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable
 20212  	denorm handling under -fast.
 20213  
 20214  2002-02-25  Kevin Ryde  <kevin@swox.se>
 20215  
 20216  	* configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc,
 20217  	provide an ev67 -> ev6 fallback.  Fix -arch,-tune selection for DEC C.
 20218  	Allow ~ for space in optional options lists.
 20219  
 20220  	* tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler
 20221  	mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div.
 20222  	(tune_preinv_mod_1): Ditto with mpn_mod_1.
 20223  
 20224  	* tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type"
 20225  	parameter, try to make the code a bit clearer.
 20226  
 20227  	* tune/freq.c: Reduce the period measured for cycles versus
 20228  	gettimeofday, add cycles versus microsecond getrusage.
 20229  
 20230  	* mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong.
 20231  
 20232  2002-02-24  Torbjorn Granlund  <tege@swox.com>
 20233  
 20234  	* configure.in: For sparc under solaris2.[7-9], pass -fast instead of
 20235  	other optimization options.
 20236  
 20237  2002-02-23  Kevin Ryde  <kevin@swox.se>
 20238  
 20239  	* mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro.
 20240  	(PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl
 20241  	when GSYM_PREFIX non-empty.
 20242  
 20243  	* tune/time.c, tune/speed.h (speed_time_init): Include clock tick
 20244  	period in speed_time_string.
 20245  	* tune/time.c, configure.in (clock_gettime): New measuring method.
 20246  
 20247  	* tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid
 20248  	conflicts with a macro version in gmp-impl.h, eg. mpn_com_n.
 20249  
 20250  2002-02-22  Torbjorn Granlund  <tege@swox.com>
 20251  
 20252  	* demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte.
 20253  
 20254  2002-02-22  Kevin Ryde  <kevin@swox.se>
 20255  
 20256  	* tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic.
 20257  
 20258  2002-02-20  Torbjorn Granlund  <tege@swox.com>
 20259  
 20260  	* configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not
 20261  	`extra_functions'.
 20262  
 20263  	* printf/doprnt.c: Conditionally include inttypes.h.
 20264  	* printf/repl-vsnprintf.c: Likewise.
 20265  	* scanf/doscan.c: Likewise.
 20266  
 20267  2002-02-20  Kevin Ryde  <kevin@swox.se>
 20268  
 20269  	* mpn/x86/k7/mmx/com_n.asm: New file.
 20270  
 20271  	* mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc,
 20272  	to ensure they needn't live past the initial allocs in a normal build.
 20273  
 20274  	* mpn/generic/mod_34lsub1.c: Note this is for internal use.
 20275  
 20276  2002-02-19  Torbjorn Granlund  <tege@swox.com>
 20277  
 20278  	* Clean up *_THRESHOLD names.  Many files affected.
 20279  
 20280  	* mpn/mips32: Asm-ify 32-bit mips code.
 20281  	Move files from `mips2' to `mips32' directory.
 20282  	* mpn/mips64: Move files from `mips3' to `mips64' directory.
 20283  	* configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'.
 20284  
 20285  2002-02-19  Kevin Ryde  <kevin@swox.se>
 20286  
 20287  	* acinclude.m4, configure.in (GMP_PROG_LEX): New macro.
 20288  
 20289  	* tune/tuneup.c (one): Start next threshold at a max of previous ones,
 20290  	in order to get a good starting point for TOOM3_SQR_THRESHOLD if
 20291  	KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only).
 20292  
 20293  	* configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE
 20294  	replacing GMP_MPARAM_H_FILENAME.  Suggest a new file in a cpu specific
 20295  	subdirectory rather than mpn/generic.
 20296  
 20297  	* acinclude.m4 (POWERPC64_PATTERN): New macro.
 20298  	* configure.in (powerpc*-*-*): Use it.
 20299  	(powerpc*-*-*): Use umul in 32L and aix64.
 20300  	(mips*-*-*): Use umul, 32 and 64 bit versions.
 20301  
 20302  2002-02-18  Torbjorn Granlund  <tege@swox.com>
 20303  
 20304  	* longlong.h: Add basic x86-64 support.
 20305  
 20306  2002-02-17  Torbjorn Granlund  <tege@swox.com>
 20307  
 20308  	* demos/pexpr.c: Support `-X' for upper case hex, make `-x' output
 20309  	lower case hex.
 20310  
 20311  	* mpn/mips2/umul.s: Make it actually work.
 20312  	* mpn/mips3/umul.asm: New file.
 20313  
 20314  	* mpn/mips2/gmp-mparam.h: New file.
 20315  
 20316  2002-02-16  Torbjorn Granlund  <tege@swox.com>
 20317  
 20318  	* mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after
 20319  	umul_ppmm calls.
 20320  
 20321  2002-02-16  Kevin Ryde  <kevin@swox.se>
 20322  
 20323  	* config.guess (alpha-*-*): Do alpha exact cpu probes on any system,
 20324  	and only if configfsf.guess gives a plain "alpha".
 20325  
 20326  	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64
 20327  	linker invocation problem.
 20328  
 20329  2002-02-15  Torbjorn Granlund  <tege@swox.com>
 20330  
 20331  	* mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial
 20332  	digits using umul_ppmm, then switch to plain multiplication.
 20333  
 20334  	* config.guess: Rewrite Alpha subtype detection code for *bsd systems.
 20335  
 20336  2002-02-15  Kevin Ryde  <kevin@swox.se>
 20337  
 20338  	* gmp.texi (Build Options): Note powerpc exact cpu types.
 20339  	(Debugging): Advertise DEBUG in memory.c.
 20340  
 20341  	* config.sub, config.guess: Add some powerpc exact cpus.
 20342  	* configure.in: Add configs for them.
 20343  
 20344  	* memory.c [__NeXT__]: Remove unused #define of "static".
 20345  	(__gmp_default_allocate, __gmp_default_reallocate): Print size if
 20346  	allocation fails, don't use perror.
 20347  
 20348  	* gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes.
 20349  
 20350  2002-02-14  Torbjorn Granlund  <tege@swox.com>
 20351  
 20352  	* mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems.
 20353  
 20354  2002-02-14  Kevin Ryde  <kevin@swox.se>
 20355  
 20356  	* tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of
 20357  	alpha.
 20358  
 20359  	* macos/README: Bug reports to bug-gmp@gnu.org, clarify MacOS X a bit.
 20360  
 20361  	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE.
 20362  
 20363  	* tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in
 20364  	some diagnostic printouts.
 20365  	* tune/time.c (speed_cycletime): Note can be 0.0.
 20366  
 20367  2002-02-12  Torbjorn Granlund  <tege@swox.com>
 20368  
 20369  	* mpn/alpha/mul_1.asm: Add mpn_mul_1c entry.
 20370  
 20371  	* mpn/pa64w/sqr_diagonal.asm: Use L() for labels.
 20372  
 20373  2002-02-11  Torbjorn Granlund  <tege@swox.com>
 20374  
 20375  	* mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to
 20376  	accommodate tuneup compiles.
 20377  
 20378  2002-02-11  Kevin Ryde  <kevin@swox.se>
 20379  
 20380  	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add
 20381  	noalign option.
 20382  	* mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align".
 20383  
 20384  	* gmp.texi (Debugging): Notes on Checker.
 20385  	(Other Multiplication): Move note on float FFTs to here.
 20386  	(Assembler Floating Point): New text and revisions by Torbjorn,
 20387  	picture formatting by me.
 20388  	Simplify tex pictures elsewhere a bit, share heights, eliminate some
 20389  	gaps at line joins.
 20390  
 20391  2002-02-11  Torbjorn Granlund  <tege@swox.com>
 20392  
 20393  	* mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction
 20394  	limbs and use multiplication for digit development.  Trim allocation of
 20395  	buf.  Get rid of code for !USE_MULTILIMB.
 20396  
 20397  2002-02-10  Torbjorn Granlund  <tege@swox.com>
 20398  
 20399  	* mpn/generic/set_str.c (mpn_set_str): Undo this:
 20400  	Change invocations of mpn_add_1 to instead use mpn_incr_u.
 20401  
 20402  	* tests/mpz/convert.c: Free str only after it is used in error message.
 20403  
 20404  	* mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10
 20405  	and generic bases.
 20406  
 20407  	* mpn/mp_bases.c: Add entries for base 256.  Remove __ prefix from
 20408  	table name.
 20409  	* gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making
 20410  	it __gmpn_bases instead of __gmpn_mp_bases.
 20411  	(mp_bases): New #define.
 20412  	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256.
 20413  	(SPEED_ROUTINE_MPN_GET_STR): Likewise.
 20414  
 20415  2002-02-09  Torbjorn Granlund  <tege@swox.com>
 20416  
 20417  	* mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available.
 20418  	Change invocations of mpn_add_1 to instead use mpn_incr_u.
 20419  
 20420  2002-02-09  Kevin Ryde  <kevin@swox.se>
 20421  
 20422  	* mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c,
 20423  	mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c,
 20424  	mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c,
 20425  	mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c,
 20426  	mpz/urandomb.c: Use GMP_NUMB_BITS.
 20427  
 20428  	* mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to
 20429  	stop it appearing uninitialized.
 20430  
 20431  	* gmp-h.in (__GMP_NOTHROW): New macro.
 20432  	(mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs,
 20433  	mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p,
 20434  	mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p,
 20435  	mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui,
 20436  	mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1,
 20437  	mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap,
 20438  	mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p,
 20439  	mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p,
 20440  	mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si,
 20441  	mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw,
 20442  	mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount,
 20443  	mpn_sub_1): Use it.
 20444  
 20445  	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from
 20446  	mpn_sizeinbase, and use GMP_NUMB_BITS.
 20447  	* mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use
 20448  	MPN_SIZEINBASE.
 20449  	* mpbsd/mtox.c: Use MPN_SIZEINBASE_16.
 20450  
 20451  	* configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove.
 20452  	* mpn/generic/sizeinbase.c: Remove file.
 20453  
 20454  	* gmp-impl.h (MPN_GET_STR_SIZE): Remove.
 20455  	* tests/mpn/t-g_str_size.c: Remove file.
 20456  	* tests/mpn/Makefile.am: Update.
 20457  
 20458  	* Makefile.am (dist-hook): Don't distribute cvs merge ".#" files.
 20459  
 20460  2002-02-08  Torbjorn Granlund  <tege@swox.com>
 20461  
 20462  	* configure.in: Override extra_functions for all sparcv8 systems, not
 20463  	just supersparc.
 20464  
 20465  2002-02-06  Kevin Ryde  <kevin@swox.se>
 20466  
 20467  	* tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned.
 20468  	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in
 20469  	destination cache priming.
 20470  
 20471  	* printf/doprnt.c: Fix parsing of %s and %p conversions.
 20472  	* tests/misc/t-printf.c (check_misc): Add some tests.
 20473  
 20474  2002-02-03  Torbjorn Granlund  <tege@swox.com>
 20475  
 20476  	* mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc.
 20477  
 20478  	* mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb.
 20479  	Remove redundant chars_per_limb.  Reverse 4 loops in basecase code for
 20480  	speed.  Use MP_BASES_CHARS_PER_LIMB_10.
 20481  
 20482  2002-02-03  Kevin Ryde  <kevin@swox.se>
 20483  
 20484  	* acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a
 20485  	cross compile with the native nm, helps OSF for instance.
 20486  	(GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6,
 20487  	allow "N" from nm for OSF, allow for "t" for other systems, but prefer
 20488  	no mention of the symbol at all.
 20489  
 20490  	* tune/tuneup.c (print_define_remark): New function.
 20491  	Turn some "#if"s into plain "if"s.
 20492  
 20493  	* tune/tuneup.c, gmp-impl.h, tune/Makefile.am
 20494  	(GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these.
 20495  	* mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant
 20496  	GET_STR_PRECOMPUTE_THRESHOLD.
 20497  
 20498  2002-02-02  Torbjorn Granlund  <tege@swox.com>
 20499  
 20500  	* mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration.
 20501  
 20502  2002-02-02  Kevin Ryde  <kevin@swox.se>
 20503  
 20504  	* mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO
 20505  	to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check.
 20506  
 20507  	* tune/set_strb.c, tune/set_strs.c: New files.
 20508  	* tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them.
 20509  	* tune/tuneup.c: Tune SET_STR_THRESHOLD.
 20510  	(DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[].
 20511  
 20512  2002-02-01  Torbjorn Granlund  <tege@swox.com>
 20513  
 20514  	* tests/mpz/convert.c: Increase operand size.  Add (yet disabled) code
 20515  	for testing with random strings.
 20516  
 20517  	* mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic.
 20518  	(mpn_dc_get_str, mpn_sb_get_str): New functions.
 20519  
 20520  2002-01-31  Kevin Ryde  <kevin@swox.se>
 20521  
 20522  	* gmpxx.h (cmp): Renamed from "compare".
 20523  
 20524  	* configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling.
 20525  	(PROLOGUE): Allow new style optional second parameter when grepping.
 20526  
 20527  	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
 20528  	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
 20529  	Use $ac_objext for object filenames.
 20530  	(GMP_ASM_UNDERSCORE): Use CCAS to assemble.
 20531  
 20532  	* demos/pexpr-config-h.in: New file.
 20533  	* configure.in: Generate demos/pexpr-config.h.
 20534  	(AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction,
 20535  	sigaltstack, sigstack.
 20536  	* acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New
 20537  	macros.
 20538  	* demos/pexpr.c: Use pexpr-config.h, not various #ifdefs.
 20539  	(setup_error_handler): Use signal if sigaction not available, allow
 20540  	for SIGBUS missing on mingw.
 20541  	(main): Use time() for random seed if gettimeofday not available.
 20542  	(cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE.
 20543  
 20544  2002-01-30  Torbjorn Granlund  <tege@swox.com>
 20545  
 20546  	* mpn/generic/set_str.c: Rewrite to become sub-quadratic.
 20547  	(convert_blocks): New function.
 20548  
 20549  2002-01-30  Kevin Ryde  <kevin@swox.se>
 20550  
 20551  	* gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT,
 20552  	ASSERT_MPN, ASSERT_MP_LIMB_T): New macros.
 20553  
 20554  	* mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data
 20555  	generator program, share __gmp_fib_table initializers between bit
 20556  	sizes, cope with bit sizes other than those specifically setup.
 20557  	* gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding
 20558  	rearrangement of conditionals.
 20559  	* tests/mpz/t-fib_ui.c (check_fib_table): New test.
 20560  
 20561  2002-01-28  Kevin Ryde  <kevin@swox.se>
 20562  
 20563  	* mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use
 20564  	an expression for _mp_size.
 20565  
 20566  	* mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store
 20567  	dummy values to low limbs to stop them appearing uninitialized.
 20568  
 20569  2002-01-26  Kevin Ryde  <kevin@swox.se>
 20570  
 20571  	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and
 20572  	Vincent.
 20573  
 20574  2002-01-24  Kevin Ryde  <kevin@swox.se>
 20575  
 20576  	* configure.in: Extra quoting to get argument help messages right.
 20577  
 20578  	* gmp.texi (Efficiency): Suggest hex or octal for input and output.
 20579  	(Formatted Output Strings): Mention "*" for width and precision.
 20580  
 20581  	* mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c.
 20582  	Use POW2_P, use __mp_bases[base].big_base for log2(base).
 20583  	* configure.in, mpn/Makefile.am: Add it.
 20584  	* gmp-impl.h: Add prototype.
 20585  	* mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c,
 20586  	mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it.
 20587  	* mpz/get_str.c: Write directly to user buffer, skip at most one
 20588  	leading zero, eliminate special case for x==0.
 20589  	* mpbsd/mtox.c: Allocate exact result space at the start, eliminate
 20590  	special case for x==0.
 20591  	* mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase.
 20592  
 20593  	* configure.in (--enable-nails): New option.
 20594  	(GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h
 20595  	and config.m4.
 20596  	* gmp-h.in: Add templates.
 20597  
 20598  	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine
 20599  	error on AIX xlc.
 20600  
 20601  2002-01-23  Torbjorn Granlund  <tege@swox.com>
 20602  
 20603  	* mpn/generic/get_str.c: Correct type of `out_len'.
 20604  
 20605  2002-01-22  Kevin Ryde  <kevin@swox.se>
 20606  
 20607  	* mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs.
 20608  
 20609  	* mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift.
 20610  
 20611  	* mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0.
 20612  
 20613  2002-01-21  Torbjorn Granlund  <tege@swox.com>
 20614  
 20615  	* longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative
 20616  	declaration.
 20617  	(64-bit powerpc add_ssaaaa): Likewise.
 20618  
 20619  2002-01-20  Kevin Ryde  <kevin@swox.se>
 20620  
 20621  	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc
 20622  	solaris 2.7 problems.
 20623  
 20624  2002-01-19  Torbjorn Granlund  <tege@swox.com>
 20625  
 20626  	* demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1.
 20627  	(cleanup_and_exit): Improve error message wording.
 20628  
 20629  2002-01-19  Kevin Ryde  <kevin@swox.se>
 20630  
 20631  	* mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with
 20632  	gmp-impl.h.
 20633  
 20634  2002-01-17  Torbjorn Granlund  <tege@swox.com>
 20635  
 20636  	* mpfr/mpfr-test.h: Test "__hpux", not "hpux".  Mask off mrand48
 20637  	return value to 31 bits to work around sloppy mpfr #include practices.
 20638  
 20639  	* mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h.
 20640  	Make sure to #include mpfr-test.h from all files that use random().
 20641  
 20642  2002-01-17  Kevin Ryde  <kevin@swox.se>
 20643  
 20644  	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro.
 20645  	* gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c,
 20646  	mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c,
 20647  	printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c,
 20648  	mpbsd/mtox.c: Some fixes to compile as C++.
 20649  
 20650  	* mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter,
 20651  	replacing COUNT_TRAILING_ZEROS_TIME test.  Add a third method too.
 20652  	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
 20653  	measuring of mpn_jacobi_base methods.
 20654  	* tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files.
 20655  	* tune/tuneup.c (JACOBI_BASE_METHOD): Tune this.
 20656  	* mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro.
 20657  
 20658  	* gmp-h.in: Use __gmp prefix on variables in inlines.
 20659  
 20660  	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused.
 20661  
 20662  	* mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB.
 20663  	Use CNST_LIMB for some constants.
 20664  
 20665  2002-01-15  Kevin Ryde  <kevin@swox.se>
 20666  
 20667  	* tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la.
 20668  
 20669  	* printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES.
 20670  
 20671  	* mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and
 20672  	mpf_get_str give the same for ndigits==0.
 20673  
 20674  	* mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a
 20675  	powerpc64 gcc 3.0 -O2 bug.
 20676  
 20677  	* tests/memory.c, tests/tests.h (tests_memory_validate): New function.
 20678  
 20679  2002-01-14  Kevin Ryde  <kevin@swox.se>
 20680  
 20681  	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c,
 20682  	mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and
 20683  	UDIV_TIME, just default to preinv.
 20684  	* gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto.
 20685  	(DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME
 20686  	and UDIV_TIME, make default thresholds 0.
 20687  	(UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros.
 20688  	* mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME,
 20689  	UDIV_NORM_PREINV_TIME): Remove macros.
 20690  
 20691  	* gmp.texi (Headers and Libraries): New section, being the header
 20692  	notes from "GMP Basics" and some new stuff.
 20693  	(Parameter Conventions): Notes on "const" parameters.
 20694  	(Formatted Output Strings): Add type N, tweak some wording.
 20695  
 20696  	* tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0.
 20697  
 20698  2002-01-12  Kevin Ryde  <kevin@swox.se>
 20699  
 20700  	* mpz/root.c: Add <stdlib.h>, for abort().
 20701  
 20702  	* mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
 20703  	* mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c,
 20704  	tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c,
 20705  	tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c,
 20706  	trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c,
 20707  	tui_div.c: Fixes for K&R.
 20708  
 20709  	* tests/misc/t-scanf.c (check_misc, check_misc):
 20710  
 20711  	* tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c:
 20712  	Avoid strings in ASSERT, not enjoyed by K&R.
 20713  	* gmp-impl.h (ASSERT): Note this.
 20714  
 20715  	* tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO.
 20716  
 20717  	* mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and
 20718  	sources in a different directory.
 20719  
 20720  	* printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double.
 20721  
 20722  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c,
 20723  	mul_2.c, pre_divrem_1.c.
 20724  
 20725  	* gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n,
 20726  	mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c,
 20727  	mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc,
 20728  	mpn_submul_1c): Move to gmp-impl.h, since they're undocumented.
 20729  
 20730  	* gmp-impl.h (mpn_reciprocal): Remove, unused.
 20731  
 20732  	* tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS.
 20733  
 20734  2002-01-11  Kevin Ryde  <kevin@swox.se>
 20735  
 20736  	* mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L().
 20737  
 20738  2002-01-08  Kevin Ryde  <kevin@swox.se>
 20739  
 20740  	* mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function
 20741  	name to EPILOGUE, check for missing or wrong function name EPILOGUE.
 20742  	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4,
 20743  	mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4,
 20744  	mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a
 20745  	few more asserts.
 20746  	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm,
 20747  	mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp"
 20748  	parameter on plain PROLOGUE.
 20749  
 20750  	* gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra
 20751  	limb, and doesn't clobber at all for power of 2 bases.
 20752  	(Language Bindings): Add python gmpy.
 20753  
 20754  	* mpz/get_str.c: Determine realloc size arithmetically.
 20755  
 20756  	* mpbsd/mtox.c: Size memory block returned to actual space needed.
 20757  	* gmp.texi (BSD Compatible Functions): Describe this.
 20758  
 20759  	* mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases.
 20760  	* mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a
 20761  	missing TMP_FREE.
 20762  
 20763  	* mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for
 20764  	mpn_get_str clobber.
 20765  
 20766  	* gmp-impl.h (MPN_GET_STR_SIZE): New macro.
 20767  	* mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c,
 20768  	tune/speed.h: Use it.
 20769  	* tests/mpn/t-g_str_size.c: New test.
 20770  	* tests/mpn/Makefile.am: Add it.
 20771  
 20772  	* gmp-impl.h (POW2_P): New macro.
 20773  	* mpn/generic/get_str.c, tests/misc.c: Use it.
 20774  
 20775  	* printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z.
 20776  	* tests/misc/t-printf.c: Add tests.
 20777  	* gmp-impl.h (ASSERT_CODE): New macro.
 20778  
 20779  	* tests/mpbsd/t-mtox.c: New test.
 20780  	* tests/mpbsd/Makefile.am: Add it.
 20781  	(allfuns_LDADD): Don't link against libgmp when testing everything in
 20782  	libmp can link.
 20783  
 20784  2002-01-07  Torbjorn Granlund  <tege@swox.com>
 20785  
 20786  	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions.
 20787  
 20788  2002-01-06  Kevin Ryde  <kevin@swox.se>
 20789  
 20790  	* mpn/generic/pre_divrem_1.c: Don't support size==0.
 20791  	* tests/devel/try.c: Update.
 20792  
 20793  	* mpn/generic/get_str.c: Add special case for base==10.
 20794  	* gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10,
 20795  	MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New
 20796  	constants.
 20797  	* tests/t-constants.c: Add checks.
 20798  	* mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print
 20799  	all standard bits-per-limb by default.
 20800  
 20801  	* demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use
 20802  	__GMP_PROTO.
 20803  
 20804  	* gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to
 20805  	keep out of application namespace.
 20806  
 20807  2002-01-04  Torbjorn Granlund  <tege@swox.com>
 20808  
 20809  	* gmp-impl.h: Move _PROTO declaration to before its first usages.
 20810  
 20811  2002-01-04  Kevin Ryde  <kevin@swox.se>
 20812  
 20813  	* gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and
 20814  	don't use #ifndef just define it ourselves.
 20815  	* gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big
 20816  	edits internally, for the moment.
 20817  
 20818  2002-01-03  Torbjorn Granlund  <tege@swox.com>
 20819  
 20820  	* tune/speed.c (usage): Insert "\n\" into a string.
 20821  
 20822  2001-12-30  Torbjorn Granlund  <tege@swox.com>
 20823  
 20824  	* mpn/pa64/udiv_qrnnd.c: Remove file.
 20825  	* mpn/pa64w/udiv_qrnnd.c: Remove file.
 20826  
 20827  	* gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns
 20828  	indented by tab).
 20829  	(MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz".
 20830  
 20831  	* gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss,
 20832  	in one more case.
 20833  
 20834  2001-12-30  Kevin Ryde  <kevin@swox.se>
 20835  
 20836  	* mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro.
 20837  	Use "do while" for dig_per_u loop since it's non-zero.
 20838  	* acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates.
 20839  
 20840  	* mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c,
 20841  	mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h,
 20842  	tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c,
 20843  	tune/many.pl (mpn_mul_2): New parameter style.
 20844  	* gmp-impl.h (mpn_mul_2): Add prototype.
 20845  	* configure.in (gmp_mpn_functions_optional): Add mul_2.
 20846  
 20847  	* longlong.h (__vxworks__): Remove from powerpc tests, not correct,
 20848  	not on its own at least.
 20849  
 20850  	* tune/speed.c: Add "aas" to specify 0xAA..AA data.
 20851  
 20852  	* tune/tuneup.c (print_define_end): Indicate "never" and "always".
 20853  
 20854  2001-12-29  Torbjorn Granlund  <tege@swox.com>
 20855  
 20856  	* mpq/set_d.c: ANSI-fy.
 20857  	* mpz/invert.c: Use PTR and SIZ (cosmetic change).
 20858  
 20859  	* mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word.
 20860  
 20861  2001-12-28  Torbjorn Granlund  <tege@swox.com>
 20862  
 20863  	* mpn/sparc64/sqr_diagonal.asm: New file.
 20864  
 20865  2001-12-28  Kevin Ryde  <kevin@swox.se>
 20866  
 20867  	* mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop
 20868  	only until msize==1.
 20869  
 20870  	* tune/tuneup.c: Break up all() for clarity.
 20871  	(USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain
 20872  	division udiv_qrnnd, not the tuned and possibly preinv version.
 20873  
 20874  	* tune/freq.c: Split sysctl and sysctlbyname probes into separate
 20875  	functions, shorten some identifiers, put descriptions inside
 20876  	functions, define functions unconditionally and do nothing if
 20877  	requisites not available.
 20878  
 20879  	* mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX.
 20880  
 20881  	* acinclude.m4, configure.in (GMP_C_RESTRICT): New macro.
 20882  
 20883  	* mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2).
 20884  
 20885  	* demos/calc/calc.y: Improve some error messages.
 20886  
 20887  2001-12-28  Torbjorn Granlund  <tege@swox.com>
 20888  
 20889  	* mpn/sparc64/mul_1.asm: Rename r72 -> r80.
 20890  	* mpn/sparc64/addmul_1.asm: Likewise.
 20891  
 20892  2001-12-27  Torbjorn Granlund  <tege@swox.com>
 20893  
 20894  	* mpn/generic/tdiv_qr.c: Misc formatting cleanups.
 20895  	For switch case 2, replace `dn' with its value (2).
 20896  
 20897  2001-12-25  Torbjorn Granlund  <tege@swox.com>
 20898  
 20899  	* tests/devel/mul_1.c: Add FIXED_XLIMB.
 20900  	* tests/devel/addmul_1.c: Likewise.
 20901  	* tests/devel/submul_1.c: Likewise.
 20902  
 20903  	* tests/devel/add_n.c: Improve error message.
 20904  	Accept command line argument for # of tests.
 20905  	* tests/devel/sub_n.c: Likewise.
 20906  
 20907  	* tests/devel/: Remove CLOCK settings.
 20908  
 20909  	* mpn/sparc32/v9/mul_1.asm: Rewrite.
 20910  	* mpn/sparc32/v9/addmul_1.asm: Rewrite.
 20911  	* mpn/sparc32/v9/submul_1.asm: Rewrite.
 20912  
 20913  2001-12-24  Torbjorn Granlund  <tege@swox.com>
 20914  
 20915  	* mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)).
 20916  	* mpn/sparc64/addmul_1.asm: Likewise.
 20917  
 20918  2001-12-23  Torbjorn Granlund  <tege@swox.com>
 20919  
 20920  	* mpn/generic/get_str.c: Move final ASSERT to just before zero fill
 20921  	loop.
 20922  
 20923  2001-12-22  Torbjorn Granlund  <tege@swox.com>
 20924  
 20925  	* mpn/generic/get_str.c: Move ASSERTs out of loops.  Split digit
 20926  	generation code into two loops, saving a test of msize in the loop.
 20927  
 20928  2001-12-22  Kevin Ryde  <kevin@swox.se>
 20929  
 20930  	* mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting
 20931  	function name in local labels.
 20932  
 20933  	* mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of
 20934  	ASSERTs.
 20935  
 20936  	* mpn/generic/pre_divrem_1.c: New file.
 20937  	* configure.in (gmp_mpn_functions): Add it.
 20938  	* gmp-impl.h (mpn_preinv_divrem_1): Add prototype.
 20939  	(USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros.
 20940  	* tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c,
 20941  	tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and
 20942  	measuring.
 20943  	* tune/tuneup.c: Determine USE_PREINV_DIVREM_1.
 20944  	* tune/pre_divrem_1.c: New file.
 20945  	* tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function.
 20946  
 20947  	* tests/mpz/t-io_raw.c: New file.
 20948  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 20949  
 20950  	* mpz/inp_raw.c, mpz/out_raw.c: Rewrite.
 20951  	* acinclude.m4, configure.in (AC_C_BIGENDIAN): New test.
 20952  	* gmp-impl.h (BSWAP_LIMB): New macro.
 20953  
 20954  	* acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand
 20955  	executables will run, per AC_PROG_CC.  This detects ABI=64 is unusable
 20956  	in a native sparc solaris 7 build with the kernel in 32-bit mode.
 20957  	* gmp.texi (ABI and ISA): Add notes on this, add an example configure
 20958  	setting an ABI.
 20959  
 20960  	* tune/tuneup.c, configure.in: Print the gmp-mparam.h filename.
 20961  	* tune/tuneup.c: Print the CPU frequency.
 20962  
 20963  	* tune/time.c, tune/speed.h: Add s390 "stck" method, flatten
 20964  	conditionals in speed_time_init a bit, use have_* variables to let
 20965  	some code go dead in speed_starttime and speed_endtime.
 20966  
 20967  	* tune/freq.c (speed_cpu_frequency_irix_hinv): New function.
 20968  
 20969  	* Makefile.am, configure.in: Restore mpfr.
 20970  
 20971  	* configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX.
 20972  	* demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add
 20973  	lucnum function.
 20974  	* demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC),
 20975  	$(LEX) and $(LEXLIB).
 20976  	* demos/calc/calcread.c, demos/calc/calc-common.h,
 20977  	demos/calc/calc-config-h.in, demos/calc/README: New files.
 20978  
 20979  	* configure.in: Put demos/expr configs in expr-config.h.
 20980  	* demos/expr/expr-config-h.in: New file.
 20981  	* demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs
 20982  	from expr-config.h.
 20983  	* demos/expr/Makefile.am: Update.
 20984  
 20985  	* demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious
 20986  	returns.
 20987  
 20988  2001-12-20  Torbjorn Granlund  <tege@swox.com>
 20989  
 20990  	* mpn/sparc64/mul_1.asm: Trim an instruction.
 20991  	* mpn/sparc64/addmul_1.asm: Likewise.
 20992  
 20993  	* mpn/ia64/add_n.asm: Rewrite.
 20994  	* mpn/ia64/sub_n.asm: Rewrite.
 20995  
 20996  2001-12-19  Torbjorn Granlund  <tege@swox.com>
 20997  
 20998  	* mpn/ia64/mul_1.asm: Rewrite.
 20999  	* mpn/ia64/addmul_1.asm: Rewrite.
 21000  	* mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS.
 21001  
 21002  	* tests/devel/mul_1.c: Improve error message.
 21003  	Accept command line argument for # of tests.
 21004  	* tests/devel/addmul_1.c: Likewise.
 21005  	* tests/devel/submul_1.c: Likewise.
 21006  
 21007  2001-12-18  Torbjorn Granlund  <tege@swox.com>
 21008  
 21009  	* mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000.
 21010  
 21011  2001-12-18  Kevin Ryde  <kevin@swox.se>
 21012  
 21013  	* gmpxx.h (gmp_randclass): Don't allow copy constructors or "=",
 21014  	implementation by Gerardo.
 21015  
 21016  	* gmp-h.in (operator<<, operator>>): Remove parameter names from
 21017  	prototypes, to keep out of user namespace.
 21018  
 21019  	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++.
 21020  
 21021  2001-12-16  Torbjorn Granlund  <tege@swox.com>
 21022  
 21023  	* mpn/sparc64/mul_1.asm: Rewrite.
 21024  	* mpn/sparc64/addmul_1.asm: Rewrite.
 21025  	* mpn/sparc64/submul_1.asm: Rewrite.
 21026  
 21027  	* mpn/sparc64/addmul1h.asm: Remove.
 21028  	* mpn/sparc64/submul1h.asm: Remove.
 21029  	* mpn/sparc64/mul1h.asm: Remove.
 21030  
 21031  2001-12-15  Kevin Ryde  <kevin@swox.se>
 21032  
 21033  	* gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow
 21034  	__GMP_INLINE_PROTOTYPES for whether to give prototype with inline.
 21035  
 21036  	* configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*,
 21037  	athlon-*-*, pentium4-*-*): Fall back on -march=pentium if
 21038  	-march=pentiumpro or higher is not good (eg. solaris cmov).
 21039  
 21040  2001-12-12  Torbjorn Granlund  <tege@swox.com>
 21041  
 21042  	* gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to
 21043  	powerpc version.
 21044  
 21045  2001-12-12  Kevin Ryde  <kevin@swox.se>
 21046  
 21047  	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc
 21048  	-march=pentiumpro on solaris 2.8.
 21049  
 21050  	* tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros
 21051  	and count_trailing_zeros macros.
 21052  
 21053  	* demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c.
 21054  
 21055  	* tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c.
 21056  
 21057  2001-12-10  Torbjorn Granlund  <tege@swox.com>
 21058  
 21059  	* mpn/s390/addmul_1.asm: New file.
 21060  	* mpn/s390/submul_1.asm: New file.
 21061  	* mpn/s390/mul_1.asm: New file.
 21062  	* mpn/s390/gmp-mparam.h: Update.
 21063  
 21064  2001-12-07  Kevin Ryde  <kevin@swox.se>
 21065  
 21066  	* gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of
 21067  	prototypes, for the benefit of Microsoft C.
 21068  
 21069  	* gmp.texi (Introduction to GMP): Mention ABI and ISA section.
 21070  	(Known Build Problems): Recommend GNU sed on solaris 2.6.
 21071  	(Assigning Integers): Direct feedback to bug-gmp.
 21072  	(References): Typo Knuth vol 2 is from 1998.
 21073  
 21074  	* gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default
 21075  	and gmp_randinit_lc_2exp_size.
 21076  	gmp.texi (C++ Interface Random Numbers): Describe them.
 21077  
 21078  	* tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is
 21079  	done when the localconv override doesn't work.  Reported by Mike
 21080  	Jetzer.
 21081  
 21082  	* printf/doprnti.c: Don't showbase on a zero mpq denominator.
 21083  	* tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases.
 21084  
 21085  2001-12-04  Kevin Ryde  <kevin@swox.se>
 21086  
 21087  	* gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size
 21088  	for the sparc solaris 2.7 problem.
 21089  	(Reentrancy): SCO ctype.h affects all text-based input functions.
 21090  	(Formatted Output Strings): Correction to the mpf example.
 21091  	(Single Limb Division): Correction, should be q-1 not q+1.
 21092  	(Extended GCD): Clarify why single-limb is inferior.
 21093  	(Raw Output Internals): Clarify size is twos complement, note limb
 21094  	order means _mp_d doesn't get directly read or written.
 21095  	(Contributors): Clarify mpz_jacobi.
 21096  	And a couple of formatting tweaks elsewhere.
 21097  
 21098  	* tests/cxx/t-headers.cc: New file.
 21099  	* tests/cxx/Makefile.am: Add it.
 21100  
 21101  	* gmpxx.h: Add <strstream>, needed by mpf_class::get_str2.
 21102  
 21103  	* gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC.
 21104  
 21105  2001-12-01  Torbjorn Granlund  <tege@swox.com>
 21106  
 21107  	* Version 4.0 released.
 21108  
 21109  	* mpfr/README: Replace contents with explanation of why mpfr is gone.
 21110  
 21111  2001-12-01  Kevin Ryde  <kevin@swox.se>
 21112  
 21113  	* Makefile.am, configure.in: Temporarily remove mpfr, just leave a
 21114  	README.
 21115  
 21116  	* mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am.
 21117  
 21118  2001-11-30  Gerardo Ballabio  <ballabio@sissa.it>
 21119  
 21120  	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files.
 21121  	* tests/cxx/Makefile.am (check_PROGRAMS): Add them.
 21122  
 21123  2001-11-30  Kevin Ryde  <kevin@swox.se>
 21124  
 21125  	* mpfr: Update to 2001-11-16.  Patch TMP handling of agm.c and sqrt.c,
 21126  	use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil,
 21127  	disable an expression style assert in add1.c.
 21128  
 21129  	* mpn/s370: Rename to s390.
 21130  	* configure.in (s3[6-9]0*-*-*): Update.
 21131  	* mpn/Makefile.am (TARG_DIST): Add s390.
 21132  
 21133  	* mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since
 21134  	change to .h style.
 21135  
 21136  2001-11-29  Torbjorn Granlund  <tege@swox.com>
 21137  
 21138  	* gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp.
 21139  	* Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo.
 21140  	* mpf/Makefile.am: Add get_d_2exp.c.
 21141  	* mpz/Makefile.am: Add get_d_2exp.c.
 21142  
 21143  2001-11-29  Kevin Ryde  <kevin@swox.se>
 21144  
 21145  	* mpn/*/gmp-mparam.h: Update measured thresholds.
 21146  	* mpn/s370/gmp-mparam.h: New file.
 21147  
 21148  	* mpz/millerrabin.c: Mark for internal use only, for now.
 21149  	* gmp.texi (Number Theoretic Functions): Remove documentation.
 21150  
 21151  2001-11-28  Torbjorn Granlund  <tege@swox.com>
 21152  
 21153  	* mpf/get_d_2exp.c: New file.
 21154  	* mpz/get_d_2exp.c: New file.
 21155  
 21156  	* mpz/realloc2.c: Fix typo.  Make more similar to mpz_realloc.
 21157  	* mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS.
 21158  
 21159  2001-11-27  Gerardo Ballabio  <ballabio@sissa.it>
 21160  
 21161  	* gmpxx.h, mpfrxx.h: Various updates and improvements.
 21162  
 21163  2001-11-27  Kevin Ryde  <kevin@swox.se>
 21164  
 21165  	* gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex
 21166  	for mp_bits_per_limb.
 21167  
 21168  	* demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's.
 21169  	* demos/perl/test.pl: Update for this, and for mpz_perfect_power_p
 21170  	handling of 0 and 1.
 21171  
 21172  2001-11-26  Torbjorn Granlund  <tege@swox.com>
 21173  
 21174  	* mpz/realloc.c: Clear variable when decreasing allocation to less than
 21175  	needed.  Misc updates.
 21176  
 21177  2001-11-25  Kevin Ryde  <kevin@swox.se>
 21178  
 21179  	* tests/misc/t-locale.c: Avoid printf in the normal case, since the
 21180  	replacement localeconv breaks it on SunOS 4.
 21181  
 21182  	* gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx
 21183  	depends on libgmp from same GMP version.
 21184  
 21185  	* acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New
 21186  	test.
 21187  	* scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is
 21188  	writable, if necessary.
 21189  
 21190  	* tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always.
 21191  	* configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required.
 21192  
 21193  	* configure.in (none-*-*): Fix default CFLAGS setups.
 21194  
 21195  	* doc/configuration: Misc updates.
 21196  
 21197  2001-11-23  Kevin Ryde  <kevin@swox.se>
 21198  
 21199  	* mpz/init2.c, mpz/realloc2.c: New files.
 21200  	* Makefile.am, mpz/Makefile.am: Add them.
 21201  	* gmp-h.in: Add prototypes.
 21202  	* gmp.texi (Efficiency): Mention these instead of _mpz_realloc.
 21203  	(Initializing Integers): Add documentation, reword other parts.
 21204  
 21205  2001-11-22  Torbjorn Granlund  <tege@swox.com>
 21206  
 21207  	* mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop.
 21208  	* mpn/cray/ieee/submul_1.c: Likewise.
 21209  
 21210  2001-11-20  Kevin Ryde  <kevin@swox.se>
 21211  
 21212  	* gmp.texi (Known Build Problems): Note an out of memory on DJGPP.
 21213  	(Function Classes): Update function counts.
 21214  	Misc tweaks elsewhere.
 21215  
 21216  	* configure.in (AC_CHECK_DECLS): Add sscanf.
 21217  	* tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4.
 21218  
 21219  	* tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE
 21220  	consistency.
 21221  
 21222  	* mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake
 21223  	default, necessary for powerpc64 ABI=aix64.
 21224  
 21225  2001-11-18  Torbjorn Granlund  <tege@swox.com>
 21226  
 21227  	* mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs.
 21228  
 21229  2001-11-18  Kevin Ryde  <kevin@swox.se>
 21230  
 21231  	* configure.in (--enable-fft): Make this the default.
 21232  	* gmp.texi (Build Options): Update.
 21233  
 21234  	* Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by
 21235  	new mpz/powm.c.
 21236  
 21237  	* gmp.texi (Random State Initialization): Add gmp_randinit_default and
 21238  	gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete.
 21239  	(Random State Seeding): New section, taken from "Random State
 21240  	Initialization" and "Random Number Functions".
 21241  
 21242  	* configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc.
 21243  	* scanf/fscanffuns.c: Use these, for the benefit of SunOS 4.
 21244  
 21245  	* gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to
 21246  	gmp-impl.h now not required for inlined mpf.
 21247  
 21248  	* randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC
 21249  	selection from rand.c.
 21250  	* rand.c (gmp_randinit): Use it.
 21251  	* randdef.c (gmp_randinit_default): New file.
 21252  	* gmp-impl.h (RANDS): Use it.
 21253  	(ASSERT_CARRY): New macro.
 21254  	* gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add
 21255  	prototypes.
 21256  	* Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c.
 21257  
 21258  	* printf/asprntffuns.c: Include config.h before using its defines.
 21259  
 21260  	* gmp-impl.h: Move C++ <string> to top of file to avoid the memset
 21261  	redefine upsetting configure tests.  Remove <iostream> since <iosfwd>
 21262  	in gmp.h suffices.
 21263  
 21264  2001-11-16  Kevin Ryde  <kevin@swox.se>
 21265  
 21266  	* gmp.texi (Integer Exponentiation): mpz_powm supports negative
 21267  	exponents.
 21268  	(Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted
 21269  	Input): Decimal point follows locale.
 21270  	(Formatted Output Strings): %n accepts any type.
 21271  	(Formatted Input Strings): New section.
 21272  	(Formatted Input Functions): New section.
 21273  	(C++ Class Interface): Corrections and clarifications suggested by
 21274  	Gerardo.
 21275  
 21276  	* scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c,
 21277  	scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c,
 21278  	scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files.
 21279  	* gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent
 21280  	additions.
 21281  
 21282  	* tests/misc: New directory.
 21283  	* tests/misc/Makefile.am: New file.
 21284  	* tests/misc/t-locale.c: New file.
 21285  	* tests/misc/t-printf.c: Moved from tests/printf.
 21286  	* tests/printf: Remove directory.
 21287  	* configure.in, tests/Makefile.am: Update.
 21288  
 21289  	* tests/cxx/t-locale.cc: New file.
 21290  	* tests/cxx/Makefile.am: Add it.
 21291  
 21292  	* mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point.
 21293  
 21294  	* acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic
 21295  	for current libtool, recognise non-PIC style mcount in windows DLLs.
 21296  
 21297  	* gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype.
 21298  
 21299  	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized,
 21300  	modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test
 21301  	programs using them from a windows DLL.
 21302  	* longlong.h (__clz_tab): Ditto.
 21303  
 21304  	* mpn/x86/t-zdisp2.pl: New file.
 21305  
 21306  	* mpn/x86/pentium4/README: New file.
 21307  
 21308  2001-11-15  Torbjorn Granlund  <tege@swox.com>
 21309  
 21310  	* mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1.
 21311  	* tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm
 21312  	cases.
 21313  
 21314  2001-11-14  Torbjorn Granlund  <tege@swox.com>
 21315  
 21316  	* mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no
 21317  	redc).
 21318  	* mpz/powm.c: Adjust for negative b, after exponentiation done.  Add
 21319  	(still disabled) code for handling negative exponents.  Misc cleanups.
 21320  
 21321  2001-11-14  Kevin Ryde  <kevin@swox.se>
 21322  
 21323  	* mpf/out_str.c: Use localeconv for the decimal point.
 21324  
 21325  	* tests/misc.c (tests_rand_end): Use time() if gettimeofday() not
 21326  	available (eg. on mingw).
 21327  
 21328  2001-11-11  Kevin Ryde  <kevin@swox.se>
 21329  
 21330  	* gmp-h.in: Remove parameter names from prototypes, to keep out of
 21331  	application namespace.
 21332  
 21333  2001-11-08  Kevin Ryde  <kevin@swox.se>
 21334  
 21335  	* acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on
 21336  	Solaris 8.
 21337  
 21338  	* printf/doprnt.c: Support %n of all types, per glibc.
 21339  
 21340  	* gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c,
 21341  	mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c,
 21342  	mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order
 21343  	to leave open the possibility of keeping binary compatibility if mpf
 21344  	becomes mpfr.
 21345  
 21346  	* mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to
 21347  	force code size for computed jumps.
 21348  	* mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp
 21349  	to force good code alignment.
 21350  	* mpn/x86/x86-defs.m4 (Zdisp): More instructions.
 21351  
 21352  	* mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm,
 21353  	mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets.
 21354  
 21355  	* mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0.
 21356  
 21357  2001-11-07  Torbjorn Granlund  <tege@swox.com>
 21358  
 21359  	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug.
 21360  
 21361  	* mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good
 21362  	idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm).
 21363  
 21364  2001-11-06  Torbjorn Granlund  <tege@swox.com>
 21365  
 21366  	* gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'.
 21367  	(MPN_COPY_DECR): Likewise.
 21368  
 21369  2001-11-05  Torbjorn Granlund  <tege@swox.com>
 21370  
 21371  	* mpz/powm.c: Call mpn functions, not mpz functions, for computation
 21372  	mod m.  Streamline allocations to use a mixture of stack allocation and
 21373  	heap allocation.  Add currently disabled phi(m) exponent reduction
 21374  	code.  Misc optimizations and cleanups.
 21375  
 21376  2001-11-05  Kevin Ryde  <kevin@swox.se>
 21377  
 21378  	* mpq/inp_str.c: Remove unused variable "ret".
 21379  
 21380  	* mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the
 21381  	computed jumps hit the right spot on old gas.
 21382  
 21383  	* mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero.
 21384  
 21385  	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way
 21386  	the first \( \) pair is setup.
 21387  	(gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc.
 21388  	Misc tweaks to some comments.
 21389  
 21390  2001-11-03  Torbjorn Granlund  <tege@swox.com>
 21391  
 21392  	* tests/refmpn.c (refmpn_overlap_p): Reverse return values.
 21393  
 21394  2001-11-02  Kevin Ryde  <kevin@swox.se>
 21395  
 21396  	* tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no
 21397  	longer done by configure.
 21398  
 21399  	* mpn/x86/pentium4/mmx/popham.asm: New file.
 21400  
 21401  	* mpn/x86/x86-defs.m4 (psadbw): New macro.
 21402  	* mpn/x86/k7/mmx/popham.asm: Use it.
 21403  
 21404  	* tests/refmpn.c (refmpn_overlap_p): New function, independent of
 21405  	MPN_OVERLAP_P.
 21406  
 21407  2001-10-31  Torbjorn Granlund  <tege@swox.com>
 21408  
 21409  	* tests/mpz/t-powm.c: Print proper error message when finding
 21410  	discrepancy.
 21411  
 21412  2001-10-31  Kevin Ryde  <kevin@swox.se>
 21413  
 21414  	* mpn/x86/pentium/mod_34lsub1.asm: New file.
 21415  	* mpn/x86/k7/mod_34lsub1.asm: New file.
 21416  	* mpn/x86/mod_34lsub1.asm: New file.
 21417  
 21418  2001-10-30  Kevin Ryde  <kevin@swox.se>
 21419  
 21420  	* tests/printf/t-printf.c (check_misc): Add checks from the glibc docs.
 21421  	(check_vasprintf, check_vsnprintf): Run these unconditionally.
 21422  
 21423  	* gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro.
 21424  	* mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for
 21425  	canonical inputs, where correctness depends on it.
 21426  
 21427  	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl".
 21428  
 21429  2001-10-27  Torbjorn Granlund  <tege@swox.com>
 21430  
 21431  	* demos/pexpr.c: Remove some unused variables.
 21432  	(main): Allocate more buffer space to accommodate minus sign.
 21433  
 21434  2001-10-27  Kevin Ryde  <kevin@swox.se>
 21435  
 21436  	* gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h,
 21437  	tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add
 21438  	mpn_mod_34lsub1.
 21439  	* tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function.
 21440  
 21441  	* mpn/generic/mod_34lsub1.c: New file.
 21442  	* mpn/x86/k6/mod_34lsub1.asm: New file.
 21443  	* mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file.
 21444  	* mpn/x86/x86-defs.m4 (Zdisp): Add another instruction.
 21445  
 21446  	* gmp-h.in, gmpxx.h: Use <iosfwd> not whole <iostream>.
 21447  
 21448  	* gmp.texi (Known Build Problems): Add note on test programs with
 21449  	Windows DLLs.
 21450  
 21451  2001-10-26  Kevin Ryde  <kevin@swox.se>
 21452  
 21453  	* tests/mpq/t-get_d.c: Limit the size of "eps" for vax.
 21454  
 21455  	* gmp.texi (maybepagebreak): New macro, use it in a few places.
 21456  	(Notes for Particular Systems): C++ Windows DLLs are not supported.
 21457  	(Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared
 21458  	library problems.
 21459  	(Autoconf): Tweak version numbers shown.
 21460  	(Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider
 21461  	0 and 1 perfect powers, mpz_perfect_power_p accepts negatives.
 21462  	(Number Theoretic Functions): Add mpz_millerrabin, combined with a
 21463  	reworded mpz_probab_prime_p.
 21464  	(Formatted Output Strings): Misc clarifications.
 21465  	(Formatted Output Functions): gmp_asprintf, gmp_vasprintf,
 21466  	gmp_snprintf, gmp_vsnprintf always available.
 21467  	(C++ Formatted Output): Misc rewordings.
 21468  	(Formatted Input): New chapter.
 21469  	(C++ Class Interface): New chapter, by Gerardo and me.
 21470  	(Language Bindings): Update GMP++ now in GMP.
 21471  	(C++ Interface Internals): New section, by Gerardo and me.
 21472  
 21473  	* printf/repl-vsnprintf.c: New file.
 21474  	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it
 21475  	if libc vsnprintf missing or bad.
 21476  	* configure.in (AC_CHECK_FUNCS): Add strnlen.
 21477  
 21478  	* printf/snprntffuns.c, printf/vasprintf.c: Use
 21479  	__gmp_replacement_vsnprintf if libc vsnprintf not available.
 21480  	* printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c,
 21481  	printf/vsnprintf.c: Provide these functions unconditionally.
 21482  	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions
 21483  	when vsnprintf not available.
 21484  
 21485  2001-10-24  Kevin Ryde  <kevin@swox.se>
 21486  
 21487  	* configure, aclocal.m4: Regenerate with a libtool patch for a stray
 21488  	quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin.
 21489  
 21490  	* gmp-impl.h (modlimb_invert): More comments.
 21491  
 21492  	* printf/doprnt.c, printf/doprnti.c: Use the precision field to print
 21493  	leading zeros.
 21494  	* tests/printf/t-printf.c: Test this.
 21495  	* cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<.
 21496  
 21497  	* tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace.
 21498  
 21499  2001-10-23  Torbjorn Granlund  <tege@swox.com>
 21500  
 21501  	* mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant.
 21502  
 21503  	* mpz/millerrabin.c: New file with code from pprime.c.
 21504  	* mpz/Makefile.am: Compile millerrabin.c.
 21505  	* Makefile.am (MPZ_OBJECTS): Ditto.
 21506  	* gmp-h.in: Declare mpz_millerrabin.
 21507  
 21508  2001-10-22  Torbjorn Granlund  <tege@swox.com>
 21509  
 21510  	* tests/mpz/t-perfsqr.c: New file.
 21511  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 21512  
 21513  	* demos/factorize.c (factor): Check for number to factor == 0.
 21514  	(main): When invoked without arguments, read from stdin.
 21515  
 21516  	* mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd).
 21517  	Treat 0 and 1 as perfect powers.
 21518  
 21519  	* mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align.
 21520  
 21521  2001-10-21  Torbjorn Granlund  <tege@swox.com>
 21522  
 21523  	* mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'.
 21524  	(mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test.
 21525  	(mpn_perfect_square_p, O(n) test): Improve comments.  Combine remainder
 21526  	tests for some small primes.  Don't share code for different limb
 21527  	sizes.  Use single `if' with many `||' for better code density.
 21528  
 21529  2001-10-22  Kevin Ryde  <kevin@swox.se>
 21530  
 21531  	* demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static".
 21532  
 21533  	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm
 21534  	(mpn_popcount_table): Use GSYM_PREFIX.
 21535  
 21536  2001-10-19  Kevin Ryde  <kevin@swox.se>
 21537  
 21538  	* mpn/x86/*.asm: Add some measured speeds on various x86s.
 21539  
 21540  	* tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a
 21541  	windows DLL, because certain global variable usages won't compile.
 21542  
 21543  	* configure.in (AC_CHECK_FUNCS): Add alarm.
 21544  	* tests/spinner.c: Conditionalize alarm and SIGALRM availability, for
 21545  	the benefit of mingw32.
 21546  
 21547  	* acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size
 21548  	on COFF.
 21549  
 21550  	* acinclude.m4 (GMP_PROG_HOST_CC): New macro.
 21551  	* configure.in: Use it for windows DLL cross-compiles.
 21552  	* aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC
 21553  	in the generated libtool script.
 21554  
 21555  	* aclocal.m4, configure: Regenerate with libtool patch to suppress
 21556  	warnings when probing command line limit on FreeBSD.
 21557  
 21558  	* demos/qcn.c (M_PI): Define if not already provided, helps mingw32.
 21559  
 21560  2001-10-17  Kevin Ryde  <kevin@swox.se>
 21561  
 21562  	* printf/doprnt.c: Use <stdint.h> for intmax_t.
 21563  
 21564  	* longlong.h: Recognise __sparcv8 for gcc on Solaris.  Reported by
 21565  	Mark Mentovai <mark@mentovai.com>.
 21566  
 21567  	* gmp-impl.h (gmp_allocated_string): No need for inline on member funs.
 21568  
 21569  2001-10-16  Kevin Ryde  <kevin@swox.se>
 21570  
 21571  	* gmp.texi (Debugging): Add mpatrol.
 21572  	(Integer Comparisons, Comparing Rationals, Float Comparison): Index
 21573  	entries for sign tests.
 21574  	(I/O of Floats): Clarify mpf_out_str exponent is in decimal.
 21575  	(C++ Formatted Output): mpf_t operator<< exponent now in decimal.
 21576  	(FFT Multiplication): Use an ascii art sigma.
 21577  	(Contributors): Add Gerardo Ballabio.
 21578  
 21579  	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t
 21580  	exponent in decimal, irrespective of ios::hex or ios::oct.
 21581  	* tests/cxx/t-ostream.cc (check_mpf): Update.
 21582  
 21583  	* printf/doprnt.c: Support %lln and %hhn.
 21584  
 21585  	* mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the
 21586  	initial carry (helps the submul_1c case), and improve the comments.
 21587  
 21588  2001-10-11  Kevin Ryde  <kevin@swox.se>
 21589  
 21590  	* acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro.
 21591  
 21592  	* ltmain.sh: Send some rm errors to /dev/null, helps during compiles
 21593  	on Solaris 2.7 and HP-UX 10.
 21594  
 21595  	* tal-notreent.c: Renamed from stack-alloc.c.
 21596  	* Makefile.am, acinclude.m4, gmp-impl.h: Update.
 21597  
 21598  	* gmp-h.in: Don't give both prototypes and inlines, except on gcc.
 21599  
 21600  	* gmp-h.in, gmp-impl.h: Use #includes to get necessary standard
 21601  	classes, add std:: to prototypes.
 21602  	* cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std".
 21603  	* acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto.
 21604  
 21605  	* tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with
 21606  	automake patch to avoid Ultrix problem with empty $(TESTS).
 21607  
 21608  	* */Makefile.in: Regenerate with automake patch to only rm *_.c in
 21609  	"make clean" when ansi2knr actually in use, helps DOS 8.3.
 21610  
 21611  	* Makefile.in: Regenerate with automake patch to fix stamp-h
 21612  	numbering, avoiding an unnecessary config.status run.
 21613  
 21614  2001-10-09  Torbjorn Granlund  <tege@swox.com>
 21615  
 21616  	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels.
 21617  	Quote L reloc operator.
 21618  
 21619  	* gmp-impl.h: Declare class string.
 21620  
 21621  	* mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further
 21622  	expansion.
 21623  
 21624  	* mpn/alpha/ev6/mul_1.asm: New file.
 21625  
 21626  2001-10-09  Kevin Ryde  <kevin@swox.se>
 21627  
 21628  	* gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs.
 21629  	(Build Options): Note macos directory.
 21630  	(Notes for Package Builds): GMP 4 series binary compatible with 3.
 21631  	(Known Build Problems): Remove $* and ansi2knr note, now fixed, except
 21632  	possibly under --host=none.
 21633  	(Formatted Output Strings): Remove -1 prec for all digits.
 21634  
 21635  	* mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos).
 21636  	* mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz.
 21637  
 21638  	* printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe
 21639  	prec -1 meaning all digits.
 21640  
 21641  	* acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq".
 21642  	(GMP_HPC_HPPA_2_0): Print version string to config.log.
 21643  
 21644  	* Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice
 21645  	in NEWS file is too big).
 21646  	(dist-hook): Don't distribute numbered or unnumbered emacs backups.
 21647  
 21648  	* Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff.
 21649  
 21650  2001-10-09  Gerardo Ballabio  <ballabio@sissa.it>
 21651  
 21652  	* cxx/isfuns.cc: New file.
 21653  	* gmp-impl.h: Add prototypes.
 21654  	* cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files.
 21655  	* gmp-h.in: Add prototypes.
 21656  	* gmpxx.h, mpfrxx.h: New files.
 21657  
 21658  2001-10-08  Kevin Ryde  <kevin@swox.se>
 21659  
 21660  	* configure.in (with_tags): Establish a default based on --enable-cxx.
 21661  
 21662  	* aclocal.m4: Regenerate with libtool patches for sed char range to
 21663  	help Cray, LTCC quotes and +Z warnings grep to help HP-UX.
 21664  
 21665  	* gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t,
 21666  	doprnt_final_t): Use _PROTO.
 21667  
 21668  2001-10-05  Torbjorn Granlund  <tege@swox.com>
 21669  
 21670  	* mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX.
 21671  
 21672  	* mpn/hppa: Convert files to `.asm'.
 21673  
 21674  2001-10-05  Kevin Ryde  <kevin@swox.se>
 21675  
 21676  	* mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use
 21677  	cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS.
 21678  	* mpn/cpp-ccas: New file.
 21679  	* mpn/Makefile.am (EXTRA_DIST): Add it.
 21680  
 21681  	* tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses
 21682  	to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES.  Avoids
 21683  	macro expansion problems on Cray.
 21684  
 21685  	* configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier.
 21686  
 21687  2001-10-04  Torbjorn Granlund  <tege@swox.com>
 21688  
 21689  	* mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was
 21690  	1-based); shift 2 (was 1) when making bit mask.  These two changes
 21691  	avoid undefined shift counts.
 21692  	(gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values.
 21693  
 21694  	* mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c.
 21695  
 21696  2001-10-04  Kevin Ryde  <kevin@swox.se>
 21697  
 21698  	* gmp.texi (Build Options): Add --enable-cxx.
 21699  	(Notes for Particular Systems): Mention pentium4 performance and SSE2.
 21700  	(Known Build Problems): Remove vax jsobgtr note, no longer needed.
 21701  	(Converting Floats): Tweak mpf_get_str description.
 21702  	(Low-level Functions): Correction to mpn_gcdext destination space
 21703  	requirements.
 21704  	(C++ Formatted Output): New section.
 21705  	(Language Bindings): Add ALP
 21706  	(Contributors): Add Paul Zimmermann's square root, update my things.
 21707  
 21708  	* acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler
 21709  	errors to config.log.
 21710  
 21711  	* mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed.
 21712  
 21713  	* mpn/x86/*.asm: Change references to old README.family to just README.
 21714  
 21715  	* mpz/README: Remove file, now adequately covered in the manual.
 21716  
 21717  2001-10-03  Torbjorn Granlund  <tege@swox.com>
 21718  
 21719  	* mpn/x86/pentium4/copyi.asm: New file.
 21720  	* mpn/x86/pentium4/copyd.asm: New file.
 21721  
 21722  	* gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR
 21723  	macros for CRAY systems.
 21724  	(CRAY _MPN_COPY): Delete.
 21725  
 21726  2001-10-02  Kevin Ryde  <kevin@swox.se>
 21727  
 21728  	* tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to
 21729  	avoid compiler warnings on sco.
 21730  
 21731  	* mpbsd/Makefile.am: Compile mpz files directly, no copying.
 21732  	Use mpz/add.c and mpz/sub.c rather than mpz/aors.c.
 21733  	(INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz).
 21734  
 21735  	* mpz/aors.h: Renamed from mpz/aors.c.
 21736  	* mpz/add.c, mpz/sub.c: New files, using mpz/aors.h.
 21737  	* mpz/aors_ui.h: Renamed from mpz/aors_ui.c.
 21738  	* mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h.
 21739  	* mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c.
 21740  	* mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files.
 21741  	* mpz/mul_i.h: Renamed from mpz/mul_siui.c.
 21742  	* mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h.
 21743  	* mpz/Makefile.am: Consequent updates.
 21744  	(INCLUDES): Remove -DOPERATION_$*.
 21745  
 21746  	* mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c.
 21747  	* mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files.
 21748  	* mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c.
 21749  	* mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files.
 21750  	* mpf/Makefile.am: Consequent updates.
 21751  	(INCLUDES): Remove -DOPERATION_$*.
 21752  
 21753  	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc
 21754  	as cases in a switch, they're not constant in g++ 3.0.
 21755  
 21756  	* mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj):
 21757  	Locate source file with test -f the same as automake.
 21758  	(.S): Let CCAS do the preprocessing, and run libtool for .S.lo.
 21759  	(.asm.lo): Run libtool via m4-ccas to get new style foo.lo right.
 21760  	(COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake.
 21761  	* mpn/m4-ccas: New file.
 21762  	* mpn/Makefile.am (EXTRA_DIST): Add it.
 21763  	* mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT').
 21764  	* mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set.
 21765  	* configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed.
 21766  
 21767  	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when
 21768  	vsnprintf not available.
 21769  
 21770  	* mpn/underscore.h: Remove file, not used since m68k converted to asm.
 21771  	* mpn/Makefile.am (EXTRA_DIST): Remove it.
 21772  
 21773  	* tests/refmpz.c: Add <stdlib.h>, for free().
 21774  
 21775  2001-10-01  Torbjorn Granlund  <tege@swox.com>
 21776  
 21777  	* mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic
 21778  	simplifications.
 21779  	* mpn/x86/pentium4/sse2/addmul_1.asm: Comment.
 21780  
 21781  2001-10-01  Kevin Ryde  <kevin@swox.se>
 21782  
 21783  	* configure.in (--enable-cxx): New option for C++ support.
 21784  	Add cxx and tests/cxx subdirectories.
 21785  	* ltmain.sh, aclocal.m4: Update to libtool 2001-09-30.
 21786  
 21787  	* cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc,
 21788  	cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files.
 21789  	* Makefile.am: Add them, in new libgmpxx.
 21790  	* gmp-h.in, gmp-impl.h: Prototypes and support.
 21791  	* tests/cxx/Makefile.am, tests/cxx/Makefile.in,
 21792  	tests/cxx/t-ostream.cc: New files.
 21793  
 21794  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL,
 21795  	SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for
 21796  	destinations.  Found by Torbjorn.
 21797  
 21798  	* gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0.
 21799  	* mp-h.in (__GNU_MP__): Ditto.
 21800  	* gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0.
 21801  
 21802  	* acinclude.m4 (GMP_PROG_CXX_WORKS): New macro.
 21803  	(GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out.
 21804  
 21805  	* gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c.
 21806  	(GMP_ASPRINTF_T_INIT): New macro.
 21807  	(GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED().
 21808  	* printf/vasprintf.c: Use these.
 21809  
 21810  	* printf/asprntffuns.c: New file.
 21811  	* printf/Makefile.am, Makefile.am: Add it.
 21812  	* printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h
 21813  	(__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final):
 21814  	Move to asprntffuns.c, rename to __gmp and make global, remove
 21815  	spurious formal parameters from __gmp_asprintf_final.
 21816  
 21817  	* configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path.
 21818  	(*-*-mingw*): Don't assemble with -DPIC (as per cygwin).
 21819  
 21820  	* printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal
 21821  	parameters.
 21822  
 21823  	* tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help
 21824  	Cray vector systems.
 21825  
 21826  	* tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to
 21827  	facilitate cut and paste when re-running.
 21828  	* tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints.
 21829  
 21830  2001-09-30  Kent Boortz  <kent@swox.com>
 21831  
 21832  	* macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4.
 21833  	* gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW.
 21834  
 21835  2001-09-30  Torbjorn Granlund  <tege@swox.com>
 21836  
 21837  	* mpn/cray/ieee/submul_1.c: Rewrite.  Streamline multiplications;
 21838  	use `majority' logic.
 21839  
 21840  2001-09-27  Torbjorn Granlund  <tege@swox.com>
 21841  
 21842  	* gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug.
 21843  
 21844  2001-09-26  Torbjorn Granlund  <tege@swox.com>
 21845  
 21846  	* mpn/x86/pentium4/sse2/gmp-mparam.h: New file.
 21847  
 21848  2001-09-26  Kevin Ryde  <kevin@swox.se>
 21849  
 21850  	* mpn/x86/pentium4/sse2/dive_1.asm: New file.
 21851  	* mpn/x86/pentium4/sse2/submul_1.asm: New file.
 21852  	* mpn/x86/pentium4/sse2/sqr_basecase.asm: New file.
 21853  
 21854  	* mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn.
 21855  	* mpn/x86/pentium/copyi.asm: New file, ditto.
 21856  	* mpn/x86/pentium/com_n.asm: Rewrite, ditto.
 21857  
 21858  	* printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case
 21859  	vsnprintf trashes it.
 21860  	* printf/vasprintf.c (gmp_asprintf_format): Ditto.
 21861  	* gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h.
 21862  
 21863  	* tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax
 21864  	limited float range.
 21865  
 21866  2001-09-23  Torbjorn Granlund  <tege@swox.com>
 21867  
 21868  	* mpn/vax/lshift.s: Change `jsob*' to `sob*'.
 21869  	* mpn/vax/rshift.s: Likewise.
 21870  
 21871  2001-09-23  Kevin Ryde  <kevin@swox.se>
 21872  
 21873  	* mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code.
 21874  
 21875  	* printf/doprnt.c: Use va_copy for va_list variables, copy function
 21876  	parameter in case it's call-by-reference.
 21877  
 21878  	* tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function.
 21879  	(speed_cpu_frequency_table): Use it.
 21880  
 21881  	* tune/many.pl (popcount, hamdist): Fix declared return value.
 21882  	(sb_divrem_mn): Remove a spurious duplicate entry.
 21883  	(CLEAN): Add tmp-$objbase.c when using that for .h files.
 21884  	(macro_speed): Give a default for .h files.
 21885  	Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate.
 21886  
 21887  	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL,
 21888  	SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT,
 21889  	SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N,
 21890  	SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return
 21891  	values so gcc 3 won't discard calls to pure or const functions.
 21892  	(mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE.
 21893  
 21894  2001-09-22  Torbjorn Granlund  <tege@swox.com>
 21895  
 21896  	* mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder
 21897  	for real code, hiding the default x86 mul_basecase.asm.
 21898  
 21899  2001-09-22  Kevin Ryde  <kevin@swox.se>
 21900  
 21901  	* configure.in (AC_PREREQ): Bump to 2.52.
 21902  	(m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_.
 21903  	(AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf.
 21904  	* acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro.
 21905  
 21906  	* tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0.
 21907  	(malloc_region): Need fd=-1 for mmap MAP_ANON on BSD.
 21908  
 21909  2001-09-20  Torbjorn Granlund  <tege@swox.com>
 21910  
 21911  	* mpz/cong.c (mpz_congruent_p): Fix one-limb c<d test.
 21912  
 21913  	* longlong.h: Rewrite __i370__ smul_ppmm; enable also for __s390__.
 21914  
 21915  	* configure.in: Add support for IBM 360, 370, 390 families.
 21916  
 21917  2001-09-20  Kevin Ryde  <kevin@swox.se>
 21918  
 21919  	* mpn/x86/pentium4/sse2/diveby3.asm: New file.
 21920  	* mpn/x86/pentium4/sse2/mode1o.asm: New file.
 21921  
 21922  2001-09-16  Kevin Ryde  <kevin@swox.se>
 21923  
 21924  	* printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g.
 21925  	* tests/printf/t-printf.c (check_f): More test cases.
 21926  
 21927  2001-09-15  Torbjorn Granlund  <tege@swox.com>
 21928  
 21929  	* gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB.
 21930  	Postpone zeroing of (cout).
 21931  	(__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes.
 21932  
 21933  2001-09-14  Kevin Ryde  <kevin@swox.se>
 21934  
 21935  	* ChangeLog: Merge in tests/rand/ChangeLog.
 21936  	* tests/rand/ChangeLog: Remove file.
 21937  
 21938  	* printf/doprnt.c: Fix handling of a plain format after a GMP one; no
 21939  	need to protect against negative precision internally.
 21940  	* tests/printf/t-printf.c (check_misc): More checks.
 21941  
 21942  2001-09-12  Torbjorn Granlund  <tege@swox.com>
 21943  
 21944  	* mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have
 21945  	HAVE_NATIVE_... defined.
 21946  
 21947  2001-09-11  Kevin Ryde  <kevin@swox.se>
 21948  
 21949  	* configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power,
 21950  	__GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs.
 21951  	* gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc
 21952  	code, rather than preprocessor defines.
 21953  
 21954  	* acinclude.m4, configure.in (GMP_H_ANSI): New macro.
 21955  
 21956  	* gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc.
 21957  
 21958  	* gmp-h.in, version.c (gmp_version): Make the pointer "const" as well
 21959  	as the string.
 21960  
 21961  	* acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when
 21962  	invoked under another name (cc, xlc128, etc).
 21963  	* acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised.
 21964  
 21965  2001-09-11  Torbjorn Granlund  <tege@swox.com>
 21966  
 21967  	* gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc.
 21968  	* mp-h.in: Likewise.
 21969  
 21970  2001-09-10  Torbjorn Granlund  <tege@swox.com>
 21971  
 21972  	* mpn/x86/pentium4/mmx/lshift.asm: New file.
 21973  	* mpn/x86/pentium4/mmx/rshift.asm: New file.
 21974  
 21975  	* tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug.
 21976  	(check_decr_data): Likewise.
 21977  
 21978  2001-09-08  Kevin Ryde  <kevin@swox.se>
 21979  
 21980  	* gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist
 21981  	behaviour, clarify mpz_popcount a touch.
 21982  	(Language Bindings): Add mlton, fix alphabetical order.
 21983  	(Single Limb Division): Describe 2 or 1/2 limbs at a time style.
 21984  
 21985  	* configure.in (AC_CHECK_FUNCS): Add mmap.
 21986  	* tests/devel/try.c (malloc_region): Use mmap if available.
 21987  
 21988  	* tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function.
 21989  	* tests/mpz/t-hamdist.c: New file.
 21990  	* tests/mpz/Makefile.am: Add it.
 21991  
 21992  	* mpz/hamdist.c: Support neg/neg operands.
 21993  
 21994  	* macos/Makefile.in: Remove dual compile of mpq/aors.c and
 21995  	mpn/generic/popham.c.
 21996  
 21997  	* gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c.
 21998  	For 64-bits reuse 0x33...33 constant.
 21999  	* mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c,
 22000  	use popc_limb macro, remove unused "i", don't bother with "register"
 22001  	qualifiers.
 22002  	* mpn/generic/popham.c: Remove file.
 22003  
 22004  	* ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one
 22005  	ltdll.c generation patch.
 22006  	* doc/configuration: Misc updates, note libtool patch used.
 22007  
 22008  	* mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed
 22009  	addressing, to get 4.0 c/l flat.
 22010  
 22011  	* tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators.
 22012  
 22013  	* tests/misc.c (mpz_negrandom): Use given rstate, not RANDS.
 22014  
 22015  2001-09-07  Torbjorn Granlund  <tege@swox.com>
 22016  
 22017  	* mpn/x86/pentium4/sse2/addmul_1.asm: New file.
 22018  
 22019  2001-09-04  Kevin Ryde  <kevin@swox.se>
 22020  
 22021  	* tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to
 22022  	avoid duplicating conditionals.
 22023  	(speed_cpu_frequency_sco_etchw): New function.
 22024  	(speed_cpu_frequency_table): Use it.
 22025  	* tune/README: Mention SCO openunix 8 /etc/hw.
 22026  
 22027  	* mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64.
 22028  	Store back a carry for limb<long.
 22029  
 22030  	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/k7/mmx/mod_1.asm,
 22031  	mpn/x86/p6/mmx/divrem_1.asm: Fix a couple of comments.
 22032  
 22033  	* config.guess: Give m68020 for 68020 or better, not m68k.
 22034  	* configfsf.guess: Update to 2001-09-04.
 22035  
 22036  2001-09-02  Kevin Ryde  <kevin@swox.se>
 22037  
 22038  	* configure.in (m68k-*-*): Let m68k mean 68000, not 68020.
 22039  	* gmp.texi (Notes for Particular Systems): Update.
 22040  
 22041  	* gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int
 22042  	might be only 16 bits.
 22043  
 22044  	* tests/mpq/t-aors.c: New file.
 22045  	* tests/mpq/Makefile.am: Add it.
 22046  
 22047  	* tests/refmpq.c: New file.
 22048  	* tests/Makefile.am: Add it.
 22049  	* tests/tests.h: Add prototypes.
 22050  
 22051  	* mpq/aors.c: Share object code for mpq_add and mpq_sub.
 22052  	* Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now.
 22053  
 22054  	* tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine.
 22055  
 22056  2001-08-30  Kevin Ryde  <kevin@swox.se>
 22057  
 22058  	* mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4.
 22059  
 22060  	* gmp-h.in: Put #define renamings with prototypes.
 22061  	Remove commented out #defines of gmp-impl.h things.
 22062  	(mpn_invert_limb): Remove #define, already in gmp-impl.h.
 22063  	(mpn_lshiftc, mpn_rshiftc): Remove #defines, unused.
 22064  	(mpn_addsub_nc): Add prototype to #define.
 22065  
 22066  2001-08-28  Kevin Ryde  <kevin@swox.se>
 22067  
 22068  	* gmp.texi: Switch to GFDL.
 22069  	(Top): Arrange copyright and conditions to appear here too.  For
 22070  	clarity have all this before the miscellaneous macro definitions.
 22071  	(Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo
 22072  	programs.
 22073  	(Contributors, References): Use @appendix rather than @unnumbered.
 22074  	(GNU Free Documentation License): New appendix.
 22075  	(@contents): Move to start of document, use only for tex (not html).
 22076  	(Debugging): Add leakbug.
 22077  	(Build Options): Add pentium4.
 22078  	(I/O of Rationals): Add mpq_inp_str.
 22079  
 22080  	* fdl.texi: New file, with two @appendix directive tweaks.
 22081  	* Makefile.am (gmp_TEXINFOS): Add it.
 22082  
 22083  	* tests/mpz/io.c: Check mpz_inp_str return against ftell, send error
 22084  	messages just to stdout.
 22085  
 22086  	* mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function,
 22087  	and share a __gmp_free_func call.
 22088  	* mpq/inp_str.c: New file.
 22089  	* Makefile.am, mpq/Makefile.am: Add it.
 22090  	* tests/mpq/t-inp_str.c: New file.
 22091  	* tests/mpq/Makefile.am (check_PROGRAMS): Add it.
 22092  
 22093  	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power,
 22094  	HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs
 22095  	for processor families.
 22096  	* gmp-impl.h: Use them, rather than cpp defines.
 22097  
 22098  	* demos/Makefile.am (primes_LDADD): Use $(LIBM), for log().
 22099  
 22100  	* tune/many.pl, tune/Makefile.am: Fix some from clean and distclean.
 22101  
 22102  2001-08-26  Kevin Ryde  <kevin@swox.se>
 22103  
 22104  	* tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs.
 22105  	(TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code.
 22106  
 22107  	* tests/printf/t-printf.c (check_plain): Don't compare "all digits"
 22108  	precision against plain printf.
 22109  
 22110  	* tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS.
 22111  
 22112  	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.52.
 22113  	* */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to
 22114  	automake 1.5.
 22115  	* configfsf.guess, configfsf.sub: Update to 2001-08-23.
 22116  
 22117  2001-08-24  Torbjorn Granlund  <tege@swox.com>
 22118  
 22119  	* demos/primes.c: Complete rewrite.
 22120  
 22121  2001-08-24  Kevin Ryde  <kevin@swox.se>
 22122  
 22123  	* longlong.h: Test __ppc__ for apple darwin cc, reported by Jon
 22124  	Becker.  Also test __POWERPC__, PPC and __vxworks__.
 22125  
 22126  	* tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC.
 22127  
 22128  2001-08-22  Kevin Ryde  <kevin@swox.se>
 22129  
 22130  	* configure.in (x86 mmx): Correction to mmx path stripping.
 22131  
 22132  2001-08-17  Kevin Ryde  <kevin@swox.se>
 22133  
 22134  	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am,
 22135  	tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++
 22136  	support, for the time being.
 22137  	* printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc,
 22138  	osmpz.cc, tests/printf/t-ostream.cc: Remove files.
 22139  
 22140  	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single
 22141  	__gmp_doprnt_mpf, rather than a separate ndigits calculation.
 22142  	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi,
 22143  	tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf.
 22144  	* printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let
 22145  	negative "*" style width mean left justify.
 22146  
 22147  	* gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro,
 22148  	extracted from mpf/get_str.c.
 22149  
 22150  	* libmp.sym: New file.
 22151  	* Makefile.am (libmp_la_LDFLAGS): Use it.
 22152  	(DISTCLEANFILES): Remove asm-syntax.h, no longer generated.
 22153  	Remove some comments about "make check".
 22154  
 22155  	* demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf,
 22156  	change get_str to string/exponent for floats, remove separate
 22157  	mpf_get_str.
 22158  	* demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g").
 22159  	* demos/perl/typemap: Fix some duplicate string entries.
 22160  	* demos/perl/test.pl: Update tests, split overloaded constants into ...
 22161  	* demos/perl/test2.pl: ... this new file.
 22162  	* demos/perl/Makefile.PL (clean): Add test.tmp.
 22163  
 22164  2001-08-16  Kevin Ryde  <kevin@swox.se>
 22165  
 22166  	* printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1
 22167  	return value handling.
 22168  
 22169  	* demos/calc/calc.y: Reposition "%{" so copyright notice gets into
 22170  	generated files.
 22171  
 22172  	* INSTALL: Use gmp_printf.
 22173  
 22174  2001-08-14  Kevin Ryde  <kevin@swox.se>
 22175  
 22176  	* mpz/inp_str.c: Fix return value (was 1 too big).
 22177  	* tests/mpz/t-inp_str.c: New file.
 22178  	* tests/mpz/Makefile.am: Add it.
 22179  
 22180  	* mpn/x86/pentium4/sse2/add_n.asm: New file.
 22181  	* mpn/x86/pentium4/sse2/sub_n.asm: New file.
 22182  	* mpn/x86/pentium4/sse2/mul_1.asm: New file.
 22183  
 22184  2001-08-12  Kevin Ryde  <kevin@swox.se>
 22185  
 22186  	* printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return
 22187  	value (it's a pointer on SunOS 4).
 22188  
 22189  	* acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros.
 22190  	* configure.in: Add pentium4 support.
 22191  	* mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New
 22192  	directories.
 22193  	* mpn/x86/README: Update.
 22194  
 22195  2001-08-10  Torbjorn Granlund  <tege@swox.com>
 22196  
 22197  	* demos/pexpr.c (setup_error_handler): Catch also SIGABRT.
 22198  
 22199  2001-07-31  Kevin Ryde  <kevin@swox.se>
 22200  
 22201  	* tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps.
 22202  
 22203  	* gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h.
 22204  
 22205  	* tune/Makefile.am (EXTRA_DIST): Add many.pl.
 22206  
 22207  2001-07-28  Kevin Ryde  <kevin@swox.se>
 22208  
 22209  	* gmp.texi (Random Number Functions): Old rand functions no longer use
 22210  	the C library.
 22211  
 22212  	* configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro.
 22213  
 22214  	* mpn/generic/get_str.c: Add an ASSERT for high limb non-zero.
 22215  
 22216  2001-07-24  Kevin Ryde  <kevin@swox.se>
 22217  
 22218  	* gmp.texi (Build Options): Add --enable-cxx.
 22219  	(Converting Floats): Note mpf_get_str only generates accurately
 22220  	representable digits.
 22221  	(Low-level Functions): Note mpn_get_str requires non-zero high limb.
 22222  	(Formatted Output): New chapter.
 22223  	(Multiplication Algorithms): Use @quotation with @multitable.
 22224  	(Toom-Cook 3-Way Multiplication): Ditto.
 22225  
 22226  	* tests/memory.c (tests_free_nosize): New function.
 22227  	* tests/tests.h (tests_allocate etc): Add prototypes.
 22228  
 22229  	* tests/printf: New directory.
 22230  	* tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files.
 22231  	* configure.in, tests/Makefile.am: Add them.
 22232  
 22233  	* configure.in, acinclude.m4 (GMP_PROG_CXX): New macro.
 22234  	* configure.in (--enable-cxx): New option.
 22235  	(AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h.
 22236  	(AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t,
 22237  	quad_t.
 22238  	(AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf,
 22239  	strchr, vsnprintf.
 22240  	(AC_CHECK_DECLS): Add vfprintf.
 22241  
 22242  	* gmp-h.in, gmp-impl.h: Additions for gmp_printf etc.
 22243  
 22244  	* printf: New directory.
 22245  	* printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc,
 22246  	doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c,
 22247  	obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c,
 22248  	printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c,
 22249  	vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New
 22250  	files.
 22251  	* configure.in, Makefile.am: Add them.
 22252  
 22253  	* configure.in (HAVE_INLINE): Remove AC_DEFINE, unused.
 22254  	(AC_CHECK_TYPES): Don't test for void, assume it always exists.
 22255  
 22256  	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro.
 22257  	* mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it.
 22258  
 22259  	* gmp-impl.h (mpn_fib2_ui): Use __MPN.
 22260  	(MPN_COPY_DECR): Fix an ASSERT.
 22261  	(CAST_TO_VOID): Remove macro.
 22262  
 22263  	* gmp-h.in (mpq_out_str): Give #define even without prototype.
 22264  	(mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines.
 22265  
 22266  	* tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID.
 22267  
 22268  2001-07-23  Torbjorn Granlund  <tege@swox.com>
 22269  
 22270  	* config.guess: Recognize pentium4.
 22271  	* config.sub: Recognize pentium4.
 22272  
 22273  2001-07-17  Kevin Ryde  <kevin@swox.se>
 22274  
 22275  	* gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just
 22276  	one version.
 22277  	(__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub.
 22278  	(mpn_add, mpn_sub): Use them.
 22279  	(__GMPN_COPY_REST): New macro.
 22280  
 22281  	* gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and
 22282  	__GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of
 22283  	LSYM_PREFIX.
 22284  
 22285  2001-07-11  Kevin Ryde  <kevin@swox.se>
 22286  
 22287  	* gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91.
 22288  
 22289  	* mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c.
 22290  	* mpz/fits_u.c: Remove file.
 22291  	* mpz/Makefile.am, macos/Makefile.in: Update.
 22292  
 22293  	* tests/refmpn.c,tests.h (refmpn_copy): New function.
 22294  	* tests/devel/try.c (TYPE_ZERO): No return value from call.
 22295  	(TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with
 22296  	TYPE_MOD_1 and TYPE_MOD_1C.
 22297  	(MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing.
 22298  
 22299  2001-07-10  Kevin Ryde  <kevin@swox.se>
 22300  
 22301  	* gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc.
 22302  	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto.
 22303  	* mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files.
 22304  
 22305  	* mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on
 22306  	i386 gcc 2.95.x), remove a bogus comment about quotient.
 22307  
 22308  	* errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero,
 22309  	__gmp_sqrt_of_negative): New functions.
 22310  	* gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them.
 22311  
 22312  	* randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms.
 22313  
 22314  2001-07-07  Kevin Ryde  <kevin@swox.se>
 22315  
 22316  	* configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin.
 22317  
 22318  	* tests/mpbsd/t-itom.c: Renamed from t-misc.c.
 22319  	* tests/mpbsd/t-misc.c: Remove file.
 22320  	* tests/mpbsd/Makefile.am: Update.
 22321  
 22322  	* tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c.
 22323  	* tests/mpf/t-misc.c: Remove file.
 22324  	* tests/mpf/Makefile.am: Update.
 22325  
 22326  	* tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c.
 22327  	* tests/mpz/t-misc.c: Remove file.
 22328  	* tests/mpz/Makefile.am: Update.
 22329  
 22330  	* stack-alloc.c: Add some alignment ASSERTs.
 22331  
 22332  	* gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow.
 22333  
 22334  	* tests/devel/try.c (MPN_ZERO): Add testing.
 22335  	* tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring.
 22336  
 22337  	* mpn/x86/divrem_1.asm: Update a remark about gcc and "loop".
 22338  
 22339  	* tests/mpq/t-cmp_si.c: New file.
 22340  	* tests/mpq/Makefile.am: Add it.
 22341  
 22342  	* tests/misc.c,tests.h (mpq_set_str_or_abort): New function.
 22343  
 22344  	* mpq/cmp_si.c: New file.
 22345  	* Makefile.am, mpq/Makefile.am: Add it.
 22346  	* gmp-h.in (mpq_cmp_si): Add prototype.
 22347  	* gmp.texi (Comparing Rationals): Add doco.
 22348  
 22349  	* gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add
 22350  	notes on what symbols are for what systems.
 22351  
 22352  2001-07-06  Torbjorn Granlund  <tege@swox.com>
 22353  
 22354  	* longlong.h (ibm032 umul_ppmm): Fix typo.
 22355  	* longlong.h (sparclite sdiv_qrnnd): Fix typo.
 22356  
 22357  2001-07-03  Kevin Ryde  <kevin@swox.se>
 22358  
 22359  	* mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1.
 22360  	* mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and
 22361  	pointer.
 22362  
 22363  	* acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h
 22364  	is wanted at configure time.
 22365  	* acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE):
 22366  	New macros.
 22367  
 22368  	* gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++.
 22369  	(mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE.
 22370  	* gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused.
 22371  	* mpn/generic/add.c, mpn/generic/sub.c: New files.
 22372  	* mpn/generic/inlines.c: Remove file.
 22373  	* configure.in, mpn/Makefile.am: Update.
 22374  
 22375  	* gmp.texi (GMP Basics): Note the need for stdio.h to get FILE
 22376  	prototypes.
 22377  
 22378  2001-07-01  Kevin Ryde  <kevin@swox.se>
 22379  
 22380  	* gmp.texi (Build Options, Reentrancy): Updates for new
 22381  	--enable-alloca behaviour.
 22382  	(Debugging): Describe --enable-alloca=debug.
 22383  	(Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs.
 22384  	(Low-level Functions): Give a formula for mpn_gcdext cofactor.
 22385  	(Factorial Algorithm): New section.
 22386  	(Binomial Coefficients Algorithm): New section.
 22387  	Misc tweaks elsewhere.
 22388  
 22389  	* mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups,
 22390  	no functional changes.
 22391  
 22392  	* mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values.
 22393  	* gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when
 22394  	2*UMUL_TIME < UDIV_TIME.
 22395  
 22396  	* mpn/x86/p6/dive_1.asm: New file.
 22397  
 22398  	* mpn/x86/dive_1.asm: New file.
 22399  	* mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always.
 22400  
 22401  	* tests/refmpn.c, tests.h (refmpn_zero): New function.
 22402  	* tests/devel/try.c: Use it.
 22403  
 22404  	* tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp.
 22405  
 22406  	* tests/mpf/t-get_d.c (main): Use || not |.
 22407  
 22408  	* tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c,
 22409  	tests/mpf/reuse.c: Add string.h.
 22410  
 22411  2001-06-29  Kevin Ryde  <kevin@swox.se>
 22412  
 22413  	* tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI,
 22414  	SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling.
 22415  
 22416  	* gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE):
 22417  	Corrections to these to account for adding tD into E.
 22418  	(MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size
 22419  	assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them.
 22420  	(MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder.
 22421  
 22422  	* assert.c: Add stdlib.h for abort prototype.
 22423  	* tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c,
 22424  	t-gmpmax.c, t-modlinv.c: Ditto.
 22425  	* tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c,
 22426  	t-set_str.c, t-sizeinbase.c: Ditto.
 22427  	* tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto.
 22428  	* tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c,
 22429  	t-trunc.c: Ditto.
 22430  	* tests/mpbsd/allfuns.c, t-misc.c: Ditto.
 22431  
 22432  	* mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than
 22433  	mpn_incr_u.
 22434  
 22435  	* tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method.
 22436  
 22437  	* mpn/x86/k6/cross.pl: More insn exceptions.
 22438  
 22439  2001-06-23  Kevin Ryde  <kevin@swox.se>
 22440  
 22441  	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output
 22442  	constraints.
 22443  
 22444  	* gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant
 22445  	fits a signed byte.
 22446  
 22447  	* tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient
 22448  	with garbage.
 22449  
 22450  2001-06-20  Kevin Ryde  <kevin@swox.se>
 22451  
 22452  	* config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error
 22453  	messages if $CC_FOR_BUILD or program don't work.
 22454  
 22455  	* mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0).
 22456  	* tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0).
 22457  
 22458  	* tests/mpn/t-aors_1.c: New file.
 22459  	* tests/mpn/Makefile.am: Add it.
 22460  
 22461  	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of
 22462  	mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1,
 22463  	separate versions for gcc x86, gcc generic, and non-gcc.
 22464  	(mpn_add_1, mpn_sub_1): Use them.
 22465  	(mpn_add, mpn_sub): Ditto, to get inlines on all compilers.
 22466  	(extern "C") [__cplusplus]: Let this encompass the extern inlines too.
 22467  	* mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h.
 22468  	* configure.in, mpn/Makefile.am: Add them.
 22469  
 22470  	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX
 22471  	rather than AC_DEFINE LSYM_PREFIX.
 22472  	* gmp-h.in (__GMP_LSYM_PREFIX): New substitution.
 22473  	(__GMP_ASM_L): New macro.
 22474  	* gmp-impl.h (ASM_L): Use it.
 22475  
 22476  	* acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro.
 22477  	* gmp-impl.h: Use it for all the malloc based TMP_ALLOCs.
 22478  
 22479  	* stack-alloc.h: Remove file.
 22480  	* tal-reent.c: New file.
 22481  	* Makefile.am: Update.
 22482  
 22483  	* acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add
 22484  	malloc-reentrant method, use stack-alloc.c as malloc-notreentrant,
 22485  	make "reentrant" the default.
 22486  	* gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to
 22487  	determine the value, and demand only 4 bytes align on 32-bit systems.
 22488  	* gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of
 22489  	stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC.
 22490  	* gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations.
 22491  	* stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to
 22492  	here, use gmp-impl.h.
 22493  
 22494  	* gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro.
 22495  	* mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it.
 22496  
 22497  	* mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop.
 22498  	* mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by
 22499  	Paul, tweaked by me.
 22500  	* mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2).
 22501  
 22502  	* gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE.
 22503  
 22504  	* INSTALL: Clarify "make install", tweak formatting a bit.
 22505  
 22506  2001-06-17  Kevin Ryde  <kevin@swox.se>
 22507  
 22508  	* configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC,
 22509  	selected with --enable-alloca=debug.
 22510  	* tal-debug.c: New file.
 22511  	* configure.in, Makefile.am: Compile stack-alloc.c only for
 22512  	--disable-alloca.
 22513  	* assert.c (__gmp_assert_header): New function, split from
 22514  	__gmp_assert_fail.
 22515  
 22516  	* mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary
 22517  	_mpz_realloc prototype.
 22518  
 22519  	* mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3
 22520  	temporary workspace.
 22521  
 22522  2001-06-15  Kevin Ryde  <kevin@swox.se>
 22523  
 22524  	* tests/mpz/t-set_f.c: New file.
 22525  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 22526  
 22527  	* mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0
 22528  	test earlier, store SIZ(w) earlier.
 22529  
 22530  	* tests/t-count_zeros.c: New file.
 22531  	* tests/t-gmpmax.c: New file.
 22532  	* tests/Makefile.am (check_PROGRAMS): Add them.
 22533  
 22534  	* mp_clz_tab.c: Compile the table only if longlong.h says it's needed;
 22535  	add an internal-use-only comment.
 22536  	* tune/common.c: Force a __clz_tab for convenience when testing.
 22537  
 22538  	* mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add
 22539  	COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm.
 22540  
 22541  	* longlong.h (count_leading_zeros) [pentium]: Decide to go with float
 22542  	method for p54.
 22543  	(count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB.
 22544  	(__clz_tab): Provide a prototype only if it's needed.
 22545  
 22546  	* tests/trace.c (mpz_trace): Don't use = on structures.
 22547  	(mpn_trace): Set _mp_alloc when creating mpz.
 22548  
 22549  2001-06-12  Kevin Ryde  <kevin@swox.se>
 22550  
 22551  	* mpn/x86/divrem_1.asm: Amend some comments about P5 speed.
 22552  
 22553  	* tune/README: Clarify reconfigure on gmp-mparam.h update.
 22554  
 22555  	* mpn/x86/p6/copyd.asm: New file.
 22556  	* mpn/x86/p6/README: Update copyd and mod_1.
 22557  	* mpn/x86/copyd.asm: Amend some comments.
 22558  
 22559  	* gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc.
 22560  	(mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the
 22561  	generic code on gcc.
 22562  
 22563  	* gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros.
 22564  	* mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them.
 22565  	* mpz/get_d.c: Add a private mpn_zero_p.
 22566  	* mpfr/trunc.c: Use own mpn_zero_p.
 22567  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p.
 22568  	* gmp-impl.h (mpn_zero_p): Remove, no longer needed.
 22569  
 22570  	* gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an
 22571  	MPN_CMP alias in gmp-impl.h.
 22572  	* gmp-h.in (mpn_cmp): Add an inline version.
 22573  	* mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h.
 22574  
 22575  	* acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro.
 22576  	* configure.in: Call it.
 22577  	* gmp-impl.h (SItype etc): Use it.
 22578  
 22579  	* randraw.c (lc): Change mpn_mul_basecase->mpn_mul,
 22580  	mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0).
 22581  
 22582  	* longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial
 22583  	register stall on gcc < 3.
 22584  
 22585  	* gmp.texi (Introduction to GMP): Add IA-64.
 22586  	(Notes for Particular Systems): i386 means generic x86.
 22587  
 22588  	* tests/t-modlinv.c: Use tests_start and tests_end.
 22589  
 22590  2001-06-10  Kevin Ryde  <kevin@swox.se>
 22591  
 22592  	* gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b
 22593  	odd.  Separate the jacobi/legendre/kronecker descriptions.
 22594  	(Low-level Functions): Document mpn_mul_1 "incr" overlaps.
 22595  	(Language Bindings): New chapter.
 22596  
 22597  	* mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b
 22598  	(it wasn't documented in 3.1.1).
 22599  	* mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove
 22600  	separate entrypoints, just #define to mpz_jacobi.
 22601  	* compat.c (__gmpz_legendre): Add compatibility entrypoint.
 22602  
 22603  	* mpn/generic/mul_1.c: Allow "incr" style overlaps.
 22604  	* tests/devel/try.c (param_init): Test this.
 22605  
 22606  	* mpf/mul_ui.c: Do size==0 test earlier.
 22607  
 22608  2001-06-08  Kevin Ryde  <kevin@swox.se>
 22609  
 22610  	* gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast
 22611  	ULONG_MAX etc to unsigned long etc before attempting to right shift.
 22612  
 22613  	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX.
 22614  	* gmp-impl.h (ASM_L): New macro.
 22615  	(mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized
 22616  	versions.
 22617  
 22618  	* mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa
 22619  	GNU/Linux too, reported by LaMont Jones <lamont@smallone.fc.hp.com>.
 22620  	* mpn/hppa/README: Add some notes on this.
 22621  	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto.
 22622  
 22623  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c,
 22624  	fib2_ui.c.
 22625  
 22626  	* tests/mpn/t-iord_u.c: New file.
 22627  	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
 22628  
 22629  	* configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same
 22630  	as in gmp 3.1.
 22631  	* gmp.texi (ABI and ISA): Update.
 22632  
 22633  	* gmp.texi (Build Options): Misc tweaks.
 22634  	(Notes for Particular Systems): Describe windows DLL handling.
 22635  	(Known Build Problems): DJGPP needs bash 2.04.
 22636  	(Number Theoretic Functions): mpz_invert returns 0<=r<modulus; add
 22637  	mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui.
 22638  	(Fibonacci Numbers Algorithm): Update for new formulas used.
 22639  	(Lucas Numbers Algorithm): New section.
 22640  
 22641  	* tune/speed.c,speed.h,common.c,many.pl: Add mpn_fib2_ui, mpz_fib2_ui,
 22642  	mpz_lucnum_ui, mpz_lucnum2_ui.
 22643  	* demos/expr/exprz.c,README: Add lucnum.
 22644  	* demos/perl/GMP.pm,GMP.xs,GMP/Mpz.pm,test.pl: Add fib2, lucnum,
 22645  	lucnum2.
 22646  
 22647  	* tests/mpz/t-lucnum_ui.c: New file.
 22648  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 22649  	* tests/mpz/t-fib_ui.c: Check mpz_fib2_ui too, updates for new style
 22650  	MPN_FIB2_SIZE.
 22651  
 22652  	* tune/tuneup.c, tune/Makefile.am, gmp-impl.h, mpn/*/gmp-mparam.h:
 22653  	Remove FIB_THRESHOLD, no longer required.
 22654  
 22655  	* mpz/fib2_ui.c, mpz/lucnum_ui.c mpz/lucnum2_ui.c: New files.
 22656  	* Makefile.am, mpz/Makefile.am: Add them.
 22657  	* gmp-h.in (mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui): Add
 22658  	prototypes.
 22659  
 22660  	* mpn/generic/fib2_ui.c: New file.
 22661  	* configure.in (gmp_mpn_functions): Add it.
 22662  	* gmp-impl.h (mpn_fib2_ui, FIB_TABLE, etc): Add these.
 22663  	* mpz/fib_ui.c: Rewrite.
 22664  
 22665  	* acinclude.m4 (GMP_C_SIZES): Fix _LONG_LONG_LIMB define for mp_limb_t
 22666  	size test.
 22667  	(GMP_FUNC_ALLOCA): Add dummy __GMP_BITS_PER_MP_LIMB for gmp-h.in work.
 22668  
 22669  	* configure.in (CPPFLAGS): Remove -D__GMP_WITHIN_GMP, don't want it
 22670  	everywhere.
 22671  	* Makefile.am, mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am,
 22672  	mpf/Makefile.am, mpbsd/Makefile.am (INCLUDES): Set -D__GMP_WITHIN_GMP.
 22673  
 22674  	* configure.in (*-*-msdosdjgpp*): Forcibly disable shared libraries,
 22675  	to make libtests.la work.
 22676  
 22677  	* acconfig.h (_LONG_LONG_LIMB, HAVE_MPFR): Remove dummy defines, no
 22678  	longer needed.
 22679  
 22680  	* mpz/set_ui.c: Store to _mp_d[0] unconditionally.
 22681  
 22682  2001-05-27  Kevin Ryde  <kevin@swox.se>
 22683  
 22684  	* configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs.
 22685  
 22686  2001-05-26  Kevin Ryde  <kevin@swox.se>
 22687  
 22688  	* gmp.texi (ABI and ISA, Reentrancy): Minor tweaks
 22689  	(Notes for Package Builds): Note gmp.h is a generated file.
 22690  	(Notes for Particular Systems): -march=pentiumpro is used for gcc
 22691  	2.95.4 and up.
 22692  	(Assembler Loop Unrolling): Mention non power-of-2 unrolling.
 22693  	(Internals): New chapter.
 22694  	* mpf/README: Remove file.
 22695  
 22696  	* demos/expr/README: Miscellaneous rewordings.
 22697  
 22698  	* demos/perl: New directory.
 22699  	* demos/Makefile.am: Add it.
 22700  	* demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap,
 22701  	GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl:
 22702  	New files.
 22703  
 22704  	* configure, aclocal.m4: Update to autoconf 2.50.
 22705  
 22706  	* configure, aclocal.m4, ltmain.sh: Update to libtool 1.4.
 22707  
 22708  	* configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to
 22709  	automake 1.4f.
 22710  	* Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info.
 22711  	* mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling.
 22712  	* mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c
 22713  	in libmpn_la_SOURCES.
 22714  	* tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to
 22715  	libtests_la_SOURCES.
 22716  	* ltconfig: Remove file, no longer needed.
 22717  
 22718  	* Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from
 22719  	EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS.
 22720  	* tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES
 22721  	similarly.
 22722  
 22723  	* config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments.
 22724  
 22725  	* mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note
 22726  	non-free programs must be able to be re-linked.
 22727  
 22728  2001-05-20  Kevin Ryde  <kevin@swox.se>
 22729  
 22730  	* mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm,
 22731  	mpn/powerpc64/submul_1.asm: Add carry-in entrypoints.
 22732  
 22733  2001-05-17  Kevin Ryde  <kevin@swox.se>
 22734  
 22735  	* gmp.texi (ge): Fix definition for info.
 22736  	(Notes for Particular Systems): Mention 68k dragonball and cpu32.
 22737  	(Efficiency): Add static linking, more about in-place operations,
 22738  	describe mpq+/-integer using addmul.
 22739  	(Reporting Bugs): A couple of words about self-contained reports.
 22740  	(Floating-point Functions): Note exponent limitations of mpf_get_str
 22741  	and mpf_set_str.
 22742  	(Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and
 22743  	mpf_set_prec_raw a bit.
 22744  	(Float Comparison): Note current mpf_eq deficiencies.
 22745  
 22746  	* gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES,
 22747  	__GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers.
 22748  	* demos/expr/expr-impl-h.in: Ditto.
 22749  
 22750  	* gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if
 22751  	not already in gmp-mparam.h.
 22752  	* tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB):
 22753  	Check these are the same.
 22754  
 22755  	* gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec,
 22756  	mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the
 22757  	macros.
 22758  	* mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c,
 22759  	mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE.
 22760  
 22761  	* gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from
 22762  	gmp-impl.h to gmp-h.in.
 22763  	(__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF
 22764  	prefix and add a couple of casts.
 22765  	* gmp-h.in (__GMP_MAX): New macro.
 22766  	* mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix.
 22767  
 22768  	* gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define.
 22769  	* acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB,
 22770  	remove AC_DEFINE BITS_PER_MP_LIMB.
 22771  
 22772  2001-05-13  Kevin Ryde  <kevin@swox.se>
 22773  
 22774  	* gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c:
 22775  	Remove mpz_si_pow_ui, pending full si support.
 22776  	* mpz/si_pow_ui.c: Remove file.
 22777  
 22778  2001-05-11  Kevin Ryde  <kevin@swox.se>
 22779  
 22780  	* mpn/x86/pentium/dive_1.asm: New file.
 22781  
 22782  	* mpn/powerpc32/umul.asm: Use r on registers.
 22783  	* mpn/powerpc64/umul.asm: New file.
 22784  	* configure.in (powerpc*-*-*): Enable umul in extra_functions.
 22785  
 22786  	* tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments
 22787  	as normal mpn_umul_ppmm.
 22788  	(refmpn_mul_1c): Update.
 22789  	* tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support.
 22790  
 22791  	* mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support
 22792  	size==0.
 22793  	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto,
 22794  	and shave a couple of cycles from the PIC entry code.
 22795  
 22796  	* mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available)
 22797  	for size==2, to avoid copying; do vsize==0 test earlier.
 22798  
 22799  	* mpf/sub.c: Test r!=u before calling mpf_set.
 22800  	* mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0.
 22801  
 22802  	* mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c,
 22803  	mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for
 22804  	count_leading_zeros zero.
 22805  
 22806  	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra
 22807  	flags are added.
 22808  
 22809  	* tests/mpz/t-mul_i.c: New file.
 22810  	* tests/mpz/Makefile.am: Add it.
 22811  
 22812  	* mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb.
 22813  
 22814  	* gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0
 22815  	when n==0.
 22816  	* mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0.
 22817  	* gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0.
 22818  
 22819  2001-05-07  Kevin Ryde  <kevin@swox.se>
 22820  
 22821  	* gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0
 22822  	when n==0 (use 1 unconditionally).
 22823  	* tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of
 22824  	_mp_exp when _mp_size is zero.
 22825  
 22826  	* mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem.
 22827  
 22828  	* gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p):
 22829  	Provide these as "extern inline"s.
 22830  	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros.
 22831  	(mpz_popcount): Use __GMP_ULONG_MAX.
 22832  	* gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if
 22833  	not already defined.
 22834  	* mpz/fits_u.c: Use the code from gmp.h.
 22835  
 22836  2001-05-06  Kevin Ryde  <kevin@swox.se>
 22837  
 22838  	* mpn/x86/k7/dive_1.asm: New file.
 22839  	* mpn/x86/k7/gcd_1.asm: New file.
 22840  	* mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro.
 22841  
 22842  	* gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p,
 22843  	mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide
 22844  	these as "extern inlines".
 22845  	Use just one big extern "C" block.
 22846  	* mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c
 22847  	mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use
 22848  	__GMP_FORCE to get code from gmp.h.
 22849  
 22850  2001-05-03  Kevin Ryde  <kevin@swox.se>
 22851  
 22852  	* extract-dbl.c: Add ASSERT d>=0.
 22853  
 22854  	* gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add
 22855  	mpz_neg etc in-place.
 22856  	(Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui.
 22857  	(Initializing Rationals): Add mpq_set_str.
 22858  	(Low-level Functions): mpn_set_str requires strsize >= 1.
 22859  
 22860  	* gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros.
 22861  	(mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline
 22862  	versions.
 22863  	* mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c:
 22864  	Add suitable __GMP_FORCE to turn off inline versions.
 22865  
 22866  	* tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files.
 22867  	* tests/mpz/Makefile.am: Add them.
 22868  
 22869  	* mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c.  Add
 22870  	mpz_submul_ui entrypoint, share more code between some of the
 22871  	conditionals, use mpn_mul_1c if available.
 22872  	* mpz/addmul_ui.c: Remove file.
 22873  	* mpz/aorsmul.c: New file.
 22874  	* Makefile.am, mpz/Makefile.am: Update.
 22875  	* gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes.
 22876  	* gmp-impl.h (mpz_aorsmul_1): Add prototype.
 22877  
 22878  	* tests/mpq/t-set_str.c: New file.
 22879  	* tests/mpq/Makefile.am: Add it.
 22880  
 22881  	* mpq/set_str.c: New file.
 22882  	* Makefile.am, mpq/Makefile.am: Add it.
 22883  	* gmp-h.in (mpq_set_str): Add prototype.
 22884  
 22885  	* mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ".
 22886  	* mpn/generic/set_str.c: Add ASSERT str_len >= 1.
 22887  
 22888  	* gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h.
 22889  	* gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros.
 22890  
 22891  2001-04-30  Kevin Ryde  <kevin@swox.se>
 22892  
 22893  	* tests/mpz/t-lcm.c: New file.
 22894  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 22895  
 22896  	* mpz/lcm.c: Add one limb special case.
 22897  
 22898  	* mpz/lcm_ui.c: New file.
 22899  	* Makefile.am, mpz/Makefile.am: Add it.
 22900  	* gmp-h.in (mpz_lcm_ui): Add prototype.
 22901  	* gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm
 22902  	now always positive.
 22903  
 22904  	* mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in.
 22905  
 22906  	* gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R
 22907  	function defines (ansi2knr will handle mpn/inline.c, and just ansi is
 22908  	enough for gcc extern inline).
 22909  
 22910  	* gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro.
 22911  	(__MPN): Use it.
 22912  	* gmp-impl.h (CNST_LIMB): Ditto.
 22913  
 22914  	* gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use
 22915  	ANSI forms on Microsoft C.
 22916  	(__GMP_HAVE_CONST): New define.
 22917  	* gmp-impl.h (const, signed): Use it.
 22918  
 22919  	* demos/expr/expr-impl-h.in (<stdarg.h>): Use this with Microsoft C.
 22920  	(HAVE_STDARG): New define.
 22921  	* demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it.
 22922  
 22923  	* acinclude.m4 (GMP_C_STDARG): New macro.
 22924  	* configure.in: Call it.
 22925  	* rand.c: Use it.
 22926  
 22927  	* configure.in (AC_PROG_CC_STDC): New test.
 22928  
 22929  2001-04-25  Kevin Ryde  <kevin@swox.se>
 22930  
 22931  	* mpn/x86/k6/mmx/dive_1.asm: New file.
 22932  	* mpn/x86/x86-defs.m4 (Zdisp): Two more insns.
 22933  
 22934  	* mpn/x86/pentium/mul_2.asm: New file.
 22935  	* mpn/asm-defs.m4: Add define_mpn(mul_2).
 22936  	* acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates.
 22937  
 22938  	* configure.in (ABI): Use AC_ARG_VAR.
 22939  
 22940  	* tests/devel/try.c: Run reference function when validate fails.
 22941  
 22942  	* mpq/get_str.c: Fixes for negative bases.
 22943  	* tests/mpq/t-get_str.c: Check negative bases.
 22944  	* tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New
 22945  	functions.
 22946  
 22947  2001-04-24  Torbjorn Granlund  <tege@swox.com>
 22948  
 22949  	* mpz/lcm.c (mpz_lcm): Make result always positive.
 22950  
 22951  	* gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations.
 22952  
 22953  2001-04-22  Kevin Ryde  <kevin@swox.se>
 22954  
 22955  	* mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4.
 22956  
 22957  	* mpz/cmp_d.c, mpz/cmpabs_d.c: New files.
 22958  	* Makefile.am, mpz/Makefile.am: Add them.
 22959  	* mpf/cmp_d.c, mpf/get_dfl_prec.c: New files.
 22960  	* Makefile.am, mpf/Makefile.am: Add them.
 22961  	* gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec):
 22962  	Add prototypes.
 22963  	* gmp.texi: Add documentation.
 22964  
 22965  	* mpf/set_prc.c: Avoid a realloc call if already the right precision.
 22966  
 22967  	* gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros.
 22968  	* mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c:
 22969  	Use them.
 22970  
 22971  2001-04-20  Kevin Ryde  <kevin@swox.se>
 22972  
 22973  	* tests/devel/try.c: Don't test size==0 on mpn_popcount and
 22974  	mpn_hamdist; add testing for mpn_divexact_1; print some limb values
 22975  	with mpn_trace not printf.
 22976  
 22977  	* mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount
 22978  	and mpn_hamdist.
 22979  	* mpn/generic/popham.c: Don't support size==0.
 22980  
 22981  	* config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32,
 22982  	cleanup the nesting a bit.
 22983  
 22984  	* gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type.
 22985  	(Integer Division): Add mpz_divexact_ui.
 22986  	(Number Theoretic Functions): Fix mpz_nextprime return type.
 22987  	(Exact Remainder): Divisibility tests now implemented.
 22988  	And more index entries in a few places.
 22989  
 22990  	* tests/mpz/dive_ui.c: New file.
 22991  	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
 22992  
 22993  	* mpz/dive_ui.c: New file.
 22994  	* Makefile.am, mpz/Makefile.am: Add it.
 22995  	* gmp-h.in (mpz_divexact_ui): Add prototype.
 22996  
 22997  	* tune/many.pl, tune/speed.h: Add special mpn_back_to_back for
 22998  	development.
 22999  
 23000  	* gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro.
 23001  	* mpz/divexact.c: Use it.
 23002  
 23003  	* gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold.
 23004  	* tune/tuneup.c: Tune it.
 23005  
 23006  	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
 23007  	mpn_divexact_1, mpn_copyi, mpn_copyd.
 23008  
 23009  	* mpn/generic/dive_1.c: New file.
 23010  	* configure.in (gmp_mpn_functions): Add it.
 23011  	* gmp-impl.h (mpn_divexact_1): Add prototype.
 23012  	* mpn/asm-defs.m4: Add define_mpn(divexact_1).
 23013  
 23014  	* tests/mpn: New directory.
 23015  	* tests/Makefile.am: Add it.
 23016  	* tests/mpn/Makefile.am: New file.
 23017  	* configure.in (AC_OUTPUT): Add it.
 23018  	* tests/mpn/t-asmtype.c: New file.
 23019  
 23020  	* configure, config.in: Update to autoconf 2.49d.
 23021  
 23022  	* configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert
 23023  	to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST.
 23024  
 23025  	* configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32.
 23026  	* mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto.
 23027  
 23028  	* configure.in (underscore, asm_align): Remove these variables, unused.
 23029  	(GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication.
 23030  	* acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support
 23031  	for actions, no longer needed.
 23032  
 23033  2001-04-17  Kevin Ryde  <kevin@swox.se>
 23034  
 23035  	* config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo.
 23036  
 23037  	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is
 23038  	fixed in 2.95.4, so test for that.
 23039  	(GMP_ASM_TYPE): Amend some comments.
 23040  
 23041  	* tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused
 23042  	variables on GNU/Linux.
 23043  
 23044  	* mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if
 23045  	the name of the file is a macro.
 23046  
 23047  2001-04-15  Kevin Ryde  <kevin@swox.se>
 23048  
 23049  	* mpn/powerpc64/*.asm: Add speeds on ppc630.
 23050  
 23051  	* acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR.
 23052  	* configure.in: Ensure config.in is the last AM_CONFIG_HEADER,
 23053  	which autoheader requires.
 23054  
 23055  	* mpn/x86/pentium/popcount.asm: New file.
 23056  	* mpn/x86/pentium/hamdist.asm: New file.
 23057  
 23058  	* mpn/asm-defs.m4: (m4_popcount): New macro.
 23059  	Amend a few comments elsewhere.
 23060  
 23061  	* acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for
 23062  	the right directive.
 23063  
 23064  	* tune/speed.c: Print clock speed in MHz, not cycle time.
 23065  
 23066  	* configure.in (AC_CHECK_HEADERS): Check for sys/processor.h.
 23067  	* tune/freq.c (speed_cpu_frequency_processor_info): Require
 23068  	<sys/processor.h> to exist, to differentiate the different
 23069  	processor_info on Darwin.
 23070  	(speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in
 23071  	speed_cpu_frequency_sysctl.
 23072  	(speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin.
 23073  
 23074  	* gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a
 23075  	single expression argument for the different operations, necessary for
 23076  	the Darwin "smart" preprocessor.
 23077  
 23078  	* mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and
 23079  	m4_defbranch.
 23080  
 23081  	* tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am,
 23082  	avoid a possibly undefined array in a diagnostic, add more renaming to
 23083  	hamdist.
 23084  
 23085  2001-04-13  Kevin Ryde  <kevin@swox.se>
 23086  
 23087  	* ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d.
 23088  	* configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and
 23089  	lt_cv_proc_cc_pic.
 23090  
 23091  	* config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model,
 23092  	detect 68000/68010 with trapf, detect 68302 with bfffo.
 23093  
 23094  2001-04-11  Kevin Ryde  <kevin@swox.se>
 23095  
 23096  	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING,
 23097  	GMP_ASM_M68K_BRANCHES): New macros.
 23098  	* configure.in: Use them, remove old 68k configs, use mc68020 udiv and
 23099  	umul.
 23100  
 23101  	* mpn/m68k/m68k-defs.m4: New file.
 23102  	* mpn/m68k/t-m68k-defs.pl: New file.
 23103  	* mpn/m68k/*.asm: New files, converted from .S.  Merge add_n and sub_n
 23104  	to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1.  No
 23105  	object code changes (except .type and .size now used on NetBSD 1.4).
 23106  	* mpn/m68k/README: New file.
 23107  	* mpn/m68k/*.S, */*.S, syntax.h: Remove files.
 23108  
 23109  	* configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist.
 23110  	* tune/README: Update.
 23111  
 23112  	* configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc
 23113  	to cclist, make gcc_cflags -Wa,-mppc optional.
 23114  
 23115  2001-04-06  Kevin Ryde  <kevin@swox.se>
 23116  
 23117  	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k.
 23118  	(gmpasm-mode-syntax-table): Add to comments.
 23119  
 23120  	* tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp.
 23121  
 23122  2001-04-04  Kevin Ryde  <kevin@swox.se>
 23123  
 23124  	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually
 23125  	detect the problem, add notes on m68k netbsd 1.4.1.
 23126  
 23127  	* gmp.texi (Compatibility with older versions): Note libmp
 23128  	compatibility.
 23129  
 23130  2001-04-03  Kevin Ryde  <kevin@swox.se>
 23131  
 23132  	* tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp.
 23133  
 23134  	* tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with
 23135  	refmpn_mul_2.
 23136  
 23137  	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n
 23138  	and mpn_mul_2.
 23139  	* tests/devel/try.c: Add testing of mpn_mul_2, and a
 23140  	DATA_MULTIPLE_DIVISOR attribute.
 23141  
 23142  	* gmp.texi (Build Options): List more m68k's.
 23143  	(Build Options): Add cross reference to tex2html.
 23144  	(Notes for Particular Systems): Add m68k means 68020 or up.
 23145  	(Rational Conversions): New section, with mpq_get_d, mpq_set_d and
 23146  	mpq_set_f from Miscellaneous, and new mpq_set_str.
 23147  	(Applying Integer Functions): Move mpq_get_num, mpq_get_den,
 23148  	mpq_set_num and mpq_set_den from Misc.
 23149  	(Miscellaneous Rational Functions): Remove section.
 23150  	(Custom Allocation): Partial rewrite for various clarifications.
 23151  	(References): Improve line breaks near URLs.
 23152  
 23153  	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro.
 23154  	* configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2.
 23155  	(m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options.
 23156  
 23157  	* tests/mpz/t-cmp.c: New file.
 23158  	* tests/mpz/t-sizeinbase.c: New file.
 23159  	* tests/mpz/Makefile.am: Add them.
 23160  
 23161  	* gmp-impl.h (MPN_CMP): New macro.
 23162  	* mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too.
 23163  
 23164  	* tests/mpq/t-equal.c: New file.
 23165  	* tests/mpq/t-get_str.c: New file.
 23166  	* tests/mpq/Makefile.am: Add them.
 23167  
 23168  	* mpq/get_str.c: New file.
 23169  	* Makefile.am, mpq/Makefile.am: Add it.
 23170  	* gmp-h.in (mpq_get_str): Add prototype.
 23171  
 23172  	* mpq/equal.c: Rewrite using inline compare loops.
 23173  
 23174  	* tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order.
 23175  	* mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order.
 23176  
 23177  2001-03-29  Kevin Ryde  <kevin@swox.se>
 23178  
 23179  	* tests/mpf/t-trunc.c: New file.
 23180  	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
 23181  	* gmp-impl.h (MPF_CHECK_FORMAT): New macro.
 23182  
 23183  	* mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in
 23184  	copy, don't copy if unnecessary.
 23185  	* mpf/ceilfloor.c: New file likewise, and use common subroutine for
 23186  	ceil and floor.
 23187  	* mpf/integer.c: Remove file.
 23188  	* Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update.
 23189  
 23190  	* acinclude.m4 (GMP_GCC_VERSION_GE): New macro.
 23191  	(GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't
 23192  	bother checking it's gcc).
 23193  	(GMP_GCC_ARM_UMODSI): New macro.
 23194  	* configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters.
 23195  	(arm*-*-*): Use GMP_GCC_ARM_UMODSI.
 23196  	* gmp.texi (Notes for Particular Systems): Add arm gcc requirements.
 23197  
 23198  2001-03-28  Kevin Ryde  <kevin@swox.se>
 23199  
 23200  	* gmp.texi (Converting Integers): Document mpz_getlimbn using absolute
 23201  	value and giving zero for N out of range, move to end of section.
 23202  
 23203  	* tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than
 23204  	refmpn_divrem_1.
 23205  	* tests/tests.h: Add some prototypes that were missing.
 23206  
 23207  	* mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui.
 23208  
 23209  2001-03-26  Torbjorn Granlund  <tege@swox.com>
 23210  
 23211  	* mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code
 23212  	in both arms.  Partially combine multiply arms.
 23213  
 23214  2001-03-24  Kevin Ryde  <kevin@swox.se>
 23215  
 23216  	* longlong.h: Add comments to P5 count_leading_zeros.
 23217  
 23218  	* demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p.
 23219  
 23220  2001-03-23  Kevin Ryde  <kevin@swox.se>
 23221  
 23222  	* gmp.texi (GMPceil, GMPfloor, ge, le): New macros.
 23223  	(Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them.
 23224  	(mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and
 23225  	improve formatting a bit.
 23226  	(mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n}
 23227  	for the destination.
 23228  	Miscellaneous minor rewordings in a few places.
 23229  
 23230  	* mpn/arm/arm-defs.m4: New file.
 23231  	* configure.in (arm*-*-*): Use it.
 23232  	* mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L()
 23233  	for local labels.
 23234  
 23235  	* mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed).
 23236  
 23237  	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application
 23238  	namespace.
 23239  
 23240  	* gmp-impl.h (ABS): Add parens around argument.
 23241  
 23242  2001-03-20  Kevin Ryde  <kevin@swox.se>
 23243  
 23244  	* acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4.
 23245  
 23246  	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro.
 23247  	* configure.in: Use it.
 23248  	* mpn/asm-defs.m4: Ditto.
 23249  
 23250  2001-03-18  Kevin Ryde  <kevin@swox.se>
 23251  
 23252  	* mpn/x86/pentium/logops_n.asm: New file.
 23253  
 23254  	* mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on
 23255  	small sizes, slower on big sizes (about half the time).
 23256  	* mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86.
 23257  	* mpn/x86/copyi.asm: Add some comments.
 23258  	* mpn/x86/k6/README: Update.
 23259  
 23260  	* mpn/x86/k6/gcd_1.asm: New file.
 23261  
 23262  	* gmp-impl.h (NEG_MOD): Fix type of __dnorm.
 23263  
 23264  	* acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE.
 23265  
 23266  2001-03-15  Kevin Ryde  <kevin@swox.se>
 23267  
 23268  	* gmp.texi (GMPabs): New macro.
 23269  	(Float Comparison - mpf_reldiff): Use it.
 23270  	(Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info.
 23271  	(Reentrancy): Update notes on old random functions.
 23272  	(Karatsuba Multiplication): Better characterize the effect of basecase
 23273  	speedups on the thresholds, pointed out by Torbjorn.
 23274  
 23275  	* tune/README: Notes on the 1x1 div threshold for mpn_gcd_1.
 23276  
 23277  	* tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb,
 23278  	mpz_errandomb_nonzero, mpz_negrandom): New functions.
 23279  	(mpz_erandomb, mpz_erandomb_nonzero): Use urandom().
 23280  	* tests/spinner.c (spinner_wanted, spinner_tick): Make global.
 23281  	* tests/tests.h: Update prototypes.
 23282  
 23283  	* tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files.
 23284  	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.
 23285  
 23286  	* mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files.
 23287  	* Makefile.am, mpz/Makefile.am: Add them.
 23288  	* gmp-impl.h (NEG_MOD): New macro.
 23289  	* gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p,
 23290  	mpz_congruent_ui_p): Add prototypes.
 23291  	* gmp.texi (Integer Division, Efficiency): Add documentation.
 23292  
 23293  	* mpq/aors.c: No need for ABS on denominator sizes.
 23294  
 23295  	* gmp-impl.h (mpn_divisible_p): Use __MPN.
 23296  
 23297  	* gmp-impl.h (LOW_ZEROS_MASK): New macro.
 23298  	* mpz/divis_ui.c, mpn/generic/divis.c: Use it.
 23299  
 23300  	* mpz/setbit.c: Fix normalization for case of a negative ending up
 23301  	with a zero high limb.
 23302  	* tests/mpz/bit.c (check_single): New test for this problem.
 23303  
 23304  	* configure.in (none-*-*): Fix cclist for default ABI=long.
 23305  
 23306  2001-03-10  Kevin Ryde  <kevin@swox.se>
 23307  
 23308  	* mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't
 23309  	matter to the rounding.
 23310  
 23311  	* mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come
 23312  	out branch-free.
 23313  
 23314  2001-03-08  Kevin Ryde  <kevin@swox.se>
 23315  
 23316  	* tests/devel/try.c (param_init): Fix reference functions for and_n
 23317  	and nand_n.
 23318  
 23319  	* tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc.
 23320  	* configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom.
 23321  	* macos/configure (coptions): Remove random/srandom, now unnecessary.
 23322  
 23323  	* configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using
 23324  	AM_CONFIG_HEADER.
 23325  	(_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs.
 23326  	* gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's.
 23327  	* acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h.
 23328  	* Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done
 23329  	automatically.
 23330  	* acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use
 23331  	__GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST.
 23332  
 23333  	* mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the
 23334  	exponent, ensures full range of values too.
 23335  
 23336  	* tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but
 23337  	don't let it go negative.
 23338  
 23339  	* tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to
 23340  	TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c.
 23341  	Use a -1 with this too, so size<LIMIT not <=.
 23342  
 23343  2001-03-07  Torbjorn Granlund  <tege@swox.com>
 23344  
 23345  	* mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0.
 23346  	* mpn/cray/cfp/addmul_1.c: Likewise.
 23347  	* mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0.
 23348  
 23349  	* tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0
 23350  	(avoid problems with Cray compilers).
 23351  
 23352  2001-03-06  Torbjorn Granlund  <tege@swox.com>
 23353  
 23354  	* mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0.
 23355  
 23356  	* mpn/cray/ieee/mul_basecase.c: New file.
 23357  	* mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c.
 23358  
 23359  2001-03-06  Kevin Ryde  <kevin@swox.se>
 23360  
 23361  	* tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for
 23362  	the benefit of mpn_tdiv_qr.
 23363  
 23364  	* tune/tuneup.c (all): Start karatsuba probing at size==4, for the
 23365  	benefit of cray t90 ieee which has speed oddities at size==2.
 23366  
 23367  	* gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ.
 23368  	Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places.
 23369  
 23370  	* gmp-h.in (__GMP_GNUC_PREREQ) New macro.
 23371  	(__GMP_ATTRIBUTE_PURE): New macro, use it in many places.
 23372  
 23373  	* gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to
 23374  	gmp-impl.h, use ATTRIBUTE_CONST.
 23375  
 23376  	* tune/speed.h (speed_cyclecounter): Inline asm version for i386.
 23377  
 23378  	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second
 23379  	realloc, first is under w!=u.
 23380  
 23381  2001-03-05  Torbjorn Granlund  <tege@swox.com>
 23382  
 23383  	* mpn/cray/sub_n.c: Rewrite using `majority' logic.
 23384  
 23385  	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w.
 23386  
 23387  	* mpn/cray/ieee/mul_1.c: Rewrite.  Streamline multiplications;
 23388  	use `majority' logic.
 23389  	* mpn/cray/ieee/addmul_1.c: Likewise.
 23390  
 23391  	* mpn/cray/add_n.c: Rewrite using `majority' logic.
 23392  
 23393  2001-03-04  Torbjorn Granlund  <tege@swox.com>
 23394  
 23395  	* longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP.
 23396  	(64-bit hppa add_ssaaaa): New.
 23397  	(64-bit hppa sub_ddmmss): New.
 23398  
 23399  	* mpn/cray/ieee/invert_limb.c: New file.
 23400  
 23401  	* gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers.
 23402  
 23403  2001-03-03  Kevin Ryde  <kevin@swox.se>
 23404  
 23405  	* mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h.
 23406  	* gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic
 23407  	form by Torbjorn.
 23408  
 23409  	* tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c.
 23410  	* tests/mpz/t-2exp.c: Remove file.
 23411  	* tests/mpz/Makefile.am (check_PROGRAMS): Update.
 23412  
 23413  	* gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes.
 23414  	* gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp.
 23415  
 23416  	* mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add
 23417  	mpz_cdiv_q_2exp entrypoint.
 23418  	* mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn,
 23419  	add mpz_cdiv_r_2exp entrypoint.
 23420  	* mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files.
 23421  	* mpz/Makefile.am (libmpz_la_SOURCES): Update.
 23422  	* Makefile.am (MPZ_OBJECTS): Ditto.
 23423  
 23424  	* gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h
 23425  	(REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros.
 23426  	* mpz/jacobi.c (jac_or_kron): Use them.
 23427  
 23428  	* configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with
 23429  	dots changed to underscores (necessary for hppa).
 23430  
 23431  	* tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files.
 23432  	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.
 23433  
 23434  	* gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p,
 23435  	mpz_divisible_2exp_p): Add prototypes.
 23436  	* gmp.texi (Integer Division): Add mpz_divisible_p.
 23437  	(Efficiency): Add remarks about divisibility testing.
 23438  
 23439  	* mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files.
 23440  	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
 23441  	* Makefile.am (MPZ_OBJECTS): Ditto.
 23442  
 23443  	* mpn/generic/divis.c: New file.
 23444  	* configure.in (gmp_mpn_functions): Add it.
 23445  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto.
 23446  	* gmp-impl.h (mpn_divisible_p): Add prototype.
 23447  
 23448  	* urandom.h: Remove file.
 23449  	* Makefile.am (EXTRA_DIST): Remove it.
 23450  
 23451  	* tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c,
 23452  	t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c,
 23453  	t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c,
 23454  	t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start.
 23455  
 23456  	* tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some
 23457  	further tests added.
 23458  	* tests/mpz/t-pow_ui.c: Remove file.
 23459  	* tests/mpz/Makefile.am (check_PROGRAMS): Update.
 23460  
 23461  	* tests/t-modlinv.c: Don't use urandom.h.
 23462  	* tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto.
 23463  	* tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto.
 23464  	* tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c,
 23465  	t-sqrt.c, t-sub.c: Ditto.
 23466  
 23467  	* tests/misc.c (tests_rand_start, tests_rand_end): New functions.
 23468  	(tests_start, tests_end): Use them.
 23469  	(urandom): New function.
 23470  	* tests/tests.h: Add prototypes.
 23471  
 23472  	* mpz/random.c: Rewrite using mpz_urandomb and RANDS.
 23473  	* mpn/generic/random.c: Rewrite using _gmp_rand and RANDS.
 23474  	* mpn/generic/random2.c: Use RANDS not random() etc.
 23475  
 23476  	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs.
 23477  	(gmp_randstate_ptr): New typedef.
 23478  	(RANDS, RANDS_CLEAR): New macros.
 23479  
 23480  	* rands.c: New file.
 23481  	* Makefile.am (libgmp_la_SOURCES): Add it.
 23482  
 23483  	* configure.in (mpn_objs_in_libmp): New AC_SUBST.
 23484  	* Makefile.am (libmp_la_DEPENDENCIES): Use it.
 23485  
 23486  2001-03-02  Torbjorn Granlund  <tege@swox.com>
 23487  
 23488  	* mpn/pa64/udiv_qrnnd.asm: New file.
 23489  
 23490  2001-03-01  Kevin Ryde  <kevin@swox.se>
 23491  
 23492  	* mpbsd/rpow.c: New file.
 23493  	* mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it
 23494  	(nodist_libmpbsd_la_SOURCES): Remove pow_ui.c.
 23495  	* Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo.
 23496  	(libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo.
 23497  
 23498  	* mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui.
 23499  	* mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd.
 23500  
 23501  	* mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c.  Use
 23502  	less temporary memory, strip factors of 2 from the base, use mpn_mul_2
 23503  	if available.
 23504  	* mpz/si_pow_ui.c: New file.
 23505  	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
 23506  	* Makefile.am (MPZ_OBJECTS): Ditto.
 23507  	* gmp-impl.h (mpz_n_pow_ui): Add prototype.
 23508  	* gmp-h.in (mpz_si_pow_ui): Add prototype.
 23509  	* gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui.
 23510  
 23511  	* acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG.
 23512  	Correction to mp_limb_t working check.
 23513  	* configure.in (limb_chosen): New variable.
 23514  	* tests/t-constants.c (BITS_PER_ULONG): Check this value.
 23515  	Add some reminders about tests that fail on Cray.
 23516  
 23517  	* tests/refmpn.c (refmpn_mul_2): New function.
 23518  	* tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c
 23519  	* tests/tests.h: Add prototypes.
 23520  
 23521  	* configure.in (none-*-*): Add ABI=longlong.
 23522  	* doc/configuration (Long long limb testing): Describe it.
 23523  
 23524  	* gmp.texi (Low-level Functions): Move some commented out remarks ...
 23525  	* mpn/generic/mul_basecase.c: ... to here.
 23526  
 23527  	* mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__.
 23528  
 23529  	* tests/trace.c (mp_trace_start): Print "bin" for binary.
 23530  
 23531  	* mpn/generic/dump.c: Add a couple of casts to keep gcc quiet.
 23532  
 23533  	* gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments.
 23534  
 23535  	* mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable.
 23536  
 23537  	* mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs.
 23538  
 23539  2001-02-28  Torbjorn Granlund  <tege@swox.com>
 23540  
 23541  	* mpn/pa64w/udiv_qrnnd.asm: Tune.
 23542  
 23543  2001-02-27  Torbjorn Granlund  <tege@swox.com>
 23544  
 23545  	* mpn/pa64w/udiv_qrnnd.asm: New file.
 23546  
 23547  2001-02-26  Torbjorn Granlund  <tege@swox.com>
 23548  
 23549  	* longlong.h (arm): Optimize sub_ddmmss by testing for constant
 23550  	operands.
 23551  	* mpn/arm/invert_limb.asm: New file.
 23552  
 23553  2001-02-24  Torbjorn Granlund  <tege@swox.com>
 23554  
 23555  	* mpn/generic/lshift.c: Rewrite.
 23556  	* mpn/generic/rshift.c: Rewrite.
 23557  
 23558  	* longlong.h: Use UWtype for external interfaces that expect mp_limb_t.
 23559  
 23560  	* longlong.h (arm): #define invert_limb.
 23561  
 23562  	* mpn/arm: Make labels have local scope.
 23563  
 23564  	* configure.in (arm*-*-*): Set extra_functions.
 23565  	* longlong.h (arm): #define udiv_qrnnd.
 23566  	* mpn/arm/udiv.asm: New file.
 23567  
 23568  2001-02-24  Kevin Ryde  <kevin@swox.se>
 23569  
 23570  	* tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros
 23571  	and mpn_invert_limb.  Add count_leading_zeros, count_trailing_zeros
 23572  	from a .h file.  Correction to modexact_1_odd prototype.  Support
 23573  	ansi2knr.
 23574  	* tune/speed.h, tune/common.c: Consequent changes.
 23575  
 23576  	* demos/expr/*: Make a few more functions available in expressions,
 23577  	create only libexpr.a, misc minor updates.
 23578  
 23579  	* mpn/Makeasm.am: Add some comments about suffix ordering.
 23580  
 23581  	* tests/refmpn.c (rshift_make, lshift_make): No need to compare
 23582  	unsigned to zero.
 23583  
 23584  	* mpq/mul.c: Detect and optimize squaring.
 23585  
 23586  2001-02-23  Torbjorn Granlund  <tege@swox.com>
 23587  
 23588  	* mpn/mips3: Convert files to `.asm'.
 23589  
 23590  	* mpn/arm: Convert files to `.asm'.  Misc cleanups.
 23591  	* mpn/arm/submul_1.asm: New file.
 23592  
 23593  2001-02-21  Kevin Ryde  <kevin@swox.se>
 23594  
 23595  	* tune/tuneup.c (all): Only one compiler print should match, no need
 23596  	for #undef PRINTED_COMPILER.
 23597  
 23598  	* mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul).
 23599  
 23600  	* mpz/fib_ui.c: Update some remarks about alternative algorithms.
 23601  	* gmp.texi (Fibonacci Numbers Algorithm): Ditto.
 23602  	(Assigning Floats): Clarify mpf_swap swaps the precisions too.
 23603  	(Low-level Functions): Try to be clearer about negative cofactors.
 23604  
 23605  2001-02-21  Torbjorn Granlund  <tege@swox.com>
 23606  
 23607  	* mpn/sparc64/copyi.asm: Streamline for small operands.
 23608  	* mpn/sparc64/add_n.asm: Likewise.
 23609  	* mpn/sparc64/sub_n.asm: Likewise.
 23610  
 23611  	* mpn/sparc64/copyd.asm: New file.
 23612  
 23613  2001-02-20  Torbjorn Granlund  <tege@swox.com>
 23614  
 23615  	* mpn/sparc64/lshift.asm: Rewrite.
 23616  	* mpn/sparc64/rshift.asm: Rewrite.
 23617  
 23618  2001-02-19  Torbjorn Granlund  <tege@swox.com>
 23619  
 23620  	* mpn/sparc64/add_n.asm: Rewrite using `majority' logic.
 23621  	* mpn/sparc64/sub_n.asm: Likewise.
 23622  
 23623  	* tune/tuneup.c (all): Recognise DECC and MIPSpro compilers.
 23624  
 23625  	* mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE.
 23626  	* mpn/pa642/sqr_diagonal.asm: Likewise.
 23627  
 23628  	* configure.in (HAVE_ABI_$abi): Disable for now.
 23629  
 23630  	* mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX.
 23631  
 23632  	* acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities.
 23633  
 23634  2001-02-18  Torbjorn Granlund  <tege@swox.com>
 23635  
 23636  	* mpn/hppa/hppa1_1/gmp-mparam.h: New file.
 23637  	* mpn/hppa/hppa2_0/gmp-mparam.h: New file.
 23638  
 23639  	* mpn/pa64/sqr_diagonal.asm: New file.
 23640  	* mpn/pa64w/sqr_diagonal.asm: New file.
 23641  	* mpn/hppa/hppa1_1/sqr_diagonal.asm: New file.
 23642  	* mpn/hppa/hppa2_0/sqr_diagonal.asm: New file.
 23643  
 23644  	* mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy
 23645  	FA-pipeline insns.
 23646  	* mpn/sparc32/v9/sub_n.asm: Likewise.
 23647  
 23648  2001-02-18  Kevin Ryde  <kevin@swox.se>
 23649  
 23650  	* gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc
 23651  	tweaks elsewhere.
 23652  	(Low-level Functions): Use {} notation in mpn_sqrtrem.
 23653  	(Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD.
 23654  
 23655  	* mpfr/isnan.c (mpfr_number_p): Infinity is not a number.
 23656  	* mpfr/out_str.c: Pass strlen+1 for the block size to free.
 23657  	* mpfr/get_str.c: Correction for realloc to strlen+1.
 23658  
 23659  	* acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't
 23660  	seem to work for some reason.
 23661  
 23662  2001-02-16  Torbjorn Granlund  <tege@swox.com>
 23663  
 23664  	* mpn/sparc32/v9/gmp-mparam.h: Retune.
 23665  
 23666  	* mpn/sparc32/v9/add_n.asm: New file.
 23667  	* mpn/sparc32/v9/sub_n.asm: New file.
 23668  
 23669  	* mpn/sparc32/v9/mul_1.asm: Tune function entry.
 23670  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 23671  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 23672  
 23673  	* mpn/sparc32/v9/sqr_diagonal.asm: New file.
 23674  
 23675  2001-02-16  Kevin Ryde  <kevin@swox.se>
 23676  
 23677  	* configure.in: Fix flags selection when $CC is a compiler known to us.
 23678  
 23679  	* demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now
 23680  	allows NULL for one parameter.
 23681  
 23682  	* mpfr/*: Update to 20010215.
 23683  	* mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p.
 23684  	* mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new.
 23685  	* mpfr/sqrtrem.c: Remove file.
 23686  	* mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c,
 23687  	remove sqrtrem.c and srandom.h.
 23688  
 23689  	* configfsf.guess: Update to 2001-02-13.
 23690  	* configfsf.sub: Update to 2001-02-16.
 23691  	* config.sub (j90, t90): Remove special handing, configfsf.sub now ok.
 23692  
 23693  	* Makefile.am (MPF_OBJECTS): Add a couple of missing $U's.
 23694  
 23695  	* tune/tuneup.c: Identify compiler used (GCC and Sun C so far).
 23696  
 23697  2001-02-15  Torbjorn Granlund  <tege@swox.com>
 23698  
 23699  	* mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'.
 23700  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 23701  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 23702  
 23703  2001-02-14  Torbjorn Granlund  <tege@swox.com>
 23704  
 23705  	* mpn/mips3/mips.m4: New file.
 23706  	* configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4.
 23707  
 23708  	* mpn/powerpc64/sqr_diagonal.asm: New file.
 23709  
 23710  	* mpn/mips3/sqr_diagonal.asm: New file.
 23711  
 23712  2001-02-12  Torbjorn Granlund  <tege@swox.com>
 23713  
 23714  	* mpn/powerpc32/sqr_diagonal.asm: New file.
 23715  
 23716  	* mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal.
 23717  	Fix typo in header comment.
 23718  
 23719  2001-02-12  Kevin Ryde  <kevin@swox.se>
 23720  
 23721  	* mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use
 23722  	mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD.
 23723  	* tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD.
 23724  
 23725  	* Makefile.am (libgmp.la, libmp.la): Revert change to build from
 23726  	mpn/libmpn.la etc, go back to explicitly listed objects.
 23727  
 23728  	* configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*.
 23729  
 23730  2001-02-11  Torbjorn Granlund  <tege@swox.com>
 23731  
 23732  	* mpn/asm-defs.m4 (sqr_diagonal): New define_mpn.
 23733  
 23734  	* mpn/alpha/sqr_diagonal.asm: New file.
 23735  
 23736  2001-02-11  Kevin Ryde  <kevin@swox.se>
 23737  
 23738  	* gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input
 23739  	plus 1 extra limb.
 23740  
 23741  	* mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c,
 23742  	set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R.
 23743  	* tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c,
 23744  	demos/expr/t-expr.c: Ditto.
 23745  
 23746  	* configure.in (HAVE_ABI_$abi): New define in config.m4.
 23747  
 23748  	* gmp-impl.h (mpn_sqr_diagonal): Add prototype and define.
 23749  	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
 23750  	mpn_sqr_diagonal.
 23751  
 23752  	* gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg
 23753  	movq bug the same as 2.6.
 23754  
 23755  	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h.
 23756  
 23757  	* mpn/x86/README: Merge contents of README.family.
 23758  	* mpn/x86/README.family: Remove file.
 23759  
 23760  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda,
 23761  	invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically.
 23762  
 23763  2001-02-10  Torbjorn Granlund  <tege@swox.com>
 23764  
 23765  	* configure.in (gmp_mpn_functions_optional): List sqr_diagonal.
 23766  
 23767  	* mpn/powerpc32/aix.m4: Use unnamed csects.
 23768  	* mpn/powerpc64/aix.m4: Likewise.
 23769  
 23770  	* acconfig.h: Add #undef of mpn_sqr_diagonal.
 23771  	Remove lots of spacing.
 23772  
 23773  	* configure.in (syntax testing section): Match power* instead of
 23774  	powerpc*.
 23775  	* mpn/power: Convert files to `.asm'.
 23776  	Prefix umul_ppmm and sdiv_qrnnd.
 23777  	Update some comments.
 23778  
 23779  2001-02-09  Kevin Ryde  <kevin@swox.se>
 23780  
 23781  	* acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and
 23782  	HAVE_NATIVE_mpn_modexact_1c_odd.
 23783  
 23784  	* configure.in (CCAS): Don't override a user selection.
 23785  
 23786  	* mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0.
 23787  
 23788  2001-02-08  Torbjorn Granlund  <tege@swox.com>
 23789  
 23790  	* mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate.
 23791  
 23792  2001-02-07  Kevin Ryde  <kevin@swox.se>
 23793  
 23794  	* gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented.
 23795  
 23796  	* mpn/generic/random2.c (myrandom): Use rand() on mingw.
 23797  
 23798  	* mpn/alpha/gmp-mparam.h: Update tuned parameters.
 23799  
 23800  2001-02-05  Torbjorn Granlund  <tege@swox.com>
 23801  
 23802  	* mpn/alpha/ev6/gmp-mparam.h: Retune.
 23803  
 23804  2001-02-05  Kevin Ryde  <kevin@swox.se>
 23805  
 23806  	* Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather
 23807  	than explicitly listed objects.
 23808  
 23809  	* urandom.h: Use rand() on mingw.
 23810  
 23811  	* mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1.
 23812  
 23813  2001-02-04  Torbjorn Granlund  <tege@swox.com>
 23814  
 23815  	* mpn/ia64/copyi.asm: New file.
 23816  	* mpn/ia64/copyd.asm: New file.
 23817  
 23818  2001-02-04  Kevin Ryde  <kevin@swox.se>
 23819  
 23820  	* mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h,
 23821  	mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h,
 23822  	mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h:
 23823  	Update tuned parameters.
 23824  
 23825  	* mpn/x86/i486: New directory.
 23826  	* configure.in (i486-*-*): Use it.
 23827  	* mpn/x86/i486/gmp-mparam.h: New file.
 23828  
 23829  	* mpn/x86/pentium/mode1o.asm: New file.
 23830  	* mpn/x86/p6/mode1o.asm: New file.
 23831  
 23832  	* tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC).
 23833  
 23834  	* gmp.texi (Integer Division): Another rewording of 2exp divisions.
 23835  
 23836  2001-02-03  Torbjorn Granlund  <tege@swox.com>
 23837  
 23838  	* mpn/arm/gmp-mparam.h: Tune.
 23839  
 23840  	* mpn/ia64/popcount.asm: Put a `;;' break at end of main loop.
 23841  
 23842  	* configure.in (arm*-*-*): Set gcc_cflags in order to pass
 23843  	$fomit_frame_pointer.
 23844  
 23845  	* tests/mpz/t-mul.c (base_mul): Remove an unused variable.
 23846  
 23847  2001-02-02  Torbjorn Granlund  <tege@swox.com>
 23848  
 23849  	* demos/pexpr.c (TIME): New macro.
 23850  	(main): Use TIME--print timing more accurately.
 23851  	(setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte.
 23852  
 23853  	* longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss.
 23854  
 23855  2001-02-02  Kevin Ryde  <kevin@swox.se>
 23856  
 23857  	* configure.in: Don't remove gmp-mparam.h and mpn source links under
 23858  	--no-create since in that case they're not re-created.
 23859  
 23860  	* demos/expr: New directory.
 23861  	* Makefile.am (SUBDIRS, allprogs): Add it.
 23862  	* demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c,
 23863  	exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h,
 23864  	expr-impl-h.in, run-expr.c, t-expr.c: New files.
 23865  	* configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h.
 23866  
 23867  	* Makefile.am: Remove mpfr from main libgmp.
 23868  	* mpfr/Makefile.am: Build and install separate libmpfr.a.
 23869  	* mpfr/*: Update to mpfr 2001.
 23870  
 23871  	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2.
 23872  	* Makefile.am (libtool -version-info): Bump appropriately.
 23873  	* NEWS: Updates.
 23874  
 23875  	* tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c,
 23876  	tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c,
 23877  	divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames.
 23878  	* tune/Makefile.am (libspeed_la_SOURCES): Update.
 23879  
 23880  	* mpn/x86/*/README, mpn/x86/README.family: Misc updates.
 23881  	* tune/README: Misc updates.
 23882  	* doc/configuration: Misc updates.
 23883  
 23884  	* mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to
 23885  	UDIV_NORM_PREINV_TIME.
 23886  
 23887  	* mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort.
 23888  
 23889  	* rand.c (__gmp_rand_lc_scheme): Add "const".
 23890  	(struct __gmp_rand_lc_scheme_struct): Make astr "const char *".
 23891  
 23892  	* demos/calc/calc.y, demos/calc/calclex.l: Add kron function.
 23893  
 23894  	* tests/devel/try.c: Partial rewrite, new scheme of function types,
 23895  	allow result validation functions, add sqrtrem and jacobi testing.
 23896  	* tune/many.pl: Corresponding updates.
 23897  	* tests/devel/Makefile.am: Add a convenience rule for libtests.la.
 23898  
 23899  	* tests/refmpz.c: New file.
 23900  	* tests/Makefile.am: Add it.
 23901  	* tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions.
 23902  	* tests/tests.h: Add prototypes.
 23903  
 23904  	* mpn/x86/k6/cross.pl: Add a couple more exceptions.
 23905  
 23906  	* gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex.
 23907  	(Introduction to GMP): Mention Cray vector systems.
 23908  	(Build Options): Describe --enable-mpfr, refer to its manual.  Add
 23909  	Crays under supported CPUs.
 23910  	(Debugging): Add notes on source file paths.
 23911  	(Autoconf): New section.
 23912  	(Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and
 23913  	mpz_set_f.
 23914  	(Converting Integers): Note the size mpz_get_str allocates.
 23915  	(Floating-point Functions): Rewrite introduction, clarifying some
 23916  	points about precision handling.
 23917  	(Converting Floats): Note the size mpf_get_str allocates, and that it
 23918  	gives an empty string for zero.  Add mpf_get_si and mpf_get_ui.
 23919  	(Float Comparison): Give the formula mpf_reldiff calculates.
 23920  	(Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p.
 23921  	(Random Number Functions): Misc rewordings for clarity.
 23922  	(Random State Initialization): Ditto.
 23923  	(Custom Allocation): Remove note on deallocate_function called with 0,
 23924  	misc rewording and clarifications.
 23925  	(Exact Remainder): New section.
 23926  	(Binary GCD): A few words on initial reduction using division.
 23927  	(Accelerated GCD): Refer to exact remainder section.
 23928  	(Extended GCD): Extra remarks on single versus double selection.
 23929  	(Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd.
 23930  	(Modular Powering Algorithm): Refer to exact remainder section.
 23931  	(Assembler SIMD Instructions): Update remarks on MMX.
 23932  	(Contributors): Amend to "Divide and Conquer" division.
 23933  	(References): Tweak some formatting.  Add "Proof of GMP Fast Division
 23934  	and Square Root Implementations" by Paul Zimmermann.
 23935  
 23936  2001-01-31  Torbjorn Granlund  <tege@swox.com>
 23937  
 23938  	* configure.in: Don't ever pass -mips3; let ABI flags imply ISA.
 23939  
 23940  2001-01-31  Kevin Ryde  <kevin@swox.se>
 23941  
 23942  	* tune/time.c: Remove unnecessary longlong.h.
 23943  	(speed_endtime): Add some extra diagnostics.
 23944  
 23945  	* tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for
 23946  	the divisor, not mp_limb_t.
 23947  	* tests/mpz/t-jac.c (try_base): Use %llu for long long limb.
 23948  	* tests/trace.c: Add <string.h> for strlen.
 23949  
 23950  	* tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle
 23951  	frequency" of 0, allow "BogoMIPS" as well as "bogomips".
 23952  
 23953  	* macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects.
 23954  
 23955  2001-01-30  Torbjorn Granlund  <tege@swox.com>
 23956  
 23957  	* longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc.
 23958  
 23959  2001-01-29  Torbjorn Granlund  <tege@swox.com>
 23960  
 23961  	* mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'.
 23962  	* mpn/powerpc64/submul_1.asm: Likewise.
 23963  	* mpn/powerpc64/mul_1.asm: Likewise.
 23964  
 23965  	* configure.in (alpha*-*-*): Amend last change to handle pca*.
 23966  
 23967  2001-01-29  Kevin Ryde  <kevin@swox.se>
 23968  
 23969  	* tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the
 23970  	compiler optimize everything away.
 23971  
 23972  	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure
 23973  	operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv,
 23974  	mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv,
 23975  	mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv.
 23976  	* tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c,
 23977  	tune/sb_inv.c: New files.
 23978  
 23979  	* tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c,
 23980  	tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD.
 23981  
 23982  	* mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD.
 23983  	* mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD.
 23984  
 23985  	* mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files,
 23986  	just m4 include()ing the P55 code.
 23987  	* configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path.
 23988  
 23989  2001-01-27  Kevin Ryde  <kevin@swox.se>
 23990  
 23991  	* configure.in (AC_CHECK_FUNCS): Add srand48.
 23992  	* tune/speed.c: Use this test.
 23993  
 23994  	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc
 23995  	--version, warn if the format is unrecognised.
 23996  	(GMP_COMPARE_GE): Guard against empty $1 not only on last arg.
 23997  	(GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal
 23998  	"dnl"s since autoconf thinks they indicate faulty macros.
 23999  
 24000  	* mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly
 24001  	strlen(str)+1 bytes.
 24002  	* mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when
 24003  	freeing.
 24004  	* tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised.
 24005  
 24006  	* tests/mpz/t-fits.c: New file.
 24007  	* tests/mpz/Makefile.am: Add it.
 24008  
 24009  	* tests/mpf/t-fits.c: New file.
 24010  	* tests/mpf/t-get_si.c: New file.
 24011  	* tests/mpf/t-int.c: New file.
 24012  	* tests/mpf/Makefile.am: Add them.
 24013  
 24014  	* mpf/fits_s.c: New file.
 24015  	* mpf/fits_u.c: New file.
 24016  	* mpf/get_si.c: New file.
 24017  	* mpf/get_ui.c: New file.
 24018  	* mpf/int_p.c: New file.
 24019  	* Makefile.am, mpf/Makefile.am: Add them.
 24020  	* gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add
 24021  	prototypes.
 24022  
 24023  	* tests/memory.c (tests_allocate, tests_reallocate): Guard against
 24024  	size==0.
 24025  
 24026  	* tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and
 24027  	tests_end.
 24028  
 24029  	* gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals.
 24030  
 24031  2001-01-23  Kevin Ryde  <kevin@swox.se>
 24032  
 24033  	* configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution,
 24034  	allowing -DPIC to be suppressed on cygwin.
 24035  	(CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather
 24036  	than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8.
 24037  
 24038  	* mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary
 24039  	+[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3.
 24040  	* mpn/x86/README.family: Add notes on the problem.
 24041  
 24042  2001-01-20  Torbjorn Granlund  <tege@swox.com>
 24043  
 24044  	* configure.in (alpha*-*-*): Default `flavour' to ev4.
 24045  
 24046  2001-01-19  Kevin Ryde  <kevin@swox.se>
 24047  
 24048  	* assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to
 24049  	void, since it's no longer used in expressions.
 24050  
 24051  	* mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets
 24052  	tune/many.pl.
 24053  
 24054  	* mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and
 24055  	negative denominators; merge mpz_jacobi and mpz_legendre, add
 24056  	mpz_kronecker; use mpn directly, add special cases for size==1.
 24057  	* gmp.texi (Number Theoretic Functions): Update.
 24058  	* gmp-h.in (mpz_kronecker): Add prototype.
 24059  	* gmp-impl.h (USE_LEADING_REGPARM): New macro.
 24060  	* tests/mpz/t-jac.c: Test mpz_kronecker.
 24061  	* mpz/legendre.c: Remove file.
 24062  	* Makefile.am, mpz/Makefile.am: Update.
 24063  
 24064  	* longlong.h (alpha count_leading_zeros): Use __attribute__ ((const))
 24065  	when possible, add parameter to prototype.
 24066  	(ia64 udiv_qrnnd): Use for all compilers, not just gcc.
 24067  	(pentium count_trailing_zeros): Use count_leading_zeros.
 24068  
 24069  	* acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New
 24070  	macros.
 24071  	* configure.in: Use them.
 24072  	* gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros.
 24073  	(mpn_invert_limb): Add ATTRIBUTE_CONST.
 24074  	(__gmp_assert_fail): Add ATTRIBUTE_NORETURN.
 24075  
 24076  2001-01-18  Kevin Ryde  <kevin@swox.se>
 24077  
 24078  	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
 24079  	__gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the
 24080  	benefit of gmp++.h.
 24081  
 24082  	* gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT
 24083  	and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and
 24084  	mpf_set_str_or_abort in libtests.
 24085  	* tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c,
 24086  	tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c,
 24087  	tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update.
 24088  
 24089  	* mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL).
 24090  
 24091  	* tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors.
 24092  
 24093  2001-01-18  Torbjorn Granlund  <tege@swox.com>
 24094  
 24095  	* demos/pexpr.c (main): Accept -vml option.
 24096  	(fns): List `hamdist', `pow', `nextprime'.
 24097  	(mpz_eval_expr): Return -1 for `popc' of negative.
 24098  	(mpz_eval_expr): Handle `hamdist', `pow', `nextprime'.
 24099  
 24100  2001-01-15  Kevin Ryde  <kevin@swox.se>
 24101  
 24102  	* mpn/alpha/ev5/mode1o.c: New file.
 24103  
 24104  	* tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p
 24105  	before running speed_cyclecounter.
 24106  	* tune/speed.h (cycles_works_p): Add prototype.
 24107  
 24108  2001-01-13  Torbjorn Granlund  <tege@swox.com>
 24109  
 24110  	* tests/rand/t-rand.c (farr): Fix typo.
 24111  	(zarr): Fix typo.
 24112  
 24113  2001-01-12  Kevin Ryde  <kevin@swox.se>
 24114  
 24115  	* mpz/kronsz.c: Don't depend on right shifting a negative.
 24116  
 24117  	* mpn/x86/gmp-mparam.h: New file.
 24118  
 24119  	* mpn/x86/pentium/mmx/mul_1.asm: New file.
 24120  
 24121  2001-01-11  Torbjorn Granlund  <tege@swox.com>
 24122  
 24123  	* mpz/kronsz.c: Temporary workaround for Cray right shift oddities.
 24124  	Explicitly compare against zero in tests.
 24125  
 24126  2001-01-10  Kevin Ryde  <kevin@swox.se>
 24127  
 24128  	* mpz/kronzs.c: Don't depend on right shifting a negative.
 24129  
 24130  2001-01-09  Torbjorn Granlund  <tege@swox.com>
 24131  
 24132  	* tests/t-constants.c: Disable some undefined tests.
 24133  	(CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added.
 24134  
 24135  2001-01-09  Kevin Ryde  <kevin@swox.se>
 24136  
 24137  	* tests/t-constants.c: Add more diagnostics.
 24138  	(CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64.
 24139  
 24140  	* mpn/x86/k6/mode1o.asm: New file.
 24141  	* mpn/x86/k7/mode1o.asm: New file.
 24142  
 24143  	* mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's.
 24144  	(__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for
 24145  	GSYM_PREFIX.
 24146  	* mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl.
 24147  
 24148  	* tests/mpz/t-jac.c (check_a_zero): New test.
 24149  	(check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last
 24150  	change avoiding a,b=0, both are fine.
 24151  	(try_2den): Don't use mpz_kronecker_ui for the expected answer.
 24152  	(try_*): Call abort rather than exit.
 24153  
 24154  	* mpz/kronzu.c, mpz/kronzs.c: Fix for a=0.
 24155  
 24156  	* tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R.
 24157  
 24158  2001-01-08  Torbjorn Granlund  <tege@swox.com>
 24159  
 24160  	* urandom.h: Amend 2000-11-21 change to also handle cygwin.
 24161  
 24162  2001-01-08  Kevin Ryde  <kevin@swox.se>
 24163  
 24164  	* tune/many.pl: Updates for move to tests/devel, add modexact_1_odd,
 24165  	don't assume C files can't have carry-in entrypoints, remove
 24166  	$(TRY_TESTS_OBJS) now in libtests.
 24167  
 24168  	* tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove
 24169  	mpn_mod_1_rshift testing.
 24170  
 24171  	* tune/tuneup.c (fft_step_size): Test for overflow using the actual
 24172  	mp_size_t, don't use BITS_PER_INT.
 24173  
 24174  	* tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and
 24175  	change LONG_ONES to LIMB_ONES.
 24176  	* tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT.
 24177  
 24178  	* extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not
 24179  	BITS_PER_LONGINT.
 24180  
 24181  	* mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR.
 24182  	* mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT.
 24183  	* tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX
 24184  	tests with some explicit code.
 24185  
 24186  	* mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c
 24187  	(BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR):
 24188  	Remove defines, remove probings, remove tests.
 24189  
 24190  	* tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning.
 24191  
 24192  	* tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd,
 24193  	mpn_gcd_finda, and an "N" form for mpn_gcd_1.
 24194  
 24195  	* tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0.
 24196  
 24197  2001-01-07  Kevin Ryde  <kevin@swox.se>
 24198  
 24199  	* configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs.
 24200  
 24201  	* mpn/generic/mod_1_rs.c: Remove file, no longer needed.
 24202  	* gmp-h.in (mpn_mod_1_rshift): Remove prototype and define.
 24203  
 24204  	* mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO.
 24205  
 24206  	* mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use
 24207  	mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new
 24208  	JACOBI macros.  Various rearrangements supporting all this.
 24209  
 24210  	* mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much
 24211  	bigger than v when size==1, some rearrangements supporting this.
 24212  
 24213  	* gmp-impl.h (JACOBI_*): More macros, add some casts to "int".
 24214  	(MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter.
 24215  	(mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines.
 24216  	(MODEXACT_1_ODD_THRESHOLD): New threshold.
 24217  	(MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros.
 24218  
 24219  	* mpn/generic/mode1o.c: New file.
 24220  
 24221  	* tests/mpz/reuse.c: Add testing of mpz_divexact_gcd.
 24222  	* tests/mpz/t-fac_ui.c: Use libtests for memory leak checking.
 24223  	* tests/mpz/t-fib_ui.c: Add a usage comment.
 24224  
 24225  	* tests/mpz/bit.c: Use libtests.
 24226  	* tests/mpz/t-scan.c: Remove unused subroutines.
 24227  	* tests/devel/try.c: Use libtests, define PROT_NONE if the system
 24228  	doesn't.
 24229  
 24230  	* tests/spinner.c, tests/x86check.c: Use tests.h.
 24231  	* tests/trace.c: Use tests.h, add mpf_trace.
 24232  	* tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned,
 24233  	refmpn_tstbit, refmpn_neg.
 24234  
 24235  	* tune/common.c, tune/speed.h: Update for functions moved to
 24236  	tests/misc.c.
 24237  
 24238  	* tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am,
 24239  	tests/mpf/Makefile.am: Use tests/libtests.la.
 24240  
 24241  	* configure.in (AC_OUTPUT): Update for new directories.
 24242  	(x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow
 24243  	ansi2knr on x86check.c.
 24244  
 24245  	* tests/Makefile.am: Establish new libtests.la convenience library,
 24246  	add mpz, mpq, mpf, mpbsd subdirectories.
 24247  	* tests/tests.h: New file.
 24248  	* mpn/tests/ref.h,try.h: Remove files, now in tests.h.
 24249  
 24250  	* tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf.
 24251  	* tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests.
 24252  	* tests/mpf/Makefile.am: Update.
 24253  
 24254  	* tests/memory.c: New file.
 24255  	* tests/misc.c: New file, a few subroutines from the test programs.
 24256  
 24257  	* mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to
 24258  	tests/mpz etc.
 24259  	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am
 24260  	(SUBDIRS): Remove.
 24261  
 24262  	* tests/devel: New directory.
 24263  	* mpn/tests/*.c: Move programs to tests/devel.
 24264  	* mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update.
 24265  
 24266  	* mpn/tests/ref.c: Move to tests/refmpn.c.
 24267  	* mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests
 24268  	directory.
 24269  
 24270  	* tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants,
 24271  	simplify ANSI vs K&R stringizing, use correct printf format types, do
 24272  	all tests before aborting.
 24273  
 24274  2001-01-05  Torbjorn Granlund  <tege@swox.com>
 24275  
 24276  	* mpn/cray/ieee/gmp-mparam.h: Retune.
 24277  
 24278  2001-01-05  Kevin Ryde  <kevin@swox.se>
 24279  
 24280  	* configure.in (mp.h): Only create this under --enable-mpbsd.
 24281  
 24282  	* demos/calc: New subdirectory, move demos/calc* to it.
 24283  	* demos/calc/Makefile.am: New file, split from demos/Makefile.am.
 24284  	* demos/Makefile.am: Update.
 24285  	* configure.in (AC_OUTPUT): Add demos/calc/Makefile.
 24286  
 24287  	* tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test
 24288  	for how many bits work in a give type, don't assume bits==8*sizeof.
 24289  
 24290  2001-01-04  Kevin Ryde  <kevin@swox.se>
 24291  
 24292  	* mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain
 24293  	UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc.
 24294  	* mpz/fits.c: Remove file.
 24295  	* mpz/Makefile.am, macos/Makefile.in: Update.
 24296  
 24297  	* gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms.
 24298  	(MPZ_FITS_[SU]TYPE_SDT): Remove these.
 24299  	(UINT_MAX etc): Provide a full set of defaults.
 24300  	* gmp-h.in (__GMP_MP_SIZE_T_INT): New define.
 24301  
 24302  	* mpz/tests/t-scan.c: New file.
 24303  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
 24304  
 24305  	* mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated
 24306  	memory, support negatives, return ULONG_MAX for no bit found.
 24307  	* gmp.texi (Integer Logic and Bit Fiddling): Update.
 24308  
 24309  2001-01-03  Torbjorn Granlund  <tege@swox.com>
 24310  
 24311  	* mpz/tests/dive.c: Generate test operands using new random functions.
 24312  	* mpz/tests/io.c: Likewise.
 24313  	* mpz/tests/logic.c: Likewise.
 24314  	* mpz/tests/t-2exp.c: Likewise.
 24315  
 24316  	* stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment.
 24317  
 24318  	* stack-alloc.h (__TMP_ALIGN): Append `L'.
 24319  
 24320  	* gmp-impl.h: For Cray, #include limits.h.
 24321  	(LONG_MIN): New #define.
 24322  	(ULONG_HIGHBIT): #define in terms of ULONG_MAX.
 24323  	(LONG_HIGHBIT): #define as LONG_MIN.
 24324  	(USHRT_MAX): New name for USHORT_MAX.
 24325  	(SHRT_MAX): New name for SHORT_MAX.
 24326  	(SHRT_MIN): New #define.
 24327  	(USHORT_HIGHBIT,SHORT_HIGHBIT): Removed.
 24328  
 24329  	* mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*;
 24330  	remove code disabling a test for Cray.
 24331  
 24332  	* tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long.
 24333  
 24334  	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'.
 24335  	(mpn_kara_mul_n): Likewise.
 24336  
 24337  	* mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'.
 24338  
 24339  	* mpz/tests/t-jac.c
 24340  	(main, check_squares_zi): Generate test operands using new random
 24341  	functions.
 24342  
 24343  	All changes below on this date for enabling `make; make check'
 24344  	with C++ compilers:
 24345  
 24346  	* mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes.
 24347  
 24348  	* mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul):
 24349  	Provide prototypes.
 24350  	(dump_abort): Provide prototype and declare properly for C++.
 24351  
 24352  	* mpz/tests/t-jac.c: #include stdlib.h and sys/time.h.
 24353  
 24354  	* mpz/tests/t-fdiv.c
 24355  	(dump_abort): Provide prototype and declare properly for C++.
 24356  	(debug_mp): Provide prototype.
 24357  	* mpz/tests/t-fdiv_ui.c: Likewise.
 24358  	* mpz/tests/t-gcd.c: Likewise.
 24359  	* mpz/tests/t-powm.c: Likewise.
 24360  	* mpz/tests/t-powm_ui.c: Likewise.
 24361  	* mpz/tests/t-sqrtrem.c: Likewise.
 24362  	* mpz/tests/t-tdiv_ui.c: Likewise.
 24363  	* mpz/tests/t-tdiv.c: Likewise.
 24364  
 24365  	* mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h.
 24366  	Remove #include of longlong.h.
 24367  
 24368  	* mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and
 24369  	conditionally unistd.h.
 24370  
 24371  	* mpz/tests/dive.c: #include stdlib.h and sys/time.h.
 24372  	(dump_abort): Provide prototype and declare properly for C++.
 24373  	(debug_mp): Provide prototype.
 24374  	* mpz/tests/logic.c: Likewise.
 24375  
 24376  	* mpz/tests/convert.c (debug_mp): Provide prototype.
 24377  	* mpz/tests/t-root.c (debug_mp): Likewise.
 24378  
 24379  	* mpz/tests/bit.c: #include stdlib.h and sys/time.h.
 24380  
 24381  	* mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h.
 24382  	(dump): Provide prototype and declare properly for C++.
 24383  
 24384  	* mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h.
 24385  	(ref_mpq_cmp_ui): Declare properly for C++.
 24386  
 24387  	* mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h.
 24388  	(ref_mpq_cmp): Declare properly for C++.
 24389  	(dump): Delete unused function.
 24390  
 24391  	* mpf/random2.c (myrandom): New function.
 24392  	(mpf_random2): Use it.
 24393  
 24394  	* mpn/generic/random2.c: #include stdlib.h (for random/mrand48).
 24395  	(myrandom): New function.
 24396  	(mpn_random2): Use it.
 24397  
 24398  	* mpf/tests/t-add.c: #include stdlib.h and sys/time.h.
 24399  	(oo): Remove unused function.
 24400  	* mpf/tests/t-conv.c: Likewise.
 24401  	* mpf/tests/t-sub.c: Likewise.
 24402  	* mpf/tests/t-dm2exp.c: Likewise.
 24403  	* mpf/tests/t-muldiv.c: Likewise.
 24404  	* mpf/tests/t-sqrt.c: Likewise.
 24405  
 24406  	* mpf/tests/reuse.c: #include stdlib.h and sys/time.h.
 24407  	Use PROTO on some typedefs.
 24408  	(oo): Remove function.
 24409  	(dump_abort): Call mpf_dump instead of oo.
 24410  
 24411  	* mpf/set_str.c: #include stdlib.h (for strtol).
 24412  
 24413  	* mpf/random2.c: #include stdlib.h (for random/mrand48).
 24414  	* mpn/alpha/udiv_arnnd: File deleted.
 24415  
 24416  	* Remove K&R function headers.
 24417  
 24418  2001-01-02  Torbjorn Granlund  <tege@swox.com>
 24419  
 24420  	* mpn/generic/mul.c: Clean up spacing and indentation.
 24421  
 24422  	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u.
 24423  	Clean up spacing and indentation.
 24424  
 24425  	* extract-dbl.c: Generalize to handle smaller limb sizes.
 24426  
 24427  2001-01-01  Torbjorn Granlund  <tege@swox.com>
 24428  
 24429  	* mpbsd/mout.c: Output newline after "0".
 24430  
 24431  2000-12-31  Torbjorn Granlund  <tege@swox.com>
 24432  
 24433  	* ltmain.sh: Remove space between `#!' and `$SHELL' when generating
 24434  	`libtool'.
 24435  
 24436  	* mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray
 24437  	vector systems.  Correct comment.
 24438  
 24439  2000-12-31  Kevin Ryde  <kevin@swox.se>
 24440  
 24441  	* gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc
 24442  	2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus.
 24443  
 24444  	* configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified
 24445  	MPN_PATH, amend test program indenting.
 24446  	(none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in
 24447  	generic C.
 24448  
 24449  	* config.sub (j90, t90): Preserve these, don't let configfsf.sub turn
 24450  	them into c90.
 24451  
 24452  	* config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform
 24453  	m68k to m68020, since m68k is already interpreted as 68020.
 24454  
 24455  2000-12-30  Kevin Ryde  <kevin@swox.se>
 24456  
 24457  	* mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary.
 24458  
 24459  	* mpz/tstbit.c: Rewrite, slightly simplified.
 24460  	* mpz/tests/bit.c (check_tstbit): New test, and add a couple more
 24461  	diagnostics elsewhere.
 24462  
 24463  	* configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2.
 24464  	(ccbase): Only use a known compiler in eval statements (avoids
 24465  	problems with non-symbol characters).
 24466  	(ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a
 24467  	different name.
 24468  	(cclist): Use same style $abi as other variables.
 24469  
 24470  	* acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro.
 24471  	(GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc.
 24472  	(GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed.
 24473  	(GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last
 24474  	line of a file doesn't leave a tab and no newline.
 24475  	(GMP_ASM_UNDERSCORE): Add a prototype for C++.
 24476  
 24477  	* configure.in (sys/mman.h, mprotect): New tests.
 24478  	* mpn/tests/try.c: Use them, and HAVE_UNISTD_H too.
 24479  
 24480  	* configure.in (getopt.h): Remove test.
 24481  	* tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since
 24482  	plain getopt() is in <unistd.h>.
 24483  
 24484  	* configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong
 24485  	rather than using _ABIN32.
 24486  
 24487  2000-12-29  Torbjorn Granlund  <tege@swox.com>
 24488  
 24489  	* mpz/tests/reuse.c: Rename dump_abort => dump.
 24490  	* mpz/tests/reuse.c: Generate operands using gmp_rand*.
 24491  	* mpz/tests/convert.c: Likewise.
 24492  
 24493  	* configure.in: Detect T90-ieee systems; move Cray path
 24494  	selection to after AC_PROG_CC.  Invoke AC_PROG_CPP.
 24495  	* mpn/cray/cfp: New directory.  Move cfp specific files here.
 24496  	* mpn/cray/cfp/mulwwc90.s: New file.
 24497  	* mpn/cray/cfp/mulwwj90.s: New file.
 24498  	* mpn/cray/mulww.s: Delete.
 24499  
 24500  2000-12-27  Torbjorn Granlund  <tege@swox.com>
 24501  
 24502  	* mpn/cray/ieee/mul_1.c: New file.
 24503  	* mpn/cray/ieee/addmul_1.c: New file.
 24504  	* mpn/cray/ieee/submul_1.c: New file.
 24505  	* mpn/cray/ieee/gmp-mparam.h: New file.
 24506  
 24507  	* mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME.
 24508  
 24509  	* mpn/cray/hamdist.c: New file.
 24510  	* mpn/cray/popcount.c: New file.
 24511  	* mpn/cray/rshift.c: New file.
 24512  	* mpn/cray/lshift.c: New file.
 24513  
 24514  	* longlong.h: Add count_leading_zeros for _CRAY.
 24515  	Reorganize _CRAY stuff.
 24516  
 24517  2000-12-24  Kevin Ryde  <kevin@swox.se>
 24518  
 24519  	* configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ,
 24520  	as tune/alpha.asm doesn't suit.
 24521  
 24522  	* mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c,
 24523  	mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n.
 24524  
 24525  2000-12-23  Torbjorn Granlund  <tege@swox.com>
 24526  
 24527  	* mpn/generic/mul_fft.c: Reformat.
 24528  	(mpn_fft_neg_modF): Remove.
 24529  	(mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF.
 24530  
 24531  	* mpn/cray/gmp-mparam.h: Retune.
 24532  
 24533  	* configure.in (*-cray-unicos*): Pass `-O3 -htask0'.
 24534  	(vax*-*-*): Fix typo.
 24535  
 24536  	* mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*.
 24537  	* mpn/cray/addmul_1.c: Likewise.
 24538  	* mpn/cray/submul_1.c: Likewise.
 24539  	* mpn/cray/add_n.c: Likewise.
 24540  	* mpn/cray/sub_n.c: Likewise.
 24541  
 24542  	* configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O.
 24543  	(mips*-*-irix[6789]*]): Remove -g from cc_*_cflags.
 24544  
 24545  2000-12-22  Torbjorn Granlund  <tege@swox.com>
 24546  
 24547  	* mpn/generic/mul_n.c: Delete K&R function headers.
 24548  
 24549  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion
 24550  	between mp_limb_t and mp_size_t.
 24551  	(mpn_kara_sqr_n): Likewise.
 24552  
 24553  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u.
 24554  	(mpn_kara_sqr_n): Likewise.
 24555  
 24556  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign'
 24557  	to work around GCC 2.8.1 MIPS bug.
 24558  
 24559  	* configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags.
 24560  
 24561  2000-12-21  Torbjorn Granlund  <tege@swox.com>
 24562  
 24563  	* mpn/alpha/invert_limb.asm: Simplify a bit.
 24564  	Add handling of bigend systems.
 24565  	* mpn/alpha/unicos.m4: Define `bigend'.
 24566  	* mpn/alpha/default.m4: Define `bigend' (to expand to nothing).
 24567  
 24568  	* tests/t-constants.c (CHECK_CONSTANT): Print using %lx.
 24569  
 24570  	* mpn/alpha/gmp-mparam.h: Remove sizes for plain C types.
 24571  	* mpn/alpha/ev5/gmp-mparam.h: Likewise.
 24572  	* mpn/alpha/ev6/gmp-mparam.h: Likewise.
 24573  
 24574  	* mpn/alpha/unicos.m4: Define LEA.
 24575  	* mpn/alpha/default.m4: Likewise.
 24576  	* mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses.
 24577  	* mpn/alpha/cntlz.asm: Likewise.
 24578  
 24579  	* mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower
 24580  	`ldq_u' + `extbl' instead.
 24581  
 24582  	* mpn/alpha/unicos.m4: Define EXTERN.
 24583  	* mpn/alpha/default.m4: Define EXTERN (to expand to nothing).
 24584  	* mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the
 24585  	benefit of Unicos).
 24586  
 24587  2000-12-21  Kevin Ryde  <kevin@swox.se>
 24588  
 24589  	* mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of
 24590  	__clz_tab.
 24591  
 24592  2000-12-20  Torbjorn Granlund  <tege@swox.com>
 24593  
 24594  	* longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP
 24595  	systems.
 24596  
 24597  2000-12-19  Torbjorn Granlund  <tege@swox.com>
 24598  
 24599  	* configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags.
 24600  
 24601  	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from
 24602  	`size' values.
 24603  
 24604  	* configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags.
 24605  
 24606  	* demos/pexpr.c (rstate): New variable.
 24607  	(main): Initialize rstate.
 24608  	(enum op_t): Add RANDOM.
 24609  	(fns): Add field for RANDOM.
 24610  	(mpz_eval_expr): Handle RANDOM.
 24611  
 24612  2000-12-19  Kevin Ryde  <kevin@swox.se>
 24613  
 24614  	* mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his
 24615  	Karatsuba Square Root algorithm.
 24616  	* gmp.texi (Square Root Algorithm): Update.
 24617  
 24618  	* tune/many.pl: New file.
 24619  
 24620  	* mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn,
 24621  	mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n,
 24622  	mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing.
 24623  	* mpn/tests/ref.c: Cast some "0"s in function calls.
 24624  
 24625  	* mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra
 24626  	variable for loop termination.
 24627  
 24628  	* mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following.
 24629  	* mpn/x86/p6/mod_1.asm: New file.
 24630  
 24631  	* mpn/x86/pentium/mod_1.asm: New file.
 24632  
 24633  2000-12-18  Torbjorn Granlund  <tege@swox.com>
 24634  
 24635  	* configure.in (mips*-*-irix[6789]*): Pass options to compiler using
 24636  	`-Wc'.
 24637  
 24638  2000-12-18  Kevin Ryde  <kevin@swox.se>
 24639  
 24640  	* mpn/x86/k6/pre_mod_1.asm: New file.
 24641  
 24642  	* tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1
 24643  	and mpn_mod_1 handling in support of it.
 24644  	* tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c.
 24645  
 24646  	* gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros.
 24647  	* mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1.
 24648  
 24649  	* configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint.
 24650  
 24651  	* mpn/alpha/default.m4: Remove some newlines, add some asserts.
 24652  	(r0 etc, f0 etc): Use defreg and deflit.
 24653  	(PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX.
 24654  	* mpn/alpha/unicos.m4: Remove some newlines, add some asserts.
 24655  	* mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter.
 24656  	* mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab.
 24657  
 24658  	* mpn/asm-defs.m4 (changecom): Comments on portability.
 24659  	(__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h.
 24660  	(count_leading_zeros, count_trailing_zeros): New define_mpn's.
 24661  	(PROLOGUE etc): Comments on usage, add some asserts.
 24662  	(OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of
 24663  	lorrshift multifunc.
 24664  
 24665  	* mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s
 24666  	removal, for development purposes.
 24667  
 24668  	* mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not
 24669  	mpz_mul_ui, and note some possible enhancements.
 24670  
 24671  	* mpz/tests/t-fac_ui.c: New test.
 24672  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
 24673  	* macos/Makefile.in: Ditto, and add t-fib_ui too.
 24674  
 24675  	* mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered
 24676  	by new parameter ASSERTs.
 24677  
 24678  	* longlong.h (count_trailing_zeros): Assert x!=0.
 24679  
 24680  	* doc/configuration: Updates for new configure things, add some notes
 24681  	on test setups.
 24682  
 24683  2000-12-16  Torbjorn Granlund  <tege@swox.com>
 24684  
 24685  	* configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit
 24686  	compiles.
 24687  	* configure.in: Disable shared libs for *-*-ultrix*.
 24688  
 24689  2000-12-15  Torbjorn Granlund  <tege@swox.com>
 24690  
 24691  	* configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc.
 24692  
 24693  	* gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other
 24694  	compilers.
 24695  
 24696  	* gmp-h.in (__gmp_inline): Remove.
 24697  	* mp-h.in: Likewise.
 24698  	* mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'.
 24699  
 24700  	* configure.in (mips*-*-irix[6789]*): Define *_ldflags.
 24701  
 24702  2000-12-14  Torbjorn Granlund  <tege@swox.com>
 24703  
 24704  	* mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd
 24705  	parameter `dummy'.
 24706  
 24707  	* mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement.
 24708  	* mpn/generic/mod_1.c: Likewise.
 24709  
 24710  2000-12-14  Kevin Ryde  <kevin@swox.se>
 24711  
 24712  	* config.guess (mips-*-irix[6789]*): Transform to mips64.
 24713  	(m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020.
 24714  
 24715  2000-12-13  Torbjorn Granlund  <tege@swox.com>
 24716  
 24717  	* tests/t-constants.c (main): Conditionalize use of PP_INVERTED.
 24718  
 24719  	* mpn/mp_bases.c: Handle 4-bit limbs.
 24720  	(main): Add code for generating tables.
 24721  
 24722  	* mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16.
 24723  	Suffix all 32-bit constant with `L'.
 24724  	Use CNST_LIMB for 64-bit constants.
 24725  
 24726  2000-12-13  Kevin Ryde  <kevin@swox.se>
 24727  
 24728  	* gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and
 24729  	an arbitrary fallback default.
 24730  	(modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb.
 24731  
 24732  	* configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit
 24733  	limb) on IRIX 6.
 24734  
 24735  	* Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is
 24736  	run first, to pick up any limb size mismatch.
 24737  
 24738  	* tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1.
 24739  
 24740  	* mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb.
 24741  
 24742  2000-12-12  Torbjorn Granlund  <tege@swox.com>
 24743  
 24744  	* gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize.
 24745  
 24746  2000-12-11  Torbjorn Granlund  <tege@swox.com>
 24747  
 24748  	* mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs.
 24749  	Round existing `double' values properly.
 24750  
 24751  	* gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_
 24752  	to keep out of user name space.
 24753  	(__gmp_randata_lc): Likewise.
 24754  	* randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c:
 24755  	Corresponding changes.
 24756  
 24757  	* gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB
 24758  	of 2, 4, 8, and 16.
 24759  	(PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB.
 24760  	(PP_MASK): Remove.
 24761  	(PP_MAXPRIME): Remove.
 24762  
 24763  	* mpn/generic/perfsqr.c: Generalize PP handling for machines with
 24764  	limbs of < 32 bits.  Allow PP_INVERTED to be undefined.
 24765  	* mpz/pprime_p.c: Likewise.
 24766  
 24767  2000-12-10  Torbjorn Granlund  <tege@swox.com>
 24768  
 24769  	* mpn/generic/mul_1.c: Declare parameters in C89 style.
 24770  
 24771  2000-12-10  Kevin Ryde  <kevin@swox.se>
 24772  
 24773  	* tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS):
 24774  	Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like
 24775  	it.
 24776  
 24777  	* configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and
 24778  	ABI=o32.
 24779  	* mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let
 24780  	configure determine it, since it varies with ABI=64 or ABI=n32.
 24781  	* gmp.texi (ABI and ISA): Update.
 24782  	(mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui.
 24783  	(mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even.
 24784  
 24785  	* mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix
 24786  	results in certain cases of recursing into a further FFT.
 24787  
 24788  2000-12-09  Torbjorn Granlund  <tege@swox.com>
 24789  
 24790  	* mpz/cmpabs.c: Remove unused variable.
 24791  	* mpz/rrandomb.c: Likewise.
 24792  	* mpz/xor.c: Likewise.
 24793  
 24794  2000-12-07  Torbjorn Granlund  <tege@swox.com>
 24795  
 24796  	* mpn/generic/gcdext.c: Handle double carry when computing s1.
 24797  	Merge two code blocks for computing s0 and s1.
 24798  
 24799  2000-12-07  Kevin Ryde  <kevin@swox.se>
 24800  
 24801  	* configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from
 24802  	cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae,
 24803  	whichever works.
 24804  
 24805  	* configure.in (*-*-aix[34]*): Disable shared by default, but let
 24806  	the user override that, if desired.
 24807  	* gmp.texi (Notes for Particular Systems): Update.
 24808  
 24809  2000-12-06  Torbjorn Granlund  <tege@swox.com>
 24810  
 24811  	* mpq/cmp_ui.c: Streamline.
 24812  
 24813  2000-12-06  Kevin Ryde  <kevin@swox.se>
 24814  
 24815  	* tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c,
 24816  	gcdext_double.c: New files for measuring.
 24817  	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
 24818  	* tune/speed.c,speed.h,common.c: Add measuring of them.
 24819  	(mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring.
 24820  
 24821  	* speed.c (getopt_long): Don't use this, just plain getopt.
 24822  	* configure.in (getopt_long): Remove test.
 24823  
 24824  	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE,
 24825  	MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and
 24826  	assume toom3 square tsize was meant to be the same as the mul (both
 24827  	are overestimates).
 24828  	* tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them.
 24829  	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use
 24830  	TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might
 24831  	be more realistic size checks.
 24832  	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize.
 24833  
 24834  	* mpn/generic/divrem_1.c: Partial rewrite, merge fractional part
 24835  	calculation, skip a divide step in more cases, introduce
 24836  	DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD.
 24837  	* mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more
 24838  	cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD.
 24839  	* longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
 24840  	* tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD,
 24841  	MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these.
 24842  	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this.
 24843  	* tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c.
 24844  
 24845  	* gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME.
 24846  	* mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c,
 24847  	mpn/x86/*/gmp-mparam.h: Ditto.
 24848  	* gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define.
 24849  
 24850  	* configure.in (AC_C_INLINE, HAVE_INLINE): New test and define.
 24851  	* gmp-impl.h (inline): Remove, use config.h.
 24852  	(_EXTERN_INLINE): Redefine based on HAVE_INLINE.
 24853  	(mpn_zero_p): Use HAVE_INLINE.
 24854  
 24855  	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user
 24856  	selected $AR or $NM.
 24857  
 24858  	* tune/tuneup.c (all): Print how long the tuning took.
 24859  
 24860  	* configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR.
 24861  	* acinclude.m4 (GMP_ANSI2KNR): Remove.
 24862  
 24863  	* Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES.
 24864  
 24865  	* gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some
 24866  	zeros, for the benefit of K&R if long!=int.
 24867  
 24868  	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for
 24869  	the benefit of cray.
 24870  
 24871  	* compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be
 24872  	mp_limb_t, not int, and need an actual "return".
 24873  
 24874  2000-12-05  Torbjorn Granlund  <tege@swox.com>
 24875  
 24876  	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
 24877  	* mpn/alpha/gmp-mparam.h: Tune for 21064.
 24878  
 24879  	* longlong.h: Reformat to avoid newlines within strings.
 24880  
 24881  	* gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__.
 24882  
 24883  	* configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c.
 24884  
 24885  	* Makefile.am: Treat mp.h analogously to gmp.h.
 24886  
 24887  	configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc.
 24888  
 24889  	* mp-h.in: Renamed from mp.h.
 24890  	Add #define for _LONG_LONG_LIMB.
 24891  	Move some other fixes from gmp-h.in.
 24892  	* mp.h: Removed.
 24893  	* configure.in: Generate mp.h from mp-h.in like we handle
 24894  	gmp-h.in/gmp.h.
 24895  
 24896  2000-12-04  Torbjorn Granlund  <tege@swox.com>
 24897  
 24898  	* acinclude.m4: Fix typo testing for bad HP compiler.
 24899  
 24900  2000-12-03  Torbjorn Granlund  <tege@swox.com>
 24901  
 24902  	* mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray
 24903  	CFP systems.
 24904  
 24905  	* longlong.h (CRAYIEEE umul_ppmm): New.
 24906  
 24907  	* mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64.
 24908  	(*_THRESHOLD): Tune.
 24909  
 24910  	* configure.in: Disable shared libs for *-*-unicos*.
 24911  
 24912  2000-12-03  Kevin Ryde  <kevin@swox.se>
 24913  
 24914  	* configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during
 24915  	configure, and use it unconditionally in $(nodist_tuneup_SOURCES).
 24916  	Fixes a problem with sqr_basecase.lo under --disable-static.
 24917  
 24918  2000-12-01  Torbjorn Granlund  <tege@swox.com>
 24919  
 24920  	* mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE
 24921  	Cray systems.
 24922  
 24923  	* gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE.
 24924  
 24925  2000-11-30  Torbjorn Granlund  <tege@swox.com>
 24926  
 24927  	* mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro
 24928  	invocations.
 24929  	(ref_mpz_mul): New name from mpz_refmul.  Make static.
 24930  	(base_mul): New name for _mpn_mul_classic.
 24931  
 24932  2000-11-30  Kevin Ryde  <kevin@swox.se>
 24933  
 24934  	* configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a
 24935  	notion of ABI, merge compiler and mpn path selection, add flags
 24936  	selection for AR and NM, let CC without CFLAGS work.
 24937  	(AC_PROG_CC): Use this, not GMP_SELECT_CC.
 24938  	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine
 24939  	cc/cflags parameter.
 24940  	(GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove.
 24941  	* gmp.texi (Installing GMP): Updates for new scheme.
 24942  
 24943  	* configure.in (AC_CANONICAL_HOST): Use this and $host, not $target.
 24944  	* acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4,
 24945  	mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to
 24946  	HAVE_HOST_CPU.
 24947  	* gmp.texi (Build Options, and elsewhere): Update.
 24948  
 24949  	* acinclude.m4 (GMP_COMPARE_GE): New macro.
 24950  	(GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC.
 24951  	(GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT.
 24952  
 24953  	* acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding
 24954  	GMP flags.
 24955  	* configure.in: Use it
 24956  
 24957  	* gmp-h.in: Renamed from gmp.h.
 24958  	(@define_LONG_LONG_LIMB@): Placeholder for instantiation.
 24959  	(__GNU_MP__): Bump to 3.
 24960  	* acinclude.m4 (GMP_VERSION): Get version from gmp-h.in.
 24961  	* configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB.
 24962  	* gmp.texi.h (ABI and ISA): Mention this.
 24963  	* acconfig.h (_LONG_LONG_LIMB): Remove undef.
 24964  	* Makefile.am: Distribute gmp-h.in, not gmp.h.
 24965  
 24966  	* configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove,
 24967  	dragged in by other macros.
 24968  	(gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing.
 24969  	(AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool.
 24970  	* configure.in, acinclude.m4: Remove "" from "`foo`", being
 24971  	unnecessary and not portable.
 24972  
 24973  	* configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link.
 24974  	(powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation,
 24975  	but can't build shared and static at the same time.
 24976  	* Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use
 24977  	$(GMP_LDFLAGS).
 24978  	* gmp.texi (Notes for Particular Systems): Update AIX problem
 24979  
 24980  	* configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links.
 24981  	(gmp_srclinks): Build up as needed, not via gmp_links.
 24982  
 24983  	* acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here.
 24984  	* configure.in (asm-defs.m4): Consequent changes.
 24985  
 24986  	* acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing
 24987  	GMP_INCLUDE and GMP_SINCLUDE.
 24988  	* configure.in (gmp_m4postinc): Remove this scheme, use
 24989  	GMP_INCLUDE_MPN instead.
 24990  
 24991  	* configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no,
 24992  	until libtool does this itself.
 24993  	* gmp.texi (Known Build Problems): Remove SCO -lc problem.
 24994  
 24995  	* configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29.
 24996  	* acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF.
 24997  	* gmp.texi (Known Build Problems): Remove version.c sed/config.h
 24998  	problem, fixed.
 24999  
 25000  	* ltmain.sh, aclocal.m4: Update to libtool 2000-11-25.
 25001  	* ltconfig: No longer required, but leave an empty dummy for automake.
 25002  	* gmp.texi (Known Build Problems): Remove SunOS native ar ranlib
 25003  	problem, fixed.
 25004  
 25005  	* */Makefile.in, aclocal.m4: Update to automake 2000-11-25.
 25006  	* mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS):
 25007  	Remove dummy, no longer required.
 25008  	* mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files.
 25009  	* depcomp: Remove file, no longer required (with no-dependencies).
 25010  
 25011  	* texinfo.tex: Update to 2000-11-09.
 25012  	* gmp.texi (Build Options): Mention PDF from gmp.texi.
 25013  	* Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex.
 25014  
 25015  	* gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67,
 25016  	hppa2.0n and power among supported CPUs.
 25017  
 25018  2000-11-30  Torbjorn Granlund  <tege@swox.com>
 25019  
 25020  	* mpz/tests/t-mul.c: Increase max operand size from 2^17 bits
 25021  	to 2^19 bits.  Misc cleanups.
 25022  
 25023  2000-11-26  Kevin Ryde  <kevin@swox.se>
 25024  
 25025  	* tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of
 25026  	odd and even sizes.
 25027  
 25028  	* longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all
 25029  	compilers, not just gcc.
 25030  
 25031  	* pre_mod_1.c: Use conditional subtract to always skip a division.
 25032  	(UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h.
 25033  
 25034  2000-11-22  Torbjorn Granlund  <tege@swox.com>
 25035  
 25036  	* mpn/pa64w/gmp-mparam.h: Retune.
 25037  	* mpn/pa64/gmp-mparam.h: Retune.
 25038  	* mpn/sparc64/gmp-mparam.h: Retune.
 25039  
 25040  2000-11-22  Kevin Ryde  <kevin@swox.se>
 25041  
 25042  	* gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros.
 25043  	* mpn/generic/gcdext.c: Use them.
 25044  
 25045  	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step.
 25046  	* tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single
 25047  	and double.
 25048  	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
 25049  	(TUNE_MPN_SRCS): Remove gcdext.c.
 25050  	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring.
 25051  	* tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb
 25052  	is ever better.  Should be more accurate, and hopefully faster.
 25053  
 25054  	* tune/gcdext_single.c: New file, gcdext forced to single limbs.
 25055  	* tune/Makefile.am: Add it.
 25056  	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of
 25057  	invert_limb.
 25058  
 25059  	* tune/speed.h (speed_params r): Use mp_limb_t, not long.
 25060  	* tune/speed.h, tune/common.c: Don't "switch" on "r".
 25061  	* tune/speed.c (r_string): Accept limb sized constants.
 25062  	(choice scale): Add a scale factor (eg. "2.33*mpn_add_n").
 25063  	* tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to
 25064  	__mp_bases[10].big_base, being a full limb value.
 25065  
 25066  	* configure.in (alphapca56*-*-*): Use ev5 mpn path.
 25067  	(am29000*-*-*): Remove this, leave the canonical a29k.
 25068  	(z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical.
 25069  	(gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64.
 25070  
 25071  	* configure.in (alloca): Accept yes/no/detect, generate an error if
 25072  	"yes" but not available.
 25073  	* gmp.texi (Build Options): Update.
 25074  
 25075  	* acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available.
 25076  	(GMP_ASM_ALIGN_FILL_0x90): Use it.
 25077  
 25078  	* acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris
 25079  	2.6 "as" movq bug.
 25080  	* gmp.texi (Notes for Particular Systems): Update x86 MMX note.
 25081  
 25082  2000-11-21  Torbjorn Granlund  <tege@swox.com>
 25083  
 25084  	* tune/Makefile.am (EXTRA_DIST): List hppa2w.asm.
 25085  
 25086  	* tune/hppa2.asm: Change level directive to "2.0n".
 25087  	* tune/hppa2w.asm: New file.
 25088  	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w.
 25089  
 25090  	* mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32.
 25091  
 25092  2000-11-21  Kevin Ryde  <kevin@swox.se>
 25093  
 25094  	* urandom.h (random): No prototype if glibc stdlib.h has already
 25095  	provided it (avoids an int32_t/long conflict).
 25096  
 25097  	* tune/Makefile.am (LDFLAGS): Use -all-static.
 25098  	(speed-dynamic): Dynamic linked version of speed.c.
 25099  	* tune/README: Update.
 25100  
 25101  	* mpn/generic/gcd.c (find_a): Use native version if available.
 25102  	* acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef.
 25103  	* gmp-impl.h (mpn_gcd_finda): Add prototype and define.
 25104  	* mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn.
 25105  	* tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda.
 25106  	* configure.in (gmp_mpn_functions_optional): Add gcd_finda.
 25107  	* mpn/x86/k6/gcd_finda.asm: New file.
 25108  
 25109  	* tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps.
 25110  
 25111  	* gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion.
 25112  	* tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after
 25113  	gmp-impl.h to force thresholds.
 25114  	* tune/tuneup.c (print_define, fft): No need for #ifndefs on
 25115  	thresholds any more.
 25116  
 25117  2000-11-20  Torbjorn Granlund  <tege@swox.com>
 25118  
 25119  	* mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c.
 25120  	* mpz/tests/t-powm_ui.c: Likewise.
 25121  	* mpz/tests/t-pow_ui.c: Likewise.
 25122  	* mpz/tests/t-root.c: Likewise.
 25123  
 25124  	* configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for
 25125  	all hppa versions.
 25126  
 25127  	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative
 25128  	addressing (was r19 relative addressing).
 25129  
 25130  2000-11-18  Torbjorn Granlund  <tege@swox.com>
 25131  
 25132  	* rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal.
 25133  	(gmp_randinit): Expect strings in hexadecimal.
 25134  
 25135  2000-11-18  Kevin Ryde  <kevin@swox.se>
 25136  
 25137  	* configfsf.guess, configfsf.sub: Update to 2000-11-16.
 25138  	* config.guess (alpha*-*-openbsd*): Do exact cpu detection.
 25139  
 25140  2000-11-14  Torbjorn Granlund  <tege@swox.com>
 25141  
 25142  	* mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c.
 25143  	* mpz/tests/t-tdiv_ui.c: Likewise.
 25144  	* mpz/tests/t-fdiv_ui.c: Likewise.
 25145  	* mpz/tests/t-sqrtrem.c: Likewise.
 25146  	* mpz/tests/t-gcd.c: Likewise.
 25147  
 25148  2000-11-13  Kevin Ryde  <kevin@swox.se>
 25149  
 25150  	* mpn/Makeasm.am: New file, splitting out assembler rules.
 25151  	* mpn/Makefile.am, tune/Makefile.am: Use it.
 25152  
 25153  	* mpn/Makefile.am (@CPP@): Remove this, automake already gives it.
 25154  
 25155  	* configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it.
 25156  	* Makefile.am (MPFR_LIBADD_OPTION): Use it.
 25157  	* demos/Makefile.am (qcn_LDADD): Ditto.
 25158  	* tune/Makefile.am (libspeed_la_LIBADD): Ditto.
 25159  	* tests/rand/Makefile.am (libstat_la_LIBADD): Ditto.
 25160  
 25161  	* tune/time.c (timeval_diff_secs): Better calculation.
 25162  	(read_real_time): New measuring method for AIX power/powerpc.
 25163  	(speed_endtime): Protect against negative times.
 25164  	* tune/common.c (speed_measure): Protect against big reps.
 25165  	* tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff.
 25166  	* tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros.
 25167  	* configure.in: (sys/systemcfg.h, read_real_time): New tests.
 25168  
 25169  2000-11-13  Torbjorn Granlund  <tege@swox.com>
 25170  
 25171  	* mpz/tests/t-mul.c: Remove #include urandom.h.
 25172  	* mpz/tests/t-tdiv.c: Likewise.
 25173  
 25174  	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]:
 25175  	Declare hppa.asm as just 32 bits (cyclecounter_size=1).
 25176  
 25177  2000-11-12  Torbjorn Granlund  <tege@swox.com>
 25178  
 25179  	* mpz/tests/t-mul.c
 25180  	(main): Generate random numbers using gmp_rand* functions.
 25181  	(main): Distribute random numbers non-uniformly.
 25182  	(main): Seed by current time if GMP_CHECK_RANDOMIZE is set.
 25183  	(_mpn_mul_classic): Streamline.
 25184  	* mpz/tests/t-tdiv.c: Analogous changes.
 25185  
 25186  	* demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS.
 25187  	Also test for __hpux.
 25188  
 25189  2000-11-11  Torbjorn Granlund  <tege@swox.com>
 25190  
 25191  	* mpn/alpha/ev5/gmp-mparam.h: Retune.
 25192  
 25193  	* mpn/alpha/ev6/gmp-mparam.h: Retune.
 25194  
 25195  	* mpn/alpha/ev6/add_n.asm: Misc cleanups.
 25196  
 25197  	* mpn/alpha/ev6/sub_n.asm: New file.
 25198  
 25199  2000-11-10  Torbjorn Granlund  <tege@swox.com>
 25200  
 25201  	* configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path.
 25202  
 25203  	* mpn/alpha/ev6/add_n.asm: New file.
 25204  
 25205  2000-11-10  Kevin Ryde  <kevin@swox.se>
 25206  
 25207  	* mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL.
 25208  	* tune/powm_mod.c, tune/powm_redc.c: New files.
 25209  	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
 25210  	* tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc.
 25211  
 25212  	* tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod.
 25213  	* tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm.
 25214  
 25215  2000-11-10  Torbjorn Granlund  <tege@swox.com>
 25216  
 25217  	* mpn/mips3/gmp-mparam.h: Retune.
 25218  
 25219  	* configure.in (os_64bit): Rename to check_64bit_compiler.
 25220  
 25221  2000-11-09  Torbjorn Granlund  <tege@swox.com>
 25222  
 25223  	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code
 25224  	depending on $CC64.
 25225  
 25226  2000-11-09  Kevin Ryde  <kevin@swox.se>
 25227  
 25228  	* mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1.
 25229  	Add 1c entrypoint.
 25230  	* mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple
 25231  	of cycles at entry and exit.
 25232  
 25233  	* configure.in (power1,2,2sc): Support these as synonyms for plain
 25234  	power.
 25235  
 25236  	* acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here.
 25237  	(GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names.
 25238  	* configure.in: Consequent changes.
 25239  
 25240  	* gmp.texi (Notes for Particular Systems): Remarks about power/powerpc.
 25241  	(Reentrancy): Remarks about simultaneous writing.
 25242  	(Reporting Bugs): Ask for configfsf.guess.
 25243  
 25244  2000-11-08  Kevin Ryde  <kevin@swox.se>
 25245  
 25246  	* acinclude.m4 (GMP_FUNC_ALLOCA): New macro.
 25247  	* configure.in: Use it.
 25248  	* gmp-impl.h (alloca): Conditionals and setups as per autoconf
 25249  	(should make alloca available on more non-gcc compilers).
 25250  
 25251  	* acinclude.m4: Misc reformatting, simplify some quoting.
 25252  	(GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS.
 25253  	(GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put
 25254  	AC_REQUIREs outside AC_CACHE_CHECK.
 25255  	(GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS.
 25256  	(GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm
 25257  	conftes1* conftes2*.
 25258  	(GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*.
 25259  	(GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*.
 25260  	* configure.in: Use GMP_PROG_NM.
 25261  
 25262  	* mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE.
 25263  	(spinner_init): Force output to unbuffered.
 25264  
 25265  	* mpn/x86/README.family: Notes about GOT table and imul, misc updates.
 25266  	* mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul.
 25267  	* mpn/x86/k6/diveby3.asm: Ditto.
 25268  
 25269  2000-11-06  Torbjorn Granlund  <tege@swox.com>
 25270  
 25271  	* urandom.h: Simplify and make it work properly for 64-bit
 25272  	machines also in environments without `random'.
 25273  
 25274  2000-11-04  Torbjorn Granlund  <tege@swox.com>
 25275  
 25276  	* configure.in [path switch]: Don't match rs6000-*-*, in
 25277  	particular don't assume POWER.
 25278  
 25279  	* tune/tuneup.c (fft): Remove usleep calls.
 25280  
 25281  	* config.guess: Don't pass "$@" when it is known to be empty.
 25282  
 25283  	* Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub.
 25284  
 25285  2000-11-04  Kevin Ryde  <kevin@swox.se>
 25286  
 25287  	* configfsf.guess, configfsf.sub: Moved from config.guess and
 25288  	config.sub.
 25289  	* config.guess, config.sub: New files, wrappers around around
 25290  	configfsf versions.
 25291  	* configfsf.guess: Update to FSF 2000-10-23.
 25292  	* configfsf.sub: Update to FSF 2000-10-25.
 25293  
 25294  	* acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro.
 25295  	* mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros
 25296  	conditionalized by GMP_ASM_POWERPC_R_REGISTERS.
 25297  	* mpn/powerpc32/regmap.m4: Remove file.
 25298  	* configure.in (powerpc*-*-*): Use all this.
 25299  
 25300  	* mpz/divegcd.c: New file, providing mpz_divexact_gcd.
 25301  	* Makefile.am, mpz/Makefile.am: Add it.
 25302  	* gmp-impl.h (mpz_divexact_gcd): Add prototype.
 25303  	* mpq/aors.c,canonicalize.c,div.c,mul.c: Use it.
 25304  
 25305  	* longlong.h [pentium] (count_leading_zeros): New macro.
 25306  	(__clz_tab): Always provide prototype.
 25307  	* acconfig.h (HAVE_TARGET_CPU_): Add x86s.
 25308  
 25309  	* tune/speed.[ch],common.c (count_leading_zeros,
 25310  	count_trailing_zeros, __udiv_qrnnd_c): Add measuring.
 25311  
 25312  	* configure.in (X86_PATTERN): Move from here ...
 25313  	* acinclude.m4 (X86_PATTERN): ... to here.
 25314  	(GMP_ASM_RODATA): Use it.
 25315  
 25316  	* configure.in (srandom): New test.
 25317  	* mpn/tests/try.c: Use it.
 25318  	* tune/speed.c: Ditto, and conditionalize getrusage and headers.
 25319  
 25320  2000-11-02  Kevin Ryde  <kevin@swox.se>
 25321  
 25322  	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c
 25323  	and udiv_w_sdiv.c.
 25324  
 25325  	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate
 25326  	subtract at the evaluate stage.
 25327  
 25328  2000-11-01  Torbjorn Granlund  <tege@swox.com>
 25329  
 25330  	* configure.in [compiler switch] (sparc64-*-linux*): Spell
 25331  	gmp_xoptcflags_gcc properly, and pass same options as for other
 25332  	sparcv9 configs.
 25333  
 25334  	* tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize.
 25335  
 25336  2000-10-31  Torbjorn Granlund  <tege@swox.com>
 25337  
 25338  	* configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis
 25339  	from gmp_xoptflags_gcc, this might not be an ultrasparc.
 25340  	Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus.
 25341  
 25342  2000-10-29  Torbjorn Granlund  <tege@swox.com>
 25343  
 25344  	* mpn/ia64/lorrshift.asm: New file.
 25345  
 25346  	* configure.in: New mulfunc `lorrshift' for lshift and rshift.
 25347  
 25348  2000-10-29  Kevin Ryde  <kevin@swox.se>
 25349  
 25350  	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing
 25351  	superfluous mpn_sub_n calls.
 25352  
 25353  	* configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ,
 25354  	for the benefit of targets whose only .asm is a cycle counter.
 25355  
 25356  	* tune/tuneup.c (fft): Remove bogus usleep calls.
 25357  
 25358  2000-10-28  Torbjorn Granlund  <tege@swox.com>
 25359  
 25360  	* mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right.
 25361  
 25362  	* tune/Makefile.am (EXTRA_DIST): Add ia64.asm.
 25363  
 25364  	* tune/ia64.asm: Fix typo.
 25365  
 25366  	* add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm:
 25367  	Preserve ar.lc as required by ABI.
 25368  	* longlong.h (ia64 udiv_qrnnd): New.
 25369  
 25370  	* configure.in [path switch] (ia64*-*-*): Set extra_functions.
 25371  	* mpn/ia64/invert_limb.asm: New file.
 25372  
 25373  2000-10-27  Torbjorn Granlund  <tege@swox.com>
 25374  
 25375  	* configure.in [compiler switch]:
 25376  	Get rid of c89 for all hppa flavours--it is an evil compiler!
 25377  
 25378  	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp.
 25379  	(SPEED_ROUTINE_MPN_GET_STR): Fix type of wp.
 25380  
 25381  2000-10-27  Kevin Ryde  <kevin@swox.se>
 25382  
 25383  	* gmp.texi (Fibonacci Number Algorithm): New section.
 25384  
 25385  	* mpz/tests/t-fib_ui.c: New file.
 25386  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
 25387  
 25388  	* mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and
 25389  	some lookup tables, much faster at small to moderate sizes.
 25390  	* gmp-impl.h (MPZ_FIB_SIZE): New macro.
 25391  	(FIB_THRESHOLD): Establish default here.
 25392  	* tune/tuneup.c (FIB_THRESHOLD): Start search after the new table
 25393  	data.
 25394  
 25395  	* mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx,
 25396  	and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_.
 25397  
 25398  	* tune/freq.c (speed_cpu_frequency_measure): New test comparing
 25399  	gettimeofday and speed_cyclecounter, should cover many systems.
 25400  
 25401  2000-10-27  Torbjorn Granlund  <tege@swox.com>
 25402  
 25403  	* mpn/ia64/gmp-mparam.h: Retune.
 25404  
 25405  2000-10-26  Torbjorn Granlund  <tege@swox.com>
 25406  
 25407  	* longlong.h (ia64): Set UMUL_TIME and UDIV_TIME.
 25408  
 25409  	* mpn/ia64/submul_1.c: Fix typo.
 25410  
 25411  2000-10-25  Kevin Ryde  <kevin@swox.se>
 25412  
 25413  	* tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting
 25414  	hw.model for BSD flavours.
 25415  	* configure.in (sysctl, sys/param.h): New tests.
 25416  
 25417  2000-10-24  Torbjorn Granlund  <tege@swox.com>
 25418  
 25419  	* tune/freq.c: Explicitly #include config.h before other include files.
 25420  
 25421  	* mpz/tests/reuse.c (FAIL2): New #define.
 25422  	(main): Use FAIL2.  Now this test properly returns non-zero exit
 25423  	status when it fails.
 25424  
 25425  	* mpn/powerpc32/gmp-mparam.h: Retune.
 25426  	* mpn/powerpc64/gmp-mparam.h: Retune.
 25427  
 25428  2000-10-24  Kevin Ryde  <kevin@swox.se>
 25429  
 25430  	* mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment.
 25431  
 25432  	* mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if
 25433  	gcd gives 1, which should be 60% of the time.
 25434  	* gmp-impl.h (MPZ_EQUAL_1_P): New macro.
 25435  	* mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET.
 25436  
 25437  	* tune/tuneup.c (xp_block, yp_block): Initialize these with random
 25438  	data.  Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM.
 25439  
 25440  2000-10-23  Torbjorn Granlund  <tege@swox.com>
 25441  
 25442  	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case.
 25443  
 25444  	* mpn/ia64/gmp-mparam.h: Fill in some parameters.
 25445  
 25446  	* mpn/ia64/submul_1.c: New file.
 25447  
 25448  	* tune/ia64.asm: New file.
 25449  
 25450  	* gmp-impl.h (union ieee_double_extract): Handle ia64.
 25451  
 25452  	* mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to
 25453  	work around buggy ia64-linux.
 25454  
 25455  	* longlong.h (ia64 umul_ppmm): Update register flags to match new GCC.
 25456  
 25457  2000-10-22  Torbjorn Granlund  <tege@swox.com>
 25458  
 25459  	* mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update.
 25460  	* mpn/alpha/ev6/submul_1.asm: New file.
 25461  
 25462  2000-10-22  Kevin Ryde  <kevin@swox.se>
 25463  
 25464  	* tune/gcd_bin.c: New file.
 25465  	* tune/gcd_finda_gen.c: New file.
 25466  	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
 25467  	* tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring.
 25468  
 25469  	* * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc.
 25470  	(__gmp_default_allocate etc): Rename from _mp_default_allocate etc.
 25471  	* gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE,
 25472  	__GMP_REALLOCATE_FUNC_LIMBS): New macros.
 25473  
 25474  	* gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA
 25475  	since that's the measured average.
 25476  	* mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD):
 25477  	Remove default.
 25478  
 25479  2000-10-21  Torbjorn Granlund  <tege@swox.com>
 25480  
 25481  	* mpn/Makefile.am (TARG_DIST): Add ia64.
 25482  
 25483  2000-10-21  Kevin Ryde  <kevin@swox.se>
 25484  
 25485  	* *: Change BZ -> DC.
 25486  	* mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c.
 25487  
 25488  	* doc/multiplication: Remove file, now in the manual.
 25489  	* doc/assembly_code: Ditto.
 25490  	* tune/README: Remove some parts now in the manual.
 25491  
 25492  	* gmp.texi (@m etc): Add and use some new macros.
 25493  	(Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity
 25494  	and to emphasise similarities.
 25495  	(Low-Level Functions - mpn_[lr]shift): Specify count as 1 to
 25496  	mp_bits_per_limb-1.
 25497  	(Algorithms): New chapter.
 25498  	(References): Add some papers.
 25499  
 25500  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some
 25501  	unused variables.
 25502  	* mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto.
 25503  
 25504  	* tune/freq.c: New file, split from time.c.
 25505  	* tune/time.c: Rewrite, now more automated.
 25506  	* configure.in, tune/*: Consequent changes.
 25507  
 25508  2000-10-20  Torbjorn Granlund  <tege@swox.com>
 25509  
 25510  	* mpn/ia64/default.m4: New file.
 25511  	* configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4.
 25512  
 25513  	* mpn/ia64/mul_1.asm: New file.
 25514  	* mpn/ia64/addmul_1.asm: New file.
 25515  	* mpn/ia64/add_n.asm: New file.
 25516  	* mpn/ia64/sub_n.asm: New file.
 25517  	* mpn/ia64/popcount.asm: New file.
 25518  	* mpn/ia64/README: New file.
 25519  
 25520  	* mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START.
 25521  
 25522  	* configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0
 25523  	by sed'ing the period into `_'.
 25524  
 25525  	* acconfig.h: Add #undefs for hppa targets.
 25526  
 25527  	* longlong.h (udiv_qrnnd): Fix typo in last change.
 25528  
 25529  	* mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug).
 25530  
 25531  	* configure.in [path switch]:
 25532  	(hppa2.0*-*-*): For non-CC64 case, update path.
 25533  
 25534  	* configure.in [compiler switch]:
 25535  	(hppa2.0w-*-*): Match with same regexp in both places.
 25536  	(hppa*-*-*): New case.
 25537  	(all hppa alternatives): Don't inherit default gmp_cflags_cc,
 25538  	gmp_cflags_c89.
 25539  
 25540  2000-10-18  Torbjorn Granlund  <tege@swox.com>
 25541  
 25542  	* configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for
 25543  	alpha*-*-osf*.
 25544  
 25545  	* longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C
 25546  	stringification.
 25547  
 25548  2000-10-15  Kevin Ryde  <kevin@swox.se>
 25549  
 25550  	* doc/configuration: Updates.
 25551  
 25552  	* demos/calc.y: Remove some comments.
 25553  
 25554  2000-10-14  Kevin Ryde  <kevin@swox.se>
 25555  
 25556  	* gmp.texi (Parameter Conventions, Memory Management): New sections
 25557  	split from "Variable Conventions".
 25558  	(Efficiency, Debugging, Profiling): New sections in "GMP Basics".
 25559  	(Reentrancy): Some rewording, add note on standard I/O.
 25560  	(Build options): Add --enable-assert and --enable-profiling.
 25561  
 25562  	* configure.in (--enable-profiling): New option.
 25563  	* acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile.
 25564  	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support.
 25565  
 25566  	* acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*,
 25567  	to follow autoconf conventions.
 25568  
 25569  	* configure.in: Run GMP_CHECK_ASM tests only if needed.
 25570  	* acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT.
 25571  
 25572  	* mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code.
 25573  
 25574  2000-10-13  Kevin Ryde  <kevin@swox.se>
 25575  
 25576  	* mpq/md_2exp.c: New file.
 25577  	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
 25578  	* Makefile.am (MPQ_OBJECTS): Ditto.
 25579  	* gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes.
 25580  	* gmp.texi (Rational Arithmetic): Add documentation.
 25581  
 25582  	* mpq/tests/t-md_2exp.c: New file.
 25583  	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.
 25584  
 25585  	* mpn/generic/perfsqr.c: Add/amend some comments.
 25586  
 25587  	* gmp.texi (Known Build Problems): Note VERSION problem with old
 25588  	sed, do some minor rewording.
 25589  	(Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf,
 25590  	mention HTML.
 25591  	(Getting the Latest Version of GMP): Move this ...
 25592  	(Introduction to GMP): ... to here.
 25593  	(Compatibility with older versions): Just refer to 2.x and 3.x, not
 25594  	every minor version.
 25595  	(Initializing Integers): Note restrictions on mpz_array_init'ed
 25596  	variables.
 25597  	(Integer Logic and Bit Fiddling): Note bits are numbered from 0.
 25598  
 25599  	* INSTALL.autoconf: New file.
 25600  	* Makefile.am (EXTRA_DIST): Add it.
 25601  
 25602  	* tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New
 25603  	scheme for recompiled objects used by tune program.  Don't use
 25604  	libgmptune.a, make better use of libtool, work with ansi2knr.
 25605  
 25606  	* tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and
 25607  	s->xp_block, make exponent a fixed size.
 25608  
 25609  2000-10-07  Torbjorn Granlund  <tege@swox.com>
 25610  
 25611  	* mpn/mips3/gmp-mparam.h: Retune.
 25612  
 25613  	* mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change.
 25614  
 25615  2000-10-06  Torbjorn Granlund  <tege@swox.com>
 25616  
 25617  	* mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles.
 25618  	* mpn/mips3/sub_n.s: Likewise.
 25619  
 25620  2000-10-04  Torbjorn Granlund  <tege@swox.com>
 25621  
 25622  	* configure.in (sparc64-*-linux*): Set path according to CC64.
 25623  
 25624  2000-10-04  Kevin Ryde  <kevin@swox.se>
 25625  
 25626  	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a
 25627  	hard-coded ":".
 25628  
 25629  	* config.sub: Don't demand "86" in CPU name for SCO.
 25630  
 25631  	* configure.in (supersparc-*-*): Remove -DSUPERSPARC.
 25632  	* longlong.h: Use HAVE_TARGET_CPU_supersparc.
 25633  
 25634  	* configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu.
 25635  	* acconfig.h: Add #undefs, but only for targets of interest.
 25636  
 25637  2000-10-03  Torbjorn Granlund  <tege@swox.com>
 25638  
 25639  	* mpn/alpha/cntlz.asm: Rewrite.
 25640  
 25641  	* mp_clz_tab.c (__clz_tab): Half table size to 128 entires.
 25642  	* longlong.h (count_leading_zeros): Demand just 128 entries from
 25643  	__clz_tab.
 25644  
 25645  	* configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options
 25646  	for n32 ABI.
 25647  
 25648  	* longlong.h: Move NO_ASM test around all assembly code.
 25649  	From gcc:
 25650  	* longlong.h (count_leading_zeros): Sparclite scan instruction was
 25651  	being invoked incorrectly.
 25652  	Replace __mc68332__ with __mcpu32__.
 25653  	Add ARC support.
 25654  
 25655  2000-10-02  Torbjorn Granlund  <tege@swox.com>
 25656  
 25657  	* mpn/mips3/gmp-mparam.h: Retune for both gcc and cc.
 25658  
 25659  	* mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips.
 25660  	(interpolate3): Cast mp_limb_t variables to mp_limb_signed_t
 25661  	when testing sign bit.
 25662  
 25663  	* mpn/alpha/ev6/gmp-mparam.h: Retune.
 25664  	* mpn/powerpc32/gmp-mparam.h: Retune.
 25665  	* mpn/powerpc64/gmp-mparam.h: Retune.
 25666  	* mpn/x86/pentium/gmp-mparam.h: Retune.
 25667  	* mpn/x86/pentium/mmx/gmp-mparam.h: Retune.
 25668  	* mpn/sparc32/v9/gmp-mparam.h: Retune.
 25669  	* mpn/x86/k6/gmp-mparam.h: Retune.
 25670  	* mpn/x86/p6/gmp-mparam.h: Retune.
 25671  	* mpn/x86/k7/gmp-mparam.h: Retune.
 25672  	* mpn/sparc64/gmp-mparam.h: Retune.
 25673  
 25674  	* mpn/m68k/gmp-mparam.h: New file.
 25675  	* mpn/alpha/ev5/gmp-mparam.h: New file.
 25676  
 25677  	* gmp-impl.h (default MPN_COPY): Remove final `;'.
 25678  
 25679  	* tune/time.c (speed_endtime): Rewrite.
 25680  
 25681  	* tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value,
 25682  	not 2.
 25683  
 25684  	* demos/pexpr.c (setup_error_handler): Fix typo.
 25685  
 25686  	* mpz/powm.c (redc): New function, based on old mpz_redc.  Don't
 25687  	multiply here.
 25688  	(mpz_redc): Remove.
 25689  	(mpz_powm): Major changes, partially reverting to mpn calls.
 25690  	Multiply before calling redc.
 25691  	(mpz_powm): Use TMP_ allocation.
 25692  	(mpz_powm): Refine calculation of k (width of exponent window).
 25693  	(mpz_powm): Cast constants to mp_limb_t before left shifting.
 25694  
 25695  	* longlong.h: Use ia64 count_leading_zeros just when __GNUC__.
 25696  
 25697  2000-09-29  Kevin Ryde  <kevin@swox.se>
 25698  
 25699  	* acinclude.m4 (GMP_C_SIZES): New macro.
 25700  	* configure.in: Use it.
 25701  	* acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs.
 25702  	* mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines.
 25703  	* gmp.texi (Known Build Problems): Remove 64-bit generic C
 25704  	gmp-mparam.h problem, now fixed.
 25705  
 25706  	* configure.in: Only run GMP_PROG_M4 if it's actually needed.
 25707  
 25708  2000-09-27  Torbjorn Granlund  <tege@swox.com>
 25709  
 25710  	* demos/pexpr.c: Clean up code for systems not supporting
 25711  	sigaltstack.  Handle old Linux without sigaltstack.  Properly
 25712  	disable all stuff related to sigaltstack under Unicos.
 25713  
 25714  	* mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and
 25715  	store insns.  Helps old gas.
 25716  
 25717  	* longlong.h (count_leading_zeros): Define for ia64.
 25718  
 25719  2000-09-27  Paul Zimmermann  <Paul.Zimmermann@loria.fr>
 25720  
 25721  	* mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify.
 25722  
 25723  2000-09-27  Kevin Ryde  <kevin@swox.se>
 25724  
 25725  	* mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to
 25726  	get .s before .c, which is needed to override ansi2knr .c rules.
 25727  
 25728  	* gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description
 25729  	to match the code (change by Torbjorn).
 25730  	(mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most
 25731  	significant limbs must be non-zero.
 25732  	(mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size
 25733  	requirements.
 25734  	(mpn_gcd_1): Clarify value must be non-zero, not just size.
 25735  
 25736  	* gmp-impl.h (mpn_zero_p): New inline function.
 25737  	* mpn/generic/inlines.c: Add gmp-impl.h.
 25738  	* mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it.
 25739  
 25740  	* mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY.
 25741  	* mpf/add_ui.c: Ditto.
 25742  	* mpf/add.c: Ditto, and fix test to skip copy.
 25743  
 25744  2000-09-26  Kevin Ryde  <kevin@swox.se>
 25745  
 25746  	* gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various
 25747  	parameter restrictions.
 25748  
 25749  	* gmp-impl.h (UDIV_PREINV_TIME): New macro.
 25750  	* mpn/generic/sb_divrem_mn.c: Use it.
 25751  	* mpn/generic/perfsqr.c: Ditto.
 25752  	* mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values.
 25753  
 25754  	* macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c,
 25755  	and new multi-function mpz and mpq files.
 25756  
 25757  2000-09-25  Kevin Ryde  <kevin@swox.se>
 25758  
 25759  	* randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c:
 25760  	Use mpz_ptr and mpz_srcptr for parameters.
 25761  	* gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed,
 25762  	mpz_urandomb, mpz_urandomm): Corresponding change to prototypes.
 25763  	* randsdui.c: Remove wrong K&R parameters part.
 25764  
 25765  2000-09-12  Kevin Ryde  <kevin@swox.se>
 25766  
 25767  	* gmp-impl.h (mpn_tdiv_qr): Move prototype from here ...
 25768  	* gmp.h (mpn_tdiv_qr): ... to here.
 25769  
 25770  	* gmp.texi (Miscellaneous Rational Functions): Comment-out and
 25771  	move version 1 compatibility note to "Compatibility" section.
 25772  	(Rational Number Functions): Ditto for canonicalization note.
 25773  
 25774  2000-09-10  Kevin Ryde  <kevin@swox.se>
 25775  
 25776  	* mpn/x86/pentium/com_n.asm: New file.
 25777  
 25778  	* gmp.texi (Rational Arithmetic): Add mpq_abs.
 25779  	(Miscellaneous Rational Functions): Merge and simplify descriptions of
 25780  	mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den.
 25781  
 25782  	* mpq/abs.c: New file.
 25783  	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
 25784  	* Makefile.am (MPQ_OBJECTS): Add it.
 25785  	* gmp.h (mpq_abs): Add prototype.
 25786  
 25787  	* mpq/set_den.c: Don't discard sign when copying, this makes the
 25788  	code match the manual.
 25789  
 25790  2000-09-07  Torbjorn Granlund  <tege@swox.com>
 25791  
 25792  	* tune/alpha.asm: Rewrite to actually work right.
 25793  
 25794  2000-09-07  Kevin Ryde  <kevin@swox.se>
 25795  
 25796  	* tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem,
 25797  	mpn_get_str, mpn_set_str.
 25798  	* tune/README: Various updates.
 25799  
 25800  2000-09-06  Torbjorn Granlund  <tege@swox.com>
 25801  
 25802  	* mpz/fits.c: Correct type of `data'.
 25803  
 25804  2000-09-06  Kevin Ryde  <kevin@swox.se>
 25805  
 25806  	* gmp.texi (Build Options): Clarify where to find CFLAGS.
 25807  	(Known Build Problems): Note SCO -lc problem.
 25808  
 25809  	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs.
 25810  
 25811  	* doc/multiplication: Corrections and additions suggested by Paul.
 25812  
 25813  	* tune/modlinv.c: New file with alternate modlimb_inverts.
 25814  	* tune/Makefile.am, tune/speed.[ch]: Add measuring of them.
 25815  	* tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui,
 25816  	mpz_fib_ui, mpz_fac_ui.
 25817  
 25818  	* mpn/x86/t-zdisp.sh: New file.
 25819  
 25820  	* tests/t-modlinv.c: New file.
 25821  	* tests/Makefile.am (check_PROGRAMS): Add it.
 25822  
 25823  	* mpq/tests/t-set_f.c: New file.
 25824  	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.
 25825  
 25826  	* gmp-impl.h (MPQ_CHECK_FORMAT): New macro.
 25827  	* mpq/tests/t-get_d.c: Use it.
 25828  
 25829  	* mpq/set_f.c: New file.
 25830  	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
 25831  	* Makefile.am (MPQ_OBJECTS): Ditto.
 25832  	* gmp.h: Add prototype.
 25833  	* gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f,
 25834  	correct return type of mpq_set_d.
 25835  
 25836  2000-09-03  Kevin Ryde  <kevin@swox.se>
 25837  
 25838  	* mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object
 25839  	code changes.
 25840  	* mpz/add_ui.c, mpz/sub_ui.c: Remove files.
 25841  	* mpz/Makefile.am: Update.
 25842  
 25843  	* gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros.
 25844  	* mpz/fits.c: New file merging six separate fits*.c.
 25845  	* mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c,
 25846  	fits_uint_p.c, fits_ulong_p.c: Remove files
 25847  	* mpz/Makefile.am: Use new fits.c, change object names from
 25848  	fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings.
 25849  	* Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo.
 25850  
 25851  	* acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA.
 25852  	* configure.in: Use it.
 25853  	* mpn/x86/k[67]/mmx/popham.asm: Use it.
 25854  
 25855  	* mpn/x86/*/*.asm: Use "TEXT" not ".text".
 25856  
 25857  2000-09-02  Kevin Ryde  <kevin@swox.se>
 25858  
 25859  	* mpq/aors.c: New file merging add.c and sub.c, no object code changes.
 25860  	* mpq/add.c, mpq/sub.c: Remove files.
 25861  	* mpq/Makefile.am: Update.
 25862  
 25863  	* mpz/aors.c: New file merging add.c and sub.c, no object code changes.
 25864  	* mpz/add.c, mpz/sub.c: Remove files.
 25865  	* mpz/Makefile.am, mpbsd/Makefile.am: Update.
 25866  
 25867  	* configure.in: Re-apply "PROLOGUE.*" regexp change for the
 25868  	benefit of alpha PROLOGUE_GP, lost in path search reorganisation.
 25869  
 25870  	* mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT,
 25871  	movl_text_address): Don't use "1:" style labels.
 25872  	(Zdisp): Rearrange a bit, switch to all hex.
 25873  	* mpn/x86/README.family: Note SCO "as" doesn't support "1:" style
 25874  	local labels, misc rewordings.
 25875  
 25876  2000-08-29  Torbjorn Granlund  <tege@swox.com>
 25877  
 25878  	* demos/primes.c: Include string.h.
 25879  
 25880  	* config.guess (x86 variant recog code): Remove dummy*.o files
 25881  	generated by some compilers.
 25882  
 25883  2000-08-28  Kevin Ryde  <kevin@swox.se>
 25884  
 25885  	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8
 25886  	warning message suppression, add notes about SCO.
 25887  
 25888  	* Makefile.am (MPZ_OBJECTS etc): Move some comments.
 25889  
 25890  2000-08-25  Kevin Ryde  <kevin@swox.se>
 25891  
 25892  	* mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE.
 25893  
 25894  	* gmp.texi (Copying): Refer to Lesser not Library GPL.
 25895  	(GMP and Reentrancy): Note stack-alloc.c is not reentrant, and
 25896  	that SCO <ctype.h> is potentially not reentrant.
 25897  
 25898  	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to
 25899  	link with or without an underscore.
 25900  	* gmp.texi (Known Build Problems): Remove SunOS 4 native grep
 25901  	GSYM_PREFIX problem, now fixed.
 25902  
 25903  	* gmp-impl.h (MODLIMB_INVERSE_3): New constant.
 25904  	* mpn/generic/diveby3.c: Use it instead of own INVERSE_3.
 25905  	* mpn/generic/mul_n.c: Ditto.
 25906  	* tests/t-constants.c: Check it, and PP_INVERTED too.
 25907  
 25908  	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro.
 25909  	* configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to
 25910  	possibly add -march=pentiumpro.
 25911  
 25912  	* gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros.
 25913  	* mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c,
 25914  	mpz/tests/t-misc.c: Use them.
 25915  	* mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto.
 25916  	* mpz/tests/convert.c: Ditto and amend diagnostics slightly.
 25917  	* mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init.
 25918  	* mpz/tests/io.c: Differentiate between I/O and data conversion errors.
 25919  
 25920  	* mpn/generic/aors_n.c: New file merging add_n and sub_n, no
 25921  	object code changes.
 25922  	* mpn/generic/add_n.c: Remove file.
 25923  	* mpn/generic/sub_n.c: Remove file.
 25924  
 25925  	* mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1,
 25926  	no object code changes.
 25927  	* mpn/generic/addmul_1.c: Remove file.
 25928  	* mpn/generic/submul_1.c: Remove file.
 25929  
 25930  	* mpn/generic/popham.c: New file merging popcount and hamdist, no
 25931  	object code changes.
 25932  	* mpn/generic/popcount.c: Remove file.
 25933  	* mpn/generic/hamdist.c: Remove file.
 25934  
 25935  2000-08-24  Torbjorn Granlund  <tege@swox.com>
 25936  
 25937  	* gmp-impl.h (mpn_com_n): Fix typo.
 25938  
 25939  2000-08-23  Torbjorn Granlund  <tege@swox.com>
 25940  
 25941  	* demos/primes.c (main): Don't call mpz_probab_prime_p for numbers
 25942  	that are known to be prime after sieving.
 25943  	(main): Declare and initialize max_s_prime_squared.
 25944  	(MAX_S_PRIME): Increase.
 25945  	(ST_SIZE): Increase.
 25946  
 25947  2000-08-23  Kevin Ryde  <kevin@swox.se>
 25948  
 25949  	* gmp-impl.h (ASSERT_ALWAYS): Change to statement style.
 25950  	(JACOBI_TWO_U_BIT1): Remove ASSERT.
 25951  	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement.
 25952  
 25953  2000-08-21  Torbjorn Granlund  <tege@swox.com>
 25954  
 25955  	* gmp-impl.h (ASSERT): Use do..while for dummy version.
 25956  
 25957  	* mpf/get_str.c: Don't set n_digits from digits_computed_so_far
 25958  	when the converted operand becomes zero.  Misc cleanups.
 25959  
 25960  2000-08-21  Kevin Ryde  <kevin@swox.se>
 25961  
 25962  	* mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing
 25963  	TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c.
 25964  
 25965  2000-08-20  Kevin Ryde  <kevin@swox.se>
 25966  
 25967  	* mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as
 25968  	"move" for libmp.
 25969  	* mpbsd/Makefile.am: Use mpz/set.c, not move.c.
 25970  	* Makefile.am (MPBSD_OBJECTS): Corresponding change.
 25971  	* mpbsd/move.c: Remove file.
 25972  
 25973  	* mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am,
 25974  	mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr
 25975  	"foo_" objects.  Do this with the makefiles to keep the sources
 25976  	cleaner.
 25977  	* mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms.
 25978  
 25979  	* mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from
 25980  	gmpasm-delete-from-list, because it's non-destructive.
 25981  	(gmpasm-font-lock-keywords): Add some more keywords.
 25982  
 25983  2000-08-16  Kevin Ryde  <kevin@swox.se>
 25984  
 25985  	* tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced
 25986  	open-coded and mpn #includes of mpn/generic/mul_n.c.
 25987  	* tune/*: Add measuring of them.
 25988  	* tune/speed.c: Print command line into *.gnuplot file.
 25989  
 25990  	* mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for
 25991  	using the value, add #ifndef for providing the default.
 25992  	* mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef.
 25993  
 25994  	* tests/t-constants.c: New file.
 25995  	* tests/Makefile.am (check_PROGRAMS): Add it.
 25996  
 25997  	* mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result
 25998  	doesn't depend on limb size when outside the range of a long
 25999  	(though such results are not actually documented).
 26000  	* mpz/tests/t-get_si.c: New file.
 26001  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
 26002  
 26003  	* mpn/tests/try.c (call): Cast popcount and hamdist calls,
 26004  	for the benefit of long long limb.
 26005  
 26006  2000-08-15  Kevin Ryde  <kevin@swox.se>
 26007  
 26008  	* mp.h (mp_set_memory_functions): Add missing #define.
 26009  	* mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its
 26010  	existence.
 26011  
 26012  	* mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying
 26013  	reverted behaviour of mpf_get_prec.
 26014  
 26015  	* mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not
 26016  	MPN_COPY_INCR.
 26017  
 26018  	* mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms
 26019  	produced under ansi2knr.
 26020  
 26021  	* configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c
 26022  	objects when ansi2knr in use.
 26023  
 26024  	* mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
 26025  	(libdummy.la): Add this, not built, to create ansi2knr style rules
 26026  	for all potential .c files.
 26027  	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am,
 26028  	mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am
 26029  	(AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere).
 26030  	* Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS,
 26031  	MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames.
 26032  
 26033  2000-08-03  Torbjorn Granlund  <tege@swox.com>
 26034  
 26035  	* mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28.
 26036  
 26037  2000-08-02  Torbjorn Granlund  <tege@swox.com>
 26038  
 26039  	* Version 3.1 released.
 26040  
 26041  	* gmp.texi: Rephrase mpf_urandomb documentation.
 26042  
 26043  	* mpn/alpha/ev6: New directory with ev6/21264 optimized code.
 26044  	* mpn/alpha/ev6/addmul_1.asm: New file.
 26045  	* mpn/alpha/ev6/gmp-mparam.h: New file.
 26046  
 26047  2000-08-02  Kevin Ryde  <kevin@swox.se>
 26048  
 26049  	* demos/factorize.c (random): Don't use "inline".
 26050  
 26051  	* mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c:
 26052  	Corrections to K&R parts.
 26053  
 26054  	* Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION).
 26055  	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h.
 26056  
 26057  	* gmp.texi (Known Build Problems): Note problem stripping libgmp.a.
 26058  
 26059  2000-08-02  Kent Boortz  <kent@swox.com>
 26060  
 26061  	* mpfr: Integrated experimental version of mpfr-0.4.
 26062  	* configure.in: Changes for option --enable-mpfr.
 26063  	* Makefile.am: Changes for option --enable-mpfr.
 26064  
 26065  2000-08-01  Torbjorn Granlund  <tege@swox.com>
 26066  
 26067  	* mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern.
 26068  	* mpn/generic/hamdist.c: Likewise.
 26069  
 26070  2000-08-01  Kevin Ryde  <kevin@swox.se>
 26071  
 26072  	* mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing
 26073  	source and dest regions.
 26074  
 26075  2000-07-31  Torbjorn Granlund  <tege@swox.com>
 26076  
 26077  	* mpf/get_str.c: Develop three extra digits, not just one.
 26078  
 26079  2000-07-31  Kevin Ryde  <kevin@swox.se>
 26080  
 26081  	* gmp.texi (References): Add URL for invariant division.
 26082  
 26083  2000-07-30  Kevin Ryde  <kevin@swox.se>
 26084  
 26085  	* tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for
 26086  	alpha linux "cycle frequency".
 26087  
 26088  	* mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds.
 26089  
 26090  2000-07-29  Kevin Ryde  <kevin@swox.se>
 26091  
 26092  	* gmp.texi (ABI and ISA): Add sparc64-*-linux*.
 26093  	* configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags
 26094  	as under solaris.
 26095  
 26096  	* configure.in (--enable-fft): New option, default "no".
 26097  	* gmp.texi (Build Options): Describe it.
 26098  	* mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it.
 26099  	* tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled.
 26100  	* NEWS: Multiplication optionally using FFT.
 26101  
 26102  	* tune/README: Notes on FFT and GCD thresholds, other minor updates.
 26103  
 26104  	* Makefile.am: Expunge the macos generated files update stuff.
 26105  
 26106  2000-07-28  Kevin Ryde  <kevin@swox.se>
 26107  
 26108  	* mpn/x86/*/gmp-mparam.h: Add some FFT thresholds.
 26109  
 26110  2000-07-28  Kent Boortz  <kent@swox.se>
 26111  
 26112  	* macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories.
 26113  	* macos/Makefile: Delete file.
 26114  	* macos/Makefile.cw: Delete file.
 26115  	* macos/config.h: Delete file.
 26116  	* macos/Asm/*.s: Delete files.
 26117  	* macos/configure: Create target directories. Don't transform
 26118  	'(C)' to '(;)' in a 'dnl' line comment in .asm file.
 26119  	* Makefile.am: Delete macos targets.
 26120  	* macos/README: Reflect that we reverted back to a build
 26121  	process that require ""macos/configure" to run on MacOS.
 26122  	This imply that MacPerl is needed for a build in MacOS.
 26123  
 26124  2000-07-27  Kevin Ryde  <kevin@swox.se>
 26125  
 26126  	* mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods
 26127  	applied.
 26128  	* configure.in (gmp_mpn_functions): Add it.
 26129  	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use it.
 26130  	* doc/multiplication: Describe it (briefly).
 26131  
 26132  	* gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds.
 26133  	(mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full):
 26134  	New functions.
 26135  	(numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc,
 26136  	UNSIGNED_TYPE_MAX etc): New macros.
 26137  
 26138  	* tune/*: Add FFT threshold tuning and speed measuring.
 26139  	* tune/common.c: Avoid huge macro expansions for umul and udiv.
 26140  
 26141  	* mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c,
 26142  	mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c,
 26143  	mpn/tests/spinner.c: Use new gmp-impl.h macros.
 26144  
 26145  	* demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this.
 26146  
 26147  2000-07-27  Torbjorn Granlund  <tege@swox.com>
 26148  
 26149  	* mpn/ia64/gmp-mparam.h: New file.
 26150  
 26151  2000-07-26  Torbjorn Granlund  <tege@swox.com>
 26152  
 26153  	* demos/isprime.c: Handle any number of arguments and print
 26154  	classification for each.  Add `-q' option for old behaviour.
 26155  
 26156  2000-07-26  Kevin Ryde  <kevin@swox.se>
 26157  
 26158  	* gmp.texi (Build Options): Mention djgpp stack size.
 26159  	(Notes for Package Builds): New section.
 26160  	(Compatibility with older versions): Update for 3.1, add mpf_get_prec.
 26161  
 26162  	* demos/factorize.c [__GLIBC__]: Don't declare random() under glibc.
 26163  
 26164  	* gmp.h (gmp_version): Add prototype and define.
 26165  
 26166  	* Makefile.am: Keep macos directory generated files up-to-date
 26167  	during development and on a "make dist".
 26168  
 26169  2000-07-25  Torbjorn Granlund  <tege@swox.com>
 26170  
 26171  	* mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run.
 26172  
 26173  	* mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run.
 26174  	* mpn/pa64w/gmp-mparam.h: Likewise.
 26175  	* mpn/mips3/gmp-mparam.h: Likewise.
 26176  
 26177  	* tune/hppa2.asm: Fix typo in .level directive.
 26178  
 26179  	* configure.in: Add sparc64-*-linux* support (from Jakub Jelinek).
 26180  	* configure: Regenerate.
 26181  
 26182  	* mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area
 26183  	for return value (from Jakub Jelinek).
 26184  	* mpn/sparc64/lshift.asm: Likewise.
 26185  
 26186  	* mpf/get_prc.c: Revert Aug 8, 1996 change.
 26187  
 26188  	* version.c: No longer static.
 26189  
 26190  	* mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already
 26191  	defined.
 26192  	* mpn/pa64w/gmp-mparam.h: Likewise.
 26193  	* mpn/arm/gmp-mparam.h: Likewise.
 26194  	* mpn/mips3/gmp-mparam.h: Likewise.
 26195  
 26196  2000-07-25  Kevin Ryde  <kevin@swox.se>
 26197  
 26198  	* INSTALL: It's "info -f ./gmp.info" to be sure of hitting the
 26199  	gmp.info in the current directory.
 26200  
 26201  	* Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last
 26202  	mpz/powm.c fix.
 26203  
 26204  	* mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from
 26205  	addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3
 26206  	filesystem.
 26207  	* mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm,
 26208  	mpn/sparc64/mul_1.asm: Update include_mpn()s.
 26209  
 26210  2000-07-24  Torbjorn Granlund  <tege@swox.com>
 26211  
 26212  	* Update header of all files previously under the Library GPL
 26213  	to instead be under the Lesser GPL.
 26214  
 26215  	* COPYING.LIB: Now Lesser GPL.
 26216  	* demos/primes.c: Change license to GPL (was Library GPL).
 26217  	* demos/isprime.c: Change license to GPL (was Library GPL).
 26218  
 26219  	* gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused).
 26220  
 26221  	* mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD.
 26222  	Improve error messages.  Decrease reps.
 26223  
 26224  2000-07-22  Kevin Ryde  <kevin@swox.se>
 26225  
 26226  	* tune/speed.h: Decrease the amount of data used for gcd and powm
 26227  	measuring, to make the tune go a bit faster.
 26228  
 26229  2000-07-21  Kent Boortz  <kent@swox.se>
 26230  
 26231  	* macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created
 26232  	from configure script, now part of dist.
 26233  	* macos/Makefile
 26234  	* macos/Makefile.cw
 26235  	* macos/config.h
 26236  	* macos/Asm/*.s
 26237  	New files and directories that is the output from configure. This way
 26238  	no Perl installation is required to build on MacOS, just MPW.
 26239  	* macos/configure: Added prefix '__g' to exported assembler labels.
 26240  	Changed to handle new m4 syntax instead of the old cpp syntax in asm.
 26241  	* macos/Makefile.in: Corrected 'clean' target, added 'distclean'
 26242  	and 'maintainer_clean'. Added "mpn/mp_bases.c" to build.
 26243  	* macos/README: Reflect the new build process without configure.
 26244  	Corrected the file structure for Apple MPW installation.
 26245  
 26246  2000-07-21  Torbjorn Granlund  <tege@swox.com>
 26247  
 26248  	* mpf/tests/t-muldiv.c: Relax error limit.  Make precision depend
 26249  	on SIZE.  Misc changes.
 26250  
 26251  	* configure: Regenerate.
 26252  
 26253  2000-07-20  Kent Boortz  <kent@swox.com>
 26254  
 26255  	* macos/Makefile.in: Removed hard coded targets, added special
 26256  	targets found in Makefile.am files.
 26257  	* macos/configure: Generate targets from top configure script and
 26258  	Makefile.am files. Made script runnable from Unix for testing.
 26259  	* macos/README: Notes about search paths for includes, contributed
 26260  	by Marco Bambini.
 26261  	* configure.in: Added comment about lines that the "macos/configure"
 26262  	script depend on.
 26263  
 26264  2000-07-20  Torbjorn Granlund  <tege@swox.com>
 26265  
 26266  	* mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod'
 26267  	from result if it is greater than `mod'.
 26268  
 26269  2000-07-19  Torbjorn Granlund  <tege@swox.com>
 26270  
 26271  	* mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run.
 26272  	* mpn/alpha/gmp-mparam.h: Likewise.
 26273  	* mpn/powerpc32/gmp-mparam.h: Likewise.
 26274  
 26275  	* tune/hppa.asm: New file.
 26276  	* tune/hppa2.asm: New file.
 26277  	* configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and
 26278  	hppa*-*-*.
 26279  	* tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm.
 26280  
 26281  	* tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker';
 26282  	invoke TMP_FREE.
 26283  
 26284  	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for
 26285  	reloc/symbol delimiter.
 26286  
 26287  2000-07-16  Torbjorn Granlund  <tege@swox.com>
 26288  
 26289  	* mpn/powerpc64/gmp-mparam.h: Update with output from tune utility.
 26290  	* mpn/powerpc64/copyi.asm: New file.
 26291  	* mpn/powerpc64/copyd.asm: New file.
 26292  
 26293  2000-07-16  Kevin Ryde  <kevin@swox.se>
 26294  
 26295  	* tune/*: Add measuring for umul_ppmm and udiv_qrnnd.
 26296  
 26297  2000-07-14  Kevin Ryde  <kevin@swox.se>
 26298  
 26299  	* mpn/x86/k6/k62mmx: New directory.
 26300  	* configure.in (k6[23]*-*-*): Use it.
 26301  	* mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from
 26302  	mmx directory, improve code alignment a bit.
 26303  	* mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto,
 26304  	and improve addressing modes for pre-CXT cores.
 26305  	* mpn/x86/x86-defs.m4 (Zdisp): Add an instruction.
 26306  	* mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files,
 26307  	suiting plain K6.
 26308  	* mpn/x86/README, mpn/x86/k6/README: Updates.
 26309  	* mpn/x86/k6/mmx/*.asm: Update some comments.
 26310  
 26311  	* mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m".
 26312  	* tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for
 26313  	the benefit of djgpp.
 26314  
 26315  	* */Makefile.in: Regenerate with patched automake that adds
 26316  	$(EXEEXT) to EXTRA_PROGRAMS.
 26317  
 26318  	* mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp.
 26319  	* config.guess: Recognise pc:*:*:* as an x86, for djgpp.
 26320  
 26321  	* configure: Regenerate with patched autoconf to fix temp file
 26322  	".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two
 26323  	sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive
 26324  	spec).
 26325  
 26326  	* mpz/tests/io.c: Use one fp opened "w+", since separately opened
 26327  	input and output doesn't work on MS-DOS 6.21.
 26328  
 26329  	* tests/rand/Makefile.am (allprogs): Pseudo-target to build everything.
 26330  	(CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES.
 26331  	(manual-test, manual-bigtest): Add $(EXEEXT) to dependencies.
 26332  
 26333  	* tests/rand/*/Makefile.in: Regenerate with patched automake that adds
 26334  	$(EXEEXT) to EXTRA_PROGRAMS.
 26335  
 26336  2000-07-13  Torbjorn Granlund  <tege@swox.com>
 26337  
 26338  	* mpz/tests/t-root.c: Also test mpz_perfect_power_p.
 26339  	Generate `nth' so that there will be fewer trivial values.
 26340  
 26341  	* mpz/root.c: Reverse return value in tests for detecting root of +1
 26342  	and -1.
 26343  
 26344  	* mpz/perfpow.c: Use TMP_ALLOC interface.
 26345  
 26346  2000-07-12  Torbjorn Granlund  <tege@swox.com>
 26347  
 26348  	* mpz/perfpow.c (primes): Make it const.
 26349  
 26350  2000-07-06  Kevin Ryde  <kevin@swox.se>
 26351  
 26352  	* mpn/x86/k6/cross.pl: New file.
 26353  
 26354  	* mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize
 26355  	all _TIME defines.
 26356  	* mpn/x86/pentium/mmx/gmp-mparam.h: New file.
 26357  	* mpn/sparc64/gmp-mparam.h: Update thresholds.
 26358  	* mpn/sparc32/v9/gmp-mparam.h: Ditto.
 26359  
 26360  2000-07-04  Kevin Ryde  <kevin@swox.se>
 26361  
 26362  	* NEWS: Updates.
 26363  	* mpn/x86/*/README: Miscellaneous updates.
 26364  
 26365  	* tune/speed-ext.c: New file.
 26366  	* tune/Makefile.am: Add it.
 26367  	* tune/README: Updates.
 26368  	* tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes.
 26369  
 26370  	* demos/calc.y,calclex.l: New files.
 26371  	* demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l.
 26372  	* demos/Makefile.am: Add them.
 26373  
 26374  	* gmp.h (mpq_swap, mpf_swap): Add prototypes and defines.
 26375  
 26376  2000-07-01  Kevin Ryde  <kevin@swox.se>
 26377  
 26378  	* gmp.texi (ABI and ISA): New section, bringing together ABI notes.
 26379  	(Build Options): Add MPN_PATH, various updates.
 26380  	(Build Options): Add note on setting CFLAGS when setting CC.
 26381  	(Notes for Particular Systems): Add -march=pentiumpro problem.
 26382  	(Known Build Problems): Note on gmp-mparam.h for 64-bit generic C.
 26383  	(GMP Variable Conventions): Add some info on user defined functions.
 26384  	(Reporting Bugs): Minor rewording.
 26385  
 26386  	* configure.in (MPN_PATH): Renamed from mpn_path.
 26387  
 26388  	* gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines.
 26389  	* mp[zf]/tests/t-misc.c: Use them.
 26390  
 26391  	* mpbsd/tests/t-misc.c: New file.
 26392  	* mpbsd/tests/Makefile.am: Add it.
 26393  
 26394  	* Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info.
 26395  	* gmp.h (__GNU_MP_VERSION_*): Bump to 3.1.
 26396  
 26397  	* mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
 26398  
 26399  	* Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally
 26400  	omitted in gmp 3.0.x.
 26401  	* gmp.texi (Custom Allocation): Note this is available in mpbsd,
 26402  	and some minor rewording.
 26403  
 26404  2000-06-30  Torbjorn Granlund  <tege@swox.com>
 26405  
 26406  	* demos/factorize.c (random): New function, defined conditionally.
 26407  	(factor_using_pollard_rho): Use it, not mrand48.
 26408  
 26409  	* mpn/cray/README: New file.
 26410  
 26411  2000-06-30  Kevin Ryde  <kevin@swox.se>
 26412  
 26413  	* mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
 26414  
 26415  	* mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs.
 26416  
 26417  	* gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c:
 26418  	Use config.h unconditionally, not under HAVE_CONFIG_H.
 26419  
 26420  	* demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use
 26421  	setup_error_handler on djgpp.
 26422  
 26423  	* tune/*: Locate data to help direct-mapped caches, add measuring
 26424  	of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups.
 26425  	* configure.in (AC_CHECK_FUNCS): Add popen.
 26426  
 26427  2000-06-29  Torbjorn Granlund  <tege@swox.com>
 26428  
 26429  	* mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or
 26430  	mpn_rshift.  Increase precision when exp is a multiple of
 26431  	BITS_PER_MP_LIMB primarily to make exp==0 be a noop.
 26432  	* mpf/div_2exp.c: Analogous changes.
 26433  
 26434  	* mpf/tests/t-dm2exp.c: Set u randomly in loop.  Perform more
 26435  	mpf_mul_2exp testing.
 26436  
 26437  	* configure.in: Recognize cray vector processors with a broad `*';
 26438  	move after alpha* not to match that.
 26439  
 26440  2000-06-28  Kevin Ryde  <kevin@swox.se>
 26441  
 26442  	* mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr
 26443  	style, switch from MP_INT to mpz_t, add a couple of error checks.
 26444  	* mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails.
 26445  
 26446  2000-06-27  Torbjorn Granlund  <tege@swox.com>
 26447  
 26448  	* mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray
 26449  	floating point format.
 26450  
 26451  	* mpq/tests/t-get_d.c: Decrease default reps to 1000.
 26452  
 26453  	* mpf/tests/t-conv.c: Correct type of `bexp'.
 26454  
 26455  	* configure.in (cray vector machines): Don't inherit gmp_cflags_cc.
 26456  
 26457  	* tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm.
 26458  
 26459  	* configure.in (cray vector machines): Set extra_functions.
 26460  
 26461  	* mpn/cray/mulww.f: New file with vectorizing cray code.
 26462  	* mpn/cray/mulww.s: Generated from mulww.f.
 26463  	* mpn/cray/mul_1.c: New file.
 26464  	* mpn/cray/addmul_1.c: New file.
 26465  	* mpn/cray/submul_1.c: New file.
 26466  	* mpn/cray/add_n.c: New file.
 26467  	* mpn/cray/sub_n.c: New file.
 26468  
 26469  2000-06-26  Kevin Ryde  <kevin@swox.se>
 26470  
 26471  	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually
 26472  	detects solaris 2.6, and also suppress warning on solaris 2.8.
 26473  	* configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from
 26474  	sparc case.
 26475  
 26476  	* mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring.
 26477  
 26478  2000-06-21  Kevin Ryde  <kevin@swox.se>
 26479  
 26480  	* mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use
 26481  	mp_size_t for n2.
 26482  	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size
 26483  	parameters and "l" variables.
 26484  	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes.
 26485  
 26486  	* mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of
 26487  	-0x80...00 on systems with sizeof(short)==sizeof(int).
 26488  
 26489  	* mpz/tests/t-misc.c: Move "bin" test from here ...
 26490  	* mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too.
 26491  	* mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin.
 26492  
 26493  	* mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is
 26494  	a limb not a ulong.
 26495  	* mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too,
 26496  	since nacc is a limb.
 26497  
 26498  	* mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si):
 26499  	New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si.
 26500  	* mpf/tests/Makefile.am (check_PROGRAMS): Add it.
 26501  
 26502  	* mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si):
 26503  	New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si.
 26504  
 26505  	* mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix
 26506  	handling of -0x80..00.
 26507  	* mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto.
 26508  
 26509  2000-06-19  Torbjorn Granlund  <tege@swox.com>
 26510  
 26511  	* demos/primes.c: Properly handle arguments `m +n'.
 26512  
 26513  2000-06-17  Torbjorn Granlund  <tege@swox.com>
 26514  
 26515  	* config.sub: Recognize k5 and k6 with common pattern.
 26516  
 26517  	* mpq/tests/t-get_d.c: Also test mpq_set_d.  Misc improvements.
 26518  
 26519  	* mpq/set_d.c: Special case 0.0.  Don't call mpn_rshift with 0 count.
 26520  	Allocate correct amount of memory for numerator.  Delete spurious
 26521  	ASSERT_ALWAYS(1).
 26522  
 26523  2000-06-17  Kevin Ryde  <kevin@swox.se>
 26524  
 26525  	* mpz/perfsqr.c: Fix so that zero is considered a perfect square.
 26526  	(Was wrongly calling mpn_perfect_square_p with size==0.)
 26527  
 26528  2000-06-16  Kevin Ryde  <kevin@swox.se>
 26529  
 26530  	* configure.in: Set k5*-*-* to use basic i386 code until there's
 26531  	something specific.  Add path=x86 as a default for x86s.
 26532  
 26533  	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate
 26534  	ALIGN_LOGARITHMIC setting, not a full ALIGN definition.
 26535  	(GMP_CHECK_ASM_ALIGN_FILL_0x90): New test.
 26536  	* configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90.
 26537  	* mpn/asm-defs.m4 (ALIGN): New macro.
 26538  	* mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition.
 26539  
 26540  	* tune/*: Plain "unsigned" for speed_cyclecounter.
 26541  	* configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes.
 26542  	* tune/sparc64.asm: Remove file.
 26543  
 26544  2000-06-15  Torbjorn Granlund  <tege@swox.com>
 26545  
 26546  	* mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'.
 26547  	* mpn/x86/k7/mmx/copyd.asm: Likewise.
 26548  
 26549  	* mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems).
 26550  	* mpn/x86/k7/mmx/rshift.asm: Likewise.
 26551  	* mpn/x86/k6/aors_n.asm: Likewise.
 26552  	* mpn/x86/k7/aors_n.asm: Likewise.
 26553  	* mpn/x86/k7/mul_basecase.asm: Likewise.
 26554  
 26555  2000-06-13  Torbjorn Granlund  <tege@swox.com>
 26556  
 26557  	* tune/sparcv9.asm: Tune, deleting two instructions.
 26558  
 26559  	* tune/alpha.asm: Update to unified speed_cyclecounter.
 26560  
 26561  2000-06-11  Kevin Ryde  <kevin@swox.se>
 26562  
 26563  	* mpz/tests/reuse.c (FAIL): Add a K&R version.
 26564  	Use _PROTO on some typedefs.
 26565  	* mpz/tests/t-misc.c: Add gmp-impl.h for "const".
 26566  
 26567  	* configure.in: Rework mpn multi-function and optional files.
 26568  	Names standardized, no need for explicit declarations, all picked
 26569  	up in one $path traversal.
 26570  	* doc/configuration: Updates.
 26571  
 26572  	* tests/rand/t-rand.c (main): Change "usage" to work with K&R.
 26573  
 26574  2000-06-10  Kevin Ryde  <kevin@swox.se>
 26575  
 26576  	* mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm,
 26577  	mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add
 26578  	MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching.
 26579  
 26580  	* mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions.
 26581  	(cmov_available_p): Switch to list CPUs which do have cmov.
 26582  	* mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm,
 26583  	mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication.
 26584  	* mpn/x86/README.family: Various updates.
 26585  
 26586  2000-06-09  Kevin Ryde  <kevin@swox.se>
 26587  
 26588  	* mpbsd/tests/allfuns.c (main): Call exit() instead of doing return.
 26589  
 26590  	* doc/tasks.html, doc/projects.html: Moved from projects directory.
 26591  	* doc/multiplication: New file.
 26592  	* Makefile.am (EXTRA_DIST): Remove projects, add doc.
 26593  
 26594  	* Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove
 26595  	unnecessary -lm.
 26596  	* INSTALL: Remove -lm from instructions.
 26597  	* demos/Makefile.am (qcn_LDADD): Add -lm.
 26598  
 26599  	* tune/*: Add measuring for mpn_divrem_2 and modlimb_invert,
 26600  	improve addsub_n.  Switch to unified speed_cyclecounter.
 26601  	* configure.in: Update configs for speed_cyclecounter.
 26602  
 26603  	* gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros.
 26604  	* mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c,
 26605  	tune/speed.c, mpn/tests/ref.c: Use them.
 26606  
 26607  	* mpn/tests/spinner.c: Remove setitimer, just alarm is enough.
 26608  	* configure.in (AC_CHECK_FUNCS): Remove setitimer.
 26609  	* mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx.
 26610  	* mpn/tests/ref.[ch] (refmpn_addsub_nc): New function.
 26611  	* mpn/tests/try.c: Add some support for mpn_addsub_nc.
 26612  	* mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and
 26613  	addsub_n_2 which don't currently build.
 26614  	* mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy.
 26615  
 26616  	* tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on
 26617  	libgmp.la.
 26618  	(findlc_LDADD): Use libstat.la.
 26619  	(AUTOMAKE_OPTIONS): Use ansi2knr.
 26620  
 26621  2000-06-08  Torbjorn Granlund  <tege@swox.com>
 26622  
 26623  	* configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and
 26624  	higher.
 26625  	(alpha*-*-*): Likewise.
 26626  	(alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from
 26627  	gmp_xoptcflags_gcc.
 26628  
 26629  	* mpn/Makefile.am (TARG_DIST): Add pa64w.
 26630  
 26631  	* longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE.
 26632  
 26633  2000-06-07  Torbjorn Granlund  <tege@swox.com>
 26634  
 26635  	* mpz/remove.c: Fail for `src' being zero.
 26636  
 26637  	* mpz/tests/reuse.c: Test more functions.
 26638  	(FAIL): New define.
 26639  
 26640  	* mpz/tests/t-powm.c: Loop during operand generation while they
 26641  	are mathematically ill-defined (used to just skip such tests).
 26642  
 26643  	* mpz/powm.c (mpz_redc): Clean up argument declarations.
 26644  
 26645  	* configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option.
 26646  	(sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc):
 26647  	Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'.
 26648  	(ia64*-*-*): New.
 26649  
 26650  	* mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'.
 26651  
 26652  	* mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR.
 26653  
 26654  2000-06-06  Torbjorn Granlund  <tege@swox.com>
 26655  
 26656  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n):
 26657  	Use mpn_incr_u for final carry propagation.
 26658  
 26659  	* mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL.
 26660  
 26661  	* mpz/tests/reuse.c: Major rewrite; test many more functions.
 26662  
 26663  	* mpz/powm_ui.c: When exp is 0, change res assign order in order
 26664  	to handle argument overlap.
 26665  	* mpz/powm.c: When exp is 0, change res assign order in order
 26666  	to handle argument overlap.  Handle negative exp and mod arguments.
 26667  
 26668  	* mpz/gcdext.c: Rework code after mpn_gcdext call to handle
 26669  	argument overlap.
 26670  
 26671  	* mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr
 26672  	in order to handle argument overlap.
 26673  	* mpz/cdiv_qr.c: Likewise.
 26674  
 26675  	* mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs'
 26676  	tests.  Clean up test for mpf_ui_div.
 26677  
 26678  2000-06-06  Kevin Ryde  <kevin@swox.se>
 26679  
 26680  	* mpn/x86/p6/sqr_basecase.asm: New file.
 26681  	* mpn/x86/mod_1.asm: Avoid one conditional jump.
 26682  	* mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME
 26683  	and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME.
 26684  
 26685  	* mp_minv_tab.c: New file.
 26686  	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
 26687  	* gmp-impl.h (modlimb_invert): New macro.
 26688  	* mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead.
 26689  	* mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop.
 26690  	* mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use
 26691  	MPN_COPY_INCR not MPN_COPY in one place.
 26692  
 26693  2000-06-05  Torbjorn Granlund  <tege@swox.com>
 26694  
 26695  	* mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp.
 26696  	(main): Clean up test for mpf_div_ui.
 26697  
 26698  	* mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or
 26699  	mpn_rshift.  MPN_COPY => MPN_COPY_INCR.  Coerce the two assignments to
 26700  	r->_mp_size.
 26701  
 26702  	* mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap
 26703  	so requires.  MPN_COPY => MPN_COPY_INCR.
 26704  
 26705  	* mpf/tests/t-dm2exp.c: Correct type of res_prec.
 26706  
 26707  2000-06-04  Kevin Ryde  <kevin@swox.se>
 26708  
 26709  	* mpz/bin_uiui.c: Fix result for n==0 and n==k.
 26710  	* mpz/bin_ui.c: Fix result for k>n, add support for n<0.
 26711  	* gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to
 26712  	note n<0 is supported.
 26713  
 26714  	* mpz/tests/t-misc.c: New file.
 26715  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
 26716  
 26717  2000-05-31  Kevin Ryde  <kevin@swox.se>
 26718  
 26719  	* tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on
 26720  	mpn_gcd_1 and mpn_mul_basecase.
 26721  	* tune/README: Update.
 26722  
 26723  	* tune/alpha.asm: New file, by Torbjorn.
 26724  	* tune/Makefile.am (EXTRA_DIST): Add it.
 26725  	* configure.in (alpha*-*-*): Use it.
 26726  
 26727  2000-05-31  Linus Nordberg  <linus@swox.se>
 26728  
 26729  	* doc/configuration: New file.
 26730  
 26731  2000-05-30  Torbjorn Granlund  <tege@swox.com>
 26732  
 26733  	* mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2
 26734  	if available.  Don't include longlong.h.
 26735  
 26736  	* doc/isa_abi_headache: New file.
 26737  
 26738  2000-05-30  Linus Nordberg  <linus@swox.se>
 26739  
 26740  	* configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to
 26741  	find `nm'.  (AC_PROG_NM comes with Libtool and is needed to get
 26742  	the `-B' option (BSD compatible output) included in $NM.)
 26743  	(AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'.
 26744  	(Now that NM isn't a cross compilation tool, don't give the
 26745  	impression that we know how to cross compile.)
 26746  	(CCAS): Remove spurious comment.
 26747  
 26748  	* gmp.texi (Notes for Particular Systems): Remove comment about
 26749  	using GNU `nm' on AIX since system nm now works.
 26750  
 26751  2000-05-29  Torbjorn Granlund  <tege@swox.com>
 26752  
 26753  	* mpn/power/mul_1.s: Remove [PR] from first word in function
 26754  	descriptor.
 26755  	* mpn/power/addmul_1.s: Likewise.
 26756  	* mpn/power/submul_1.s: Likewise.
 26757  
 26758  2000-05-28  Kevin Ryde  <kevin@swox.se>
 26759  
 26760  	* configure.in, tune/*: Change pentium rdtsc cycle scheme to
 26761  	HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS.
 26762  	* tune/pentium.asm: Renamed and converted from rdtsc.asm.
 26763  	* tune/sparcv9.asm: New file, by Torbjorn.
 26764  	* tune/sparc64.asm: New file.
 26765  	* tune/tuneup.c: Put a limit on gcdext search.
 26766  
 26767  	* gmp.h (mp_set_memory_functions): Add extern "C".
 26768  	* mp.h (__GNU_MP__): Bump to "3".
 26769  	* mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]:
 26770  	Include mp.h for mpbsd compile.
 26771  	* mpz/gcd.c: Ditto, and remove _mpz_realloc declaration.
 26772  
 26773  	* gmp.texi (Integer Functions): Flatten @subsections into @sections.
 26774  	(Floating-point Functions): Ditto.
 26775  	(Integer Random Numbers): Split from miscellaneous as a sep section.
 26776  	(Installing GMP): Make nodes for the sections.
 26777  	Add more "@cindex"s.
 26778  	(Known Build Problems): Remove SunOS get_d problem, believed fixed.
 26779  	(Notes for Particular Systems): Remove HPPA note since now PIC.
 26780  	(References): URL for Jebelean.
 26781  
 26782  2000-05-27  Torbjorn Granlund  <tege@swox.com>
 26783  
 26784  	* mpn/pa64w: New directory, contents based on corresponding mpn/pa64
 26785  	files.
 26786  	* configure.in (hppa2.0w-*-*): New.
 26787  	* mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before
 26788  	including stdio.h.
 26789  	* gmp-impl.h: Always define DItype and UDItype.
 26790  
 26791  2000-05-27  Kevin Ryde  <kevin@swox.se>
 26792  
 26793  	* tune/common.c (speed_measure): Correction to array sorting,
 26794  	better diagnostic when measuring fails.
 26795  	* tune/time.c: Add microsecond accurate getrusage method.
 26796  
 26797  	* tune/time.c (speed_cpu_frequency_processor_info): New function.
 26798  	* configure.in (AC_CHECK_FUNCS): Add processor_info.
 26799  
 26800  2000-05-26  Linus Nordberg  <linus@swox.se>
 26801  
 26802  	* gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3
 26803  	if using GNU nm.
 26804  
 26805  2000-05-26  Torbjorn Granlund  <tege@swox.com>
 26806  
 26807  	* tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to
 26808  	avoid signed overflow.
 26809  
 26810  	* demos/pexpr.c (setup_error_handler): Don't call sigaltstack on
 26811  	Unicos.
 26812  
 26813  2000-05-25  Torbjorn Granlund  <tege@swox.com>
 26814  
 26815  	* insert-dbl.c: Work around GCC 2.8 bug.
 26816  	* extract-dbl.c: Likewise.
 26817  
 26818  	* config.sub: Allow i586, i686, i786 again.
 26819  
 26820  	* config.guess: Use X86CPU for lots more systems.
 26821  
 26822  2000-05-25  Linus Nordberg  <linus@swox.se>
 26823  
 26824  	* mpbsd/tests/dummy.c (main): Call exit() instead of doing return
 26825  	(some old SysV machines don't get this correct, I've heard.)
 26826  
 26827  2000-05-25  Kevin Ryde  <kevin@swox.se>
 26828  
 26829  	* mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no
 26830  	digits in string, so it's the same as a separate init and set_str.
 26831  
 26832  2000-05-24  Torbjorn Granlund  <tege@swox.com>
 26833  
 26834  	* mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random.
 26835  
 26836  	* mpz/divexact.c: Read pointers after reallocation.
 26837  	Compare `quot' and `den' instead of `qp' and `dp' in overlap check.
 26838  	Use MPN_COPY_INCR for copying from `np'.
 26839  
 26840  	(*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX
 26841  	versions.
 26842  	* configure.in (*-cray-unicos*): Disable asm syntax checking; set
 26843  	compiler explicitly.
 26844  	* configure.in (hppa*-*-*): Remove code disabling shared libs.
 26845  
 26846  2000-05-24  Linus Nordberg  <linus@swox.se>
 26847  
 26848  	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user
 26849  	when doing the AIX specific test to avoid "nested output".
 26850  
 26851  2000-05-22  Kevin Ryde  <kevin@swox.se>
 26852  
 26853  	* mp.h (_PROTO): Copy from gmp.h, use on prototypes.
 26854  	Add extern "C" too.
 26855  	* mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
 26856  	* mpbsd/tests/allfuns.c: Don't execute mout, just link to it.
 26857  	(main): ANSI style definition.
 26858  
 26859  	* gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to
 26860  	something that works on SunOS native cc.  Seems to fix the
 26861  	mp*_get_d problems.
 26862  
 26863  	* mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR.
 26864  	* mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir.
 26865  
 26866  2000-05-21  Kevin Ryde  <kevin@swox.se>
 26867  
 26868  	* mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code.
 26869  	* mpn/x86/k7/README: Update.
 26870  	* mpn/x86/k7/gmp-mparam.h: Tune thresholds.
 26871  	(COUNT_TRAILING_ZEROS_TIME): New define.
 26872  	* mpn/x86/k6/gmp-mparam.h: Ditto.
 26873  
 26874  	* mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version).
 26875  	* mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version).
 26876  	* mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version).
 26877  	* mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version).
 26878  	* configure.in (pentium3-*-*): Add p3mmx to $path.
 26879  
 26880  	* gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add
 26881  	mpz_*_kronecker_*.
 26882  	(Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p.
 26883  	(Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note
 26884  	it's now a macro.
 26885  	(References): Add Henri Cohen.
 26886  
 26887  	* gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c,
 26888  	mpn_submul_1c): Add prototypes.
 26889  	(mpz_odd_p, mpz_even_p): New macros.
 26890  
 26891  	* mpn/asm-defs.m4 (m4wrap_prepend): New macro.
 26892  	(m4_error): Use it.
 26893  	(m4_not_for_expansion): Corrections to OPERATION symbols.
 26894  	More comments about variations between m4 versions.
 26895  	* mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error
 26896  	exit under BSD m4, previously m4_error printed the message but the
 26897  	exit code was 0).
 26898  
 26899  	* gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1.
 26900  	* mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it
 26901  	static and call it __gmpn_divmod_1_internal.
 26902  	* mpn/generic/divmod_1.c: Remove file.
 26903  	* configure.in (gmp_mpn_functions): Remove divmod_1.
 26904  	* mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c.
 26905  	* compat.c (mpn_divmod_1): Add compatibility function.
 26906  	* tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1).
 26907  
 26908  	* acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in
 26909  	variants, remove divmod_1.
 26910  
 26911  	* mpn/x86/diveby3.asm: Use imul, update comments.
 26912  
 26913  	* demos/qcn.c: New file.
 26914  	* demos/Makefile.am (EXTRA_PROGRAMS): Add it.
 26915  
 26916  	* mpz/tests/t-jac.c: New file.
 26917  	* mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr.
 26918  
 26919  	* mpz/kronsz.c: New file.
 26920  	* mpz/kronuz.c: New file.
 26921  	* mpz/kronzs.c: New file.
 26922  	* mpz/kronzu.c: New file.
 26923  	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
 26924  	* Makefile.am (MPZ_OBJECTS): Add them.
 26925  	* gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros.
 26926  	* gmp.h (mpz_*_kronecker_*): New defines and prototypes.
 26927  
 26928  	* mpn/generic/jacbase.c: New file.
 26929  	* mpn/generic/mod_1_rs.c: New file.
 26930  	* configure.in (gmp_mpn_functions): Add them.
 26931  	* gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and
 26932  	prototypes.
 26933  	* longlong.h (COUNT_TRAILING_ZEROS_TIME): New define.
 26934  	* mpn/tests/ref.c (refmpn_mod_1_rshift): New function.
 26935  	* mpn/tests/try.c: Add mpn_mod_1_rshift.
 26936  	* tune/*: Add measuring for mpn_jacobi_base.
 26937  
 26938  	* acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple
 26939  	inclusion of config.m4.
 26940  	(GMP_PROG_M4): Put "good" message through to config.log.
 26941  
 26942  	* mpz/powm.c: Use a POWM_THRESHOLD for where redc stops.
 26943  	* tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD.
 26944  	* gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional
 26945  	redefinition for use when tuning.
 26946  
 26947  	* mpz/powm_ui.c: Use DIVIDE_BY_ZERO.
 26948  
 26949  	* mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in
 26950  	string; this makes it the same as a separate init and set_str.
 26951  
 26952  2000-05-20  Kevin Ryde  <kevin@swox.se>
 26953  
 26954  	* mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval().
 26955  	* mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s.
 26956  
 26957  	* mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms.
 26958  
 26959  2000-05-19  Linus Nordberg  <linus@swox.se>
 26960  
 26961  	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable
 26962  	`ac_compile' for our own compile command string since other
 26963  	Autoconf macros may depend on it.
 26964  
 26965  2000-05-19  Kevin Ryde  <kevin@swox.se>
 26966  
 26967  	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix
 26968  	carry propagation in final coefficient additions.
 26969  
 26970  2000-05-18  Linus Nordberg  <linus@swox.se>
 26971  
 26972  	* configure.in: Set NM before looking for compiler since
 26973  	GMP_CHECK_CC_64BIT needs it.
 26974  
 26975  	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target.
 26976  	(GMP_PROG_CC_FIND): Before checking if the compiler knows how to
 26977  	produce 64-bit code, verify that it works at all.  The background
 26978  	is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit
 26979  	mode but fails when doing final link.
 26980  	(GMP_PROG_CC_WORKS): Report to user what's happening.
 26981  
 26982  2000-05-17  Linus Nordberg  <linus@swox.se>
 26983  
 26984  	* config.guess: Use X86CPU for x86 Cygwin.
 26985  
 26986  2000-05-16  Kevin Ryde  <kevin@swox.se>
 26987  
 26988  	* mpn/x86/p6/mmx/divrem_1.asm: New file.
 26989  	* mpn/x86/p6/mmx/mod_1.asm: New file.
 26990  	* mpn/x86/p6/README: Update.
 26991  	* mpn/x86/divrem_1.asm: Update comments.
 26992  	* mpn/x86/mod_1.asm: Ditto.
 26993  
 26994  2000-05-14  Kevin Ryde  <kevin@swox.se>
 26995  
 26996  	* tune/speed.h: Run gcd functions on a set of data.
 26997  
 26998  	* mpn/tests/try.c: New file.
 26999  	* mpn/tests/try.h: New file.
 27000  	* mpn/tests/spinner.c: New file.
 27001  	* mpn/tests/trace.c: New file.
 27002  	* mpn/tests/x86call.asm: New file.
 27003  	* mpn/tests/x86check.c: New file.
 27004  	* mpn/tests/ref.c (refmpn_hamdist): Allow size==0.
 27005  	(refmpn_gcd): New function, and other additions supporting it.
 27006  	* mpn/tests/ref.h: More prototypes.
 27007  	* mpn/tests/Makefile.am: Add try program, use ansi2knr.
 27008  
 27009  	* mpn/x86/k7/mmx/popham.asm: New file.
 27010  	* mpn/x86/k6/mmx/popham.asm: New file.
 27011  	* mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x
 27012  	speedup above 15 limbs.
 27013  	* mpn/x86/k7/README: Update.
 27014  	* mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT
 27015  	K6-2 problems.
 27016  	* configure.in (k6*-*-*, athlon-*-*): Add popham.
 27017  
 27018  	* mpn/x86/pentium/diveby3.asm: New file.
 27019  	* mpn/x86/pentium/README: Update.
 27020  
 27021  	* gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4.
 27022  	(Reporting Bugs): Ask for config.m4 if asm file related.
 27023  	(I/O of Rationals): New section, add mpq_out_str.
 27024  	(References): Add url for on-line gcc manuals.
 27025  	A few node and menu updates.
 27026  
 27027  	* INSTALL: Better command line argument checking for test progs.
 27028  	Change MP -> GMP.
 27029  
 27030  	* configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC):
 27031  	Put descriptions here, not in acconfig.h.
 27032  	(CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try).
 27033  	(HAVE_CALLING_CONVENTIONS): New AC_DEFINE.
 27034  	(AC_CHECK_HEADERS): Add sys/time.h.
 27035  	(AC_CHECK_FUNCS): Add getpagesize, setitimer.
 27036  	(KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the
 27037  	#define when passing through to config.m4.
 27038  	* acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC,
 27039  	HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them
 27040  	from configure.in.
 27041  
 27042  	* acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4
 27043  	eval(), put messages into config.log.
 27044  	* mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4.
 27045  
 27046  	* mpq/out_str.c: New file.
 27047  	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
 27048  	* Makefile.am (MPQ_OBJECTS): Ditto.
 27049  	* gmp.h (mpq_out_str): New define and prototype.
 27050  
 27051  2000-05-12  Kevin Ryde  <kevin@swox.se>
 27052  
 27053  	* configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not
 27054  	$top_srcdir (which doesn't exist).
 27055  	* acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_.
 27056  	* gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do"
 27057  	(not currently used, probably no ill effect anyway).
 27058  
 27059  2000-05-11  Torbjorn Granlund  <tege@swox.com>
 27060  
 27061  	* randraw.c (lc): Major overhaul (pending rewrite).
 27062  	(_gmp_rand): Rewrite.
 27063  
 27064  2000-05-08  Torbjorn Granlund  <tege@swox.com>
 27065  
 27066  	* mpz/tests/convert.c: Call free via _mp_free_func.
 27067  	* mpf/tests/t-conv.c: Likewise.
 27068  
 27069  	* memory.c: Add code enabled for DEBUG that adds special patterns
 27070  	around allocated blocks.
 27071  
 27072  2000-05-05  Linus Nordberg  <linus@swox.se>
 27073  
 27074  	* gmp.texi (Miscellaneous Float Functions): Correct parameter list
 27075  	for mpf_urandomb().
 27076  
 27077  	* configure.in: Invoke AC_REVISION.
 27078  
 27079  2000-05-05  Kevin Ryde  <kevin@swox.se>
 27080  
 27081  	* gmp.texi: Use @dircategory and @direntry.
 27082  	(Installing GMP): Clarification for --target, updates on SunOS
 27083  	problems.
 27084  	(Integer Arithmetic): Add mpz_mul_si.
 27085  	(Initializing Rationals): Add mpq_swap.
 27086  	(Assigning Floats): Add mpf_swap.
 27087  	(Low-level Functions): Add mpn_divexact_by3c, and details of what
 27088  	the calculation actually gives.
 27089  	(Low-level Functions): Note extra space needed by mpn_gcdext,
 27090  	clarify the details a bit.
 27091  
 27092  	* compat.c: New file, entry points for upward binary compatibility.
 27093  	(mpn_divexact_by3): Compatibility function.
 27094  	* Makefile.am (libgmp_la_SOURCES): Add compat.c.
 27095  
 27096  	* mpn/tests/ref.c: Rearrange macros for ansi2knr.
 27097  	(div1): Renamed from div to avoid library function.
 27098  	(refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount,
 27099  	refmpn_hamdist): New functions.
 27100  	* mpn/tests/ref.h: Add extern "C", add new prototypes.
 27101  
 27102  	* gmp.h (gmp_randinit, etc): Add extern "C".
 27103  	(_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui.
 27104  	(mpn_divexact_by3): Now a macro calling mpn_divexact_by3c.
 27105  	(mpn_divexact_by3c): New prototype and define.
 27106  
 27107  	* mpn/x86/diveby3.asm: Change to mpn_divexact_by3c.
 27108  	* mpn/x86/k6/diveby3.asm: Ditto.
 27109  	* mpn/generic/diveby3.c: Ditto.
 27110  	* mpn/asm-defs.m4: Ditto on the define_mpn.
 27111  	* acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define.
 27112  
 27113  	* mpq/swap.c: New file, derived from mpz/swap.c.
 27114  	* mpf/swap.c: Ditto.
 27115  	* mpq/Makefile.am: Add swap.c.
 27116  	* mpf/Makefile.am: Ditto.
 27117  	* Makefile.am: Add two new "swap.lo"s.
 27118  
 27119  	* mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately
 27120  	this code hasn't been used anywhere yet).
 27121  
 27122  	* mpn/x86/k7/mmx/divrem_1.asm: New file.
 27123  	* mpn/x86/k7/mmx/mod_1.asm: New file.
 27124  	* mpn/x86/k7/diveby3.asm: New file.
 27125  	* mpn/x86/k7/README: Update.
 27126  
 27127  	* mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change.
 27128  	* mpn/x86/k7/mul_basecase.asm: Ditto.
 27129  	* mpn/x86/p6/aorsmul_1.asm: Ditto.
 27130  
 27131  	* mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument.
 27132  	(cmovCC): New macros, replacing individual cmovCC_reg_reg forms.
 27133  	(Zdisp): Recognise more instructions.
 27134  	(shldl,etc): Use m4_instruction_wrapper().
 27135  	(ASSERT, movl_text_address): New macros.
 27136  
 27137  	* mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new
 27138  	OpenBSD m4.
 27139  	(m4_assert_numargs_internal_check): Remove a spurious parameter.
 27140  	(m4_empty_if_zero): Eval the argument.
 27141  	(m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam,
 27142  	m4_instruction_wrapper): New macros.
 27143  
 27144  2000-05-04  Linus Nordberg  <linus@swox.se>
 27145  
 27146  	* gmp.texi (Reporting Bugs): Be explicit about output from running
 27147  	a command.
 27148  
 27149  2000-05-02  Torbjorn Granlund  <tege@swox.com>
 27150  
 27151  	* mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return
 27152  	from first mpn_bz_div_3_halves_by_2 call.
 27153  	(mpn_bz_divrem_aux): Likewise.
 27154  
 27155  2000-04-30  Kevin Ryde  <kevin@swox.se>
 27156  
 27157  	* tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these.
 27158  
 27159  	* mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD,
 27160  	use with >=, adjust default to 17 accordingly.
 27161  	Use new *_SWAP macros.
 27162  
 27163  	* mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from
 27164  	ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly.
 27165  	Use new *_SWAP macros.
 27166  
 27167  	* mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c,
 27168  	mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c,
 27169  	mpn/generic/mul.c: Use new *_SWAP macros.
 27170  
 27171  	* stack-alloc.h: Add extern "C" around prototypes.
 27172  
 27173  	* gmp-impl.h: (MP_PTR_SWAP, etc): New macros.
 27174  	(_mp_allocate_func, etc): Use _PROTO.
 27175  	[TUNE_PROGRAM_BUILD]: More changes in tune program build part.
 27176  
 27177  2000-04-28  Torbjorn Granlund  <tege@swox.com>
 27178  
 27179  	* mpn/pa64/add_n.s: Add `,entry' to export directive.
 27180  	* mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S,
 27181  	mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S,
 27182  	mpn/pa64/umul_ppmm.S: Likewise.
 27183  	* mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s.
 27184  	Add PIC support.
 27185  
 27186  2000-04-29  Kevin Ryde  <kevin@swox.se>
 27187  
 27188  	* gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New
 27189  	define.
 27190  	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use
 27191  	TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500.
 27192  
 27193  	* memory.c: Use <stdlib.h> for malloc etc, and use _PROTO.
 27194  	* stack-alloc.c: Don't use C++ reserved word "this".
 27195  	* urandom.h: Put extern "C" around prototypes.
 27196  	* mpz/powm.c: Switch a couple of parameters to "const", which they
 27197  	are, to satisfy g++.
 27198  
 27199  	* randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to
 27200  	help g++.
 27201  
 27202  	* stack-alloc.c: Provide dual ANSI/K&R function definitions.
 27203  	* mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c,
 27204  	rrandomb.c,set_str.c,ui_pow_ui.c: Ditto.
 27205  	* mpf/integer.c,set_str.c: Ditto.
 27206  	* mpbsd/min.c,xtom.c: Ditto.
 27207  	* mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c,
 27208  	popcount.c,random.c,random2.c,set_str.c: Ditto.
 27209  
 27210  	* rand.c: Use <stdio.h> for NULL.
 27211  	* mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c,
 27212  	sqrtrem.c: Ditto
 27213  	* mpf/sqrt.c,sqrt_ui.c: Ditto.
 27214  	* mpn/generic/perfsqr.c,sqrtrem.c: Ditto.
 27215  
 27216  	* gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare.
 27217  	(extern "C"): Add around function prototypes.
 27218  	(mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n):
 27219  	Add prototypes.
 27220  	[TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for
 27221  	use by tune program.
 27222  	* mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype.
 27223  
 27224  	* acinclude.m4 (GMP_C_ANSI2KNR): New macro.
 27225  	(GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use
 27226  	$gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets.
 27227  	* configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES,
 27228  	for reasons described with its definition.
 27229  
 27230  	* demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir).
 27231  
 27232  	* mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency.
 27233  	(FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value.
 27234  	(mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui.
 27235  	* tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this.
 27236  
 27237  	* configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite
 27238  	a value just stored).
 27239  
 27240  2000-04-26  Kevin Ryde  <kevin@swox.se>
 27241  
 27242  	* mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro.
 27243  	* mpn/sparc32/udiv_nfp.asm: Ditto.
 27244  	* mpn/sparc32/v8/supersparc/udiv.asm: Ditto.
 27245  	* mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm.
 27246  	* mpn/sparc32/v8/umul.asm: Ditto.
 27247  	* mpn/powerpc32/umul.asm: Ditto.
 27248  
 27249  	* mpn/x86/syntax.h: Remove file, since now unused.
 27250  
 27251  	* configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS
 27252  	previously used by .S files.
 27253  	(x86 extra_functions): Add udiv and umul.
 27254  	(GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...)
 27255  	(HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to
 27256  	accept PROLOGUE_GP on alpha.
 27257  
 27258  	* acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb):
 27259  	New template defines.
 27260  	* mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s.
 27261  	* longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if
 27262  	it's available and an asm macro isn't.
 27263  	* gmp-impl.h (invert_limb): Ditto.
 27264  
 27265  	* gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it.
 27266  
 27267  	* acinclude.m4 (GMP_PROG_M4): New macro.
 27268  
 27269  2000-04-25  Linus Nordberg  <linus@swox.se>
 27270  
 27271  	* gmp.texi (Random State Initialization): Correct arguments to
 27272  	`gmp_randinit'.
 27273  
 27274  	* acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'.  Fix
 27275  	from Kevin.
 27276  	* aclocal.m4: Regenerate.
 27277  
 27278  2000-04-25  Kevin Ryde  <kevin@swox.se>
 27279  
 27280  	* mpn/x86/aors_n.asm: Remove parentheses around an immediate that
 27281  	Solaris "as" doesn't like, change by Torbjorn.
 27282  
 27283  2000-04-24  Kevin Ryde  <kevin@swox.se>
 27284  
 27285  	* configure.in (AC_CHECK_FUNCS): Add strtoul.
 27286  
 27287  	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger
 27288  	array for karatsuba temporary space for tune program build.
 27289  	(mpn_toom3_sqr_n) Remove an unused variable.
 27290  
 27291  	* demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
 27292  	Add "allprogs:" pseudo-target.
 27293  	* demos/factorize.c, demos/isprime.c: Switch to ANSI functions,
 27294  	rely on ansi2knr.
 27295  
 27296  	* gmp.texi (Getting the Latest Version of GMP): Add reference to
 27297  	ftp.gnu.org mirrors list.
 27298  	* INSTALL: Add arg count check to example programs.
 27299  
 27300  	* mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to
 27301  	FORTRAN-style "C" commenting to support Solaris "as".
 27302  	* mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn.
 27303  	* mpn/asm-defs.m4 (C): Update comments.
 27304  	* mpn/x86/README.family: Add a note on commenting, remove
 27305  	description of .S files.
 27306  
 27307  	* mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use
 27308  	include_mpn().
 27309  
 27310  2000-04-23  Torbjorn Granlund  <tege@swox.com>
 27311  
 27312  	* config.sub: Merge with FSF version of April 23.
 27313  
 27314  	* mpn/powerpc32: Use dnl/C instead of `#' for comments.
 27315  
 27316  	* config.guess: Get "model" limit between pentium 2 and pentium3 right.
 27317  	Get rid of code determining `_' prefix; use double labels instead.
 27318  	* config.guess: Partially merge with FSF version of April 22.
 27319  	(Don't bring over NetBSD changes for now.)
 27320  
 27321  2000-04-23  Kevin Ryde  <kevin@swox.se>
 27322  
 27323  	* tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm,
 27324  	tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files.
 27325  	* tune/Makefile.in: New file, generated from Makefile.am.
 27326  
 27327  	* gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros.
 27328  	[TUNE_PROGRAM_BUILD] Further mods for tune program builds.
 27329  
 27330  	* mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c.
 27331  	Add rules to build mul_si and mul_ui from a common mul_siui.c.
 27332  	* mpz/mul_siui.c: New file, derived from and replacing mul_ui.c.
 27333  	* gmp.h (mpz_mul_si): New prototype and define.
 27334  
 27335  	* mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in
 27336  	CLOCK because cpp can't handle floats in #if's (TIMES is derived
 27337  	from CLOCK by default).
 27338  
 27339  	* mpn/asm-defs.m4 (include_mpn): New macro.
 27340  	(m4_assert_numargs) Changes to implementation.
 27341  
 27342  	* mpf/Makefile.am: Add -DOPERATION_$* for new integer.c.
 27343  	Remove explicit rules for floor.o etc.
 27344  	* mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc.
 27345  
 27346  	* mpn/Makefile.am: Put "tests" in SUBDIRS.
 27347  	* mpn/tests/Makefile.am: New file providing rules to build test
 27348  	programs, nothing done in a "make all" or "make check" though.
 27349  	* mpn/tests/README: New file.
 27350  
 27351  	* acconfig.h (HAVE_PENTIUM_RDTSC): New define.
 27352  
 27353  	* configure.in (x86): Rearrange target cases.
 27354  	Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s).
 27355  	Remove asm-syntax.h generation not needed.
 27356  	Remove now unused family=x86.
 27357  	(sparc) Remove unused family=sparc.
 27358  	(HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL.
 27359  	(AM_C_PROTOTYPES) New test, supporting ansi2knr.
 27360  	(AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for
 27361  	tune progs.
 27362  	(AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for
 27363  	tune progs.
 27364  	(config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR.
 27365  	(config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include().
 27366  	(gmp_m4postinc) Use include_mpn().
 27367  	(gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's.
 27368  	(MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd.
 27369  	(PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3).
 27370  	(KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4.
 27371  	(AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile.
 27372  
 27373  	* Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
 27374  	(SUBDIRS): Add tune, reorder directories.
 27375  	(MPZ_OBJECTS): Add mpz/mul_si.lo.
 27376  	(libmp_la_SOURCES): Use this for top-level objects, not .lo's.
 27377  	* ansi2knr.c, ansi2knr.1: New files, provided by automake.
 27378  
 27379  	* mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a
 27380  	multi-function aors_n.asm, no object code change.
 27381  	* mpn/x86/pentium/aors_n.asm: Ditto.
 27382  	* mpn/x86/aorsmul_1.asm: Ditto for addmul/submul.
 27383  	* mpn/x86/pentium/aorsmul_1.asm: Ditto.
 27384  
 27385  	* mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm,
 27386  	mpn/x86/rshift.asm: Convert from .S, no object code change.
 27387  	* mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm,
 27388  	mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto.
 27389  
 27390  	* gmp.texi (Reporting Bugs): Itemize the list of things to include.
 27391  	(Miscellaneous Float Functions): Correct typo in mpf_ceil etc
 27392  	argument types.
 27393  	Change @ifinfo -> @ifnottex for benefit of makeinfo --html.
 27394  	Remove unnecessary @iftex's around @tex.
 27395  
 27396  2000-04-22  Torbjorn Granlund  <tege@swox.com>
 27397  
 27398  	* config.guess: Generalize x86 cpu determination code.
 27399  	Now works on Solaris.
 27400  
 27401  	* mpz/nextprime.c: Rewrite still disabled code.
 27402  
 27403  	* configure.in: Specifically match freebsd[3-9].
 27404  
 27405  2000-04-21  Torbjorn Granlund  <tege@swox.com>
 27406  
 27407  	* rand.c: Call mpz_clear for otherwise leaking mpz_t.
 27408  
 27409  	* mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative
 27410  	n into code for handling small positive n.  Merge variables m and n.
 27411  	After dividing, simply call mpz_millerrabin.
 27412  	(isprime): Local variables now use attribute `long'.
 27413  	(mpz_millerrabin): New static function, based on code from
 27414  	mpz_probab_prime_p.
 27415  	(millerrabin): Now simple workhorse for mpz_millerrabin.
 27416  
 27417  2000-04-19  Torbjorn Granlund  <tege@swox.com>
 27418  
 27419  	* gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__.
 27420  
 27421  2000-04-18  Linus Nordberg  <linus@swox.se>
 27422  
 27423  	* NEWS: Add info about shared libraries.  Remove reference to
 27424  	gmp_randinit_lc.
 27425  
 27426  2000-04-17  Torbjorn Granlund  <tege@swox.com>
 27427  
 27428  	* Version 3.0 released.
 27429  
 27430  	* mpn/arm/add_n.S: New version from Robert Harley.
 27431  	* mpn/arm/addmul_1.S: Likewise.
 27432  	* mpn/arm/mul_1.S: Likewise.
 27433  	* mpn/arm/sub_n.S: Likewise.
 27434  
 27435  	* gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0.
 27436  
 27437  2000-04-17  Linus Nordberg  <linus@swox.se>
 27438  
 27439  	* configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode
 27440  	to avoid compiler bug.
 27441  	(ns32k*-*-*): Fix typo in path.  Change by Kevin.
 27442  	(alpha*-*-osf*): New case.  Pass assembly flags for architecture
 27443  	to gcc.
 27444  	(alpha*-*-*): Don't bother searching for cc.
 27445  	* configure: Regenerate.
 27446  
 27447  	* Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'.
 27448  	* Makefile.in: Regenerate.
 27449  	* mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'.
 27450  	* mpn/Makefile.in: Regenerate.
 27451  
 27452  2000-04-16  Kevin Ryde  <kevin@swox.se>
 27453  
 27454  	* README: Updates, and don't duplicate the example in INSTALL.
 27455  	* INSTALL: Minor updates.
 27456  	* gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description.
 27457  
 27458  2000-04-16  Linus Nordberg  <linus@swox.se>
 27459  
 27460  	* configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid
 27461  	.type/.size in PROLOGUE for ELF_SYNTAX.  Override ALIGN definition
 27462  	from x86/syntax.h.
 27463  	(gmp_xoptcflags_${CC}): New set of variables, indicating
 27464  	``exclusive optional cflags''.
 27465  	(most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to
 27466  	ensure that we pass CPU type to older gcc.
 27467  	(CFLAGS): CFLAGS on the command line was spoiled.
 27468  	* configure: Regenerate.
 27469  
 27470  2000-04-16  Linus Nordberg  <linus@swox.se>
 27471  
 27472  	* configure.in: Invoke AC_PROG_LIBTOOL directly.
 27473  
 27474  	* acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when
 27475  	setting CC64 and CFLAGS64.
 27476  	(GMP_PROG_CC_SELECT): Cache result.
 27477  	(GMP_PROG_LIBTOOL): Remove.
 27478  
 27479  	* aclocal.m4: Regenerate.
 27480  	* configure: Regenerate.
 27481  
 27482  2000-04-16  Linus Nordberg  <linus@swox.se>
 27483  
 27484  	* tests/rand/t-rand.c (main): Add non-ANSI function declaration.
 27485  	Don't use `const'.
 27486  
 27487  2000-04-16  Torbjorn Granlund  <tege@swox.com>
 27488  
 27489  	* mpn/generic/dump.c: Suppress output of leading zeros.
 27490  
 27491  	* mpz/inp_str.c: Fix memory leakage.
 27492  
 27493  	* mpz/tests/reuse.c (dss_func_division): Add a final 1.
 27494  
 27495  	* longlong.h (alpha count_leading_zeros): Wrap in __MPN.
 27496  	* mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN).
 27497  
 27498  	* longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN.
 27499  	* mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix.
 27500  	* mpn/hppa/udiv_qrnnd.s: Likewise.
 27501  	* mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise.
 27502  	* mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN).
 27503  	* mpn/pa64/umul_ppmm.S: Likewise.
 27504  	* mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN).
 27505  	* mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN).
 27506  	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN).
 27507  
 27508  	* mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling
 27509  	bug.
 27510  
 27511  	* mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1
 27512  	when computing appropriate quotient; mpn_divrem_1 writes too
 27513  	many quotient limbs.
 27514  
 27515  	* mpn/asm-defs.m4: invert_normalized_limb => invert_limb.
 27516  	* mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb =>
 27517  	mpn_invert_limb.
 27518  	* gmp.h: Likewise.
 27519  	* gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb;
 27520  	wrap with __MPN.
 27521  	* longlong.h (alpha udiv_qrnnd): Likewise.
 27522  
 27523  2000-04-16  Kevin Ryde  <kevin@swox.se>
 27524  
 27525  	* gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add
 27526  	#defines so the library symbols are __gmp_*.
 27527  	* errno.c: Include gmp.h.
 27528  	* gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*.
 27529  	(__clz_tab): New #define to __MPN(clz_tab).
 27530  	* stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*.
 27531  
 27532  	* Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed
 27533  	for new mpz_powm (pow in libmp).
 27534  	(EXTRA_DIST): Add projects directory.
 27535  
 27536  	* mpn/*: Change __mpn to __gmpn.
 27537  	* gmp.h (__MPN): Ditto.
 27538  	* stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp.
 27539  
 27540  	* mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3
 27541  	i386 register handling bug (same as previously in mpn_divrem_classic).
 27542  
 27543  	* mpn/generic/divrem.c: Now contains mpn_divrem, which is not an
 27544  	internal function, so remove warning comment.
 27545  
 27546  	* gmp.texi (Compatibility with Version 2.0.x): Source level only.
 27547  
 27548  2000-04-16  Linus Nordberg  <linus@swox.se>
 27549  
 27550  	* configure.in (hppa1.0*): Prefer c89 to cc.
 27551  	* configure: Regenerate.
 27552  
 27553  2000-04-15  Linus Nordberg  <linus@swox.se>
 27554  
 27555  	* configure.in: If `mpn_path' is set by user on configure command
 27556  	line, use that as path.
 27557  	* configure: Regenerate.
 27558  
 27559  2000-04-15  Linus Nordberg  <linus@swox.se>
 27560  
 27561  	* configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no
 27562  	64-bit compiler was found.
 27563  	* configure: Regenerate.
 27564  
 27565  2000-04-15  Linus Nordberg  <linus@swox.se>
 27566  
 27567  	* configure.in: Honor `CC' and `CFLAGS' set by user on configure
 27568  	command line.
 27569  	* acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already.
 27570  	* aclocal.m4: Regenerate.
 27571  	* configure: Regenerate.
 27572  
 27573  2000-04-15  Linus Nordberg  <linus@swox.se>
 27574  
 27575  	* acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output.  Remove
 27576  	commented out code.
 27577  	* aclocal.m4: Regenerate.
 27578  	* configure: Regenerate.
 27579  
 27580  	* configure.in: Make all `-mcpu' options to gcc optional.
 27581  	* configure: Regenerate.
 27582  
 27583  	* tests/rand/Makefile.am: Don't do anything for target 'all'.
 27584  	* tests/rand/Makefile.in: Regenerate.
 27585  
 27586  2000-04-15  Kevin Ryde  <kevin@swox.se>
 27587  
 27588  	* README: Small updates.
 27589  	* NEWS: Add some things about 3.0.
 27590  
 27591  	* mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c.
 27592  
 27593  	* Makefile.am: Use -version-info on libraries, not -release.
 27594  
 27595  	* mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP.
 27596  	* mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c.
 27597  	* Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo.
 27598  	(libmp_la_DEPENDENCIES): Add mp_clz_tab.lo.
 27599  	* mpbsd/mdiv.c: Remove file.
 27600  
 27601  	* config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr,
 27602  	mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86,
 27603  	mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix:
 27604  	Remove configure fragments not used since change to autoconf.
 27605  
 27606  	* mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that
 27607  	internal functions are changeable and shouldn't be used directly.
 27608  
 27609  2000-04-15  Linus Nordberg  <linus@swox.se>
 27610  
 27611  	* configure.in: Remove debug output.
 27612  	* configure: Regenerate.
 27613  
 27614  2000-04-15  Torbjorn Granlund  <tege@swox.com>
 27615  
 27616  	* mpn/generic/tdiv_qr.c: Don't use alloca directly.
 27617  
 27618  	* mpz/tdiv_qr.c: Fix typo.
 27619  	* mpz/tdiv_r.c: Fix typo.
 27620  	* mpz/tdiv_q.c: Fix typo.
 27621  
 27622  	* configure.in: Disable -march=pentiumpro due to apparent compiler
 27623  	problems.
 27624  
 27625  	* mpz/powm.c: Replace with new code from Paul Zimmermann.
 27626  
 27627  	* mpz/tdiv_q.c: Remove debug code.
 27628  
 27629  	* mpn/generic/divrem.c: Remove C++ style `//' commented-out code.
 27630  	* mpn/generic/sb_divrem_mn.c: Likewise.
 27631  
 27632  2000-04-14  Torbjorn Granlund  <tege@swox.com>
 27633  
 27634  	* mpz/cdiv_q.c: Change temp allocation for new requirements of
 27635  	mpz_tdiv_qr.
 27636  	* mpz/fdiv_q.c: Likewise.
 27637  
 27638  	* mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3.
 27639  
 27640  	* mpz/dmincl.c: Delete file.
 27641  	* mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr.
 27642  	* mpz/tdiv_r.c: Likewise.
 27643  	* mpz/tdiv_q.c: Likewise.
 27644  
 27645  	* mpn/generic/tdiv_qr.c: New file.
 27646  	* mpn/generic/bz_divrem_n.c: New file.
 27647  	* mpn/generic/sb_divrem_mn.c: New file.
 27648  
 27649  	* gmp-impl.h (MPZ_REALLOC): New macro.
 27650  	(mpn_sb_divrem_mn): Declare.
 27651  	(mpn_bz_divrem_n): Declare.
 27652  	(mpn_tdiv_qr): Declare.
 27653  
 27654  	* configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n;
 27655  	add tdiv_qr, bz_divrem_n, and sb_divrem_mn.
 27656  	* mpn/generic/divrem_newt.c: Delete file.
 27657  	* mpn/generic/divrem_1n.c: Delete file.
 27658  
 27659  	* gmp.h (mpn_divrem_newton): Remove declaration.
 27660  	(mpn_divrem_classic): Remove declaration.
 27661  
 27662  	* gmp.h (mpn_divrem): Remove function definition.
 27663  	* mpn/generic/divrem.c: Replace mpn_divrem_classic with a
 27664  	mpn_divrem wrapper.
 27665  
 27666  2000-04-14  Kevin Ryde  <kevin@swox.se>
 27667  
 27668  	* mpf/dump.c, mpz/dump.c, mpn/generic/dump.c,
 27669  	mpn/generic/divrem.c, mpn/generic/divrem_1n.c,
 27670  	mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c,
 27671  	mpn/generic/mul.c, mpn/generic/mul_basecase.c,
 27672  	mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c,
 27673  	mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are
 27674  	changeable and shouldn't be used directly.
 27675  
 27676  	* mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an
 27677  	exception on zero divisor).
 27678  
 27679  	* mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function
 27680  	definitions.
 27681  	* mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul.
 27682  
 27683  	* gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX
 27684  	and ranlib on native SunOS.
 27685  	Particular systems notes about AIX and HPPA shared libraries
 27686  	disabled.
 27687  	(MP Basics): Add that undocumented things shouldn't be used.
 27688  	(Introduction to MP): Add to CPUs listed.
 27689  
 27690  	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C
 27691  	having "void".
 27692  
 27693  2000-04-13  Linus Nordberg  <linus@swox.se>
 27694  
 27695  	* mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function
 27696  	definition.
 27697  
 27698  	* configure.in: Disable shared libraries for hppa*.
 27699  	(mips-sgi-irix6.*): Fix flags for 64-bit gcc.
 27700  	(hppa2.0*-*-*): Prefer c89 to cc.
 27701  	* configure: Regenerate.
 27702  
 27703  	* gmp.h (gmp_randalg_t): Remove comma after last element.
 27704  
 27705  	* tests/rand/t-rand.c: Add copyright notice.
 27706  
 27707  2000-04-13  Kevin Ryde  <kevin@swox.se>
 27708  
 27709  	* mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c,
 27710  	mpz/remove.c, mpz/root.c: Add K&R function definitions.
 27711  	* mpz/rrandomb.c: Fix typo in K&R part.
 27712  	* stack-alloc.c: Add K&R style function pointer declarations.
 27713  
 27714  	* mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives.
 27715  	Use DIVIDE_BY_ZERO on a "zero'th" root.
 27716  
 27717  	* configure: Regenerate with autoconf backpatched to fix --srcdir
 27718  	absolute path wildcards that bash doesn't like, change by Linus.
 27719  
 27720  	* gmp.texi (Integer Arithmetic): Document mpz_nextprime.
 27721  	(Miscellaneous Integer Functions): Fix mpz_fits_* formatting.
 27722  	(Installing MP): Comment-out CC and CFLAGS description.
 27723  
 27724  2000-04-13  Linus Nordberg  <linus@swox.se>
 27725  
 27726  	* rand.c (gmp_randinit): Don't combine va_alist with ordinary
 27727  	arguments for non STDC.
 27728  
 27729  2000-04-13  Torbjorn Granlund  <tege@swox.com>
 27730  
 27731  	* mpz/nextprime.c: Use proper names of new random types and functions.
 27732  
 27733  	* mpz/rrandomb.c: New file.
 27734  	* mpz/Makefile.am: List it.
 27735  	* mpz/Makefile.in: Regenerate.
 27736  	* Makefile.am: Here too.
 27737  	* Makefile.in: Regenerate.
 27738  	* gmp.h: Declare mpz_rrandomb.
 27739  
 27740  2000-04-12  Linus Nordberg  <linus@swox.se>
 27741  
 27742  	* Makefile.am, demos/Makefile.am, mpbsd/Makefile.am,
 27743  	mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am,
 27744  	mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am,
 27745  	mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am,
 27746  	tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
 27747  
 27748  	* Makefile.in, demos/Makefile.in, mpbsd/Makefile.in,
 27749  	mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in,
 27750  	mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in,
 27751  	mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in,
 27752  	tests/rand/Makefile.in: Regenerate.
 27753  
 27754  2000-04-12  Linus Nordberg  <linus@swox.se>
 27755  
 27756  	* randlc.c (gmp_randinit_lc): Disable function.
 27757  	* gmp.texi (Random State Initialization): Remove gmp_randinit_lc.
 27758  
 27759  	* acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main
 27760  	successfully with `-n32' will have to suffice on irix6.
 27761  	* aclocal.m4: Regenerate.
 27762  
 27763  	* configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler.
 27764  	(mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64'
 27765  	for 64-bit `cc'.  Add options for gcc.
 27766  	* configure: Regenerate.
 27767  
 27768  	* mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'.  If
 27769  	'nbits' doesn't make even limbs, shift up result before
 27770  	normalizing.
 27771  
 27772  	* gmp.h (mpf_urandomb): Add parameter to prototype.
 27773  
 27774  	* mpf/urandom.c: Rename file to ...
 27775  	* mpf/urandomb.c: ... this.
 27776  	* Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo.
 27777  	* Makefile.in: Regenerate.
 27778  	* mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c.
 27779  	* mpf/Makefile.in: Regenerate.
 27780  
 27781  	* config.in: Regenerate for HAVE_DECL_OPTARG.
 27782  
 27783  	* randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB.
 27784  	(lc): Change return type.
 27785  	Use one temporary storage instead of two.
 27786  	Handle seed of size 0.
 27787  	Avoid modulus operation in some cases.
 27788  	Abort if M is not a power of 2.
 27789  	Fix bug with 64-bit limbs.
 27790  	Fix bug with small seed, small A and large M.
 27791  
 27792  	* tests/rand/gen.c (main): Include gmp.h.  Remove macros MIN, MAX.  Add
 27793  	option '-q'.  Don't demand argument N.  Change parameters in call
 27794  	to mpf_urandomb.
 27795  
 27796  	* tests/rand/t-rand.c: New file for testing random number generation.
 27797  
 27798  	* tests/rand/Makefile.am: Run t-rand for 'make check'.
 27799  	(test, bigtest): Rename to manual-test, manual-bigtest.
 27800  	* tests/rand/Makefile.in: Regenerate.
 27801  
 27802  2000-04-12  Kevin Ryde  <kevin@swox.se>
 27803  
 27804  	* gmp-impl.h: Include config.h before TMP_ALLOC, so
 27805  	--disable-alloca works.
 27806  
 27807  	* mpbsd/Makefile.am: Don't recompile top-level sources here.
 27808  	* Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead,
 27809  	add errno.lo and stack-alloc.lo.
 27810  
 27811  	* mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4.
 27812  	* gmp.texi (Installing MP): Update note on SunOS m4 failure.
 27813  
 27814  	* acconfig.h: Add copyright notice using @TOP@.
 27815  
 27816  	* stack-alloc.c: Use _mp_allocate_func, not malloc.
 27817  	* gmp.texi (Installing MP): Note this under --disable-alloca.
 27818  
 27819  	* gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs.
 27820  	(Integer Arithmetic): mpz_prime_p not yet implemented, comment out.
 27821  	(Float Arithmetic): mpf_pow_ui now implemented, uncomment-out.
 27822  	(Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc.
 27823  	(Low-level Functions): Add mpn_random2, with mpn_random.
 27824  
 27825  	* mpn/m68k/mc68020/udiv.S: Rename from udiv.s.
 27826  	* mpn/m68k/mc68020/umul.S: Ditto.
 27827  
 27828  	* mpn/alpha/umul.asm: Rename from umul.s, remove .file and
 27829  	compiler identifiers.
 27830  
 27831  	* mpn/powerpc32/syntax.h: Removed, no longer used.
 27832  
 27833  	* mpn/a29k/udiv.s: Remove .file and compiler identifiers.
 27834  	* mpn/a29k/umul.s: Ditto.
 27835  
 27836  	* mpn/tests/ref.c: Use WANT_ASSERT.
 27837  	* mpn/tests/ref.h: Use _PROTO.
 27838  
 27839  	* mpbsd/configure.in: Removed, no longer required.
 27840  
 27841  	* mpf/div.c: Use DIVIDE_BY_ZERO.
 27842  	* mpf/div_ui.c: Ditto.
 27843  	* mpf/ui_div.c: Ditto.
 27844  	* mpq/inv.c: Ditto.
 27845  	* mpf/sqrt.c: Use SQRT_OF_NEGATIVE.
 27846  	* mpz/sqrt.c: Ditto.
 27847  	* mpz/sqrtrem.c: Ditto.
 27848  
 27849  	* gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros.
 27850  	(DIVIDE_BY_ZERO): Use GMP_ERROR.
 27851  	(__mp_bases): #define to __MPN(mp_bases).
 27852  
 27853  2000-04-11  Linus Nordberg  <linus@swox.se>
 27854  
 27855  	* tests/rand/stat.c (main): Initialize `l1runs' at declaration.
 27856  
 27857  2000-04-11  Kevin Ryde  <kevin@swox.se>
 27858  
 27859  	* mpz/fib_ui.c: Add K&R function definitions.
 27860  
 27861  	* mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a
 27862  	shell problem with an empty "for tst in $(TESTS) ; ...".
 27863  	* mpbsd/tests/dummy.c: New file.
 27864  
 27865  2000-04-10  Torbjorn Granlund  <tege@swox.com>
 27866  
 27867  	* mpz/bin_uiui.c: Delete several unused variables.
 27868  	Add copyright notice.
 27869  	* mpz/bin_ui.c: Add copyright notice.
 27870  
 27871  	* longlong.h: Declare __count_leading_zeros for alpha.
 27872  
 27873  2000-04-10  Linus Nordberg  <linus@swox.se>
 27874  
 27875  	* rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...).
 27876  	* gmp.h: Change prototype accordingly.
 27877  	* mpz/pprime_p.c (millerrabin): Change call accordingly.
 27878  
 27879  	* configure.in: Check for `optarg'.
 27880  	* configure: Regenerate.
 27881  
 27882  	* mpn/Makefile.am: Remove incorrect comment.
 27883  	* mpn/Makefile.in: Regenerate.
 27884  
 27885  	* gmp.h: Rename most of the random number functions, structs and some
 27886  	of the struct members.
 27887  	* rand.c (gmp_randinit): Likewise.
 27888  	* randclr.c (gmp_randclear): Likewise.
 27889  	* randlc.c (gmp_randinit_lc): Likewise.
 27890  	* randlc2x.c (gmp_randinit_lc_2exp): Likewise.
 27891  	* randraw.c (lc): Likewise.
 27892  	(_gmp_rand_getraw): Likewise.
 27893  	* randsd.c (gmp_randseed): Likewise.
 27894  	* randsdui.c (gmp_randseed_ui): Likewise.
 27895  	* gmp.texi: Likewise.
 27896  
 27897  	* gmp.texi: Use three hyphens for a dash.
 27898  	(Low-level Functions): Remove documentation for gmp_rand_getraw.
 27899  	(Random Number Functions): Add info on where to find documentation
 27900  	on the random number functions.
 27901  
 27902  	* tests/rand/Makefile.am (test, bigtest): Quote argument to grep.
 27903  	* tests/rand/Makefile.in: Regenerate.
 27904  
 27905  	* tests/rand/gen.c: Declare optarg, optind, opterr if not already
 27906  	declared.
 27907  	(main): Use new names for the random stuff.
 27908  	(main): Don't use strtoul() if we don't have it.  Use strtol()
 27909  	instead, if we have it.  Otherwise, use atoi().
 27910  	(main): Use srandom/srandomdev for __FreeBSD__ only.
 27911  	(main): Use new parameter order to gmp_randinit().
 27912  
 27913  	* tests/rand/stat.c: Declare optarg, optind, opterr if not already
 27914  	declared.
 27915  
 27916  2000-04-10  Torbjorn Granlund  <tege@swox.com>
 27917  
 27918  	* mpz/pprime_p.c: Pass 0L for mpz_scan1.  mpz_mmod => mpz_mod.
 27919  	(millerrabin): Use new random interface.
 27920  	(millerrabin): ... and don't forget to call gmp_randclear.
 27921  
 27922  	* mpz/nextprime.c: New file.
 27923  	* gmp.h: Declare mpz_nextprime.
 27924  	* mpz/Makefile.am: List nextprime.c.
 27925  	* mpz/Makefile.in: Regenerate.
 27926  	* Makefile.am: List mpz/nextprime.lo.
 27927  	* Makefile.in: Regenerate.
 27928  
 27929  2000-04-10  Kevin Ryde  <kevin@swox.se>
 27930  
 27931  	* move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change,
 27932  	mpf/tests/move-if-change: Remove, no longer used.
 27933  
 27934  	* Makefile.am (SUBDIRS): Add tests, demos, mpbsd.
 27935  	(libmp.la): New target, conditional on WANT_MPBSD.
 27936  	(libgmp_la_LIBADD): Add -lm.
 27937  	(AUTOMAKE_OPTIONS): Add check-news.
 27938  	(include_HEADERS): Setup to install gmp.h and possibly mp.h.
 27939  	(DISTCLEANFILES): Add generated files.
 27940  	(check): Remove explicit target (now uses check-recursive).
 27941  
 27942  	* configure.in: Use AM_CONFIG_HEADER.
 27943  	Add --enable-mpbsd setting automake conditional WANT_MPBSD.
 27944  	Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile.
 27945  
 27946  	* mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now
 27947  	using AM_CONFIG_HEADER.
 27948  	* mpq/Makefile.am: Ditto.
 27949  	* mpf/Makefile.am: Ditto, and add DISTCLEANFILES.
 27950  	* mpn/Makefile.am: Shorten INCLUDES, amend some comments.
 27951  	* mpz/tests/Makefile.am: Use TESTS and $(top_builddir).
 27952  	* mpf/tests/Makefile.am: Ditto.
 27953  	* mpq/tests/Makefile.am: Ditto.
 27954  	* demos/Makefile.am: New file.
 27955  
 27956  	* mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in.
 27957  	* mpbsd/Makefile.in: Now generated from Makefile.am.
 27958  	* mpbsd/realloc.c: Removed, use mpz/realloc.c instead.
 27959  	* mpbsd/tests/Makefile.am: New file.
 27960  	* mpbsd/tests/Makefile.in: New file, generated from Makefile.am.
 27961  	* mpbsd/tests/allfuns.c: New file.
 27962  
 27963  	* gmp.texi (Top): Use @ifnottex, to help makeinfo --html.
 27964  	(Installing MP): Describe --enable-mpbsd and demo programs.
 27965  
 27966  	* tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs.
 27967  
 27968  	* tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la).
 27969  	(EXTRA_PROGRAMS): Not noinst_PROGRAMS.
 27970  	(INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER.
 27971  
 27972  2000-04-09  Torbjorn Granlund  <tege@swox.com>
 27973  
 27974  	* mpz/urandomm.c: Get type of count right.
 27975  	Simplify computation of nbits.
 27976  
 27977  2000-04-08  Torbjorn Granlund  <tege@swox.com>
 27978  
 27979  	* mpz/urandomb.c: Fix reallocation condition.
 27980  	Simplify size computation.
 27981  
 27982  2000-04-08  Linus Nordberg  <linus@swox.se>
 27983  
 27984  	* acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for
 27985  	HPUX.
 27986  	(GMP_CHECK_ASM_W32): Ditto.
 27987  	* aclocal.m4: Regenerate.
 27988  
 27989  	* mpn/Makefile.am: Use $(CCAS) for assembling.
 27990  	(.asm.obj): Add rule.
 27991  	* mpn/Makefile.in: Regenerate.
 27992  
 27993  	* gmp.texi (Miscellaneous Integer Functions): Fix typos.
 27994  
 27995  	* configure.in: Never pass `-h' to grep.
 27996  	(mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler.
 27997  	(hppa1.0*-*-*): New flag for cc.
 27998  	(hppa2.0*-*-*): Try to find 64-bit compiler.  Chose path, set
 27999  	CCAS.
 28000  	* configure: Regenerate.
 28001  
 28002  2000-04-08  Torbjorn Granlund  <tege@swox.com>
 28003  
 28004  	* mpz/bin_ui.c: Don't depend on ANSI C features.
 28005  	* mpz/bin_uiui.c: Likewise.
 28006  
 28007  	* Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*.
 28008  	(MPQ_OBJECTS): Add mpq/set_d.lo.
 28009  	(MPZ_OBJECTS): Add mpz/fits*.lo.
 28010  	* Makefile.in: Regenerate.
 28011  
 28012  	* mpz/cmpabs.c: New name for mpz/cmp_abs.c.
 28013  	* mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c.
 28014  	* mpz/Makefile.am: Corresponding changes.
 28015  	* mpz/Makefile.in: Regenerate.
 28016  	* gmp.h: mpz_cmp_abs* => mpz_cmpabs*.
 28017  
 28018  	* mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features.
 28019  
 28020  	* mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT.
 28021  
 28022  	* gmp.h (mpq_set_d): Declare correctly.
 28023  	(mpz_root): Use _PROTO.
 28024  	(mpz_remove): Use _PROTO.
 28025  	(mpf_pow_iu): Use _PROTO.
 28026  
 28027  	* mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change.
 28028  	* gmp.h (__MPN): Revert previous change.
 28029  
 28030  	* mpz/perfpow.c: De-ANSI-fy.  Add copyright notice.
 28031  
 28032  	* mpz/set_d.c: Misc cleanups.
 28033  
 28034  	* mpq/set_d: New file.
 28035  	* gmp.h: Declare mpq_set_d.
 28036  	* mpq/Makefile.am: List set_d.c.
 28037  	* mpq/Makefile.in: Regenerate.
 28038  
 28039  2000-04-07  Torbjorn Granlund  <tege@swox.com>
 28040  
 28041  	* mpz/fits_sint_p.c: New file.
 28042  	* mpz/fits_slong_p.c: New file.
 28043  	* mpz/fits_sshort_p.c: New file.
 28044  	* mpz/fits_uint_p.c: New file.
 28045  	* mpz/fits_ulong_p.c: New file.
 28046  	* mpz/fits_ushort_p.c: New file.
 28047  	* gmp.h: Declare mpz_fits_*.
 28048  	* mpz/Makefile.am: List fits_* files.
 28049  	* mpz/Makefile.in: Regenerate.
 28050  
 28051  2000-04-06  Kevin Ryde  <kevin@swox.se>
 28052  
 28053  	* gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4
 28054  	failure.
 28055  
 28056  	* mpn/x86/pentium/gmp-mparam.h: Tune thresholds.
 28057  	* mpn/x86/p6/gmp-mparam.h: Ditto.
 28058  	* mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME.
 28059  	* mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME.
 28060  
 28061  	* mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT.
 28062  	(mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD.
 28063  	(mpn_toom3_sqr_n): Eliminate second evaluate3.
 28064  
 28065  	* gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0.
 28066  	(tune_mul_threshold,tune_sqr_threshold): Conditionalize
 28067  	declarations on TUNE_PROGRAM_BUILD.
 28068  
 28069  	* mpn/generic/sqr_basecase.c: Add an assert.
 28070  
 28071  2000-04-05  Torbjorn Granlund  <tege@swox.com>
 28072  
 28073  	* gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but
 28074  	leave some commented out.
 28075  
 28076  	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize.
 28077  	(mpn_com_n): Optimize.
 28078  
 28079  	* gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency.
 28080  	* mpn/asm-defs.m4 (MPN_PREFIX): Likewise.
 28081  
 28082  	* gmp.h (GMP_ERROR_ALLOCATE): New errcode.
 28083  
 28084  	* gmp-impl.h (MPN_MUL_N_RECURSE): Delete.
 28085  	(MPN_SQR_RECURSE): Delete.
 28086  
 28087  	* gmp-impl.h (TARGET_REGISTER_STARVED): New define.
 28088  
 28089  	* gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN.
 28090  	(mpn_toom3_sqr_n): Likewise.
 28091  	(mpn_kara_mul_n): Likewise.
 28092  	(mpn_toom3_mul_n): Likewise.
 28093  	(mpn_reciprocal): Likewise.
 28094  
 28095  	* gmp-impl.h (__gmpn_mul_n): Remove declaration.
 28096  	(__gmpn_sqr): Likewise.
 28097  	* gmp.h (mpn_sqr_n): Declare/remap.
 28098  	* mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr.
 28099  
 28100  	* gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here...
 28101  	* gmp-impl.h: ...to here.
 28102  
 28103  2000-04-05  Linus Nordberg  <linus@swox.se>
 28104  
 28105  	* gmp.texi (Top): Add `Random Number Functions' to menu.
 28106  	(Introduction to MP): Fix typo.
 28107  	(MP Basics): Create menu for all sections.  Move `Random Number
 28108  	Functions' to its own chapter.  Add nodes for all sections.
 28109  	(Function Classes): Mention random generation functions under
 28110  	miscellaneous.
 28111  	(Miscellaneous Integer Functions): Update mpz_urandomb,
 28112  	mpz_urandomm.
 28113  	(Low-level Functions): Remove mpn_rawrandom.
 28114  	(Random State Initialization): Update.
 28115  
 28116  	* mpf/urandom.c (mpf_urandomb): Remove SIZE parameter.  Normalize
 28117  	result correctly.
 28118  
 28119  	* gmp.h (mpf_urandomb): Remove SIZE parameter.
 28120  
 28121  	* randraw.c (gmp_rand_getraw): Handle the case where (1) the LC
 28122  	scheme doesn't generate even limbs and (2) more than one LC
 28123  	invocation is necessary to produce the requested number of bits.
 28124  
 28125  2000-04-05  Torbjorn Granlund  <tege@swox.com>
 28126  
 28127  	* mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for
 28128  	any BITS_PER_MP_LIMB.
 28129  	(MP_LIMB_T_MAX): New.
 28130  	(mpn_divexact3_n): Remove.
 28131  	(interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n.
 28132  
 28133  2000-04-05  Kevin Ryde  <kevin@swox.se>
 28134  
 28135  	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test.
 28136  	(tune_mul_threshold,tune_sqr_threshold): Add declarations, used in
 28137  	development only.
 28138  
 28139  	* mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now.
 28140  
 28141  2000-04-04  Torbjorn Granlund  <tege@swox.com>
 28142  
 28143  	* gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default.
 28144  	(TOOM3_SQR_THRESHOLD): Provide default.
 28145  
 28146  	* mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley).
 28147  	* mpn/generic/mul.c: Rewrite (mostly by Robert Harley).
 28148  
 28149  	* configure.in (sparcv9 64-bit OS): Set extra_functions.
 28150  
 28151  2000-04-04  Linus Nordberg  <linus@swox.se>
 28152  
 28153  	* mpn/generic/rawrandom.c: Remove file and replace with randraw.c
 28154  	on top level.
 28155  	(mpn_rawrandom): Rename to gmp_rand_getraw.
 28156  
 28157  	* randraw.c: New file; essentially a copy of
 28158  	mpn/generic/rawrandom.c.
 28159  	(gmp_rand_getraw): New function (formerly known as mpn_rawrandom).
 28160  
 28161  	* mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom -->
 28162  	gmp_rand_getraw.
 28163  	* mpz/urandomm.c (mpz_urandomb): Ditto.
 28164  	* mpf/urandom.c (mpf_urandomb): Ditto.
 28165  
 28166  	* gmp.h (gmp_rand_getraw): Add function prototype.
 28167  	(mpn_rawrandom): Remove function prototype.
 28168  
 28169  	* Makefile.am (libgmp_la_SOURCES): Add randraw.c.
 28170  	* Makefile.in: Regenerate.
 28171  
 28172  	* configure.in (gmp_mpn_functions): Remove rawrandom.
 28173  	* configure: Regenerate.
 28174  
 28175  2000-04-04  Linus Nordberg  <linus@swox.se>
 28176  
 28177  	* gmp.h (GMP_ERROR enum): Remove comma after last enumeration
 28178  	since the AIX compiler (xlc) doesn't like that.
 28179  
 28180  	* randlc.c (gmp_rand_init_lc): Allocate enough space for seed to
 28181  	hold any upcoming seed.
 28182  	* randlc2x.c (gmp_rand_init_lc_2exp): Likewise.
 28183  
 28184  	* mpn/generic/rawrandom.c: Remove debugging code.
 28185  	(mpn_lc): Don't reallocate seed.
 28186  
 28187  	* mpz/urandomm.c (mpz_urandomm): Implement function.
 28188  
 28189  	* mpz/urandomb.c (mpz_urandomb): Fix typo in function definition.
 28190  
 28191  2000-04-04  Kevin Ryde  <kevin@swox.se>
 28192  
 28193  	* make.bat: Removed (no longer works, no longer supported).
 28194  	* mpn/msdos/asm-syntax.h: Removed (was used only by make.bat).
 28195  
 28196  2000-04-03  Torbjorn Granlund  <tege@swox.com>
 28197  
 28198  	* mpn/generic/brandom.c: New file, replacing random2.
 28199  
 28200  2000-04-02  Torbjorn Granlund  <tege@swox.com>
 28201  
 28202  	* mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions
 28203  	into their plain counterparts.
 28204  
 28205  	* mpn/sparc64/copyi.asm: Avoid executing ALIGN.
 28206  
 28207  	* mpn/sparc64/mul_1.asm: Handle overlap of rp/sp.
 28208  	* mpn/sparc64/addmul_1.asm: Likewise.
 28209  	* mpn/sparc64/submul_1.asm: Likewise.
 28210  
 28211  2000-04-01  Linus Nordberg  <linus@swox.se>
 28212  
 28213  	* gmp.h: Fix function prototypes for randomization functions.
 28214  	(__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove
 28215  	unused `bits'.
 28216  	(__gmp_rand_data_lc): Add `m2exp' as another way of representing
 28217  	the modulus.
 28218  	(__gmp_rand_state_struct): Remove unused `size'.
 28219  
 28220  	* rand.c (__gmp_rand_scheme): Use better multipliers.  Remove test
 28221  	schemes.  Replace `m' with `m2exp'.
 28222  	(gmp_rand_init): Change parameters and return type.  Use `m2exp'
 28223  	instead of `m'.  Set `gmp_errno' on error.  Disable BBS algorithm.
 28224  
 28225  	* randlc.c (gmp_rand_init_lc): Don't use malloc().  Change
 28226  	parameters.
 28227  
 28228  	* randclr.c (gmp_rand_clear): Don't use free().  Disable BBS
 28229  	algorithm.  Set `gmp_errno' on error.
 28230  
 28231  	* randlc2x.c (gmp_rand_init_lc_2exp): New function.
 28232  	* randsd.c (gmp_rand_seed): New function.
 28233  	* randsdui.c (gmp_rand_seed_ui): New function.
 28234  	* randlcui.c: Remove unused file.
 28235  
 28236  	* mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite.
 28237  	(mpn_lc): New static function.
 28238  
 28239  	* mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for
 28240  	determining size of ROP.
 28241  
 28242  	* mpf/urandom.c (mpf_urandomb): Add third parameter, nbits.  (Not
 28243  	used yet!)
 28244  	Change parameter order to mpn_rawrandom().
 28245  
 28246  	* Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c,
 28247  	randsd.c, randsdui.c.  Remove randui.c.
 28248  	(MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo.  Add urandomm.lo.
 28249  	* Makefile.in: Regenerate.
 28250  
 28251  	* mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c -->
 28252  	urandomb.c.  Add urandomm.c.
 28253  	* mpz/Makefile.in: Regenerate.
 28254  
 28255  	* tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc.
 28256  	Add gen.static.
 28257  	* tests/rand/Makefile.in: Regenerate.
 28258  
 28259  	* tests/rand/gen.c (main): Add mpz_urandomm.  Add command line options
 28260  	`-C', `-m', extend `-a'.  Use *mp*_*rand*() with new parameters.  Call
 28261  	gmp_rand_seed().
 28262  
 28263  2000-04-01  Kevin Ryde  <kevin@swox.se>
 28264  
 28265  	* acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux.
 28266  	* configure.in (CCAS): No CFLAGS, they're added when it's used.
 28267  	(CONFIG_SRCDIR): New define for config.m4.
 28268  	* mpn/sparc64/addmul_1.asm: Use it for an include().
 28269  	* mpn/sparc64/submul_1.asm: Ditto.
 28270  	* mpn/sparc64/mul_1.asm: Ditto.
 28271  
 28272  2000-03-31  Linus Nordberg  <linus@swox.se>
 28273  
 28274  	* mpz/urandom.c: Rename to...
 28275  	* mpz/urandomb.c: ...this.
 28276  
 28277  	* mpz/urandomb.c (mpz_urandomb): Change operand order in call to
 28278  	mpn_rawrandom().  Use ABSIZ() instead of SIZ() when checking size
 28279  	of ROP.
 28280  
 28281  	* mpz/urandomm.c: New file.
 28282  
 28283  2000-03-31  Kevin Ryde  <kevin@swox.se>
 28284  
 28285  	* acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code
 28286  	will be omitted.
 28287  
 28288  2000-03-30  Torbjorn Granlund  <tege@swox.com>
 28289  
 28290  	* mpn/sparc64/mul_1h.asm: New file.
 28291  	* mpn/sparc64/addmul_1h.asm: New file.
 28292  	* mpn/sparc64/submul_1h.asm: New file.
 28293  	* mpn/sparc64/mul_1.asm: Rewrite.
 28294  	* mpn/sparc64/addmul_1.asm: Rewrite.
 28295  	* mpn/sparc64/submul_1.asm: Rewrite.
 28296  
 28297  2000-03-28  Torbjorn Granlund  <tege@swox.com>
 28298  
 28299  	* mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction.
 28300  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 28301  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 28302  
 28303  2000-03-25  Kevin Ryde  <kevin@swox.se>
 28304  
 28305  	* mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom,
 28306  	fontify more keywords, turn into a standalone mode.
 28307  
 28308  	* stamp-vti: New file, generated together with version.texi.
 28309  
 28310  	* acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros.
 28311  	* configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION.
 28312  
 28313  2000-03-24  Kevin Ryde  <kevin@swox.se>
 28314  
 28315  	* INSTALL: Updates for new configure system.
 28316  
 28317  	* configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu
 28318  	and -march.
 28319  
 28320  2000-03-23  Torbjorn Granlund  <tege@swox.com>
 28321  
 28322  	* demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs
 28323  	for ROOT.
 28324  
 28325  2000-03-23  Kevin Ryde  <kevin@swox.se>
 28326  
 28327  	* config.guess (i?86:*:*:*): Use uname -m if detection program fails.
 28328  
 28329  	* mpn/x86/README: Remove remarks on the now implemented MMX shifts.
 28330  	* mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1.
 28331  
 28332  	* gmp.texi (Installing MP): Corrections to target CPUs.
 28333  
 28334  	* version.c: Use VERSION from config.h, add copyright comment,
 28335  	restore "const" somehow lost.
 28336  
 28337  	* configure.in (a29k*-*-*): Fix directory name.
 28338  
 28339  2000-03-22  Torbjorn Granlund  <tege@swox.com>
 28340  
 28341  	* demos/pexpr.c (op_t): Add ROOT.
 28342  	(fns): Add ROOT.
 28343  	(mpz_eval_expr): Add ROOT.
 28344  
 28345  	* mpz/root.c: Handle roots of negative numbers.
 28346  	Fix other border cases.
 28347  	Fix rare memory leakage.
 28348  
 28349  	* errno.c: New file.
 28350  
 28351  2000-03-21  Torbjorn Granlund  <tege@swox.com>
 28352  
 28353  	* gmp.h (error number enum): New anonymous enum.
 28354  	(gmp_errno): New.
 28355  
 28356  	* gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0.
 28357  
 28358  2000-03-20  Torbjorn Granlund  <tege@swox.com>
 28359  
 28360  	* mpn/alpha/unicos.m4 (FLOAT64): New define.
 28361  	* mpn/alpha/default.m4 (FLOAT64): New define.
 28362  	* mpn/alpha/invert_limb.asm (C36): Use FLOAT64.
 28363  
 28364  2000-03-21  Kevin Ryde  <kevin@swox.se>
 28365  
 28366  	* mpn/x86/k6/diveby3.asm: Tiny speedup.
 28367  
 28368  	* acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro.
 28369  	* configure.in: Use it, set WANT_SHLDL_CL in config.m4.
 28370  	* mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using
 28371  	WANT_SHLDL_CL.
 28372  	* mpn/x86/k6/mmx/lshift.asm: Use shldl macro.
 28373  	* mpn/x86/k7/mmx/lshift.asm: Ditto.
 28374  	* mpn/x86/pentium/mmx/lshift.asm: Ditto.
 28375  	* mpn/x86/k6/mmx/rshift.asm: Use shrdl macro.
 28376  	* mpn/x86/k7/mmx/rshift.asm: Ditto.
 28377  	* mpn/x86/pentium/mmx/rshift.asm: Ditto.
 28378  	* mpn/x86/README.family: Add a note about this.
 28379  
 28380  2000-03-20  Linus Nordberg  <linus@swox.se>
 28381  
 28382  	* mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0
 28383  	correctly.
 28384  
 28385  	* configure.in: Fix detection of alpha flavour.
 28386  	Set compiler options for `sparcv8'.
 28387  	* configure: Regenerate.
 28388  
 28389  	* rand.c (__gmp_rand_scheme): Clean up some.  Use slightly better
 28390  	multipliers.
 28391  
 28392  	* configure.in (AC_OUTPUT): Add tests/Makefile and
 28393  	tests/rand/Makefile.
 28394  
 28395  	* acinclude.m4 (AC_CANONICAL_BUILD): Define to
 28396  	`_AC_CANONICAL_BUILD' to deal with incompatibilities between
 28397  	Autoconf and Libtool.
 28398  	(AC_CHECK_TOOL_PREFIX): Likewise.
 28399  
 28400  	* Makefile.am (EXTRA_DIST): Add directory `tests'.
 28401  
 28402  	* mkinstalldirs: Update (Automake 2000-03-17).
 28403  	* ltconfig: Update (Libtool 2000-03-17).
 28404  	* ltmain.sh: Ditto.
 28405  
 28406  	* configure: Regenerate with new autoconf/-make/libtool suite.
 28407  	* aclocal.m4: Ditto.
 28408  	* config.in: Ditto.
 28409  	* all Makefile.in's: Ditto.
 28410  
 28411  2000-03-20  Torbjorn Granlund  <tege@swox.com>
 28412  
 28413  	* demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'.
 28414  
 28415  	* mpn/alpha/unicos.m4 (cvttqc): New define.
 28416  	* mpn/alpha/invert_limb.asm: Use new define for cvttqc.
 28417  
 28418  2000-03-19  Kevin Ryde  <kevin@swox.se>
 28419  
 28420  	* mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case.
 28421  
 28422  	* gmp.texi: Use @include version.texi.
 28423  	Use @email and @uref.
 28424  	(Installing MP): Rewrite for new configure.
 28425  	(Low-level Functions): Add mpn_divexact_by3.
 28426  
 28427  	* configure.in (--enable-alloca): New option.
 28428  	* acconfig.h (USE_STACK_ALLOC): For --disable-alloca.
 28429  
 28430  2000-03-18  Kent Boortz  <kent@swox.com>
 28431  
 28432  	* macos: New directory with macos port files.
 28433  
 28434  2000-03-17  Torbjorn Granlund  <tege@swox.com>
 28435  
 28436  	* gmp-impl.h (union ieee_double_extract): Check _CRAYMPP.
 28437  
 28438  	* mpn/asm-defs.m4 (invert_normalized_limb): Define.
 28439  
 28440  	* mpn/alpha: Translate `.s' files to `.asm'.
 28441  
 28442  	* configure: Regenerate.
 28443  
 28444  	* mpn/alpha/invert_limb.asm: Replace dash in file name with underscore.
 28445  	* configure.in: Corresponding change.
 28446  
 28447  	* configure.in: Assign special "path" for alphaev6.
 28448  
 28449  	* mpn/alpha/unicos.m4: New file.
 28450  	* configure.in (alpha*-cray-unicos*): [This part of the change
 28451  	commited 2000-03-13 by linus]
 28452  	* mpn/alpha/default.m4: New file.
 28453  	* configure.in (alpha*-*-*): Use it.
 28454  
 28455  2000-03-17  Kevin Ryde  <kevin@swox.se>
 28456  
 28457  	* mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for
 28458  	shift-by-1 case, significant speedup.
 28459  	* mpn/x86/pentium/README: Add shift-by-1 speed.
 28460  
 28461  2000-03-16  Torbjorn Granlund  <tege@swox.com>
 28462  
 28463  	* config.guess: Handle Cray T3D/E.
 28464  
 28465  2000-03-15  Kevin Ryde  <kevin@swox.se>
 28466  
 28467  	* mpn/generic/diveby3.c: New file.
 28468  	* mpn/x86/diveby3.asm: New file.
 28469  	* mpn/x86/k6/diveby3.asm: New file.
 28470  	* gmp.h (mpn_divexact_by3): Prototype and define.
 28471  	* mpn/asm-defs.m4: define_mpn(divexact_by3).
 28472  	* configure.in (gmp_mpn_functions): Add diveby3.
 28473  
 28474  	* mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes.
 28475  
 28476  	* configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)).
 28477  	* gmp-impl.h (ASSERT): Use them.
 28478  
 28479  	* mpn/x86/k7/mmx/lshift.asm: New file.
 28480  	* mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value
 28481  	handling, add some pictures.
 28482  
 28483  2000-03-14  Torbjorn Granlund  <tege@swox.com>
 28484  
 28485  	* mpn/sparc32/v8/mul_1.asm: Make PIC actually work.
 28486  	* mpn/sparc32/v8/addmul_1.asm: Likewise.
 28487  
 28488  	* mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if.
 28489  	* mpn/sparc32/v8/addmul_1.asm: Likewise.
 28490  
 28491  	* mpn/asm-defs.m4 (C): New define for comments.
 28492  	* mpn/sparc32: Start comments with `C'.
 28493  
 28494  	* config.guess: Remove `SunOS 6' handling.
 28495  	Recognize sun4m and sun4d architectures under old SunOS.
 28496  
 28497  2000-03-14  Linus Nordberg  <linus@swox.se>
 28498  
 28499  	* configure.in (gmp_srclinks): Set to list of links created by
 28500  	configure.
 28501  	* configure: Regenerate.
 28502  
 28503  	* Makefile.am (libgmp_la_LDFLAGS): Set version info.
 28504  	(DISTCLEANFILES): Include @gmp_srclinks@.
 28505  	* Makefile.in: Regenerate.
 28506  
 28507  2000-03-13  Linus Nordberg  <linus@swox.se>
 28508  
 28509  	* configure.in: Remove some changequote's by quoting the strings
 28510  	containing `[]'.
 28511  	Add support for `alpha*-cray-unicos*'.
 28512  	AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS.
 28513  	Conditionalize the assembler syntax checks.
 28514  	* configure: Regenerate.
 28515  	* config.in: Regenerate.
 28516  
 28517  	* acinclude.m4 (GMP_PROG_CCAS): Remove macro.
 28518  	* aclocal.m4: Regenerate.
 28519  
 28520  2000-03-13  Kevin Ryde  <kevin@swox.se>
 28521  
 28522  	* mpn/x86/p6/README: New file.
 28523  
 28524  	* mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster.
 28525  
 28526  	* mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and
 28527  	handling.
 28528  
 28529  	* configure.in: Separate mmx directories for each x86 flavour.
 28530  	* configure: Regenerate.
 28531  
 28532  2000-03-12  Kevin Ryde  <kevin@swox.se>
 28533  
 28534  	* mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from
 28535  	config.m4 so as to pad with nops not zeros on old gas.
 28536  
 28537  	* mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias
 28538  	for emms now).
 28539  	* mpn/x86/k7/mmx/copyi.asm: Ditto.
 28540  	* mpn/x86/k7/mmx/rshift.asm: Ditto.
 28541  	* mpn/x86/x86-defs.m4: Amend comments.
 28542  
 28543  	* mpn/x86/mod_1.asm: Add comments on speeds.
 28544  
 28545  	* mpn/x86/pentium/mmx/lshift.asm: New file.
 28546  	* mpn/x86/pentium/mmx/rshift.asm: New file.
 28547  	* mpn/x86/pentium/README: Add speeds of various routines.
 28548  
 28549  2000-03-10  Linus Nordberg  <linus@swox.se>
 28550  
 28551  	* configure.in: Reorganize.
 28552  	Use AC_CHECK_TOOL to find `ar'.
 28553  	Add post-includes `regmap.m4' and `aix.m4' for AIX targets.
 28554  	asm-syntax.h is not needed for PPC or sparc anymore.
 28555  	(powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64
 28556  	-qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc.  Pass `-X
 28557  	64' to `ar' and `nm'.
 28558  	(pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if
 28559  	assembler is not MMX capable.
 28560  	(pentium[23]): Likewise.
 28561  	(athlon): Likewise.
 28562  	(k6*): Likewise.
 28563  	* configure: Regenerate.
 28564  
 28565  	* acinclude.m4 (GMP_PROG_CC_WORKS): New macro.
 28566  	(GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of
 28567  	AC_TRY_COMPILER.  Make sure that the *first* working 32-bit
 28568  	compiler is used if no 64-bit compiler is found.
 28569  	(GMP_CHECK_ASM_MMX): New macro.
 28570  	* aclocal.m4: Regenerate.
 28571  
 28572  	* Makefile.in: Regenerate.  (CC_TEST removed.)
 28573  	* mpf/Makefile.in: Likewise.
 28574  	* mpn/Makefile.in: Likewise.
 28575  	* mpq/Makefile.in: Likewise.
 28576  	* mpz/Makefile.in: Likewise.
 28577  	* mpf/tests/Makefile.in: Likewise.
 28578  	* mpq/tests/Makefile.in: Likewise.
 28579  	* mpz/tests/Makefile.in: Likewise.
 28580  
 28581  	* acconfig.h (_LONG_LONG_LIMB): Add.
 28582  
 28583  	* gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined.
 28584  
 28585  2000-03-09  Kevin Ryde  <kevin@swox.se>
 28586  
 28587  	* mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI.
 28588  
 28589  	* mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl.
 28590  	* mpn/x86/k7/mmx/copyi.asm: Ditto.
 28591  	* mpn/x86/k7/mul_basecase.asm: Ditto.
 28592  
 28593  2000-03-07  Torbjorn Granlund  <tege@swox.com>
 28594  
 28595  	* config.guess: Better recognize POWER/PowerPC processor type.
 28596  
 28597  2000-03-07  Kevin Ryde  <kevin@swox.se>
 28598  
 28599  	* mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h.
 28600  
 28601  	* mpn/asm-defs.m4: Add comments about SysV m4.
 28602  	(m4_log2): Don't use <<.
 28603  	(m4_lshift,m4_rshift): New macros.
 28604  
 28605  2000-03-06  Torbjorn Granlund  <tege@swox.com>
 28606  
 28607  	* mpn/powerpc32/regmap.m4: Map cr0 => `0', etc.
 28608  
 28609  2000-03-06  Kevin Ryde  <kevin@swox.se>
 28610  
 28611  	* mpn/tests/ref.c (refmpn_divexact_by3): New function.
 28612  	* mpn/tests/ref.h: Prototype.
 28613  
 28614  	* acconfig.h (WANT_ASSERT): New define.
 28615  	* configure.in (--enable-assert): Turn on WANT_ASSERT.
 28616  	* assert.c: New file.
 28617  	* Makefile.am: Add to build.
 28618  	* gmp-impl.h (ASSERT): New macro.
 28619  	(ASSERT_NOCARRY) Renamed from assert_nocarry.
 28620  	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS.
 28621  	* mpn/tests/ref.c: Use ASSERT.
 28622  	* mpf/get_str.c: Use ASSERT_ALWAYS.
 28623  	* mpf/set_str.c: Remove old assert macro.
 28624  
 28625  	* mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro.
 28626  	* mpn/x86/p6/aorsmul_1.asm: Use cmov.
 28627  
 28628  	* mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code
 28629  	change, testb was still getting generated.
 28630  	* mpn/x86/rshift.S: Ditto.
 28631  
 28632  2000-03-03  Torbjorn Granlund  <tege@swox.com>
 28633  
 28634  	* longlong.h: Add IA-64 support.
 28635  
 28636  	* mpn/powerpc32: Misc cleanups.
 28637  	* mpn/powerpc32/aix.m4: New file (mainly by Linus).
 28638  	* mpn/powerpc64/aix.m4: New file (mainly by Linus).
 28639  	* mpn/powerpc64: Translate `.S' files to `.asm'.
 28640  
 28641  	* configure.in: Fix tyops.
 28642  	* configure: Regenerate.
 28643  
 28644  2000-03-02  Torbjorn Granlund  <tege@swox.com>
 28645  
 28646  	* mpn/powerpc32/regmap.m4: New file.
 28647  	* mpn/powerpc32: Translate `.S' files to `.asm'.
 28648  	* configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets
 28649  	except some weird ones.
 28650  
 28651  2000-03-03  Kevin Ryde  <kevin@swox.se>
 28652  
 28653  	* mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in
 28654  	filladapt.
 28655  
 28656  	* mpn/x86/pentium/sqr_basecase.asm: New file.
 28657  	* mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update.
 28658  
 28659  	* configure.in: Add --enable-assert, enable k6 logops functions.
 28660  
 28661  	* mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as.
 28662  	* mpn/x86/k6/mmx/copyd.asm: Ditto.
 28663  	* mpn/x86/README.family: Add a note on this.
 28664  
 28665  2000-03-02  Kevin Ryde  <kevin@swox.se>
 28666  
 28667  	* mpn/x86/k6/aors_n.asm: Don't use stosl.
 28668  	* mpn/x86/copyi.asm: Use cld to clear direction flag.
 28669  	* mpn/x86/divrem_1.asm: Ditto.
 28670  	* mpn/x86/README.family: Add a note on this.
 28671  
 28672  	* mpn/x86/k6/mmx/copyi.asm: Rewrite.
 28673  	* mpn/x86/k6/mmx/copyd.asm: New file.
 28674  	* mpn/x86/k6/README: Update, and small amendments.
 28675  
 28676  	* mpn/x86/x86-defs.m4 (Zdisp): New macro.
 28677  	* mpn/asm-defs.m4 (m4_stringequal_p): New macro.
 28678  
 28679  	* mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements.
 28680  	* mpn/x86/k6/aorsmul_1.asm: Ditto.
 28681  	* mpn/x86/k6/mul_1.asm: Ditto.
 28682  	* mpn/x86/k6/mul_basecase.asm: Ditto.
 28683  	* mpn/x86/k7/aors_n.asm: Ditto.
 28684  	* mpn/x86/k7/aorsmul_1.asm: Ditto.
 28685  	* mpn/x86/k7/mul_1.asm: Ditto.
 28686  	* mpn/x86/k7/mul_basecase.asm: Ditto.
 28687  	* mpn/x86/README.family: Add a note on this.
 28688  
 28689  2000-02-27  Kevin Ryde  <kevin@swox.se>
 28690  
 28691  	* mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc
 28692  	2.7.2.3 i386 register handling bug.
 28693  
 28694  	* mpn/x86/k6/aors_n.asm: Rewrite.
 28695  	* mpn/x86/k6/mmx/lshift.asm: Rewrite.
 28696  	* mpn/x86/k6/mmx/rshift.asm: Rewrite.
 28697  	* mpn/x86/k6/README: Update.
 28698  
 28699  	* mpn/x86/k7/mmx/copyd.asm: Support size==0.
 28700  	* mpn/x86/k7/mmx/copyi.asm: Ditto.
 28701  	* mpn/x86/k6/mmx/copyi.asm: Ditto.
 28702  	* gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and
 28703  	MPN_COPY_DECR.
 28704  	* configure.in: Enable x86 copyi, copyd; add k6 com_n.
 28705  
 28706  2000-02-25  Torbjorn Granlund  <tege@swox.com>
 28707  
 28708  	* demos/pexpr.c (power): Move factorial handing code from `factor'
 28709  	to `power'.
 28710  
 28711  	* demos/factorize.c (factor_using_pollard_rho): Move resetting of `c'
 28712  	to before checking for a non-zero gcd.
 28713  
 28714  2000-02-25  Kevin Ryde  <kevin@swox.se>
 28715  
 28716  	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus.
 28717  	* mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE.
 28718  	* mpn/x86/k6/aorsmul_1.asm: Ditto.
 28719  	* mpn/x86/k7/aors_n.asm: Ditto.
 28720  	* mpn/x86/k7/aorsmul_1.asm: Ditto.
 28721  	* mpn/x86/p6/aorsmul_1.asm: Ditto.
 28722  
 28723  	* mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0.
 28724  
 28725  	* gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n,
 28726  	mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here
 28727  	from gmp.h.  Use HAVE_NATIVE_mpn_* to make these functions or
 28728  	inlines.
 28729  
 28730  	* gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h.
 28731  	* gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available.
 28732  	* gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available.
 28733  
 28734  	* mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory.
 28735  	* mpn/x86/k6/mmx/copyi.asm: Ditto.
 28736  	* mpn/x86/k6/mmx/lshift.asm: Ditto.
 28737  	* mpn/x86/k6/mmx/rshift.asm: Ditto.
 28738  	* mpn/x86/k7/mmx/rshift.asm: Ditto.
 28739  	* mpn/x86/k6/mmx/logops_n.asm: New file.
 28740  	* configure.in (k6*-*-*): Add logops_n.asm.
 28741  	* mpn/x86/k6/README: Update.
 28742  
 28743  	* mpn/x86/k7/mmx/copyi.asm: New file.
 28744  	* mpn/x86/k7/mmx/copyd.asm: New file.
 28745  	* mpn/x86/k7/README: Update.
 28746  
 28747  2000-02-24  Kevin Ryde  <kevin@swox.se>
 28748  
 28749  	* mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available.
 28750  	* mpn/x86/x86-defs.m4 (FRAME_popl): New macro.
 28751  
 28752  	* Makefile.am: Add info_TEXINFOS = gmp.texi
 28753  
 28754  	* mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0,
 28755  	conditionalize loop versus decl/jnz.
 28756  	* mpn/x86/mod_1.asm: Ditto.
 28757  	* mpn/x86/divmod_1.asm: Removed.
 28758  	* gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed.
 28759  	* mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0.
 28760  
 28761  	* mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement
 28762  	expression problem.
 28763  	* mpn/x86/k6/aorsmul_1.asm: Ditto.
 28764  	* mpn/x86/k6/mul_1.asm: Ditto.
 28765  	* mpn/x86/k6/mul_basecase.asm: Ditto
 28766  	* mpn/x86/k7/aors_n.asm: Ditto.
 28767  	* mpn/x86/k7/aorsmul_1.asm: Ditto.
 28768  	* mpn/x86/k7/mul_1.asm: Ditto.
 28769  	* mpn/x86/k7/mul_basecase.asm: Ditto.
 28770  	* mpn/x86/k7/rshift.asm: Ditto.
 28771  	* mpn/x86/p6/aorsmul_1.asm: Ditto.
 28772  	* mpn/x86/README.family: Describe problem.
 28773  
 28774  2000-02-24  Linus Nordberg  <linus@swox.se>
 28775  
 28776  	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to
 28777  	testcase to avoid nm failure.  Try nm before piping to grep.
 28778  
 28779  	* acconfig.h: Undef HAVE_NATIVE_func for every mpn function found
 28780  	in gmp.h.
 28781  
 28782  	* configure.in: Invoke AC_CONFIG_HEADERS.
 28783  	Don't invoke AM_CONFIG_HEADER; it makes autoconf confused.
 28784  	Dig out entry points declared in assembly code and AC_DEFINE proper
 28785  	HAVE_NATIVE_func.
 28786  
 28787  	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro.
 28788  
 28789  	* mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE.
 28790  	* mpn/x86/k6/aors_n.asm: Likewise.
 28791  
 28792  	* Makefile.am (EXTRA_DIST): Add config.in; needed when we don't
 28793  	use AM_CONFIG_HEADER in configure.in.
 28794  
 28795  	* mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and
 28796  	gmp-mparam.h.
 28797  	* mpf/Makefile.am: Likewise.
 28798  	* mpq/Makefile.am: Likewise.
 28799  	* mpz/Makefile.am: Likewise.
 28800  
 28801  	* mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and
 28802  	gmp-mparam.h.
 28803  	* mpq/tests/Makefile.am: Likewise.
 28804  	* mpz/tests/Makefile.am: Likewise.
 28805  
 28806  	* configure: Regenerate.
 28807  	* aclocal.m4: Regenerate.
 28808  	* config.in: Regenerate.
 28809  	* Makefile.in: Regenerate.
 28810  	* mpf/Makefile.in: Regenerate.
 28811  	* mpn/Makefile.in: Regenerate.
 28812  	* mpq/Makefile.in: Regenerate.
 28813  	* mpz/Makefile.in: Regenerate.
 28814  	* mpf/tests/Makefile.in: Regenerate.
 28815  	* mpq/tests/Makefile.in: Regenerate.
 28816  	* mpz/tests/Makefile.in: Regenerate.
 28817  
 28818  2000-02-23  Kevin Ryde  <kevin@swox.se>
 28819  
 28820  	* mpn/x86/addmul_1.S: Amend comments, this code no longer used by
 28821  	PentiumPro.
 28822  	* mpn/x86/submul_1.S: Ditto.
 28823  
 28824  	* mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed.
 28825  
 28826  	* mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and
 28827  	.size for ELF.  Rename #define size to n to avoid .size.
 28828  	* mpn/x86/lshift.S: Ditto.
 28829  	* mpn/x86/mul_1.S: Ditto.
 28830  	* mpn/x86/mul_basecase.S: Ditto.
 28831  	* mpn/x86/rshift.S: Ditto.
 28832  	* mpn/x86/submul_1.S: Ditto.
 28833  	* mpn/x86/udiv.S: Ditto.
 28834  	* mpn/x86/umul.S: Ditto.
 28835  	* mpn/x86/pentium/add_n.S: Ditto.
 28836  	* mpn/x86/pentium/addmul_1.S: Ditto.
 28837  	* mpn/x86/pentium/lshift.S: Ditto.
 28838  	* mpn/x86/pentium/mul_1.S: Ditto.
 28839  	* mpn/x86/pentium/mul_basecase.S: Ditto.
 28840  	* mpn/x86/pentium/rshift.S: Ditto.
 28841  	* mpn/x86/pentium/sub_n.S: Ditto.
 28842  	* mpn/x86/pentium/submul_1.S: Ditto.
 28843  
 28844  2000-02-22  Linus Nordberg  <linus@swox.se>
 28845  
 28846  	* acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for
 28847  	post-defines.
 28848  	(GMP_FINISH): Ditto.
 28849  	(GMP_DEFINE): Add third optional argument specifying location in
 28850  	outfile.
 28851  	(GMP_DEFINE_RAW): New macro.
 28852  	* aclocal.m4: Regenerate.
 28853  
 28854  	* configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using
 28855  	GMP_DEFINE_RAW.
 28856  	* configure: Regenerate.
 28857  
 28858  	* mpz/tests/Makefile.am: New test t-root.
 28859  	* mpz/tests/Makefile.in: Regenerate.
 28860  
 28861  2000-02-22  Torbjorn Granlund  <tege@swox.com>
 28862  
 28863  	* mpz/root.c: Complete rewrite; still primitive, but at least correct.
 28864  	* mpz/tests/t-root.c: New test.
 28865  
 28866  2000-02-22  Kevin Ryde  <kevin@swox.se>
 28867  
 28868  	* mpn/x86/k7/mul_basecase.asm: New file.
 28869  	* mpn/x86/k7/README: Add mpn_mul_basecase speed.
 28870  	* mpn/x86/k7/gmp-mparam.h: New file.
 28871  
 28872  	* mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros.
 28873  	* mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro.
 28874  
 28875  	* mpn/x86/k6/aorsmul_1.asm: New file.
 28876  	* mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version).
 28877  	* mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version).
 28878  
 28879  	* mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and
 28880  	OPERATION_submul_1.
 28881  	* mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n.
 28882  	* configure.in: Declare multi-function files for k6 and p6.
 28883  
 28884  	* configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4.
 28885  	* mpn/asm-defs.m4 (define_not_for_expansion): New macro.
 28886  
 28887  	* mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from
 28888  	mpn/generic/divrem_1.c.
 28889  	* mpn/generic/divrem_1.c: Ditto.
 28890  	* configure.in (gmp_mpn_functions): Ditto.
 28891  
 28892  2000-02-21  Torbjorn Granlund  <tege@swox.com>
 28893  
 28894  	* gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly
 28895  	written.
 28896  
 28897  2000-02-21  Linus Nordberg  <linus@swox.se>
 28898  
 28899  	* configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4.
 28900  	* configure: Regenerate.
 28901  
 28902  2000-02-21  Linus Nordberg  <linus@swox.se>
 28903  
 28904  	* mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL -->
 28905  	OPERATION_addmul_1.  Change OPERATION_SUBMUL -->
 28906  	OPERATION_submul_1.
 28907  
 28908  	* mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n.
 28909  	Change OPERATION_SUB --> OPERATION_sub_n.
 28910  
 28911  	* mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors.
 28912  	* mpn/Makefile.in: Regenerate.
 28913  
 28914  	* configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn.  Link
 28915  	multi-function files to mpn/<function>.asm and remove function
 28916  	name from `gmp_mpn_functions'.
 28917  	* configure: Regenerate.
 28918  
 28919  	* acinclude.m4 (GMP_FINISH): Tell user what we're doing.
 28920  	* aclocal.m4: Regenerate.
 28921  
 28922  2000-02-21  Kevin Ryde  <kevin@swox.se>
 28923  
 28924  	* gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and
 28925  	__gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes.
 28926  	* mpn/x86/mul_basecase.S: Ditto.
 28927  	* mpn/x86/pentium/mul_basecase.S: Ditto.
 28928  
 28929  	* configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too.
 28930  
 28931  2000-02-20  Kevin Ryde  <kevin@swox.se>
 28932  
 28933  	* acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus.
 28934  	* mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a
 28935  	string, change by Linus.
 28936  	* mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string.
 28937  
 28938  	* mpn/x86/k6/gmp-mparam.h: New file.
 28939  	* mpn/asm-defs.m4 (m4_warning): New macro.
 28940  
 28941  	* mpn/x86/README: Amendments per new code and directories.
 28942  	* mpn/x86/README.family: New file.
 28943  	* mpn/x86/k6/README: New file.
 28944  	* mpn/x86/k7/README: New file.
 28945  
 28946  	* mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to
 28947  	mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase.
 28948  	* mpn/generic/mul_basecase.c: Ditto.
 28949  	* mpn/generic/sqr_basecase.c: Ditto.
 28950  	* mpn/generic/mul.c: Ditto.
 28951  
 28952  2000-02-19  Linus Nordberg  <linus@swox.se>
 28953  
 28954  	* configure.in: Don't try to symlink more than one multi-func
 28955  	file.
 28956  	* configure: Regenerate.
 28957  
 28958  2000-02-18  Linus Nordberg  <linus@swox.se>
 28959  
 28960  	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE
 28961  	`GSYM_PREFIX'.  Run ACTIONs even when value is found in cache.
 28962  	(GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'.  Run ACTIONs even
 28963  	when value is found in cache.
 28964  	* aclocal.m4: Regenerate.
 28965  
 28966  	* configure.in: Don't define GSYM_PREFIX or ALIGN.
 28967  	Add mechanism for multi-function files.
 28968  	* configure: Regenerate.
 28969  
 28970  2000-02-18  Kevin Ryde  <kevin@swox.se>
 28971  
 28972  	* configure.in (gmp_m4postinc): Enable x86-defs.m4.
 28973  	* mpn/x86/k7/mul_1.asm: Fix include.
 28974  	* mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version).
 28975  	* mpn/x86/k6/mul_basecase.asm: New file.
 28976  	* mpn/x86/k6/sqr_basecase.asm: New file.
 28977  	* mpn/x86/k6/com_n.asm: New file.
 28978  	* mpn/x86/k6/copyi.asm: New file.
 28979  	* gmp.texi (Low-level Functions): Clarify mpn overlaps permitted.
 28980  	* gmp-impl.h (MPN_OVERLAP_P): New macro.
 28981  	* gmp-impl.h (assert_nocarry): New macro.
 28982  	* mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c.
 28983  	* mpn/tests/ref.h: New file.
 28984  
 28985  2000-02-17  Linus Nordberg  <linus@swox.se>
 28986  
 28987  	* Makefile.am (dist-hook): Don't include any emacs backup files
 28988  	(*.~*) in dist.
 28989  	* Makefile.in: Regenerate.
 28990  
 28991  2000-02-17  Torbjorn Granlund  <tege@swox.com>
 28992  
 28993  	* mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of
 28994  	getpc function.
 28995  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 28996  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 28997  
 28998  2000-02-17  Kevin Ryde  <kevin@swox.se>
 28999  
 29000  	* gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n,
 29001  	mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n,
 29002  	mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase,
 29003  	mpn_xor_n, mpn_xorn_n.
 29004  
 29005  	* mpn/asm-defs.m4: Many additions making up initial version.
 29006  	* mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX').
 29007  	* mpn/x86/x86-defs.m4: New file.
 29008  	* mpn/x86/k6/aors_n.asm: New file.
 29009  	* mpn/x86/k6/divmod_1.asm: New file.
 29010  	* mpn/x86/k6/divrem_1.asm: New file.
 29011  	* mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version).
 29012  	* mpn/x86/k6/lshift.asm: New file.
 29013  	* mpn/x86/k6/mod_1.asm: New file.
 29014  	* mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version).
 29015  	* mpn/x86/k6/mul_1.asm: New file.
 29016  	* mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version).
 29017  	* mpn/x86/k6/rshift.asm: New file.
 29018  	* mpn/x86/k7/aors_n.asm: New file.
 29019  	* mpn/x86/k7/aorsmul_1.asm: New file.
 29020  	* mpn/x86/k7/mul_1.asm: New file.
 29021  	* mpn/x86/k7/rshift.asm: New file.
 29022  	* mpn/x86/p6/aorsmul_1.asm: New file.
 29023  	* mpn/x86/copyi.asm: New file.
 29024  	* mpn/x86/copyd.asm: New file.
 29025  	* mpn/lisp/gmpasm-mode.el: New file.
 29026  
 29027  2000-02-16  Torbjorn Granlund  <tege@swox.com>
 29028  
 29029  	* mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC.
 29030  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 29031  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 29032  	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
 29033  	* mpn/sparc32/udiv_fp.asm: Likewise.
 29034  
 29035  2000-02-16  Linus Nordberg  <linus@swox.se>
 29036  
 29037  	* configure.in: Add mechanism for including target specific
 29038  	m4-files in config.m4.
 29039  	* configure: Regenerate.
 29040  
 29041  	* acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except
 29042  	labels) with a tab character.  HP-UX demands it.
 29043  	(GMP_CHECK_ASM_SIZE): Ditto.
 29044  	(GMP_CHECK_ASM_LSYM_PREFIX): Ditto.
 29045  	(GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX.
 29046  	(GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'.
 29047  	* aclocal.m4: Regenerate.
 29048  
 29049  2000-02-16  Linus Nordberg  <linus@swox.se>
 29050  
 29051  	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as
 29052  	the prefix only, no argument.
 29053  	* aclocal.m4: Regenerate.
 29054  	* configure: Regenerate.
 29055  
 29056  	* mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX.
 29057  
 29058  2000-02-15  Linus Nordberg  <linus@swox.se>
 29059  
 29060  	* acinclude.m4: Prefix all temporary shell variables with
 29061  	`gmp_tmp_'.
 29062  	(GMP_PROG_CC_FIND): Use defaults if no arguments are passed.
 29063  	Quote use of arguments.
 29064  	(GMP_PROG_CCAS): New macro.
 29065  	(GMP_INIT): New macro.
 29066  	(GMP_FINISH): New macro.
 29067  	(GMP_INCLUDE): New macro.
 29068  	(GMP_SINCLUDE): New macro.
 29069  	(GMP_DEFINE): New macro.
 29070  	(GMP_CHECK_ASM_LABEL_SUFFIX): New macro.
 29071  	(GMP_CHECK_ASM_TEXT): New macro.
 29072  	(GMP_CHECK_ASM_DATA): New macro.
 29073  	(GMP_CHECK_ASM_GLOBL): New macro.
 29074  	(GMP_CHECK_ASM_TYPE): New macro.
 29075  	(GMP_CHECK_ASM_SIZE): New macro.
 29076  	(GMP_CHECK_ASM_LSYM_PREFIX): New macro.
 29077  	(GMP_CHECK_ASM_W32): New macro.
 29078  	* aclocal.m4: Regenerate.
 29079  
 29080  	* configure.in: Find m4 and nm for target.
 29081  	Use new macros to create config.m4.
 29082  	Prefix all temporary shell variables with `tmp_'.
 29083  	Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler.
 29084  	* configure: Regenerate.
 29085  
 29086  	* Makefile.am (dist-hook): *Really* remove all CVS dirs in
 29087  	dist.
 29088  	* Makefile.in: Regenerate.
 29089  
 29090  	* mpn/Makefile.am: Add target for building .lo and .o from
 29091  	.asm.
 29092  	Pass -DPIC to preprocessor (CPP/m4) when building .lo.
 29093  	Build .o a second time for target .lo, without -DPIC to
 29094  	preprocessor.
 29095  	(SUFFIX): Add `.asm'.
 29096  	(EXTRA_DIST): Add asm-defs.m4.
 29097  	* mpn/Makefile.in: Regenerate.
 29098  
 29099  	* mpf/Makefile.in: Regenerate.
 29100  	* mpf/tests/Makefile.in: Regenerate.
 29101  	* mpq/Makefile.in: Regenerate.
 29102  	* mpq/tests/Makefile.in: Regenerate.
 29103  	* mpz/Makefile.in: Regenerate.
 29104  	* mpz/tests/Makefile.in: Regenerate.
 29105  
 29106  2000-02-15  Torbjorn Granlund  <tege@swox.com>
 29107  
 29108  	* mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'.
 29109  	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
 29110  	* mpn/sparc32/v9/addmul_1.asm: Likewise.
 29111  	* mpn/sparc32/v9/submul_1.asm: Likewise.
 29112  	* mpn/sparc32/v9/mul_1.asm: Likewise.
 29113  
 29114  	* mpn/sparc32/add_n.asm: Rename `size' -> `n'.
 29115  	* mpn/sparc32/sub_n.asm: Likewise.
 29116  
 29117  	* sparc32: Rename `.s' and `.S' files to `.asm'.
 29118  	* sparc64: Rename `.s' and `.S' files to `.asm'.
 29119  
 29120  2000-02-11  Torbjorn Granlund  <tege@swox.com>
 29121  
 29122  	* config.sub: Adopt to new config.guess sparc naming conventions.
 29123  
 29124  	* config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'.
 29125  	* config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and
 29126  	change `sparc8' to `sparcv8'.
 29127  
 29128  	* mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE.
 29129  	* mpn/x86/sub_n.S: Likewise.
 29130  
 29131  	* mpn/x86/syntax.h (PROLOGUE): New name for PROLOG.
 29132  	* mpn/x86/syntax.h (EPILOGUE): New name for EPILOG.
 29133  
 29134  2000-02-11  Linus Nordberg  <linus@swox.se>
 29135  
 29136  	* configure.in: Better path for 64-bit sparc without 64-bit cc.
 29137  	Change sparc8 --> sparcv8.
 29138  	Change sparc9 --> sparcv9.
 29139  	* configure: Regenerate.
 29140  
 29141  2000-02-10  Linus Nordberg  <linus@swox.se>
 29142  
 29143  	* configure.in: Use Autoconf.
 29144  	* Makefile.am: New file.
 29145  
 29146  	* AUTHORS: New file.
 29147  	* COPYING: New file.
 29148  	* acinclude.m4: New file.
 29149  	* acconfig.h: New file.
 29150  
 29151  	* configure: Generate.
 29152  	* Makefile.in: Generate.
 29153  	* aclocal.m4: Generate.
 29154  	* config.in: Generate.
 29155  
 29156  	* install.sh: Remove.
 29157  	* install-sh: New file from Automake.
 29158  	* missing: New file from Automake.
 29159  	* ltconfig: New file from Libtool.
 29160  	* ltmain.sh: New file from Libtool.
 29161  
 29162  	* mpf/Makefile.am: New file.
 29163  	* mpf/Makefile.in: Generate.
 29164  	* mpf/configure.in: Remove.
 29165  	* mpf/tests/Makefile.am: New file.
 29166  	* mpf/tests/Makefile.in: Generate.
 29167  	* mpf/tests/configure.in: Remove.
 29168  
 29169  	* mpn/Makefile.am: New file.
 29170  	* mpn/Makefile.in: Generate.
 29171  	* mpn/configure.in: Remove.
 29172  
 29173  	* mpq/Makefile.am: New file.
 29174  	* mpq/Makefile.in: Generate.
 29175  	* mpq/configure.in: Remove.
 29176  	* mpq/tests/Makefile.am: New file.
 29177  	* mpq/tests/Makefile.in: Generate.
 29178  	* mpq/tests/configure.in: Remove.
 29179  
 29180  	* mpz/Makefile.am: New file.
 29181  	* mpz/Makefile.in: Generate.
 29182  	* mpz/configure.in: Remove.
 29183  	* mpz/tests/Makefile.am: New file.
 29184  	* mpz/tests/Makefile.in: Generate.
 29185  	* mpz/tests/configure.in: Remove.
 29186  
 29187  2000-02-10  Torbjorn Granlund  <tege@swox.com>
 29188  
 29189  	* mpn/x86/add_n.S: Don't use label L0 twice.
 29190  	* mpn/x86/sub_n.S: Likewise.
 29191  
 29192  2000-01-20  Linus Nordberg  <linus@swox.se>
 29193  
 29194  	* demos/pexpr.c: Don't use setup_error_handler() in windoze.
 29195  
 29196  2000-01-19  Torbjorn Granlund  <tege@swox.com>
 29197  
 29198  	* demos/pexpr.c (sigaltstack): #define to sigstack for AIX.
 29199  	(setup_error_handler): Don't write to ss_size and ss_flags
 29200  	on AIX.
 29201  
 29202  2000-01-11  Torbjorn Granlund  <tege@swox.com>
 29203  
 29204  	* mpn/configure.in (hppa2.0*-*-*): Move assignment of
 29205  	target_makefile_frag to where it belongs.
 29206  
 29207  1999-12-21  Torbjorn Granlund  <tege@swox.com>
 29208  
 29209  	* longlong.h (v9 umul_ppmm): New #define.
 29210  	(v9 udiv_qrnnd): New #define.
 29211  
 29212  1999-12-14  Torbjorn Granlund  <tege@swox.com>
 29213  
 29214  	* mpn/generic/divmod_1.c: Use invert_limb.
 29215  	* mpn/generic/mod_1.c: Use invert_limb.
 29216  
 29217  	* gmp-impl.h (invert_limb): Put definition here.
 29218  	* mpn/generic/divrem.c (invert_limb): Delete definition.
 29219  	* mpn/generic/divrem_2.c (invert_limb): Delete definition.
 29220  
 29221  	* gmp.h (mpn_divrem): Inhibit for non-gcc.
 29222  	But declare (undo 1999-11-22 change).
 29223  
 29224  	* gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB.
 29225  
 29226  	* longlong.h: Move 64-bit hppa code out of __GNUC__ conditional.
 29227  
 29228  	* stack-alloc.c (HSIZ): New #define.
 29229  	(__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack).
 29230  
 29231  1999-12-10  Torbjorn Granlund  <tege@swox.com>
 29232  
 29233  	* config.sub: Clean up handling of x86 CPUs: Properly recognize
 29234  	Amd CPUs as unique entities.  Use manufacturer's names of
 29235  	processors ("pentium", etc); still match ambiguous names like
 29236  	"i586", "i686", "p6" but be conservative in interpreting them.
 29237  
 29238  	* configure.in: Recognize x86 CPU types known by config.guess.
 29239  	* mpn/configure.in: Likewise.  Add x86/mmx path component as
 29240  	appropriate.
 29241  	(athlon-*-*): Fix typo.
 29242  
 29243  	* config.guess: Update x86 recog code to initially match
 29244  	more than just i386.
 29245  	Call K6-2 and K6-III for "k62" and "k63" respectively.
 29246  
 29247  	* config.guess: Recognize x86 CPU types.
 29248  	Update code for FreeBSD, NetBSD, OpenBSD, Linux.
 29249  
 29250  1999-12-08  Torbjorn Granlund  <tege@swox.com>
 29251  
 29252  	* mpf/pow_ui.c: Avoid final squaring in loop.
 29253  
 29254  1999-12-07  Torbjorn Granlund  <tege@swox.com>
 29255  
 29256  	* gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'.
 29257  	(udiv_qrnnd_preinv2norm): Likewise.
 29258  	From Kevin Ryde:
 29259  	(HAVE_ALLOCA): #define also if defined (alloca).
 29260  
 29261  1999-12-04  Torbjorn Granlund  <tege@swox.com>
 29262  
 29263  	* mpn/tests/add_n.c: Set OPS from CLOCK.
 29264  	* mpn/tests/sub_n.c: Likewise.
 29265  	* mpn/tests/mul_1.c: Likewise.
 29266  	* mpn/tests/addmul_1.c: Likewise.
 29267  	* mpn/tests/submul_1.c: Likewise.
 29268  
 29269  	* mpn/tests/lshift.c: Update from add_n.c.
 29270  	* mpn/tests/rshift.c: Likewise.
 29271  
 29272  1999-12-03  Torbjorn Granlund  <tege@swox.com>
 29273  
 29274  	* mpn/powerpc64/copy.S: New file.
 29275  
 29276  1999-12-02  Torbjorn Granlund  <tege@swox.com>
 29277  
 29278  	* mpn/sparc64/copy.s: New file.
 29279  
 29280  	* mpn/tests/copy.c: New file.
 29281  
 29282  	* mpn/configure.in: Recognize more Amd CPUs; Set special paths for
 29283  	k7 CPU.
 29284  
 29285  	* configure.in: Recognize Amd x86 CPUs.
 29286  
 29287  	* mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before
 29288  	writing to res->_mp_size.
 29289  
 29290  	* mpn/powerpc64/*.S: Clean up assembly syntax, add function headers.
 29291  	* mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define.
 29292  	(KARATSUBA_SQR_THRESHOLD): #define.
 29293  
 29294  	* mpn/tests/add_n.c (main): Only print test number if TIMES==1
 29295  	and not printing.
 29296  	(main): Don't run reference code if NOCHECK.
 29297  	* mpn/tests/sub_n.c: Likewise.
 29298  	* mpn/tests/mul_1.c: Likewise.
 29299  	* mpn/tests/addmul_1.c: Likewise.
 29300  	* mpn/tests/submul_1.c: Likewise.
 29301  
 29302  	* mpn/tests/lshift.c: (main): Only print test number if TIMES==1
 29303  	and not printing.
 29304  	* mpn/tests/rshift.c: Likewise.
 29305  
 29306  1999-11-22  Torbjorn Granlund  <tege@swox.com>
 29307  
 29308  	* gmp.h (mpz_init_set_str): Declare using __gmp_const.
 29309  	(mpz_set_str): Likewise.
 29310  	(mpf_init_set_str): Likewise.
 29311  	(mpf_set_str): Likewise.
 29312  	(mpn_set_str): Likewise.
 29313  	(__gmp_0): Likewise.
 29314  	(mpn_divrem): Remove separate declaration; it's defined later in
 29315  	this file.
 29316  
 29317  	* gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in
 29318  	expressions involving more than one term, to handle Sun's compiler
 29319  	that most helpfully sets __STDC__ to 0.
 29320  	* gmp-impl.h: Likewise.
 29321  	* longlong.h: Likewise.
 29322  
 29323  1999-11-21  Torbjorn Granlund  <tege@swox.com>
 29324  
 29325  	* mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
 29326  	(KARATSUBA_SQR_THRESHOLD): #define.
 29327  
 29328  	* mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr.
 29329  	* mpn/sparc64/rshift.s: Likewise.
 29330  
 29331  	* mpn/sparc64/addmul_1.s: Propagate carry properly.
 29332  	* mpn/sparc64/submul_1.s: Likewise.
 29333  
 29334  	* mpn/sparc64/sub_n.s: Rewrite.
 29335  
 29336  	* mpn/sparc64/sub_n.s: Get operand order for main subcc right
 29337  	(before scrapping this code for new code).
 29338  
 29339  1999-11-20  Torbjorn Granlund  <tege@swox.com>
 29340  
 29341  	* mpn/sparc64/add_n.s: Rewrite.
 29342  
 29343  1999-11-17  Torbjorn Granlund  <tege@swox.com>
 29344  
 29345  	* mpn/x86/syntax.h (PROLOG): New #define.
 29346  	(EPILOG): New #define.
 29347  
 29348  	* gmp.h (mpn_addsub_n): Declare.
 29349  	* gmp.h (mpn_add_nc): Declare.
 29350  	* gmp.h (mpn_sub_nc): Declare.
 29351  	* mpn/powerpc64/addsub_n.S: New file.
 29352  
 29353  1999-11-17  Torbjorn Granlund  <tege@swox.com>
 29354  
 29355  	* mpn/alpha/gmp-mparam.h
 29356  	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
 29357  	(KARATSUBA_SQR_THRESHOLD): Likewise.
 29358  
 29359  1999-11-14  Torbjorn Granlund  <tege@swox.com>
 29360  
 29361  	* mpn/x86/mul_1.S: Unroll and optimize for P6 and K7.
 29362  
 29363  1999-11-09  Torbjorn Granlund  <tege@swox.com>
 29364  
 29365  	* mpn/x86/p6/gmp-mparam.h
 29366  	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
 29367  	(KARATSUBA_SQR_THRESHOLD): Likewise.
 29368  
 29369  1999-11-05  Torbjorn Granlund  <tege@swox.com>
 29370  
 29371  	* mpn/generic/addsub_n.c: New file.
 29372  
 29373  1999-11-02  Torbjorn Granlund  <tege@swox.com>
 29374  
 29375  	* config.guess: Handle alpha:FreeBSD with alpha:NetBSD.
 29376  
 29377  	* configure.in (vax*-*-*): New case.
 29378  	* config/mt-vax: New file.
 29379  	* mpn/vax/add_n.s: Rewrite.
 29380  	* mpn/vax/sub_n.s: Rewrite.
 29381  
 29382  1999-10-31  Torbjorn Granlund  <tege@swox.com>
 29383  
 29384  	* mpn/vax/rshift.s: New file.
 29385  	* mpn/vax/lshift.s: New file.
 29386  
 29387  1999-10-29  Torbjorn Granlund  <tege@swox.com>
 29388  
 29389  	* config.sub: Handle k5 and k6.
 29390  	* mpn/configure.in: Recognize k6.
 29391  
 29392  	* mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines.
 29393  	(main): Tighten error bounds to 14 digits.
 29394  
 29395  	* longlong.h (default umul_ppmm, when smul_ppmm exists):
 29396  	Rename __m0 => __xm0, __m1 => __xm1.
 29397  	(default smul_ppmm): Likewise.
 29398  
 29399  1999-10-11  Torbjorn Granlund  <tege@swox.com>
 29400  
 29401  	* config.guess: Reverse the test for POWER vs PowerPC.
 29402  	* config.guess (sun4m:SunOS:5.*:*): New case.
 29403  	* config.guess (sun4u:SunOS:5.*:*): New case.
 29404  
 29405  1999-09-29  Torbjorn Granlund  <tege@swox.com>
 29406  
 29407  	* mpn/generic/divrem_2.c: Clean up comments.
 29408  
 29409  1999-09-23  Torbjorn Granlund  <tege@swox.com>
 29410  
 29411  	* mpz/tests/Makefile.in: Use move-if-change when generating binaries.
 29412  	* mpf/tests/Makefile.in: Likewise.
 29413  	* mpq/tests/Makefile.in: Likewise.
 29414  	* mpz/tests/move-if-change: New file.
 29415  	* mpf/tests/move-if-change: New file.
 29416  	* mpq/tests/move-if-change: New file.
 29417  
 29418  	* gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c).
 29419  	(mpn_decr_u): New macro.
 29420  
 29421  	* mpn/generic/mul_n.c (mpn_incr): Delete.
 29422  	* mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u.
 29423  	* mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of
 29424  	mpn_add_1 and mpn_sub_1.
 29425  	* mpn/generic/sqrtrem.c: Likewise.
 29426  	* mpz/cdiv_q_ui.c: Likewise.
 29427  	* mpz/cdiv_qr_ui.c: Likewise.
 29428  	* mpz/fdiv_q_ui.c: Likewise.
 29429  	* mpz/fdiv_qr_ui.c: Likewise.
 29430  
 29431  	* mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18
 29432  	bits.
 29433  
 29434  1999-07-27  Torbjorn Granlund  <tege@swox.com>
 29435  
 29436  	* mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function.
 29437  
 29438  	* mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'.
 29439  	* mpn/Makefile.in: Compile divrem_2.c.
 29440  	* make.bat: Compile divrem_2.c.
 29441  	* mpn/configure.in (functions): Add divrem_2.
 29442  	* gmp.h: Declare mpn_divrem_2.
 29443  
 29444  	* mpn/generic/divrem.c: Delete special cases, handle just divisors
 29445  	of more than 2 limbs.
 29446  	* gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate.
 29447  
 29448  	* mpn/generic/divrem.c: Rework variable usage for better register
 29449  	allocation.
 29450  
 29451  1999-07-26  Torbjorn Granlund  <tege@swox.com>
 29452  
 29453  	* mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed.
 29454  	* mpn/alpha/ev5/sub_n.s: Likewise.
 29455  
 29456  1999-07-21  Torbjorn Granlund  <tege@swox.com>
 29457  
 29458  	* longlong.h (alpha): Define umul_ppmm for cc.
 29459  
 29460  	* gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is
 29461  	defined.
 29462  
 29463  1999-07-15  Torbjorn Granlund  <tege@swox.com>
 29464  
 29465  	* longlong.h (powerpc64 count_leading_zeros): Fix typo.
 29466  	(powerpc64 add_ssaaaa): Fix typos.
 29467  	(powerpc64 sub_ddmmss): Fix typos.
 29468  
 29469  1999-07-14  Torbjorn Granlund  <tege@swox.com>
 29470  
 29471  	* mpz/tests/Makefile.in: Pass XCFLAGS when linking.
 29472  	* mpf/tests/Makefile.in: Likewise.
 29473  	* mpq/tests/Makefile.in: Likewise.
 29474  	* mpn/Makefile.in (.S.o): Pass XCFLAGS.
 29475  
 29476  	* longlong.h: Add support for 64-bit PowerPC.
 29477  	* config.sub: Handle "powerpc64".
 29478  	* configure.in: Likewise.
 29479  	* mpn/configure.in: Suppress use of config/t-ppc-aix for now,
 29480  	it seems compiler passes proper options.
 29481  	* mpn/powerpc64/*.S: New files.
 29482  
 29483  	* Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)".
 29484  
 29485  1999-07-07  Torbjorn Granlund  <tege@swox.com>
 29486  
 29487  	* demos/pexpr.c (factor): Change alloca call to a malloc/free pair.
 29488  
 29489  	* mpn/powerpc32/syntax.h: Add #define's for crN.
 29490  
 29491  	* gmp.h (gmp_rand_algorithm): Remove spurious `,'.
 29492  
 29493  1999-07-05  Torbjorn Granlund  <tege@swox.com>
 29494  
 29495  	* mpn/generic/divrem_1.c: Normalize divisor when needed.
 29496  
 29497  1999-07-02  Torbjorn Granlund  <tege@swox.com>
 29498  
 29499  	* mpn/configure.in (powerpc*-apple-mach): New configuration.
 29500  	* mpn/powerpc32/*: Add support for apple-macho syntax.
 29501  	* mpn/powerpc32/syntax.h: New file.
 29502  	* gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion
 29503  	of GCC.
 29504  
 29505  1999-05-26  Linus Nordberg  <linus@swox.se>
 29506  
 29507  	* rand.c (gmp_rand_init): Fix typo.
 29508  
 29509  	* mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs,
 29510  	to keep track of how many rounds to do in loop.  Clean up
 29511  	temporary allocation.  Update `seedsize' inside loop.  Mask off
 29512  	the correct number of bits from final result.  Init `mcopyp' even
 29513  	when not normalizing `m'.
 29514  
 29515  	* randlc.c (gmp_rand_init_lc): Fix typo (don't call
 29516  	mpz_init_set_ui()).
 29517  
 29518  	* mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when
 29519  	reallocating.
 29520  
 29521  	* tests/rand/Makefile (test, bigtest): Add 33-bit tests.
 29522  
 29523  	* tests/rand/gen.c (main): Set precision of variable passed to
 29524  	mpf_urandomb().  Add option `-p'.
 29525  
 29526  1999-05-25  Linus Nordberg  <linus@swox.se>
 29527  
 29528  	* randcm.c: Remove.
 29529  	* randcmui.c: Remove.
 29530  	* Makefile.in: Remove randcm and randcmui.
 29531  	* make.bat: Ditto.
 29532  	* gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and
 29533  	__gmp_rand_init_common_ui().
 29534  	* randlc.c (gmp_rand_init_lc): Don't call
 29535  	__gmp_rand_init_common().
 29536  
 29537  	* randlcui.c (gmp_rand_init_lc_ui): Don't call
 29538  	__gmp_rand_init_common_ui().
 29539  
 29540  	* gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'.
 29541  	* randclr.c (gmp_rand_clear): Remove reference to s->maxval.
 29542  	* randcm.c (__gmp_rand_init_common): Ditto
 29543  
 29544  	* mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs
 29545  	twice.
 29546  
 29547  	* gmp.h (__gmp_rand_dist): Remove.
 29548  
 29549  1999-05-24  Linus Nordberg  <linus@swox.se>
 29550  
 29551  	* mpn/generic/rawrandom.c: Clean up comments.
 29552  
 29553  	* gmp.texi: Add documentation for random number generation.
 29554  
 29555  1999-05-21  Linus Nordberg  <linus@swox.se>
 29556  
 29557  	* gmp.h: Typedef `gmp_rand_state' as an array with one element.
 29558  	Change prototypes accordingly.
 29559  	* gmp-impl.h: Change prototypes using `gmp_rand_state'.
 29560  	* rand.c (gmp_rand_init): Take `gmp_rand_state' as argument
 29561  	instead of a pointer to a `gmp_rand_state'.
 29562  	* mpf/urandom.c (mpf_urandomb): Ditto.
 29563  	* mpz/urandom.c (mpz_urandomb): Ditto.
 29564  	* mpn/generic/rawrandom.c (mpn_rawrandom): Ditto.
 29565  	* randcmui.c (__gmp_rand_init_common_ui): Ditto.
 29566  	* randlc.c (gmp_rand_init_lc): Ditto.
 29567  	* randlcui.c (gmp_rand_init_lc_ui): Ditto.
 29568  	* randui.c (gmp_rand_init_ui): Ditto.
 29569  	* randcm.c (__gmp_rand_init_common): Ditto.
 29570  	* randclr.c (gmp_rand_clear): Ditto.
 29571  
 29572  	* tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address
 29573  	of `s'.
 29574  
 29575  1999-05-20  Linus Nordberg  <linus@swox.se>
 29576  
 29577  	* Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c,
 29578  	randicom.c --> randcm.c.  Add randui.c, randcmui.c, randlcui.c.
 29579  	* make.bat: Ditto.
 29580  
 29581  	* gmp.h: Add prototypes for gmp_rand_init_ui() and
 29582  	gmp_rand_init_lc_ui().
 29583  	* gmp-impl.h: Add prototypes for __gmp_rand_init_common() and
 29584  	__gmp_rand_init_common_ui().
 29585  
 29586  	* randlc.c, randcm.c, randclr.c, rand.c: Change #include of
 29587  	<gmp.h> to "gmp.h".
 29588  	* randclr.c: Include stdlib.h for free().
 29589  	* rand.c: Include gmp-impl.h.
 29590  
 29591  1999-05-12  Torbjorn Granlund  <tege@swox.com>
 29592  
 29593  	* mpn/configure.in: Put generic m68k alternative last.
 29594  
 29595  1999-05-04  Torbjorn Granlund  <tege@swox.com>
 29596  
 29597  	* demos/pexpr.c (setup_error_handler): Use sigemptyset to create
 29598  	empty set (for portability).
 29599  	(fns): Fix typo '#if #if'.
 29600  	(mpz_eval_expr): Implement FERMAT and MERSENNE.
 29601  
 29602  	* demos/pexpr.c: Cast longjmp argument via long to silent warnings on
 29603  	64-bit hosts.
 29604  
 29605  1999-05-03  Torbjorn Granlund  <tege@swox.com>
 29606  
 29607  	* demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility.
 29608  
 29609  	* demos/pexpr.c (setup_error_handler): New function; take signal
 29610  	handler setup code from main(), with major modifications to use modern
 29611  	signal interface.
 29612  	(main): Remove signal handler setup code; call setup_error_handler.
 29613  
 29614  1999-04-29  Linus Nordberg  <linus@swox.se>
 29615  
 29616  	* tests/rand/findcl.c (main): Add option '-i' for interval factor.
 29617  	Separate v and merit lose figures.  Add '-v' for version.
 29618  
 29619  1999-04-28  Linus Nordberg  <linus@swox.se>
 29620  
 29621  	* tests/rand/statlib.c: Change debugging stuff.
 29622  
 29623  	* tests/rand/gmpstat.h: Add debug values definitions.
 29624  
 29625  	* tests/rand/findcl.c (main): Print low and high merit on startup.
 29626  	Print version string on startup.  Catch SEGV and HUP.  Add option -d
 29627  	for debug.  Fix bug making test for v too hard.
 29628  	(sh_status): New function.
 29629  	(sh_status): Flush stdout.  Add RCSID.
 29630  
 29631  1999-04-27  Linus Nordberg  <linus@swox.se>
 29632  
 29633  	* tests/rand/Makefile (clean): Add target.
 29634  
 29635  1999-04-27  Linus Nordberg  <linus.nordberg@canit.se>
 29636  
 29637  	* tests/rand/stat.c: Include gmpstat.h.
 29638  	Add global int g_debug.
 29639  
 29640  	* tests/rand/spect.c: Include <unistd.h>.
 29641  
 29642  	* tests/rand/findcl.c (main): Input is `m', not all factors of `m'.
 29643  	Print only the very first matching multiplier.  Include <unistd.h>.
 29644  	Flush stdout.  Print "done." when done.
 29645  
 29646  	* tests/rand/spect.c: Move everything but main() to statlib.c.
 29647  
 29648  	* tests/rand/findcl.c: New file.
 29649  
 29650  	* tests/rand/gmpstat.h: New file.
 29651  
 29652  	* tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot,
 29653  	spectral_test): New functions.
 29654  
 29655  1999-04-27  Torbjorn Granlund  <tege@swox.com>
 29656  
 29657  	* mpn/configure.in: Fix typo, "sparc-*)" was "sparc)".
 29658  
 29659  1999-04-21  Torbjorn Granlund  <tege@swox.com>
 29660  
 29661  	* config.sub: Recognize ev6.
 29662  
 29663  1999-04-12  Linus Nordberg  <linus.nordberg@canit.se>
 29664  
 29665  	* urandom.c: Split up into randclr.c, randi.c, randi_lc.c,
 29666  	randicom.c.
 29667  	* randclr.c, randi.c, randi_lc.c, randicom.c: New files.
 29668  	* Makefile.in: Remove urandom.  Add randclr, randi, randi_lc,
 29669  	randicom.
 29670  	* make.bat: Ditto
 29671  
 29672  1999-03-31  Torbjorn Granlund  <tege@matematik.su.se>
 29673  
 29674  	* configure.in (sparc9-*-solaris2.[789]*, etc): New alternative.
 29675  	* mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*.
 29676  
 29677  1999-03-30  Linus Nordberg  <linus.nordberg@canit.se>
 29678  
 29679  	* urandom.c (__gmp_rand_scheme): Change NULL->0.
 29680  	Include "gmp.h" instead of <gmp.h>.
 29681  
 29682  1999-03-29  Linus Nordberg  <linus.nordberg@canit.se>
 29683  
 29684  	* gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme
 29685  	struct.
 29686  	(__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'.
 29687  
 29688  	* tests/rand/stat.c (f_freq): Don't print 2nd level results if doing
 29689  	1st level.
 29690  
 29691  	* tests/rand/gen.c (main): Set default algorithm to mpz_urandomb.
 29692  	(main): Add option -c.
 29693  
 29694  1999-03-24  Linus Nordberg  <linus.nordberg@canit.se>
 29695  
 29696  	* tests/rand/Makefile (GMPINC): Rename to GMPH.
 29697  	(GMPH): Add gmp-mparam.h.
 29698  	(CFLAGS): Add -I$(GMPLIBDIR)/mpn
 29699  
 29700  1999-03-23  Linus Nordberg  <linus.nordberg@canit.se>
 29701  
 29702  	* Makefile.in: Compile top-dir/urandom.c.
 29703  	* make.bat: Ditto.
 29704  
 29705  	* mpn/Makefile.in: Compile rawrandom.c.
 29706  	* make.bat: Ditto.
 29707  
 29708  	* mpn/configure.in (functions): Add rawrandom.
 29709  
 29710  	* gmp.h (__gmp_rand_scheme_struct): Rename to
 29711  	__gmp_rand_lc_scheme_struct.
 29712  	(__gmp_rand_data_lc): Remove member 'n'.  Allocate a
 29713  	__gmp_rand_lc_scheme_struct instead of a pointer to one.
 29714  	Add prototype for gmp_rand_init_lc(), mpn_rawrandom().
 29715  	New prototype for mpz_urandomb().
 29716  
 29717  	* urandom.c: New file.
 29718  	(__gmp_rand_init_common): New function.
 29719  	(gmp_rand_init_lc): New function.
 29720  	(gmp_rand_init): Don't init data_lc->n.  Call gmp_rand_init_lc()
 29721  	and __gmp_rand_init_common().
 29722  	(gmp_rand_clear): Remove reference to data_lc->n.
 29723  
 29724  	* mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file
 29725  	urandom.c in top-dir.
 29726  	(mpz_urandomb): Add function parameter nbits.  Call mpn_rawrandom().
 29727  
 29728  	* mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom().
 29729  
 29730  	* mpn/generic/rawrandom.c: New file.
 29731  	(mpn_rawrandom): New function.
 29732  
 29733  1999-03-17  Torbjorn Granlund  <tege@matematik.su.se>
 29734  
 29735  	* extract-dbl.c: When packing result, adjust exp when sc == 0.
 29736  
 29737  	* mpf/tests/t-get_d.c: New file.
 29738  	* mpf/tests/Makefile.in: Compile t-get_d.c.
 29739  
 29740  1999-03-16  Linus Nordberg  <linus.nordberg@canit.se>
 29741  
 29742  	* mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the
 29743  	mpz_t members.
 29744  
 29745  	* make.bat: Compile mpz/urandom.c and mpf/urandom.c
 29746  
 29747  	* tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp().
 29748  
 29749  	* tests/rand/gen.c: Include unistd.h for getopt.
 29750  
 29751  1999-03-15  Linus Nordberg  <linus.nordberg@canit.se>
 29752  
 29753  	* mpz/urandom.c (gmp_rand_init): New function.
 29754  	(gmp_rand_clear): New function.
 29755  	(mpz_urandomb): New function.
 29756  
 29757  	* mpz/Makefile.in: Compile urandom.c
 29758  
 29759  	* mpf/urandom.c (mpf_urandomb): New function.
 29760  
 29761  	* mpf/Makefile.in: Compile urandom.c.
 29762  
 29763  	* gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New
 29764  	structs for randomization functions.
 29765  	(gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization
 29766  	functions.
 29767  	(mpz_urandomb, mpf_urandomb): Add prototype.
 29768  	(gmp_rand_init, gmp_rand_clear): Add prototype.
 29769  
 29770  	* tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files.
 29771  	* tests/rand/Makefile, tests/rand/ChangeLog: New files.
 29772  
 29773  1999-03-15  Torbjorn Granlund  <tege@matematik.su.se>
 29774  
 29775  	* .gdbinit: New file.
 29776  
 29777  	* mpz/dump.c: New file.
 29778  	* mpz/Makefile.in: Compile dump.c.
 29779  	* make.bat: Likewise.
 29780  	* gmp.h (mpz_dump): Declare.
 29781  
 29782  1999-03-14  Torbjorn Granlund  <tege@matematik.su.se>
 29783  
 29784  	* mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact.
 29785  
 29786  	* mpz/tests/convert.c: Update to GMP 2 variable syntax.
 29787  
 29788  1999-03-13  Torbjorn Granlund  <tege@matematik.su.se>
 29789  
 29790  	* mpf/README: New file.
 29791  	* mpz/README: New file.
 29792  
 29793  	* mpf/pow_ui.c: New file.
 29794  	* mpf/Makefile.in: Compile pow_ui.c.
 29795  	* make.bat: Likewise.
 29796  	* gmp.h (mpf_pow_ui): Declare.
 29797  
 29798  1999-03-12  Torbjorn Granlund  <tege@matematik.su.se>
 29799  
 29800  	* mpn/configure.in: Stage 1 of rewrite.
 29801  	* mpn/underscore.h: New name for bsd.h.
 29802  	* mpn/sysv.h: Deleted.
 29803  
 29804  	* mpn/m68k/*: Don't include sysdep.h.
 29805  
 29806  	* mpn/pa64/README: New file.
 29807  
 29808  1999-03-11  Torbjorn Granlund  <tege@matematik.su.se>
 29809  
 29810  	* mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax.
 29811  	Renamed from `.s'.
 29812  	* mpn/powerpc32/sub_n.S: Likewise.
 29813  	* mpn/powerpc32/lshift.S: Likewise.
 29814  	* mpn/powerpc32/rshift.S: Likewise.
 29815  	* mpn/powerpc32/mul_1.S: Likewise.
 29816  	* mpn/powerpc32/addmul_1.S: Likewise.
 29817  	* mpn/powerpc32/submul_1.S: Likewise.
 29818  
 29819  	* mpn/powerpc32/umul.S: New file.
 29820  	* mpn/sparc32/v8/umul.S: New file.
 29821  	* mpn/sparc32/umul.S: New file.
 29822  	* mpn/x86/umul.S: New file.
 29823  	* mpn/x86/udiv.S: New file.
 29824  
 29825  	* mpn/Makefile.in (mul_basecase.o): Delete rule.
 29826  
 29827  1999-02-22  Torbjorn Granlund  <tege@matematik.su.se>
 29828  
 29829  	* configure.in (hppa2.0*-*-*): Force use of GCC.
 29830  
 29831  	* extract-dbl.c: Handle IEEE denormalized numbrs.  Clean up.
 29832  
 29833  1998-12-02  Torbjorn Granlund  <tege@matematik.su.se>
 29834  
 29835  	* mpn/Makefile.in (CCAS): New macro.
 29836  	(.s.o): Use CCAS.
 29837  	(.S.o): Likewise.
 29838  
 29839  	* mpn/Makefile.in (mul_basecase.o): Add dependency.
 29840  	(sqr_basecase.o): Likewise.
 29841  	(mod_1.o): Likewise.
 29842  
 29843  	* demos/pexpr.c (cputime): Test also __hpux.
 29844  	(cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE.
 29845  
 29846  	* mpz/tests/t-2exp.c: Use urandom, not random.
 29847  
 29848  	* mpn/configure.in (arm*-*-*): New alternative.
 29849  
 29850  1998-11-30  Torbjorn Granlund  <tege@matematik.su.se>
 29851  
 29852  	* gmp-impl.h (union ieee_double_extract): Special case for
 29853  	little-endian arm.
 29854  	(LIMBS): Alias for PTR.
 29855  
 29856  1998-11-26  Torbjorn Granlund  <tege@matematik.su.se>
 29857  
 29858  	* longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'.
 29859  	(m68k stuff): Clean up; add coldfire support.
 29860  
 29861  1998-11-23  Torbjorn Granlund  <tege@matematik.su.se>
 29862  
 29863  	* mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
 29864  	(KARATSUBA_SQR_THRESHOLD): #define.
 29865  
 29866  	* mpn/sparc32/v9/README: New file.
 29867  
 29868  1998-11-20  Torbjorn Granlund  <tege@matematik.su.se>
 29869  
 29870  	* mpn/x86/README: New file.
 29871  
 29872  	* mpn/arm/gmp-mparam.h: New file.
 29873  	* mpn/pa64/gmp-mparam.h: New file.
 29874  	* mpn/hppa/gmp-mparam.h: New file.
 29875  	* mpn/x86/pentium/gmp-mparam.h: New file.
 29876  	* mpn/sparc32/v9/gmp-mparam.h: New file.
 29877  	* mpn/powerpc32/gmp-mparam.h: New file.
 29878  	* mpn/x86/p6/gmp-mparam.h: New file.
 29879  
 29880  	* mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
 29881  	(KARATSUBA_SQR_THRESHOLD): #define.
 29882  
 29883  	* mpn/configure.in: Point to x86/p6 when appropriate.
 29884  
 29885  	* mpn/power/umul.s: New file.
 29886  	* mpn/power/sdiv.s: New file.
 29887  	* mpn/pa64/addmul_1.S: New file.
 29888  	* mpn/pa64/submul_1.S: New file.
 29889  	* mpn/pa64/mul_1.S: New file.
 29890  	* mpn/pa64/udiv_qrnnd.c: New file.
 29891  	* mpn/pa64/umul_ppmm.S: New file.
 29892  	* mpn/mips2/umul.s: New file.
 29893  	* mpn/m68k/mc68020/umul.s: New file.
 29894  	* mpn/m68k/mc68020/udiv.s: New file.
 29895  	* mpn/hppa/hppa1_1/umul.s: New file.
 29896  	* mpn/alpha/umul.s: New file.
 29897  	* mpn/a29k/udiv.s: New file.
 29898  	* mpn/a29k/umul.s: New file.
 29899  
 29900  1998-11-17  Torbjorn Granlund  <tege@matematik.su.se>
 29901  
 29902  	* mpn/x86/mul_basecase.S: New file for non-pentiums.
 29903  	* mpn/x86/mul_basecase.S: Move to mpn/x86/pentium.
 29904  
 29905  1998-11-16  Torbjorn Granlund  <tege@matematik.su.se>
 29906  
 29907  	* make.bat: Compile mul_basecase.c and sqr_basecase.c.
 29908  
 29909  1998-11-10  Torbjorn Granlund  <tege@matematik.su.se>
 29910  
 29911  	* mpz/invert.c: Defer writing to parameter `invert' until
 29912  	end.
 29913  
 29914  1998-11-03  Torbjorn Granlund  <tege@matematik.su.se>
 29915  
 29916  	* mpn/pa64/udiv_qrnnd.c: Handle more border cases.
 29917  
 29918  1998-10-29  Torbjorn Granlund  <tege@matematik.su.se>
 29919  
 29920  	* insert-dbl.c: Special case biased exponents < 1; Get boundary for
 29921  	Inf right.
 29922  
 29923  	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define.
 29924  
 29925  1998-10-28  Torbjorn Granlund  <tege@matematik.su.se>
 29926  
 29927  	* mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604.
 29928  	* mpn/powerpc32/addmul_1.s: Likewise.
 29929  	* mpn/powerpc32/lshift.s: Likewise.
 29930  
 29931  1998-10-23  Torbjorn Granlund  <tege@matematik.su.se>
 29932  
 29933  	* config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus.
 29934  
 29935  	* mpn/sparc32/v9/submul_1.s: New file.
 29936  
 29937  1998-10-21  Torbjorn Granlund  <tege@matematik.su.se>
 29938  
 29939  	* mpn/config/mt-pa2hpux: New file.
 29940  	* mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code.
 29941  
 29942  	* config.sub: Recognize hppa2.0 as CPU type.
 29943  
 29944  	* longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd.
 29945  	* mpn/pa64/mul_1.S: New file.
 29946  	* mpn/pa64/addmul_1.S: New file.
 29947  	* mpn/pa64/submul_1.S: New file.
 29948  	* mpn/pa64/umul_ppmm.S: New file.
 29949  	* mpn/pa64/udiv_qrnnd.c: New file.
 29950  
 29951  1998-10-20  Torbjorn Granlund  <tege@matematik.su.se>
 29952  
 29953  	* mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui.
 29954  
 29955  	* mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls.
 29956  	* mpz/gcd_ui.c: Likewise.
 29957  	* mpz/add_ui.c: Likewise.
 29958  	* mpz/sub_ui.c: Likewise.
 29959  
 29960  1998-10-19  Torbjorn Granlund  <tege@matematik.su.se>
 29961  
 29962  	* mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t
 29963  	index.
 29964  
 29965  1998-10-17  Torbjorn Granlund  <tege@matematik.su.se>
 29966  
 29967  	* mpn/sparc32/v9/mul_1.s: Misc cleanups.
 29968  	* mpn/sparc32/v9/addmul_1.s: Misc cleanups.
 29969  
 29970  1998-10-16  Torbjorn Granlund  <tege@matematik.su.se>
 29971  
 29972  	* mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print.
 29973  
 29974  	* mpz/tests/t-powm.c (SIZE): Increase to 50.
 29975  	(EXP_SIZE): New parameter; use it for computing exp_size.
 29976  
 29977  1998-10-15  Torbjorn Granlund  <tege@matematik.su.se>
 29978  
 29979  	* mpn/generic/divrem_newt.c: Use TMP_ALLOC interface.
 29980  
 29981  	* mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining
 29982  	assembly variants of SQRT.
 29983  
 29984  1998-10-14  Torbjorn Granlund  <tege@matematik.su.se>
 29985  
 29986  	* mpn/tests: Clean up timing routines.  Don't include longlong.h
 29987  	where it is not needed.
 29988  	(mpn_print): Handle printing when _LONG_LONG_LIMB.
 29989  	* mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2
 29990  	and do it whether TIMES != 1 or not.
 29991  
 29992  	* mpn/generic/mul_n.c: Delay assignment of `sign' for lower
 29993  	register pressure.
 29994  
 29995  	* mpn/sparc32/v9/mul_1.s: New file.
 29996  
 29997  	* config/mt-sprc9-gcc: New file.
 29998  	* configure.in: Use it.
 29999  
 30000  	* mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a
 30001  	sparc v9 CPU.
 30002  	* mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with
 30003  	a sparc v9 CPU.
 30004  
 30005  	* mpf/sub.c: In initial code for ediff == 0, limit precision
 30006  	before jumping to `normalize'.
 30007  
 30008  1998-10-13  Torbjorn Granlund  <tege@matematik.su.se>
 30009  
 30010  	* mpn/hppa/hppa2_0/add_n.s: New file.
 30011  	* mpn/hppa/hppa2_0/sub_n.s: New file.
 30012  	* mpn/configure.in: Handle hppa2.0 (32-bit code for now).
 30013  
 30014  	* config.guess: Update from egcs 1.1.
 30015  	(9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0
 30016  	machines.
 30017  
 30018  1998-10-07  Torbjorn Granlund  <tege@matematik.su.se>
 30019  
 30020  	* mpz/root.c (mpz_root): New file.
 30021  	* mpz/Makefile.in: Compile it.
 30022  	* make.bat: Likewise.
 30023  	* gmp.h (mpz_root): Declare.
 30024  
 30025  	* mpz/perfpow.c: New file.
 30026  	* mpz/Makefile.in: Compile it.
 30027  	* make.bat: Likewise.
 30028  	* gmp.h (mpz_perfect_power_p): Declare.
 30029  
 30030  	* mpz/remove.c: New file.
 30031  	* mpz/Makefile.in: Compile it.
 30032  	* make.bat: Likewise.
 30033  	* gmp.h (mpz_remove): Declare.
 30034  
 30035  	* mpz/bin_ui.c: New file.
 30036  	* mpz/Makefile.in: Compile it.
 30037  	* make.bat: Likewise.
 30038  	* gmp.h (mpz_bin_ui): Declare.
 30039  
 30040  	* mpz/bin_uiui.c: New file.
 30041  	* mpz/Makefile.in: Compile it.
 30042  	* make.bat: Likewise.
 30043  	* gmp.h (mpz_bin_uiui): Declare.
 30044  
 30045  1998-09-16  Torbjorn Granlund  <tege@matematik.su.se>
 30046  
 30047  	* longlong.h: Test for __powerpc__ in addition to _ARCH_PPC.
 30048  
 30049  Sat Sep  5 17:22:28 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30050  
 30051  	* mpf/cmp_si.c: Compare most significant mantissa limb before
 30052  	trying to deduce anything from the limb count.
 30053  	* mpf/cmp_ui.c: Likewise.
 30054  
 30055  Tue Aug 18 10:24:39 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30056  
 30057  	* mpz/pprime_p.c (mpz_probab_prime_p): Add new code block
 30058  	for doing more dividing.
 30059  
 30060  Sat Aug 15 18:43:17 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30061  
 30062  	* mpn/generic/divrem_newt.c: New name for divrem_newton.c.
 30063  	* mpn/Makefile.in: Corresponding changes.
 30064  	* mpn/configure.in: Likewise.
 30065  
 30066  Wed Aug 12 23:07:09 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30067  
 30068  	* config.guess: Handle powerpc for NetBSD.
 30069  
 30070  Tue Jul 28 23:10:55 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30071  
 30072  	* mpz/fib_ui.c: New file.
 30073  	* mpz/Makefile.in: Compile it.
 30074  	* make.bat: Likewise.
 30075  	* gmp.h (mpz_fib_ui): Declare.
 30076  
 30077  Wed Jun 17 22:52:58 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30078  
 30079  	* make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'.
 30080  
 30081  Wed Jun  3 11:27:32 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30082  
 30083  	* config/mt-pwr: New file.
 30084  	* config/mt-ppc: New file.
 30085  	* configure.in: Use the new files.
 30086  
 30087  Tue Jun  2 13:04:17 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30088  
 30089  	* mpn/sparc32/v9/addmul_1.s: New file.
 30090  	* mpn/config/mt-sprc9: New file.
 30091  	* mpn/configure.in: Use mt-sprc9.
 30092  
 30093  Tue May 26 11:24:18 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30094  
 30095  	* demos/factorize.c (factor_using_pollard_rho): Pass correct
 30096  	parameters in recursive calls; join the two recursion arms.
 30097  
 30098  	* mpf/set_q.c: Set result sign.
 30099  	When normalizing the numerator, don't allow it to increase in size
 30100  	beyond prec.
 30101  
 30102  Tue May 19 17:28:14 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30103  
 30104  	* demos/factorize.c (factor_using_division): Call fflush
 30105  	also for the factor 2.
 30106  
 30107  Mon May 18 15:51:01 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30108  
 30109  	* make.bat: Pass -fomit-frame-pointer.  Do not pass -g.
 30110  
 30111  Tue May  5 01:42:50 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30112  
 30113  	* mpz/Makefile.in (LOCAL_CC): Remove definition.
 30114  
 30115  	* gmp.h: Get rid of GMP_SMALL stuff.
 30116  	* mpz/Makefile.in: Likewise.
 30117  	* mpq/Makefile.in: Likewise.
 30118  	* mpf/Makefile.in: Likewise.
 30119  
 30120  	* mpz/invert.c: Fix typo in comment.
 30121  
 30122  Mon May  4 23:05:32 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30123  
 30124  	* mpn/generic/sqrtrem.c: Check that __arch64__ is not defined
 30125  	before defining sparc SQRT.
 30126  
 30127  Mon Apr 20 19:16:17 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30128  
 30129  	* mpn/generic/gcdext.c: Allow gp to be NULL.
 30130  
 30131  1998-04-03  Torbjorn Granlund  <tege@matematik.su.se>
 30132  
 30133  	* mpn/configure.in: Recognize `alphaev5*', not `alphaev5'.
 30134  
 30135  	* config.guess: Handle CPU variants for NetBSD.
 30136  
 30137  Mon Mar 16 13:07:54 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30138  
 30139  	* mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP,
 30140  	not mpz_tdiv_r_ui (which expects an `unsigned long').
 30141  	(mpz_probab_prime_p): Change type of `r' to mp_limb_t.
 30142  
 30143  Thu Mar 12 17:19:04 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30144  
 30145  	* gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations.
 30146  
 30147  	* config.guess: Update from FSF version.
 30148  	* config.sub: Likewise.
 30149  
 30150  	* config.guess: Add special handling of alpha-*-NetBSD.
 30151  
 30152  Wed Mar 11 00:55:34 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30153  
 30154  	* mpz/inp_str.c: Update from set_str.c.
 30155  	Properly increment `nread' when skipping minus sign.
 30156  
 30157  	* mpz/set_str.c: Check for empty string after having skipped
 30158  	leading zeros.
 30159  
 30160  Mon Mar  9 19:28:00 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30161  
 30162  	* mpz/set_str.c: Skip leading zeros.
 30163  
 30164  Wed Mar  4 19:29:16 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30165  
 30166  	* gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.
 30167  
 30168  	* demos/factorize.c: Rewrite.
 30169  
 30170  1998-02-04  Torbjorn Granlund  <tege@matematik.su.se>
 30171  
 30172  	* configure.in (i[3456]86* etc): Check if using gcc before
 30173  	choosing mt-x86.
 30174  
 30175  	* configure.in (m68*-*-*): New alternative.
 30176  	* config/mt-m68k: New file.
 30177  
 30178  	* mpn/alpha/invert-limb.s: Put tables in text segment,
 30179  	since not all systems support "rdata".
 30180  
 30181  Wed Feb  4 02:20:57 1998  Torbjorn Granlund  <tege@matematik.su.se>
 30182  
 30183  	* gmp.h (__GNU_MP_VERSION_SNAP): New #define.
 30184  	(__GNU_MP_VERSION_MINOR): Now 1.
 30185  
 30186  Wed Jan 28 22:29:36 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30187  
 30188  	* longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION.
 30189  
 30190  Wed Jan 28 20:28:19 1998  Torbjorn Granlund  <tege@sophie.matematik.su.se>
 30191  
 30192  	* mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors.
 30193  
 30194  Mon Jan 26 01:39:02 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30195  
 30196  	* mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small
 30197  	numbers specifically; check small factors, then perform a fermat test.
 30198  
 30199  Tue Jan 13 14:58:28 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30200  
 30201  	* longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb
 30202  	and udiv_qrnnd_preinv.
 30203  
 30204  Wed Jan  7 01:52:54 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30205  
 30206  	* mpn/configure.in (alpha*, extra_functions): Add invert-limb and
 30207  	remove udiv_qrnnd.
 30208  
 30209  	* mpn/tests/divrem.c: Get allocations right.
 30210  
 30211  	* mpn/generic/divrem.c: Conditionally pre-invert most significant
 30212  	divisor limb.
 30213  
 30214  Tue Jan  6 23:08:54 1998  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30215  
 30216  	* mpn/generic/divrem_1.c: Rename variables to comply to conventions.
 30217  	Make `i' have type `mp_size_t'.
 30218  
 30219  Tue Dec 30 22:21:42 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30220  
 30221  	* mpz/tdiv_qr_ui.c: Return the remainder.
 30222  	* mpz/tdiv_r_ui.c: Likewise.
 30223  	* mpz/tdiv_q_ui.c: Likewise.
 30224  	* gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui,
 30225  	mpz_tdiv_q_ui.
 30226  
 30227  	* mpz/tdiv_ui.c: New file.
 30228  	* mpz/Makefile.in: Compile it.
 30229  	* make.bat: Likewise.
 30230  	* gmp.h (mpz_tdiv_ui): Declare.
 30231  
 30232  Fri Nov  7 04:21:15 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30233  
 30234  	* mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc.
 30235  
 30236  	* demos/isprime.c: New file.
 30237  
 30238  	Sat Nov  1 19:32:25 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30239  
 30240  	* mpz/cmp_abs.c: New file.
 30241  	* mpz/Makefile.in: Compile it.
 30242  	* make.bat: Likewise.
 30243  	* gmp.h (mpz_cmp_abs): Declare.
 30244  
 30245  	* mpz/cmp_abs_ui.c: New file.
 30246  	* mpz/Makefile.in: Compile it.
 30247  	* make.bat: Likewise.
 30248  	* gmp.h (mpz_cmp_abs_ui): Declare.
 30249  
 30250  Sat Sep 27 04:49:52 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30251  
 30252  	* mpz/fdiv_r_2exp.c: Get allocation for `tmp' right.
 30253  
 30254  	* mpz/fdiv_q_2exp.c: In final result adjustment code, handle
 30255  	that intermediate result is zero.
 30256  
 30257  	* mpz/tests/t-2exp.c: New file.
 30258  	* mpz/tests/Makefile.in: Handle t-2exp.c.
 30259  
 30260  Fri Sep 26 16:29:21 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30261  
 30262  	* mpz/divexact.c: Fix typo in test for whether to copy numerator to
 30263  	quotient and move that statement to after handling quotient and
 30264  	denominator overlap.  Misc cleanups.
 30265  
 30266  	* mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift
 30267  	calls to `unsigned int'.
 30268  	* mpz/divexact.c: Likewise.
 30269  
 30270  Mon Sep 22 02:19:52 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30271  
 30272  	* mpz/tests/t-powm.c: Decrease `reps' to 2500.
 30273  
 30274  	* mpz/tests/t-pow_ui.c: New file.
 30275  	* mpz/tests/Makefile.in: Handle t-pow_ui.c.
 30276  
 30277  	* mpz/ui_pow_ui.c: Get special cases for exponent and base right.
 30278  
 30279  	* mpz/pow_ui.c: Increase temp space allocation by 1 limb.
 30280  	Split `rsize' into two variables; compute space allocation into
 30281  	`ralloc'.
 30282  
 30283  Sun Sep  7 04:15:12 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30284  
 30285  	* mpn/pa64/lshift.s: New file.
 30286  	* mpn/pa64/rshift.s: New file.
 30287  	* mpn/pa64/sub_n.s: New file.
 30288  
 30289  Sat Sep  6 19:14:13 1997  Torbjorn Granlund  <tege@gmp.tmg.se>
 30290  
 30291  	* mpn/pa64/add_n.s: New file.
 30292  	* mpn/pa64: New directory.
 30293  
 30294  Tue Aug 19 16:17:09 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30295  
 30296  	* mpz/swap.c: New file.
 30297  	* mpz/Makefile.in: Compile it.
 30298  	* make.bat: Likewise.
 30299  	* gmp.h (mpz_swap): Declare.
 30300  
 30301  	* mpn/generic/mul_n.c: Push assignment of x and y pointers into the
 30302  	if/else clauses in several places.  (Decreases register pressure.)
 30303  
 30304  Mon Aug 18 03:29:50 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30305  
 30306  	* mpn/thumb/add_n.s: New file.
 30307  	* mpn/thumb/sub_n.s: New file.
 30308  	* mpn/arm/add_n.s: New file.
 30309  	* mpn/arm/sub_n.s: New file.
 30310  
 30311  	* mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size
 30312  	if most significant limb is zero.
 30313  	* mpz/powm_ui.c: Likewise.
 30314  
 30315  Fri Aug 15 02:13:57 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30316  
 30317  	* mpn/arm/m/mul_1.s: New file.
 30318  	* mpn/arm/m/addmul_1.s: New file.
 30319  
 30320  	* mpn/powerpc32/mul_1.s: Rewrite.
 30321  
 30322  	* mpn/alpha/mul_1.s: Prefix labels with `.'.
 30323  
 30324  Mon Aug 11 02:37:16 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30325  
 30326  	* mpn/powerpc32/add_n.s: Rewrite.
 30327  	* mpn/powerpc32/sub_n.s: Rewrite.
 30328  
 30329  Sun Aug 10 17:07:15 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30330  
 30331  	* mpn/powerpc32/addmul_1.s: Delete obsolete comments.
 30332  	* mpn/powerpc32/submul_1.s: Likewise.
 30333  
 30334  Fri Jul 25 20:07:54 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30335  
 30336  	* mpz/addmul_ui.c: New file.
 30337  	* mpz/Makefile.in: Compile it.
 30338  	* make.bat: Likewise.
 30339  	* gmp.h (mpz_addmul_ui): Declare.
 30340  
 30341  	* mpz/setbit.c: Add missing code after final `else'.
 30342  
 30343  Tue Jul 22 17:45:01 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>
 30344  
 30345  	* mpn/sh/add_n.s: Fix typo.
 30346  	* mpn/sh/sub_n.s: Likewise.
 30347  
 30348  	* longlong.h (ns32k count_trailing_zeros): Fix typo.
 30349  
 30350  	* insert-dbl.c: Check for exponent overflow and return Inf.
 30351  
 30352  	* mpz/get_d.c: Rewrite to avoid rounding errors.
 30353  
 30354  Thu May 29 11:51:07 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30355  
 30356  	* mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure
 30357  	their allocation suffices.
 30358  	* mpq/sub.c: Likewise.
 30359  
 30360  Wed Apr 16 02:24:25 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30361  
 30362  	* demos/pexpr.c: New file.
 30363  
 30364  	* mpn/generic/mul_n.c: Misc optimizations from Robert Harley.
 30365  
 30366  	* gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define.
 30367  
 30368  Sat Apr 12 17:54:04 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30369  
 30370  	* mpz/tstbit.c: New file.
 30371  	* mpz/Makefile.in: Compile it.
 30372  	* make.bat: Likewise.
 30373  	* gmp.h (mpz_tstbit): Declare.
 30374  
 30375  	* mpz/tests/logic.c: Use MPZ_CHECK_FORMAT.
 30376  	* mpz/tests/bit.c: New test.
 30377  	* mpz/tests/Makefile.in: Handle bit.c.
 30378  
 30379  	* mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1.
 30380  
 30381  	* gmp-impl.h (MPZ_CHECK_FORMAT): New #define.
 30382  
 30383  Thu Apr 10 00:30:14 1997  Torbjorn Granlund  <tege@tmg.se>
 30384  
 30385  	* longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2.
 30386  
 30387  Wed Apr  9 18:23:31 1997  Torbjorn Granlund  <tege@pro.tmg.se>
 30388  
 30389  	* gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here...
 30390  	* longlong.h: ...to here.
 30391  
 30392  Sun Mar 30 12:16:23 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30393  
 30394  	* mpn/generic/next_prime.c: New file.
 30395  
 30396  	* mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED.
 30397  	* gmp-impl.h: Put them here.
 30398  
 30399  Fri Mar 28 08:18:05 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30400  
 30401  	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for
 30402  	for x86, but leave disabled for now.
 30403  
 30404  Fri Feb 28 02:39:47 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30405  
 30406  	* mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler
 30407  	for assembly phase.
 30408  	(.s.o): Pass SFLAGS.
 30409  
 30410  Wed Feb 26 06:46:08 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30411  
 30412  	* mpn/configure.in: For Pentium Pro, use default code, not Pentium
 30413  	optimized code.
 30414  
 30415  	* mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro.
 30416  	* mpn/x86/submul_1.S: Likewise.
 30417  
 30418  Thu Feb 13 08:26:09 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30419  
 30420  	* mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from
 30421  	integer.c).
 30422  	* make.bat: Likewise.
 30423  
 30424  Wed Feb  5 05:58:44 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30425  
 30426  	* mpn/configure.in (alpha*): Add cntlz to extra_functions.
 30427  
 30428  Wed Feb  4 03:30:45 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30429  
 30430  	* mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc).
 30431  
 30432  Mon Feb  3 14:21:36 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30433  
 30434  	* make.bat: Fix typo, set_dfl_prc => set_dfl_prec.
 30435  
 30436  Sun Feb  2 02:34:33 1997  Torbjorn Granlund  <tege@matematik.su.se>
 30437  
 30438  	* mpf/out_str.c: After outputting `-', decrement n_digits.
 30439  
 30440  Wed Jan  8 02:50:20 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30441  
 30442  	* mpn/generic/divrem.c: qextra_limbs => qxn.
 30443  
 30444  Wed Dec 18 07:50:46 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30445  
 30446  	* mpz/tests/t-tdiv.c (SIZE): Increase to 200.
 30447  
 30448  Tue Dec 17 19:32:48 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30449  
 30450  	* mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem.
 30451  	* gmp.h (mpn_divrem): New function.
 30452  	* mpn/generic/divrem_newton.c: New file.
 30453  	* mpn/configure.in (functions): Add divrem_newton.
 30454  	* make.bat: Likewise.
 30455  
 30456  Thu Dec 12 17:55:13 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30457  
 30458  	* gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_.
 30459  
 30460  Sat Dec  7 09:40:06 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30461  
 30462  	* mpn/alpha/invert-limb.s: New file.
 30463  
 30464  Thu Dec  5 01:25:31 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30465  
 30466  	* mpz/ui_pow_ui.c (mpz_pow2): New (static) function.
 30467  	(mpz_ui_pow_ui): Rewrite.
 30468  
 30469  	* make.bat: `pre_mod_1.c' => `pre_mod_.c'.  Fix typo in path to
 30470  	gmp-mpar.h.
 30471  
 30472  Fri Nov 15 00:49:55 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30473  
 30474  	* mpz/ui_pow_ui.c: Rewrite for better speed.
 30475  
 30476  Fri Nov  1 16:36:56 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30477  
 30478  	* Makefile.in (recursive make rules): Use `&&' instead of `;' as
 30479  	delimiter.
 30480  
 30481  Fri Oct 25 17:12:36 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30482  
 30483  	* gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline.
 30484  
 30485  Thu Oct 24 15:08:19 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30486  
 30487  	* mpn/fujitsu/rshift.c: Fix typo in loop boundaries.
 30488  
 30489  Fri Oct 18 03:13:54 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30490  
 30491  	* mpn/configure.in: Recognize `nextstep' for m68k variants; likewise
 30492  	for x86 variants.
 30493  
 30494  	* mpn/x86/syntax.h (INSND): New macro.
 30495  	* mpn/x86/[lr]shift.S: Use INSND.
 30496  	* mpn/x86/pentium/[lr]shift.S: Likewise.
 30497  	* mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS.
 30498  
 30499  	* gmp-impl.h: In code for determining endianness, test also
 30500  	__BIG_ENDIAN__ and __hppa__.  Remove test of __NeXT__.
 30501  
 30502  Wed Oct 16 03:50:34 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30503  
 30504  	* mpf/set_str.c: Let `prec' determine precision used in
 30505  	exponentiation code; decrease allocation accordingly.
 30506  
 30507  	* mpn/vax: Change `jsob*' to `sob*' in all files.
 30508  
 30509  Tue Oct 15 03:54:06 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30510  
 30511  	* longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient
 30512  	to DImode (divu.d generates a 64-bit quotient).
 30513  
 30514  	* configure.in (m88110*): Fix typo.
 30515  
 30516  	* mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow.
 30517  
 30518  	* gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from
 30519  	float to double.
 30520  	* mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly
 30521  	field.
 30522  
 30523  	* mpf/get_str.c: Let `prec' determine precision used in
 30524  	exponentiation code; decrease allocation accordingly.
 30525  
 30526  Sun Oct 13 03:31:53 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30527  
 30528  	* longlong.h: Major cleanup.
 30529  	(__udiv_qrnnd_c): Compute remainders using multiply and subtract,
 30530  	not explicit `%' operator.
 30531  	(C umul_ppmm): Get rid of a redundant __ll_lowpart.
 30532  
 30533  	* mpz/invert.c: Properly detect all operands that would yield an
 30534  	undefined inverse; make sure the inverse is always positive.
 30535  
 30536  	* mpz/xor.c: New file.
 30537  	* mpz/Makefile.in: Compile it.
 30538  	* make.bat: Likewise.
 30539  	* gmp.h (mpz_xor): Declare.
 30540  
 30541  	* mpz/tests/logic.c: Also test mpz_xor.
 30542  
 30543  	* mpz/lcm.c: Special case for when either operand equals 0.
 30544  
 30545  Sat Oct 12 01:57:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30546  
 30547  	* mpn/generic/gcd.c (find_a): Don't inline on x86.
 30548  
 30549  	* Makefile.in (CFLAGS): Default to just `-g'.
 30550  
 30551  	* configure.in: Recognize 386 and 486 wherever other x86 cpus are
 30552  	recognized.
 30553  	* configure.in: Use mt-x86 for all x86 cpus.
 30554  	* config/mt-x86: New file.
 30555  
 30556  	* mpn/alpha/cntlz.s: New file.
 30557  
 30558  Tue Oct  8 00:16:18 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30559  
 30560  	* longlong.h: Define smul_ppmm for Fujitsu vpp/uxp.
 30561  	Rewrite umul_ppmm to actually work on the hardware.
 30562  
 30563  	* mpn/x86/sub_n.S: Avoid parens around displacement of `leal'.
 30564  	* mpn/x86/add_n.S: Likewise.
 30565  
 30566  	* mpn/x86/syntax.h (R): Define differently depending on __STDC__.
 30567  
 30568  Mon Oct  7 16:48:08 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30569  
 30570  	* longlong.h: Don't test for __NeXT__ in outer 68k conditional;
 30571  	add test for __m68k__.
 30572  
 30573  Sun Oct  6 00:59:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30574  
 30575  	* gmp.h: Declare mpn_random.
 30576  	* make.bat: Compile mpn/generic/random.c.
 30577  
 30578  	* longlong.h: Define umul_ppmm for Fujitsu vpp/uxp.
 30579  
 30580  	* gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))'
 30581  	with test also for __GNUC_MINOR__.
 30582  
 30583  	* gmp.h: Don't define macros using __builtin_constant_p when using
 30584  	NeXT's compiler.
 30585  
 30586  Fri Oct  4 16:53:50 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30587  
 30588  	* mpz/lcm.c: New file.
 30589  	* mpz/Makefile.in: Compile it.
 30590  	* make.bat: Likewise.
 30591  	* gmp.h (mpz_lcm): Declare.
 30592  
 30593  Wed Sep 25 00:06:21 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30594  
 30595  	* mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is
 30596  	within limits of an `unsigned long int'.
 30597  
 30598  	* mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'.
 30599  
 30600  Tue Sep 24 18:58:20 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30601  
 30602  	* mpz/powm_ui.c: Make result always positive.
 30603  
 30604  	* urandom.h (urandom): Make it return mp_limb_t.
 30605  
 30606  	* gmp-impl.h (CNST_LIMB): New macro.
 30607  	* mpn/mp_bases.c: Use CNST_LIMB.
 30608  	* mpn/generic/hamdist.c (popc_limb): Likewise.
 30609  	* mpn/generic/popcount.c (popc_limb): Likewise.
 30610  	* mpn/generic/perfsqr.c: Likewise.
 30611  
 30612  Fri Sep 20 03:08:10 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30613  
 30614  	* mpz/pprime_p.c: When n <= 3, don't clear out n before using it.
 30615  
 30616  Wed Sep 18 11:22:45 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30617  
 30618  	* mpn/fujitsu/mul_1.c: New file.
 30619  	* mpn/fujitsu/addmul_1.c: New file.
 30620  	* mpn/fujitsu/sub_n.c: New file.
 30621  	* mpn/fujitsu/add_n.c: Mew file.
 30622  
 30623  Sun Sep 15 03:13:02 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30624  
 30625  	* mpn/generic/random.c: New file.
 30626  	* mpn/configure.in (functions): Add `random'.
 30627  
 30628  	* gmp-impl.h (MPN_COPY): Define as annotated inline function for
 30629  	Crays and Fujitsu VPPs.
 30630  
 30631  	* gmp.h (mp_size_t): Define as `int' for non-MPP Cray.
 30632  	(mp_exp_t): Likewise.
 30633  
 30634  	* configure.in: Add support for Fujitsu VPP machines.
 30635  	* mpn/configure.in: Likewise.
 30636  	* config.guess: Likewise.
 30637  	* config.sub: Likewise.
 30638  
 30639  	* mpn/fujitsu/rshift.c: New file.
 30640  	* mpn/fujitsu/lshift.c: New file.
 30641  	* mpn/fujitsu: New directory, for Fujitsu VPP machines.
 30642  
 30643  Wed Sep 11 11:34:38 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30644  
 30645  	* mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n.
 30646  	Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter
 30647  	list to work with __gmpn_mul_basecase.
 30648  	(__gmpn_sqr): New name for impn_sqr_n.
 30649  	Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter
 30650  	list to work with __gmpn_sqr_basecase.
 30651  	(mpn_mul_n): Update calls to match new names and parameter conventions.
 30652  	* gmp-impl.h (MPN_MUL_N_RECURSE): Likewise.
 30653  	(MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE.
 30654  	Update calls to match new names and parameter conventions.
 30655  	* mpn/generic/mul.c: Never perform multiply explicitly here, call
 30656  	__gmpn_mul_basecase instead.
 30657  	Update calls to match new names and parameter conventions.
 30658  
 30659  	* mpn/x86/mul_basecase.S: New file.
 30660  	* mpn/generic/mul_basecase.c: New file.
 30661  	* mpn/generic/sqr_basecase.c: New file.
 30662  
 30663  Wed Sep  4 02:59:21 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30664  
 30665  	* mpz/set_str.c: Let `0b' and `0B' mean base 2.
 30666  
 30667  Fri Aug 30 00:44:00 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30668  
 30669  	* longlong.h (x86 umul_ppmm): Work around GCC bug that was
 30670  	triggered by Aug 28 change.
 30671  
 30672  	* mpbsd/min.c (digit_value_in_base): New function.
 30673  
 30674  	* mpz/set_str.c: Refine allocation size computation, use
 30675  	chars_per_bit_exactly instead of chars_per_limb.
 30676  
 30677  	* mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc.
 30678  
 30679  Wed Aug 28 02:52:14 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30680  
 30681  	* longlong.h (x86 umul_ppmm): Don't cast result operands.
 30682  	(x86 udiv_qrnnd): Likewise.
 30683  	(default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm.
 30684  	(default umul_ppmm): New #define using smul_ppmm.
 30685  	(vax smul_ppmm): New #define.
 30686  	(vax umul_ppmm): Delete.
 30687  	(POWER umul_ppmm): Delete.
 30688  	(IBM 370 smul_ppmm): New #define.
 30689  	(IBM 370 umul_ppmm): Delete.
 30690  	(IBM RT/ROMP smul_ppmm): New #define.
 30691  	(IBM RT/ROMP umul_ppmm): Delete.
 30692  
 30693  Tue Aug 27 01:03:25 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30694  
 30695  	* gmp-impl.h (__gmp_0): Make it `const'.
 30696  
 30697  	* mpn/Makefile.in (clean mostlyclean): Comment out recursive clean
 30698  	of `tests'.
 30699  
 30700  	* mpn/generic/mul.c: Identify when we do squaring, and call
 30701  	impn_sqr_n_basecase/impn_sqr_n as appropriate.  Use
 30702  	KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD.
 30703  	Don't #define KARATSUBA_THRESHOLD.
 30704  
 30705  	* mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD.
 30706  	(impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by
 30707  	Robert Harley.
 30708  	(impn_sqr_n_basecase): Rewrite.
 30709  
 30710  	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define.
 30711  	(KARATSUBA_SQR_THRESHOLD): Likewise.
 30712  	(MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD.
 30713  	(MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD.
 30714  
 30715  	* configure.in: Fix typo in last change.
 30716  
 30717  Mon Aug 26 22:25:18 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30718  
 30719  	* mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'.
 30720  	* mpf/random2.c: Likewise.
 30721  
 30722  Sun Aug 25 00:07:09 1996  Torbjorn Granlund  <tege@quiet.matematik.su.se>
 30723  
 30724  	* mpz/tests/t-mul.c: Also test squaring.
 30725  
 30726  Fri Aug 16 05:12:08 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30727  
 30728  	* mp_clz_tab.c (__clz_tab): Declare as `const'.
 30729  	* version.c (gmp_version): Likewise.
 30730  	* mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise.
 30731  
 30732  Thu Aug 15 02:34:47 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30733  
 30734  	* gmp.h: Fix typo, `mips__' => `__mips'.
 30735  
 30736  	* mpf/set_str.c: Allow a number to start with a period, if next
 30737  	position contains a digit.
 30738  
 30739  Tue Aug 13 18:41:25 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30740  
 30741  	* mpz/gcdext.c: Get cofactor sign right for negative input operands.
 30742  	Clean up code for computing tt.
 30743  
 30744  	* mpz/invert.c: Get rid of variable `rv'.
 30745  
 30746  	* mpz/divexact.c: Test for zero divisor in special case for zero
 30747  	dividend.
 30748  
 30749  Mon Aug 12 18:04:07 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30750  
 30751  	* mpz/?div_*_ui.c: Special case for division by 0.
 30752  	* mpz/tdiv_q.c: Likewise.
 30753  
 30754  Sat Aug 10 14:45:26 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30755  
 30756  	* mpz/dmincl.c: Special case for division by 0.
 30757  
 30758  	* mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle
 30759  	it when computing size after mpn_divmod_1 call.
 30760  
 30761  	* mp_bpl.c: (__gmp_junk): New variable.
 30762  	(__gmp_0): New constant.
 30763  
 30764  	* gmp-impl.h (DIVIDE_BY_ZERO): New #define.
 30765  
 30766  Fri Aug  9 20:03:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30767  
 30768  	* mpz/divexact.c: Test for dividend being zero before testing
 30769  	for small divisors.
 30770  
 30771  Thu Aug  8 13:20:23 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30772  
 30773  	* configure.in: Require operating system specification for cpus
 30774  	where assembly syntax differs between system.
 30775  
 30776  	* Makefile.in (many targets): Change `-' action prefix to `@'.
 30777  
 30778  	* mpn/Makefile.in: (distclean): Fix typo.
 30779  
 30780  	* mpq/cmp_ui.c: Rename function to _mpq_cmp_ui.
 30781  	(mpq_cmp_ui): #undef deleted.
 30782  	* mpz/cmp_si.c: Rename function to _mpz_cmp_si.
 30783  	(mpz_cmp_si): #undef deleted.
 30784  	* mpz/cmp_ui.c: Rename function to _mpz_cmp_ui.
 30785  	(mpz_cmp_ui): #undef deleted.
 30786  	* Makefile.in: Corresponding changes.
 30787  
 30788  	* mpf/get_prc.c: Return the *highest* precision achievable.
 30789  
 30790  	* mpf/get_str.c: Complete rewrite.
 30791  
 30792  	* mpf/set_str.c (swapptr): New #define.
 30793  	(assert): New #define.
 30794  	* mpf/set_str.c: Set prec to one more than the saved _mp_prec.
 30795  	Misc cleanups.
 30796  
 30797  	* mpz/set_str.c: #include string.h.
 30798  	* mpf/out_str.c: #include string.h.
 30799  	* mpbsd/xtom.c: #include string.h and ctype.h.
 30800  	* mpbsd/mout.c: #include string.h.
 30801  
 30802  Wed Aug  7 11:46:04 EDT 1996  Ken Weber <kweber@mcs.kent.edu>
 30803  
 30804  	* mpn/generic/gcd.c: Reorder mpn_gcd argument list.
 30805  	* mpz/gcd.c: Change call to mpn_gcd.
 30806  	* gmp.texi: Update manual entry on mpn_gcd.
 30807  	* mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod
 30808  	reentrant.
 30809  
 30810  Wed Aug  7 02:15:38 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30811  
 30812  	* mpf/get_str.c: Rewrite code for converting integral part of a
 30813  	number with both an integral and fractional part.
 30814  
 30815  	* mpf/set_str.c: Get rid of variable xxx.  New variables madj and radj.
 30816  	In exp_in_base==0 case, add madj to msize for EXP field.
 30817  
 30818  	* mpz/tests/t-gcd.c: Test deleted.  Rename t-gcd2.c to t-gcd.c.
 30819  	Increase reps to 2000.
 30820  	* mpz/tests/t-gcd2.c: Get rid of mpz_refgcd.
 30821  
 30822  	* mpf/set_str.c: Ignore excess limbs in MP,MSIZE.
 30823  
 30824  Thu Jul 25 04:39:10 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30825  
 30826  	* mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32".
 30827  
 30828  Wed Jul 24 02:27:02 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30829  
 30830  	* mpn/generic/gcdext.c: Reorganize and clean up.  Get rid of all
 30831  	signed limb arithmetic.
 30832  
 30833  Mon Jul 22 02:39:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30834  
 30835  	* mpn/generic/gcdext.c (mpn_gcdext): For large enough operands,
 30836  	work with most significant *two* limbs.
 30837  	(div2): New function (two variants).
 30838  	(THRESHOLD): New #define.
 30839  
 30840  	* mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call.
 30841  
 30842  	* longlong.h (alpha UMUL_TIME): Now 30.
 30843  	(alpha UDIV_TIME): Now 350.
 30844  	(x86 UMUL_TIME): Now 10 (let Pentium decide).
 30845  	(SuperSPARC UDIV_TIME): Override default.
 30846  
 30847  	* extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here.
 30848  
 30849  	* extract-dbl.c: New name for extract-double.c.
 30850  	* insert-dbl.c: New name for insert-double.c.
 30851  	* Makefile.in: Corresponding changes.
 30852  	* make.bat: Likewise.
 30853  
 30854  	* mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp.
 30855  	* mpq/Makefile.in: Likewise.
 30856  	* mpf/Makefile.in: Likewise.
 30857  
 30858  Sat Jul 20 01:35:18 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30859  
 30860  	* mpz/getlimbn.c: Take ABS of integer->_mp_size.
 30861  
 30862  	* mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb.
 30863  
 30864  Thu Jul 18 00:31:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30865  
 30866  	* mpn/generic/popcount.c (popc_limb): Use different masking trick
 30867  	for first step (due to David Seal).
 30868  	* mpn/generic/hamdist.c (popc_limb): Likewise.
 30869  
 30870  Wed Jul 17 23:21:48 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30871  
 30872  	* mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs.
 30873  
 30874  Sun Jul 14 17:47:46 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30875  
 30876  	* configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8.
 30877  
 30878  Thu Jul 11 14:05:54 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
 30879  
 30880  	* longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
 30881  	for the '020, '030, '040, and '332.  Define count_leading_zeros
 30882  	for the '020, '030, '040, and '060.
 30883  
 30884  Sun Jul 14 15:24:53 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30885  
 30886  	From Joe Keane:
 30887  	* mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp.
 30888  
 30889  Fri Jul 12 17:11:17 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30890  
 30891  	* mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it
 30892  	disabled for now.
 30893  
 30894  	* mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE.
 30895  
 30896  Wed Jul 10 03:17:45 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30897  
 30898  	* cre-mparam.c: Delete obsolete file.
 30899  
 30900  	* gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32.
 30901  	* longlong.h: Test __mips instead of __mips__.
 30902  
 30903  Sun Jul  7 23:19:13 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30904  
 30905  	* longlong.h (_PROTO): Define, unless already defined.
 30906  	(alpha __udiv_qrnnd): Declare using _PROTO.
 30907  	(hppa __udiv_qrnnd): Likewise.
 30908  	(sparc __udiv_qrnnd): Likewise.
 30909  
 30910  Mon Jul  1 01:44:30 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30911  
 30912  	* config.guess: Update from master version; add Cray x90 handling.
 30913  
 30914  Wed Jun 26 05:35:02 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30915  
 30916  	* mpn/power/add_n.s (__mpn_add_n): Work around GAS bug.
 30917  	* mpn/power/sub_n.s (__mpn_sub_n): Likewise.
 30918  
 30919  	* insert-double.c: Rework loop to avoid potential overflow.
 30920  
 30921  	* mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs.
 30922  
 30923  	* mpq/tests/t-get_d.c (SIZE): Special case for vax.
 30924  
 30925  	* gmp.h (mpX_cmp_ui): #define also when ! __GNUC__.
 30926  
 30927  Mon Jun 24 17:13:21 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30928  
 30929  	* longlong.h (vax sdiv_qrnnd): Fix typo.
 30930  
 30931  Sat Jun 15 01:33:33 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30932  
 30933  	* gmp.h: Support `small' and `large' type and function variants,
 30934  	controlled by GMP_SMALL.
 30935  
 30936  	* mpz/Makefile.in (.c.o): Compile each function twice, for small and
 30937  	large variant.
 30938  	(MPZS_OBJS): New variable.
 30939  	(libmpz.a): Include MPZS_OBJS in archive.
 30940  	* mpf/Makefile.in: Analogous changes.
 30941  	* mpq/Makefile.in: Analogous changes.
 30942  
 30943  	* gmp.h: Prefix all functions with __gmp, to allow namespace-clean
 30944  	internal calls.
 30945  
 30946  	* mp.h: Rip out __MP_SMALL__ stuff.
 30947  	(__mpz_struct): mp_size_t => int.
 30948  
 30949  	* mpz/invert.c: #include "gmp-impl.h".
 30950  	Use MPZ_TMP_INIT, not mpz_init.
 30951  
 30952  	* mpz/gcdext.c: Rewrite to call mpn_gcdext.
 30953  
 30954  Fri Jun 14 18:05:29 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30955  
 30956  	* mpn/generic/gcdext.c (s0size): New parameter.
 30957  	* gmp.h (mpn_gcdext): Update prototype.
 30958  
 30959  	* mpn/generic/gcdext.c: Major rewrite.
 30960  
 30961  Mon Jun 10 00:14:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30962  
 30963  	* mpn/generic/dump.c: Add missing `else'.
 30964  
 30965  Fri Jun  7 03:35:12 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30966  
 30967  	* Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html.
 30968  
 30969  Thu Jun  6 19:00:53 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30970  
 30971  	* Version 2.0.2 released.
 30972  
 30973  	* install.sh: New file.
 30974  	* Makefile.in (INSTALL): Use install.sh.
 30975  	(install-normal): New name for target `install'.
 30976  	(install): New dummy target.
 30977  
 30978  	* mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0).
 30979  	* mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0).
 30980  
 30981  	* config/mt-linux (AR_FLAGS): New file.
 30982  	* configure.in: Use config/mt-linux for all linux systems.
 30983  
 30984  Tue Jun  4 03:42:18 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 30985  
 30986  	* Version 2.0.1 released.
 30987  
 30988  	* mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type.
 30989  
 30990  	* extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if.
 30991  
 30992  	* insert-double.c: Don't #include stdlib.h.
 30993  
 30994  	* gmp-impl.h (union ieee_double_extract): Test sparc and __sparc.
 30995  	Do not test __sparc__.
 30996  
 30997  	* mpf/reldiff.c: Change declaration to work around irix5 compiler bug.
 30998  	* mpq/equal.c: Likewise.
 30999  
 31000  	* mpn/generic/gcd.c: Delete spurious comma at end of enumeration.
 31001  
 31002  	* mpn/generic/gcdext.c: Add K&R declaration syntax.
 31003  	* stack-alloc.h: Likewise.
 31004  	* insert-double.c: Likewise.
 31005  	* extract-double.c: Likewise.
 31006  	* mpf/tests/reuse.c: Likewise.
 31007  	* mpz/tests/reuse.c: Likewise.
 31008  	* mpf/tests/t-sub.c: Likewise.
 31009  	* mpf/tests/t-add.c: Likewise.
 31010  	* mpf/tests/t-muldiv.c: Likewise.
 31011  	* mpf/tests/t-conv.c: Likewise.
 31012  	* mpf/tests/ref.c: Likewise.
 31013  
 31014  	* mpn/config/t-oldgas: Renamed from t-freebsd.
 31015  	* mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux
 31016  	configurations.
 31017  
 31018  	* mpn/powerpc32/mul_1.s: Really clear cy before entering loop.
 31019  	* mpn/powerpc32/*.s: Fix power/powerpc syntax issues.
 31020  
 31021  	* mpn/config/t-ppc-aix: New file.
 31022  	* mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power.
 31023  
 31024  Wed May 29 02:07:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31025  
 31026  	* gmp.h (mp_bits_per_limb): Change qualifier from `const' to
 31027  	__gmp_const.
 31028  
 31029  	* gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter.
 31030  	* mpf/iset_str.c: Likewise.
 31031  
 31032  Mon May 27 00:15:58 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31033  
 31034  	* gmp-impl.h: Declare __gmp_extract_double.
 31035  
 31036  	* mpz/set_q.c: Delete unused variables.
 31037  
 31038  	* gmp.h (mpq_equal): Declare.
 31039  
 31040  	* mpf/eq.c: mpf_cmp2 -> mpf_eq.
 31041  
 31042  Fri May 24 03:20:44 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31043  
 31044  	* mpz/iset_d.c: Don't include <math.h>.
 31045  
 31046  	* insert-double.c (__gmp_scale2): New name for scal2.
 31047  	* mpz/get_d.c: Corresponding change.
 31048  	* mpf/get_d.c: Likewise.
 31049  	* mpq/get_d.c: Likewise.
 31050  	* gmp-impl.h: Declare __gmp_scale2.
 31051  
 31052  	* mpn/generic/scan0.c: Clarify comment.
 31053  
 31054  	* mpz/set_q.c: New file.
 31055  	* Makefile.in: Compile it.
 31056  	* make.bat: Likewise.
 31057  	* gmp.h: Declare mpz_set_q.
 31058  
 31059  	* insert-double.c: New file.
 31060  	* Makefile.in: Compile it.
 31061  	* make.bat: Likewise.
 31062  
 31063  	* mpz/get_d.c: New file.
 31064  	* mpz/Makefile.in: Compile it.
 31065  	* make.bat: Likewise.
 31066  	* gmp.h: Declare mpz_get_d.
 31067  
 31068  	* mpf/get_d.c: New file.
 31069  	* mpf/Makefile.in: Compile it.
 31070  	* make.bat: Likewise.
 31071  	* gmp.h: Declare mpf_get_d.
 31072  
 31073  	* make.bat: Compile things in alphabetical order.
 31074  
 31075  	* gmp-impl.h (MP_BASE_AS_DOUBLE): New #define.
 31076  	(LIMBS_PER_DOUBLE): New #define.
 31077  
 31078  	* extract-double.c: New file.
 31079  	* Makefile.in: Compile it.
 31080  	* make.bat: Likewise.
 31081  	* mpz/set_d.c: Rewrite to use __gmp_extract_double.
 31082  	* mpf/set_d.c: Likewise.
 31083  
 31084  	* mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up.
 31085  
 31086  Wed May 22 02:48:35 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31087  
 31088  	* gmp-impl.h: Rework code for defining ieee_double_extract.
 31089  	(IEEE_DOUBLE_BIG_ENDIAN): Macro removed.
 31090  	(_GMP_IEEE_FLOATS): New macro.
 31091  	* mpn/vax/gmp-mparam.h: Delete.
 31092  
 31093  	* mpn/config/t-pwr-aix: New file.
 31094  	* mpn/configure.in: Use t-pwr-aix for aix 4 and later.
 31095  
 31096  Mon May 20 16:30:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31097  
 31098  	* gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols.
 31099  
 31100  	* mpf/tests/t-add.c (oo): Add some `l' printf modifiers.
 31101  	* mpf/tests/t-sub.c (oo): Likewise.
 31102  	* mpf/tests/t-conv.c (oo): Likewise.
 31103  	* mpf/tests/t-sqrt.c (oo): Likewise.
 31104  
 31105  	* mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables.
 31106  
 31107  	* mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers.
 31108  
 31109  Fri May 17 02:24:43 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31110  
 31111  	* mpz/set_d.c: Call _mpz_realloc.
 31112  
 31113  	* mpq/set_z.c: New file.
 31114  	* mpq/Makefile.in: Compile it.
 31115  	* make.bat: Likewise.
 31116  	* gmp.h: Declare mpq_set_z.
 31117  
 31118  	* mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in.
 31119  	* mpf/Makefile.in (test): Delete spurious target.
 31120  	* mpq/Makefile.in (test): Likewise.
 31121  
 31122  	* mpf/out_str.c: Use `e' to separate exponent when base <= 10.
 31123  
 31124  	* mpn/configure.in: Treat ultrasparc just like sparc v8,
 31125  	until 64-bit compilers are ready.
 31126  
 31127  	* mpf/set_d.c: Make it work for 64-bit machines.
 31128  
 31129  Thu May 16 20:53:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31130  
 31131  	* gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian
 31132  	machines.
 31133  	* mpn/x86/gmp-mparam.h: Delete file.
 31134  
 31135  	* configure.in: Treat microsparc like sparc8.
 31136  
 31137  	* urandom.h: Test __alpha instead of __alpha__, since the former
 31138  	is the standard symbol.
 31139  	* mpn/generic/random2.c: Likewise.
 31140  	* mpf/random2.c: Likewise.
 31141  
 31142  Tue May 14 13:42:39 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)
 31143  
 31144  	* mpz/set_f.c: New file.
 31145  	* mpz/Makefile.in: Compile it.
 31146  	* gmp.h: Declare mpz_set_f.
 31147  
 31148  	* mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms.
 31149  
 31150  Tue May 14 13:03:07 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)
 31151  
 31152  	* make.bat: Add all new files.
 31153  
 31154  Sun May 12 22:24:36 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31155  
 31156  	* mpf/set_z.c: New file.
 31157  	* mpf/Makefile.in: Compile it.
 31158  	* gmp.h: Declare mpf_set_z.
 31159  
 31160  Sat May 11 19:26:25 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31161  
 31162  	* gmp.h: Declare mpf_set_q.
 31163  
 31164  	* mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call.
 31165  
 31166  Fri May 10 17:37:38 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31167  
 31168  	* mpf/set_q.c: New file.
 31169  	* mpf/Makefile.in: Compile it.
 31170  
 31171  	* config.sub: Recognize sparc8.
 31172  
 31173  Wed May  8 09:19:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31174  
 31175  	* mpf/tests/t-dm2exp.c: New file.
 31176  
 31177  	* mpf/tests/t-add.c: Correct header comment.
 31178  	* mpf/tests/t-sub.c: Likewise.
 31179  	* mpf/tests/t-sqrt.c: Likewise.
 31180  
 31181  	* mpf/div.c: Misc variable name cleanups.
 31182  	* mpf/div_ui.c: Base more closely on mpf/div.c.
 31183  	* mpf/ui_div.c: Likewise.
 31184  
 31185  	* mpz/tests/Makefile.in (check): Depend on Makefile.
 31186  	* mpq/tests/Makefile.in (check): Likewise.
 31187  	* mpf/tests/Makefile.in (check): Likewise.
 31188  
 31189  	* mpf/tests/t-muldiv.c: New file.
 31190  	* mpf/tests/Makefile.in: Compile and run `t-muldiv'.
 31191  	(t-ref.o): Delete spurious rule.
 31192  
 31193  	* mpf/sqrt.c: Properly detect negative input operand.
 31194  
 31195  	* mpf/sqrt_ui.c: Delete spurious header comment.
 31196  	* mpf/sqrt.c: Likewise.
 31197  	* mpz/sqrt.c: Likewise.
 31198  
 31199  	* mpz/tests/reuse.c (main): Read `reps' from command line.
 31200  
 31201  	* mpf/tests/reuse.c: New file.
 31202  	* mpf/tests/Makefile.in: Compile and run `reuse'.
 31203  
 31204  	* mpf/mul_ui.c: Disable code for removing low zero limbs.
 31205  
 31206  	* mpf/div.c: Fix condition for when vp and qp overlaps.
 31207  
 31208  	* mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs.
 31209  
 31210  	* mpf/out_str.c: Don't output '\n' after exponent.
 31211  
 31212  	* mpf/add_ui.c: New special case for when U is completely cancelled.
 31213  
 31214  Wed Apr 24 05:33:28 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31215  
 31216  	* Version 2.0 released.
 31217  
 31218  	* All files: Update FSF's address.
 31219  
 31220  	* Makefile.in (gmp_toc.html): New name for gmp.html.
 31221  	(TAGS): Depend on force.
 31222  
 31223  	* mpf/tests/t-conv.c: Pass -base to mpf_set_str.
 31224  
 31225  Sat Apr 20 03:54:06 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31226  
 31227  	* Makefile.in (ps): New target, depend on gmp.ps.
 31228  
 31229  Fri Apr 19 14:03:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31230  
 31231  	* mpf/out_str.c: Print `@' before exponent, not `e'.
 31232  
 31233  	* make.bat: Update from Makefiles.
 31234  
 31235  Thu Apr 18 01:22:05 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31236  
 31237  	* mpf/set_str.c: If parameter `base' is negative, expect exponent
 31238  	to be decimal, otherwise in the same base as the mantissa.
 31239  
 31240  Wed Apr 17 17:28:36 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31241  
 31242  	* mpf/set_dfl_prec.c: Don't return anything.
 31243  	* gmp.h: Corresponding changes.
 31244  
 31245  	* mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts.
 31246  	* mpf/init2.c: Likewise.
 31247  	* mpf/get_prc.c: Likewise.
 31248  	* mpf/set_prc.c: Likewise.
 31249  	* mpf/set_prc_raw.c: Likewise.
 31250  	* mpz/popcount.c: Likewise.
 31251  	* mpz/hamdist.c: Likewise.
 31252  	* mpz/scan1.c: Likewise.
 31253  	* mpz/scan0.c: Likewise.
 31254  	* mpn/generic/popcount.c: Likewise.
 31255  	* mpn/generic/hamdist.c: Likewise.
 31256  	* mpn/generic/scan1.c: Likewise.
 31257  	* mpn/generic/scan0.c: Likewise.
 31258  	* gmp.h: Likewise.
 31259  
 31260  	* mpf/eq.c: New file, based on mpf/diff.c.
 31261  	* mpf/diff.c: Delete.
 31262  	* mpf/Makefile.in: Corresponding changes.
 31263  	* gmp.h: Likewise.
 31264  
 31265  	* mpf/reldiff.c: New file.
 31266  	* mpf/Makefile.in: Compile it.
 31267  	* gmp.h: Declare mpf_reldiff.
 31268  
 31269  	* mpz/iset_d.c: New file.
 31270  	* mpz/Makefile.in: Compile it.
 31271  	* gmp.h: Declare mpz_init_set_d.
 31272  
 31273  Tue Apr 16 16:28:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31274  
 31275  	* Makefile.in (gmp.html): Pass -acc to texi2html.
 31276  
 31277  Mon Apr 15 16:20:24 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31278  
 31279  	* mpf/set_str.c: Switch off code for defaulting the base from the
 31280  	leading characters.
 31281  
 31282  	* gmp.h (mp?_sign): Delete.
 31283  	(mp?_sgn): New macros.
 31284  
 31285  Fri Apr 12 17:23:33 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31286  
 31287  	* Makefile.in (gmp.dvi): Delete tmp.* at end of rule.
 31288  
 31289  Wed Apr 10 22:52:02 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)
 31290  
 31291  	* mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t.
 31292  	* gmp.h: Corresponding change.
 31293  
 31294  	* gmp.h (mp_bits_per_limb): Make it const.
 31295  
 31296  Sat Mar 30 01:20:23 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31297  
 31298  	* configure.in: Re-enable recognition of with_gcc.
 31299  
 31300  	* mpf/Makefile.in (.c.o): Pass XCFLAGS.
 31301  	* mpn/Makefile.in (.c.o): Likewise.
 31302  	* mpz/Makefile.in (.c.o): Likewise.
 31303  	* mpq/Makefile.in (.c.o): Likewise.
 31304  	* mpbsd/Makefile.in (.c.o): Likewise.
 31305  	* mpf/tests/Makefile.in (.c.o): Likewise.
 31306  	* mpz/tests/Makefile.in (.c.o): Likewise.
 31307  	* mpq/tests/Makefile.in (.c.o): Likewise.
 31308  
 31309  	* Makefile.in (XCFLAGS): Default to empty.
 31310  	(FLAGS_TO_PASS): Pass on XCFLAGS.
 31311  	(.c.o): Pass XCFLAGS.
 31312  
 31313  	* config/mt-m88110 (XCFLAGS): Define instead of CC.
 31314  	* config/mt-sprc8-gcc (XCFLAGS): Likewise.
 31315  	* config/mt-supspc-gcc (XCFLAGS): Likewise.
 31316  
 31317  	* configure: Don't default CC to "gcc -O2" is -with-gcc=no was
 31318  	specified.
 31319  
 31320  Mon Mar 25 01:07:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31321  
 31322  	* urandom.h: Test for __SVR4 in addition to __svr4__.
 31323  
 31324  	* mp_bpl.c (mp_bits_per_limb): Declare as `const'.
 31325  
 31326  	* Makefile.in (CFLAGS): `-O2' => `-O'.
 31327  	* mpn/Makefile.in (CFLAGS): Likewise.
 31328  
 31329  	* gmp-impl.h: Get rid of obsolete field access macros.
 31330  
 31331  	* mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris
 31332  	cc compiler bug.
 31333  
 31334  	* gmp.h (__MPN): Make it work also for non-ANSI compilers.
 31335  
 31336  Thu Mar 21 01:07:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31337  
 31338  	* mpf/sub.c: New special case for ediff <= 1 before generic code.
 31339  	Simplify generic code for ediff == 0.
 31340  	Rename uexp => exp.
 31341  
 31342  Mon Mar 11 18:24:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31343  
 31344  	* mpf/tests/*.c: Use ref_mpf_sub for error calculation.
 31345  	* mpf/tests/Makefile.in: Link ref.o to all executables.
 31346  
 31347  	* mpf/tests/t-sub.c: Make u = v + 1 with 50% probability.
 31348  
 31349  Sun Mar 10 21:03:17 1996  Torbjorn Granlund  (tege@tiny.matematik.su.se)
 31350  
 31351  	* mpf/get_str.c: In digit development loop for fractions, change
 31352  	loop condition from `<' to `<='.
 31353  
 31354  Thu Mar  7 04:58:11 1996  Torbjorn Granlund  <tege@tiny.matematik.su.se>
 31355  
 31356  	* mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning.
 31357  
 31358  Wed Mar  6 01:10:42 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31359  
 31360  	* mpf/tests/t-sqrt.c: New file.
 31361  	* mpf/tests/Makefile.in: Corresponding changes.
 31362  
 31363  	* mpf/sqrt.c: Special case for square root of zero.
 31364  
 31365  	* mpq/add.c: Clean up variable names.
 31366  	* mpq/sub.c: Update from mpq/add.c.
 31367  
 31368  	* mpz/divexact.c: abs => ABS.
 31369  	* mpz/gcd.c: Likewise.  Rewrite final fixup code, to decrease
 31370  	allocation.  Misc cleanups.
 31371  
 31372  Tue Mar  5 22:24:56 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31373  
 31374  	* mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout.
 31375  
 31376  	* gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes.
 31377  
 31378  	* mpn/configure.in: Use t-freebsd also for netbsd.
 31379  
 31380  Mon Mar  4 15:13:28 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31381  
 31382  	* mpq/Makefile.in (cmp.o): Depend on longlong.h.
 31383  
 31384  	* mpq/equal.c: New file.
 31385  	* mpq/Makefile.in: Corresponding changes.
 31386  
 31387  	* mpf/tests/t-add.c: New file.
 31388  	* mpf/tests/t-sub.c: Renamed from t-addsub.c.
 31389  	* mpf/tests/ref.c: New file.
 31390  	* mpf/tests/Makefile.in: Corresponding changes.
 31391  
 31392  	* gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines.
 31393  
 31394  Sun Mar  3 07:45:46 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31395  
 31396  	* mpf/set_str.c: In exponentiation code, allocate 3 extra
 31397  	limbs, not just 2.
 31398  
 31399  	* mpf/get_str.c: Allocate sufficient space for tstr.
 31400  	When calculating exp_in_base, round result down.
 31401  
 31402  	* mpf/tests/t-conv.c: New file.
 31403  	* mpf/tests/Makefile.in: Corresponding changes.
 31404  
 31405  	* mp_bpl.c: New file.
 31406  	* gmp.h: Declare it.
 31407  	* Makefile.in: Corresponding changes.
 31408  
 31409  Sat Mar  2 06:27:56 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31410  
 31411  	* mpf/set_prc_raw.c: New file.
 31412  	* mpf/set_prc.c: Renamed from set_prec.c.
 31413  	* mpf/get_prc.c: New file.
 31414  	* mpf/Makefile.in: Corresponding changes.
 31415  	* gmp.h: Declare new functions.
 31416  
 31417  	* mpn/generic/gcdext.c: Add copyright header.
 31418  
 31419  Fri Mar  1 01:22:24 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31420  
 31421  	* mpn/configure.in: For ppc601, search "power" before "powerpc32".
 31422  
 31423  	* mp?/Makefile.in (AR_FLAGS): New variable.
 31424  	(libmp?.a): Use it.
 31425  
 31426  	* make.bat: New file.
 31427  	* mpn/msdos: New directory.
 31428  	* mpn/msdos/asm-syntax.h: New file.
 31429  
 31430  	* mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h.
 31431  
 31432  	* config.sub: Recognize [ctj]90-cray.
 31433  
 31434  	* mpn/configure.in: Recognize [ctj]90-cray-unicos*.
 31435  
 31436  	* mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros.
 31437  
 31438  	* mpn/generic/gcd.c: Split increment from use of USIZE to avoid
 31439  	undefined behaviour.
 31440  
 31441  Thu Feb 29 04:11:24 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31442  
 31443  	* Makefile.in (install-info-files): Update for new install-info
 31444  	behaviour.
 31445  
 31446  	* mpn/power/add_n.s: Rewrite.
 31447  	* mpn/power/sub_n.s: Rewrite.
 31448  
 31449  Wed Feb 28 01:34:30 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31450  
 31451  	* mpz/pow_ui.c: Compute allocation more aggressively for small bases.
 31452  	* mpz/ui_pow_ui.c: Likewise.
 31453  
 31454  	* mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1.
 31455  
 31456  	* mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB.
 31457  	* mpn/generic/gcd.c: Likewise.
 31458  	(SIGN_BIT): Compute differently.
 31459  
 31460  Mon Feb 26 00:07:36 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31461  
 31462  	* All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t.
 31463  
 31464  	* Makefile.in (install, install-bsdmp, install-info-files): Depend
 31465  	on installdirs.  chmod all installed files.
 31466  
 31467  Sun Feb 25 01:47:41 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31468  
 31469  	* mpbsd/configure.in: Delete debugging code.
 31470  
 31471  	* All Makefile.in: Update clean targets.
 31472  
 31473  	* Makefile.in (AR_FLAGS): New variable.
 31474  	(libgmp.a): Use it.
 31475  	(libmp.a): Likewise.
 31476  
 31477  	* VERSION: Delete file.
 31478  
 31479  	* Makefile.in (installdirs): New target.
 31480  	* mkinstalldirs: New file (from the texinfo package).
 31481  
 31482  	* Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables.
 31483  	(MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables.
 31484  	(install-info): New target.
 31485  	(install, install-bsdmp): Depend on install-info.
 31486  	($(srcdir)/gmp.info): Changed from plain gmp.info; put info files
 31487  	into source directory.
 31488  	(distclean, mostlyclean): New targets.
 31489  	(maintainer-clean): New name for realclean.
 31490  	(uninstall): New target.
 31491  	(TAGS): New target.
 31492  	(info, dvi): New targets.
 31493  	(.PHONY): Assign.
 31494  
 31495  	* Makefile.in (install, install-bsdmp): Use INSTALL_DATA.
 31496  
 31497  	* mp{n,z,f,bsd}/move-if-change: Delete.
 31498  
 31499  	* mpbsd/Makefile.in (stamp-stddefh): Delete target.
 31500  
 31501  	* Makefile.in (.c.o): Pass CFLAGS last.
 31502  	* mpbsd/Makefile.in (.c.o): Likewise.
 31503  	* mpf/Makefile.in (.c.o): Likewise.
 31504  	* mpq/Makefile.in (.c.o): Likewise.
 31505  	* mpz/Makefile.in (.c.o): Likewise.
 31506  	* mpn/Makefile.in (.c.o): Likewise.
 31507  	(.S.o): Likewise.
 31508  
 31509  	* memory.c: Change allocation error message.
 31510  
 31511  	* Makefile.in (install): Prefix gmp.h with $(srcdir).
 31512  	(install-bsdmp): Prefix mp.h with $(srcdir).
 31513  
 31514  	* mp{n,z,f,bsd}/{configure,config.sub}: Delete.
 31515  
 31516  	* Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation
 31517  	(install targets): Install gmp.info-N.
 31518  
 31519  Sat Feb 24 03:36:52 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31520  
 31521  	* mpf/get_str.c: Fix typo.
 31522  
 31523  	* mpz/legendre.c: Clarify expression with extra parens.
 31524  
 31525  	* version.c (gmp_version): Not static.
 31526  
 31527  	* mpf/iset_str.c: Properly return error code.
 31528  
 31529  	* mpf/add.c: Delete unused variables.
 31530  	* mpf/inp_str.c: Likewise.
 31531  	* mpq/get_d.c: Likewise.
 31532  
 31533  	* mpn/generic/dump.c: #include <stdio.h>.
 31534  	* mpf/dump.c: Likewise.
 31535  	* mpf/set_str.c: #include <ctype.h>.
 31536  	(strtol): Declare.
 31537  
 31538  	* gmp.h: mpn_sqrt => mpn_sqrtrem.
 31539  
 31540  	* Makefile.in (clean, realclean): Clean in mpbsd.
 31541  	(check): Test in mpf.
 31542  
 31543  	* mpf/Makefile.in (clean): Clean in tests.
 31544  	* mpq/Makefile.in (clean): Clean in tests.
 31545  
 31546  	* mpf/tests/Makefile.in: New file.
 31547  	* mpf/tests/configure.in: New file.
 31548  	* mpf/tests/t-addsub.c: New file.
 31549  
 31550  	* mpf/sub_ui.c: Simply call mpf_sub for now.
 31551  
 31552  	* mpf/sub.c: Increase prec by 1.
 31553  	* mpf/ui_sub.c: Likewise.
 31554  
 31555  Fri Feb 23 00:59:54 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31556  
 31557  	* mpf/ui_sub.c: Fix typos.
 31558  
 31559  	* mpf/get_str.c: When allocating space for tmp, allow for an extra
 31560  	limb.  In code for fraction conversion, add special case for bases
 31561  	that are a power of 2.
 31562  
 31563  	* mpf/out_str.c: Output leading "0.".
 31564  	Default base to 10, before computing string allocation.
 31565  
 31566  	* mpf/get_str.c: Make variables for string size have type size_t.
 31567  	* gmp.h: Corresponding change.
 31568  
 31569  	* mpf/random2.c: Allow creation of prec+1 large mantissas.
 31570  
 31571  	* mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0.
 31572  	Fix typo in MPN_COPY offset.
 31573  	* mpf/sub_ui.c: Analogous changes.
 31574  
 31575  	* mpf/set_prec.c: Rewrite.
 31576  
 31577  	* mpf/init2.c: Compute precision as in set_prec.c.
 31578  
 31579  	* mpf/div_2exp.c: Special case for u == 0.
 31580  	* mpf/mul_2exp.c: Likewise.  Write r->_mp_size always.
 31581  
 31582  	* mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem.
 31583  	* mpf/sqrt.c: Likewise.  When computing new exponent, round quotient
 31584  	towards -infinity.
 31585  
 31586  	* mpf/add.c: Fix typos.
 31587  	* mpf/sub.c: Fix typos.
 31588  
 31589  Thu Feb 22 00:24:48 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31590  
 31591  	* mpz/Makefile.in (stamp-stddefh): Delete target.
 31592  	(test): Delete target.
 31593  	* Makefile.in (stamp-stddefh): Delete target.
 31594  	(cre-stddefh.o): Delete target.
 31595  	(gmp.dvi): Set TEXINPUTS before invoking tex.
 31596  
 31597  	* cre-stddefh.c: Delete.
 31598  
 31599  	* mpz/sqrt.c: Fix typo.
 31600  
 31601  	* mpz/powm.c: Special case for mod == 0.
 31602  	* mpz/powm_ui.c: Likewise.
 31603  
 31604  	* mpz/get_si.c: Handle -0x80000000 correctly.
 31605  
 31606  	* mpz/inp_str.c: Now returns size_t.
 31607  	Make it return number of bytes read or error indication.
 31608  	* mpf/inp_str.c: Likewise.
 31609  
 31610  	* mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications.
 31611  	* mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base.
 31612  	* mpz/inp_binary.c: Delete.
 31613  
 31614  	* mpn/Makefile.in (XCFLAGS): Remove variable.
 31615  	(.c.o): Don't pass XCFLAGS.
 31616  	(SFLAGS): Set to nothing.
 31617  	(.S.o): Pass SFLAGS, not XCFLAGS.
 31618  
 31619  	* mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS.
 31620  
 31621  	* mpf/out_str.c: Make return number of bytes written or error
 31622  	indication.
 31623  	* mpz/out_str.c: Likewise.
 31624  	* gmp.h: Corresponding changes.
 31625  
 31626  	* gmp.h (__mpz_struct): mp_size_t => int.
 31627  	(__mpq_struct): Likewise.
 31628  	(__mpf_struct): Likewise.
 31629  	(mp_size_t): int => long int.
 31630  
 31631  	* mpn/cray: New directory.
 31632  	* mpn/cray/gmp-mparam.h: New file.
 31633  	* mpn/configure.in: Recognize cray variants.
 31634  
 31635  	* Makefile.in: Set defaults for prefix, libdir, etc.
 31636  	(install): New target.
 31637  	(install-bsdmp): New target.
 31638  	(gmp.html): New target.
 31639  
 31640  	* stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison.
 31641  
 31642  Wed Feb 21 04:35:02 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31643  
 31644  	* gmp.h: Sort mpn declarations.
 31645  	(mpn_gcdext): Add declaration.
 31646  
 31647  	* mpn/generic/divrem_1.c: New file.
 31648  	* mpn/Makefile.in (divrem_1.o): New rule.
 31649  	* configure.in (functions): Add divrem_1.
 31650  
 31651  	* mpn/generic/divmod.c: Delete file.
 31652  	* mpn/configure.in (functions): Delete divmod.
 31653  	* Makefile.in (divmod.o): Delete rule.
 31654  	* gmp.h (mpn_divmod): New #define.
 31655  
 31656  	* gmp.h (mpn_next_bit_set): Delete spurious declaration.
 31657  
 31658  	* mpn/generic/divrem.c (default case): In code assigning
 31659  	most_significant_q_limb, move reassignment of n0 into if statement.
 31660  
 31661  	* gmp.h (mpf_inp_str): Fix typo.
 31662  	(mpf_out_str): Make prototype match reality.
 31663  	* mpf/inp_str.c: New file.
 31664  	* mpf/out_str.c: New file.
 31665  	* mpf/Makefile.in: Compile new files.
 31666  
 31667  	* mpn/Makefile.in (dump.o): Fix dependency path.
 31668  	(inlines.o): Likewise.
 31669  
 31670  	* mpn/configure.in: Make m68060 be the same as m68000.  Clean up
 31671  	m68k configs.
 31672  
 31673  Tue Feb 20 01:35:11 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31674  
 31675  	* mpn/generic/sqrtrem.c: Renamed from sqrt.
 31676  	* mpn/configure.in (functions): Corresponding change.
 31677  	* mpn/Makefile.in: Likewise.
 31678  	* mpz/sqrtrem.c: Likewise.
 31679  	* mpz/sqrt.c: Likewise.
 31680  	* mpn/generic/perfsqr.c: Likewise.
 31681  
 31682  	* Makefile.in (clean): Also remove libmp.a.
 31683  	Don't compile cre-conv-tab.c or mp_bases.c.
 31684  	cre-conv-tab.c: Delete file.
 31685  	(gmp.ps): New rule.
 31686  
 31687  	* mpn/mp_bases.c: New file.
 31688  	* mpn/Makefile.in: Compile mp_bases.c.
 31689  
 31690  	* mpz/set_str.c: Skip initial whitespace.
 31691  	* mpf/set_str.c: Likewise.
 31692  	* mpbsd/xtom.c: Likewise.
 31693  
 31694  	* gmp.h: Add missing mpz declarations.
 31695  	Delete all formal parameter names from declarations.
 31696  
 31697  	* mpn/Makefile.in: Add dependencies for .c files.
 31698  
 31699  	* Makefile.in (check): Write recursive make calls separately, not as
 31700  	a loop.
 31701  	(FLAGS_TO_PASS): New variable.  Use it for most recursive makes.
 31702  
 31703  Mon Feb 19 01:02:20 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31704  
 31705  	* mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete
 31706  	lines starting with #.
 31707  	(CPP): Set to $(CC) -E to avoid gcc dependency.
 31708  
 31709  	* mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX.
 31710  
 31711  	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment
 31712  	code.
 31713  	* mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise.
 31714  
 31715  	* gmp.h: Fix typos in #defines of recently added mpn functions.
 31716  
 31717  	* mpz/inp_str.c: Skip all whitespace, not just plain space.
 31718  	* mpbsd/min.c: Likewise.
 31719  
 31720  	* mpn/configure.in (functions): Add gcdext.
 31721  	* mpn/generic/gcdext.c: New file.
 31722  
 31723  	* mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp.
 31724  
 31725  	* gmp.h: Surround mpn declarations with extern "C" { ... }.
 31726  
 31727  	* Makefile.in (check): New target.
 31728  
 31729  	* mpq/get_d.c: Update comments.  Use rsize instead of dsize + N_QLIMBS
 31730  	when possible.  Add special case for nsize == 0.
 31731  
 31732  	* gmp.h (mpq_get_d): Add declaration.
 31733  	(mpq_canonicalize): Likewise.
 31734  	(mpq_cmp_ui): Likewise.
 31735  	(mpf_diff): Likewise.
 31736  	(mpf_ui_sub): Likewise.
 31737  	(mpf_set_prec): Likewise.
 31738  	(mpf_random2): Likewise.
 31739  
 31740  	* gmp.h (mpz_cmp_ui): New #define.
 31741  	(mpz_cmp_si): New #define.
 31742  	(mpq_cmp_ui): New #define.
 31743  	(mpz_sign): New #define.
 31744  	(mpq_sign): New #define.
 31745  	(mpf_sign): New #define.
 31746  	(mpq_numref): New #define.
 31747  	(mpq_denref): New #define.
 31748  
 31749  	* mpq/set_z.c: File deleted.
 31750  	* mpq/Makefile.in: Corresponding changes.
 31751  
 31752  Sun Feb 18 01:34:47 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31753  
 31754  	* mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc.
 31755  
 31756  	* mpz/inp_binary.c: Default stream to stdin.
 31757  	* mpz/inp_str.c: Likewise.
 31758  	* mpz/inp_raw.c: Likewise.
 31759  	* mpz/out_binary.c: Default stream to stdout.
 31760  	* mpz/out_raw.c: Likewise.
 31761  	* mpz/out_str.c: Likewise.
 31762  
 31763  	* mpbsd/realloc.c: New file.
 31764  	* mpbsd/Makefile.in: Corresponding changes.
 31765  
 31766  	* mpbsd/min.c: Rewrite (base on mpz/inp_str.c).
 31767  	* mpbsd/mtox.c: Rewrite (base on mpz/get_str.c).
 31768  
 31769  	* mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output
 31770  	spaces in each 10th position.
 31771  	* mpbsd/xtom.c: Rewrite (base on mpz/set_str).
 31772  
 31773  	* mpq/tests/Makefile.in (st-cmp): New file.
 31774  	* mpq/tests/configure.in (srcname): New file.
 31775  
 31776  	* mpz/tests/configure.in (srcname): Fix typo.
 31777  
 31778  	* mpq/cmp.c: Add check using number of significant bits, to avoid
 31779  	general multiplication.
 31780  
 31781  Sat Feb 17 11:58:30 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31782  
 31783  	* mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls.
 31784  
 31785  	* mpq/tests: New directory.
 31786  	* mpq/tests/t-cmp.c: New file.
 31787  	* mpq/tests/t-cmp_ui.c: New file.
 31788  
 31789  	* mpz/tests/dive.c (main): Generate zero numerator.
 31790  	(get_random_size) : Delete.
 31791  
 31792  	* mpz/divexact.c: Add special case for 0/x.
 31793  
 31794  	* gmp.h (mpz_mod): Add declaration.
 31795  
 31796  Fri Feb 16 18:18:39 1996  Andreas Schwab  <schwab@informatik.uni-dortmund.de>
 31797  
 31798  	* mpn/m68k/*: Rewrite code not to use the INSN macros.
 31799  	(L): New macro to properly prefix local labels for ELF.
 31800  
 31801  Fri Feb 16 00:20:56 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31802  
 31803  	* gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for
 31804  	fields.
 31805  	* mpn/generic/inlines.c (_FORCE_INLINES): New #define.  Delete
 31806  	conditional __GNUC__.
 31807  	* gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1):
 31808  	Only define these if __GNUC__ || _FORCE_INLINES.
 31809  	* mpf/random2.c: Add missing parameter in non-ANSI header.
 31810  	* mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug
 31811  	in AIX compilers.
 31812  	* mpq/get_d.c: #define N_QLIMBS.
 31813  	* mpz/divexact.c: Obscure division by 0 to silent compiler warnings.
 31814  	* stack-alloc.c: Cast void* pointer to char* before doing arithmetic
 31815  	on it.
 31816  
 31817  	* Makefile.in (mpbsd/libmpbsd.a): New rule.
 31818  	* configure.in (configdirs): Add mpbsd.
 31819  
 31820  	* gmp.h: Add declarations for a few missing mpn functions.
 31821  
 31822  	* Makefile.in (libmp.a): New rule.
 31823  
 31824  	* mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c"
 31825  	* gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block.
 31826  	* mp.h: Likewise.  Update typedefs from gmp.h.
 31827  	* mpbsd/configure.in: New file.
 31828  	* mpbsd/Makefile.in: New file.
 31829  	* mpbsd/configure: Link to master configure.
 31830  	* mpbsd/config.sub: Link to master config.sub.
 31831  
 31832  	* Makefile.in: Set RANLIB_TEST.
 31833  	* (libgmp.a): Use it.
 31834  	* (libgmp.a): Do ranlib before moving the libgmp.a to the build
 31835  	directory.
 31836  	* mp?/Makefile.in: Don't use or set RANLIB.
 31837  
 31838  Thu Feb 15 16:38:41 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31839  
 31840  	* mpz/add_ui.c: MP_INT => mpz_t.
 31841  	* mpz/cmp_ui.c: Likewise.
 31842  	* mpz/fac_ui.c: Likewise.
 31843  	* mpz/inp_binary.c: Likewise.
 31844  	* mpz/inp_raw.c: Likewise.
 31845  	* mpz/legendre.c: Likewise.
 31846  	* mpz/jacobi.c: Likewise.
 31847  	* mpz/out_binary.c: Likewise.
 31848  	* mpz/out_raw.c: Likewise.
 31849  	* mpz/random2.c: Likewise.
 31850  	* mpz/random.c: Likewise.
 31851  	* mpz/realloc.c: Likewise.
 31852  
 31853  	* mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0),
 31854  	__mpz_odd_less1_2factor => mpz_scan1(X,1).
 31855  	* mpz/ntsup.c: File deleted.
 31856  	* mpz/Makefile.in: Corresponding changes.
 31857  
 31858  	* mpz/pprime_p: Use mpz_scan1 to avoid looping.
 31859  
 31860  	* mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'.
 31861  	* mpz/pprime_p.c: Pass long to *_ui functions.
 31862  	* mpz/gcdext.c: Likewise.
 31863  	* mpz/fdiv_r_2exp.c: Likewise.
 31864  	* mpz/fac_ui.c: Likewise.
 31865  
 31866  	* mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0.
 31867  
 31868  	* mpz/tests/Makefile.in (st-sqrtrem): Fix typo.
 31869  
 31870  	* mpz/cmp_ui.c: #undef mpz_cmp_ui.
 31871  	* mpz/cmp_si.c: #undef mpz_cmp_si.
 31872  	* gmp.h (mpz_cmp_ui): New #define.
 31873  	(mpz_cmp_si): New #define.
 31874  
 31875  Wed Feb 14 22:11:24 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31876  
 31877  	* gmp.h: Test __cplusplus in addition to __STDC__.
 31878  	* gmp-impl.h: Likewise.
 31879  
 31880  	* gmp.h: Surround declarations with extern "C" { ... }.
 31881  
 31882  Tue Feb 13 15:20:45 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31883  
 31884  	* mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE.
 31885  	* mpz/tdiv_r_2exp.c: Likewise.
 31886  
 31887  	* mpz/fdiv_r_2exp.c: New file.
 31888  	* mpz/fdiv_q_2exp.c: New file.
 31889  	* mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c.
 31890  	* mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c
 31891  	* mpz/Makefile.in: Corresponding changes.
 31892  
 31893  	* mpz/scan0.c,scan1.c: New files.
 31894  	* mpz/Makefile.in: Compile them.
 31895  
 31896  	* gmp.h (mpn_normal_size): Delete.
 31897  
 31898  	* config.guess: Update from Cygnus version.
 31899  
 31900  	* mpn/m68k/rshift.S: Use INSN2 macro for lea instructions.
 31901  	* mpn/m68k/lshift.S: Likewise.
 31902  
 31903  	* mpn/configure.in: Fix configuration for plain 68000.
 31904  
 31905  Mon Feb 12 01:06:06 1996  Torbjorn Granlund  <tege@matematik.su.se>
 31906  
 31907  	* mpz/tests/t-powm.c: Generate negative BASE operand.
 31908  
 31909  	* mpz/powm.c: Make result always positive.
 31910  
 31911  Sun Feb 11 01:44:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31912  
 31913  	* mpz/tests/*.c: Add t- prefix.
 31914  	* mpz/tests/Makefile.in: Corresponding changes.
 31915  	* mpz/tests/configure.in: Update srctrigger.
 31916  
 31917  	* mpz/tests/gcd.c: Generate negative operands.
 31918  	* mpz/tests/gcd2.c: Likewise.
 31919  
 31920  	* mpz/gcdext.c: At end, if G is negative, negate all G, S, and T.
 31921  
 31922  Thu Feb  8 17:16:12 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>
 31923  
 31924  	* mp{z,n}/gcd.c: Change mpn_gcd interface.
 31925  	* gmp.h: Ditto.
 31926  	* gmp.texi: update documentation.
 31927  
 31928  Mon Feb  7 23:58:43 1996  Andreas Schwab  <schwab@informatik.uni-dortmund.de>
 31929  
 31930  	* mpn/m68k/{lshift,rshift}.S: New files.
 31931  	* mpn/m68k/syntax.h: New ELF_SYNTAX macros.
 31932  	(MEM_INDX, R, PROLOG, EPILOG): New macros.
 31933  	* mpn/m68k/*.S: Use R macro with register name.  Use PROLOG and EPILOG
 31934  	macros.  Rename `size' to `s_size' or s1_size to avoid clash with ELF
 31935  	.size directive.
 31936  	* mpn/configure.in: New target m68k-*-linux*.
 31937  
 31938  Wed Feb  7 07:41:31 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31939  
 31940  	* Makefile.in (cre-conv-tab): Workaround for SunOS make.
 31941  
 31942  	* mpz/tests/reuse.c: New file.
 31943  	* mpz/tests/Makefile.in: Handle reuse.c.
 31944  
 31945  Tue Feb  6 11:56:24 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>
 31946  
 31947  	* mpz/gcd.c: Fix g->size when one op is 0 and g == other op.
 31948  
 31949  Tue Feb  6 01:36:39 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31950  
 31951  	* gmp.h (mpz_divexact): Delete parameter names.
 31952  	(mpz_lcm): Delete spurious declaration.
 31953  
 31954  	* mpz/dmincl.c: Fix typo.
 31955  
 31956  Mon Feb  5 01:11:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31957  
 31958  	* mpn/generic/gcd.c (gcd_2): Declare consistently.
 31959  
 31960  	* mpz/tdiv_q.c: Optimize division by a single-limb divisor.
 31961  	* mpz/dmincl.c: Likewise.
 31962  
 31963  	* mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size.
 31964  	* mpz/sub.c: Likewise.
 31965  	* mpn/generic/sqrt.c: Likewise.
 31966  
 31967  	* mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the
 31968  	destination arrays.
 31969  
 31970  Fri Feb  2 02:21:27 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31971  
 31972  	* mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files.
 31973  	* mpz/Makefile.in: Compile them.
 31974  
 31975  	* mpn/Makefile.in (INCLUDES): Don't search in `generic'.
 31976  
 31977  Thu Feb  1 02:15:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31978  
 31979  	Change from Ken Weber:
 31980  	* mpz/divexact.c: Make it work when quot is identical to either input.
 31981  
 31982  	* mpf/ui_sub.c: New file.
 31983  	* mpf/Makefile.in: Compile it.
 31984  
 31985  	* gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC.
 31986  	* mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since
 31987  	these use MPZ_TMP_INIT.
 31988  	* mpz/mod.c: Likewise.
 31989  	* mpq/{add,sub}.c: Likewise.
 31990  	* mpq/canonicalize: Likewise.
 31991  
 31992  	* mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t.
 31993  	* mpq/canonicalize.c: Likewise.
 31994  
 31995  Wed Jan 31 01:45:00 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 31996  
 31997  	* mpn/generic/gcd.c: Misc changes from Ken.
 31998  
 31999  	* mpz/tests/gcd2.c: New file.
 32000  	* mpz/tests/Makefile.in: Handle gcd2.c.
 32001  
 32002  	* mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize,
 32003  	not orig_vsize.  Fix parameter declaration.
 32004  
 32005  	* mpz/mod_ui.c: Delete file.
 32006  	* mpz/Makefile.in: Don't try to compile mod_ui.
 32007  
 32008  	* mpz/cdiv_*_ui.c): Make them work right.
 32009  	* gmp.h: Declare cdiv*.
 32010  
 32011  Tue Jan 30 02:22:56 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32012  
 32013  	* mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c,
 32014  	cdiv_r_ui.c,cdiv_ui.c}: New files.
 32015  	* mpz/Makefile.in: Compile them.
 32016  
 32017  	* All files: Make file permissions right.
 32018  
 32019  	Changes from Ken Weber:
 32020  	* mpn/generic/accelgcd.c: Delete.
 32021  	* mpn/generic/bingcd.c: Delete.
 32022  	* mpn/generic/numbits.c: Delete.
 32023  	* mpn/generic/gcd.c: New file.
 32024  	* mpn/configure.in (functions): Update accordingly.
 32025  	* mpz/divexact.c: New file.
 32026  	* mpz/Makefile.in: Compile divexact.c.
 32027  	* mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn.
 32028  	* gmp.h: declare new functions, delete obsolete declarations.
 32029  	* mpz/tests/dive.c: New file.
 32030  	* mpz/tests/Makefile.in: Handle dive.c.
 32031  
 32032  Mon Jan 29 03:53:24 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32033  
 32034  	* mpz/random.c: Handle negative SIZE parameter.
 32035  
 32036  	* mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c.
 32037  	* mpz/tests/tst-mdm(_ui).c: Delete.
 32038  	* mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui).
 32039  	* mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming.
 32040  	* mpz/tests/Makefile.in: Corresponding changes.
 32041  	* mpz/tests/configure.in: Update srctrigger.
 32042  
 32043  	* mpn/generic/divmod.c: Update from divrem.
 32044  	* mpn/generic/divrem.c: Misc cleanups.
 32045  
 32046  Sun Jan 28 03:25:08 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32047  
 32048  	* All files: Use new TMP_ALLOC interface.
 32049  
 32050  	* mpz/powm_ui.c: Make Jan 25 changes to powm.c also here.
 32051  
 32052  	* mpz/tests/powm_ui.c: New file.
 32053  	* mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui.
 32054  
 32055  	* Makefile.in: Update dependency list.
 32056  	* mpf/Makefile.in: Likewise.
 32057  	* mpz/Makefile.in: Likewise.
 32058  	* mpq/Makefile.in: Likewise.
 32059  	* Makefile.in: Set RANLIB simply to ranlib, and allow configure
 32060  	to override it.
 32061  
 32062  	* mpz/Makefile.in (conf): Delete spurious target.
 32063  	(mp_bases.c): Delete.
 32064  	(cre-conv-tab rules): Delete.
 32065  
 32066  	* Makefile.in (cre-conv-tab): Greatly simplify.
 32067  
 32068  Sat Jan 27 13:38:15 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32069  
 32070  	* stack-alloc.c: New file.
 32071  	* stack-alloc.h: New file.
 32072  
 32073  	* gmp.h (__gmp_inline): Define using __inline__.
 32074  
 32075  Thu Jan 25 00:28:37 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32076  
 32077  	* mpn/generic/scan0.c: New file.
 32078  	* mpn/generic/scan1.c: Renamed from next_bit.c.
 32079  	* mpn/configure.in (functions): Include scan0 and scan1.
 32080  
 32081  	* mpn/m68k/*: #include sysdep.h.  Use C_GLOBAL_NAME.
 32082  
 32083  	* configure: Update from Cygnus version.
 32084  	* config.guess: Likewise.
 32085  	* config.sub: Likewise.
 32086  	* configure: Pass --nfp to recursive configures.
 32087  
 32088  	* mpz/tests/tst-*.c: Adjust SIZE and reps.
 32089  
 32090  	* mpz/powm.c: Move esize==0 test earlier.
 32091  	In final reduction of rp,rsize, don't call mpn_divmod unless
 32092  	reduction is really needed.
 32093  
 32094  	* mpz/tests/tst-powm.c: Fix thinko in checking code.
 32095  
 32096  	* All files: Get rid of `__' prefix from mpn_* calls and declarations.
 32097  	* gmp.h: #define __MPN.
 32098  	* gmp.h: Use __MPN in #defines for mpn calls.
 32099  
 32100  	* mpn/generic/mul_n.c: Prepend `i' to internal routines.
 32101  	* gmp-impl.h: Add #defines using __MPN for those internal routines.
 32102  
 32103  	* mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n.
 32104  
 32105  Wed Jan 24 13:28:19 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32106  
 32107  	* mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S.
 32108  	* mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S.
 32109  	* mpn/sparc32/v8/supersparc: New directory.
 32110  	* mpn/sparc32/v8/supersparc/udiv.S: New file.
 32111  
 32112  Tue Jan 23 01:10:11 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32113  
 32114  	This major contribution is from Ken Weber:
 32115  	* mpn/generic/accelgcd.c: New file.
 32116  	* mpn/generic/bdivmod.c: New file.
 32117  	* mpn/generic/bingcd.c: New file.
 32118  	* mpn/generic/gcd_1.c: Rewrite.
 32119  	* mpn/generic/numbits.c: New file (to go away soon).
 32120  	* mpz/gcd.c: Rewrite.
 32121  	* mpz/tests/tst-gcd.c (SIZE): Now 128.
 32122  	* gmp.h: Declare new functions.
 32123  	* mpn/configure.in (functions): List new files.
 32124  	* gmp-impl.h (MPN_SWAP): Delete.
 32125  	(MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete.
 32126  	(MPN_COMPL_INCR, MPN_COMPL): Delete.
 32127  
 32128  Mon Jan 22 02:04:59 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32129  
 32130  	* gmp.h (mpn_name): New #define.
 32131  
 32132  	* mpn/m88k/mc88110/addmul_1.s: New file.
 32133  	* mpn/m88k/mc88110/add_n.S: New file.
 32134  	* mpn/m88k/mc88110/sub_n.S: New file.
 32135  
 32136  	* mpn/m88k/sub_n.s: Correctly initialize carry.
 32137  
 32138  	* mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'.
 32139  
 32140  Sun Jan 21 00:04:35 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32141  
 32142  	* mpn/sparc64/addmul_1.s: New file.
 32143  	* mpn/sparc64/submul_1.s: New file.
 32144  	* mpn/sparc64/rshift.s: New file.
 32145  
 32146  Sat Jan 20 00:32:54 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32147  
 32148  	* mpz/iset.c: Fix typo introduced Dec 25.
 32149  
 32150  Wed Jan 17 13:16:44 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32151  
 32152  	* config/mt-sprc8-gcc: New name for mt-sparc8-gcc.
 32153  	* config/mt-sparcv8-gcc: Delete.
 32154  	* configure.in: Corresponding changes.
 32155  
 32156  Tue Jan 16 16:31:01 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32157  
 32158  	* gmp-impl.h: #include alloca.h when necessary.
 32159  
 32160  	* longlong.h: Test __alpha instead of __alpha__, since the former
 32161  	is the standard symbol.
 32162  
 32163  Mon Jan 15 18:06:57 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32164  
 32165  	* mpn/sparc64/mul_1.s: Swap operands of mulx instructions.
 32166  	* mpn/sparc64/lshift.s: New file.
 32167  
 32168  Fri Dec 29 17:34:03 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32169  
 32170  	* mpn/x86/pentium/add_n.S: Get rid of #defines for register names.
 32171  	* mpn/x86/pentium/sub_n.S: Likewise.
 32172  
 32173  Thu Dec 28 03:16:57 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32174  
 32175  	* mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update
 32176  	of loop induction variable and load insn at beginning of loop.
 32177  	* mpn/x86/pentium/addmul_1.S: Likewise.
 32178  	* mpn/x86/pentium/submul_1.S: Likewise.
 32179  
 32180  Mon Dec 25 23:22:55 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32181  
 32182  	* All files: Prefix user-visible structure fields with _mp_.
 32183  
 32184  Fri Dec 22 20:42:17 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32185  
 32186  	* mpn/configure.in (m68k configs): Terminate path variable with
 32187  	plain "m68k".
 32188  
 32189  Fri Dec 22 03:29:33 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32190  
 32191  	* mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to
 32192  	clean things up.
 32193  
 32194  	* mpn/configure.in (m68k configs): Update #include path for new
 32195  	mpn directory organization.
 32196  
 32197  Tue Dec 12 02:53:02 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32198  
 32199  	* gmp.h: Prefix all structure field with _mp_.
 32200  	* gmp-impl.h: Define access macros for these fields.
 32201  
 32202  Sun Dec 10 00:47:17 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32203  
 32204  	* mpn/alpha/addmul_1.s: Prefix labels with `.'.
 32205  	* mpn/alpha/submul_1.s: Likewise.
 32206  	* mpn/alpha/[lr]shift.s: Likewise.
 32207  	* mpn/alpha/udiv_qrnnd.S: Likewise.
 32208  	* mpn/alpha/ev5/[lr]shift.s: Likewise.
 32209  
 32210  	* mpn/alpha/ev5/lshift.s: Fix typos.
 32211  
 32212  Fri Dec  1 14:28:20 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32213  
 32214  	* mpn/Makefile.in (.SUFFIXES): Define.
 32215  
 32216  Wed Nov 29 23:11:57 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32217  
 32218  	* mpn/sparc64/{add_n.s, sub_n.s}: New files.
 32219  
 32220  Tue Nov 28 06:03:13 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32221  
 32222  	* mpn/x86/syntax.h: Handle ELF_SYNTAX.
 32223  	Rename GAS_SYNTAX => BSD_SYNTAX.
 32224  
 32225  	* mpn/configure.in: Handle linuxelf and SysV for x86 variants.
 32226  
 32227  Mon Nov 27 01:32:12 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32228  
 32229  	* mpn/hppa/hppa1_1/pa7100/submul_1.S: New file.
 32230  
 32231  Sun Nov 26 04:30:47 1995  Torbjorn Granlund  <tege@noisy.matematik.su.se>
 32232  
 32233  	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file.
 32234  
 32235  	* mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores.
 32236  	* mpn/sparc32/sub_n.S: Likewise.
 32237  
 32238  Fri Nov 17 00:18:46 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32239  
 32240  	* mpn/configure.in: Handle m68k on NextStep.
 32241  
 32242  Thu Nov 16 02:30:26 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32243  
 32244  	* mpn: Reorganize machine-specific directories.
 32245  	* mpn/configure.in: Corresponding changes.
 32246  	(sh, sh2): Handle these.
 32247  	(m68k targets): Create asm-syntax.h.
 32248  
 32249  Thu Nov  9 02:20:50 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32250  
 32251  	* mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort.
 32252  	(____mpn_mul_n): Likewise.
 32253  
 32254  Tue Nov  7 03:25:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32255  
 32256  	* mpf/get_str.c: In exponentiation code (two places), don't swap
 32257  	input and output areas when calling mpn_mul_1.
 32258  	* mpf/set_str.c: Likewise.
 32259  
 32260  Fri Nov  3 02:35:58 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32261  
 32262  	* mpf/Makefile.in: Make sure all objects are listed in dependency list;
 32263  	delete spurious entries.
 32264  
 32265  	* mpf/mul.c: Handle U or V being 0.  Allow prec+1 for result precision.
 32266  
 32267  	* mpf/set_prec.c: New computation of limb precision.
 32268  	* mpf/set_dfl_prec.c: Likewise.
 32269  
 32270  	* mpf/random2.c: Fix typo computing exp.
 32271  	* mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of
 32272  	the user-requested number of digits, n_digits.
 32273  
 32274  Thu Nov  2 16:25:07 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32275  
 32276  	* mpn/generic/divrem.c (case 2): Don't move np vector back, it is
 32277  	never read.
 32278  	(default case): Put most significant limb from np in new variable n2;
 32279  	decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize].
 32280  
 32281  Wed Nov  1 02:59:53 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32282  
 32283  	* mpn/sparc/[lr]shift.S: New files.
 32284  
 32285  Tue Oct 31 00:08:12 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32286  
 32287  	* mpz/gcd_ui.c: Set w->size unconditionally when v is zero.
 32288  
 32289  	* gmp-impl.h (assert): Delete definition.
 32290  
 32291  	* mpf/sub.c: Delete all assert calls.  Delete variable `cy'.
 32292  
 32293  	* mpf/neg.c: Use prec+1 as precision.  Optimize for when arguments
 32294  	are the same.
 32295  	* mpf/abs.c: Likewise.
 32296  	* mpf/{set,neg,abs}.c: Make structure and variable names similar.
 32297  
 32298  Mon Oct 30 12:45:26 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32299  
 32300  	* mpf/random2.c (random): Test __SVR4 in addition to __svr4__.
 32301  	* mpn/generic/random2.c (random): Likewise.
 32302  
 32303  Sun Oct 29 01:54:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32304  
 32305  	* mpf/div.c: Special handle U or V being 0.
 32306  
 32307  	* mpf/random2.c: New file.
 32308  
 32309  	* longlong.h (i860 rshift_rhlc): Define.
 32310  	(i960 udiv_qrnnd): Define.
 32311  	(i960 count_leading_zeros): Define.
 32312  	(i960 add_ssaaaa): Define.
 32313  	(i960 sub_ddmmss): Define.
 32314  	(i960 rshift_rhlc): Define.
 32315  
 32316  Sat Oct 28 19:09:15 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32317  
 32318  	* mpn/pentium/rshift.S: Fix and generalize condition for when to use
 32319  	special code for shift by 1.
 32320  	* mpn/pentium/lshift.S: Likewise.
 32321  
 32322  Thu Oct 26 00:02:56 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32323  
 32324  	* gmp.h: #undef __need_size_t.
 32325  	* mp.h: Update from gmp.h.
 32326  
 32327  Wed Oct 25 00:17:27 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32328  
 32329  	* mpf/Makefile.in: Compile set_prec.c.
 32330  	* mpf/realloc.c: Delete this file.
 32331  	* mpf/Makefile.in: Delete mentions of realloc.c.
 32332  
 32333  	* gmp.h (__mpf_struct): Get rid of `alloc' field.
 32334  	* mpf/clear.c: Likewise.
 32335  	* mpf/init*.c: Likewise.
 32336  	* mpf/set_prec.c: Likewise.
 32337  	* mpf/iset*.c: Likewise.
 32338  
 32339  	* mpf/iset_str.c: New file.
 32340  
 32341  	* mpn/configure.in: Handle pyramid.
 32342  
 32343  	* mpf/set.c: Use prec+1 as precision.
 32344  
 32345  	* mpf/set_prec.c: New file.
 32346  
 32347  Tue Oct 24 00:56:41 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32348  
 32349  	* mpn/generic/divrem.c: New file.  Will replace mpn/generic/divmod.c
 32350  	when rest of source is converted.
 32351  	* mpn/configure.in (functions): Add `divrem'
 32352  	* mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size.
 32353  
 32354  	* mpf/get_str.c: Completely rewritten.
 32355  	* mpf/add.c: Fix several problems.
 32356  	* mpf/sub.c: Compare operands from most significant end until
 32357  	first difference, exclude skipped limbs from computation.
 32358  	Accordingly simplify normalization code.
 32359  	* mpf/set_str.c: Fix several problems.
 32360  	* mpf/dump.c: New file.
 32361  	* mpf/Makefile.in: Compile dump.c.
 32362  	* mpf/init2.c: Set prec field correctly.
 32363  
 32364  Sun Oct 22 03:02:09 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32365  
 32366  	* cre-conv-tab.c: #include math.h; don't declare log and floor.
 32367  
 32368  Sat Oct 21 23:04:10 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32369  
 32370  	* mpf/mul_ui.c: Handle U being 0.
 32371  
 32372  Wed Oct 18 19:39:27 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32373  
 32374  	* mpn/generic/set_str.c: Correctly handle input like "000000000000".
 32375  	Misc cleanups.
 32376  
 32377  Tue Oct 17 15:14:13 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32378  
 32379  	* longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where
 32380  	appropriate.
 32381  
 32382  Mon Oct 16 19:14:43 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32383  
 32384  	* mpf/add.c: Rewrite.
 32385  	* mpf/set_str.c: New file.  Needs more work.
 32386  
 32387  Sat Oct 14 00:14:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32388  
 32389  	* mpf/div_2exp.c: Vastly simplify.
 32390  	* mpf/mul_2exp.c: Likewise.
 32391  
 32392  	* mpf/sub.c: Rewrite.
 32393  
 32394  	* gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment.
 32395  
 32396  	* mpf/dump.c: Free allocated memory.
 32397  
 32398  	* gmp-impl.h (assert): Define.
 32399  
 32400  Wed Oct 11 13:31:00 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32401  
 32402  	* mpn/pentium/rshift.S: Install new code to optimize shift-by-1.
 32403  
 32404  Tue Oct 10 00:37:21 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32405  
 32406  	* mpn/pentium/lshift.S: Install new code to optimize shift-by-1.
 32407  
 32408  	* mpn/powerpc32/{lshift.s,rshift.s}: New files.
 32409  
 32410  	* configure.in: Fix typo.
 32411  
 32412  Sat Oct  7 08:17:09 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32413  
 32414  	* longlong.h (smul_ppmm): Correct type of __m0 and __m1.
 32415  
 32416  Wed Oct  4 16:31:28 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32417  
 32418  	* mpn/configure.in: Handle alphaev5.
 32419  	* mpn/ev4: New name for alpha subdir.
 32420  	* mpn/ev5: New subdir.
 32421  	* mpn/ev5/lshift.s: New file.
 32422  
 32423  Tue Oct  3 15:06:45 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32424  
 32425  	* mpn/alpha/mul_1.s: Avoid static increments of pointers; use
 32426  	corresponding offsets in ldq and stq instructions instead.
 32427  	(Loop): Swap cmpult and stq to save one cycle on EV5.
 32428  
 32429  	* mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s,
 32430  	submul_1.s}: Don't check results if NOCHECK is defined.
 32431  
 32432  Mon Oct  2 11:40:18 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32433  
 32434  	* longlong.h (mips umul_ppmm [32 and 64 bit versions]):
 32435  	Make new variants, based on GCC version number, that use `l' and `h'
 32436  	constraints instead of explicit mflo and mfhi instructions
 32437  
 32438  Sun Oct  1 00:17:47 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32439  
 32440  	* mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8.
 32441  	* mpn/mc88100/sub_n.s: Likewise.
 32442  
 32443  	* config/mt-m88110: New file.
 32444  	* configure.in: Use it.
 32445  
 32446  	* mpn/mc88110/mul_1.s: Fix thinko.
 32447  
 32448  Sat Sep 30 21:28:19 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32449  
 32450  	* mpz/set_d.c: Declare `size' at function start.
 32451  
 32452  	* experimental: New directory for mpx and mpz2.
 32453  
 32454  	* mpz/tdiv_q.c: Clarify comments.
 32455  	* mpz/{mod.c,mod_ui.c}: New file, for math mod function.
 32456  
 32457  	* mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files.
 32458  
 32459  	* mpn/sh/{add_n.s,sub_n.s}: New files.
 32460  
 32461  	* mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files.
 32462  
 32463  	* mpn/i960/{add_n.s,sub_n.s}: New files.
 32464  
 32465  	* mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh,
 32466  	to save cycles on EV5.
 32467  	* mpn/alpha/submul_1.s: Ditto.
 32468  	* mpn/alpha/mul_1.s: Ditto.
 32469  
 32470  Thu Sep 28 02:48:59 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32471  
 32472  	* gmp.h (mp_limb, mp_limb_signed): Define as `long long' if
 32473  	_LONG_LONG_LIMB is defined.
 32474  
 32475  	* longlong.h (m88110): Test __m88110__, not __mc88110__
 32476  
 32477  	* mpn/mc88110/mul_1.s: Rewrite.
 32478  
 32479  Tue Sep 26 23:29:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32480  
 32481  	* config.sub: Update from current Cygnus version.
 32482  
 32483  	* mpn/configure.in: Recognize canonical m88*, not mc88*.
 32484  
 32485  Fri Sep 22 14:58:05 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32486  
 32487  	* mpz/set_d.c: New file.
 32488  	* mpz/Makefile.in: Build new files.
 32489  
 32490  	* mpq/get_d.c: Replace usage of scalbn with ldexp.
 32491  
 32492  	* mpn/{vax,i386}/gmp-mparam.h: New files.
 32493  	* gmp-impl.h (ieee_double_extract): Define here.
 32494  	* mpf/set_d.c (ieee_double_extract): Not here.
 32495  
 32496  Thu Sep 21 00:56:36 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32497  
 32498  	* longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
 32499  	(udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
 32500  	protect with new symbol LONGLONG_STANDALONE.
 32501  	(68000 umul_ppmm): Use %# prefix for immediate constants.
 32502  
 32503  Wed Sep 20 15:36:23 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32504  
 32505  	* mpn/generic/divmod_1.c: Handle
 32506  	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
 32507  	specifically also when normalization_steps != 0.
 32508  
 32509  Mon Sep 18 15:42:30 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32510  
 32511  	* mpq/get_d.c: New file.
 32512  
 32513  Sun Sep 17 02:04:36 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32514  
 32515  	* longlong.h (pyr): Botch up for now.
 32516  
 32517  Sat Sep 16 00:11:50 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32518  
 32519  	* mpn/clipper/mul_1.s: New file.
 32520  	* mpn/clipper/add_n.s: New file.
 32521  	* mpn/clipper/sub_n.s: New file.
 32522  	* mpn/configure.in: Handle clipper*-*-*.
 32523  
 32524  	* mpn/configure.in: Recognize rs6000-*-*.
 32525  
 32526  Fri Sep 15 00:41:34 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32527  
 32528  	* mpn/alpha/add_n.s: New file.
 32529  	* mpn/alpha/sub_n.s: New file.
 32530  
 32531  	* mpn/mips3: New name for mpn/r4000.
 32532  	* mpn/mips2: New name for mpn/r3000.
 32533  	* mpn/configure.in: Corresponding changes.
 32534  
 32535  	* mpn/generic/perfsqr.c (primes): Delete.
 32536  	(residue_map): Delete.
 32537  
 32538  Thu Sep 14 00:07:58 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32539  
 32540  	* mpn/r3000/sub_n.s: Fix typo.
 32541  
 32542  	* dm_trunc.c: Delete spurious file.
 32543  
 32544  	* mpz/out_binary.c: Fix typo.
 32545  
 32546  	* mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000.
 32547  
 32548  	* gmp-impl.h: For sparc and sgi, include alloca.h.
 32549  
 32550  	* mpn/z8000/mul_1.s: Replace `test r' with `and r,r'.  Replace
 32551  	`ldk r,#0' with `xor r,r'.
 32552  
 32553  Wed Sep  6 00:58:38 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32554  
 32555  	* mpz/inp_binary.c: New file.
 32556  	* mpz/out_binary.c: New file.
 32557  	* mpz/Makefile.in: Build new files.
 32558  
 32559  Tue Sep  5 22:53:51 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32560  
 32561  	* gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc
 32562  	and size fields.
 32563  
 32564  Sat Sep  2 17:47:59 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32565  
 32566  	* mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic.
 32567  	* mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files,
 32568  	derived from r4000 code.
 32569  
 32570  Fri Sep  1 05:35:52 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32571  
 32572  	* mpn/r3000/mul_1.s: Fix typo.
 32573  
 32574  	* mpn/powerpc32: Fix some old vs new mnemonic issues.
 32575  
 32576  	* mpn/powerpc32/{add_n.s,sub_n.s}: New files.
 32577  	* mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files.
 32578  
 32579  Wed Aug 30 10:43:47 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32580  
 32581  	* mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add.
 32582  	* mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files.
 32583  
 32584  	* config.guess: Update to latest FSF revision.
 32585  
 32586  Mon Aug 28 02:18:13 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32587  
 32588  	* mpz/out_str.c: Cast str to char * in fputs call.
 32589  
 32590  	* gmp-impl.h: Define UQItype, SItype, and USItype also
 32591  	when not __GNUC__.
 32592  
 32593  Fri Aug 25 01:45:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32594  
 32595  	* mpn/i386/syntax.h: Renamed from asm-syntax.h.
 32596  	* mpn/mc68020/syntax.h: Renamed from asm-syntax.h.
 32597  	* mpn/configure.in: Corresponding changes.
 32598  
 32599  Sun Aug 13 19:20:04 1995  Torbjorn Granlund  <tege@bozo.matematik.su.se>
 32600  
 32601  	* mpn/generic/random2.c: Test __hpux, not hpux.
 32602  
 32603  Sat Apr 15 20:50:33 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32604  
 32605  	* mpn/sparc/add_n.S: Make it work for PIC.
 32606  	* mpn/sparc/sub_n.s: Likewise.
 32607  	* mpn/sparc8/addmul_1.S: Likewise.
 32608  	* mpn/sparc8/mul_1.S: Likewise.
 32609  	* mpn/i386/add_n.S: Likewise.
 32610  	* mpn/i386/sub_n.S: Likewise.
 32611  
 32612  Thu Apr 13 23:15:03 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32613  
 32614  	* mpn/configure.in: Don't search power subdir for generic ppc configs.
 32615  	Add some ppc cpu-specific configs.  Misc clean up.
 32616  
 32617  Mon Apr 10 00:16:35 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32618  
 32619  	* mpz/ui_pow_ui.c: Delete spurious code to handle negative results.
 32620  
 32621  Sun Apr  9 12:38:11 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32622  
 32623  	* longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C,
 32624  	not in asm.
 32625  
 32626  	* mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT.
 32627  
 32628  Tue Mar 28 00:19:52 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32629  
 32630  	* mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too.
 32631  
 32632  Fri Mar 17 23:29:22 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32633  
 32634  	* longlong.h (SH umul_ppmm): Define.
 32635  
 32636  Thu Mar 16 16:40:44 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32637  
 32638  	* mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case
 32639  	to help CSE.
 32640  
 32641  Fri Mar 10 20:03:49 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32642  
 32643  	* mpn/powerpc32/mul_1.s: Clear cy before entering loop.
 32644  	Rearrange loop to save a cycle.
 32645  	* mpn/powerpc32/addmul_1.s: New file.
 32646  	* mpn/powerpc32/submul_1.s: New file.
 32647  
 32648  Fri Feb 17 22:44:45 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32649  
 32650  	* mpn/configure.in: Set target_makefile_frag for freebsd
 32651  	in new case stmt.
 32652  	* mpn/config/t-freebsd: New file.
 32653  	* mpn/Makefile.in: Add #### for frag insertion.
 32654  	(XCFLAGS): Clear by default.
 32655  	(.c.o, .S.o rules): Pass XCFLAGS.
 32656  
 32657  Tue Feb  7 16:27:50 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32658  
 32659  	* longlong.h (68000 umul_ppmm): Merge improvements from henderson.
 32660  
 32661  Tue Jan 24 04:23:20 1995  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32662  
 32663  	* longlong.h (default umul_ppmm): Store input parameters in temporaries
 32664  	to avoid reading them twice.
 32665  	(default smul_ppmm): New definition.
 32666  
 32667  Thu Dec 29 04:20:07 1994  Jim Meyering  (meyering@comco.com)
 32668  
 32669  	* generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration
 32670  	of unused variable.
 32671  	* generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise.
 32672  	* mpz/powm.c (pow): Likewise.
 32673  
 32674  	* mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause
 32675  	to placate `gcc -Wall'.
 32676  	* mpz/ior.c (mpz_ior): Likewise.
 32677  
 32678  Wed Dec 28 13:31:40 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32679  
 32680  	* mpn/m*68*/*.S: #include asm-syntax.h, not asm.h.
 32681  
 32682  Mon Dec 26 17:15:36 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32683  
 32684  	* longlong.h: Test for more symbols, in __mc68000__ case.
 32685  
 32686  	* mpn/mpn/config.sub: Recognize m68060.
 32687  	* mpn/configure.in: Change mc* to m* for 68k targets.
 32688  	* mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file.
 32689  
 32690  Mon Dec 19 01:56:30 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32691  
 32692  	* config.sub: Recognize pentium as a valid CPU.
 32693  	* mpn/configure.in: Handle pentium specifically, to use new assembly
 32694  	code.
 32695  
 32696  Mon Dec 19 00:13:01 1994  Jim Meyering  (meyering@comco.com)
 32697  
 32698  	* gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO
 32699  	is defined.
 32700  	* gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else.
 32701  
 32702  Mon Dec 19 00:04:54 1994  Kent Boortz  (boortz@sics.se)
 32703  
 32704  	* Makefile.in (recursive makes): Pass CFLAGS.
 32705  
 32706  Sun Dec 18 22:34:49 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32707  
 32708  	* mpn/pentium: New directory.
 32709  
 32710  	* mpz/pprime.c: Make sure to mpz_clear all temporaries.
 32711  
 32712  	* longlong.h: Don't use udiv instruction when SUPERSPARC is defined.
 32713  	* configure.in: Handle supersparc*-.
 32714  	* config/mt-supspc-gcc: New file.
 32715  	* config/mt-sparc8-gcc: New name for mt-sparcv8-gcc.
 32716  
 32717  Mon Dec 12 22:22:10 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32718  
 32719  	* mpn/i386/*.S: #include "asm-syntax.h", not "asm.h".
 32720  	#include sysdep.h before asm-syntax.h.
 32721  
 32722  	* mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it.
 32723  	* mpn/i386/asm-syntax.h: Likewise.
 32724  
 32725  	* mpn/mc68020/asm-syntax.h: New name for asm.h.
 32726  	* mpn/i386/asm-syntax.h: New name for asm.h.
 32727  
 32728  Tue Dec  6 21:55:25 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32729  
 32730  	* mpz/array_init.c: Fix typo in declaration.
 32731  
 32732  Fri Nov 18 19:50:52 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32733  
 32734  	* mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES.
 32735  
 32736  Mon Nov 14 00:34:12 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32737  
 32738  	* mpn/generic/random2.c (random): Test for __svr4__.
 32739  
 32740  Wed Oct 12 23:28:16 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32741  
 32742  	* cre-conv-tab.c (main): Avoid upper-case X in printf format string.
 32743  
 32744  Tue Aug 23 17:16:35 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32745  
 32746  	* mpz/perfsqr.c: Use mpn_perfect_square_p.
 32747  	* mpn/generic/perfsqr.c: New file.
 32748  
 32749  Wed Jul  6 13:46:51 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32750  
 32751  	* mpz/array_init.c: New file.
 32752  	* mpz/Makefile.in: Compile array_init.
 32753  	* gmp.h: Declare mpz_array_init.
 32754  
 32755  Mon Jul  4 01:10:03 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32756  
 32757  	* mpz/add.c: Fix bogus comment.
 32758  	* mpz/sub.c: Likewise.
 32759  
 32760  Sat Jul  2 02:14:56 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32761  
 32762  	* mpn/generic/pre_mod_1.c: New file.
 32763  	* mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster.
 32764  
 32765  Fri Jul 01 22:10:19 1994  Richard Earnshaw (rwe11@cl.cam.ac.uk)
 32766  
 32767  	* longlong.h (arm umul_ppmm): Fix typos in last change.  Mark
 32768  	hard-coded registers with "%|"
 32769  
 32770  Thu Jun 30 03:59:33 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32771  
 32772  	* mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs.
 32773  	Use __mpn_mod_1.
 32774  	* mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop.
 32775  
 32776  Wed Jun 29 18:45:41 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32777  
 32778  	* mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2.
 32779  
 32780  	* mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long.
 32781  
 32782  	* gmp.h: Use "defined (__STDC__)" consistently.
 32783  
 32784  Tue Jun 28 18:44:58 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32785  
 32786  	* gmp.h (mpz_get_si): Don't use "signed" keyword for return type.
 32787  
 32788  	* mpz/tests/Makefile.in: Use CFLAGS for linking.
 32789  
 32790  	* Makefile.in (CFLAGS): Use -O2 here.
 32791  	* mpn/Makefile (CFLAGS): Not here.
 32792  
 32793  	* mpq/cmp_ui.c: Fix typo.
 32794  	* mpq/canonicalize.c: Fix typo.
 32795  	* mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly.
 32796  	* mpn/generic/gcd_1.c: Fix braino in last change.
 32797  
 32798  Mon Jun 27 16:10:27 1994  Torbjorn Granlund  (tege@rtl.cygnus.com)
 32799  
 32800  	* mpz/gcd_ui.c: Change return type and return result.
 32801  	Allow destination param to be NULL.
 32802  	* gmp.h: Corresponding change.
 32803  	* mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1.
 32804  
 32805  Tue Jun 14 02:17:43 1994  Torbjorn Granlund  (tege@tiny.cygnus.com)
 32806  
 32807  	* mpn/i386/asm.h (ALIGN): Make it take a parameter.
 32808  	* mpn/i386/*.S: Use ALIGN to align all loops.
 32809  
 32810  	* mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression.
 32811  	(Makes old versions of GAS happy.)
 32812  
 32813  Sat May 28 01:43:54 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32814  
 32815  	* Many files: Delete unused variables and labels.
 32816  	* mpn/generic/dump.c: cast printf width argument to int.
 32817  
 32818  Wed May 25 00:42:37 1994  Torbjorn Granlund  (tege@thepub.cygnus.com)
 32819  
 32820  	* mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls.
 32821  	(xmod): Ignore return value of __mpn_divmod.
 32822  	(xmod): Improve normalization code.
 32823  
 32824  Sat May 21 01:30:09 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32825  
 32826  	* mpz/gcdext.c: Cosmetic changes.
 32827  
 32828  	* mpz/fdiv_ui.c: New file.
 32829  
 32830  Fri May 20 00:24:53 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32831  
 32832  	* mpz/tests/Makefile.in: Use explicit rules for running tests,
 32833  	not a shell loop.
 32834  	(clean): Delete stmp-*.
 32835  
 32836  	* mpz/Makefile.in: Update.
 32837  
 32838  	* mpz/div_ui.c: Don't include longlong.h.
 32839  	* mpz/dm_ui.c: Likewise.
 32840  
 32841  	* mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c,
 32842  	mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files.  Code partly from deleted
 32843  	mdm.c, mdm_ui.c, etc, partly rewritten.
 32844  	* mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete.
 32845  	* mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c,
 32846  	mpz/mmod_ui.c: Delete.
 32847  
 32848  	* mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c,
 32849  	mpz/tdiv_r.c, mpz/tdiv_r_ui.c:
 32850  	New names for files implementing truncating division.
 32851  	* mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify.
 32852  
 32853  	* mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC
 32854  	instead.
 32855  	(clean): Delete tmp-*.
 32856  
 32857  Thu May 19 01:37:44 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32858  
 32859  	* mpz/cmp.c: Call __mpn_cmp.
 32860  
 32861  	* mpz/popcount.c: Fix typo.
 32862  
 32863  	* mpz/powm_ui.c: Simplify main loop.  Keep principal operand size
 32864  	smaller than MSIZE when possible.
 32865  	* mpz/powm.c: Likewise.
 32866  
 32867  	* mpn/generic/sqrt.c: Move alloca calls into where the memory is
 32868  	needed.  Simplify.
 32869  
 32870  	* gmp.h: (_PROTO): New macro.
 32871  	Add many function declarations; use _PROTO macro in all declarations.
 32872  
 32873  	* mpf/*.c: Prepend mpn calls with __.
 32874  
 32875  Wed May 18 20:57:06 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32876  
 32877  	* mpf/*ui*.c: Make ui argument `long' for consistency with mpz
 32878  	functions.
 32879  
 32880  	* mpf/div_ui.c: Simplify.
 32881  
 32882  Tue May 17 01:05:14 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32883  
 32884  	* mpz/*.c: Prepend mpn calls with __.
 32885  
 32886  	* mpz/mul_ui.c: Use mpn_mul_1.
 32887  
 32888  Mon May 16 17:19:41 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32889  
 32890  	* mpn/i386/mul_1.S: Use C_GLOBAL_NAME.
 32891  	* mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S:
 32892  	Nuke use of LAB.
 32893  
 32894  Sat May 14 14:21:02 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32895  
 32896  	* gmp-impl.h: Don't define abort here.
 32897  
 32898  	* mpz/pow_ui.c: Increase temporary allocation.
 32899  	* mpz/ui_pow_ui.c: Likewise.
 32900  
 32901  	* gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy.
 32902  
 32903  	* All Makefile.in: Delete spurious -I arguments.
 32904  	Update dependencies.
 32905  
 32906  	* mpz/popcount.c: New file.
 32907  	* mpz/hamdist.c: New file.
 32908  
 32909  	* All configure: Latest version from Cygnus.
 32910  
 32911  	* mpq/Makefile.in: New file.
 32912  	* mpq/configure.in: New file.
 32913  	* Makefile.in, configure.in: Enable compilation of mpq.
 32914  
 32915  	* mpq/set_z.c: Fix typos.
 32916  	* mpq/canonicalize.c: Fix typos.
 32917  	* mpq/cmp_ui.c: Fix typos.
 32918  
 32919  	* mpf/add_ui.c: Read U->D into UP always.  Delete spurious MPN_COPY.
 32920  	* mpf/sub_ui.c: Likewise.
 32921  
 32922  	* gmp-impl.h: Don't redefine alloca.
 32923  
 32924  	* COPYING.LIB: Renamed from COPYING.
 32925  
 32926  Wed May 11 01:45:44 1994  Torbjorn Granlund  (tege@adder.cygnus.com)
 32927  
 32928  	* mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range
 32929  	shift counts.  Fix typo when testing negative_result.
 32930  	* mpz/powm.c: Likewise.
 32931  
 32932  	* mpz/ui_pow_ui.c: New file.
 32933  	* mpz/Makefile.in: Update.
 32934  
 32935  	* mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible.
 32936  
 32937  	* mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls.
 32938  	* mpz/gcd.c: Declare mpn_xmod.
 32939  
 32940  	* mpz/powm.c: Major changes to accommodate changed mpn semantics.
 32941  	* mpz/powm_ui.c: Update from mpz/powm.c.
 32942  
 32943  	* mpz/tests/tst-io.c: New file.
 32944  	* mpz/tests/tst-logic: New file.
 32945  	* mpz/tests/Makefile.in: Update.
 32946  
 32947  	* mpz/inp_str.c: Get base right when checking for first digit.
 32948  	* mpz/inp_str.c: Allocate more space for DEST when needed.
 32949  
 32950  	* mpz/com.c: Use mpn_add_1 and mpn_sub_1.
 32951  	* mpz/and.c, mpz/ior.c: Likewise.  Simplify somewhat.
 32952  
 32953  	* mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1.
 32954  	Rename parameters to be consistent with mpz/sub_ui.
 32955  	General simplifications.
 32956  	* mpz/sub_ui.x: Likewise.
 32957  
 32958  Tue Aug 10 19:41:16 1993  Torbjorn Granlund  (tege@prudens.matematik.su.se)
 32959  
 32960  	* mpf: New directory.
 32961  	* mpf/*.c: Merge basic set of mpf functions.
 32962  
 32963  	* Many logs missing...
 32964  
 32965  Sun Apr 25 18:40:26 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
 32966  
 32967  	* memory.c: Use #if instead of #ifdef for __STDC__ for consistency.
 32968  	* bsd/xtom.c: Likewise.
 32969  
 32970  	* mpz/div.c: Remove free_me and free_me_size and their usage.
 32971  	Use mpn_divmod for division; corresponding changes in return value
 32972  	convention.
 32973  	* mpz/powm.c: `carry_digit' => `carry_limb'.
 32974  	* bsd/sdiv.c: Clarify comment.
 32975  
 32976  Sun Apr 25 00:31:28 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
 32977  
 32978  	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
 32979  
 32980  Sat Apr 24 16:23:33 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
 32981  
 32982  	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
 32983  
 32984  	* gmp-impl.h: #define ABS.
 32985  	* (Many files): Use ABS instead of abs.
 32986  
 32987  	* mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c,
 32988  	mpz/pow_ui.c: Cast 1 to mp_limb before shifting.
 32989  
 32990  	* mpz/perfsqr.c: Use #if, not plain if for exclusion of code for
 32991  	non-32-bit machines.
 32992  
 32993  Tue Apr 20 13:13:58 1993  Torbjorn Granlund  (tege@du.nada.kth.se)
 32994  
 32995  	* mpn/generic/sqrt.c: Handle overflow for intermediate quotients by
 32996  	rounding them down to fit.
 32997  
 32998  	* mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings.
 32999  
 33000  	* mpz/inp_str.c (char_ok_for_base): New function.
 33001  	(mpz_inp_str): Use it.
 33002  
 33003  Sun Mar 28 21:54:06 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
 33004  
 33005  	* mpz/inp_raw.c: Allocate x_index, not xsize limbs.
 33006  
 33007  Mon Mar 15 11:44:06 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
 33008  
 33009  	* mpz/pprime.c: Declare param `const'.
 33010  	* gmp.h: Add declarations for mpz_com.
 33011  
 33012  Thu Feb 18 14:10:34 1993  Torbjorn Granlund  (tege@pde.nada.kth.se)
 33013  
 33014  	* mpq/add.c, mpq/sub.c: Call mpz_clear for t.
 33015  
 33016  Fri Feb 12 20:27:34 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
 33017  
 33018  	* mpz/inp_str.c: Recog minus sign as first character.
 33019  
 33020  Wed Feb  3 01:36:02 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
 33021  
 33022  	* mpz/iset.c: Handle 0 size.
 33023  
 33024  Tue Feb  2 13:03:33 1993  Torbjorn Granlund  (tege@cyklop.nada.kth.se)
 33025  
 33026  	* mpz/mod_ui.c: Initialize dividend_size before it's used.
 33027  
 33028  Mon Jan  4 09:11:15 1993  Torbjorn Granlund  (tege@sics.se)
 33029  
 33030  	* bsd/itom.c: Declare param explicitly 'signed'.
 33031  	* bsd/sdiv.c: Likewise.
 33032  
 33033  	* mpq/cmp.c: Remove unused variable tmp_size.
 33034  	* mpz/powm_ui.c: Fix typo in esize==0 if stmt.
 33035  	* mpz/powm.c: Likewise.
 33036  
 33037  Sun Nov 29 01:16:11 1992  Torbjorn Granlund  (tege@sics.se)
 33038  
 33039  	* mpn/generic/divmod_1.c (mpn_divmod_1): Handle
 33040  	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
 33041  	specifically.
 33042  
 33043  	* Reorganize sources.  New directories mpn, mpn/MACH, mpn/generic,
 33044  	mpz, mpq, bsd.  Use full file name for change logs hereafter.
 33045  
 33046  Wed Oct 28 17:40:04 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
 33047  
 33048  	* longlong.h (__hppa umul_ppmm): Fix typos.
 33049  	(__hppa sub_ddmmss): Swap input arguments.
 33050  
 33051  	* mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in
 33052  	initializator.
 33053  
 33054  Sun Oct 25 20:30:06 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
 33055  
 33056  	* mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3
 33057  	specifically (used to consider all negative numbers prime).
 33058  
 33059  	* mpz_powm_ui: `carry_digit' => `carry_limb'.
 33060  
 33061  	* sdiv: Handle zero dividend specifically.  Replace most code in
 33062  	this function with a call to mpn_divmod_1.
 33063  
 33064  Fri Sep 11 22:15:55 1992  Torbjorn Granlund  (tege@tarrega.sics.se)
 33065  
 33066  	* mpq_clear: Don't free the MP_RAT!
 33067  
 33068  	* mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg.
 33069  
 33070  Thu Sep  3 01:47:07 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
 33071  
 33072  	* All files: Remove leading _ from mpn function names.
 33073  
 33074  Wed Sep  2 22:21:16 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
 33075  
 33076  	Fix from Jan-Hein Buhrman:
 33077  	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented.
 33078  
 33079  	* mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its
 33080  	life.
 33081  
 33082  Sun Aug 30 18:37:15 1992  Torbjorn Granlund  (tege@jupiter.sics.se)
 33083  
 33084  	* _mpz_get_str: Use mpz_sizeinbase for computing out_len.
 33085  	* _mpz_get_str: Don't remove leading zeros.  Abort if there are some.
 33086  
 33087  Wed Mar  4 17:56:56 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33088  
 33089  	* gmp.h: Change definition of MP_INT to make the & before params
 33090  	optional.  Use typedef to define it.
 33091  	* mp.h: Use typedef to define MINT.
 33092  
 33093  Tue Feb 18 14:38:39 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33094  
 33095  	longlong.h (hppa umul_ppmm): Add missing semicolon.  Declare type
 33096  	of __w1 and __w0.
 33097  
 33098  Fri Feb 14 21:33:21 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33099  
 33100  	* longlong.h: Make default count_leading_zeros work for machines >
 33101  	32 bits.  Prepend `__' before local variables to avoid conflicts
 33102  	with users' variables.
 33103  
 33104  	* mpn_dm_1.c: Remove udiv_qrnnd_preinv ...
 33105  	* gmp-impl.h: ... and put it here.
 33106  	* mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd.
 33107  
 33108  Tue Feb 11 17:20:12 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33109  
 33110  	* mpn_mul: Enhance base case by handling small multiplicands.
 33111  	* mpn_dm_1.c: Revert last change.
 33112  
 33113  Mon Feb 10 11:55:15 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33114  
 33115  	* mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed.
 33116  
 33117  Fri Feb  7 16:26:16 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33118  
 33119  	* mpn_mul: Replace code for base case.
 33120  
 33121  Thu Feb  6 15:10:42 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33122  
 33123  	* mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by
 33124  	pre-inverting divisor.
 33125  
 33126  Sun Feb  2 11:10:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33127  
 33128  	* longlong.h: Make __LLDEBUG__ work differently.
 33129  	(_IBMR2): Reinsert old code.
 33130  
 33131  Sat Feb  1 16:43:00 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33132  
 33133  	* longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code
 33134  	using floating point operations.  Don't define
 33135  	UDIV_NEEDS_NORMALIZATION any longer.
 33136  
 33137  Fri Jan 31 15:09:13 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33138  
 33139  	* longlong.h: Define UMUL_TIME and UDIV_TIME for most machines.
 33140  	* longlong.h (#ifdef __hppa): Define umul_ppmm.
 33141  
 33142  Wed Jan 29 16:41:36 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33143  
 33144  	* mpn_cmp: Only one length parameter, assume operand lengths are
 33145  	the same.  Don't require normalization.
 33146  	* mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for
 33147  	new mpn_cmp definition.
 33148  
 33149  Tue Jan 28 11:18:55 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33150  
 33151  	* _mpz_get_str: Fix typo in comment.
 33152  
 33153  Mon Jan 27 09:44:16 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33154  
 33155  	* Makefile.in: Add new files.
 33156  
 33157  	* mpn_dm_1.c: New file with function _mpn_divmod_1.
 33158  	* mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1.
 33159  	* mpz_div_ui: Likewise.
 33160  
 33161  	* mpn_mod_1.c: New file with function _mpn_mod_1.
 33162  	* mpz_mod_ui: Use _mpn_mod_1.
 33163  
 33164  Thu Jan 23 18:54:09 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33165  
 33166  	Bug found by Paul Zimmermann (zimmermann@inria.inria.fr):
 33167  	* mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui):
 33168  	Handle dividend == 0.
 33169  
 33170  Wed Jan 22 12:02:26 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33171  
 33172  	* mpz_pprime.c: Use "" for #include.
 33173  
 33174  Sun Jan 19 13:36:55 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33175  
 33176  	* mpn_rshiftci.c (header): Correct comment.
 33177  
 33178  Wed Jan 15 18:56:04 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33179  
 33180  	* mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1)
 33181  	to make space for ignored quotient at the end.  (The quotient might
 33182  	always be an extra limb.)
 33183  
 33184  Tue Jan 14 21:28:48 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33185  
 33186  	* mpz_powm_ui: Fix comment.
 33187  	* mpz_powm: Likewise.
 33188  
 33189  Mon Jan 13 18:16:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33190  
 33191  	* tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target.
 33192  
 33193  Sun Jan 12 13:54:28 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33194  
 33195  	Fixes from Kazumaro Aoki:
 33196  	* mpz_out_raw: Take abs of size to handle negative values.
 33197  	* mpz_inp_raw: Reallocate before reading ptr from X.
 33198  	* mpz_inp_raw: Store, don't read, size to x->size.
 33199  
 33200  Tue Jan  7 17:50:25 1992  Torbjorn Granlund  (tege@zevs.sics.se)
 33201  
 33202  	* gmp.h, mp.h: Remove parameter names from prototypes.
 33203  
 33204  Sun Dec 15 00:09:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33205  
 33206  	* tests/Makefile.in: Prepend "./" to file names when executing
 33207  	tests.
 33208  
 33209  	* Makefile.in: Fix many problems.
 33210  
 33211  Sat Dec 14 01:00:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33212  
 33213  	* mpn_sqrt.c: New file with _mpn_sqrt.
 33214  	* mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt.
 33215  	* msqrt.c: Delete.  Create from mpz_sqrtrem.c in Makefile.in.
 33216  	* mpz_do_sqrt.c: Delete.
 33217  	* Makefile.in: Update to reflect these changes.
 33218  
 33219  	* Makefile.in, configure, configure.subr: New files
 33220  	(from bothner@cygnus.com).
 33221  	* dist-Makefile: Delete.
 33222  
 33223  	* mpz_fac_ui: Fix comment.
 33224  
 33225  	* mpz_random2: Rewrite a bit to make it possible for the most
 33226  	significant limb to be == 1.
 33227  
 33228  	* mpz_pprime.c (mpz_probab_prime_p): Remove \t\n.
 33229  
 33230  Fri Dec 13 23:10:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33231  
 33232  	* mpz_do_sqrt: Simplify special case for U == 0.
 33233  	* m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p):
 33234  	Rename _mpz_impl_sqrt to _mpz_do_sqrt.
 33235  
 33236  Fri Dec 13 12:52:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33237  
 33238  	* gmp-impl.h (MPZ_TMP_INIT): Cast to the right type.
 33239  
 33240  Thu Dec 12 22:17:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33241  
 33242  	* mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several
 33243  	variables to mp_size.
 33244  
 33245  Wed Dec 11 22:00:34 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33246  
 33247  	* mpn_rshift.c: Fix header comments.
 33248  
 33249  Mon Dec  9 17:46:10 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33250  
 33251  	Released 1.2.
 33252  
 33253  	* gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value.
 33254  
 33255  	* dist-Makefile: Add missing dependency for cre-mparam.
 33256  
 33257  	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
 33258  	  mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment.
 33259  
 33260  	* dist-Makefile (clean): clean in tests subdir too.
 33261  	* tests/Makefile: Define default values for ROOT and SUB.
 33262  
 33263  	* longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
 33264  	2 constraint.
 33265  
 33266  Mon Nov 11 00:06:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33267  
 33268  	* mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0.
 33269  
 33270  Sat Nov  9 23:47:38 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33271  
 33272  	Released 1.1.94.
 33273  
 33274  	* dist-Makefile, Makefile, tests/Makefile: Merge tests into
 33275  	distribution.
 33276  
 33277  Fri Nov  8 22:57:19 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33278  
 33279  	* gmp.h: Don't use keyword `signed' for non-ANSI compilers.
 33280  
 33281  Thu Nov  7 22:06:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33282  
 33283  	* longlong.h: Cosmetic changes to keep it identical to gcc2 version
 33284  	of longlong.h.
 33285  	* longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
 33286  	sub_ddmmss.
 33287  
 33288  Mon Nov  4 00:36:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33289  
 33290  	* mpn_mul: Fix indentation.
 33291  
 33292  	* mpz_do_sqrt: Don't assume 32 bit limbs (had constant
 33293  	4294967296.0).
 33294  	* mpz_do_sqrt: Handle overflow in conversion from double returned
 33295  	by SQRT to mp_limb.
 33296  
 33297  	* gmp.h: Add missing function definitions.
 33298  
 33299  Sun Nov  3 18:25:25 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33300  
 33301  	* mpz_pow_ui: Change type of `i' to int.
 33302  
 33303  	* ChangeLog: Add change log entry.
 33304  	* ChangeLog: Add change log entry.
 33305  	* ChangeLog: Add change log entry.
 33306  	* ChangeLog: Add change log entry.
 33307  	* ChangeLog: Add change log entry.
 33308  	* ChangeLog: Add change log entry.
 33309  	* ChangeLog: Add change log entry.
 33310  	* ChangeLog: Add change log entry.
 33311  Stack overflow.
 33312  
 33313  	* mpz_pow_ui.c: Fix typo in comment.
 33314  
 33315  	* dist-Makefile: Create rpow.c from mpz_powm_ui.c.
 33316  	* mpz_powm_ui.c: Add code for rpow.
 33317  	* rpow.c: Delete this file.  The rpow function is now implemented
 33318  	in mpz_powm_ui.c.
 33319  
 33320  	* mpz_fac_ui.c: New file.
 33321  	* gmp.h, dist-Makefile: Add stuff for mpz_fac_ui.
 33322  
 33323  	Bug found by John Amanatides (amana@sasquatch.cs.yorku.ca):
 33324  	* mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with
 33325  	the first argument not smaller than the second.
 33326  
 33327  Tue Oct 29 13:56:55 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33328  
 33329  	* cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output
 33330  	header text.
 33331  
 33332  Mon Oct 28 00:35:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33333  
 33334  	* mpz_random2: Handle size == 0.
 33335  
 33336  	* gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to
 33337  	chars_per_bit_exactly, and change its definition.
 33338  	* cre-conv-tab.c (main): Output field according to its new
 33339  	definition.
 33340  	* mpz_out_str, _mpz_get_str, mpz_sizeinb, mout:
 33341  	Use chars_per_bit_exactly.
 33342  
 33343  	* mpz_random2: Change the loop termination condition in order to
 33344  	get a large most significant limb with higher probability.
 33345  
 33346  	* gmp.h: Add declaration of new mpz_random2 and mpz_get_si.
 33347  	* mpz_get_si.c: New file.
 33348  	* dist-Makefile: Add mpz_random2 and mpz_get_si.
 33349  
 33350  	* mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a
 33351  	power of 2, giving exact result.
 33352  
 33353  	* mpn_mul: Fix MPN_MUL_VERIFY in various ways.
 33354  	* mpn_mul: New macro KARATSUBA_THRESHOLD.
 33355  	* mpn_mul (karatsuba's algorithm): Don't write intermediate results
 33356  	to prodp, use temporary pp instead.  (Intermediate results can be
 33357  	larger than the final result, possibly writing into hyperspace.)
 33358  	* mpn_mul: Make smarter choice between Karatsuba's algorithm and the
 33359  	shortcut algorithm.
 33360  	* mpn_mul: Fix typo, cy instead of xcy.  Unify carry handling code.
 33361  
 33362  Sun Oct 27 19:57:32 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33363  
 33364  	* mpn_mul: In non-classical case, choose Karatsuba's algorithm only
 33365  	when usize > 1.5 vsize.
 33366  
 33367  	* mpn_mul: Break between classical and Karatsuba's algorithm at
 33368  	KARATSUBA_THRESHOLD, if defined.  Default to 8.
 33369  
 33370  	* mpn_div: Kludge to fix stray memory read.
 33371  
 33372  Sat Oct 26 20:06:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33373  
 33374  	* mpz_gcdext: Handle a = b = 0.  Remove memory leakage by calling
 33375  	mpz_clear for all temporary variables.
 33376  
 33377  	* mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that
 33378  	function's argument constraints.  Compute wsize correctly.
 33379  
 33380  	* mpz_gcd: Fix typo in comment.
 33381  
 33382  	* memory.c (_mp_default_allocate, _mp_default_reallocate): Call
 33383  	abort if allocation fails, don't just exit.
 33384  
 33385  Fri Oct 25 22:17:20 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33386  
 33387  	* mpz_random2.c: New file.
 33388  
 33389  Thu Oct 17 18:06:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33390  
 33391  	Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
 33392  	* mpq_cmp: Take sign into account, don't just compare the
 33393  	magnitudes.
 33394  	* mpq_cmp: Call _mpn_mul in the right way, with the first argument
 33395  	not smaller than the second.
 33396  
 33397  Wed Oct 16 19:27:32 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33398  
 33399  	* mpz_random: Ensure the result is normalized.
 33400  
 33401  Tue Oct 15 14:55:13 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33402  
 33403  	* mpz_clrbit: Support non-ANSI compilers.
 33404  
 33405  Wed Oct  9 18:03:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33406  
 33407  	* longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints.
 33408  
 33409  Tue Oct  8 17:42:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33410  
 33411  	* mpz_mdm_ui: Add comments.
 33412  
 33413  	* mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init.
 33414  	* mpz_init_ui: Change spacing and header comment.
 33415  
 33416  Thu Oct  3 18:36:13 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33417  
 33418  	* dist-Makefile: Prepend `./' before some filenames.
 33419  
 33420  Sun Sep 29 14:02:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33421  
 33422  	Released 1.1 (public).
 33423  
 33424  	* mpz_com: New name of mpz_not.
 33425  	* dist-Makefile: Change mpz_not to mpz_com.
 33426  
 33427  Tue Sep 24 12:44:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33428  
 33429  	* longlong.h: Fix header comment.
 33430  
 33431  Mon Sep  9 15:16:24 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33432  
 33433  	Released 1.0.92.
 33434  
 33435  	* mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba
 33436  	case.
 33437  
 33438  	* longlong.h (m68000 umul_ppmm): Clobber one register less by
 33439  	slightly rearranging the code.
 33440  
 33441  Sun Sep  1 18:53:25 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33442  
 33443  	* dist-Makefile (stamp-stddefh): Fix typo.
 33444  
 33445  Sat Aug 31 20:41:31 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33446  
 33447  	Released 1.0.91.
 33448  
 33449  	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
 33450  	  mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions.
 33451  	* gmp.h, gmp.texi: Define the new functions.
 33452  
 33453  Fri Aug 30 08:32:56 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33454  
 33455  	* mpz_gcdext: Compute t argument from the other quantities at the
 33456  	  end, of the function, not in the loop.  New feature: Allow t to be
 33457  	  NULL.
 33458  
 33459  	* mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't
 33460  	  include "mp.h".  Use type name `MP_INT' always.
 33461  
 33462  	* dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c.
 33463  
 33464  Wed Aug 28 00:45:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33465  
 33466  	* dist-Makefile (documentation): Go via tmp.texi to avoid the
 33467  	  creation of gmp.dvi if any errors occur.  Make tex read input
 33468  	  from /dev/null.
 33469  
 33470  Fri Aug 23 15:58:52 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33471  
 33472  	* longlong.h (68020, i386): Don't define machine-dependent
 33473  	  __umulsidi3 (so the default definition is used).
 33474  	* longlong.h (all machines): Cast all operands, sources and
 33475  	  destinations, to `unsigned long int'.
 33476  	* longlong.h: Add gmicro support.
 33477  
 33478  Thu Aug 22 00:28:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33479  
 33480  	* longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
 33481  	* longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
 33482  	* longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
 33483  	* _mpz_get_str.c: Add code to do division by big_base using only
 33484  	  umul_qrnnd, if that is faster.  Use UMUL_TIME and UDIV_TIME to
 33485  	  decide which variant to use.
 33486  
 33487  Wed Aug 21 15:45:23 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33488  
 33489  	* longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
 33490  	  nops.  (Saves two insn.)
 33491  
 33492  	* longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
 33493  	  branch, and to permit input/output register overlap.
 33494  
 33495  	* longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
 33496  	* longlong.h (__29k__ umul_ppmm): Split asm instructions into two
 33497  	  asm statements (gives better code if either the upper or lower
 33498  	  part of the product is unused.
 33499  
 33500  Tue Aug 20 17:57:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33501  
 33502  	* _mpz_get_str.c (outside of functions): Remove
 33503  	  num_to_ascii_lower_case and num_to_ascii_upper_case.  Use string
 33504  	  constants in the function instead.
 33505  
 33506  Mon Aug 19 00:37:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33507  
 33508  	* cre-conv-tab.c (main): Output table in hex.  Output 4 fields, not
 33509  	  3, for components 0 and 1.
 33510  
 33511  	* gmp.h: Add declaration of mpq_neg.
 33512  
 33513  	Released 1.0beta.13.
 33514  
 33515  	* _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before
 33516  	  comparing to enum literals SPC and EOF.  This makes the code work
 33517  	  for compilers where `char' is unsigned.  (Bug found by Brian
 33518  	  Beuning).
 33519  
 33520  	Released 1.0beta.12.
 33521  
 33522  	* mpz_mod_ui: Remove references to quot.  Remove quot_ptr, quot_size
 33523  	  declarations and assignment code.
 33524  
 33525  Sun Aug 18 14:44:26 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33526  
 33527  	* mpz_mod_ui: Handle dividend < 0.
 33528  
 33529  	Released 1.0beta.11.
 33530  
 33531  	* mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same
 33532  	  general structure, variable names, etc.
 33533  
 33534  	* sdiv: Un-normalize the remainder in n1 before it is negated.
 33535  
 33536  	* longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
 33537  	  udiv_qrnnd.
 33538  
 33539  	* mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment
 33540  	  the quotient size if the dividend size is incremented.  (Bug found
 33541  	  by Brian Beuning.)
 33542  
 33543  	* mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION.
 33544  	  (Bug found by Brian Beuning.)
 33545  
 33546  	* mpz_mod_ui: Replace "digit" by "limb".
 33547  
 33548  	* mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case
 33549  	  for non-32-bit machines (PP is hardwired for such machines).
 33550  	* mpz_perfsqr.c (outside of functions): Define PP value with an L.
 33551  
 33552  	* mpn_mul.c (_mpn_mul): Add verification code that is activated if
 33553  	  DEBUG is defined.  Replace "digit" by "limb".
 33554  	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp
 33555  	  after the addition.
 33556  	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size
 33557  	  and v0_size, and according to the result, swap arguments in
 33558  	  recursive call.  (Don't violate mpn_mul's own argument
 33559  	  constraints.)
 33560  
 33561  Fri Aug 16 13:47:12 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33562  
 33563  	Released 1.0beta.10.
 33564  
 33565  	* longlong.h (IBMR2): Add udiv_qrnnd.
 33566  
 33567  	* mpz_perfsqr: Remove unused variables.
 33568  
 33569  	* mpz_and (case for different signs): Initialize loop variable i!
 33570  
 33571  	* dist-Makefile: Update automatically generated dependencies.
 33572  	* dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h,
 33573  	  etc to dependency file lists.
 33574  
 33575  	* longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
 33576  	  `unsigned long int'.
 33577  	* longlong.h: Add `int' after `unsigned' and `long' everywhere.
 33578  
 33579  Wed Aug 14 18:06:48 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33580  
 33581  	* longlong.h: Add ARM, i860 support.
 33582  
 33583  	* mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb.
 33584  
 33585  Tue Aug 13 21:57:43 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33586  
 33587  	* _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase),
 33588  	  mpz_out_str.c, mout.c: Remove declaration of __mp_bases.
 33589  	* gmp-impl.h: Put it here, and make it `const'.
 33590  	* cre-conv-tab.c (main): Make struct __mp_bases `const'.
 33591  
 33592  Mon Aug 12 17:11:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33593  
 33594  	* cre-conv-tab.c (main): Use %lu in printf for long ints.
 33595  
 33596  	* dist-Makefile: Fix cre-* dependencies.
 33597  
 33598  	* cre-conv-tab.c (main): Output field big_base_inverted.
 33599  
 33600  	* gmp-impl.h (struct bases): New field big_base_inverted.
 33601  	* gmp-impl.h (struct bases): Change type of chars_per_limb_exactly
 33602  	  to float (in order to keep the structure smaller).
 33603  
 33604  	* mp.h, gmp.h: Change names of macros for avoiding multiple
 33605  	  includes.
 33606  
 33607  Fri Aug  9 18:01:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33608  
 33609  	* _mpz_get_str: Only shift limb array if normalization_steps != 0
 33610  	  (optimization).
 33611  
 33612  	* longlong.h (sparc umul_ppmm): Use __asm__, not asm.
 33613  	* longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
 33614  	  and m1 (overlap between output and input operands did not work).
 33615  	* longlong.h: Add VAX, ROMP and HP-PA support.
 33616  	* longlong.h: Sort the machine dependent code in alphabetical order
 33617  	  on the CPU name.
 33618  	* longlong.h: Hack comments.
 33619  
 33620  Thu Aug  8 14:13:36 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33621  
 33622  	Released 1.0beta.9.
 33623  
 33624  	* longlong.h: Define BITS_PER_LONG to 32 if it's not already
 33625  	  defined.
 33626  	* Define __BITS4 to BITS_PER_LONG / 4.
 33627  	* Don't assume 32 bit word size in "count_leading_zeros" C macro.
 33628  	  Use __BITS4 and BITS_PER_LONG instead.
 33629  
 33630  	* longlong.h: Don't #undef internal macros (reverse change of Aug 3).
 33631  
 33632  	* longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
 33633  	  even for plain mc68000.
 33634  
 33635  	* mpq_div: Flip the sign of the numerator *and* denominator of the
 33636  	  result if the intermediate denominator is negative.
 33637  
 33638  	* mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations.
 33639  
 33640  	* mpz_and.c: Compute the result size more conservatively.
 33641  	* mpz_ior.c: Likewise.
 33642  
 33643  	* mpz_realloc: Never allocate zero space even if NEW_SIZE == 0.
 33644  
 33645  	* dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from
 33646  	  BSDMP_SRCS.
 33647  
 33648  	* dist-Makefile: Create mult.c from mpz_mul.c.
 33649  	* mult.c: Delete this file.
 33650  
 33651  	* _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was
 33652  	  not done properly if the input string had many leading zeros).
 33653  
 33654  Sun Aug  4 16:54:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33655  
 33656  	* dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets
 33657  	  work with VPATH and GNU MP.
 33658  
 33659  	* mpz_gcd: Don't call mpz_set; inline its functionality.
 33660  
 33661  	* mpq_mul, mpq_div: Fix several serious typos.
 33662  
 33663  	* mpz_dmincl, mpz_div: Don't normalize the quotient if it's already
 33664  	  zero.
 33665  
 33666  	* mpq_neg.c: New file.
 33667  
 33668  	* dist-Makefile: Remove obsolete dependencies.
 33669  
 33670  	* mpz_sub: Fix typo.
 33671  
 33672  	Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
 33673  	* mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd
 33674  	  is just 1.
 33675  	* mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases.
 33676  
 33677  Sat Aug  3 23:45:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33678  
 33679  	* longlong.h: Clean up comments.
 33680  	* longlong.h: #undef internal macros.
 33681  
 33682  Fri Aug  2 18:29:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33683  
 33684  	* mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1.
 33685  	* mpq_set_si, mpq_set_ui: Cosmetic formatting changes.
 33686  
 33687  	* mpz_dmincl.c: Normalize the remainder before shifting it back.
 33688  
 33689  	* mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend.
 33690  
 33691  	* mpn_div.c: Fix comment.
 33692  
 33693  	* mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate
 33694  	  type, in order to work for both GNU and Berkeley functions.
 33695  
 33696  	* dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm,
 33697  	  madd.c from mpz_add.c, msub.c from mpz_sub.c.
 33698  	  respectively.
 33699  	* pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these.
 33700  	* mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and
 33701  	  Berkeley function name variants.
 33702  	* dist-Makefile: Add created files to "clean" target.
 33703  
 33704  Tue Jul 16 15:19:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33705  
 33706  	* mpq_get_den: No need for absolute value of the size, the
 33707  	  denominator is always positive.
 33708  
 33709  	* mpz_get_ui: If the operand is zero, return zero.  Don't read the
 33710  	  limb array!
 33711  
 33712  	* mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it
 33713  	  is the size of the remainder.
 33714  
 33715  Mon Jul 15 11:08:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33716  
 33717  	* Several files: Remove unused variables and functions.
 33718  
 33719  	* gmp-impl.h: Declare _mpz_impl_sqrt.
 33720  
 33721  	* mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if
 33722  	  UDIV_NEEDS_NORMALIZATION.  (Fix from Brian Beuning.)
 33723  
 33724  	* mpz_dm_ui.c, sdiv: Replace *digit with *limb.
 33725  
 33726  	* mpz_ior: Add missing else statement in -OP1 | -OP2 case.
 33727  	* mpz_ior: Add missing else statement in OP1 | -OP2 case.
 33728  	* mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
 33729  	* mpz_ior: Duplicate _mpz_realloc code.
 33730  
 33731  	* mpz_and: Add missing else statement in -OP1 & -OP2 case.
 33732  	* mpz_and: Rewrite OP1 & -OP2 case.
 33733  	* mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
 33734  
 33735  	* mpz_gcdext: Loop in d1.size (not b->size).  (Fix from Brian
 33736  	  Beuning.)
 33737  
 33738  	* mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call.  (Fix from
 33739  	  Brian Beuning.)
 33740  
 33741  Fri Jul 12 17:10:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33742  
 33743  	* mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c,
 33744  	  mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c:
 33745  	  New files.
 33746  
 33747  	* mpz_dmincl.c: Remove second re-allocation of rem->d.  It
 33748  	  was never executed.
 33749  
 33750  	* dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as
 33751  	  some unixes' test doesn't have the -r option).
 33752  
 33753  	* *.*: Cast allocated pointers to the appropriate type (makes old C
 33754  	  compilers happier).
 33755  
 33756  	* cre-conv-tab.c (main): Divide max_uli by 2 and multiply again
 33757  	  after conversion to double.  (Kludge for broken C compilers.)
 33758  
 33759  	* dist-Makefile (stamp-stddefh): New target.  Test if "stddef.h"
 33760  	  exists in the system and creates a minimal one if it does not
 33761  	  exist.
 33762  	* cre-stddefh.c: New file.
 33763  	* dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh.
 33764  	* dist-Makefile (clean): Add some more.
 33765  	* gmp.h, mp.h: Unconditionally include "stddef.h".
 33766  
 33767  Thu Jul 11 10:08:21 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33768  
 33769  	* min: Do ungetc of last read character.
 33770  	* min.c: include stdio.h.
 33771  
 33772  	* dist-Makefile: Go via tmp- files for cre* redirection.
 33773  	* dist-Makefile: Add tmp* to "clean" target.
 33774  
 33775  	* dist-Makefile: Use LOCAL_CC for cre*, to simplify cross
 33776  	  compilation.
 33777  
 33778  	* gmp.h, mp.h: Don't define NULL here.
 33779  	* gmp-impl.h: Define it here.
 33780  
 33781  Wed Jul 10 14:13:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33782  
 33783  	* mpz_mod_2exp: Don't copy too much, overwriting most significant
 33784  	  limb.
 33785  
 33786  	* mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when
 33787  	  reallocating res, if op[12]_ptr got their value from alloca.
 33788  
 33789  	* mpz_and, mpz_ior: Clear up comments.
 33790  
 33791  	* cre-mparam.c: Output parameters for `short int' and `int'.
 33792  
 33793  	* mpz_and, mpz_ior: Negate negative op[12]_size in several places.
 33794  
 33795  Tue Jul  9 18:40:30 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33796  
 33797  	* gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t.
 33798  	  (Fix for Sun lossage.)
 33799  
 33800  	* gmp.h: Add declaration of mpq_clear.
 33801  
 33802  	* dist-Makefile: Check if "ranlib" exists, before using it.
 33803  	* dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c.
 33804  	* mpz_powm: Fix typo, "pow" instead of "mpz_powm".
 33805  
 33806  Fri Jul  5 19:08:09 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33807  
 33808  	* move: Remove incorrect comment.
 33809  
 33810  	* mpz_free, mpq_free: Rename to *_clear.
 33811  	* dist-Makefile: Likewise.
 33812  	* mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise.
 33813  
 33814  	* mpz_dmincl.c: Don't call "move", inline its functionality.
 33815  
 33816  Thu Jul  4 00:06:39 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33817  
 33818  	* Makefile: Include dist-Makefile.  Fix dist target to include
 33819  	  dist-Makefile (with the name "Makefile" in the archive).
 33820  
 33821  	* dist-Makefile: New file made from Makefile.  Add new mpz_...
 33822  	  functions.
 33823  
 33824  	* mpz_powincl.c New file for mpz_powm (Berkeley MP pow)
 33825  	  functionality.  Avoids code duplication.
 33826  	* pow.c, mpz_powm.c: Include mpz_powincl.c
 33827  
 33828  	* mpz_dmincl.c: New file containing general division code.  Avoids
 33829  	  code duplication.
 33830  	* mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include
 33831  	  mpz_dmincl.c.
 33832  
 33833  	* _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined.
 33834  	  Instead, write the overlapping memory copying inline.
 33835  
 33836  	* mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit).
 33837  
 33838  	* longlong.h: Don't use #elif.
 33839  	* mpz_do_sqrt.c: Likewise.
 33840  
 33841  	* longlong.h: Use __asm__ instead of asm.
 33842  	* longlong.h (sparc udiv_qrnnd): Make it to one string over several
 33843  	  lines.
 33844  
 33845  	* longlong.h: Preend __ll_ to B, highpart, and lowpart.
 33846  
 33847  	* longlong.h: Move array t in count_leading_zeros to the new file
 33848  	  mp_clz_tab.c.  Rename the array __clz_tab.
 33849  	* All files: #ifdef for traditional C compatibility.
 33850  
 33851  Wed Jul  3 11:42:14 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33852  
 33853  	* mpz_and: Initialize res_ptr always (used to be initialized only
 33854  	  when reallocating).
 33855  
 33856  	* longlong.h (umul_ppmm [C variant]): Make __ul...__vh
 33857  	  `unsigned int', and cast the multiplications.  This way
 33858  	  compilers more easily can choose cheaper multiplication
 33859  	  instructions.
 33860  
 33861  	* mpz_mod_2exp: Handle input argument < modulo argument.
 33862  	* mpz_many: Make sure mp_size is the type for sizes, not int.
 33863  
 33864  	* mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul,
 33865  	  mpq_div: Change mpz_init* interface.  Structure pointer as first
 33866  	  arg to initialization function, no longer *return* struct.
 33867  
 33868  Sun Jun 30 19:21:44 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33869  
 33870  	* Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14
 33871  	  character file name length limit.
 33872  
 33873  	* Most files: Rename MINT to MP_INT.  Rename MRAT to MP_RAT.
 33874  	* mpz_sizeinb.c: New file with function mpz_sizeinbase.
 33875  	* mp_bases.c: New file, with array __mp_bases.
 33876  	* _mpz_get_str, _mpz_set_str: Remove struct bases, use extern
 33877  	  __mp_bases instead.
 33878  	* mout, mpz_out_str: Use array __mp_bases instead of function
 33879  	  _mpz_get_cvtlen.
 33880  	* mpz_get_cvtlen.c: Remove.
 33881  	* Makefile: Update.
 33882  
 33883  Sat Jun 29 21:57:28 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33884  
 33885  	* longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
 33886  	* longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss.
 33887  	* longlong.h (__sparc__): Don't call .umul; expand asm instead.
 33888  	  Don't define __umulsidi3 (i.e. use default definition).
 33889  
 33890  Mon Jun 24 17:37:23 1991  Torbjorn Granlund  (tege@amon.sics.se)
 33891  
 33892  	* _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case):
 33893  	  Swap 't' and 's'.
 33894  
 33895  Sat Jun 22 13:54:01 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33896  
 33897  	* mpz_gcdext.c: New file.
 33898  
 33899  	* mpn_mul: Handle carry and unexpected operand sizes in last
 33900  	  additions/subtractions.  (Bug trigged when v1_size == 1.)
 33901  
 33902  	* mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c).
 33903  	* mpq_*: Call mpz_init*.
 33904  
 33905  	* mpz_pow_ui, rpow: Use _mpn_mul instead of mult.  Restructure.
 33906  
 33907  Wed May 29 20:32:33 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33908  
 33909  	* mpz_get_cvtlen: multiply by size.
 33910  
 33911  Sun May 26 15:01:15 1991  Torbjorn Granlund  (tege@bella.nada.kth.se)
 33912  
 33913  	Alpha-release 0.95.
 33914  
 33915  	Fixes from Doug Lea (dl@g.oswego.edu):
 33916  	* mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE).  Adjust PROD_SIZE
 33917  	  correctly.
 33918  	* mpz_div: Prepend _ to mpz_realloc.
 33919  	* mpz_set_xs, mpz_set_ds: Fix typos in function name.
 33920  
 33921  Sat May 25 22:51:16 1991  Torbjorn Granlund  (tege@bella.nada.kth.se)
 33922  
 33923  	* mpz_divmod_ui: New function.
 33924  
 33925  	* sdiv: Make the sign of the remainder correct.
 33926  
 33927  Thu May 23 15:28:24 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33928  
 33929  	* Alpha-release 0.94.
 33930  
 33931  	* mpz_mul_ui: Include longlong.h.
 33932  
 33933  	* mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead
 33934  	  of msqrt.
 33935  
 33936  	* mpz_impl_sqrt: Don't call "move", inline its functionality.
 33937  
 33938  	* mdiv: Use MPN_COPY instead of memcpy.
 33939  	* rpow, mpz_mul, mpz_mod_2exp: Likewise.
 33940  	* pow.c: Likewise, and fix bug in the size arg.
 33941  
 33942  	* xtom: Don't use mpz_alloc, inline needed code instead.  Call
 33943  	  _mpz_set_str instead of mpz_set_str.
 33944  
 33945  	* Makefile: Make two libraries, libmp.a and libgmp.a.
 33946  
 33947  Thu May 22 20:25:29 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33948  
 33949  	* Add manual to distribution.
 33950  	* Fold in many missing routines described in the manual.
 33951  	* Update Makefile.
 33952  
 33953  Wed May 22 13:48:46 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33954  
 33955  	* mpz_set_str: Make it handle 0x prefix OK.
 33956  
 33957  Sat May 18 18:31:02 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33958  
 33959  	* memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE
 33960  	  arguments.
 33961  	* mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func.
 33962  	* min: Likewise.
 33963  
 33964  Thu May 16 20:43:05 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33965  
 33966  	* memory.c: Make the default allocations functions global.
 33967  	* mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the
 33968  	  default memory function.
 33969  
 33970  Wed May  8 20:02:42 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33971  
 33972  	* mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D
 33973  	  even if no normalization is needed.
 33974  	* mpz_div: Rework reallocation scheme, to avoid excess copying.
 33975  
 33976  	* mpz_sub_ui.c, mpz_add_ui.c: New files.
 33977  
 33978  	* mpz_cmp.c, mpz_cmp_ui.c: New files.
 33979  
 33980  	* mpz_mul_2exp: Handle zero input MINT correctly.
 33981  
 33982  	* mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT.
 33983  
 33984  	* mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O.
 33985  
 33986  Tue May  7 15:44:58 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33987  
 33988  	* mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT.
 33989  	* mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT.
 33990  	* gcd, mpz_gcd: Likewise.
 33991  
 33992  	* gcd, mpz_gcd: Handle common 2 factors correctly.
 33993  
 33994  Mon May  6 20:22:59 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 33995  
 33996  	* gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy.
 33997  
 33998  	* gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros.
 33999  
 34000  Sun May  5 15:16:23 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34001  
 34002  	* mpz_div: Remove test for QUOT == 0.
 34003  
 34004  Sun Apr 28 20:21:04 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34005  
 34006  	* pow: Don't make MOD normalization in place, as it's a bad idea to
 34007  	  write on an input parameter.
 34008  	* pow: Reduce BASE if it's > MOD.
 34009  	* pow, mult, mpz_mul: Simplify realloc code.
 34010  
 34011  Sat Apr 27 21:03:11 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34012  
 34013  	* Install multiplication using Karatsuba's algorithm as default.
 34014  
 34015  Fri Apr 26 01:03:57 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34016  
 34017  	* msqrt: Store in ROOT even for U==0, to make msqrt(0) defined.
 34018  
 34019  	* mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and
 34020  	  left, respectively.
 34021  	* gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp.
 34022  
 34023  	* mlshift.c, mrshift.c: Remove.
 34024  
 34025  Wed Apr 24 21:39:22 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34026  
 34027  	* mpn_mul: Check only for m2_size == 0 in function header.
 34028  
 34029  Mon Apr 22 01:31:57 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34030  
 34031  	* karatsuba.c: New file for Karatsuba's multiplication algorithm.
 34032  
 34033  	* mpz_random, mpz_init, mpz_mod_2exp: New files and functions.
 34034  
 34035  	* mpn_cmp: Fix header comment.
 34036  
 34037  Sun Apr 21 00:10:44 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34038  
 34039  	* pow: Switch off initial base reduction.
 34040  
 34041  Sat Apr 20 22:06:05 1991  Torbjorn Granlund  (tege@echnaton.sics.se)
 34042  
 34043  	* mpz_get_str: Don't generate initial zeros for initial word.
 34044  	  Used to write outside of allocated storage.
 34045  
 34046  Mon Apr 15 15:48:08 1991  Torbjorn Granlund  (tege@zevs.sics.se)
 34047  
 34048  	* _mpz_realloc: Make it accept size in number of mp_digits.
 34049  	* Most functions: Use new _mpz_realloc definition.
 34050  
 34051  	* mpz_set_str: Remove calls _mp_free_func.
 34052  
 34053  	* Most functions: Rename mpn_* to _mpn_*.  Rename mpz_realloc to
 34054  	  _mpz_realloc.
 34055  	* mpn_lshift: Redefine _mpn_lshift to only handle small shifts.
 34056  	* mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift.
 34057  	* msqrt, mp*_*shift*: Define cnt as unsigned (for speed).
 34058  
 34059  Sat Apr  6 14:05:16 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)
 34060  
 34061  	* mpn_mul: Multiply by the first digit in M2 in a special
 34062  	  loop instead of zeroing the product area.
 34063  
 34064  	* mpz_abs.c: New file.
 34065  
 34066  	* sdiv: Implement as mpz_div_si for speed.
 34067  
 34068  	* mpn_add: Make it work for second source operand == 0.
 34069  
 34070  	* msub: Negate the correct operand, i.e. V before swapping, not
 34071  	  the smaller of U and V!
 34072  	* madd, msub: Update abs_* when swapping operands, and not after
 34073  	  (optimization).
 34074  
 34075  Fri Apr  5 00:19:36 1991  Torbjorn Granlund  (tege@black.nada.kth.se)
 34076  
 34077  	* mpn_sub: Make it work for subtrahend == 0.
 34078  
 34079  	* madd, msub: Rewrite to minimize mpn_cmp calls.  Ensure
 34080  	  mpn_cmp is called with positive sizes (used to be called
 34081  	  incorrectly with negative sizes sometimes).
 34082  
 34083  	* msqrt: Make it divide by zero if fed with a negative number.
 34084  	* Remove if statement at end of precision calculation that was
 34085  	  never true.
 34086  
 34087  	* itom, mp.h: The argument is of type short, not int.
 34088  
 34089  	* mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer.
 34090  
 34091  	* mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h.
 34092  
 34093  	* Add COPYING to distribution.
 34094  
 34095  	* mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files.
 34096  
 34097  Fri Mar 15 00:26:29 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)
 34098  
 34099  	* Add Copyleft headers to all files.
 34100  
 34101  	* mpn_mul.c, mpn_div.c: Add header comments.
 34102  	* mult.c, mdiv.c: Update header comments.
 34103  
 34104  	* mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c,
 34105  	  mpq_free.c: New files for rational arithmetics.
 34106  
 34107  	* mpn_lshift.c: Avoid writing the most significant word if it is 0.
 34108  
 34109  	* mdiv.c: Call mpn_lshift for the normalization.
 34110  	* mdiv.c: Remove #ifdefs.
 34111  
 34112  	* Makefile: Add ChangeLog to DISTFILES.
 34113  
 34114  	* mpn_div.c: Make the add_back code work (by removing abort()).
 34115  	* mpn_div.c: Make it return if the quotient is size as compared
 34116  	  with the difference NSIZE - DSIZE.  If the stored quotient is
 34117  	  larger than that, return 1, otherwise 0.
 34118  	* gmp.h: Fix mpn_div declaration.
 34119  	* mdiv.c: Adopt call to mpn_div.
 34120  	* mpz_div.c: New file (developed from mdiv.c).
 34121  
 34122  	* README: Update routine names.
 34123  
 34124  Thu Mar 14 18:45:28 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)
 34125  
 34126  	* mpq_mul.c: New file for rational multiplication.
 34127  
 34128  	* gmp.h: Add definitions for rational arithmetics.
 34129  
 34130  	* mpn_div: Kludge the case where the high numerator digit > the
 34131  	  high denominator digit.  (This code is going to be optimized later.)
 34132  
 34133  	* New files: gmp.h for GNU specific functions, gmp-common.h for
 34134  	  definitions common for mp.h and gmp.h.
 34135  
 34136  	* Ensure mp.h just defines what BSD mp.h defines.
 34137  
 34138  	* pow.c: Fix typo for bp allocation.
 34139  
 34140  	* Rename natural number functions to mpn_*, integer functions to
 34141  	  mpz_*.
 34142  
 34143  Tue Mar  5 18:47:04 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)
 34144  
 34145  	* mdiv.c (_mp_divide, case 2): Change test for estimate of Q from
 34146  	  "n0 >= r" to "n0 > r".
 34147  
 34148  	* msqrt: Tune the increasing precision scheme, to do fewer steps.
 34149  
 34150  Tue Mar  3 18:50:10 1991  Torbjorn Granlund  (tege@musta.nada.kth.se)
 34151  
 34152  	* msqrt: Use the low level routines.  Use low precision in the
 34153  	beginning, and increase the precision as the result converges.
 34154  	(This optimization gave a 6-fold speedup.)