Home | History | Annotate | Line # | Download | only in dist
      1 2020-11-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
      2 
      3 	* Version 6.2.1 released.
      4 
      5 	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump version info.
      6 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump revision info.
      7 
      8 2020-11-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
      9 
     10 	* configure.ac (fat_path): Add bd1, goldmont,silvermont for CPUVEC.
     11 	* mpn/x86_64/fat/fat.c: Add more CPUs.
     12 	* mpn/x86/fat/fat.c: Add more CPUs.
     13 
     14 2020-11-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
     15 
     16 	* configure.ac: X86_{,64_}PATTERN: GMP_ASM_COFF_TYPE for all ABIs;
     17 	* mpn/x86_64/x86_64-defs.m4 (COFF_TYPE): Copy from mpn/x86/x86-defs.m4
     18 	as suggested by Jeremy Drake.
     19 
     20 	* tests/misc/t-locale.c (nl_langinfo): No redefine on __TERMUX__,
     21 	spotted by Sanselme and Glisse.
     22 	* configure.ac: Consider *-*-msys as *-*-mingw* (except on arm* |
     23 	aarch64*), as suggested by Ralph Peterson.
     24 	* Makefile.am (EXTRA_DIST): Add mini-gmp/ChangeLog.
     25 
     26 2020-10-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
     27 
     28 	* tests/mpf/t-get_d_2exp.c: Test also the case zero.
     29 	* tests/mpz/t-get_d.c: Likewise.
     30 	* tests/mpf/t-trunc.c: Use mpf_size.
     31 
     32 	* tests/mpf/t-conv.c: Some more tests on zero.
     33 
     34 2020-10-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
     35 
     36 	* configfsf.guess: Updated to version 2020-10-22, from gnulib.
     37 
     38 2020-10-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
     39 
     40 	* tests/devel/Makefile.am: Remove redundancies.
     41 
     42 	* tests/mpz/io.c: Test out-of-range bases for mpz_out_str.
     43 
     44 2020-10-15  Torbjrn Granlund  <tg (a] gmplib.org>
     45 
     46 	* configure.ac: Recognise zen3.
     47 	* config.guess: Recognise zen3.
     48 
     49 2020-10-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
     50 
     51 	* doc/gmp.texi (Number sequences): Remove redundancy. (spotted: TonyMcC)
     52 
     53 	* configfsf.sub: Updated to version 2020-10-13, from gnulib.
     54 	* configfsf.guess: Updated to version 2020-09-19, from gnulib.
     55 
     56 2020-10-06  Niels Mller  <nisse (a] lysator.liu.se>
     57 
     58 	* Makefile.am: Better support for make check-mini-gmp on wine or cygwin.
     59 
     60 2020-09-22  Torbjrn Granlund  <tg (a] gmplib.org>
     61 
     62 	* tests/mpz/t-mul.c: Print GMP_CHECK_FFT.
     63 
     64 	* longlong.h (x86 umul_ppmm): Fix typo.
     65 
     66 2020-09-21  Torbjrn Granlund  <tg (a] gmplib.org>
     67 
     68 	* mpz/n_pow_ui.c: Detect and report overflow.
     69 
     70 2020-07-04  Torbjrn Granlund  <tg (a] gmplib.org>
     71 
     72 	* mpn/arm64/bdiv_q_1.asm: Use LEA_HI/LEA_LO
     73 	* mpn/arm64/invert_limb.asm: Likewise.
     74 
     75 	* mpn/arm64/arm64-defs.m4: New file.
     76 	* mpn/arm64/darwin.m4: New file.
     77 	* configure.ac: Use arm64/arm64-defs.m4 and arm64/darwin.m4.
     78 
     79 2020-06-20  Torbjrn Granlund  <tg (a] gmplib.org>
     80 
     81 	* longlong.h (add_sssaaaa arm32/arm64): Generalise allowed operands
     82 	when using adds for sub and subs for add, while disallowing 0.
     83 	(sub_ddmmss ppc64): Disallow 0 when using addic.  Also disallow
     84 	constants for register-only middle addic operand.
     85 	(C add_sssaaaa and sub_ddmmss): Use more temps to make operation more
     86 	well-defined.
     87 
     88 2020-06-18  Torbjrn Granlund  <tg (a] gmplib.org>
     89 
     90 	* tests/devel/gen-test-longlong_h.c: New file.
     91 	* tests/devel/Makefile.am: Compile and use gen-test-longlong_h.c.
     92 
     93 2020-06-10  Torbjrn Granlund  <tg (a] gmplib.org>
     94 
     95 	* configure.ac: Recognise armcortexa55.
     96 
     97 2020-05-25  Torbjrn Granlund  <tg (a] gmplib.org>
     98 
     99 	* tests/cxx/t-assign.cc: Use reference parameter for 'catch'.
    100 	* tests/cxx/t-constr.cc: Likewise.
    101 	* tests/cxx/t-ops2z.cc: Likewise.
    102 	* tests/cxx/t-rand.cc: Likewise.
    103 	* tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: Likewise.
    104 
    105 	* tune/speed.c: Undo 2020-05-24 _POSIX_C_SOURCE change, it breaks on
    106 	many broken systems.
    107 	* tune/freq.c: Likewise.
    108 	* tune/time.c: Likewise.
    109 	* tune/tuneup.c: Likewise.
    110 
    111 	* tests/devel/try.c: Revert 2020-05-24 changes.
    112 
    113 2020-05-21  Torbjrn Granlund  <tg (a] gmplib.org>
    114 
    115 	* tune/freq.c (_POSIX_C_SOURCE): Define.
    116 
    117 	* tune/tuneup.c (print_define_with_speedup): Fall back from snprintf to
    118 	sprintf for C90.
    119 	(_POSIX_C_SOURCE): Define.
    120 	(max_opsize): Set by #define instead of const size_t to please C90.
    121 	(n_measurements): Likewise.
    122 	(speed_mpn_pre_set_str): Adhere to C90 declaration rules.
    123 
    124 	* tune/tune-gcd-p.c: Back out 2020-01-10 change to comply to C90.
    125 
    126 	* tune/time.c (speed_endtime): Cast printf args to right type.
    127 	(_POSIX_C_SOURCE): Define.
    128 
    129 	* tune/speed.h (CACHE_LINE_SIZE): Do #undef before defining.
    130 	(SPEED_ROUTINE_MPN_GCD_1): Provide dummy first argument for standard
    131 	compliance.
    132 	(SPEED_ROUTINE_MPN_HGCD2): Adhere to C90 declaration rules.
    133 
    134 	* tune/speed.c (main): Cast printf args to right type.
    135 	(_POSIX_C_SOURCE): Define.
    136 
    137 	* tests/mpz/reuse.c: Avoid using non-standard function fileno().
    138 	* tests/spinner.c: Likewise.
    139 
    140 	* tests/mpz/convert.c (str_casecmp): New function.
    141 	(main): Use it instead of non-standard strcasecmp.
    142 
    143 	* tests/misc.c (tests_start): Fall back from snprintf to sprintf for
    144 	C90.
    145 
    146 	* tests/devel/try.c: Avoid getpagesize and use POSIX sysconf instead.
    147 	(_POSIX_C_SOURCE): Define.
    148 
    149 	* mpn/generic/mod_1_1.c: Don't use C++ comments.
    150 
    151 	* mpn/generic/get_d.c: Add clarifying parens.
    152 
    153 2020-05-18  Torbjrn Granlund  <tg (a] gmplib.org>
    154 
    155 	* mpn/generic/toom_interpolate_12pts.c (DO_mpn_addlsh_n): Define only
    156 	when needed.
    157 	* mpn/generic/toom_interpolate_16pts.c: Likewise.
    158 
    159 2020-05-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    160 
    161 	* mpz/cmp.c: Avoid overflow on int even for huge sizes.
    162 	* mpq/cmp.c: Likewise.
    163 
    164 	* mpn/generic/mul_fft.c (mpn_fft_mul_modF_K):
    165 	Fully handle carry propagation in basecase multiplication.
    166 
    167 2020-05-16  Torbjrn Granlund  <tg (a] gmplib.org>
    168 
    169 	* mpn/generic/hgcd2.c (tabp): Combine several undefined tabp
    170 	variable definitions with a macro.
    171 
    172 	* mpn/generic/gcd_22.c: Avoid C99 constructs.
    173 
    174 2020-05-12  Torbjrn Granlund  <tg (a] gmplib.org>
    175 
    176 	* mpn/generic/compute_powtab.c: Avoid C99 constructs.
    177 	* mpn/generic/get_str.c: Likewise.
    178 	* mpn/generic/set_str.c: Likewise.
    179 
    180 	* gmp-impl.h (memset): Move ASSERT to before decls.
    181 	* tests/refmpn.c: Likewise.
    182 
    183 	* mpn/generic/hgcd2.c (tabp): Combine several undefined tabp variable
    184 	definitions with a macro.
    185 
    186 	* mpn/generic/strongfibo.c: Avoid defining helper function when unused.
    187 
    188 	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q_n_itch): Disable unused
    189 	static function.
    190 
    191 	* mpz/mul.c: Add some {} to suppress warning.
    192 
    193 	* tests/mpn/t-gcd_11.c: Exit main() properly.
    194 	* tests/mpn/t-gcd_22.c: Likewise.
    195 	* tests/mpn/t-gcdext_1.c: Likewise.
    196 
    197 2020-04-28  Torbjrn Granlund  <tg (a] gmplib.org>
    198 
    199 	* tests/mpz/reuse.c (realloc_if_reducing): New function.
    200 	(INVOKE_RRS, etc): Use realloc_if_reducing.
    201 
    202 2020-01-17  Torbjrn Granlund  <tg (a] gmplib.org>
    203 
    204 	* Version 6.2.0 released.
    205 
    206 	* gmp-h.in (__GNU_MP__): Bump.
    207 	(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL):
    208 	Bump version info.
    209 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
    210 	Bump version info.
    211 
    212 2020-01-15  Torbjrn Granlund  <tg (a] gmplib.org>
    213 
    214 	* mpn/x86_64/bt1/gcd_11.asm: Add missing FUNC_EXIT.
    215 
    216 2020-01-10  Torbjrn Granlund  <tg (a] gmplib.org>
    217 
    218 	* longlong.h (powerpc): Add clobbers, make formatting cleanups.
    219 
    220 	* configure.ac (HAVE_NATIVE): Add mpn_sbpi1_bdiv_r.
    221 
    222 	* tune/tune-gcd-p.c (main): Use %zu for size_t printing.
    223 
    224 	* configfsf.guess: Update from upstream.
    225 
    226 	* mpn/x86/pentium4/sse2/popcount.asm: For simplicity and correctness
    227 	use LEAL directly.
    228 
    229 2020-01-03  Niels Mller  <nisse (a] lysator.liu.se>
    230 
    231 	* configure.ac: Delete suggestion to use TESTS_ENVIRONMENT to run
    232 	wine. It worked only with older versions of automake.
    233 
    234 2019-12-23  Torbjrn Granlund  <tg (a] gmplib.org>
    235 
    236 	* mpf/mul.c: Rewrite to invoke mpn_sqr when appropriate.
    237 
    238 2019-12-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    239 
    240 	* mpz/powm.c: Full normalisation when e=1 & b<0.
    241 	* tests/mpz/t-powm.c: More tests for the e=1 case.
    242 
    243 2019-12-02  Torbjrn Granlund  <tg (a] gmplib.org>
    244 
    245 	* mpn/generic/gcd_11.c: Remove check for NATIVE_ implementation.
    246 
    247 2019-11-24  Niels Mller  <nisse (a] lysator.liu.se>
    248 
    249 	* mpn/generic/gcdext_1.c [USE_ZEROTAB]: Delete code variant for
    250 	USE_ZEROTAB != 0. Was used in the currently disabled binary
    251 	gcdext.
    252 
    253 2019-11-20  Torbjrn Granlund  <tg (a] gmplib.org>
    254 
    255 	* mpn/generic/powm.c (MPN_REDC_1): Prefer mpn_sbpi1_bdiv_r when it is
    256 	provided.
    257 	* mpn/generic/sec_powm.c (MPN_REDC_1_SEC): Likewise.
    258 
    259 2019-11-17  Torbjrn Granlund  <tg (a] gmplib.org>
    260 
    261 	* config.guess: Recognise zen2.
    262 	* configure.ac: Likewise.
    263 
    264 	* mpn/x86_64/bt1/aorsmul_1.asm: Rewrite.
    265 	* mpn/x86_64/bt1/mul_1.asm: Rewrite.
    266 
    267 	* mpn/arm/v6t2/gcd_11.asm: Increase alignment; update x/l table.
    268 
    269 2019-11-16 Seth Troisi <sethtroisi (a] google.com>
    270 
    271 	* tune/common.c (speed_mpn_perfect_power_p): New function.
    272 	(speed_mpn_perfect_power_p): New function.
    273 	* tune/speed.h: Declare both.
    274 	* tune/speed.c (routine): Add mpn_perfect_{power,square}_p.
    275 
    276 	* tune/common.c (speed_mpz_nextprime): New function.
    277 	* tune/speed.h: Declare it.
    278 	* tune/speed.c (routine): Add mpz_nextprime.
    279 
    280 2019-11-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    281 
    282 	* tune/speed.c (routine_t): Add R flag to mpz_powm
    283 	* tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Use R flag as the base.
    284 
    285 2019-10-02  Torbjrn Granlund  <tg (a] gmplib.org>
    286 
    287 	* configure.ac: Make more path distinctions for the benefit of
    288 	gmp-mparam.h.
    289 
    290 2019-10-01  Torbjrn Granlund  <tg (a] gmplib.org>
    291 
    292 	* configure.ac (arm64): Let cortex-a7x look in a57 folder.
    293 
    294 2019-10-01  Niels Mller  <nisse (a] lysator.liu.se>
    295 
    296 	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Fix
    297 	canonicalization condition.
    298 
    299 2019-09-30  Niels Mller  <nisse (a] lysator.liu.se>
    300 
    301 	* tests/mpn/t-gcdext_1.c: New test.
    302 
    303 2019-09-23  Torbjrn Granlund  <tg (a] gmplib.org>
    304 
    305 	* mpn/generic/hgcd2.c: Mark added div1 variants as static.
    306 
    307 	* tune/tuneup.c, tune/speed.c, tune/speed.h, tune/common.c,
    308 	tune/Makefile.am: Add measuring of mpn_hgcd2 method 4 and 5.
    309 	* tune/hgcd2-4.c, tune/hgcd2-5.c: New files.
    310 
    311 2019-09-23  Niels Mller  <nisse (a] lysator.liu.se>
    312 
    313 	* gmp-impl.h (hgcd2_func_t) [TUNE_PROGRAM_BUILD]: New typedef.
    314 	(hgcd2_func) [TUNE_PROGRAM_BUILD]: New function pointer.
    315 
    316 	* tune/hgcd2.c (mpn_hgcd2): New file, with a redefined function to
    317 	invoke an implementation via the hgcd2_func function pointer.
    318 	Initially points to the default implementation in
    319 	mpn/generic/hgcd2.c.
    320 	* tune/Makefile.am (tuneup_SOURCES): Add hgcd2.c.
    321 
    322 	* tune/tuneup.c (one_method): Return index of selected function.
    323 	(tune_hgcd2): Set hgcd2_func to point to selected function. So
    324 	that the later tuning of mpn_hgcd and mpn_gcd uses the right
    325 	implementation of hgcd2.
    326 
    327 2019-09-23  Torbjrn Granlund  <tg (a] gmplib.org>
    328 
    329 	* mpn/generic/hgcd2.c: Improve method 4 and 5 by using the division
    330 	free methods optimistically, detecting errors.  Tweak table values.
    331 
    332 2019-09-22  Torbjrn Granlund  <tg (a] gmplib.org>
    333 
    334 	* mpn/generic/hgcd2.c: Add a 4th and 5th div1 method.
    335 
    336 2019-09-18  Torbjrn Granlund  <tg (a] gmplib.org>
    337 
    338 	* mpn/generic/hgcd2.c (div1, div2): Rearrange things to allow for asm.
    339 	(div2): Avoid out-of-specs shift.
    340 	(div2): Use same variable naming in all variants.
    341 
    342 2019-09-16  Niels Mller  <nisse (a] lysator.liu.se>
    343 
    344 	* mpn/generic/hgcd2.c (HGCD2_DIV2_METHOD): New define.
    345 	(div2): Replaced, since the old implementation had lots of poorly
    346 	predicted and expensive branches. Two new implementaions, selected
    347 	by HGCD2_DIV2_METHOD.
    348 	(div2) [HGCD2_DIV2_METHOD == 1]: Calls div1 on the high limbs,
    349 	with unlikely case handling large quotients.
    350 	(div2) [HGCD2_DIV2_METHOD == 2]: The previously #if:ed out
    351 	version. A bitwise division, relying on fast count_leading_zeros,
    352 	and with fewer branches than the previous code.
    353 
    354 2019-09-15  Torbjrn Granlund  <tg (a] gmplib.org>
    355 
    356 	* acinclude.m4 (GMP_ASM_X86_ADX): Remove unused.
    357 
    358 	* configure.ac (x86): Amend last change.
    359 
    360 2019-09-14  Niels Mller  <nisse (a] lysator.liu.se>
    361 
    362 	* mpn/generic/hgcd2.c (HGCD2_DIV1_METHOD): Rename, and change
    363 	default to 3. Updated all usage.
    364 	(HGCD2_METHOD): ... the old name, deleted.
    365 
    366 2019-09-14  Torbjrn Granlund  <tg (a] gmplib.org>
    367 
    368 	* configure.ac: Remove obsolete path-triggered invocation of
    369 	GMP_ASM_X86_ADX and GMP_ASM_X86_MULX.
    370 
    371 	* acinclude.m4 (GMP_ASM_X86_MULX): Set X86_ASM_MULX to config.h.
    372 	* configure.ac (x86): Set x86_have_mulx for relevant CPUs.
    373 	Use if to conditionally invoke GMP_ASM_X86_MULX.
    374 	* longlong.h (x86 umul_ppmm): Test also X86_ASM_MULX for when to use
    375 	mulx variant.
    376 
    377 2019-09-13  Niels Mller  <nisse (a] lysator.liu.se>
    378 
    379 	* tune/tuneup.c (one_method): New helper function, to measure
    380 	several functions for a fix size.
    381 	(tune_hgcd2, tune_div_qr_1, tune_mod_1, tune_jacobi_base): Use it.
    382 
    383 2019-09-13  Torbjrn Granlund  <tg (a] gmplib.org>
    384 
    385 	* configure.ac (HAVE_HOST_CPU_1): Add many x86_64 CPU types.
    386 	* longlong.h (x86 umul_ppmm): Fix criterion for when to use mulx.
    387 	(count_leading_zeros): Use lzcnt for appropriate CPUs.
    388 	(count_trailing_zeros): Use tzcnt for appropriate CPUs.
    389 
    390 	* mpn/generic/hgcd2.c (HGCD2_METHOD=2 div1): Rewrite.
    391 
    392 2019-09-09  Torbjrn Granlund  <tg (a] gmplib.org>
    393 
    394 	* mpn/generic/mul.c: Call mpn_mul_basecase early when in range.  Never
    395 	call mpn_sqr.
    396 
    397 	* mpn/generic/gcd.c: Rewrite tail of function, for n <= 2.
    398 
    399 2019-09-08  Torbjrn Granlund  <tg (a] gmplib.org>
    400 
    401 	* configure.ac (arm): Select arch armv7ve for a7, a12, a15, and a17,
    402 	this enables the use of the udiv instruction.
    403 
    404 	* mpn/generic/hgcd2.c (disabled div2): Micro-optimise.
    405 
    406 2019-09-07  Torbjrn Granlund  <tg (a] gmplib.org>
    407 
    408 	* mpn/generic/hgcd2.c (HGCD2_METHOD=3 div1): Micro-optimise.
    409 
    410 2019-09-07  Vincent Lefevre <vincent (a] vinc17.net>
    411 
    412 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Append EXEEXT for executable.
    413 
    414 2019-09-05  Torbjrn Granlund  <tg (a] gmplib.org>
    415 
    416 	* mpn/arm64/gcd_22.asm: Rewrite to make better use of Arm conditional
    417 	execution.
    418 	* mpn/arm32/gcd_22.asm: Likewise.
    419 
    420 2019-09-05  Niels Mller  <nisse (a] lysator.liu.se>
    421 
    422 	* mpn/generic/hgcd2.c (div1): Return both r and q as a
    423 	mp_double_limb_t, replacing the DIV1 macro.
    424 	(div1) [HGCD2_METHOD == 3]: New implementation handling q <= 7
    425 	specially and without branches. Based on Torbjrn's mail to the
    426 	gmp-devel list.
    427 	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
    428 	corresponding speed support.
    429 	* tune/hgcd2-3.c: New file.
    430 	* tune/tuneup.c (print_define_with_speedup): New function, to
    431 	output a comment with speedup compared to next-best method.
    432 	(tune_hgcd2): Update tuning.
    433 
    434 2019-09-04  Niels Mller  <nisse (a] lysator.liu.se>
    435 
    436 	* mpn/generic/hgcd2.c (HGCD2_METHOD): New parameter.
    437 	(DIV1): New macro, using either the div1 function or plain
    438 	division, depending on the value of HGCD2_METHOD.
    439 	(mpn_hgcd2): Use DIV1.
    440 	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
    441 	measuring of mpn_hgcd2 methods.
    442 	* tune/hgcd2-1.c, tune/hgcd2-2.c: New files.
    443 	* tune/tuneup.c: Tune HGCD2_METHOD.
    444 
    445 	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD2): New macro.
    446 	* tune/common.c (speed_mpn_hgcd2): New function.
    447 	* tune/speed.c (routine): Add mpn_hgcd2.
    448 
    449 2019-09-04  Torbjrn Granlund  <tg (a] gmplib.org>
    450 
    451 	* mpn/arm/v6t2/gcd_22.asm: New file.
    452 	* mpn/arm64/gcd_22.asm: New file.
    453 	* mpn/ia64/gcd_11.asm: New file.
    454 
    455 2019-09-01  Torbjrn Granlund  <tg (a] gmplib.org>
    456 
    457 	* mpn/x86_64/bt1/gcd_11.asm: Replace grabber with bt1 optimised code.
    458 
    459 2019-08-30  Torbjrn Granlund  <tg (a] gmplib.org>
    460 
    461 	* mpn/x86_64/bd4/gcd_22.asm: New grabber file.
    462 
    463 	* mpn/x86_64/zen/gcd_22.asm: Use coreihwl instead of bd2 gcd_22.
    464 
    465 	* mpn/x86_64/bd2/gcd_22.asm: Fix typo in FUNC_ENTRY (currently unused).
    466 	Avoid a register copy before return.
    467 	* mpn/x86_64/core2/gcd_22.asm: Likewise.
    468 	* mpn/x86_64/k10/gcd_22.asm: Likewise.
    469 	* mpn/x86_64/gcd_22.asm: Likewise.
    470 
    471 	* mpn/x86_64/coreihwl/gcd_22.asm: Optimise, now runs well on more CPUs.
    472 
    473 	* mpn/x86_64/gcd_11.asm: Remove PROTECT from symbols as they are
    474 	actually local.
    475 	* mpn/x86_64/gcd_22.asm: Likewise.
    476 
    477 2019-08-25  Torbjrn Granlund  <tg (a] gmplib.org>
    478 
    479 	* mpn/x86_64/bd2/gcd_22.asm: Repeat tzcnt for exceptional lowz case.
    480 	Remove dead code.
    481 
    482 	* mpn/powerpc64/mode64/p7/gcd_22.asm: Make logic for determining ABI
    483 	wrt struct return more robust.
    484 	* mpn/powerpc64/mode64/p9/gcd_22.asm: Likewise.
    485 
    486 2019-08-24  Torbjrn Granlund  <tg (a] gmplib.org>
    487 
    488 	* mpn/x86_64/bt1/gcd_11.asm: New grabber.
    489 	* mpn/x86_64/bt1/gcd_22.asm: New grabber.
    490 	* mpn/x86_64/bt2/gcd_22.asm: New grabber.
    491 
    492 	* mpn/x86_64/atom/gcd_22.asm: Remove stale grabber file.
    493 	* mpn/x86_64/zen/gcd_22.asm: Grab bd2 instead of hwl code.
    494 	* mpn/x86_64/bd2/gcd_22.asm: New file.
    495 	* mpn/x86_64/k8/gcd_22.asm: Remove, rely on top-level code instead.
    496 	* mpn/x86_64/bt1/gcd_22.asm: Remove.
    497 	* x86_64/gcd_22.asm: New file, improved version of removed bt1 code.
    498 
    499 2019-08-22  Torbjrn Granlund  <tg (a] gmplib.org>
    500 
    501 	* mpn/x86_64/coreihwl/gcd_11.asm: Remove as it was never beneficial.
    502 
    503 	* mpn/x86_64/bd2/gcd_11.asm: Make sure rdx is zero on return to benefit
    504 	gcd_22's private calls. Make gcd_11 files more similar in register use.
    505 	* mpn/x86_64/bd4/gcd_11.asm: Likewise.
    506 	* mpn/x86_64/core2/gcd_11.asm: Likewise.
    507 	* mpn/x86_64/gcd_11.asm:: Likewise.
    508 
    509 2019-08-22  Niels Mller  <nisse (a] lysator.liu.se>
    510 
    511 	From Hugh McMaster:
    512 	* gmp.pc.in, gmpxx.pc.in: New files.
    513 	* configure.ac: New output files gmp.pc and gmpxx.pc.
    514 	* Makefile.am (pkgconfigdir, pkgconfig_DATA): New automake
    515 	settings, to install gmp.pc and optionally gmpxx.pc for use with
    516 	pkg-config.
    517 
    518 2019-08-21  Torbjrn Granlund  <tg (a] gmplib.org>
    519 
    520 	* mpn/x86_64/core2/gcd_22.asm: New file.
    521 	* mpn/x86_64/k8/gcd_22.asm: New file.
    522 	* mpn/x86_64/k10/gcd_22.asm: New file.
    523 	* mpn/x86_64/coreihwl/gcd_22.asm: New file.
    524 	* mpn/x86_64/bt1/gcd_22.asm: New file.
    525 	* mpn/x86_64/bd4/gcd_22.asm: New grabber.
    526 	* mpn/x86_64/zen/gcd_22.asm: New grabber.
    527 	* mpn/x86_64/atom/gcd_22.asm: New grabber.
    528 
    529 2019-08-19  Torbjrn Granlund  <tg (a] gmplib.org>
    530 
    531 	* configure.ac: Check for ELFv1 ABI on PowerPC.
    532 
    533 2019-08-18  Torbjrn Granlund  <tg (a] gmplib.org>
    534 
    535 	* longlong.h (arm32 sub_ddmmss): Define separately for thumb and
    536 	non-thumb as rsc instruction is missing for thumb.
    537 
    538 	* mpn/powerpc64/mode64/p7/gcd_22.asm: New file.
    539 	* mpn/powerpc64/mode64/p9/gcd_22.asm: New file.
    540 
    541 2019-08-17  Torbjrn Granlund  <tg (a] gmplib.org>
    542 
    543 	* demos/expr/t-expr.c: #include gmp-impl.h as it includes tests.h.
    544 
    545 	* mpn/asm-defs.m4: Add gcd_22.
    546 
    547 	* tests/refmpn.c (refmpn_gcd_22): New function.
    548 	* tests/tests.h: Declare it.
    549 
    550 	* tests/t-constants.c: #include gmp-impl.h.
    551 	* tests/mpf/t-get_d.c: Likewise.
    552 
    553 2019-08-17  Niels Mller  <nisse (a] lysator.liu.se>
    554 
    555 	* mpn/generic/gcd_22.c (mpn_gcd_22): New implementation with less
    556 	branches.
    557 
    558 2019-08-16 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    559 
    560 	* mpn/generic/brootinv.c: Shorten computations, using even exponent.
    561 	* mpn/generic/powlo.c: Avoid copies with a flipflop.
    562 
    563 2019-08-16  Niels Mller  <nisse (a] lysator.liu.se>
    564 
    565 	Speed support for gcd_22. Calls mpn_gcd_22(al, al, bl, bl), so
    566 	that B+1 is a common factor.
    567 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_22): New macro.
    568 	* tune/speed.c (routine): Add mpn_gcd_22.
    569 	* tune/common.c (speed_mpn_gcd_22): New function.
    570 
    571 	* mpn/generic/gcd.c (gcd_2): Moved to gcd_22.c below.
    572 	(mpn_gcd): Adapt for calling gcd_22.
    573 	* mpn/generic/gcd_22.c (mpn_gcd_22): New file and function.
    574 	* gmp-impl.h (mp_double_limb_t): New (typedef) struct.
    575 	* configure.ac (gmp_mpn_functions): Added gcd_22.
    576 
    577 	* tests/mpn/t-gcd_22.c: New test.
    578 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-gcd_22.
    579 	* tests/refmpz.c (refmpz_gcd): New function (plain binary gcd).
    580 
    581 2019-08-15  Torbjrn Granlund  <tg (a] gmplib.org>
    582 
    583 	* mpn/x86_64/zen/gcd_11.asm: Use bd2 instead of bd4 code.
    584 
    585 2019-08-13  Torbjrn Granlund  <tg (a] gmplib.org>
    586 
    587 	* mpn/x86_64: Add more gcd_11 variants of of x86_64 gcd_11.asm and
    588 	tweak existing ones.
    589 
    590 2019-08-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    591 
    592 	From Seth Troisi:
    593 	* doc/gmp.texi: Update mpz_millerrabin documentation.
    594 
    595 	* mpn/x86_64/bd2/gcd_11.asm: Micro-optimisation.
    596 	* doc/gmp.texi: Further update in mpz_millerrabin.
    597 	* tests/misc.c: Silence a warning.
    598 	* tests/mpz/t-pprime_p.c (const primes): One more prime in the list.
    599 	* mpz/millerrabin.c: Return 2 for surely prime numbers (BPSW checked).
    600 
    601 2019-08-08  Torbjrn Granlund  <tg (a] gmplib.org>
    602 
    603 	* mpn/x86/gcd_11.asm: New file.
    604 
    605 	* config.sub: Make arm cpu types match what config.guess returns.
    606 
    607 2019-08-08  Niels Mller  <nisse (a] lysator.liu.se>
    608 
    609 	* tests/refmpn.c (refmpn_gcd_11): New function, based on refmpn_gcd_1.
    610 	(refmpn_gcd_1): Use it.
    611 	* tests/mpn/t-gcd_11.c: New file, test mpn_gcd_11.
    612 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-gcd_11.
    613 
    614 2019-08-07  Torbjrn Granlund  <tg (a] gmplib.org>
    615 
    616 	* mpn/alpha/ev67/gcd_11.asm: New file, mostly extracted from gcd_1.asm.
    617 	* mpn/arm/v5/gcd_11.asm: Likewise.
    618 	* mpn/arm/v6t2/gcd_11.asm: Likewise.
    619 	* mpn/arm64/gcd_11.asm: Likewise.
    620 	* mpn/powerpc64/mode64/gcd_11.asm: Likewise.
    621 	* mpn/powerpc64/mode64/p7/gcd_11.asm: Likewise.
    622 	* mpn/powerpc64/mode64/p9/gcd_11.asm: Likewise.
    623 	* mpn/sparc64/gcd_11.asm: Likewise.
    624 	* mpn/x86/k7/gcd_11.asm: Likewise.
    625 	* mpn/x86/p6/gcd_11.asm: Likewise.
    626 	* mpn/x86_64/bd2/gcd_11.asm: Likewise.
    627 	* mpn/x86_64/core2/gcd_11.asm: Likewise.
    628 	* mpn/x86_64/gcd_11.asm: Likewise.
    629 	* mpn/asm-defs.m4: Add gcd_11.
    630 
    631 2019-08-06  Niels Mller  <nisse (a] lysator.liu.se>
    632 
    633 	* tune/common.c (speed_mpn_gcd_11): New function.
    634 	* tune/speed.h (speed_mpn_gcd_11): Declare it.
    635 	(SPEED_ROUTINE_MPN_GCD_11): New macro.
    636 	* tune/speed.c (routine): Add mpn_gcd_11.
    637 
    638 	* configure.ac (gmp_mpn_functions): Added gcd_11. Also add
    639 	HAVE_NATIVE_mpn_gcd_11.
    640 	* mpn/generic/gcd_11.c (mpn_gcd_11): New file and function,
    641 	extracted from mpn_gcd_1.
    642 	* gmp-h.in (mpn_gcd_11): Declare it.
    643 	* mpn/generic/gcd_1.c (mpn_gcd_1): Adapted to call mpn_gcd_11.
    644 
    645 2019-08-04  Torbjrn Granlund  <tg (a] gmplib.org>
    646 
    647 	* mpn/x86_64/bt2/gcd_1.asm: New grabber file.
    648 	* mpn/x86_64/zen/gcd_1.asm: Grab from "bd2" directory, was "core2".
    649 
    650 2019-08-02  Torbjrn Granlund  <tg (a] gmplib.org>
    651 
    652 	* mpn/x86_64/bd2/gcd_1.asm: New file.
    653 
    654 2019-08-01  Torbjrn Granlund  <tg (a] gmplib.org>
    655 
    656 	* tests/mpf/t-conv.c: Add several more fixed test cases.
    657 
    658 	* mpf/set_str.c: Ignore leading zeros including ones after radix point
    659 	to avoid invalid output formats.
    660 
    661 2019-07-30  Torbjrn Granlund  <tg (a] gmplib.org>
    662 
    663 	* mpn/powerpc64/mode64/p9/gcd_1.asm: New file.
    664 
    665 2019-07-30  Niels Mller  <nisse (a] lysator.liu.se>
    666 
    667 	From Seth Troisi:
    668 	* doc/gmp.texi (Jacobi Symbol): Update algorithm documentation.
    669 	* tests/mpz/t-jac.c: Comment update.
    670 
    671 2019-07-13  Torbjrn Granlund  <tg (a] gmplib.org>
    672 
    673 	* configure.ac (arm): Generalise arm a72 pattern to match a73...a79.
    674 
    675 2019-07-08  Torbjrn Granlund  <tg (a] gmplib.org>
    676 
    677 	* mpn/arm/arm-defs.m4 (ASM_START): Rewrite (fix broken error handling).
    678 
    679 2019-07-02  Torbjrn Granlund  <tg (a] gmplib.org>
    680 
    681 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Compile conftest.c to executable
    682 	in order to trigger final compile in case of LTO.
    683 
    684 2019-06-17  Torbjrn Granlund  <tg (a] gmplib.org>
    685 
    686 	* config.guess: Work around upstream configfsf.guess's regression wrt
    687 	mips vs mips64.
    688 
    689 2019-06-14  Torbjrn Granlund  <tg (a] gmplib.org>
    690 
    691 	* longlong.h (mips64): Provide r6 asm code as default expression yields
    692 	libcall.
    693 
    694 	* configure.ac (mips64): Use separate paths for r6 and non-r6 as these
    695 	architectures are mutually incompatible.
    696 
    697 	* mpn/mips64/{addmul_1,mul_1,sqr_diagonal,submul_1,umul}.asm:
    698 	Move into hilo subdir.
    699 
    700 2019-05-28  Torbjrn Granlund  <tg (a] gmplib.org>
    701 
    702 	* config.sub: Fixes to which cpu types end with a "*".
    703 
    704 2019-04-20  Niels Mller  <nisse (a] lysator.liu.se>
    705 
    706 	* doc/gmp.texi (References): Link to paper on subquadratic GCD.
    707 
    708 2019-04-19  Torbjrn Granlund  <tg (a] gmplib.org>
    709 
    710 	* mpn/x86_64/bd1/hamdist.asm: Really make 2017-06-01 change: Use
    711 	3-operand DEF_OBJECT.
    712 
    713 	* mpn/x86_64/invert_limb.asm: Simplify mpn_invert_limb_table ref.
    714 
    715 	* mpn/x86_64/x86_64-defs.m4 (LEA): Use rip addressing for non-PIC.
    716 
    717 2019-04-17  Niels Mller  <nisse (a] lysator.liu.se>
    718 
    719 	* mpn/generic/jacobi.c (mpn_jacobi_n): Use JACOBI_DC_THRESHOLD,
    720 	not GCD_DC_THRESHOLD. Inconsistency spotted by Seth Troisi.
    721 
    722 2019-04-02  Torbjrn Granlund  <tg (a] gmplib.org>
    723 
    724 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init):
    725 	Split out silvermont handling, add handling of goldmont.
    726 
    727 	* configure.ac: Setup distinct paths for silvermont and goldmont.
    728 	(fat_path): Add missing x86_64/goldmont.
    729 
    730 	* config.guess: Recognise "Goldmont Plus".
    731 
    732 2018-12-09  Torbjrn Granlund  <tg (a] gmplib.org>
    733 
    734 	* mpn/generic/mul_fft.c (mpn_fft_add_sub_modF): New function.
    735 	(mpn_fft_fft, mpn_fft_fftinv): Use it.
    736 
    737 2018-11-30  Torbjrn Granlund  <tg (a] gmplib.org>
    738 
    739 	* mpn/powerpc64/mode64/p9/gmp-mparam.h: New file.
    740 
    741 	* mpn/powerpc64/mode64/p9/add_n_sub_n.asm: New file.
    742 
    743 2018-11-28  Torbjrn Granlund  <tg (a] gmplib.org>
    744 
    745 	* mpn/powerpc64/mode64/p9/sqr_basecase.asm: New file.
    746 	* mpn/powerpc64/mode64/p9/mul_1.asm: New file.
    747 
    748 2018-11-18  Torbjrn Granlund  <tg (a] gmplib.org>
    749 
    750 	* mpn/powerpc64/mode64/p9/mul_basecase.asm: New file.
    751 
    752 	* mpn/powerpc64/mode64/p9/addmul_1.asm: Optimise.
    753 
    754 2018-11-12  Torbjrn Granlund  <tg (a] gmplib.org>
    755 
    756 	* mpn/powerpc64/mode64/p9/aorsmul_1.asm: New file, providing fast
    757 	submul_1 (and redundant addmul_1).
    758 
    759 2018-11-11  Torbjrn Granlund  <tg (a] gmplib.org>
    760 
    761 	* mpn/powerpc64/mode64/p9/addmul_1.asm: Tweak for slightly better
    762 	speed.
    763 
    764 	* mpn/powerpc32/powerpc-defs.m4: Define addex.
    765 	* mpn/powerpc64/mode64/p9/mul_2.asm: Use it.
    766 	* mpn/powerpc64/mode64/p9/addmul_2.asm: Likewise.
    767 
    768 2018-11-08  Torbjrn Granlund  <tg (a] gmplib.org>
    769 
    770 	* tests/devel/cnd_aors_n.c: New file.
    771 
    772 	* mpn/arm/neon/lorrshift.asm: Declare use of neon insns.
    773 	* mpn/arm/neon/lshiftc.asm: Likewise + cleanup.
    774 
    775 	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Add missing files.
    776 
    777 	* mpn/powerpc64/mode64/p9/mul_2.asm: New file.
    778 	* mpn/powerpc64/mode64/p9/addmul_2.asm: New file.
    779 
    780 2018-11-07 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    781 
    782 	* mpz/lucnum2_ui.c: Use mpn_rsblsh1_n if available.
    783 	* tests/mpz/t-nextprime.c: Add one more interval.
    784 	* tests/mpz/t-pprime_p.c (check_fermat_mersenne): New tests.
    785 	* mpn/generic/mod_1_3.c: typo in a comment.
    786 	* mpz/nextprime.c: Use tdiv instead of fdiv.
    787 
    788 	* mpn/generic/fib2m.c: New file, Fibonacci numbers modulo.
    789 	* configure.ac (gmp_mpn_functions): Add it.
    790 	* gmp-impl.h: Declare mpn_fib2m.
    791 	* tests/mpn/t-fib2m.c: New file, tests for mpn_fib2m.
    792 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-fib2m.
    793 
    794 	* mpn/generic/mod_34lsub1.c: Initialise c[012] once.
    795 	* tests/mpz/t-pprime_p.c (check_primes): Two more primes.
    796 	* tests/mp?: Use TESTS_REPS in many files.
    797 
    798 	* mpn/generic/strongfibo.c: New file, Fibonacci primality test.
    799 	* configure.ac (gmp_mpn_functions): Add it.
    800 	* gmp-impl.h: Declare mpn_strongfibo.
    801 
    802 	* mpz/stronglucas.c: New file, strong Lucas primality test.
    803 	* Makefile.am (MPZ_OBJECTS): Add it.
    804 	* mpz/Makefile.am (libmpz_la_SOURCES): Add it.
    805 	* gmp-impl.h: Declare mpz_stronglucas.
    806 
    807 	* mpz/millerrabin.c: Implement BPSW test for primality.
    808 
    809 2018-11-07  Torbjrn Granlund  <tg (a] gmplib.org>
    810 
    811 	* configure.ac (arm): Support a12 and a17.
    812 	* config.sub: Generalise arm matching.
    813 	* config.guess: Recognise additional arm CPUs.
    814 
    815 	* mpn/arm/arm-defs.m4 (ASM_START): Provide local definition.
    816 
    817 2018-10-30  Torbjrn Granlund  <tg (a] gmplib.org>
    818 
    819 	* mpn/arm/v7a/cora17/mod_34lsub1.asm: New file.
    820 	* mpn/arm/v7a/cora17/gmp-mparam.h: New file.
    821 	* mpn/arm/v7a/cora17/mul_1.asm: New grabber file.
    822 	* mpn/arm/v7a/cora17/addmul_1.asm: Likewise.
    823 	* mpn/arm/v7a/cora17/submul_1.asm: Likewise.
    824 
    825 2018-10-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    826 
    827 	* mpn/generic/fib2_ui.c: Simplify the possible -2 case.
    828 
    829 2018-07-19 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    830 
    831 	* mpz/millerrabin.c (mod_eq_m1): New function, equality with -1.
    832 	* mpz/powm_ui.c: Small optimisations.
    833 
    834 2018-07-03  Torbjrn Granlund  <tg (a] gmplib.org>
    835 
    836 	* mpn/x86_64/lshift.asm: Remove cnt = 1 special code.
    837 
    838 	* mpn/x86_64/silvermont/popcount.asm: Add missing ABI_SUPPORT decls.
    839 	* mpn/x86_64/silvermont/hamdist.asm: Likewise.
    840 	* mpn/x86_64/zen/mul_1.asm: Likewise.
    841 
    842 	* mpn/x86_64/fastsse/lshift.asm: Support DOS64.
    843 	* mpn/x86_64/fastsse/lshiftc.asm: Likewise.
    844 
    845 	* mpn/x86_64/pentium4/gmp-mparam.h: Retune.
    846 
    847 2018-07-01  Torbjrn Granlund  <tg (a] gmplib.org>
    848 
    849 	* lshift.asm: Replace with grabber file.
    850 	* lshiftc.asm: Replace with grabber file.
    851 	* x86_64/pentium4/addmul_2.asm: New grabber file.
    852 	* x86_64/pentium4/aorsmul_1.asm: New grabber file.
    853 	* x86_64/pentium4/mul_1.asm: New grabber file.
    854 	* x86_64/pentium4/mul_2.asm: New grabber file.
    855 	* x86_64/pentium4/mul_basecase.asm: New grabber file.
    856 	* x86_64/pentium4/mullo_basecase.asm: New grabber file.
    857 	* x86_64/pentium4/redc_1.asm: New grabber file.
    858 	* x86_64/pentium4/sqr_basecase.asm: New grabber file.
    859 
    860 2018-06-13  Niels Mller  <nisse (a] lysator.liu.se>
    861 
    862 	* mpn/generic/gcd_1.c (mpn_gcd_1): Delete unused code variant for
    863 	GCD_1_METHOD == 1, and delete GCD_1_METHOD macro. Simplify the
    864 	structure of the remaining code variant, without gotos to the
    865 	mid-loop strip_u_maybe label.
    866 
    867 2018-05-30  Torbjrn Granlund  <tg (a] gmplib.org>
    868 
    869 	* configure.ac (x86): Provide goldmont specific path.
    870 
    871 	* mpn/x86_64/goldmont/gmp-mparam.h: New file.
    872 
    873 2018-05-29  Torbjrn Granlund  <tg (a] gmplib.org>
    874 
    875 	* configure.ac (x86): Pass more exact arch/tune options for nehalem.
    876 
    877 2018-05-28  Niels Mller  <nisse (a] lysator.liu.se>
    878 
    879 	* mpn/generic/gcd_1.c (mpn_gcd_1) [USE_ZEROTAB]: Delete unused code
    880 	variant for USE_ZEROTAB != 0.
    881 
    882 2018-05-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    883 
    884 	* bootstrap.c: Define DONT_USE_FLOAT_H before including mini-gmp.
    885 
    886 2018-05-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    887 
    888 	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q_n): Decl. static.
    889 	(mpn_dcpi1_bdiv_q_n_itch): Declare static.
    890 	* mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q_n): static.
    891 	* mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): static.
    892 	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_choose_in): static.
    893 	* mpn/generic/mu_divappr_q.c (mpn_preinv_mu_divappr_q): static.
    894 	(mpn_mu_divappr_q_choose_in): static.
    895 	* gmp-impl.h: Remove declaration of previous functions.
    896 
    897 	* mpn/generic/get_d.c: Enhance generic code using DBL_MANT_DIG.
    898 
    899 	* printf/repl-vsnprintf.c: Better handling floating-point
    900 	specifiers "EeGgFf" (Thanks Vincent Lefevre).
    901 
    902 2018-05-04 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    903 
    904 	* doc/gmp.texi (mpq_*_str): Document the full base allowed range.
    905 	* mpq/get_str.c: Make all bases either work or return an error.
    906 
    907 	* doc/gmp.texi (Integer Internals): Lazy allocation and read-only.
    908 
    909 2018-04-27  Niels Mller  <nisse (a] lysator.liu.se>
    910 
    911 	* mpn/generic/div_q.c (mpn_div_q): Replace dead code with ASSERT.
    912 	Spotted by Paul Zimmermann and Raphal Rieu-Hleft.
    913 
    914 	* tests/mpn/t-div.c (main): Fill quotient area with junk before
    915 	calling mpn_div_q.
    916 
    917 2018-04-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    918 
    919 	* Makefile.am (EXTRA_DIST): Add mini-gmp/mini-mpq.[ch].
    920 
    921 2018-04-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    922 
    923 	* mpn/generic/toom2_sqr.c: Handle the cy=-1 branch slightly faster.
    924 	* mpn/generic/toom22_mul.c: Likewise. (Thanks Paul and Raphal!)
    925 
    926 2018-04-22  Niels Mller  <nisse (a] lysator.liu.se>
    927 
    928 	From Martin Storsj:
    929 	* configure.ac (aarch64): Just as on windows/x86_64, "long" still
    930 	is 32 bit on aarch64. To distinguish between 32-bit and 64-bit
    931 	ABI, test sizeof(void*) instead of sizeof(long). Use long long for
    932 	mp_limb_t for mingw targets.
    933 	* acinclude.m4 (GMP_C_TEST_SIZEOF): Allow '*' in the type name,
    934 	e.g., void*.
    935 
    936 2018-04-18  Marc Glisse  <marc.glisse (a] inria.fr>
    937 
    938 	* mpq/clear.c: Handle lazy numerator.
    939 	* mpq/clears.c: Likewise.
    940 	* mpq/init.c: Likewise.
    941 	* mpq/set_si.c: Likewise.
    942 	* mpq/set_ui.c: Likewise.
    943 
    944 	* tests/cxx/t-ops2z.cc: Add parentheses to quiet a warning.
    945 
    946 2018-03-28  Torbjrn Granlund  <tg (a] gmplib.org>
    947 
    948 	* configure.ac (mips): Recognise "mipsisa64*".
    949 
    950 2018-03-23  Torbjrn Granlund  <tg (a] gmplib.org>
    951 
    952 	* mpn/generic/sec_powm.c: Remove unused macros.
    953 	Simplify code for choosing between redc_1 and redc_2.
    954 	Compute power table with squaring for even powers.
    955 
    956 2018-02-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    957 
    958 	* gmpxx.h (__gmp_binary_plus): Special case for mpq + 1.
    959 	(__gmp_binary_minus): Special case for mpq - 1.
    960 	(__gmp_binary_equal): Optimised comparison mpq == integer.
    961 	* tests/cxx/t-ops2qf.cc (checkqf): Some check for +/- 1, +/- 0.
    962 
    963 2018-02-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    964 
    965 	* tune/Makefile.am: Disallow parallel make (thanks Vincent Lefevre).
    966 	* mpq/swap.c: Use *_SWAP_* macros.
    967 	* mpq/cmp_ui.c: One more little shortcut, comparing fractions to 1.
    968 	* mpq/get_d.c: Compare (zeros > 0) once, replace tdiv_qr with div_q.
    969 	* mpq/equal.c: Check size early.
    970 
    971 	* printf/obprintf.c: Adda dummy typedef to avoid empty unit.
    972 	* printf/obvprintf.c: Likewise.
    973 	* printf/obprntffuns.c: Likewise.
    974 	* printf/repl-vsnprintf.c: Move #ifdef after #include gmp-impl.h .
    975 
    976 2018-02-09  Torbjrn Granlund  <tg (a] gmplib.org>
    977 
    978 	* mpn/arm: Really revert 2018-01-04 changes.
    979 
    980 2018-02-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    981 
    982 	* printf/snprntffuns.c: Report -1 as an error.
    983 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Refuse -1 as return value.
    984 
    985 	* mpz/bin_uiui.c (mpz_smallk_bin_uiui): One more shortcut for small k.
    986 	* gmp-impl.h (popc_limb): Use fewer constants (GMP_LIMB_BITS == 16).
    987 	* mpz/divegcd.c (mpz_divexact_limb): Use MPN_DIVREM_OR_DIVEXACT_1.
    988 	* primesieve.c (fill_bitpattern): Use MPN_FILL.
    989 
    990 2018-02-01  Marc Glisse  <marc.glisse (a] inria.fr>
    991 
    992 	* longlong.h (i586): Remove assert.
    993 
    994 2018-01-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
    995 
    996 	* mpz/and.c: Rearrange the 3 cases, both <0, both >=0, one and one.
    997 	* mpz/ior.c: Likewise.
    998 	* mpz/xor.c: Likewise.
    999 
   1000 	* mpz/bin_uiui.c (mul[4-8]): Reduce the number of multiplications.
   1001 
   1002 	* printf/doprnt.c: Use __GMP_FREE_FUNC_TYPE.
   1003 	* printf/doprntf.c: Likewise.
   1004 	* printf/snprntffuns.c: Likewise, and use size_t instead of int.
   1005 
   1006 2018-01-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1007 
   1008 	* tests/mpz/t-bin.c: Extended tests for bin_ui and uint border cases.
   1009 
   1010 2018-01-10  Torbjrn Granlund  <tg (a] gmplib.org>
   1011 
   1012 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Fix old pentium recog.
   1013 	* config.guess: Likewise.
   1014 
   1015 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Add many 64-bit CPUs.
   1016 
   1017 2018-01-07  Torbjrn Granlund  <tg (a] gmplib.org>
   1018 
   1019 	* mpn/arm: Revert last change, it hides a symbol needed for testing.
   1020 
   1021 2018-01-04  Torbjrn Granlund  <tg (a] gmplib.org>
   1022 
   1023 	* bdiv_q_1.asm (binvert_limb_table): Declare as ".hidden".
   1024 	* v7a/cora8/bdiv_q_1.asm: Likewise.
   1025 	* dive_1.asm: Likewise.
   1026 	* v6/dive_1.asm: Likewise.
   1027 
   1028 	* mode1o.asm (binvert_limb_table): Remove ".protected", add ".hidden".
   1029 	* v6/mode1o.asm: Likewise.
   1030 
   1031 2018-01-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1032 
   1033 	* mpn/powerpc64/mode64/divrem_2.asm: Use different rlwinm variant (to
   1034 	appease clang).
   1035 
   1036 2018-01-01  Torbjrn Granlund  <tg (a] gmplib.org>
   1037 
   1038 	* mpn/powerpc32/powerpc-defs.m4: Define maddld, maddhdu, popcntd, and
   1039 	divdeu.
   1040 	* mpn/powerpc64/mode64/p8/invert_limb.asm: Use new insn defs.
   1041 	* mpn/powerpc64/mode64/p9/addmul_1.asm: Use new insn defs.
   1042 	* mpn/powerpc64/p7/hamdist.asm: Use new insn defs.
   1043 	* mpn/powerpc64/p7/popcount.asm: Use new insn defs.
   1044 
   1045 2017-12-31  Torbjrn Granlund  <tg (a] gmplib.org>
   1046 
   1047 	* mpn/powerpc64/mode64/p9/addmul_1.asm: Moved from
   1048 	mpn/powerpc64/p9/addmul_1.asm.
   1049 
   1050 2017-12-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1051 
   1052 	* mpz/bin_ui.c: Rewrite, using Fredrik Johansson's suggestions.
   1053 
   1054 2017-12-27  Niels Mller  <nisse (a] lysator.liu.se>
   1055 
   1056 	* longlong.h (arm32/arm64): Leave COUNT_LEADING_ZEROS_0 undefined,
   1057 	since we use gcc's __builtin_clzl, which doesn't allow zero inputs.
   1058 
   1059 2017-12-27  Torbjrn Granlund  <tg (a] gmplib.org>
   1060 
   1061 	* mpn/powerpc64/mode64/bdiv_q_1.asm: Use 64-bit cmp for sizes.
   1062 
   1063 	* mpn/powerpc64/p9/addmul_1.asm: New file.
   1064 
   1065 	* configure.ac: Separate handling of POWER8 and POWER9.
   1066 
   1067 	* config.guess: Recognise POWER9 and more variants of POWER8.
   1068 	Reorder recog code to favour PVR over proc/cpuinfo.
   1069 
   1070 2017-12-14  Torbjrn Granlund  <tg (a] gmplib.org>
   1071 
   1072 	* mpn/x86_64/fastsse/com.asm: Adhere to DOS64 xmm callee-saves rules.
   1073 	* mpn/x86_64/fastsse/com-palignr.asm: Likewise.
   1074 	* mpn/x86_64/fastsse/copyd.asm: Likewise.
   1075 	* mpn/x86_64/fastsse/copyi.asm: Likewise.
   1076 	* mpn/x86_64/fastsse/lshiftc.asm: Likewise.
   1077 	* mpn/x86_64/fastsse/sec_tabselect.asm: Likewise.
   1078 
   1079 2017-12-11  Torbjrn Granlund  <tg (a] gmplib.org>
   1080 
   1081 	* mpn/x86_64/bd1/aorrlsh_n.asm: New grabber file.
   1082 
   1083 2017-12-10  Torbjrn Granlund  <tg (a] gmplib.org>
   1084 
   1085 	* mpn/x86_64/bd1/aors_n.asm: New grabber file.
   1086 
   1087 	* mpn/x86_64/bd4/aorrlsh_n.asm: New grabber file.
   1088 
   1089 2017-08-31  Torbjrn Granlund  <tg (a] gmplib.org>
   1090 
   1091 	* mpn/sparc32/sparc-defs.m4 (LEA64): Rewrite for both PIC and non-PIC.
   1092 
   1093 	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Allow arbitrary cnd arg.
   1094 
   1095 2017-08-29  Torbjrn Granlund  <tg (a] gmplib.org>
   1096 
   1097 	* mpn/x86_64/silvermont/gmp-mparam.h: Disable mul_2 and addmul_2.
   1098 
   1099 2017-08-28  Torbjrn Granlund  <tg (a] gmplib.org>
   1100 
   1101 	* mpn/sparc64: Revert 2017-07-23 PIC changes.
   1102 
   1103 	* mpn/powerpc32/divrem_2.asm: Avoid bc+ insn form to accommodate clang.
   1104 
   1105 	* mpn/generic/sbpi1_bdiv_qr.c: Correct ASSERT.
   1106 	* mpn/generic/sbpi1_bdiv_q.c: Likewise.
   1107 	* mpn/generic/sbpi1_bdiv_r.c: Likewise.
   1108 
   1109 2017-08-18  Torbjrn Granlund  <tg (a] gmplib.org>
   1110 
   1111 	* acinclude.m4 (X86_64_PATTERN): Match zen*.
   1112 
   1113 	* configure.ac (x86): Support AVX challenged systems for Zen.
   1114 
   1115 2017-07-24  Torbjrn Granlund  <tg (a] gmplib.org>
   1116 
   1117 	* mpn/generic/sbpi1_bdiv_q.c: Add ASSERT for inverse correctness.
   1118 	* mpn/generic/sbpi1_bdiv_qr.c: Likewise.
   1119 
   1120 	* tests/mpn/t-bdiv.c (main): Amend last change.
   1121 
   1122 	* tests/devel/try.c (choice_array): Amend 2013-05-03 change to include
   1123 	more functions.
   1124 
   1125 2017-07-23  Torbjrn Granlund  <tg (a] gmplib.org>
   1126 
   1127 	* mpn/sparc64/gcd_1.asm: Enforce PIC as GNU/Linux toolchain workaround.
   1128 	* mpn/sparc64/ultrasparct3/bdiv_q_1.asm: Likewise.
   1129 	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
   1130 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
   1131 	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
   1132 
   1133 	* gmp-impl.h: Reorganise foolshC_ip1 -> foolshC -> foolsh chain to make
   1134 	it transitive.
   1135 
   1136 2017-07-23  Niels Mller  <nisse (a] lysator.liu.se>
   1137 
   1138 	* longlong.h: Purge definitions of obsolete UMUL_TIME and
   1139 	UDIV_TIME constants. Also mentioned (but unused) in
   1140 	mpn/cray/gmp-mparam.h and tune/common.c.
   1141 
   1142 2017-07-21  Torbjrn Granlund  <tg (a] gmplib.org>
   1143 
   1144 	* tests/mpn/t-bdiv.c (main): Test mpn_sbpi1_bdiv_r.
   1145 
   1146 	* tune/common.c (speed_mpn_sbpi1_bdiv_r): New function.
   1147 	* tune/speed.h: Declare it.
   1148 	(SPEED_ROUTINE_MPN_PI1_BDIV_R): New macro.
   1149 	* tune/speed.c (routine): Add mpn_sbpi1_bdiv_r.
   1150 
   1151 2017-07-20  Torbjrn Granlund  <tg (a] gmplib.org>
   1152 
   1153 	* configure.ac (gmp_mpn_functions): Add sbpi1_bdiv_r.
   1154 
   1155 	* gmp-impl.h (mpn_sbpi1_bdiv_r): Declare.
   1156 
   1157 	* mpn/asm-defs.m4 (define_mpn): Add sbpi1_bdiv_q, sbpi1_bdiv_qr,
   1158 	sbpi1_bdiv_r.
   1159 
   1160 	* mpn/generic/sbpi1_bdiv_r.c: New file.
   1161 	* mpn/x86_64/zen/sbpi1_bdiv_r.asm: New file.
   1162 
   1163 2017-07-19  Torbjrn Granlund  <tg (a] gmplib.org>
   1164 
   1165 	* mpn/x86/p6/sse2/submul_1.asm: Get pentium4 code instead of k6 code
   1166 	for better speed on modern Intel P6 cores.
   1167 
   1168 2017-07-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1169 
   1170 	* tune/tuneup.c (tune_mullo): For MULLO_BASECASE_THRESHOLD start at 2.
   1171 	(tune_sqrlo): Likewise.
   1172 
   1173 2017-06-28  Torbjrn Granlund  <tg (a] gmplib.org>
   1174 
   1175 	* tests/Makefile.am tests/*/Makefile.am tune/Makefile.am (AM_LDFLAGS):
   1176 	Define.  (Thanks to Emmanuel Thom and Vincent Lefevre.)
   1177 
   1178 2017-06-27  Torbjrn Granlund  <tg (a] gmplib.org>
   1179 
   1180 	* mpn/x86_64/zen/sqr_basecase.asm: Expand to use 4 addmul_1 loops.
   1181 
   1182 	* mpn/x86_64/x86_64-defs.m4 (sarx): New macro.
   1183 
   1184 2017-06-26  Torbjrn Granlund  <tg (a] gmplib.org>
   1185 
   1186 	* mpn/x86_64/coreibwl/sqr_basecase.asm: Rewrite to do 2x and limb
   1187 	squaring in main loop.
   1188 
   1189 2017-06-20  Torbjrn Granlund  <tg (a] gmplib.org>
   1190 
   1191 	* mpn/x86_64/atom/cnd_add_n.asm: New grabber file.
   1192 	* mpn/x86_64/atom/cnd_sub_n.asm: Likewise.
   1193 
   1194 	* mpn/x86_64/coreihwl/aorrlsh_n.asm: New grabber file.
   1195 
   1196 2017-06-16  Torbjrn Granlund  <tg (a] gmplib.org>
   1197 
   1198 	* mpn/x86_64/zen/mul_basecase.asm: Do overlapped software pipelining.
   1199 
   1200 	* mpn/x86_64/silvermont/mul_basecase.asm: New grabber file.
   1201 	* mpn/x86_64/silvermont/sqr_basecase.asm: Likewise.
   1202 	* mpn/x86_64/silvermont/mullo_basecase.asm: Likewise.
   1203 
   1204 2017-06-14  Torbjrn Granlund  <tg (a] gmplib.org>
   1205 
   1206 	* mpn/x86_64/zen/mullo_basecase.asm: New file.
   1207 	* mpn/x86_64/coreibwl/mullo_basecase.asm: New file.
   1208 
   1209 2017-06-11  Torbjrn Granlund  <tg (a] gmplib.org>
   1210 
   1211 	* mpn/x86_64/popham.asm: Crossjump for code size and mix lead-in insns
   1212 	for lower overhead.
   1213 
   1214 2017-06-09  Torbjrn Granlund  <tg (a] gmplib.org>
   1215 
   1216 	* configure.ac: Set GMP_NONSTD_ABI protecting against dots in the abi.
   1217 	(hppa): Remove old GNU/Linux restriction to 32-bit ABI.
   1218 
   1219 2017-06-07  Torbjrn Granlund  <tg (a] gmplib.org>
   1220 
   1221 	* mpn/x86_64/bd1/addmul_2.asm: New file.
   1222 
   1223 2017-06-06  Torbjrn Granlund  <tg (a] gmplib.org>
   1224 
   1225 	* mpn/x86_64/coreihwl/aors_n.asm: New file.
   1226 
   1227 	* mpn/x86_64/x86_64-defs.m4 (c4_helper): New macro.
   1228 	(mulx, shlx, shrx): Use c4_helper.
   1229 
   1230 	* mpn/x86_64/zen/mul_basecase.asm: Use 8-bit imm operands for "test".
   1231 
   1232 	* mpn/x86_64/zen/aorrlsh1_n.asm: New grabber file.
   1233 	* mpn/x86_64/zen/sublsh1_n.asm: Likewise.
   1234 	* mpn/x86_64/zen/aorrlsh_n.asm: New file
   1235 
   1236 2017-06-04  Torbjrn Granlund  <tg (a] gmplib.org>
   1237 
   1238 	* configure.ac: Use bt1/bt2 for bobcat and jaguar dirs.
   1239 	(fat_path): Add x86_64/bt2.
   1240 
   1241 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Adapt to bt1/bt2 changes.
   1242 	Make zen path correspond to non-fat path.
   1243 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Adapt to bt1/bt2 changes.
   1244 
   1245 	* mpn/x86_64/bt2/copyi.asm: New grabber file.
   1246 	* mpn/x86_64/bt2/copyd.asm: New grabber file.
   1247 	* mpn/x86_64/bt2/com.asm: New grabber file.
   1248 
   1249 2017-06-03  Torbjrn Granlund  <tg (a] gmplib.org>
   1250 
   1251 	* mpn/x86_64/bd1/popcount.asm: Expand some instructions as .byte
   1252 	sequences.
   1253 	* mpn/x86_64/bd1/hamdist.asm: Likewise.
   1254 
   1255 2017-06-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1256 
   1257 	* mpn/x86_64/x86_64-defs.m4 (DEF_OBJECT): Fix quoting (amends recent
   1258 	change).
   1259 	(JUMPTABSECT): Get rid of spurious "w".
   1260 
   1261 2017-06-02  Marc Glisse  <marc.glisse (a] inria.fr>
   1262 
   1263 	* gmpxx.h (mpf_class::operator bool): Use mpf_sgn to access _mp_size.
   1264 
   1265 2017-06-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1266 
   1267 	* mpn/x86_64/bd1/popcount.asm: Use both SSE and XOP trickery, and
   1268 	plain popcnt insn.
   1269 	* mpn/x86_64/bd1/hamdist.asm: Likewise.
   1270 
   1271 2017-06-01  Torbjrn Granlund  <tg (a] gmplib.org>
   1272 
   1273 	* mpn/x86_64/x86_64-defs.m4 (DEF_OBJECT): Allow 3rd argument defining
   1274 	section, while making alignment argument non-optional.
   1275 
   1276 	* mpn/x86_64/core2/popcount.asm: Use 3-operand DEF_OBJECT.
   1277 	* mpn/x86_64/core2/hamdist.asm: Likewise.
   1278 	* mpn/x86_64/bd1/popcount.asm: Likewise.
   1279 	* mpn/x86_64/bd1/hamdist.asm: Likewise.
   1280 
   1281 	* configure.ac (GMP_AVX_NOT_REALLY_AVAILABLE): New m4 define.
   1282 	* mpn/x86_64/bd1/popcount.asm: Use GMP_AVX_NOT_REALLY_AVAILABLE.
   1283 	* mpn/x86_64/bd1/hamdist.asm: Likewise.
   1284 
   1285 	* mpn/x86_64/silvermont/popcount.asm: Reinstate, grabbing nehalem code.
   1286 	* mpn/x86_64/silvermont/hamdist.asm: Replace with grabber.
   1287 
   1288 2017-05-31  Torbjrn Granlund  <tg (a] gmplib.org>
   1289 
   1290 	* mpn/x86_64/silvermont/popcount.asm: Remove.
   1291 
   1292 	* mpn/x86_64/core2/logops_n.asm: New file.
   1293 
   1294 2017-05-30  Torbjrn Granlund  <tg (a] gmplib.org>
   1295 
   1296 	* mpn/x86_64/coreisbr/popcount.asm: Remove.
   1297 
   1298 2017-05-29  Torbjrn Granlund  <tg (a] gmplib.org>
   1299 
   1300 	* mpn/x86_64/coreinhm/popcount.asm: Replace grabber code with
   1301 	implementation proper.
   1302 	* mpn/x86_64/coreinhm/hamdist.asm: Likewise.
   1303 	* mpn/x86_64/bd1/popcount.asm: Likewise.
   1304 	* mpn/x86_64/bd1/hamdist.asm: Likewise.
   1305 	* mpn/x86_64/core2/popcount.asm: Likewise.
   1306 	* mpn/x86_64/core2/hamdist.asm: New file.
   1307 
   1308 2017-05-22  Torbjrn Granlund  <tg (a] gmplib.org>
   1309 
   1310 	* mpn/x86_64/core2/com.asm: New grabber file.
   1311 
   1312 	* mpn/x86_64/core2/lshift.asm: Rewrite.
   1313 	* mpn/x86_64/core2/rshift.asm: Rewrite.
   1314 	* mpn/x86_64/core2/lshiftc.asm: Rewrite.
   1315 
   1316 2017-05-16  Torbjrn Granlund  <tg (a] gmplib.org>
   1317 
   1318 	* mpn/x86_64/zen/mul_1.asm: Port to DOS64.
   1319 	* mpn/x86_64/zen/aorsmul_1.asm: Likewise.
   1320 	* mpn/x86_64/coreibwl/addmul_1.asm: Likewise.
   1321 
   1322 2017-05-16  Niels Mller  <nisse (a] lysator.liu.se>
   1323 
   1324 	* mpn/generic/divis.c (mpn_divisible_p): Updated the divisibility
   1325 	test; bdiv now returns R = D rather than R = 0 when D divides a
   1326 	non-zero U.
   1327 
   1328 	* mpn/generic/binvert.c (mpn_binvert): Negate bdiv quotient.
   1329 	* mpn/generic/divexact.c (mpn_divexact): Likewise.
   1330 	* mpn/generic/remove.c (mpn_remove): Likewise.
   1331 	* mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Likewise.
   1332 
   1333 	* tests/mpn/t-bdiv.c (check_one): Updated to new convention,
   1334 	B^{qn} R = U + QD.
   1335 
   1336 	* mpn/generic/sbpi1_bdiv_qr.c (mpn_sbpi1_bdiv_qr): Reimplemented,
   1337 	for new bdiv convention.
   1338 	* mpn/generic/sbpi1_bdiv_q.c (mpn_sbpi1_bdiv_q): Likewise.
   1339 	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q_n)
   1340 	(mpn_dcpi1_bdiv_q): Adapted to new bdiv convention.
   1341 	* mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n)
   1342 	(mpn_dcpi1_bdiv_qr): Likewise.
   1343 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr): Adapted to new bdiv
   1344 	convention, using a wrapper calling the old function.
   1345 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q): Likewise.
   1346 
   1347 2017-05-03  Torbjrn Granlund  <tg (a] gmplib.org>
   1348 
   1349 	* mpn/x86_64/coreisbr/cnd_aors_n.asm: New file.
   1350 	* mpn/x86_64/coreisbr/cnd_add_n.asm: New file.
   1351 
   1352 	* mpn/x86_64/core2/aorsmul_1.asm: Tune.
   1353 
   1354 	* mpn/x86_64/silvermont/mul_1.asm: New file, grabbing another asm file.
   1355 	* mpn/x86_64/silvermont/aorsmul_1.asm: Likewise.
   1356 	* mpn/x86_64/silvermont/aorrlsh1_n.asm: Likewise.
   1357 	* mpn/x86_64/silvermont/aorrlsh2_n.asm: Likewise.
   1358 	* mpn/x86_64/silvermont/lshift.asm: Likewise.
   1359 	* mpn/x86_64/silvermont/rshift.asm: Likewise.
   1360 	* mpn/x86_64/silvermont/lshiftc.asm: Likewise.
   1361 
   1362 	* mpn/x86_64/zen/mul_basecase.asm: Split outer loop into 4 loops.
   1363 
   1364 2017-05-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1365 
   1366 	* mpn/x86_64/zen/sqr_basecase.asm: Use .byte for encoding all mulx.
   1367 	Misc tuning.
   1368 
   1369 2017-04-27  Torbjrn Granlund  <tg (a] gmplib.org>
   1370 
   1371 	* mpn/x86_64/zen/sqr_basecase.asm: Rewrite to do 2x and limb squaring
   1372 	in main loop.
   1373 
   1374 2017-04-25  Torbjrn Granlund  <tg (a] gmplib.org>
   1375 
   1376 	* mpn/x86_64/fat/fat_entry.asm: Allocate correct DOS64 frame.
   1377 	* mpn/x86_64/divrem_2.asm: Likewise.
   1378 	* mpn/x86_64/mod_1_2.asm: Likewise.
   1379 	* mpn/x86_64/mod_1_4.asm: Likewise.
   1380 	* mpn/x86_64/mod_1_1.asm: Likewise.
   1381 
   1382 2017-04-23  Torbjrn Granlund  <tg (a] gmplib.org>
   1383 
   1384 	* mpn/x86_64/coreisbr/mul_1.asm: Rewrite feed-in code and add mul_1c
   1385 	entry point.
   1386 
   1387 2017-04-17  Torbjrn Granlund  <tg (a] gmplib.org>
   1388 
   1389 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Amend last change.
   1390 
   1391 	* mpn/x86_64/zen/mul_basecase.asm: New file.
   1392 	* mpn/x86_64/zen/sqr_basecase.asm: New file.
   1393 
   1394 2017-04-16  Torbjrn Granlund  <tg (a] gmplib.org>
   1395 
   1396 	* mpn/generic/sqr_basecase.c (addmul_1 variant): Rewrite to compute
   1397 	in-place and to avoid a re-computation.
   1398 
   1399 	* configure.ac: Remove k8, k10 from zen path.
   1400 
   1401 2017-04-15  Torbjrn Granlund  <tg (a] gmplib.org>
   1402 
   1403 	* mpn/x86_64/zen/gmp-mparam.h: New file.
   1404 
   1405 	* mpn/x86_64/zen/com.asm: New file, grabbing another asm file.
   1406 	* mpn/x86_64/zen/copyd.asm: Likewise.
   1407 	* mpn/x86_64/zen/copyi.asm: Likewise.
   1408 	* mpn/x86_64/zen/gcd_1.asm: Likewise.
   1409 	* mpn/x86_64/zen/hamdist.asm: Likewise.
   1410 	* mpn/x86_64/zen/lshift.asm: Likewise.
   1411 	* mpn/x86_64/zen/lshiftc.asm: Likewise.
   1412 	* mpn/x86_64/zen/popcount.asm: Likewise.
   1413 	* mpn/x86_64/zen/rshift.asm: Likewise.
   1414 
   1415 	* config.guess: Recognise AMD zen.
   1416 	* acinclude.m4 (X86_64_PATTERN): Add zen.
   1417 	* config.sub: Corresponding changes.
   1418 	* configure.ac: Corresponding changes.
   1419 	* mpn/x86_64/fat/fat.c: Corresponding changes.
   1420 
   1421 2017-03-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1422 
   1423 	* mpz/oddfac_1.c (limb_apprsqrt): Better approximation.
   1424 	* mpz/bin_uiui.c (limb_apprsqrt): Likewise.
   1425 
   1426 2017-03-12  Torbjrn Granlund  <tg (a] gmplib.org>
   1427 
   1428 	* tests/mpf/t-get_d_2exp.c (check_data): Rewrite of check_onebit.
   1429 
   1430 2017-03-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1431 
   1432 	* mpn/generic/sqrtrem.c: Direct use of sqrtrem2 when n==2.
   1433 	* mpn/generic/div_qr_2.c (udiv_qr_4by2): Replace add_csaac with add_sssaaaa.
   1434 
   1435 2017-03-07  Torbjrn Granlund  <tg (a] gmplib.org>
   1436 
   1437 	* mpf/get_d_2exp.c: Return negative value for negative input.
   1438 
   1439 2017-03-06  Torbjrn Granlund  <tg (a] gmplib.org>
   1440 
   1441 	* longlong.h (aarch64): Provide asm-free umul_ppmm.
   1442 	* longlong.h (powerpc64): Enable asm-free umul_ppmm.
   1443 
   1444 2017-03-04  Torbjrn Granlund  <tg (a] gmplib.org>
   1445 
   1446 	* mpn/arm64/sqr_diag_addlsh1.asm: Complete rewrite.
   1447 
   1448 2017-02-27  Torbjrn Granlund  <tg (a] gmplib.org>
   1449 
   1450 	* longlong.h (arm32/arm64): Remove useless comparison to 0 introduced
   1451 	in last change (spotted by Marco).
   1452 
   1453 2017-02-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1454 
   1455 	* mpn/generic/pow_1.c: Use umul_ppmm for a single limb.
   1456 
   1457 2017-02-25  Torbjrn Granlund  <tg (a] gmplib.org>
   1458 
   1459 	* configure.ac: Allow MP_SIZE_T_MAX for thresholds exported to
   1460 	config.m4.
   1461 
   1462 	* mpn/x86_64/gcd_1.asm: Handle BMOD_1_TO_MOD_1_THRESHOLD=MP_SIZE_T_MAX.
   1463 	Streamline non-reduction path.
   1464 	* mpn/x86_64/core2/gcd_1.asm: Streamline small operands cases similarly
   1465 	to top-level code.
   1466 
   1467 2017-02-24  Torbjrn Granlund  <tg (a] gmplib.org>
   1468 
   1469 	* longlong.h (arm32/arm64 add_ssaaaa): Use "subs" for some immediates.
   1470 	* longlong.h (arm32/arm64 sub_ddmmss): Use "adds" for some immediates.
   1471 
   1472 	* mpn/arm64/copyi.asm: Avoid branching on flags.
   1473 	* mpn/arm64/copyd.asm: Likewise.
   1474 
   1475 	* mpn/generic/div_qr_2.c (aarch64 add_sssaaaa): New.
   1476 	* mpn/generic/div_qr_1n_pi2.c: Same.
   1477 	* mpn/generic/div_qr_1u_pi2.c: Same.
   1478 
   1479 	* mpn/generic/div_qr_2.c (powerpc add_sssaaaa): Fix typo.
   1480 	* mpn/generic/div_qr_1n_pi2.c: Same.
   1481 	* mpn/generic/div_qr_1u_pi2.c: Same.
   1482 
   1483 2017-02-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1484 
   1485 	* tests/devel/sqrtrem_1_2.c: New exhaustive test for sqrtrem_[12].
   1486 	* tests/devel/Makefile.am (EXTRA_PROGRAMS): add it.
   1487 
   1488 2017-02-23  Torbjrn Granlund  <tg (a] gmplib.org>
   1489 
   1490 	* mpn/x86_64/silvermont/gmp-mparam.h: New file.
   1491 
   1492 2017-02-22  Torbjrn Granlund  <tg (a] gmplib.org>
   1493 
   1494 	* mpn/arm64/aorsmul_1.asm: Rewrite.
   1495 
   1496 	* mpn/arm64/lshiftc.asm: New file.
   1497 
   1498 2017-02-21  Torbjrn Granlund  <tg (a] gmplib.org>
   1499 
   1500 	* mpn/arm64/lshift.asm: Rewrite.
   1501 	* mpn/arm64/rshift.asm: Rewrite.
   1502 
   1503 	* mpn/arm64/rsh1aors_n.asm: New file.
   1504 
   1505 2017-02-19  Torbjrn Granlund  <tg (a] gmplib.org>
   1506 
   1507 	* mpn/arm64/mul_1.asm: Rewrite.
   1508 	* mpn/arm64/xgene1/mul_1.asm: Remove.
   1509 
   1510 2017-02-17  Torbjrn Granlund  <tg (a] gmplib.org>
   1511 
   1512 	* mpn/arm64/cora53/cnd_aors_n.asm: Moved from "..".
   1513 
   1514 	* mpn/arm64/xgene1/cnd_aors_n.asm: Remove file since default code
   1515 	performs better.
   1516 
   1517 	* mpn/arm64/cnd_aors_n.asm: Rewrite.
   1518 
   1519 	* mpn/arm64/logops_n.asm: Rewrite based on new aors_n.asm.
   1520 
   1521 2017-02-16  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   1522 
   1523 	* rand/randmt.c (__gmp_randiset_mt): Set generator functions from
   1524 	source.
   1525 
   1526 2017-02-16  Torbjrn Granlund  <tg (a] gmplib.org>
   1527 
   1528 	* mpn/arm64/aorsorrlshC_n.asm: New file.
   1529 	* mpn/arm64/aorsorrlsh2_n.asm: New file.
   1530 	* mpn/arm64/aorsorrlsh1_n.asm: New file.
   1531 
   1532 	* mpn/arm64/xgene1/aors_n.asm: Remove file since default code now
   1533 	performs similarly.
   1534 
   1535 	* mpn/arm64/aors_n.asm: Rewrite to use 4x unrolling.
   1536 
   1537 2017-02-15  Torbjrn Granlund  <tg (a] gmplib.org>
   1538 
   1539 	* mpn/x86_64/silvermont/hamdist.asm: New file, based on k10 code.
   1540 
   1541 	* mpn/x86_64/silvermont/popcount.asm: Grab coreisbr/popcount.asm.
   1542 
   1543 2017-02-14  Torbjrn Granlund  <tg (a] gmplib.org>
   1544 
   1545 	* mpn/x86_64/silvermont/aors_n.asm: New file, grabbing coreisbr code.
   1546 
   1547 	* mpn/x86_64/atom/aors_n.asm: Replace coreisbr grabbing code with
   1548 	code based on Marco's x64/atom/aors_n.asm.
   1549 
   1550 2017-02-12  Torbjrn Granlund  <tg (a] gmplib.org>
   1551 
   1552 	* mpn/powerpc64/aix.m4 (AIX): New define.
   1553 
   1554 	* mpn/powerpc64/mode64/bdiv_q_1.asm: For AIX, don't jump from
   1555 	mpn_bdiv_q_1 to middle of mpn_pi1_bdiv_q_1.  Streamline.
   1556 
   1557 	* mpn/powerpc64/darwin.m4 (LEA): Put code in lea_list instead of in
   1558 	EPILOGUE_cpu.
   1559 	(EPILOGUE_cpu): Output lea_list, the zap it.
   1560 
   1561 	* mpn/sparc64/ultrasparct3/bdiv_q_1.asm: New file, based on dive_1.asm.
   1562 
   1563 2017-02-11  Torbjrn Granlund  <tg (a] gmplib.org>
   1564 
   1565 	* mpn/arm/v7a/cora8/bdiv_q_1.asm: New file, based on v6/dive_1.asm.
   1566 	* mpn/arm/v7a/cora9/bdiv_q_1.asm: New file, grabbing cora8 code.
   1567 	* mpn/arm/v7a/cora15/bdiv_q_1.asm: Likewise.
   1568 
   1569 	* mpn/arm64/aors_n.asm: (SETCY, RETVAL): Shorten insn sequences.
   1570 	* mpn/arm64/cnd_aors_n.asm: Likewise.
   1571 	* mpn/arm64/xgene1/aors_n.asm: Likewise.
   1572 	* mpn/arm64/xgene1/cnd_aors_n.asm: Likewise.
   1573 
   1574 	* mpn/arm/bdiv_q_1.asm: New file, based on dive_1.asm.
   1575 
   1576 	* mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Remove odd d special case.
   1577 
   1578 	* mpn/powerpc64/mode64/bdiv_q_1.asm: New file.
   1579 
   1580 	* mpn/arm64/bdiv_q_1.asm: New file.
   1581 
   1582 2017-02-10  Torbjrn Granlund  <tg (a] gmplib.org>
   1583 
   1584 	* mpn/arm/arm-defs.m4 (EPILOGUE_cpu): Zap lea_list to avoid repetition.
   1585 
   1586 	* mpn/x86_64/bdiv_q_1.asm: Rewrite, base on atom/dive_1.asm.
   1587 
   1588 2017-02-08  Torbjrn Granlund  <tg (a] gmplib.org>
   1589 
   1590 	* mpn/generic/compute_powtab.c: Choose mpn_pi1_bdiv_q_1 vs
   1591 	mpn_divexact_1 more wisely (spotted by Marco).
   1592 
   1593 2017-02-07  Torbjrn Granlund  <tg (a] gmplib.org>
   1594 
   1595 	* tune/tuneup.c (relspeed_div_1_vs_mul_1): Prefer mpn_pi1_bdiv_q_1.
   1596 
   1597 	* mpn/generic/compute_powtab.c: Use mpn_pi1_bdiv_q_1/mpn_bdiv_q_1
   1598 	instead of mpn_divexact_1.
   1599 
   1600 	* gen-bases.c (binvert): New function, computing modular inverse and
   1601 	low zero count.
   1602 	(header): Print MP_BASES_BIG_BASE_CTZ_10 and
   1603 	MP_BASES_BIG_BASE_BINVERTED_10.
   1604 
   1605 2017-02-06  Torbjrn Granlund  <tg (a] gmplib.org>
   1606 
   1607 	* mpn/generic/bdiv_q_1.c: Make return value consistent.
   1608 
   1609 	* mpn/x86/p6/mmx/gmp-mparam.h (SQR_TOOM2_THRESHOLD): Revert to bogus
   1610 	value to accommodate p6/sqr_basecase.asm fragility.
   1611 
   1612 2017-01-29 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1613 
   1614 	* mpz/and.c: Simplify branches.
   1615 	* mpz/ior.c: Likewise.
   1616 	* mpz/xor.c: Likewise.
   1617 
   1618 	* gen-bases.c: In generated file, include just gmp-impl.h, not gmp.h
   1619 
   1620 2017-01-29  Torbjrn Granlund  <tg (a] gmplib.org>
   1621 
   1622 	* configure.ac: Don't check if we got a C99 compiler for now (partially
   1623 	revert 2017-01-24 change as C++ compilers become rejected).
   1624 
   1625 2017-01-24  Torbjrn Granlund  <tg (a] gmplib.org>
   1626 
   1627 	* mpn/generic/compute_powtab.c: New file, providing mpn_compute_powtab
   1628 	for both get_str and set_str.
   1629 
   1630 	* gmp-impl.h (mpn_str_powtab_alloc): New macro.
   1631 	(mpn_dc_set_str_powtab_alloc, mpn_dc_get_str_powtab_alloc): Remove.
   1632 	(mpn_compute_powtab): Declare.
   1633 
   1634 	* mpn/generic/set_str.c: Use mpn_compute_powtab.
   1635 	(mpn_set_str_compute_powtab): Remove.
   1636 
   1637 	* mpn/generic/get_str.c: Use mpn_compute_powtab.
   1638 	(mpn_get_str_compute_powtab): Remove.
   1639 	(mpn_bc_get_str): New name for mpn_sb_get_str.
   1640 
   1641 	* configure.ac (gmp_mpn_functions): Add compute_powtab.
   1642 
   1643 	* tune/tuneup.c (speed_mpn_pre_set_str): Call mpn_compute_powtab.
   1644 	* tune/set_strb.c: Remove mpn_set_str_compute_powtab name mangling.
   1645 	* tune/set_strs.c: Likewise.
   1646 
   1647 	* configure.ac: Invoke AC_PROG_CC_C99 instead of AC_PROG_CC_STDC.
   1648 
   1649 2017-01-03  Torbjrn Granlund  <tg (a] gmplib.org>
   1650 
   1651 	* configure.ac (arm*-*-*): Properly point to cortex-a5 subdir.
   1652 
   1653 2016-12-31  Torbjrn Granlund  <tg (a] gmplib.org>
   1654 
   1655 	* tune/tuneup.c (relspeed_div_1_vs_mul_1): New function.
   1656 
   1657 2016-12-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1658 
   1659 	* tune/common.c (speed_mpz_mfac_uiui, speed_mpz_invert): New
   1660 	functions.
   1661 	* tune/speed.h: Declare them.
   1662 	* tune/speed.c (routine): Add mpz_mfac_uiui, mpz_invert.
   1663 
   1664 	* tests/mpz/t-primorial_ui.c: Add randomization to the test.
   1665 	* mpz/tdiv_r.c: Reduce allocation in some corner-case conditions.
   1666 	* mpz/tdiv_r_2exp.c: Rearrange counting non-zero limbs.
   1667 	* mpz/tdiv_q.c: Move common code out of some branches.
   1668 	* mpz/and.c: Alloc only when needed.
   1669 	* mpz/xor.c: Reorder branches.
   1670 	* mpz/gcd.c: Reorder branches.
   1671 	* mpz/pprime_p.c: Save the initial branch of a loop.
   1672 	* mpn/generic/divrem.c: Save an allocation.
   1673 
   1674 2016-12-26  Torbjrn Granlund  <tg (a] gmplib.org>
   1675 
   1676 	* longlong.h (x86_64 umul_ppmm): Add mulx variant (not automatically
   1677 	used).
   1678 
   1679 2016-12-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1680 
   1681 	* mpz/gcdext.c: Save an allocation if both cofactors are needed.
   1682 	* mpz/oddfac_1.c: Revision of all ASSERTs.
   1683 	* tests/mpz/t-invert.c: All elements are invertible in the zero ring.
   1684 
   1685 2016-12-13  Torbjrn Granlund  <tg (a] gmplib.org>
   1686 
   1687 	* longlong.h: Test LONGLONG_STANDALONE in two more places.
   1688 
   1689 2016-12-07  Torbjrn Granlund  <tg (a] gmplib.org>
   1690 
   1691 	* gmp-h.in: Check yet another symbol for FILE.
   1692 
   1693 2016-12-04  Torbjrn Granlund  <tg (a] gmplib.org>
   1694 
   1695 	* tests/mpz/reuse.c: Use mpz_clobber.  Split mpz_gcdext macros to avoid
   1696 	spurious res3 dependency.
   1697 
   1698 	* tests/misc.c (mpz_clobber): New function.
   1699 
   1700 2016-12-03  Niels Mller  <nisse (a] lysator.liu.se>
   1701 
   1702 	* doc/gmp.texi (Number Theoretic Functions): Tweak mpz_gcdext
   1703 	documentation. The first and third argument may be NULL, but not
   1704 	the second.
   1705 
   1706 2016-12-02  Niels Mller  <nisse (a] lysator.liu.se>
   1707 
   1708 	* tests/mpz/reuse.c (main): Test additional cases of reuse for
   1709 	mpz_gcd and mpz_gcdext.
   1710 
   1711 2016-12-01  Torbjrn Granlund  <tg (a] gmplib.org>
   1712 
   1713 	* tests/misc.c (seed_from_tod): Make shift well-defined.
   1714 
   1715 2016-11-29  Torbjrn Granlund  <tg (a] gmplib.org>
   1716 
   1717 	* gmp-h.in (__GNU_MP__): Bump.
   1718 
   1719 	* mpz/inp_raw.c: Rewrite size computation to avoid overflow.
   1720 
   1721 	* mpz/kronsz.c: Use ABS_CAST to avoid undefined code.
   1722 
   1723 2016-11-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1724 
   1725 	* mpz/gcd.c, mpz/gcdext.c: Use NEWALLOC.
   1726 	* mpz/oddfac_1.c: Disable an ASSERT that needs a revision.
   1727 
   1728 2016-11-27  Torbjrn Granlund  <tg (a] gmplib.org>
   1729 
   1730 	* tests/mpz/reuse.c: Rewrite operand randomisation to use fixed ranges.
   1731 
   1732 	* tune/time.c (cgt_works_p): Add a missing verbosity check.
   1733 
   1734 	* configure.ac: Make udiv_w_sdiv use conditional on enable_assembly.
   1735 
   1736 2016-11-25  Marc Glisse  <marc.glisse (a] inria.fr>
   1737 
   1738 	* mpz/gcdext.c (mpz_gcdext): Allow a first argument of NULL.
   1739 	* doc/gmp.texi (Number Theoretic Functions): Document it.
   1740 	* tests/mpz/t-gcd.c (main): Test it.
   1741 
   1742 2016-11-25  Marc Glisse  <marc.glisse (a] inria.fr>
   1743 
   1744 	* tests/cxx/t-ops2z.cc (checkz): Avoid left shift of negative number.
   1745 
   1746 2016-11-22  Torbjrn Granlund  <tg (a] gmplib.org>
   1747 
   1748 	* configure.ac (x86): Define LINUX for GNU/Linux systems.
   1749 	* mpn/x86_64/fat/fat_entry.asm: Set PRETEND_PIC for GNU/Linux.
   1750 
   1751 2016-11-21  Torbjrn Granlund  <tg (a] gmplib.org>
   1752 
   1753 	* configure.ac (powerpc): Never use -O3.
   1754 
   1755 	* acinclude.m4 (mpn_lshift_com optimization 2): Make it well-defined
   1756 	also for 32-bit systems.
   1757 	(mpn_lshift_com optimization 2): Free allocated memory.
   1758 
   1759 2016-11-19  Niels Mller  <nisse (a] lysator.liu.se>
   1760 
   1761 	* Makefile.am (check-mini-gmp): Override CFLAGS and CPPFLAGS
   1762 	instead of the deleted EXTRA_CFLAGS. Set TEST_LIBRARY_PATH,
   1763 	instead of LD_LIBRARY_PATH and DYLD_LIBRARY_PATH, to avoid getting
   1764 	gcc linked with an unexpected version of gmp.
   1765 
   1766 2016-11-18  Niels Mller  <nisse (a] lysator.liu.se>
   1767 
   1768 	* Makefile.am (check-mini-gmp): Get CC and EXTRA_CFLAGS right.
   1769 
   1770 2016-11-17  Torbjrn Granlund  <tg (a] gmplib.org>
   1771 
   1772 	* asl.h: Initial support for artificially small limbs.
   1773 
   1774 2016-11-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1775 
   1776 	* pz/iset_str.c: Lazy allocation.
   1777 
   1778 2016-11-01  Torbjrn Granlund  <tg (a] gmplib.org>
   1779 
   1780 	* mpn/generic/dive_1.c: Remove a forgotten dummy while-loop.  (Spotted
   1781 	by Peter Barfuss.)
   1782 
   1783 2016-10-31   Oleg Oshmyan  <chortos (a] inbox.lv>
   1784 
   1785 	* gmp-impl.h (x86_64 MPN_IORD_U): Use proper asm constraint.
   1786 
   1787 2016-10-30  Torbjrn Granlund  <tg (a] gmplib.org>
   1788 
   1789 	* mpn/Makefile.am (TARG_DIST): Add riscv.
   1790 
   1791 2016-10-28  Marc Glisse  <marc.glisse (a] inria.fr>
   1792 
   1793 	* gmpxx.h (__gmp_binary_divides): Let 1/q call mpq_inv.
   1794 	* tests/cxx/t-ops.cc (check_mpq): Test it.
   1795 
   1796 2016-10-24  Torbjrn Granlund  <tg (a] gmplib.org>
   1797 
   1798 	* config.guess: Recognise Itanium Poulson.
   1799 
   1800 2016-10-15  Torbjrn Granlund  <tg (a] gmplib.org>
   1801 
   1802 	* configure.ac (arm*-*-*): Amend last change.
   1803 
   1804 2016-10-14  Torbjrn Granlund  <tg (a] gmplib.org>
   1805 
   1806 	* longlong.h (riscv umul_ppmm): New.
   1807 
   1808 	* mpn/riscv/64/aors_n.asm: New file.
   1809 	* mpn/riscv/64/mul_1.asm: New file.
   1810 	* mpn/riscv/64/aorsmul_1.asm: New file.
   1811 
   1812 	* mpn/generic/addmul_1.c: Rewrite for shallower recurrency.
   1813 	* mpn/generic/submul_1.c: Likewise.
   1814 
   1815 	* configure.ac (riscv-*-*): New.
   1816 	(arm*-*-*): Rewrite arm support to handle armv8 CPUs in 32-bit mode.
   1817 
   1818 2016-08-29  Torbjrn Granlund  <tg (a] gmplib.org>
   1819 
   1820 	* All C files: Include just gmp-impl.h, make gmp-impl.h grab gmp.h.
   1821 
   1822 	* mpf/get_str.c: Use __GMP_ALLOCATE_FUNC_TYPE and friends.
   1823 	* mpf/inp_str.c: Likewise.
   1824 	* mpq/get_str.c: Likewise.
   1825 	* mpz/get_str.c: Likewise.
   1826 	* mpz/inp_str.c: Likewise.
   1827 	* scanf/vsscanf.c: Likewise.
   1828 	* tal-reent.c: Likewise.
   1829 
   1830 2016-08-24  Vlad Zakharov <vzakhar (a] synopsys.com>
   1831 
   1832 	* longlong.h (arc add_ssaaaa, sub_ddmmss): Replace obsolete 'J'
   1833 	constraint with 'Cal'.
   1834 
   1835 2016-08-22  Marc Glisse  <marc.glisse (a] inria.fr>
   1836 
   1837 	* longlong.h (umul_ppmm from __umulsidi3): Protect with do ...
   1838 	while (0).
   1839 
   1840 2016-06-02  Torbjrn Granlund  <tg (a] gmplib.org>
   1841 	    Vincent Lefevre <vincent (a] vinc17.net>
   1842 
   1843 	* doc/gmp.texi: Various clarifications about variable conventions.
   1844 
   1845 2016-04-07  Marc Glisse  <marc.glisse (a] inria.fr>
   1846 
   1847 	* gmp-h.in (__GMP_NOTHROW): Prefer noexcept to throw().
   1848 	(mpz_init, mpz_inits): Mark as __GMP_NOTHROW.
   1849 	* mpz/init.c, mpz/inits.c: Likewise.
   1850 	* gmpxx.h (mpz_class): Mark default and move constructors noexcept.
   1851 	* tests/cxx/t-cxx11.cc: Check noexcept.
   1852 
   1853 2016-04-02  Torbjrn Granlund  <torbjorng (a] google.com>
   1854 
   1855 	* mpf/set_q.c: Rewrite, mainly to use mpn_div_q.
   1856 
   1857 2016-03-29  Torbjrn Granlund  <torbjorng (a] google.com>
   1858 
   1859 	* mpn/x86_64/fat/addmul_2.c: New file.
   1860 
   1861 2016-03-28  Torbjrn Granlund  <torbjorng (a] google.com>
   1862 
   1863 	* mpn/x86_64/addmul_2.asm: Move from here...
   1864 	* mpn/x86_64/k8/addmul_2.asm: ...to here.
   1865 
   1866 2016-03-26  Torbjrn Granlund  <torbjorng (a] google.com>
   1867 
   1868 	* mpn/arm64/sqr_diag_addlsh1.asm: New file.
   1869 
   1870 2016-03-25  Torbjrn Granlund  <torbjorng (a] google.com>
   1871 
   1872 	* mpn/arm64/xgene1/aors_n.asm: New file.
   1873 	* mpn/arm64/xgene1/aorsmul_1.asm: New file.
   1874 	* mpn/arm64/xgene1/cnd_aors_n.asm: New file.
   1875 	* mpn/arm64/xgene1/gmp-mparam.h: New file.
   1876 	* mpn/arm64/xgene1/mul_1.asm: New file.
   1877 
   1878 	* config.guess: Prefix all arm CPUs with "arm" to accommodate our
   1879 	matchers.
   1880 	* configure.ac (arm): Match arm CPUs consistently.
   1881 
   1882 2016-03-21  Torbjrn Granlund  <torbjorng (a] google.com>
   1883 
   1884 	* configure.ac: Support many arm64 processors.
   1885 
   1886 2016-03-20  Marc Glisse  <marc.glisse (a] inria.fr>
   1887 
   1888 	* configure.ac (WANT_ASSEMBLY): Remove.
   1889 	(NO_ASM): Remove from CFLAGS, add to AC_DEFINE.
   1890 	* tests/misc.c: Test NO_ASM instead of WANT_ASSEMBLY.
   1891 
   1892 2016-03-20  Torbjrn Granlund  <torbjorng (a] google.com>
   1893 
   1894 	* config.guess (arm*): Handle big.LITTLE CPUs by extracting the
   1895 	lexically largest id.
   1896 	* config.guess (arm*): Add many aarch64 CPUs.
   1897 	* config.guess (main): Corresponding changes.
   1898 
   1899 	* mpn/arm/v7a/cora5/gmp-mparam.h: New file.
   1900 
   1901 	* configure.ac (arm*): Support cortex-a5 better.
   1902 
   1903 2016-02-25  Pavel Kopyl  <p.kopyl (a] samsung.com>
   1904 
   1905 	* acinclude.m4 (GMP_ASM_UNDERSCORE): Tighten gurkmacka detection.
   1906 
   1907 2016-01-27  Niels Mller  <nisse (a] lysator.liu.se>
   1908 
   1909 	* errno.c (__gmp_exception): Use raise(SIGFPE) when available.
   1910 
   1911 2016-01-15  Torbjrn Granlund  <torbjorng (a] google.com>
   1912 
   1913 	* config.guess (s390): Don't assume /proc/cpuinfo exists.
   1914 
   1915 2016-01-13  Torbjrn Granlund  <torbjorng (a] google.com>
   1916 
   1917 	* config.guess: Reorder and generalise ppc code.
   1918 
   1919 2016-01-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1920 
   1921 	* tests/cxx/clocale.c: Do not re-define localeconv for mingw.
   1922 	* tests/misc/t-locale.c: Likewise (Thanks Alexander).
   1923 
   1924 	* primesieve.c: Heal a speed regression on small values.
   1925 	* mpz/bin_uiui.c (mpz_bdiv_bin_uiui): 2 factors all at once.
   1926 	  (mpz_goetgheluck_bin_uiui): Use STOP/CONT for loops on primesieve.
   1927 	* mpz/oddfac_1.c: Likewise.
   1928 	* mpz/primorial_ui.c (LOOP_ON_SIEVE_CONTINUE): Define prime locally.
   1929 
   1930 	* gen-fac.c: Use unsigned types for sizes.
   1931 
   1932 	* mpn/generic/invert.c: Use MPN_FILL macro.
   1933 	* mpn/generic/invertappr.c: Likewise.
   1934 	* mpn/generic/toom53_mul.c: Use _ip1 when available.
   1935 
   1936 2015-12-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1937 
   1938 	* mpq/set_str.c: Use __GMP_FREE_FUNC_TYPE.
   1939 	* tests/mpz/t-nextprime.c: Speedup using swap, and correct type.
   1940 
   1941 2015-12-26  Torbjrn Granlund  <torbjorng (a] google.com>
   1942 
   1943 	* tests/misc.c (tests_start): Assert library version.
   1944 
   1945 2015-12-19  Marc Glisse  <marc.glisse (a] inria.fr>
   1946 
   1947 	* gmp-impl.h (fft_table_nk): Use gmp_uint_least32_t.
   1948 	* mpn/generic/trialdiv.c (gmp_primes_ptab): Likewise.
   1949 
   1950 2015-12-14  Torbjrn Granlund  <torbjorng (a] google.com>
   1951 
   1952 	* mpn/x86_64/fat/fat.c (gmp_workaround_skylake_cpuid_bug):
   1953 	New function.
   1954 	(__gmpn_cpuvec_init): Handle more BMI2 crippled CPUs.
   1955 
   1956 2015-12-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1957 
   1958 	* mpf/clears.c, mpf/inits.c, mpq/clears.c, mpq/inits.c,
   1959 	* mpz/clears.c, mpz/inits.c: Stop supporting empty list.
   1960 	* tests/arm32call.asm: bx->ret to support thumb-less chips
   1961 	  (thanks Martin Husemann).
   1962 
   1963 2015-12-13  Torbjrn Granlund  <torbjorng (a] google.com>
   1964 
   1965 	* config.sub: Fix spelling of kabylake.
   1966 	* acinclude.m4: Likewise.
   1967 	* mpn/x86_64/fat/fat.c: Likewise.
   1968 
   1969 2015-12-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1970 
   1971 	* tests/misc/t-printf.c: Test a sequence of '%'.
   1972 	* printf/doprnt.c: Avoid buffer overread with long long limbs.
   1973 
   1974 	* mpn/generic/toom_interpolate_7.c: Use the rsh1 functions,
   1975 	  when available, also for negatives (clearing the carry).
   1976 	* mpn/generic/toom_interpolate_12.c: Likewise.
   1977 	* mpn/generic/toom_interpolate_16.c: Likewise.
   1978 
   1979 2015-12-06  Torbjrn Granlund  <torbjorng (a] google.com>
   1980 
   1981 	* configure.ac (arm*): Conditionally define NOTHUMB.
   1982 	Simplify and generalise.
   1983 	* mpn/arm/arm-defs.m4 (ret): New macro, conditional on NOTHUMB.
   1984 	* mpn/arm/*.asm: Use ret.
   1985 
   1986 2015-12-03  Torbjrn Granlund  <torbjorng (a] google.com>
   1987 
   1988 	* config.guess: Work around skylake cpuid bug.
   1989 	Fix spelling of kabylake.
   1990 
   1991 2015-12-01  Torbjrn Granlund  <torbjorng (a] google.com>
   1992 
   1993 	* mpn/x86_64/coreibwl/mul_basecase.asm: Add FUNC_EXITs.
   1994 
   1995 2015-11-21 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   1996 
   1997 	* gmp-impl.h (MPN_TOOM22_MUL_MINSIZE): Consider ToomX2 limits
   1998 	  (thanks Paul).
   1999 	* tests/mpn/t-toom22.c: Keep on testing small sizes.
   2000 	* tests/mpz/t-primorial_ui.c: Test a single "large" number.
   2001 
   2002 	* tune/common.c (speed_mpz_primorial_ui): New function.
   2003 	* tune/speed.h: Declare it.
   2004 	* tune/speed.c (routine): Add mpz_primorial_ui.
   2005 
   2006 	* primesieve.c: Use two presieved patterns on 64-bits CPUs.
   2007 
   2008 2015-11-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2009 
   2010 	* mpq/init.c: Remove conditional code for __CHECKER__.
   2011 	* mpq/set.c: Shorten scope of local variables.
   2012 	* mpq/set_den.c: Likewise.
   2013 	* mpq/set_num.c: Likewise.
   2014 	* mpq/set_z.c: Likewise.
   2015 
   2016 	* primesieve.c: Fill sieve with a presieved 70bits pattern.
   2017 
   2018 2015-11-12  Marc Glisse  <marc.glisse (a] inria.fr>
   2019 
   2020 	* gmpxx.h (__gmp_fibonacci_function): New class.
   2021 	(fibonacci, mpz_class::fibonacci): New functions.
   2022 	(__gmp_fac_function, __gmp_primorial_function): Add braces.
   2023 	* tests/cxx/t-ops2z.cc: Test fibonacci.
   2024 	* doc/gmp.texi (C++ Interface Integers): Document fibonacci.
   2025 	Warn about factorial and primorial of negative numbers.
   2026 
   2027 2015-11-10  Marc Glisse  <marc.glisse (a] inria.fr>
   2028 
   2029 	* gmpxx.h (__gmp_primorial_function): Throw on negative operands.
   2030 	* tests/cxx/t-ops2z.cc: Test it.
   2031 
   2032 2015-11-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2033 
   2034 	* mpz: Experimental, lazy allocation.
   2035 
   2036 2015-11-09  Marc Glisse  <marc.glisse (a] inria.fr>
   2037 
   2038 	* tests/cxx/Makefile.am: Move EXTRA_DIST out of WANT_CXX.
   2039 
   2040 2015-11-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2041 
   2042 	* mpz/urandomm.c: Use mpn_zero_p to shorten code.
   2043 
   2044 2015-11-08  Marc Glisse  <marc.glisse (a] inria.fr>
   2045 
   2046 	* gmpxx.h (__gmp_fac_function, __gmp_primorial_function): New classes.
   2047 	(__GMPP_DECLARE_UNARY_STATIC_MEMFUN,
   2048 	__GMPNN_DECLARE_UNARY_STATIC_MEMFUN,
   2049 	__GMPNS_DECLARE_UNARY_STATIC_MEMFUN,
   2050 	__GMPNU_DECLARE_UNARY_STATIC_MEMFUN,
   2051 	__GMPND_DECLARE_UNARY_STATIC_MEMFUN,
   2052 	__GMPN_DECLARE_UNARY_STATIC_MEMFUN,
   2053 	__GMP_DECLARE_UNARY_STATIC_MEMFUN, __GMPP_DEFINE_UNARY_STATIC_MEMFUN,
   2054 	__GMPNN_DEFINE_UNARY_STATIC_MEMFUN,
   2055 	__GMPNS_DEFINE_UNARY_STATIC_MEMFUN,
   2056 	__GMPNU_DEFINE_UNARY_STATIC_MEMFUN,
   2057 	__GMPND_DEFINE_UNARY_STATIC_MEMFUN, __GMPN_DEFINE_UNARY_STATIC_MEMFUN,
   2058 	__GMP_DEFINE_UNARY_STATIC_MEMFUN): New macros.
   2059 	(factorial, mpz_class::factorial, primorial, mpz_class::primorial):
   2060 	New functions.
   2061 	* tests/cxx/t-ops2.cc: Test factorial and primorial.
   2062 	* tests/cxx/Makefile.am: Move t-ops2 after
   2063 	t-do-exceptions-work-at-all-with-this-compiler.
   2064 	* doc/gmp.texi: Document factorial and primorial.
   2065 	* NEWS: Likewise.
   2066 
   2067 	* tests/cxx/t-ops2.cc: Remove and split into ...
   2068 	* tests/cxx/t-ops2z.cc, tests/cxx/t-ops2qf.cc, tests/cxx/t-ops2f.cc,
   2069 	tests/cxx/t-ops2.h: New files.
   2070 	* tests/cxx/Makefile.am: Update for the split.
   2071 
   2072 2015-11-07  Marc Glisse  <marc.glisse (a] inria.fr>
   2073 
   2074 	* gmpxx.h (__GMP_DEFINE_UNARY_FUNCTION_1,
   2075 	__GMPP_DEFINE_BINARY_FUNCTION_1, __GMPNN_DEFINE_BINARY_FUNCTION_1,
   2076 	__GMPNS_DEFINE_BINARY_FUNCTION_1, __GMPNU_DEFINE_BINARY_FUNCTION_1,
   2077 	__GMPND_DEFINE_BINARY_FUNCTION_1, __GMPNLD_DEFINE_BINARY_FUNCTION_1,
   2078 	__GMPN_DEFINE_BINARY_FUNCTION_1, __GMP_DEFINE_BINARY_FUNCTION_1):
   2079 	New macros.
   2080 	(operator~, trunc, floor, ceil, sqrt, operator%, operator&, operator|,
   2081 	operator^, hypot, gcd, lcm): Use them.
   2082 
   2083 2015-11-06 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2084 
   2085 	* mpz/and.c: Use MPZ_NEWALLOC.
   2086 	* mpz/ior.c: Remove duplicated branches, add branch hints.
   2087 	* mpz/xor.c: Likewise, and use NORMALIZE_NOT_ZERO.
   2088 
   2089 	* mpz/init.c: Remove conditional code for __CHECKER__.
   2090 	* mpz/init2.c: Likewise.
   2091 	* mpz/inits.c: Likewise.
   2092 	* mpz/iset.c: Likewise.
   2093 	* mpz/iset_str.c: Likewise.
   2094 
   2095 2015-11-04  Torbjrn Granlund  <torbjorng (a] google.com>
   2096 
   2097 	* mpz/xor.c: Use MPZ_REALLOC.
   2098 	* mpz/ior.c: Likewise
   2099 
   2100 2015-11-03 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2101 
   2102 	* mpz/xor.c: Use the return value of _mpz_realloc.
   2103 	* mpz/ior.c: Likewise.
   2104 	* mpn/generic/sec_div.c: Remove unused var.
   2105 
   2106 2015-11-01  Torbjrn Granlund  <torbjorng (a] google.com>
   2107 
   2108 	* tests/misc.c (seed_from_tod, seed_from_urandom): New functions.
   2109 	(tests_rand_start): Use them.
   2110 
   2111 2015-11-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2112 
   2113 	* Version 6.1.0 released.
   2114 
   2115 	* mpz/inits.c [__CHECKER__]: Init limb, not pointer.
   2116 	* mpz/init.c [__CHECKER__]: Likewise (spotted by Vicente Benjumea).
   2117 	* tests/mpf/t-pow_ui.c: Use another mpf for the size limit.
   2118 
   2119 2015-10-30  Torbjrn Granlund  <torbjorng (a] google.com>
   2120 
   2121 	* mpf/pow_ui.c: Add log(e) precision bits.
   2122 
   2123 	* doc/gmp.texi (Floating-point): Rewrite mpf introduction.
   2124 
   2125 2015-10-29 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2126 
   2127 	* demos/factorize.c: mpz_div_2exp => mpz_tdiv_q_2exp.
   2128 	* demos/perl/GMP.xs: Likewise.
   2129 	* tests/mpf/t-pow_ui.c: Use reference value to check the size.
   2130 
   2131 	* doc/gmp.texi (Floating-point): Remove "infinite precision" claim.
   2132 
   2133 	* gmp-h.in: Update version.
   2134 
   2135 2015-10-28  Torbjrn Granlund  <torbjorng (a] google.com>
   2136 
   2137 	* tests/mpf/t-pow_ui.c: New file.
   2138 	* tests/mpf/Makefile.am (check_PROGRAMS): Compile it.
   2139 
   2140 	* mpf/pow_ui.c: Rewrite for accuracy and performance.
   2141 
   2142 2015-10-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2143 
   2144 	* configfsf.guess: Updated to version 2015-10-21, for a typo.
   2145 
   2146 	* tests/cxx/t-ops.cc (check_mpq): Compare also with mpz.
   2147 	(check_mpf): Compare also with mpz and mpq.
   2148 
   2149 2015-10-25  Torbjrn Granlund  <torbjorng (a] google.com>
   2150 
   2151 	* configure.ac: Avoid passing ambiguous -march=skylake.
   2152 
   2153 2015-10-21 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2154 
   2155 	* Version 6.1.0-rc1 published.
   2156 
   2157 	* gmp-h.in: Revert version for RC.
   2158 
   2159 2015-10-20  Torbjrn Granlund  <torbjorng (a] google.com>
   2160 
   2161 	* mpn/x86/pentium4/sse2/popcount.asm: Use LEAL.
   2162 	* mpn/x86/k7/invert_limb.asm: Likewise.
   2163 
   2164 2015-10-18  Torbjrn Granlund  <torbjorng (a] google.com>
   2165 
   2166 	* mpn/arm64/gmp-mparam.h: New file.
   2167 
   2168 2015-10-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2169 
   2170 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   2171 	* gmp-h.in: Bump version.
   2172 
   2173 2015-10-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2174 
   2175 	* tests/mpf/t-cmp_si.c: Initialise a variable (only when error arise)
   2176 	* mpn/generic/toom43_mul.c: Insert parentheses around & expressions.
   2177 	* mpn/generic/toom52_mul.c: Likewise.
   2178 	* tests/mpn/t-minvert.c: Remove an unused var.
   2179 	* tests/mpz/t-cong_2exp.c: Likewise.
   2180 
   2181 2015-10-16  Hans Wennborg <hwennborg at google.com>
   2182 
   2183 	* mpn/generic/div_qr_2.c: Insert parentheses around & expressions.
   2184 	* mpn/generic/toom44_mul.c: Likewise.
   2185 	* mpn/generic/toom53_mul.c: Likewise.
   2186 	* mpn/generic/toom62_mul.c: Likewise.
   2187 	* tests/mpn/t-bdiv.c: Simplify conditional printing of whitespace.
   2188 	* tests/mpn/t-div.c: Likewise.
   2189 
   2190 2015-10-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2191 
   2192 	* configfsf.sub: Updated to version 2015-08-20, from gnulib.
   2193 	* configfsf.guess: Updated to version 2015-09-14, from gnulib.
   2194 
   2195 2015-10-14  Torbjrn Granlund  <torbjorng (a] google.com>
   2196 
   2197 	* demos/pexpr.c (main): Clear out a variable.
   2198 
   2199 	* mpn/generic/sqrlo_basecase.c: Move things before addmul_1 to reduce
   2200 	register pressure.
   2201 
   2202 	* .hgignore: Add 'compile' and 'test-driver'.
   2203 
   2204 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify, add ASSERT.
   2205 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
   2206 
   2207 	* tune/tuneup.c (tune_mu_bdiv): Start at measured BDIV_DC_ thresholds.
   2208 
   2209 2015-10-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2210 
   2211 	* mpf/clears.c, mpf/inits.c, mpq/clears.c, mpq/inits.c,
   2212 	* mpz/clears.c, mpz/inits.c: Keep on supporting empty list.
   2213 
   2214 2015-10-13  Marc Glisse  <marc.glisse (a] inria.fr>
   2215 
   2216 	* gmpxx.h (__GMPP_DEFINE_BINARY_TYPE_FUNCTION): Allow mixed operations.
   2217 	(__gmp_cmp_function, __gmp_binary_equal, __gmp_binary_less):
   2218 	Handle mixed operations.
   2219 	(__gmp_cmp_function): Move before __gmp_binary_equal.
   2220 
   2221 2015-10-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2222 
   2223 	* mpf/pow_ui.c: Increased precision of partial results.
   2224 
   2225 2015-10-12  Torbjrn Granlund  <torbjorng (a] google.com>
   2226 
   2227 	* configure.ac: Reject AVX for NetBSD.
   2228 
   2229 2015-10-11  Torbjrn Granlund  <torbjorng (a] google.com>
   2230 
   2231 	* configure.ac (fat_path): Add skylake.
   2232 
   2233 2015-10-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2234 
   2235 	* gen-fib.c: Correct the name of the program in error message.
   2236 	* gen-fac.c: Likewise.
   2237 
   2238 	* mpf/get_str.c: Increase precision of base^e computation.
   2239 
   2240 2015-10-09  Torbjrn Granlund  <torbjorng (a] google.com>
   2241 
   2242 	* config.guess: Recognise cabylake and goldmont and more versions of
   2243 	skylake and silvermont.
   2244 	* acinclude.m4 (X86_64_PATTERN): Add cabylake and goldmont.
   2245 	* config.sub: Corresponding changes.
   2246 	* configure.ac: Corresponding changes.
   2247 	* mpn/x86_64/fat/fat.c: Corresponding changes.
   2248 
   2249 2015-09-12  Torbjrn Granlund  <torbjorng (a] google.com>
   2250 
   2251 	* mpf/clear.c, mpf/clears.c, mpf/inits.c, mpq/clear.c, mpq/clears.c
   2252 	* mpq/inits.c, mpz/clear.c, mpz/clears.c, mpz/inits.c:
   2253 	Streamline, use macros.
   2254 
   2255 2015-09-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2256 
   2257 	* mpz/cfdiv_r_2exp.c: Use mpn_neg and MPZ_NEWALLOC.
   2258 	* mpz/cfdiv_q_2exp.c: Use MPZ_REALLOC return value.
   2259 
   2260 2015-09-12  Torbjrn Granlund  <torbjorng (a] google.com>
   2261 
   2262 	* tests/mpf/t-cmp_si.c (check_data): Set precision reflecting data.
   2263 
   2264 2015-09-11 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2265 
   2266 	* mpf/cmp_z.c: New file implementing mpf_cmp_z.
   2267 	* mpf/Makefile.am (libmpf_la_SOURCES): Add it.
   2268 	* Makefile.am (MPF_OBJECTS): Add generate object to libs.
   2269 	* gmp-h.in: Declare new function.
   2270 	* tests/mpf/t-cmp_si.c: Test also the new function.
   2271 	* doc/gmp.texi: Document it.
   2272 
   2273 2015-09-06  Torbjrn Granlund  <torbjorng (a] google.com>
   2274 
   2275 	* Wrap remaining limb allocations in __GMP_ALLOCATE_FUNC_LIMBS.
   2276 
   2277 	* mpn/x86/fat/fat.c (fake_cpuid_table): Add missing commas.
   2278 	* mpn/x86_64/fat/fat.c: Likewise.
   2279 
   2280 	* mpn/x86/fat/fat.c (fake_cpuid_table): Improve struct type.
   2281 	* mpn/x86/fat/fat.c: Likewise.
   2282 
   2283 2015-09-03 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2284 
   2285 	* tests/mpq/t-cmp_z.c (sizes_test): New function, tests sizes.
   2286 
   2287 2015-09-03  Torbjrn Granlund  <torbjorng (a] google.com>
   2288 
   2289 	* acinclude.m4 (GMP_C_HIDDEN_ALIAS): New.
   2290 	* configure.ac (GMP_C_HIDDEN_ALIAS): Invoke.
   2291 
   2292 2015-09-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2293 
   2294 	* mpq/cmp.c (mpq_cmp_numden): Cast to avoid over/underflow.
   2295 	* tests/mpn/t-toom22.c (MIN_AN): Use defined value.
   2296 	* tests/mpz/t-fac_ui.c: Check big factorial modulo a larger prime.
   2297 	* mpn/generic/bsqrtinv.c: Use sqrlo+mullo_n instead of powlo(,,3,,).
   2298 	* mpq/div.c: Move a branch out of the normal flow.
   2299 
   2300 2015-08-31  Torbjrn Granlund  <torbjorng (a] google.com>
   2301 
   2302 	* mpn/x86/fat/fat.c (fake_cpuid_table): Update similarly to
   2303 	corresponding x86_64 code.
   2304 
   2305 2015-08-31 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2306 
   2307 	* mpq/cmp.c (mpq_cmp_z): New function to compare mpq with mpz,
   2308 	asked by Vincent Delecroix for the SageMath project.
   2309 	* gmp-h.in: Declare it.
   2310 	* doc/gmp.texi: Document it.
   2311 	* tests/mpq/t-cmp_z.c: New file to test mpq_cmp_z (from t-cmp.c).
   2312 	* tests/mpq/Makefile.am (check_PROGRAMS): Add t-cmp_z.
   2313 
   2314 	* mpn/generic/powlo.c: Use mpn_sqrlo.
   2315 
   2316 2015-08-29  Torbjrn Granlund  <torbjorng (a] google.com>
   2317 
   2318 	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add CPU aliases.
   2319 
   2320 2015-08-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2321 
   2322 	* configure.ac (AH_VERBATIM): Add HAVE_NATIVE_mpn_mullo_basecase.
   2323 	* mpn/generic/sqrlo.c (mpn_sqrlo): Use mullo_basecase when faster.
   2324 	* mpn/generic/sqrlo_basecase.c: More readable #defines.
   2325 
   2326 	* tune/tuneup.c (tune_sqrlo): New function to tune sqrlo thresholds.
   2327 	(all): Call it, after multiplication and FFT.
   2328 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrlo{,_basecase}.c .
   2329 	* gmp-impl.h: Add all SQRLO_*_THRESHOLD* defs, for tuning and default.
   2330 	* mpn/generic/sqrlo.c: Remove default threshold definitions.
   2331 	* mpn/generic/sqrlo_basecase.c: Use SQRLO_DC_THRESHOLD_LIMIT.
   2332 	* mpn/minithres/gmp-mparam.h: New SQRLO_*_THRESHOLDs.
   2333 
   2334 	* tune/tuneup.c (tune_mullo): Set MULLO_MUL_N_THRESHOLD to never
   2335 	whenever the FFT threshold does not exist.
   2336 
   2337 	* mpf/cmp.c: Remove some branches.
   2338 
   2339 2015-08-25  Torbjrn Granlund  <torbjorng (a] google.com>
   2340 
   2341 	* mpn/x86_64/x86_64-defs.m4: Output computed numbers in base-10 instead
   2342 	of base-16 to avoid bugs on Solaris, FreeBSD, and old NetBSD.
   2343 
   2344 2015-08-23  Torbjrn Granlund  <torbjorng (a] google.com>
   2345 
   2346 	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Add more entries, handle
   2347 	Broadwell separately.
   2348 
   2349 	* configure.ac (fat_path): Add coreibwl.
   2350 
   2351 2015-08-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2352 
   2353 	* mpn/generic/rootrem.c (logbased_root): New function.
   2354 	(mpn_rootrem_internal): Use it to estimate highest 9 bits of the root.
   2355 
   2356 	* gmp-impl.h (MPQ_PTR_SWAP, MPQ_SRCPTR_SWAP): New macros.
   2357 
   2358 2015-08-17  Torbjrn Granlund  <torbjorng (a] google.com>
   2359 
   2360 	* acinclude.m4 (X86_64_PATTERN): Add skylake.
   2361 	* config.guess: Corresponding changes.
   2362 	* config.sub: Corresponding changes.
   2363 	* configure.ac: Corresponding changes.
   2364 	* mpn/x86_64/skylake/gmp-mparam.h: New file.
   2365 
   2366 2015-08-15  Torbjrn Granlund  <torbjorng (a] google.com>
   2367 
   2368 	* mpn/generic/mullo_basecase.c: Provide alternative code, make default.
   2369 
   2370 2015-08-04 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2371 
   2372 	* tests/refmpn.c (refmpn_sqrlo): New function.
   2373 	* tests/tests.h: Define it.
   2374 
   2375 	* mpn/generic/sqrlo.c: New file, new function.
   2376 	* mpn/generic/sqrlo_basecase.c: New file, new function.
   2377 	* gmp-impl.h (mpn_sqrlo, mpn_sqrlo_basecase): Declare them.
   2378 	* configure.ac (gmp_mpn_functions): Add new files.
   2379 
   2380 	* tests/mpn/t-sqrlo.c: New file, new test.
   2381 	* tests/mpn/Makefile.am (check_PROGRAMS): Add new test.
   2382 	* tests/devel/try.c: Support mpn_sqrlo and mpn_sqrlo_basecase.
   2383 
   2384 	* tune/common.c (speed_mpn_sqrlo{,_basecase}): New functions.
   2385 	* tune/speed.c: Support new functions.
   2386 	* tune/speed.h (SPEED_ROUTINE_MPN_MULLO_BASECASE): Update.
   2387 	(SPEED_ROUTINE_MPN_SQRLO): New macro.
   2388 
   2389 	* mpn/generic/rootrem.c: Avoid divisions if not needed.
   2390 
   2391 	* tests/mpn/t-broot.c: Test also k=1.
   2392 	* mpz/aorsmul_i.c: Move branches out of main line.
   2393 
   2394 2015-07-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2395 
   2396 	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): Support odd sizes.
   2397 
   2398 2015-07-16  Torbjrn Granlund  <torbjorng (a] google.com>
   2399 
   2400 	* tune/speed.c: Remove now redundant MPN_FILL.
   2401 
   2402 	* configure.ac (hppa-hpux): Never use O3 optimisation.
   2403 
   2404 2015-07-09  Torbjrn Granlund  <torbjorng (a] google.com>
   2405 
   2406 	* mpn/ia64/add_n_sub_n.asm: Make it work for HP-UX.
   2407 	* mpn/ia64/addmul_2.asm: Likewise.
   2408 	* mpn/ia64/aors_n.asm: Likewise.
   2409 	* mpn/ia64/aorsorrlshC_n.asm: Likewise.
   2410 	* mpn/ia64/cnd_aors_n.asm: Likewise.
   2411 	* mpn/ia64/gcd_1.asm: Likewise.
   2412 	* mpn/ia64/lshiftc.asm: Likewise.
   2413 	* mpn/ia64/mod_34lsub1.asm: Likewise.
   2414 	* mpn/ia64/mul_2.asm: Likewise.
   2415 	* mpn/ia64/sec_tabselect.asm: Likewise.
   2416 	* mpn/ia64/sqr_diag_addlsh1.asm: Likewise.
   2417 
   2418 2015-07-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2419 
   2420 	* gmp-impl.h (MPN_FILL): New macro, generalise MPN_ZERO.
   2421 
   2422 	* mpn/generic/sqrtrem.c (mpn_dc_sqrt): New function not computing remainder.
   2423 	(mpn_dc_sqrtrem): Use tdiv_q instead of divrem, use given scratch space.
   2424 	(mpn_sqrtrem): Use mpn_dc_sqrt for both even and odd sizes.
   2425 
   2426 2015-06-24  Torbjrn Granlund  <torbjorng (a] google.com>
   2427 
   2428 	* mpn/x86_64/fastsse/com.asm: Disallow zero size operands.
   2429 
   2430 	* mpn/x86_64/fastsse/copyi.asm: Suppress looping in basecase code.
   2431 
   2432 2015-06-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2433 
   2434 	* mpn/generic/sqrtrem.c (mpn_sqrtrem2): Simplify branches.
   2435 	(mpn_dc_sqrtrem): Don't compute remainder if not needed.
   2436 
   2437 2015-06-23  Torbjrn Granlund  <torbjorng (a] google.com>
   2438 
   2439 	* gmp-impl.h: Remove K&R stringize support.
   2440 	* tests/devel/try.c: Likewise.
   2441 	* tests/t-constants.c: Likewise.
   2442 	* tests/mpf/t-fits.c: Likewise.
   2443 	* tests/mpz/t-fits.c: Likewise.
   2444 
   2445 	* configure.ac (AC_C_STRINGIZE): Remove.
   2446 
   2447 2015-06-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2448 
   2449 	* tests/devel/try.c: Support mpn_sqrt (sqrtrem with remainder = NULL).
   2450 	* mpn/generic/sqrtrem.c: Reorder branches for single limb operands.
   2451 
   2452 2015-06-15  Torbjrn Granlund  <torbjorng (a] google.com>
   2453 
   2454 	* config.guess: Rewrite code for AVX handling to deal with broken cpuid
   2455 	states.
   2456 
   2457 2015-06-11  Torbjrn Granlund  <torbjorng (a] google.com>
   2458 
   2459 	* mpn/x86/k7/gcd_1.asm: Align stack for calls.
   2460 	* mpn/x86/p6/gcd_1.asm: Amend last change: align for PIC and non-PIC.
   2461 
   2462 2015-06-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2463 
   2464 	* mpn/generic/sqrtrem.c: Use sqrtrem1 for single limb operands.
   2465 
   2466 	* tests/mpz/t-root.c: Check also mpz_root return value.
   2467 	* mpn/generic/rootrem.c: Shorten first and last loop.
   2468 
   2469 	* mpn/generic/toom2_sqr.c: Add some ASSERTs.
   2470 	* mpn/generic/toom22_mul.c: Likewise.
   2471 	* tests/mpn/t-toom22.c: stop testing some unsafe (unused) corner cases.
   2472 
   2473 2015-06-08  Torbjrn Granlund  <torbjorng (a] google.com>
   2474 
   2475 	* mpn/x86/p6/gcd_1.asm: Align stack for calls.
   2476 
   2477 2015-06-06  Torbjrn Granlund  <torbjorng (a] google.com>
   2478 
   2479 	* config.sub: Recognise any arm*neon CPU.
   2480 	* configure.ac (powerpc): Add p8 directory for power8 and later.
   2481 	* mpn/powerpc64/mode64/p8/invert_limb.asm: New file.
   2482 
   2483 2015-06-01  Torbjrn Granlund  <torbjorng (a] google.com>
   2484 
   2485 	* tune/speed.c (routine): Measure "mpn_sqrt" and "mpn_root", which are
   2486 	really the corresponding "rem" functions with NULL remainder argument.
   2487 
   2488 	* tune/speed.h (SPEED_ROUTINE_MPN_SQRTROOT_CALL): New.
   2489 	(SPEED_ROUTINE_MPN_SQRTREM, SPEED_ROUTINE_MPN_ROOTREM):	Remove.
   2490 
   2491 	* tune/common.c (speed_mpn_sqrt, speed_mpn_root): New functions.
   2492 	(speed_mpn_sqrtrem): Use SPEED_ROUTINE_MPN_SQRTROOT_CALL
   2493 	(speed_mpn_rootrem): Likewise.
   2494 
   2495 2015-05-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2496 
   2497 	* mpf/cmp_ui.c: Use macros, remove branches, correct nails.
   2498 	* mpf/cmp_si.c: Likewise.
   2499 	* mpf/int_p.c: Use a simpler loop to ignore zero limbs.
   2500 
   2501 	* mpf/sqrt_ui.c: Special case for sqrt(1).
   2502 	* tests/mpf/t-sqrt_ui.c: Test special cases.
   2503 
   2504 	* gmp-h.in: Declare (and inline) mpn_zero_p.
   2505 	* gmp-impl.h: Remove mpn_zero_p.
   2506 	* mpn/generic/zero_p: New file to include the function in the library.
   2507 	* configure.ac (gmp_mpn_functions): Add it.
   2508 	* doc/gmp.texi: Document it.
   2509 
   2510 	* mpz/combit.c: Call mpn_zero_p only if size is not zero.
   2511 	* mpz/scan1.c: Likewise.
   2512 	* tests/mpn/t-brootinv.c: Likewise.
   2513 	* tests/mpn/t-div.c: Likewise.
   2514 	* tests/mpn/t-minvert.c: Likewise.
   2515 
   2516 2015-05-28  Niels Mller  <nisse (a] lysator.liu.se>
   2517 
   2518 	* doc/gmp.texi (Low-level Functions): Document mpn_divexact_1 and
   2519 	mpn_cnd_swap (the latter was forgotten for the 2015-02-08 change).
   2520 
   2521 2015-05-28  Linus Nordberg  <linus (a] nordberg.se>
   2522 
   2523 	* configure.ac: Remove double quotes in help strings, make some
   2524 	clarifications.
   2525 
   2526 2015-05-24 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2527 
   2528 	* mpq/div.c: Reduce memory use.
   2529 	* tests/mpq/reuse.c: Test also mpq_FUNCTION (x,x,x).
   2530 	* mpz/swap.c: Use _SWAP macros.
   2531 
   2532 2015-05-18  Torbjrn Granlund  <torbjorng (a] google.com>
   2533 
   2534 	* configure.ac (arm): Let compiler decide about arm vs thumb encoding.
   2535 
   2536 2015-05-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2537 
   2538 	* gmp-h.in (mpn_neg): Niels' code using mpn_neg.
   2539 	* gmp-h.in (mpn_com): Unconditionally declare prototype.
   2540 
   2541 2015-05-17  Torbjrn Granlund  <torbjorng (a] google.com>
   2542 
   2543 	* mpn/arm/v6/sqr_basecase.asm: Rewrite for speed.
   2544 
   2545 2015-05-16  Torbjrn Granlund  <torbjorng (a] google.com>
   2546 
   2547 	* mpn/arm/v6/addmul_2.asm: Rewrite for speed and size.
   2548 
   2549 2015-05-15  Torbjrn Granlund  <torbjorng (a] google.com>
   2550 
   2551 	* mpn/arm/v7a/cora7/gmp-mparam.h: New file.
   2552 	* mpn/arm/v7a/cora8/gmp-mparam.h: New file.
   2553 	* configure.ac (arm): Point to new directories.
   2554 
   2555 2015-05-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2556 
   2557 	* mpn/generic/invertappr.c: Reduce memory usage.
   2558 	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.
   2559 	* tune/tuneup.c (tune_invertappr, tune_invert): Update min_size.
   2560 
   2561 	* mpn/generic/mu_div_qr.c: Pass scratch memory to mpn_invertappr.
   2562 	* mpn/generic/mu_divappr_q.c: Likewise.
   2563 
   2564 2015-05-12  Felix Janda  <felix.janda (a] posteo.de>
   2565 
   2566 	* mpn/powerpc32/elf.m4 (LEA): Adopt to new ABI.
   2567 
   2568 2015-05-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2569 
   2570 	* mpn/generic/invertappr.c: Reduce memory usage.
   2571 	* gmp-impl.h (mpn_invertappr_itch): Update accordingly.
   2572 
   2573 2015-05-01  Torbjrn Granlund  <torbjorng (a] google.com>
   2574 
   2575 	* tune/tuneup.c (all): Make GCD tuning last since it is not robust.
   2576 
   2577 2015-04-27  Torbjrn Granlund  <torbjorng (a] google.com>
   2578 
   2579 	* mpn/x86_64/coreibwl/gmp-mparam.h: New file.
   2580 
   2581 2015-04-26  Torbjrn Granlund  <torbjorng (a] google.com>
   2582 
   2583 	* mpn/x86_64/coreibwl/mul_basecase.asm: New file.
   2584 	* mpn/x86_64/coreibwl/sqr_basecase.asm: New file.
   2585 
   2586 2015-04-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2587 
   2588 	* tune/common.c (speed_mpn_neg, speed_mpz_2fac_ui): New functions.
   2589 	(speed_mpn_add_1, speed_mpn_add_1_inplace): New functions.
   2590 	(speed_mpn_sub_1, speed_mpn_sub_1_inplace): New functions.
   2591 	* tune/speed.h: Declare them all.
   2592 	* tune/speed.c (routine): Added mpn_neg, mpn_add_1, mpn_sub_1,
   2593 	mpn_add_1_inplace, mpn_sub_1_inplace, and mpz_2fac_ui.
   2594 
   2595 2015-04-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2596 
   2597 	* mpn/generic/invert.c: Split add in the correction test.
   2598 	* mpn/generic/invertappr.c: Cleanup of loops and branches.
   2599 
   2600 	* mpn/generic/hgcd_reduce.c: Use TMP_ALLOC_LIMBS_3.
   2601 	* mpn/generic/powm.c: Use TMP_ALLOC_LIMBS_2.
   2602 	* mpn/generic/rootrem.c: Likewise.
   2603 	* mpn/generic/remove.c: Remove redundant #ifdef.
   2604 	* mpn/generic/perfpow.c: Likewise.
   2605 
   2606 2015-04-21  Torbjrn Granlund  <torbjorng (a] google.com>
   2607 
   2608 	* printf/sprintffuns.c (gmp_sprintf_final): Remove extra parameters.
   2609 
   2610 	* mpn/arm/v6/popham.asm: Add MULFUNC_PROLOGUE.
   2611 	* mpn/powerpc64/mode64/rsh1aors_n.asm: Likewise.
   2612 	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: Likewise.
   2613 
   2614 2015-04-19  Torbjrn Granlund  <torbjorng (a] google.com>
   2615 
   2616 	* mpn/x86_64/x86_64-defs.m4 (oplist): Fix typo.
   2617 	(mulx): Simplify.
   2618 	(adcx, adox): New defines, using helper function adx.
   2619 	* mpn/x86_64/coreibwl/mul_1.asm: New file.
   2620 	* mpn/x86_64/coreibwl/addmul_1.asm: New file.
   2621 	* configure.ac (x86_64): Put coreibwl in appropriate code path.
   2622 
   2623 	* configure.ac (x86_64): Pass more exact Intel CPU options.
   2624 
   2625 2015-04-13  Torbjrn Granlund  <torbjorng (a] google.com>
   2626 
   2627 	* longlong.h (arm): Rewrite.  Support thumb2; use gcc builtins for
   2628 	count_leading_zeros, use accurate code selection critera.
   2629 
   2630 2015-04-13  Marc Glisse  <marc.glisse (a] inria.fr>
   2631 
   2632 	* configure.ac (x86_64): Extend noavx to ABI=64.
   2633 
   2634 2015-04-10  Torbjrn Granlund  <torbjorng (a] google.com>
   2635 
   2636 	* mpn/alpha/ev6/mod_1_4.asm: Use LDGP.
   2637 
   2638 2015-04-01  Torbjrn Granlund  <torbjorng (a] google.com>
   2639 
   2640 	* configure.ac (sparc): Don't use use -xO4, it miscompiles by design.
   2641 
   2642 2015-03-24  Torbjrn Granlund  <torbjorng (a] google.com>
   2643 
   2644 	* mpn/generic/mul_fft.c (mpn_fft_best_k): Don't make pointers `static'
   2645 	just because they point to static (i.e., file-local) data.
   2646 
   2647 2015-03-15  Torbjrn Granlund  <torbjorng (a] google.com>
   2648 
   2649 	* acinclude.m4 (X86_64_PATTERN): Add CPU code names.
   2650 
   2651 	* config.guess: Add more CPUs, use CPU code names.
   2652 	* config.sub: Corresponding changes.
   2653 	* configure.ac: Corresponding changes.
   2654 
   2655 2015-02-21  Niels Mller  <nisse (a] lysator.liu.se>
   2656 
   2657 	* gmp-h.in (mpn_divexact_1): New public declaration.
   2658 	* gmp-impl.h: Moved from here.
   2659 
   2660 2015-02-08  Niels Mller  <nisse (a] lysator.liu.se>
   2661 
   2662 	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_swap.
   2663 
   2664 	* mpn/generic/cnd_swap.c (mpn_cnd_swap): New file, moved function
   2665 	here. Also changed cnd argument type from int to mp_limb_t.
   2666 	* mpn/generic/sec_invert.c (mpn_cnd_swap): Old location.
   2667 	* configure.ac: Added cnd_swap.
   2668 	* gmp-h.in (mpn_cnd_swap): Added prototype.
   2669 
   2670 2015-01-19  Torbjrn Granlund  <torbjorng (a] google.com>
   2671 
   2672 	* configure.ac (arm): Provide architecture specific configs in addition
   2673 	to implementation specific configs.
   2674 
   2675 	* config.guess (arm): Use configfsf.guess's guess as default before
   2676 	conditionally appending "neon".
   2677 
   2678 2015-01-08  Torbjrn Granlund  <torbjorng (a] google.com>
   2679 
   2680 	* config.guess: Match POWER8 for AIX.
   2681 
   2682 	* longlong.h: Add many casts inside assembly input operands, this
   2683 	insures proper zero extension.
   2684 
   2685 2014-12-27  Marc Glisse  <marc.glisse (a] inria.fr>
   2686 
   2687 	* gmpxx.h (__gmp_unary_expr): Use __gmp_resolve_ref.
   2688 	(__gmp_expr): New specialization for unary expressions with
   2689 	a builtin argument.
   2690 
   2691 2014-12-26  Marc Glisse  <marc.glisse (a] inria.fr>
   2692 
   2693 	* gmp-impl.h (tmp_debug_entry_t): Change block to type void*.
   2694 
   2695 2014-12-22  Torbjrn Granlund  <torbjorng (a] google.com>
   2696 
   2697 	* longlong.h (mips64, mips32): Work around one clang bug.
   2698 
   2699 2014-12-18  Torbjrn Granlund  <torbjorng (a] google.com>
   2700 
   2701 	* longlong.h (umul_ppmm): Use input temps in more places.
   2702 
   2703 2014-12-10  Marc Glisse  <marc.glisse (a] inria.fr>
   2704 
   2705 	* tests/cxx/clocale.c (localeconv, nl_langinfo): Match glibc's
   2706 	prototype in C++.
   2707 
   2708 2014-12-09  Torbjrn Granlund  <torbjorng (a] google.com>
   2709 
   2710 	* configure.ac (powerpc): Remove hardwired -mpowerpc, causes clang
   2711 	problems.  Optionally pass -m32.
   2712 
   2713 2014-12-08  Marc Glisse  <marc.glisse (a] inria.fr>
   2714 
   2715 	* config.guess (ultrasparc*-*-*): Update for T4 and T5.
   2716 	* config.sub (ultrasparc*-*-*): Update for T5.
   2717 	* configure.ac (ultrasparc*-*-*): Update for T5.
   2718 
   2719 	* longlong.h (sparc64): Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB
   2720 	with VIS3.
   2721 
   2722 	* tests/misc/t-locale.c (localeconv, nl_langinfo): Match glibc's
   2723 	prototype in C++.
   2724 	* tests/mpf/t-get_si.c (check_limbdata): Avoid narrowing conversion
   2725 	from -1 to unsigned inside {}.
   2726 
   2727 2014-12-02  Torbjrn Granlund  <torbjorng (a] google.com>
   2728 
   2729 	* config.guess (arm*-*-*): Redirect stderr.
   2730 
   2731 2014-11-26  Torbjrn Granlund  <torbjorng (a] google.com>
   2732 
   2733 	* configure.ac (arm*-*-*): Optionally pass redundant fpu mode options
   2734 	in order to placate clang.
   2735 
   2736 	* mpn/arm/neon/lshiftc.asm: Avoid insn form missing from clang.
   2737 
   2738 2014-11-24  Torbjrn Granlund  <torbjorng (a] google.com>
   2739 
   2740 	* configure.ac (mips*-*-*): Provide ABI synonyms (for clang pretending
   2741 	to be gcc).
   2742 
   2743 2014-11-18  Torbjrn Granlund  <torbjorng (a] google.com>
   2744 
   2745 	From Hannes Mehnert:
   2746 	* config.guess (arm*-*-*): Base guesses on first matching /proc/cpuinfo
   2747 	line.
   2748 
   2749 2014-11-17  Torbjrn Granlund  <torbjorng (a] google.com>
   2750 
   2751 	* longlong.h (__longlong_h_C): New macro.
   2752 	(mpn_umul_ppmm, etc): Use it for C++ support.
   2753 
   2754 2014-11-15  Torbjrn Granlund  <torbjorng (a] google.com>
   2755 
   2756 	* tests/mpz/reuse.c: Make function vectors 'static'.
   2757 
   2758 	* tests/mpn/logic.c (check_one): Make string variable 'const'.
   2759 
   2760 	* tests/mpz/t-perfpow.c (tests): Make 'static'.
   2761 
   2762 	* tune/tuneup.c (fftmes): Remove an unused variable.
   2763 
   2764 2014-11-15  Marc Glisse  <marc.glisse (a] inria.fr>
   2765 
   2766 	* tests/amd64check.c (calling_conventions_fenv): Mark as extern "C".
   2767 	* tests/x86check.c (calling_conventions_fenv): Likewise.
   2768 
   2769 2014-11-13  Hans Wennborg  <hwennborg (a] google.com>
   2770 
   2771 	* mpn/generic/toom_interpolate_8pts.c: Fix operator precedence in
   2772 	ASSERT.
   2773 
   2774 2014-11-13  Torbjrn Granlund  <torbjorng (a] google.com>
   2775 
   2776 	* tune/speed.h: Add casts for C++ compatibility.
   2777 	(speed_cyclecounter): Mark as extern "C".
   2778 	(mpn_mod_1_1p_1, mpn_mod_1_1p_2): Correct prototype.
   2779 
   2780 	* tune/tune-gcd-p.c: Add casts for C++ compatibility.
   2781 
   2782 	* tune/tuneup.c: Add casts for C++ compatibility.
   2783 	(mpn_divrem_1_tune, mpn_mod_1_tune): Mark as extern "C".
   2784 	(INSERT_FFTTAB): Produce sentinels differently to silence compiler.
   2785 
   2786 2014-11-12  Torbjrn Granlund  <torbjorng (a] google.com>
   2787 
   2788 	* gen-psqr.c: Add casts for C++ compatibility.
   2789 
   2790 	* tests/misc/t-scanf.c: Include config.h early for HAVE_xxx.
   2791 
   2792 2014-11-08  Torbjrn Granlund  <torbjorng (a] google.com>
   2793 
   2794 	* mpn/x86/x86-defs.m4 (LEA, LEAL): Make sure to put eip stub code in
   2795 	text segment.
   2796 	* mpn/x86/darwin.m4: Likewise.
   2797 
   2798 	* tune/speed.h (i386 speed_cyclecounter): Remove inline asm code, rely
   2799 	on external version.
   2800 
   2801 2014-11-06  Torbjrn Granlund  <torbjorng (a] google.com>
   2802 
   2803 	* config.guess: Ignore appended letters such E in POWER8E.
   2804 	* configure.ac: Supply cflags for power8, power9.
   2805 
   2806 2014-11-03  Torbjrn Granlund  <torbjorng (a] google.com>
   2807 
   2808 	* mpn/powerpc32/addmul_1.asm: Avoid negative stack pointer references.
   2809 	* mpn/powerpc32/lshift.asm: Likewise.
   2810 	* mpn/powerpc32/lshiftc.asm: Likewise.
   2811 	* mpn/powerpc32/p3-p7/aors_n.asm: Likewise.
   2812 	* mpn/powerpc32/rshift.asm: Likewise.
   2813 	* mpn/powerpc32/sec_tabselect.asm: Likewise.
   2814 	* mpn/powerpc32/submul_1.asm: Likewise.
   2815 	* mpn/powerpc32/vmx/mod_34lsub1.asm: Likewise.
   2816 
   2817 2014-10-13  Torbjrn Granlund  <torbjorng (a] google.com>
   2818 
   2819 	* acinclude.m4 (freebsd hacked gcc): Test for crash-prone FreeBSD gcc.
   2820 
   2821 2014-10-03  Peter Breitenlohner <peb (a] mppmu.mpg.de>
   2822 
   2823 	* mpn/generic/sec_tabselect.c: Adjust type to silence compiler.
   2824 
   2825 2014-10-01  Torbjrn Granlund  <torbjorng (a] google.com>
   2826 
   2827 	* All Makefile.am: INCLUDES => AM_CPPFLAGS.
   2828 
   2829 	* configure.ac (arm64): Set gcc_cflags_maybe to enable Neon (for clang
   2830 	pretending to be gcc).
   2831 
   2832 2014-09-24  Marc Glisse  <marc.glisse (a] inria.fr>
   2833 
   2834 	* longlong.h (arm64 count_trailing_zeros, count_leading_zeros): Use
   2835 	gcc's builtins.
   2836 	(arm64 umul_ppmm): Use macro arguments only once.
   2837 
   2838 2014-09-22  Marc Glisse  <marc.glisse (a] inria.fr>
   2839 
   2840 	* mpn/arm64/lshift.asm: Avoid negative immediates.
   2841 	* mpn/arm64/rshift.asm: Likewise.
   2842 
   2843 2014-09-13  Marc Glisse  <marc.glisse (a] inria.fr>
   2844 
   2845 	* mpn/generic/div_qr_1n_pi1.c: Honor NO_ASM.
   2846 	* mpn/generic/div_qr_1n_pi2.c: Likewise.
   2847 	* mpn/generic/div_qr_1u_pi2.c: Likewise.
   2848 	* mpn/generic/div_qr_2.c: Likewise.
   2849 	* mpn/generic/mod_1_1.c: Likewise.
   2850 	* mpn/generic/redc_2.c: Likewise.
   2851 
   2852 2014-08-31  Torbjrn Granlund  <tege (a] gmplib.org>
   2853 
   2854 	* mpn/arm64/lshift.asm: New file.
   2855 	* mpn/arm64/rshift.asm: New file.
   2856 
   2857 2014-09-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2858 
   2859 	* gmp-impl.h (TMP_ALLOC_LIMBS_3): New macro to allocate 3 blocks.
   2860 	(mpn_remove): Update declaration with mp_srcptr arguments.
   2861 	* mpn/generic/remove.c: Use TMP_ALLOC_LIMBS_3. mp_srcptr for args.
   2862 
   2863 	* mpn/generic/perfpow.c (pow_equals): TMP_DECL only where needed.
   2864 	(perfpow): Use TMP_ALLOC_LIMBS_3.
   2865 	(mpn_perfect_power_p): Skip useless allocations. Use mpn_remove.
   2866 	* tests/mpz/t-perfpow.c (check_random): Check more perfect powers.
   2867 
   2868 	* mpn/generic/divis.c: Use TMP_ALLOC_LIMBS_2. Share a count.
   2869 
   2870 2014-08-30  Torbjrn Granlund  <tege (a] gmplib.org>
   2871 
   2872 	* mpn/arm64/mod_34lsub1.asm: New file.
   2873 
   2874 2014-08-23  Torbjrn Granlund  <tege (a] gmplib.org>
   2875 
   2876 	* mpn/arm64/bdiv_dbm1c.asm: New file.
   2877 
   2878 	* mpn/arm64/com.asm: New file.
   2879 
   2880 	* mpn/arm64/sec_tabselect.asm: New file.
   2881 
   2882 	* mpn/arm64/popcount.asm: New file.
   2883 	* mpn/arm64/hamdist.asm: New file.
   2884 
   2885 	* configure.ac: Put generic arm/neon earlier in path.
   2886 
   2887 2014-08-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2888 
   2889 	* mpq/canonicalize.c: Earlier check for negative denominator.
   2890 	* mpq/set_d.c: Stricter allocation.
   2891 
   2892 2014-08-03  Torbjrn Granlund  <tege (a] gmplib.org>
   2893 
   2894 	* mpn/x86_64/bobcat/mul_1.asm: Fix typo in offset affecting DOS64.
   2895 
   2896 2014-07-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   2897 
   2898 	* mpn/generic/fib2_ui.c: remove #if HAVE_NATIVE_mpn_rsblsh_n.
   2899 	* mpz/fib2_ui.c: Use tabulated values, when available.
   2900 	* mpz/fib_ui.c: #if HAVE_NATIVE_mpn_addlsh1_n, use it.
   2901 
   2902 	* mpq/cmp_ui.c: Remove a branch.
   2903 	* mpq/cmp_si.c: Likewise.
   2904 
   2905 	* mpn/generic/toom_interpolate_7pts.c: Replace an in-place add
   2906 	with add_n + INCR_U.
   2907 
   2908 	* tests/mpf/t-fits.c: use ui_sub instead of sub_ui+neg.
   2909 
   2910 2014-07-27  Torbjrn Granlund  <tege (a] gmplib.org>
   2911 
   2912 	* mpn/x86/k7/gcd_1.asm: Use LEAL.
   2913 
   2914 	* mpn/x86/x86-defs.m4 (LEAL): New.
   2915 	(LEA): Append to `load_eip' instead of ASM_END, like darwin.m4.
   2916 	* mpn/x86/darwin.m4 (LEAL): New.
   2917 
   2918 2014-07-26  Torbjrn Granlund  <tege (a] gmplib.org>
   2919 
   2920 	* mpn/x86/pentium/mode1o.asm: Add Darwin PIC code.
   2921 	* mpn/x86/pentium/bdiv_q_1.asm: Likewise.
   2922 	* mpn/x86/pentium/dive_1.asm: Likewise.
   2923 	* mpn/x86/pentium/popcount.asm: Likewise.
   2924 	* mpn/x86/pentium/hamdist.asm: Likewise.
   2925 	* mpn/x86/k6/gcd_1.asm: Likewise.
   2926 
   2927 	* mpn/x86: Append ASM_END to many files.
   2928 	* tests/x86call.asm: Append ASM_END.
   2929 
   2930 	* mpn/x86/fat/fat_entry.asm (FAT_ENTRY, FAT_INIT):
   2931 	Support Darwin.
   2932 
   2933 	* mpn/x86/darwin.m4 (ASM_END): New, body from EPILOGUE_cpu.
   2934 	(EPILOGUE_cpu): Remove.
   2935 
   2936 	* mpn/x86/x86-defs.m4 (LEA): Put `mov_eip_' thunks in ASM_END instead
   2937 	of EPILOGUE_cpu.
   2938 
   2939 2014-07-05  Niels Mller  <nisse (a] lysator.liu.se>
   2940 
   2941 	* doc/gmp.texi (Low-level Functions): Document that scratch need
   2942 	for mpn_sec_add_1 and mpn_sec_sub_1 are at most n limbs.
   2943 	(Low-level Functions): Document allowed overlap for mpn_addmul_1
   2944 	and mpn_submul_1.
   2945 
   2946 2014-07-02  Torbjrn Granlund  <tege (a] gmplib.org>
   2947 
   2948 	* mpn/x86_64/x86_64-defs.m4: Fix quoting.
   2949 
   2950 	* mpn/x86_64/atom/redc_1.asm: Enforce proper stack allocation.
   2951 	* mpn/x86_64/bobcat/redc_1.asm: Likewise.
   2952 	* mpn/x86_64/core2/divrem_1.asm: Likewise.
   2953 	* mpn/x86_64/core2/gcd_1.asm: Likewise.
   2954 	* mpn/x86_64/core2/redc_1.asm: Likewise.
   2955 	* mpn/x86_64/coreihwl/redc_1.asm: Likewise.
   2956 	* mpn/x86_64/coreinhm/redc_1.asm: Likewise.
   2957 	* mpn/x86_64/coreisbr/redc_1.asm: Likewise.
   2958 	* mpn/x86_64/divrem_1.asm: Likewise.
   2959 	* mpn/x86_64/divrem_2.asm: Likewise.
   2960 	* mpn/x86_64/gcd_1.asm: Likewise.
   2961 	* mpn/x86_64/mod_1_1.asm: Likewise.
   2962 	* mpn/x86_64/mod_1_2.asm: Likewise.
   2963 	* mpn/x86_64/mod_1_4.asm: Likewise.
   2964 
   2965 2014-06-30  Torbjrn Granlund  <tege (a] gmplib.org>
   2966 
   2967 	* config.sub: Generalise x86 patterns.
   2968 
   2969 2014-06-17  Marc Glisse  <marc.glisse (a] inria.fr>
   2970 
   2971 	* gmpxx.h (__gmp_gcd_function, __gmp_lcm_function): New classes.
   2972 	(gcd, lcm): New functions.
   2973 	* doc/gmp.texi (C++ Interface Integers): Document them.
   2974 	* tests/cxx/t-ops2.cc (checkz): Test them.
   2975 
   2976 2014-06-16  Torbjrn Granlund  <tege (a] gmplib.org>
   2977 
   2978 	* mpf/mul.c: Postpone TMP_MARK.
   2979 
   2980 	* mpn/generic/perfpow.c (perfpow): Combine TMP_ALLOCs.
   2981 
   2982 2014-06-15  Torbjrn Granlund  <tege (a] gmplib.org>
   2983 
   2984 	* tests/refmpn.c (refmpn_mul): Rewrite to avoid O(n) recursion depth.
   2985 
   2986 2014-06-09  Torbjrn Granlund  <tege (a] gmplib.org>
   2987 
   2988 	* mpn/generic/mullo_n.c: Remove default THRESHOLDs.
   2989 	* gmp-impl.h: Put MULLO THRESHOLDs here.  Improve various THRESHOLD
   2990 	defaults.
   2991 
   2992 2014-06-08  Torbjrn Granlund  <tege (a] gmplib.org>
   2993 
   2994 	* gmp-impl.h (TMP_ALLOC): Decrease limit to about half.
   2995 
   2996 	* mpn/generic/toom53_mul.c: Replace many TMP_SALLOC invocations
   2997 	by a single TMP_ALLOC.
   2998 	* mpn/generic/toom42_mul.c: Likewise.
   2999 
   3000 	* mpn/generic/sec_sqr.c: Don't unconditionally call mpn_sqr_basecase
   3001 	since it fails for non-cryptographic sizes for some obsolete CPUs.
   3002 
   3003 	* mpn/generic/sec_powm.c: Remove own squaring code, instead use
   3004 	mpn_mul_basecase.
   3005 
   3006 	* tests/mpn/logic.c (main): Don't use TMP_SALLOC_LIMBS.
   3007 
   3008 	* mpn/generic/dcpi1_div_q.c: Avoid TMP_SALLOC_LIMBS.
   3009 	* mpn/generic/dcpi1_div_qr.c: Likewise.
   3010 
   3011 2014-06-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3012 
   3013 	* mpn/generic/mul.c: Tighter allocation in Toom{2,3}X branches.
   3014 
   3015 2014-06-06  Torbjrn Granlund  <tege (a] gmplib.org>
   3016 
   3017 	* mpn/generic/mul.c: Swap some TMP_SALLOC_LIMBS for TMP_ALLOC_LIMBS
   3018 	and some TMP_ALLOC_LIMBS for TMP_SALLOC_LIMBS.
   3019 
   3020 2014-05-31 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3021 
   3022 	* mpf/ui_sub.c: Remove buggy code, use a wrapper to mpf_sub.
   3023 	* tests/mpf/t-sub.c: More corner cases and strict checking.
   3024 	* mpf/sub.c: Use more mpn_ primitives and macros.
   3025 
   3026 	* tests/mpf/t-int_p.c: Test numbers with both integer and
   3027 	fractionary parts.
   3028 
   3029 	* mpf/int_p.c: Delay zero branch and use mpn_zero_p.
   3030 	* mpf/fits_s.h: No special case for SIZ == 0.
   3031 	* mpf/fits_u.h: Likewise.
   3032 
   3033 2014-05-29  Marc Glisse  <marc.glisse (a] inria.fr>
   3034 
   3035 	* gmp-h.in: Include <limits.h>.
   3036 	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): Remove.
   3037 	* gmp-impl.h (ULONG_MAX, UINT_MAX, USHRT_MAX, LONG_MAX, INT_MAX,
   3038 	SHRT_MAX): Remove unnecessary redefinition.
   3039 	* tests/t-gmpmax.c: Remove file.
   3040 	* tests/Makefile.am: Remove t-gmpmax.
   3041 
   3042 2014-05-22 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3043 
   3044 	* tests/mpf/t-sub.c (check_data): Test also ui_sub and sub_ui.
   3045 
   3046 2014-05-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3047 
   3048 	* gen-fac.c: +1 in the init2 argument before setbit.
   3049 	* gen-fib.c: Likewise. (Thanks Niels)
   3050 	* rand/randmts.c: Likewise.
   3051 
   3052 	* mpn/generic/invert.c: Remove unused TMP_MARK.
   3053 	* mpn/generic/invertappr.c: Avoid a branch.
   3054 	* mpz/millerrabin.c (millerrabin): Consider the rare case n is a power.
   3055 
   3056 2014-05-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3057 
   3058 	* gen-fib.c: Use mpz_setbit.
   3059 	* gen-psqr.c: Skip even numbers when looking for primes.
   3060 
   3061 	* mpn/generic/invert.c: Avoid a branch.
   3062 	* mpn/generic/toom2_sqr.c: Avoid a few branches in the odd case.
   3063 	* mpn/generic/toom22_mul.c: Likewise.
   3064 
   3065 2014-05-08  Marc Glisse  <marc.glisse (a] inria.fr>
   3066 
   3067 	* gmpxx.h (std::common_type): Remove partial specialization for two
   3068 	identical expressions. New partial specialization for a single type.
   3069 	* tests/cxx/t-cxx11.cc: Test it.
   3070 
   3071 2014-04-14  Niels Mller  <nisse (a] lysator.liu.se>
   3072 
   3073 	* doc/gmp.texi (mpz_invert): Clarify behavior in the zero ring.
   3074 
   3075 2014-04-04  Marc Glisse  <marc.glisse (a] inria.fr>
   3076 
   3077 	* longlong.h (i386): Add comment about "cc" clobber.
   3078 
   3079 2014-04-04  Torbjorn Granlund  <tege (a] gmplib.org>
   3080 
   3081 	* acinclude.m4 (X86_64_PATTERN): Generalise patterns to allow "noavx"
   3082 	suffix.
   3083 
   3084 	* mpn/generic/div_qr_1n_pi1.c: Conditionalise ARM asm on !__thumb__.
   3085 
   3086 2014-04-03  Marc Glisse  <marc.glisse (a] inria.fr>
   3087 
   3088 	* mpn/arm64/mul_1.asm, mpn/arm64/gcd_1.asm: Use official b.cond syntax.
   3089 	* mpn/arm64/invert_limb.asm, mpn/arm64/aorsmul_1.asm: Prefix
   3090 	immediates with #.
   3091 
   3092 2014-04-03  Torbjorn Granlund  <tege (a] gmplib.org>
   3093 
   3094 	* config.guess: Append "noavx" for CPUs which have AVX but where the
   3095 	kernel does not support it.
   3096 	* configure.ac: Accept "noavx" cpu name suffixes.  Conditionally pass
   3097 	-mno-avx.
   3098 
   3099 2014-04-02  Torbjorn Granlund  <tege (a] gmplib.org>
   3100 
   3101 	* mpn/x86_64/k8/redc_1.asm: Workaround for Darwin assembler quirk.
   3102 
   3103 2014-03-28  Torbjorn Granlund  <tege (a] gmplib.org>
   3104 
   3105 	* mpn/generic/mod_1_1.c: Conditionalise ARM asm on !__thumb__.
   3106 
   3107 2014-03-31  Marc Glisse  <marc.glisse (a] inria.fr>
   3108 
   3109 	* mpn/arm/dive_1.asm, mpn/arm/invert_limb.asm: Use RODATA.
   3110 	* acinclude.m4 ([long long reliability tests]): Declare functions.
   3111 	(GMP_PROG_CC_FOR_BUILD_WORKS, GMP_PROG_EXEEXT_FOR_BUILD,
   3112 	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): Replace exit(0) with
   3113 	return 0, no declaration needed.
   3114 	(GMP_CHECK_LIBM_FOR_BUILD): Include <math.h> to declare log.
   3115 
   3116 2014-03-30  Marc Glisse  <marc.glisse (a] inria.fr>
   3117 
   3118 	* README: Remove mention to Berkeley MP compatibility.
   3119 
   3120 2014-03-26  Torbjorn Granlund  <tege (a] gmplib.org>
   3121 
   3122 	* mpn/powerpc64/mode64/gcd_1.asm: Provide default for
   3123 	BMOD_1_TO_MOD_1_THRESHOLD.
   3124 
   3125 2014-03-24  Torbjorn Granlund  <tege (a] gmplib.org>
   3126 
   3127 	* Version 6.0.0 released.
   3128 
   3129 	* mpn: Update countless gmp-mparam.h files.
   3130 
   3131 2014-03-22  Torbjorn Granlund  <tege (a] gmplib.org>
   3132 
   3133 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   3134 	* gmp-h.in: Bump version.
   3135 
   3136 2014-03-17  Torbjorn Granlund  <tege (a] gmplib.org>
   3137 
   3138 	* configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000.
   3139 	* mpn/clipper: Remove directory and all its files.
   3140 	* mpn/i960: Likewise.
   3141 	* mpn/ns32k: Likewise.
   3142 	* mpn/pyr: Likewise.
   3143 	* mpn/a29k: Likewise.
   3144 	* mpn/z8000: Likewise.
   3145 	* mpn/Makefile.am (TARG_DIST): Purge removed directories.
   3146 	* doc/gmp.texi: Remove special mentions of removed architectures.
   3147 
   3148 2014-03-12  Torbjorn Granlund  <tege (a] gmplib.org>
   3149 
   3150 	* mpn/x86/bd2/gmp-mparam.h: New file.
   3151 	* mpn/x86_64/bd2/gmp-mparam.h: New file.
   3152 
   3153 2014-03-06  Niels Mller  <nisse (a] lysator.liu.se>
   3154 
   3155 	* tests/mpz/t-pprime_p.c (check_composites): New function.
   3156 	(check_primes): New function.
   3157 	(main): Call them. Also use TESTS_REPS.
   3158 
   3159 2014-03-01  Niels Mller  <nisse (a] lysator.liu.se>
   3160 
   3161 	* mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and
   3162 	asserts.
   3163 
   3164 2014-02-28  Torbjorn Granlund  <tege (a] gmplib.org>
   3165 
   3166 	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims.
   3167 
   3168 2014-02-27  Torbjorn Granlund  <tege (a] gmplib.org>
   3169 
   3170 	* mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2
   3171 	feature test.
   3172 
   3173 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl
   3174 	conditionally on BMI2 availability.
   3175 
   3176 	* config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that
   3177 	BMI2 is missing.
   3178 	(x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature
   3179 	test.
   3180 
   3181 2014-02-17  Niels Mller  <nisse (a] lysator.liu.se>
   3182 
   3183 	* mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix.
   3184 	Hopefully no longer needed.
   3185 
   3186 	* mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
   3187 	* mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
   3188 
   3189 	* tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD,
   3190 	DIV_QR_1_UNNORM_THRESHOLD >= 1.
   3191 
   3192 2014-02-16 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3193 
   3194 	* mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0.
   3195 
   3196 2014-02-15  Torbjorn Granlund  <tege (a] gmplib.org>
   3197 
   3198 	* tests/mpn/t-div.c: Fix typo.
   3199 
   3200 2014-02-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3201 
   3202 	* doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that
   3203 	at least a readable limb is required.
   3204 
   3205 2014-02-14  Niels Mller  <nisse (a] lysator.liu.se>
   3206 
   3207 	* doc/gmp.texi (Low-level Functions): Update docs for
   3208 	mpn_sec_powm, to specify that left-over exponent bits must be
   3209 	zero.
   3210 
   3211 2014-02-11  Niels Mller  <nisse (a] lysator.liu.se>
   3212 
   3213 	* Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3,
   3214 	COPYINGv2, and COPYINGv3.
   3215 
   3216 	* doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs.
   3217 
   3218 	* mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb
   3219 	count argument by bit count. Don't leak high exponent bits, and
   3220 	drop the requirement that the most significant exponent limb is
   3221 	non-zero.
   3222 	(mpn_sec_powm_itch): Analogous interface change.
   3223 	* gmp-h.in: Updated prototypes.
   3224 	* mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls.
   3225 	* tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code
   3226 	fiddling with the high exponent bits.
   3227 
   3228 2014-02-09  Niels Mller  <nisse (a] lysator.liu.se>
   3229 
   3230 	* tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical
   3231 	parameters nbits = 1, winsize = 2. Decrement tabulated values, to
   3232 	better match the > comparison when the table is used.
   3233 
   3234 	* mpn/generic/sec_powm.c (win_size): Comment why we always get
   3235 	win_size(eb) <= eb. Make the table const.
   3236 	(mpn_sec_powm): Deleted handling of winsize > initial ebi. For
   3237 	now, replaced with an ASSERT_ALWAYS.
   3238 
   3239 2014-02-08  Niels Mller  <nisse (a] lysator.liu.se>
   3240 
   3241 	* mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused
   3242 	function.
   3243 
   3244 	* mpn/generic/sec_div.c: Simplified code for the normalized case.
   3245 
   3246 	* tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r
   3247 	with normalized d.
   3248 
   3249 2014-02-04  Niels Mller  <nisse (a] lysator.liu.se>
   3250 
   3251 	* doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and
   3252 	mpn_sec_sub_1.
   3253 
   3254 2014-01-29  Torbjorn Granlund  <tege (a] gmplib.org>
   3255 
   3256 	* doc/gmp.texi (Floating-point Functions): Revise.
   3257 
   3258 2014-01-29  Niels Mller  <nisse (a] lysator.liu.se>
   3259 
   3260 	* README: Don't refer to specific COPYING* files, instead refer to
   3261 	manual for details.
   3262 
   3263 	* COPYING.LIB: Renamed, to...
   3264 	* COPYING.LESSERv3: ... new name.
   3265 	* COPYING: Renamed, to...
   3266 	* COPYINGv3: ... new name.
   3267 	* COPYINGv2: New file, GPLv2.
   3268 
   3269 	* doc/gmp.texi (Copying): Document dual licensing.
   3270 
   3271 2014-01-27  Torbjorn Granlund  <tege (a] gmplib.org>
   3272 
   3273 	* Update library files license to use LGPL3+ and GPL2+.
   3274 
   3275 2014-01-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3276 
   3277 	* tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart).
   3278 
   3279 	* mpn/generic/sec_aors_1.c: Mark the 2nd argument as const.
   3280 	* gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise.
   3281 
   3282 2014-01-24  Torbjorn Granlund  <tege (a] gmplib.org>
   3283 
   3284 	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and
   3285 	excavator values.
   3286 
   3287 	* config.guess: Amend last AMD change.
   3288 
   3289 	* mpn/s390_64/lshift.asm: Align loop.
   3290 	* mpn/s390_64/rshift.asm: Likewise.
   3291 	* mpn/s390_64/lshiftc.asm: Likewise.
   3292 	* mpn/s390_64: Add z10 cycle numbers.
   3293 
   3294 2014-01-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3295 
   3296 	* printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z'
   3297 	in switch (fchar).
   3298 
   3299 2014-01-21 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3300 
   3301 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs.
   3302 
   3303 2014-01-20  Torbjorn Granlund  <tege (a] gmplib.org>
   3304 
   3305 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for
   3306 	AMD "jaguar".
   3307 
   3308 	* demos/expr: Get rid of varargs code and references.
   3309 
   3310 2014-01-19  Torbjorn Granlund  <tege (a] gmplib.org>
   3311 
   3312 	* config.guess: Add new AMD CPUs (piledriver, steamroller, excavator,
   3313 	jaguar).
   3314 	* config.sub: Corresponding updates.
   3315 	* configure.ac: Likewise.
   3316 	* acinclude.m4 (X86_64_PATTERN): Likewise.
   3317 	* mpn/x86_64/fat/fat.c: Likewise.
   3318 
   3319 	* Rename mpn_sec_minvert => mpn_sec_invert, many files affected.
   3320 	* mpn/generic/sec_invert.c: New name for sec_minvert.c.
   3321 
   3322 	* doc/gmp.texi: Undocument mpz_array_init.
   3323 
   3324 	* acinclude.m4 (GMP_C_STDARG): Comment out.
   3325 	* configure.ac: Suppress GMP_C_STDARG invocation.
   3326 
   3327 	* Get rid of varargs code and references, many file affected.
   3328 
   3329 	* Use mpq_t in favour of MP_RAT, many mpq files affected.
   3330 
   3331 	* Get rid of BYTES_PER_MP_LIMB, most files affected.
   3332 
   3333 	* mpz/iset.c: Avoid overflow in allocation computation.
   3334 	* mpz/mul.c: Likewise.
   3335 	* mpf/init.c: Likewise.
   3336 	* mpf/init2.c: Likewise.
   3337 	* mpf/iset.c: Likewise.
   3338 	* mpf/iset_d.c: Likewise.
   3339 	* mpf/iset_si.c: Likewise.
   3340 	* mpf/iset_str.c: Likewise.
   3341 	* mpf/iset_ui.c: Likewise.
   3342 
   3343 	* mpz/array_init.c: Avoid two overflow scenarios in allocation
   3344 	computation.
   3345 
   3346 	* mpn/s390_64/z10/gmp-mparam.h: New file.
   3347 
   3348 	* mpz/clears.c: Call __gmp_free_func ourselves instead of via
   3349 	mpz_clears.
   3350 	* mpf/clears.c: Analogous change.
   3351 	* mpq/clears.c: Analogous change.
   3352 
   3353 	* mpz/clear.c: Add cast to avoid overflow of (later ignored) argument.
   3354 	* mpf/clear.c: Likewise.
   3355 
   3356 2014-01-18  Niels Mller  <nisse (a] lysator.liu.se>
   3357 
   3358 	* tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1.
   3359 
   3360 	* tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size
   3361 	argument to mpn_sec_minvert.
   3362 
   3363 2014-01-18  Marc Glisse  <marc.glisse (a] inria.fr>
   3364 
   3365 	* doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto.
   3366 
   3367 2014-01-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3368 
   3369 	* tests/t-parity.c: Use 1UL to generate unsigned constants.
   3370 	* tests/t-constants.c: Disable a non portable (unneeded) check.
   3371 
   3372 2014-01-18  Niels Mller  <nisse (a] lysator.liu.se>
   3373 
   3374 	* mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New
   3375 	file.
   3376 
   3377 	* mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1):
   3378 	Deleted static definitions.
   3379 	(mpn_cnd_swap): Use volatile.
   3380 
   3381 	* configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1.
   3382 	(GMP_MULFUNC_CHOICES): Set up for sec_aors_1.
   3383 
   3384 2014-01-16  Niels Mller  <nisse (a] lysator.liu.se>
   3385 
   3386 	* tune/common.c (speed_mpn_sec_minvert): New function.
   3387 	* tune/speed.h: Declare it.
   3388 	(SPEED_ROUTINE_MPN_SEC_MINVERT): New macro.
   3389 	* tune/speed.c (routine): Added mpn_sec_minvert.
   3390 
   3391 2014-01-12  Marc Glisse  <marc.glisse (a] inria.fr>
   3392 
   3393 	* demos/expr/expr.h: Add extern "C" for C++.
   3394 
   3395 2014-01-11  Torbjorn Granlund  <tege (a] gmplib.org>
   3396 
   3397 	* doc/gmp.texi (Notes for Particular Systems): Add items about old
   3398 	NetBSD and current FreeBSD m4 problems.  Add item about FreeBSD's
   3399 	broken limits.h.
   3400 
   3401 2014-01-05 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3402 
   3403 	* gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST.
   3404 
   3405 2014-01-05  Torbjorn Granlund  <tege (a] gmplib.org>
   3406 
   3407 	* configure.ac (alpha): Set extra_functions conditionally.
   3408 
   3409 	* gmp-h.in (mpn_sec_minvert): Remove formal parameters.
   3410 
   3411 	* doc/gmp.texi: Improve doc for several functions.
   3412 
   3413 	* mpn/generic/sec_tabselect.c: Declare input arg using 'const'.
   3414 	* gmp-h.in: Analogous change.
   3415 
   3416 	* gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE.
   3417 	* gmp-impl.h: Likewise.
   3418 
   3419 2014-01-05 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3420 
   3421 	* tests/mpn/t-minvert.c: Always compare with mpz_invert results,
   3422 	add red zone to scratch.
   3423 	* tests/mpn/t-sizeinbase.c: New test.
   3424 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c .
   3425 	* tests/mpn/t-div.c: Use mpn_sec_div_*_itch().
   3426 
   3427 	* mpn/generic/pow_1.c: Micro-optimisation.
   3428 
   3429 2014-01-04  Torbjorn Granlund  <tege (a] gmplib.org>
   3430 
   3431 	* acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies.
   3432 
   3433 2014-01-03  Torbjorn Granlund  <tege (a] gmplib.org>
   3434 
   3435 	* config.guess: Support newer haswell, broadwell, silvermont.
   3436 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise.
   3437 
   3438 	* acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work.
   3439 
   3440 	* mpz/invert.c: Rely on gcdext for all operands, removing faulty
   3441 	special case.
   3442 	* tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1.
   3443 
   3444 2014-01-02  Niels Mller  <nisse (a] lysator.liu.se>
   3445 
   3446 	* doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase.
   3447 
   3448 	Enable previously unused mpn_sizeinbase function.
   3449 	* configure.ac (gmp_mpn_functions): Added sizeinbase.
   3450 	* gmp-h.in (mpn_sizeinbase): New prototype.
   3451 
   3452 2014-01-02  Marc Glisse  <marc.glisse (a] inria.fr>
   3453 
   3454 	* gmp-impl.h: Always include <limits.h>.
   3455 	* tests/mpn/t-get_d.c: Remove comment about <limits.h>
   3456 
   3457 	* gmp-h.in (__GMP_USHRT_MAX): Use the promoted type.
   3458 	* gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise.
   3459 	* tests/t-constants.c: Adapt printf strings.
   3460 	* tests/t-gmpmax.c: Likewise.
   3461 
   3462 	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses.
   3463 
   3464 2014-01-01  Torbjorn Granlund  <tege (a] gmplib.org>
   3465 
   3466 	* doc/gmp.texi (Low-level Functions for cryptography): Update interface
   3467 	for mpn_sec_div_qr and fix typos in mpn_sec_minvert text.
   3468 
   3469 	* mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high
   3470 	quotient limb.
   3471 	* gmp-h.in (mpn_sec_div_qr): Update declaration.
   3472 	* tests/mpn/t-div.c: Adapt.
   3473 
   3474 2013-12-31  Niels Mller  <nisse (a] lysator.liu.se>
   3475 
   3476 	* doc/gmp.texi (Low-level Functions for cryptography): Document
   3477 	mpn_sec_minvert.
   3478 
   3479 2013-12-30  Marc Glisse  <marc.glisse (a] inria.fr>
   3480 
   3481 	* doc/gmp.texi (C++ interface internals): Break long line.
   3482 
   3483 2013-12-30  Torbjorn Granlund  <tege (a] gmplib.org>
   3484 
   3485 	* doc/gmp.texi (Low-level Functions for cryptography): New section.
   3486 
   3487 2013-12-29  Niels Mller  <nisse (a] lysator.liu.se>
   3488 
   3489 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert.
   3490 	* tests/mpn/t-minvert.c: New file.
   3491 
   3492 	* configure.ac (gmp_mpn_functions): Added sec_minvert.
   3493 	* gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New
   3494 	declarations.
   3495 	* mpn/generic/sec_minvert.c (mpn_sec_minvert)
   3496 	(mpn_sec_minvert_itch): New functions.
   3497 	(mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New
   3498 	helper functions.
   3499 
   3500 2013-12-28  Torbjorn Granlund  <tege (a] gmplib.org>
   3501 
   3502 	* mpn/generic/sec_powm.c: Fix an ASSERT.
   3503 
   3504 	* gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations.
   3505 	* gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise.
   3506 	* mpn/generic/sec_mul.c: New file.
   3507 	* mpn/generic/sec_sqr.c: New file.
   3508 
   3509 	* gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations.
   3510 	* gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise.
   3511 	* gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise.
   3512 	* gmp-impl: Remove declarations of above functions.
   3513 
   3514 	* configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr.
   3515 
   3516 2013-12-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   3517 
   3518 	* Update many file's encoding to UTF-8.
   3519 	* doc/tasks.html: Update <meta content> accordingly.
   3520 	* doc/projects.html: Likewise.
   3521 
   3522 2013-12-26  Torbjorn Granlund  <tege (a] gmplib.org>
   3523 
   3524 	* configure.ac: Rename mpn_blah_sec to mpn_sec_blah.
   3525 	* gmp-impl.h: Corresponding changes.
   3526 	* mpn/asm-defs.m4: Corresponding changes.
   3527 	* tune/Makefile.am: Corresponding changes.
   3528 	* tune/common.c: Corresponding changes.
   3529 	* tune/speed.c: Corresponding changes.
   3530 	* tune/speed.h: Corresponding changes.
   3531 	* tune/tuneup.c: Corresponding changes.
   3532 	* mpz/powm_sec.c: Update calls.
   3533 	* tests/mpn/t-div.c: Likewise.
   3534 
   3535 	* mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c.
   3536 	* mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c.
   3537 	* mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c.
   3538 	* mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c.
   3539 
   3540 	* mpn/alpha/sec_tabselect.asm: New name for tabselect.asm.
   3541 	* mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm.
   3542 	* mpn/arm/sec_tabselect.asm: New name for tabselect.asm.
   3543 	* mpn/ia64/sec_tabselect.asm: New name for tabselect.asm
   3544 	* mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm
   3545 	* mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm
   3546 	* mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm
   3547 	* mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm
   3548 	* mpn/x86/sec_tabselect.asm: New name for tabselect.asm
   3549 	* mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm
   3550 	* mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm
   3551 	* mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm
   3552 	* mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm
   3553 	* mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm
   3554 	* mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm
   3555 	* mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm
   3556 	* mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm
   3557 
   3558 2013-12-25  Torbjorn Granlund  <tege (a] gmplib.org>
   3559 
   3560 	* mpz/powm_sec.c: Handle 0^e mod m specially.
   3561 	* mpn/generic/powm_sec.c: ASSERT that the base is non-zero.
   3562 
   3563 2013-12-23  Torbjorn Granlund  <tege (a] gmplib.org>
   3564 
   3565 	* mpn/generic/powm_sec.c (redcify): Use passed scratch instead of
   3566 	locally allocated.
   3567 	(mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs.
   3568 
   3569 2013-12-20  Mark Sofroniou  <marks (a] wolfram.com>
   3570 
   3571 	* mpn/generic/mul_fft.c: Major overhaul of types.
   3572 
   3573 2013-12-18  Torbjorn Granlund  <tege (a] gmplib.org>
   3574 
   3575 	* doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs.
   3576 
   3577 2013-12-14  Ulrich Weigand  <Ulrich.Weigand (a] de.ibm.com>
   3578 
   3579 	* mpn/powerpc32/darwin.m4: Allow (and ignore) optional
   3580 	'toc' parameter to PROLOGUE_cpu.
   3581 	* mpn/powerpc32/elf.m4: Likewise.
   3582 
   3583 2013-12-09  Ulrich Weigand  <Ulrich.Weigand (a] de.ibm.com>
   3584 
   3585 	* configure.ac: Check for ELFv2 ABI on PowerPC.
   3586 	* mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2
   3587 	and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences.
   3588 	Support optional 'toc' parameter to PROLOGUE_cpu.
   3589 	* mpn/powerpc64/aix.m4: Allow (and ignore) optional
   3590 	'toc' parameter to PROLOGUE_cpu.
   3591 	* mpn/powerpc64/darwin.m4: Likewise.
   3592 
   3593 	* mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc'
   3594 	parameter to PROLOGUE.
   3595 	* mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise.
   3596 	* mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise.
   3597 	* mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise.
   3598 	* mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise.
   3599 	* mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise.
   3600 	* mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise.
   3601 	* mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise.
   3602 	* mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise.
   3603 	* mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise.
   3604 	* mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise.
   3605 	* mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise.
   3606 	* mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise.
   3607 
   3608 2013-12-07  Niels Mller  <nisse (a] lysator.liu.se>
   3609 
   3610 	* configfsf.sub: Updated to version 2013-10-01, from gnulib.
   3611 	* configfsf.guess: Updated to version 2013-11-29, from gnulib.
   3612 
   3613 2013-12-03  Torbjorn Granlund  <tege (a] gmplib.org>
   3614 
   3615 	* mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs.
   3616 	* mpn/generic/div_qr_1n_pi1.c: Likewise.
   3617 	* mpn/generic/div_qr_2.c: Likewise.
   3618 	* mpn/generic/div_qr_2.c: Likewise.
   3619 	* mpn/generic/mod_1_1.c: Likewise.
   3620 	* mpn/generic/mod_1_2.c: Likewise.
   3621 	* mpn/generic/mod_1_3.c: Likewise.
   3622 	* mpn/generic/mod_1_4.c: Likewise.
   3623 	* mpn/generic/mulmid_basecase.c: Likewise.
   3624 	* mpn/generic/mulmod_bnm1.c: Likewise.
   3625 	* mpn/generic/sqrmod_bnm1.c: Likewise.
   3626 	* mpn/sparc64/divrem_1.c: Likewise.
   3627 	* mpn/sparc64/mod_1_4.c: Likewise.
   3628 
   3629 	* mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo.
   3630 
   3631 2013-11-11  Torbjorn Granlund  <tege (a] gmplib.org>
   3632 
   3633 	* mpn/x86_64/dos64.m4 (CALL): Provide to override default.
   3634 
   3635 2013-11-08  Torbjorn Granlund  <tege (a] gmplib.org>
   3636 
   3637 	* mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn.
   3638 
   3639 	* mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386.
   3640 
   3641 	* doc/gmp.texi: Update many URLs.
   3642 
   3643 2013-11-04  Torbjorn Granlund  <tege (a] gmplib.org>
   3644 
   3645 	* configure.ac: Set symbol OPENBSD for x86-openbsd hosts.
   3646 	* mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for
   3647 	PIC_OR_DARWIN.
   3648 	(PRETEND_PIC): Set also for OPENBSD.
   3649 
   3650 2013-10-29  Torbjorn Granlund  <tege (a] gmplib.org>
   3651 
   3652 	* printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy.
   3653 
   3654 2013-10-24  Torbjorn Granlund  <tege (a] gmplib.org>
   3655 
   3656 	* mpn/generic/div_qr_1u_pi2.c: New file.
   3657 	* mpn/generic/div_qr_1n_pi2.c: New file.
   3658 
   3659 2013-10-24  Niels Mller  <nisse (a] lysator.liu.se>
   3660 
   3661 	* mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and
   3662 	in-place operation.
   3663 	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise.
   3664 
   3665 	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes,
   3666 	off-by-one MPN_INCR_U, and support for in-place operation.
   3667 
   3668 2013-10-24  Torbjorn Granlund  <tege (a] gmplib.org>
   3669 
   3670 	* mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell.
   3671 
   3672 2013-10-23  Torbjorn Granlund  <tege (a] gmplib.org>
   3673 
   3674 	* mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'.
   3675 	(regnum): Use x86_lookup, feed oplist.
   3676 
   3677 2013-10-22  Niels Mller  <nisse (a] lysator.liu.se>
   3678 
   3679 	* tests/devel/try.c: Support mpn_div_qr_1n_pi1.
   3680 
   3681 	* mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here.
   3682 	Applied tweak from Torbjrn to get it to run well on k8.
   3683 
   3684 	* mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above).
   3685 	Differs from generic x86_64 version by using cmov.
   3686 
   3687 	* mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul.
   3688 	Deleted misleading cycle annotations.
   3689 
   3690 2013-10-21  Niels Mller  <nisse (a] lysator.liu.se>
   3691 
   3692 	* configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in.
   3693 
   3694 	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos
   3695 	affecting ASSERT.
   3696 
   3697 2013-10-20  Niels Mller  <nisse (a] lysator.liu.se>
   3698 
   3699 	* mpn/x86_64/div_qr_1n_pi1.asm: New file.
   3700 
   3701 	* tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check
   3702 	div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1.
   3703 
   3704 	* mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1.
   3705 
   3706 	* tune/common.c (speed_mpn_div_qr_1): New function, replacing...
   3707 	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions
   3708 	(speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1)
   3709 	(speed_mpn_div_qr_1n_pi1_2): New functions.
   3710 	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning
   3711 	variables.
   3712 	* tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New
   3713 	functions.
   3714 	(div_qr_1n_pi1_method, div_qr_1_norm_threshold)
   3715 	(div_qr_1_unnorm_threshold): New globals.
   3716 	* tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u
   3717 	by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1
   3718 	and variants.
   3719 	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter
   3720 	as divisor.
   3721 	* tune/div_qr_1n_pi1_2.c: New file.
   3722 	* tune/div_qr_1n_pi1_1.c: New file.
   3723 	* tune/div_qr_1_tune.c: New file.
   3724 	* tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c,
   3725 	div_qr_1n_pi1_2.c, and div_qr_1_tune.c.
   3726 
   3727 	* tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u.
   3728 	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro.
   3729 	(speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare.
   3730 	* tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New
   3731 	functions.
   3732 
   3733 	* gmp-impl.h (mpn_div_qr_1n_pi1): Declare function.
   3734 	* gmp-h.in (mpn_div_qr_1): Declare function.
   3735 	* configure.ac (gmp_mpn_functions): Added div_qr_1 and
   3736 	div_qr_1n_pi1.
   3737 	* mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function.
   3738 	* mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and
   3739 	function.
   3740 	* tests/mpn/t-div.c (main): Test mpn_div_qr_1.
   3741 
   3742 2013-10-17  Torbjorn Granlund  <tege (a] gmplib.org>
   3743 
   3744 	* configure.ac (alpha): Pass -mieee via gcc_cflags_maybe.
   3745 
   3746 2013-10-16  Torbjorn Granlund  <tege (a] gmplib.org>
   3747 
   3748 	* config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses.
   3749 
   3750 	* mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter.
   3751 	* mpn/alpha/divrem_2.asm: Use provided gp mechanisms.
   3752 	* mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label.
   3753 	* mpn/alpha/invert_limb.asm: Align table to 8-byte boundary.  Make code
   3754 	work if table is not fully aligned.  Properly test for BWX.
   3755 
   3756 2013-10-15  Torbjorn Granlund  <tege (a] gmplib.org>
   3757 
   3758 	* mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA;
   3759 	accept optional align parameter.
   3760 	* mpn/alpha/invert_limb.asm: Align table.
   3761 	* mpn/alpha/ev5/diveby3.asm: Likewise.
   3762 
   3763 2013-10-11  Torbjorn Granlund  <tege (a] gmplib.org>
   3764 
   3765 	* mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity.
   3766 	* mpn/x86/k7/mod_1_4.asm: Likewise.
   3767 
   3768 	* configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and
   3769 	cclist_x32.
   3770 
   3771 2013-10-08  Torbjorn Granlund  <tege (a] gmplib.org>
   3772 	    Marc Glisse  <marc.glisse (a] inria.fr>
   3773 
   3774 	* tests/mpf/reuse.c (main): Compare addresses instead of names.
   3775 	Use larger numbers for exponents.
   3776 
   3777 2013-10-08  Marc Glisse  <marc.glisse (a] inria.fr>
   3778 
   3779 	* doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove.
   3780 	* .bootstrap: Use autoreconf (and in particular automake -a).
   3781 
   3782 	* gmp-h.in: Remove __need_size_t. Include <stddef.h>, not <cstddef>.
   3783 
   3784 	* tests/mpf/reuse.c (main): Use small numbers as exponents.
   3785 
   3786 2013-10-05  Torbjorn Granlund  <tege (a] gmplib.org>
   3787 
   3788 	* mpn/x86_64/atom/aorsmul_1.asm: Slight tweak.
   3789 
   3790 	* doc/gmp.texi (ABI and ISA): Document x32.
   3791 
   3792 	* mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names.
   3793 
   3794 2013-09-24  Torbjorn Granlund  <tege (a] gmplib.org>
   3795 
   3796 	* mpn/x86_64/atom/redc_1.asm: New file.
   3797 
   3798 2013-09-23  Torbjorn Granlund  <tege (a] gmplib.org>
   3799 
   3800 	* mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work.
   3801 
   3802 2013-09-22  Torbjorn Granlund  <tege (a] gmplib.org>
   3803 
   3804 	* mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code.
   3805 
   3806 	* mpn/x86_64/core2/redc_1.asm: New file.
   3807 
   3808 	* mpn/x86_64/bobcat/redc_1.asm: New file.
   3809 
   3810 2013-09-21  Torbjorn Granlund  <tege (a] gmplib.org>
   3811 
   3812 	* mpn/x86_64/coreinhm/redc_1.asm: New file.
   3813 
   3814 2013-09-21  Marc Glisse  <marc.glisse (a] inria.fr>
   3815 
   3816 	* tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d.
   3817 	* tests/rand/t-urbui.c: Use 1UL for unsigned constant.
   3818 	* mpn/generic/get_str.c: Avoid temporarily pointing outside an array.
   3819 
   3820 2013-09-20  Torbjorn Granlund  <tege (a] gmplib.org>
   3821 
   3822 	* mpn/x86_64/coreisbr/redc_1.asm: New file.
   3823 
   3824 	* mpn/x86_64/k8/redc_1.asm: Complete rewrite.
   3825 
   3826 	* mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short-
   3827 	circuit a branch.
   3828 	* mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch.
   3829 
   3830 	* mpn/x86_64/core2/mullo_basecase.asm: New file.
   3831 
   3832 2013-09-19  Torbjorn Granlund  <tege (a] gmplib.org>
   3833 
   3834 	* mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS.
   3835 
   3836 2013-09-18  Torbjorn Granlund  <tege (a] gmplib.org>
   3837 
   3838 	* mpn/x86_64/core2/mul_basecase.asm: New file.
   3839 	* mpn/x86_64/core2/sqr_basecase.asm: New file.
   3840 
   3841 	* mpn/x86_64/coreihwl/mullo_basecase.asm: New file.
   3842 	* mpn/x86_64/coreisbr/mullo_basecase.asm: New file.
   3843 
   3844 2013-09-16  Torbjorn Granlund  <tege (a] gmplib.org>
   3845 
   3846 	* mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS.
   3847 
   3848 2013-09-15  Torbjorn Granlund  <tege (a] gmplib.org>
   3849 
   3850 	* mpn/x86_64/tabselect.asm: Use R8 for bit testing.
   3851 
   3852 	* mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code.
   3853 
   3854 	* mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite.
   3855 
   3856 2013-09-12  Torbjorn Granlund  <tege (a] gmplib.org>
   3857 
   3858 	* mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits.
   3859 
   3860 	* mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly
   3861 	handle overlap.
   3862 
   3863 2013-09-10  Torbjorn Granlund  <tege (a] gmplib.org>
   3864 
   3865 	* mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code
   3866 	to make it handle any allowed overlap.
   3867 
   3868 2013-09-09  Torbjorn Granlund  <tege (a] gmplib.org>
   3869 
   3870 	* mpn/x86_64/atom/com.asm: New file, grabbing fastsse code.
   3871 
   3872 	* mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code.
   3873 	* mpn/x86_64/bd1/copyd.asm: Likewise.
   3874 	* mpn/x86_64/bd1/com.asm: Likewise.
   3875 
   3876 	* mpn/x86_64/fastavx/copyi.asm: New file.
   3877 	* mpn/x86_64/fastavx/copyd.asm: New file.
   3878 
   3879 2013-09-05  Torbjorn Granlund  <tege (a] gmplib.org>
   3880 
   3881 	* mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline.
   3882 
   3883 2013-09-04  Torbjorn Granlund  <tege (a] gmplib.org>
   3884 
   3885 	* mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner".
   3886 	Misc tuning.
   3887 
   3888 2013-09-03  Torbjorn Granlund  <tege (a] gmplib.org>
   3889 
   3890 	* mpn/x86_64/coreihwl/redc_1.asm: New file.
   3891 
   3892 	* mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets.
   3893 
   3894 2013-08-31  Torbjorn Granlund  <tege (a] gmplib.org>
   3895 
   3896 	* mpn/x86_64/coreisbr/sqr_basecase.asm: New file.
   3897 
   3898 	* mpn/x86_64/sqr_diag_addlsh1.asm: New file.
   3899 
   3900 2013-08-30  Torbjorn Granlund  <tege (a] gmplib.org>
   3901 
   3902 	* mpn/x86_64/fat/mul_basecase.c: New file.
   3903 	* mpn/x86_64/fat/sqr_basecase.c: New file.
   3904 	* mpn/x86_64/fat/mullo_basecase.c: New file.
   3905 	* mpn/x86_64/fat/redc_1.c: New file.
   3906 
   3907 2013-08-29  Torbjorn Granlund  <tege (a] gmplib.org>
   3908 
   3909 	* mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8
   3910 	subdir.
   3911 	* mpn/x86_64/k8/sqr_basecase.asm: Likewise.
   3912 	* mpn/x86_64/k8/redc_1.asm: Likewise.
   3913 	* mpn/x86_64/k8/mullo_basecase.asm: Likewise.
   3914 	* mpn/x86_64/k8/mulmid_basecase.asm: Likewise.
   3915 
   3916 	* mpn/ia64/aors_n.asm: Clean up some bundlings.
   3917 
   3918 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell.
   3919 	(fake_cpuid_table): Likewise.
   3920 
   3921 	* configure.ac (x86): Remove any mulx paths.  Let bwl path = hwl path.
   3922 	(fat_path): Add coreihwl.
   3923 
   3924 	* mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use
   3925 	mulx() macro.
   3926 	* mpn/x86_64/coreihwl/mul_1.asm: Likewise.
   3927 	* mpn/x86_64/coreihwl/mul_2.asm: Likewise.
   3928 	* mpn/x86_64/coreihwl/mul_basecase.asm: Likewise.
   3929 	* mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise.
   3930 
   3931 	* mpn/x86_64/x86_64-defs.m4 (mulx): New macro.
   3932 	(regnum, regnumh, ix): Supporting macros.
   3933 
   3934 2013-08-28  Torbjorn Granlund  <tege (a] gmplib.org>
   3935 
   3936 	* mpn/x86_64/coreisbr/divrem_1.asm: New file.
   3937 
   3938 2013-08-23  Torbjorn Granlund  <tege (a] gmplib.org>
   3939 
   3940 	* mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on
   3941 	copyi-palignr.asm.
   3942 
   3943 	* mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt".
   3944 	* mpn/x86_64/fastsse/copyd-palignr.asm: Likewise.
   3945 	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
   3946 	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise.
   3947 	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
   3948 	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
   3949 	* mpn/x86_64/fastsse/tabselect.asm: Likewise.
   3950 
   3951 	* mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file.
   3952 
   3953 	* mpn/alpha/aorslsh2_n.asm: New file.
   3954 	* mpn/alpha/aorslsh1_n.asm: Rewrite.
   3955 	* mpn/alpha/ev6/aorslsh1_n.asm: New file.
   3956 
   3957 2013-08-21  Torbjorn Granlund  <tege (a] gmplib.org>
   3958 
   3959 	* mpn/alpha/sqr_diag_addlsh1.asm: New file.
   3960 	* mpn/alpha/sqr_diagonal.asm: Remove.
   3961 	* mpn/alpha/ev6/sqr_diagonal.asm: Remove.
   3962 
   3963 2013-08-20  Torbjorn Granlund  <tege (a] gmplib.org>
   3964 
   3965 	* mpn/powerpc32/sqr_diag_addlsh1.asm: New file.
   3966 	* mpn/powerpc32/sqr_diagonal.asm: Remove.
   3967 
   3968 2013-08-15  Torbjorn Granlund  <tege (a] gmplib.org>
   3969 
   3970 	* mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file.
   3971 
   3972 2013-08-05  Torbjorn Granlund  <tege (a] gmplib.org>
   3973 
   3974 	* mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite.
   3975 
   3976 2013-08-04  Torbjorn Granlund  <tege (a] gmplib.org>
   3977 
   3978 	* mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file.
   3979 
   3980 	* mpn/x86_64/bd1/mul_2.asm: New file.
   3981 
   3982 	* mpn/x86_64/coreihwl/gmp-mparam.h: New file.
   3983 
   3984 2013-08-03  Torbjorn Granlund  <tege (a] gmplib.org>
   3985 
   3986 	* mpn/x86_64/coreihwl/mulx/mul_2.asm: New file.
   3987 	* mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file.
   3988 
   3989 	* mpn/x86_64/coreinhm/aorsmul_1.asm: New file.
   3990 
   3991 	* mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles.
   3992 
   3993 	* mpn/x86_64/coreisbr/mul_2.asm: New file.
   3994 
   3995 2013-08-02  Torbjorn Granlund  <tege (a] gmplib.org>
   3996 
   3997 	* mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite.
   3998 
   3999 2013-08-01  Torbjorn Granlund  <tege (a] gmplib.org>
   4000 
   4001 	* mpn/x86_64/bd1/mul_basecase.asm: New file.
   4002 
   4003 	* mpn/x86_64/coreisbr/mul_basecase.asm: New file.
   4004 
   4005 	* mpn/x86_64/coreihwl/aorsmul_1.asm: New file.
   4006 
   4007 2013-07-31  Torbjorn Granlund  <tege (a] gmplib.org>
   4008 
   4009 	* mpn/x86_64/atom/mul_2.asm: New file.
   4010 	* mpn/x86_64/atom/addmul_2.asm: New file.
   4011 	* mpn/x86_64/atom/mul_1.asm: New file.
   4012 	* mpn/x86_64/atom/aorsmul_1.asm: New file.
   4013 
   4014 	* mpn/x86_64/coreihwl/mul_1.asm: New file.
   4015 
   4016 	* configure.ac (x86): Add Haswell-specific path.
   4017 
   4018 	* configure.in (fat_functions): Add cnd_add_n, cnd_sub_n..
   4019 	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
   4020 	* gmp-impl.h: Adjust corresponding declarations.
   4021 
   4022 	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
   4023 	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
   4024 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
   4025 	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
   4026 
   4027 2013-07-30  Torbjorn Granlund  <tege (a] gmplib.org>
   4028 
   4029 	* mpn/x86_64/coreisbr/popcount.asm: New file.
   4030 
   4031 2013-07-23  Torbjorn Granlund  <tege (a] gmplib.org>
   4032 
   4033 	* mpn/x86_64/bobcat/aors_n.asm: New file.
   4034 
   4035 	* mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn.
   4036 
   4037 	* mpn/x86_64/bd1/aorrlsh1_n.asm: New file.
   4038 	* mpn/x86_64/bd1/sublsh1_n.asm: New file.
   4039 
   4040 2013-07-22  Torbjorn Granlund  <tege (a] gmplib.org>
   4041 
   4042 	* mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode.
   4043 	* mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
   4044 
   4045 2013-07-16  Torbjorn Granlund  <tege (a] gmplib.org>
   4046 
   4047 	* doc/gmp.texi: Declare countless of function arguments as 'const'.
   4048 
   4049 2013-07-15  Torbjorn Granlund  <tege (a] gmplib.org>
   4050 
   4051 	* mpn/x86_64/core2/aors_n.asm: Rewrite.
   4052 
   4053 	* mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per
   4054 	Niels' suggestion.
   4055 	* mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code.
   4056 
   4057 2013-07-14  Torbjorn Granlund  <tege (a] gmplib.org>
   4058 
   4059 	* mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL.
   4060 	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
   4061 	* mpn/powerpc64/mode64/mod_1_1.asm: Likewise.
   4062 	* mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
   4063 
   4064 2013-07-13  Torbjorn Granlund  <tege (a] gmplib.org>
   4065 
   4066 	* mpn/x86/atom/cnd_add_n.asm: New file.
   4067 	* mpn/x86/atom/cnd_sub_n.asm: New file.o
   4068 
   4069 2013-07-12  Torbjorn Granlund  <tege (a] gmplib.org>
   4070 
   4071 	* mpn/generic/sbpi1_div_sec.c: Partial rewrite.
   4072 
   4073 2013-07-11  Torbjorn Granlund  <tege (a] gmplib.org>
   4074 
   4075 	* mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1,
   4076 	NHM, Atom.
   4077 
   4078 2013-07-05  Torbjorn Granlund  <tege (a] gmplib.org>
   4079 
   4080 	* mpn/powerpc64/p7/copyi.asm: Handle n = 0.
   4081 	* mpn/powerpc64/p7/copyd.asm: Likewise.
   4082 
   4083 2013-07-04  Torbjorn Granlund  <tege (a] gmplib.org>
   4084 
   4085 	* mpn/powerpc64/mode64/p7/aormul_2.asm: New file.
   4086 
   4087 	* mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define.
   4088 	* mpn/powerpc64/aix.m4: New define (actually undefine).
   4089 	* mpn/powerpc64/elf.m4: Likewise.
   4090 
   4091 2013-07-03  Torbjorn Granlund  <tege (a] gmplib.org>
   4092 
   4093 	* mpn/powerpc64/com.asm: Rewrite.
   4094 
   4095 	* mpn/powerpc64/p7/copyi.asm: New file.
   4096 	* mpn/powerpc64/p7/copyd.asm: New file.
   4097 
   4098 2013-07-02  Torbjorn Granlund  <tege (a] gmplib.org>
   4099 
   4100 	* mpn/powerpc64/mode64/gcd_1.asm: New file.
   4101 	* mpn/powerpc64/mode64/p7/gcd_1.asm: New file.
   4102 
   4103 2013-07-01  Torbjorn Granlund  <tege (a] gmplib.org>
   4104 
   4105 	* configure.ac: Comment out AC_PROG_F77.
   4106 
   4107 	* mpn/powerpc64/mode64/rsh1add_n.asm: Remove.
   4108 	* mpn/powerpc64/mode64/rsh1sub_n.asm: Remove.
   4109 	* mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on
   4110 	removed files.
   4111 
   4112 2013-06-28  Marc Glisse  <marc.glisse (a] inria.fr>
   4113 
   4114 	* cxx/ismpf.cc: Use GMP_DECIMAL_POINT.
   4115 	* cxx/osmpf.cc: Likewise.
   4116 	* tests/cxx/t-locale.cc: Likewise.
   4117 
   4118 2013-06-28  Torbjorn Granlund  <tege (a] gmplib.org>
   4119 
   4120 	* mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file.
   4121 	* mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file.
   4122 	* mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file.
   4123 
   4124 	* mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname.
   4125 
   4126 2013-06-27  Torbjorn Granlund  <tege (a] gmplib.org>
   4127 
   4128 	* mpn/powerpc64/mode64/p7/aors_n.asm: New file.
   4129 
   4130 2013-06-22  Torbjorn Granlund  <tege (a] gmplib.org>
   4131 
   4132 	* aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove.
   4133 	* aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files.
   4134 
   4135 2013-06-19  Torbjorn Granlund  <tege (a] gmplib.org>
   4136 
   4137 	* mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code.
   4138 	* mpn/powerpc64/p6/rshift.asm: Likewise.
   4139 	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
   4140 
   4141 2013-06-17  Torbjorn Granlund  <tege (a] gmplib.org>
   4142 
   4143 	* mpn/powerpc64/p6/lshift.asm: Fix typo in label reference.
   4144 	For 32-bit mode, zero extend `n' argument and split retval.
   4145 	* mpn/powerpc64/p6/rshift.asm: Likewise.
   4146 	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
   4147 
   4148 2013-06-10  Torbjorn Granlund  <tege (a] gmplib.org>
   4149 
   4150 	* mpn/generic/mu_div_q.c: Remove obsolete comment.
   4151 
   4152 2013-06-09  Marc Glisse  <marc.glisse (a] inria.fr>
   4153 
   4154 	* mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow.
   4155 	* mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST.
   4156 
   4157 2013-05-31  Torbjorn Granlund  <tege (a] gmplib.org>
   4158 
   4159 	* mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division,
   4160 	never just for tail.  (This fixes performance issues at the expense of
   4161 	memory needs.)
   4162 
   4163 2013-05-26  Torbjorn Granlund  <tege (a] gmplib.org>
   4164 
   4165 	* configure.ac (*sparc*-*-*): Major overhaul.
   4166 
   4167 2013-05-22  Torbjorn Granlund  <tege (a] gmplib.org>
   4168 
   4169 	* doc/gmp.texi (Reporting Bugs): Ask for configure's output.
   4170 
   4171 	* mpn/ia64/divrem_2.asm: Don't clobber f16-f18.
   4172 
   4173 2013-05-20  Torbjorn Granlund  <tege (a] gmplib.org>
   4174 
   4175 	* mpn/arm/udiv.asm: Change spacing to work around binutils bug.
   4176 
   4177 2013-05-16  Torbjorn Granlund  <tege (a] gmplib.org>
   4178 
   4179 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   4180 
   4181 	* tests/misc.c (tests_hardware_getround, tests_hardware_setround):
   4182 	Avoid assembly dependency unless WANT_ASSEMBLY.
   4183 
   4184 	* configure.ac (WANT_ASSEMBLY): Conditionally define.
   4185 
   4186 2013-05-14  Torbjorn Granlund  <tege (a] gmplib.org>
   4187 
   4188 	* configure.ac (arm1156): Don't fall back to plain v6 compiler option.
   4189 
   4190 2013-05-11  Torbjorn Granlund  <tege (a] gmplib.org>
   4191 
   4192 	* mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64.  Streamline.
   4193 	* mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline.
   4194 
   4195 2013-05-10  Torbjorn Granlund  <tege (a] gmplib.org>
   4196 
   4197 	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support.
   4198 	* mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support.
   4199 
   4200 	* mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent
   4201 	directory value.
   4202 
   4203 2013-05-09  Torbjorn Granlund  <tege (a] gmplib.org>
   4204 
   4205 	* configure.ac (--enable-fake-cpuid): New option.
   4206 	* mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting.
   4207 	* mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise.
   4208 
   4209 	* mpn/x86_64/bd1/mul_1.asm: Fix typo.
   4210 
   4211 2013-05-07  Torbjorn Granlund  <tege (a] gmplib.org>
   4212 
   4213 	* mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request.
   4214 	(fake_cpuid_available): Remove unused function.
   4215 
   4216 	* mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments.
   4217 	* mpn/generic/mod_1_2.c: Likewise.
   4218 	* mpn/generic/mod_1_3.c: Likewise.
   4219 	* mpn/generic/mod_1_4.c: Likewise.
   4220 	* mpn/generic/divrem_2.c: Likewise.
   4221 
   4222 2013-05-06  Torbjorn Granlund  <tege (a] gmplib.org>
   4223 
   4224 	* config.guess (power*): Handle all ppc970 variants.
   4225 
   4226 2013-05-03  David S. Miller  <davem (a] davemloft.net>
   4227 
   4228 	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
   4229 	speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n,
   4230 	speed_mpn_rsblsh2_n): Don't define if these routines are macros.
   4231 	* tune/speed.c (routine): Likewise don't table if they are macros.
   4232 
   4233 	* mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings.
   4234 	* mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise.
   4235 	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise.
   4236 	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise.
   4237 	* mpn/sparc64/ultrasparct3/submul_1.asm: Likewise.
   4238 
   4239 2013-05-03  Torbjorn Granlund  <tege (a] gmplib.org>
   4240 
   4241 	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has
   4242 	effect.
   4243 
   4244 	* gmp-impl.h: Amend last change.
   4245 	* tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if
   4246 	a macro.
   4247 
   4248 2013-05-02  Torbjorn Granlund  <tege (a] gmplib.org>
   4249 
   4250 	* mpn/arm/copyd.asm: Suppress dead pointer update.
   4251 	* mpn/arm/copyi.asm: Likewise.
   4252 	* mpn/arm/neon/logops_n.asm: Likewise.
   4253 	* mpn/arm/neon/tabselect.asm: Likewise.
   4254 	* mpn/arm/rshift.asm: Likewise.
   4255 	* mpn/arm/tabselect.asm: Likewise.
   4256 	* mpn/arm/v6/dive_1.asm: Likewise
   4257 	* mpn/arm/v7a/cora15/neon/copyi.asm: Likewise.
   4258 
   4259 	* mpn/arm/v7a/cora15/neon/com.asm: New file.
   4260 
   4261 2013-05-01  Torbjorn Granlund  <tege (a] gmplib.org>
   4262 
   4263 	* mpn/sparc64/ultrasparct3/aormul_4.asm: New file.
   4264 
   4265 	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and
   4266 	mul_4 + addmul_4.
   4267 
   4268 	* mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code.
   4269 
   4270 	* mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input.
   4271 	(umulxhi): Save and restore o7 to allow it as in/out parameter.
   4272 
   4273 2013-04-29  Torbjorn Granlund  <tege (a] gmplib.org>
   4274 
   4275 	* mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named.
   4276 
   4277 	* mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite.
   4278 
   4279 	* mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite.
   4280 
   4281 	* mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file.
   4282 
   4283 	* gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc
   4284 	with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the
   4285 	latter.
   4286 
   4287 	* mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file.
   4288 
   4289 	* configure.ac (sparc-*-*): Recognise t5 along with t3 and t4.
   4290 	Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5.
   4291 
   4292 2013-04-27  Mike Frysinger  <vapier (a] gentoo.org>
   4293 
   4294 	* configure.ac (arm*-*-*): Set up path also for plainest CPU variants.
   4295 
   4296 2013-04-27  Torbjorn Granlund  <tege (a] gmplib.org>
   4297 
   4298 	* mpn/arm/v6/popham.asm: New file.
   4299 
   4300 	* mpn/arm/v7a/cora15/cnd-aors_n.asm: New file.
   4301 
   4302 2013-04-25  Torbjorn Granlund  <tege (a] gmplib.org>
   4303 
   4304 	* mpn/arm/mod_34lsub1.asm: Clear carry smarter.
   4305 
   4306 	* mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally
   4307 	used code.
   4308 
   4309 	* mpn/arm/v7a/cora15/submul_1.asm: New file.
   4310 
   4311 2013-04-24  Torbjorn Granlund  <tege (a] gmplib.org>
   4312 
   4313 	* mpn/arm/v7a/cora15/com.asm: New file.
   4314 
   4315 	* mpn/arm/v7a/cora15/logops_n.asm: New file.
   4316 
   4317 2013-04-19  Torbjorn Granlund  <tege (a] gmplib.org>
   4318 
   4319 	* mpn/arm/v7a/cora15/aors_n.asm: New file.
   4320 
   4321 	* mpn/arm/v7a/cora15/addmul_1.asm: Rewrite.
   4322 
   4323 2013-04-18  Torbjorn Granlund  <tege (a] gmplib.org>
   4324 
   4325 	* mpn/alpha/tabselect.asm: New file.
   4326 
   4327 2013-04-17  Torbjorn Granlund  <tege (a] gmplib.org>
   4328 
   4329 	* mpn/powerpc32/tabselect.asm: New file.
   4330 
   4331 	* longlong.h (arm64 count_trailing_zeros): New.
   4332 
   4333 	* mpn/arm64/invert_limb.asm: New file.
   4334 
   4335 	* mpn/generic/dive_1.c: Rewrite to use Hensel division also for
   4336 	size = 1.
   4337 
   4338 	* mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant.
   4339 
   4340 	* configure.ac: Remove "missing" from extra_functions_64 for coreibwl.
   4341 
   4342 	* mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment.
   4343 	* mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise.
   4344 
   4345 2013-04-16  Torbjorn Granlund  <tege (a] gmplib.org>
   4346 
   4347 	* mpn/alpha/invert_limb.asm: Generate table.
   4348 	* mpn/powerpc64/mode64/invert_limb.asm: Likewise.
   4349 	* mpn/s390_64/invert_limb.asm: Likewise.
   4350 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
   4351 	* mpn/x86_64/invert_limb_table.asm: Likewise.
   4352 
   4353 2013-04-15  David S. Miller  <davem (a] davemloft.net>
   4354 
   4355 	* mpn/sparc32/sparc-defs.m4 (LEA64): New macro.
   4356 	* mpn/sparc64/gcd_1.asm: Use it.
   4357 	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
   4358 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
   4359 	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
   4360 
   4361 	* mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE.
   4362 
   4363 2013-04-15  Torbjorn Granlund  <tege (a] gmplib.org>
   4364 
   4365 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry,
   4366 	it is not portable.
   4367 
   4368 	* mpn/sparc64/tabselect.asm: New file.
   4369 
   4370 	* mpn/x86/mmx/tabselect.asm: New file.
   4371 	* configure.ac (x86): Add x86/mmx to path for relevant CPUs.
   4372 
   4373 	* mpn/sparc64/gcd_1.asm: Use rdpc for PIC.
   4374 	* mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC.
   4375 	* mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC.
   4376 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc.
   4377 
   4378 	* Revert remaining parts of recent sparc LEA changes.
   4379 
   4380 2013-04-14  David S. Miller  <davem (a] davemloft.net>
   4381 
   4382 	* mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes.
   4383 	* mpn/sparc64/gcd_1.asm: Likewise.
   4384 
   4385 2013-04-13  Torbjorn Granlund  <tege (a] gmplib.org>
   4386 
   4387 	* mpn/x86_64/bd1/tabselect.asm: New file.
   4388 	* mpn/x86_64/coreisbr/tabselect.asm: New file.
   4389 	* mpn/x86_64/k10/tabselect.asm: New file.
   4390 	* mpn/x86_64/coreinhm/tabselect.asm: New file.
   4391 	* mpn/x86_64/core2/tabselect.asm: New file.
   4392 	* mpn/x86_64/pentium4/tabselect.asm: New file.
   4393 
   4394 	* mpn/x86_64/fastsse/tabselect.asm: New file.
   4395 	* mpn/arm/neon/tabselect.asm: Rewrite.
   4396 	* mpn/arm/tabselect.asm: Rewrite.
   4397 	* mpn/powerpc64/tabselect.asm: Rewrite.
   4398 	* mpn/x86_64/tabselect.asm: Rewrite.
   4399 
   4400 	* tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code,
   4401 	making .r argument be table width.
   4402 
   4403 2013-04-11  David S. Miller  <davem (a] davemloft.net>
   4404 
   4405 	* mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label.
   4406 	(LEA_LEAF): Likewise.
   4407 
   4408 2013-04-11  Niels Mller  <nisse (a] lysator.liu.se>
   4409 
   4410 	* mpn/arm/v6/submul_1.asm: New file, using the corresponding
   4411 	addmul_1 loop + complement trick.
   4412 
   4413 2013-04-10  David S. Miller  <davem (a] davemloft.net>
   4414 
   4415 	* acinclude.m4 (GMP_ASM_SPARC_GOTDATA,
   4416 	GMP_ASM_SPARC_SHARED_THUNKS): New feature tests.
   4417 	* configure.ac: Call GMP_ASM_SPARC_GOTDATA and
   4418 	GMP_ASM_SPARC_SHARED_THUNKS on sparc.
   4419 	* mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros.
   4420 	* mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK.
   4421 	* mpn/sparc32/v8/addmul_1.asm: Likewise.
   4422 	* mpn/sparc32/v8/mul_1.asm: Likewise.
   4423 	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
   4424 	* mpn/sparc32/v8/udiv.asm: Likewise.
   4425 	* mpn/sparc64/gcd_1.asm: Likewise.
   4426 	* mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
   4427 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
   4428 	* mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
   4429 	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32.
   4430 
   4431 2013-04-09  Torbjorn Granlund  <tege (a] gmplib.org>
   4432 
   4433 	* longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3.
   4434 
   4435 	* config.guess (sparc*): Invoke set_cc_for_build to get $dummy.
   4436 
   4437 2013-04-08  Torbjorn Granlund  <tege (a] gmplib.org>
   4438 
   4439 	* config.guess: Rework tmp file names, make sure to remove tmp files.
   4440 
   4441 	* mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private
   4442 	table.
   4443 
   4444 	* mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for
   4445 	shift ops.
   4446 
   4447 2013-04-07  Torbjorn Granlund  <tege (a] gmplib.org>
   4448 
   4449 	* mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file.
   4450 
   4451 	* longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and
   4452 	count_leading_zeros conditionally under the symbol __sparc_vis3.
   4453 
   4454 	* mpn/arm/dive_1.asm: New file.
   4455 	* mpn/arm/v6/dive_1.asm: New file.
   4456 
   4457 	* mpn/arm/v6t2/mode1o.asm: Make trivial change to avoid v6t2...
   4458 	* mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly.
   4459 
   4460 	* mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first.
   4461 
   4462 2013-04-04  David S. Miller  <davem (a] davemloft.net>
   4463 
   4464 	* mpn/sparc64/ultrasparct3/add_n.asm: Rewrite.
   4465 	* mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite.
   4466 
   4467 	* mpn/sparc64/ultrasparct3/invert_limb.asm: Align table.
   4468 
   4469 2013-04-04  Torbjorn Granlund  <tege (a] gmplib.org>
   4470 
   4471 	* mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt.
   4472 
   4473 	* tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb.
   4474 
   4475 	* tests/mpn/t-div.c (random_word): Remove.  Let callers invoke urandom.
   4476 
   4477 	* mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite.
   4478 
   4479 	* mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file.
   4480 	* mpn/sparc64/ultrasparct3/dive_1.asm: New file.
   4481 	* mpn/sparc64/ultrasparct3/invert_limb.asm: New file.
   4482 	* mpn/sparc64/ultrasparct3/mod_1_4.asm: New file.
   4483 	* mpn/sparc64/ultrasparct3/mode1o.asm: New file.
   4484 
   4485 2013-04-03  Torbjorn Granlund  <tege (a] gmplib.org>
   4486 
   4487 	* mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed.
   4488 
   4489 2013-04-02  Torbjorn Granlund  <tege (a] gmplib.org>
   4490 
   4491 	* mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks.
   4492 	 (lzcnt): New.
   4493 	* mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function.
   4494 
   4495 	* mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here...
   4496 	* mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here.
   4497 
   4498 	* mpn/sparc64/ultrasparc1234/lshift.asm: Remove.
   4499 	* mpn/sparc64/ultrasparc1234/rshift.asm: Remove.
   4500 
   4501 2013-04-01  Torbjorn Granlund  <tege (a] gmplib.org>
   4502 
   4503 	* mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
   4504 	allowing use in functions that does not do save/restore.
   4505 
   4506 	* mpn/sparc64/gcd_1.asm: Tweak for tighter loop.
   4507 
   4508 2013-03-31  David S. Miller  <davem (a] davemloft.net>
   4509 
   4510 	* mpn/sparc64/lshift.asm: New file.
   4511 	* mpn/sparc64/rshift.asm: New file.
   4512 	* mpn/sparc64/lshiftc.asm: New file.
   4513 
   4514 2013-03-31  Torbjorn Granlund  <tege (a] gmplib.org>
   4515 
   4516 	* mpn/sparc64/ultrasparct1/lshift.asm: Remove.
   4517 	* mpn/sparc64/ultrasparct1/rshift.asm: Remove.
   4518 	* mpn/sparc64/ultrasparct1/lshiftc.asm: Remove.
   4519 
   4520 2013-03-29  Torbjorn Granlund  <tege (a] gmplib.org>
   4521 
   4522 	* mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi.
   4523 
   4524 2013-03-28  Torbjorn Granlund  <tege (a] gmplib.org>
   4525 
   4526 	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'.
   4527 	(mpn_mod_1s_4p_cps): Update from generic code.
   4528 
   4529 2013-03-27  Torbjorn Granlund  <tege (a] gmplib.org>
   4530 
   4531 	* mpn/generic/trialdiv.c: Make variables 'const' to match tables.
   4532 
   4533 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'.
   4534 	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise.
   4535 	* mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise.
   4536 	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise.
   4537 	* gmp-impl.h: Update prototypes.
   4538 
   4539 	* mpn/x86_64/mulx/aorsmul_1.asm: New file.
   4540 	* mpn/x86_64/mulx/addmul_1.asm: Remove.
   4541 
   4542 2013-03-26  Niels Mller  <nisse (a] lysator.liu.se>
   4543 
   4544 	Make mpn_cnd_add_n and mpn_cnd_sub_n public.
   4545 	* doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and
   4546 	mpn_cnd_sub_n.
   4547 	* gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes
   4548 	here...
   4549 	* gmp-impl.h: ... from here.
   4550 
   4551 2013-03-26  Torbjorn Granlund  <tege (a] gmplib.org>
   4552 
   4553 	* mpn/x86/pentium4/sse2/cnd_add_n.asm: New file.
   4554 	* mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file.
   4555 	* mpn/x86/cnd_aors_n.asm: New file.
   4556 
   4557 2013-03-25  David S. Miller  <davem (a] davemloft.net>
   4558 
   4559 	* mpn/sparc64/ultrasparct3/hamdist.asm: New file.
   4560 	* mpn/sparc64/ultrasparct3/popcount.asm: New file.
   4561 
   4562 2013-03-25  Torbjorn Granlund  <tege (a] gmplib.org>
   4563 
   4564 	* mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm.
   4565 	* mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm.
   4566 	* mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm.
   4567 
   4568 2013-03-24  Torbjorn Granlund  <tege (a] gmplib.org>
   4569 
   4570 	* mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file.
   4571 	* mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file.
   4572 	* mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file.
   4573 	* mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file.
   4574 
   4575 	* configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files.
   4576 
   4577 	* tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly
   4578 	assert of mp_limb being non-negative.
   4579 
   4580 2013-03-21  Torbjorn Granlund  <tege (a] gmplib.org>
   4581 
   4582 	* mpn/arm/neon/lshiftc.asm: New file.
   4583 
   4584 	* mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop.
   4585 
   4586 	* gen-trialdivtab.c: Output just raw data, remove actual variables.
   4587 	* mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here,
   4588 	and make them 'const'.
   4589 
   4590 2013-03-20  Torbjorn Granlund  <tege (a] gmplib.org>
   4591 
   4592 	* config.guess: Rework arm CPU recognition.
   4593 	* config.sub: Corresponding updates.
   4594 	* configure.ac: Likewise.
   4595 
   4596 	* mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default.
   4597 
   4598 	* mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..".
   4599 	* mpn/arm/v7a/cora15/neon/copyd.asm: Likewise.
   4600 
   4601 	* config.guess: Tack on "neon" for appropriate arm CPUs.
   4602 	* configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15.
   4603 
   4604 2013-03-19 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4605 
   4606 	* mpf/fits_u.h: Accept numbers truncating to zero before checking the
   4607 	sign.
   4608 	* tests/mpf/t-fits.c: Check new edges.
   4609 
   4610 2013-03-19  Torbjorn Granlund  <tege (a] gmplib.org>
   4611 
   4612 	* tests/arm32check.c: Get printing of clobbered register right.
   4613 
   4614 	* mpn/arm/neon/popcount.asm: New file.
   4615 	* mpn/arm/neon/hamdist.asm: New file.
   4616 
   4617 	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and
   4618 	arm32check.c.
   4619 
   4620 2013-03-18  Torbjorn Granlund  <tege (a] gmplib.org>
   4621 
   4622 	* configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS.
   4623 
   4624 	* tests/arm32call.asm: New file.
   4625 	* tests/arm32check.c: New file.
   4626 
   4627 	* mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use.
   4628 	(EPILOGUE_cpu): Define.
   4629 
   4630 	* mpn/arm/v6/addmul_3.asm: Make code work for PIC.
   4631 
   4632 	* tests/x86call.asm: Modernise asm syntax.
   4633 	* tests/amd64call.asm: Likewise.
   4634 
   4635 	* mpn/x86/darwin.m4 (m4append): Move definition from here...
   4636 	* mpn/asm-defs.m4: ...to here.
   4637 
   4638 2013-03-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4639 
   4640 	* doc/gmp.texi (--enable-fat): No quote in concept index.
   4641 
   4642 	* mpf/swap.c: Reduce the number of variables.
   4643 
   4644 2012-03-17  Marc Glisse  <marc.glisse (a] inria.fr>
   4645 
   4646 	* tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file.
   4647 	* tests/cxx/Makefile.am: Add new file. Reorder the tests.
   4648 
   4649 2013-03-17  Torbjorn Granlund  <tege (a] gmplib.org>
   4650 
   4651 	* mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas.
   4652 
   4653 	* mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code.
   4654 
   4655 	* mpn/arm/v6/addmul_3.asm: New file.
   4656 
   4657 	* mpn/arm/v7a/cora15/copyd.asm: Tweak.
   4658 
   4659 	* mpn/arm64/copyi.asm: New file.
   4660 	* mpn/arm64/copyd.asm: New file.
   4661 
   4662 2013-03-16  Torbjorn Granlund  <tege (a] gmplib.org>
   4663 
   4664 	* mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance.
   4665 
   4666 2013-03-14  Torbjorn Granlund  <tege (a] gmplib.org>
   4667 
   4668 	* mpn/ia64/cnd_aors_n.asm: New file.
   4669 
   4670 	* mpn/arm64/cnd_aors_n.asm: New file.
   4671 
   4672 	* mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition.
   4673 
   4674 	* mpn/ia64/aors_n.asm: Remove a redundant ASM_START.
   4675 
   4676 	* mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution.
   4677 
   4678 	* mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently
   4679 	prune missing.asm from path.
   4680 	* mpn/x86_64/mulx/adx/missing-call.m4: Likewise.
   4681 	* mpn/x86_64/mulx/adx/missing-inline.m4: Likewise.
   4682 	* mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path.
   4683 
   4684 2013-03-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4685 
   4686 	* mpz/cong_2exp.c: Write loops in a cleaner way.
   4687 	* gmp-impl.h (mpz_zero_p): Likewise.
   4688 
   4689 2013-03-12  Niels Mller  <nisse (a] lysator.liu.se>
   4690 
   4691 	New names mpn_cnd_add_n and mpn_cnd_sub_n.
   4692 	* mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and
   4693 	function, from addcnd.c:mpn_addcnd_n.
   4694 	* mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from
   4695 	subcnd.c:mpn_subcnd_n.
   4696 	* mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and
   4697 	renamed functions.
   4698 	* mpn/x86_64/cnd_aors_n.asm: Analogous renaming.
   4699 	* mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming.
   4700 	* gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes
   4701 	with new names.
   4702 	* configure.ac: Updated for new names.
   4703 	* tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n.
   4704 	(refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n.
   4705 	* tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated
   4706 	prototypes with new names.
   4707 	* tune/common.c (speed_mpn_cnd_add_n): Renamed, from
   4708 	speed_mpn_addcnd_n, call mpn_cnd_add_n.
   4709 	(speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call
   4710 	mpn_cnd_sub_n.
   4711 	* tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated
   4712 	prototypes with new names.
   4713 	* tune/speed.c (routine): Updated list with new names.
   4714 	* tests/devel/try.c: Updated for new mpn_cnd_* names.
   4715 	* mpn/generic/sbpi1_div_sec.c: Likewise.
   4716 	* mpn/generic/powm_sec.c: Likewise.
   4717 
   4718 2013-03-12  Torbjorn Granlund  <tege (a] gmplib.org>
   4719 
   4720 	* configure.ac: Add "missing" to extra_functions_64 for coreibwl.
   4721 
   4722 	* mpn/x86_64/mulx/adx/addmul_1.asm: Simplify.  Make FAKE_MULXADX the
   4723 	default awaiting proper qemu behaviour.
   4724 
   4725 2013-03-11  Torbjorn Granlund  <tege (a] gmplib.org>
   4726 
   4727 	* mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64.
   4728 
   4729 	* tests/mpz/t-powm_ui.c: Test larger arguments.  General cleanup.
   4730 
   4731 	* mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements.
   4732 
   4733 2013-03-10  Niels Mller  <nisse (a] lysator.liu.se>
   4734 
   4735 	* mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and
   4736 	mpn_subcnd_n.
   4737 	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC)
   4738 	(mpn_powm_sec): Update calls of mpn_subcnd_n.
   4739 
   4740 	* tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update
   4741 	declarations.
   4742 	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar
   4743 	reorder of arguments.
   4744 	* tests/devel/try.c (call): Pass condition first, for
   4745 	TYPE_ADDCND_N and TYPE_SUBCND_N.
   4746 
   4747 	* tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update
   4748 	to pass condition as first argument.
   4749 
   4750 	* gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations.
   4751 
   4752 	* mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make
   4753 	condition the first argument.
   4754 	* mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise.
   4755 	* mpn/arm/aorscnd_n.asm: Likewise.
   4756 	* mpn/x86_64/aorscnd_n.asm: Likewise.
   4757 	* mpn/powerpc64/mode64/aorscnd_n.asm: Likewise.
   4758 
   4759 2013-03-10  Torbjorn Granlund  <tege (a] gmplib.org>
   4760 
   4761 	* mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns.
   4762 	* mpn/x86_64/mulx/adx/missing-call.m4: Call variant.
   4763 	* mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant.
   4764 
   4765 	* mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns.
   4766 	* mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for
   4767 	v9-2011 insn.
   4768 
   4769 	* configure.ac: Strip `haswell' from paths for now.
   4770 
   4771 	* mpn/x86_64/mulx/addmul_1.asm: New.
   4772 	* mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir.
   4773 	* mpn/x86_64/mulx/adx/addmul_1.asm: Likewise.
   4774 	* mpn/x86_64/haswell: Remove.
   4775 
   4776 	* mpn/arm/v7a/cora15/mul_1.asm: New file.
   4777 	* mpn/arm/v7a/cora15/addmul_1.asm: New file.
   4778 
   4779 2013-03-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4780 
   4781 	* tests/mpz/t-cong_2exp.c: Improve coverage.
   4782 
   4783 2013-03-09  Torbjorn Granlund  <tege (a] gmplib.org>
   4784 
   4785 	* mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4.
   4786 	* mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise.
   4787 
   4788 	* mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo.
   4789 
   4790 2013-03-07  Torbjorn Granlund  <tege (a] gmplib.org>
   4791 
   4792 	* mpn/arm/v7a/cora9/gmp-mparam.h: New file.
   4793 
   4794 	* configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2.
   4795 
   4796 	* mpn/sparc64/ultrasparct3/aormul_2.asm: New file.
   4797 
   4798 	* mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry
   4799 	propagating adds.
   4800 
   4801 2013-03-06  David Miller  <davem (a] davemloft.net>
   4802 
   4803 	* config.guess: Recognize UltraSparc T4 under Linux.
   4804 	* configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4.
   4805 	Append -xarch=v8plusd or -xarch=v9d to command line, as needed.
   4806 	* mpn/sparc64/ultrasparct3/mul_1.asm: New file.
   4807 	* mpn/sparc64/ultrasparct3/addmul_1.asm: New file.
   4808 	* mpn/sparc64/ultrasparct3/submul_1.asm: New file.
   4809 	* mpn/sparc64/ultrasparct3/add_n.asm: New file.
   4810 	* mpn/sparc64/ultrasparct3/sub_n.asm: New file.
   4811 
   4812 	* mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add
   4813 	T2/T3/T4 timings.
   4814 	* mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise.
   4815 	* mpn/sparc32/ultrasparct1/submul_1.asm: Likewise.
   4816 
   4817 2013-03-04  Torbjorn Granlund  <tege (a] gmplib.org>
   4818 
   4819 	* mpn/arm/neon/lorrshift.asm: New file.
   4820 
   4821 2013-03-03  Torbjorn Granlund  <tege (a] gmplib.org>
   4822 
   4823 	* mpn/arm/v7a/cora15/copyd.asm: New file.
   4824 	* mpn/arm/v7a/cora15/copyi.asm: New file.
   4825 
   4826 	* mpn/arm64/logops_n.asm: New file.
   4827 	* mpn/arm64/gcd_1.asm: New file.
   4828 	* mpn/arm64/aorsmul_1.asm: New file.
   4829 	* mpn/arm64/addmul_1.asm: Remove.
   4830 	* mpn/arm64/aors_n.asm: Complete rewrite.
   4831 
   4832 	* mpn/arm/tabselect.asm: New file.
   4833 	* mpn/arm/neon/tabselect.asm: New file.
   4834 
   4835 	* mpn/arm/copyi.asm: Software pipeline.
   4836 	* mpn/arm/copyd.asm: Likewise.
   4837 
   4838 	* config.guess: Rework tmp file handling to resemble configfsf.guess's.
   4839 
   4840 2013-03-03  Niels Mller  <nisse (a] lysator.liu.se>
   4841 
   4842 	* doc/gmp.texi (Integer Special Functions): Document
   4843 	mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify,
   4844 	mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N.
   4845 
   4846 	* mpz/roinit_n.c (mpz_roinit_n): Normalize the input.
   4847 
   4848 2013-02-27  Niels Mller  <nisse (a] lysator.liu.se>
   4849 
   4850 	* tune/common.c (speed_measure): Increase repetition count if we
   4851 	get a zero measurement.
   4852 
   4853 2013-02-26  Niels Mller  <nisse (a] lysator.liu.se>
   4854 
   4855 	* tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if
   4856 	compiler supports c99.
   4857 
   4858 2013-02-25  Niels Mller  <nisse (a] lysator.liu.se>
   4859 
   4860 	* mpz/limbs_finish.c (mpz_limbs_finish): New file and function.
   4861 	* mpz/limbs_modify.c (mpz_limbs_modify): New file and function.
   4862 	* mpz/limbs_read.c (mpz_limbs_read): New file and function.
   4863 	* mpz/limbs_write.c (mpz_limbs_write): New file and function.
   4864 	* mpz/roinit_n.c (mpz_roinit_n): New file and function.
   4865 	* gmp-h.in: Declare new functions.
   4866 	(MPZ_ROINIT_N): New macro.
   4867 	* mpz/Makefile.am (libmpz_la_SOURCES): Added new files.
   4868 	* Makefile.am (MPZ_OBJECTS): Added new object files.
   4869 
   4870 	* tests/mpz/t-limbs.c: New testcase.
   4871 	* tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs.
   4872 
   4873 2013-02-22  Torbjorn Granlund  <tege (a] gmplib.org>
   4874 
   4875 	* configure.ac: Fix typo in adx/mulx path stripping code.
   4876 	* config.sub: Match coreibwl.
   4877 
   4878 2013-02-20  Niels Mller  <nisse (a] lysator.liu.se>
   4879 
   4880 	* tests/mpq/t-get_d.c (check_random): Rewrote to make test less
   4881 	dependent on float operations. Fixes problem with m68k-linux and
   4882 	extended float precision.
   4883 
   4884 2013-02-20  Torbjorn Granlund  <tege (a] gmplib.org>
   4885 
   4886 	* mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file.
   4887 
   4888 	* configure.ac: Support coreibwl.  Use proper name for ADX extension.
   4889 	* acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX.
   4890 
   4891 	* tests/tests.h (TESTS_REPS): Keep count >= 1.
   4892 
   4893 2013-02-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4894 
   4895 	* gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]:
   4896 	Optimise _si using _ui for positive arguments.
   4897 	(__gmp_hypot_function): Use _mul_ui to square an ui, abs for si.
   4898 
   4899 	* mpz/remove.c: Delay allocation in the generic case; use swap
   4900 	instead of set.
   4901 	* mpn/generic/remove.c: Delay (possibly smaller) allocation.
   4902 
   4903 2013-02-17  Marc Glisse  <marc.glisse (a] inria.fr>
   4904 
   4905 	* cxx/osdoprnti.cc: Use <stdarg.h> and <string.h> rather than <cstdarg>
   4906 	and <cstring> (revert 2002-12-21).
   4907 
   4908 	* tests/cxx/Makefile.am: Link with libm.
   4909 	* tests/cxx/t-ops2.cc: Comment about more tests. Use <math.h> rather
   4910 	than <cmath> and using namespace. Don't include <iostream>.
   4911 
   4912 	* gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS,
   4913 	__GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros.
   4914 	(__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies,
   4915 	__gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less,
   4916 	__gmp_cmp_function): Use __GMPXX_TMPQ_D.
   4917 	* tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX.
   4918 
   4919 	* gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use
   4920 	__GMPXX_CONSTANT_TRUE.
   4921 
   4922 2013-02-16  Marc Glisse  <marc.glisse (a] inria.fr>
   4923 
   4924 	* gmpxx.h: Include <algorithm>.
   4925 
   4926 2013-02-16  Torbjorn Granlund  <tege (a] gmplib.org>
   4927 
   4928 	* mpn/Makefile.am (TARG_DIST): Add arm64.
   4929 
   4930 	* mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of
   4931 	'.protected" to please Sun's assembler, but also for semantic reasons.
   4932 
   4933 2013-02-15  Torbjorn Granlund  <tege (a] gmplib.org>
   4934 
   4935 	* configure.ac (arm64*-*-*): Match this.
   4936 
   4937 	* mpn/arm64/aors_n.asm: New file.
   4938 	* mpn/arm64/addmul_1.asm: New file.
   4939 	* mpn/arm64/mul_1.asm: New file.
   4940 
   4941 2013-02-15  Marc Glisse  <marc.glisse (a] inria.fr>
   4942 
   4943 	* gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS,
   4944 	__GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros.
   4945 	(mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d,
   4946 	assign_ui, assign_si, assign_d]: New functions.
   4947 	(__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros.
   4948 	(__GMPXX_CONSTANT_TRUE): New macro.
   4949 
   4950 2013-02-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4951 
   4952 	* gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST.
   4953 	* mpz/fits_s.h: Use NEG_CAST.
   4954 
   4955 2013-02-14  Marc Glisse  <marc.glisse (a] inria.fr>
   4956 
   4957 	* gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less.
   4958 	(__gmp_binary_equal): Forward to itself after swapping operands.
   4959 
   4960 2013-02-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4961 
   4962 	* mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values.
   4963 	* mpf/set_str.c: Update offset accordingly.
   4964 	* mpz/inp_str.c: Likewise.
   4965 	* mpz/set_str.c: Likewise.
   4966 
   4967 	* gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1.
   4968 	* tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1.
   4969 
   4970 	* mpz/clrbit.c: Reorganise branches.
   4971 	* mpz/setbit.c: Likewise.
   4972 	* mpz/combit.c: Same micro-optimisations as in set/clr.
   4973 
   4974 	* mpz/aors_ui.h: No realloc if size was zero.
   4975 	* mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U.
   4976 
   4977 	* gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST.
   4978 	* mpq/cmp_si.c: Use NEG_CAST.
   4979 	* mpz/cmp_si.c: Reorganise branches.
   4980 
   4981 2013-02-13  Torbjorn Granlund  <tege (a] gmplib.org>
   4982 
   4983 	* acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests.
   4984 	* configure.ac: Use new feature tests.
   4985 
   4986 	* mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older
   4987 	assemblers.
   4988 	* configure.ac: Update haswell path to include "mulx".
   4989 
   4990 2013-02-12  Torbjorn Granlund  <tege (a] gmplib.org>
   4991 
   4992 	* configure.ac: Recognise haswell.
   4993 	* config.guess: Recognise haswell.
   4994 	* config.sub: Match haswell.
   4995 
   4996 	* mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI.
   4997 
   4998 2013-02-12 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   4999 
   5000 	* gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro.
   5001 	* gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set.
   5002 
   5003 	* mpn/generic/mulmod_bnm1.c: Reorganise branches.
   5004 
   5005 	* mpz/bin_ui.c: Avoid a copy when n < 0.
   5006 	* mpz/mfac_uiui.c: Reduce memory usage.
   5007 	* mpz/primorial_ui.c: Use MPZ_NEWALLOC.
   5008 
   5009 	* mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC.
   5010 	* mpz/inp_raw.c: Likewise.
   5011 	* mpz/rrandomb.c: Likewise.
   5012 	* mpz/urandomb.c: Likewise.
   5013 	* mpn/generic/random2.c: Likewise.
   5014 
   5015 	* mpn/generic/brootinv.c: Micro-optimisation.
   5016 
   5017 	* mpf/set_str.c: Don't chech base==0 when base is strictly positive.
   5018 
   5019 2013-02-10  Torbjorn Granlund  <tege (a] gmplib.org>
   5020 
   5021 	* Version 5.1.1 released.
   5022 
   5023 2013-02-07 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5024 
   5025 	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s.
   5026 	* tune/README: Document new parameter syntax mpn_mul.<#> .
   5027 
   5028 2013-02-06  Niels Mller  <nisse (a] lysator.liu.se>
   5029 
   5030 	* tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a
   5031 	more efficient method for generating the test inputs.
   5032 
   5033 2013-02-05  Torbjorn Granlund  <tege (a] gmplib.org>
   5034 
   5035 	* tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop.
   5036 
   5037 2013-02-03  Torbjorn Granlund  <tege (a] gmplib.org>
   5038 
   5039 	* tests/mpz/reuse.c: Fix typo causing the same negation condition to be
   5040 	applied to all operands.  Fix condition for when to invoke mpz_remove.
   5041 	Make different-size random operands.
   5042 
   5043 2013-02-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5044 
   5045 	* mpz/remove.c: Correct the sign in case of reuse.
   5046 
   5047 2013-02-01  Torbjorn Granlund  <tege (a] gmplib.org>
   5048 
   5049 	* gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast.
   5050 	(LIMBS_PER_DIGIT_IN_BASE): Likewise.
   5051 
   5052 	* tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the
   5053 	largest operands.
   5054 
   5055 2013-01-31  Torbjorn Granlund  <tege (a] gmplib.org>
   5056 
   5057 	* mpn/generic/toom44_mul.c: Revert last change in favour of a simple
   5058 	change (thanks Marco!).
   5059 	* mpn/generic/toom4_sqr.c: Likewise.
   5060 
   5061 2013-01-30  Torbjorn Granlund  <tege (a] gmplib.org>
   5062 
   5063 	* mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h
   5064 	into account, using new macro MUL_NEXTALG_THRESHOLD.
   5065 	* mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise.
   5066 
   5067 2013-01-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5068 
   5069 	* mpz/remove.c: init+set=init_set, cast before shifting.
   5070 
   5071 	* mpz/cmp_si.c: Use ABS_CAST.
   5072 
   5073 2013-01-26  Torbjorn Granlund  <tege (a] gmplib.org>
   5074 
   5075 	* tests/mpn/logic.c: Set things up to always test library logops, not
   5076 	gmp-impl.h's inlined variants.  Test also mpn_com.
   5077 
   5078 	* tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p.
   5079 
   5080 	* mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c.
   5081 
   5082 	* tests/mpz/reuse.c: Fix typo in last change.
   5083 
   5084 2013-01-22  Torbjorn Granlund  <tege (a] gmplib.org>
   5085 
   5086 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   5087 	* gmp-h.in: Bump version.
   5088 
   5089 	* tests/mpz/reuse.c: Delete always zero 'failures' and code depending
   5090 	on it.  Replace rotating progress with real measure.
   5091 
   5092 	* Makefile.am (check-mini-gmp): Fix typo in last change.
   5093 
   5094 2013-01-20  Torbjorn Granlund  <tege (a] gmplib.org>
   5095 
   5096 	* Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the
   5097 	benefit of Darwin.
   5098 
   5099 	* tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec.
   5100 	(main): Separate divisor into normalised (dnp) and unnormalised (dup),
   5101 	pass appropriate variant to each function.
   5102 	(main): Make negative `test' index value mean divisor bits, for better
   5103 	small operands coverage.
   5104 	(main): Put random junk at qp[] instead of zeroing.
   5105 
   5106 	* tests/mpz/t-remove.c: Back out last change which left `divisor_size'
   5107 	uninitialised; achieve change's aim with a parameter tweak.
   5108 
   5109 2013-01-20  Torbjorn Granlund  <tege (a] gmplib.org>
   5110 
   5111 	* tests/memory.c (PTRLIMB): New macro, used for conformant casting.
   5112 
   5113 2013-01-19 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5114 
   5115 	* tests/mpz/t-set_str.c: Check also failing conditions.
   5116 
   5117 	* tests/mpz/t-remove.c: Test removal of 1.
   5118 
   5119 2013-01-18  Torbjorn Granlund  <tege (a] gmplib.org>
   5120 
   5121 	* mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused
   5122 	variable.
   5123 
   5124 	* tests/tests.h (TESTS_REPS): Fix printf argument type clashes.
   5125 
   5126 2013-01-15  Torbjorn Granlund  <tege (a] gmplib.org>
   5127 
   5128 	From Mike Frysinger:
   5129 	* configure.ac: Add x32 ABI for x86_64.
   5130 
   5131 2013-01-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5132 
   5133 	* doc/gmp.texi (gmp_version): Remove "was used" repetition.
   5134 	(Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5.
   5135 
   5136 2013-01-13  Marc Glisse  <marc.glisse (a] inria.fr>
   5137 
   5138 	* doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead
   5139 	of mpz_perfect_square_p.
   5140 
   5141 2013-01-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5142 
   5143 	* mpz/export.c: Less restrictive ASSERTs.
   5144 
   5145 2013-01-10  Torbjorn Granlund  <tege (a] gmplib.org>
   5146 
   5147 	* Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing
   5148 	with dynamic main GMP build.
   5149 
   5150 2013-01-05  Torbjorn Granlund  <tege (a] gmplib.org>
   5151 
   5152 	* longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work.
   5153 
   5154 2013-01-04  Torbjorn Granlund  <tege (a] gmplib.org>
   5155 
   5156 	From Marko Lindqvist:
   5157 	* configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete
   5158 	AM_CONFIG_HEADER.
   5159 
   5160 2013-01-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5161 
   5162 	* tests/mpz/bit.c: Wider testing for mpz_combit.
   5163 	* tests/mpz/logic.c: Check the -2^n case.
   5164 
   5165 	* mpz/ior.c: Fixed an allocation bug in the -2^n case.
   5166 
   5167 2012-12-31  Torbjorn Granlund  <tege (a] gmplib.org>
   5168 
   5169 	* mpn/generic/get_d.c: Minor reorg, add vax D code.
   5170 
   5171 	* gmp-impl.h (double_extract): New union type for vax D floats.
   5172 
   5173 	* tests/mpq/t-get_d.c (check_random): Limit exponents on vax.
   5174 
   5175 2012-12-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5176 
   5177 	* tests/mpz/bit.c (check_clr_extend): Check _set shrink.
   5178 
   5179 2012-12-29  Torbjorn Granlund  <tege (a] gmplib.org>
   5180 
   5181 	* demos/calc/calc.c: Remove generated file from repo.
   5182 	* demos/calc/calc.h: Likewise.
   5183 	* demos/calc/calclex.c: Likewise.
   5184 
   5185 2012-12-27  Torbjorn Granlund  <tege (a] gmplib.org>
   5186 
   5187 	* mpn/generic/get_d.c: Complete rewrite of non-IEEE code.
   5188 
   5189 	* tests/mpq/t-get_d.c (main): Suppress check_random for vax.
   5190 
   5191 2012-12-25  Torbjorn Granlund  <tege (a] gmplib.org>
   5192 
   5193 	* mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table.
   5194 
   5195 2012-12-23  Torbjorn Granlund  <tege (a] gmplib.org>
   5196 
   5197 	* tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid
   5198 	overflow in last, unused 'want' value.
   5199 
   5200 	* config.guess: Recognise AMD family 22 as a future bobcat.
   5201 
   5202 2012-12-21  Torbjorn Granlund  <tege (a] gmplib.org>
   5203 
   5204 	* configure.ac: Rename configure.in.
   5205 
   5206 2012-12-17  Torbjorn Granlund  <tege (a] gmplib.org>
   5207 
   5208 	* Version 5.1.0 released.
   5209 
   5210 	* configure.in (none-*-*): Allow this again, but print a warning.
   5211 
   5212 2012-12-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5213 
   5214 	* mpz/n_pow_ui.c: Fix typos in an ASSERT.
   5215 
   5216 2012-12-16  Torbjorn Granlund  <tege (a] gmplib.org>
   5217 
   5218 	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use
   5219 	MPN_COPY_INCR for slightly overlapping copy.
   5220 
   5221 2012-12-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5222 
   5223 	* tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped.
   5224 
   5225 2012-12-13  Torbjorn Granlund  <tege (a] gmplib.org>
   5226 
   5227 	* mpn/x86_64/dos64.m4 (PIC): Move definition early.
   5228 	(JMPENT): Remove PIC variant.
   5229 
   5230 	* mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of
   5231 	something sensible.
   5232 
   5233 2012-12-12  Torbjorn Granlund  <tege (a] gmplib.org>
   5234 
   5235 	* mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro.
   5236 	* mpn/x86_64/dos64.m4: Likewise.
   5237 	* mpn/x86_64/darwin.m4: Likewise.
   5238 	* mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC.
   5239 	* mpn/x86_64/mullo_basecase.asm: Likewise.
   5240 	* mpn/x86_64/sqr_basecase.asm: Likewise.
   5241 
   5242 2012-12-11  Torbjorn Granlund  <tege (a] gmplib.org>
   5243 
   5244 	* mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit
   5245 	of broken Apple linkers.
   5246 
   5247 2012-12-09  Torbjorn Granlund  <tege (a] gmplib.org>
   5248 
   5249 	* configure.in: Make GMP_NONSTD_ABI ABI specific.
   5250 
   5251 2012-12-08  Torbjorn Granlund  <tege (a] gmplib.org>
   5252 
   5253 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
   5254 	* gmp-h.in: Bump version.
   5255 
   5256 2012-12-06 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5257 
   5258 	* tests/mpq/reuse.c: New test (adapted from mpf/reuse.c).
   5259 	* tests/mpq/Makefile.am (check_PROGRAMS): Add reuse.
   5260 
   5261 	* mpz/abs.c: Use NEWALLOC.
   5262 	* mpz/neg.c: Likewise.
   5263 	* mpz/com.c: Reduce branches.
   5264 
   5265 2012-12-05  Niels Mller  <nisse (a] lysator.liu.se>
   5266 
   5267 	* mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at
   5268 	the cost of a redundant MPN_ZERO.
   5269 
   5270 	* mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0
   5271 	before using the low limbs.
   5272 
   5273 2012-12-05  Torbjorn Granlund  <tege (a] gmplib.org>
   5274 
   5275 	* mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue.
   5276 
   5277 	* mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument.
   5278 
   5279 	* tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR.
   5280 
   5281 	* longlong.h: Refine cpp test for vax.
   5282 	* tests/mpn/t-get_d.c: Likewise.
   5283 	* tests/mpz/t-get_d.c: Likewise.
   5284 	* tests/mpz/t-cmp_d.c: Likewise.
   5285 	* tests/mpz/t-get_d.c: Likewise.
   5286 	* tests/mpq/t-get_d.c: Likewise.
   5287 	* tests/mpf/t-get_d.c: Likewise.
   5288 
   5289 2012-11-30  Torbjorn Granlund  <tege (a] gmplib.org>
   5290 
   5291 	* gen-fac.c (gen_consts): Correct printf types.
   5292 
   5293 	* mpn/arm/v7a/cora15/gmp-mparam.h: New file.
   5294 
   5295 	* configure.in (arm*-*-*): New compiler optional "tune".  Pass value for
   5296 	selected processors.  Add more specific path components.
   5297 
   5298 2012-11-29  Torbjorn Granlund  <tege (a] gmplib.org>
   5299 
   5300 	From Andoni Morales Alastruey:
   5301 	* longlong.h: Conditionalise ARM asm on !__thumb__.
   5302 
   5303 2012-11-28  Torbjorn Granlund  <tege (a] gmplib.org>
   5304 
   5305 	* config.guess (arm*-*-*): Support specific ARM processors.
   5306 	* config.sub: Match arm CPUs.
   5307 	* configure.in (arm*-*-*): Likewise.
   5308 
   5309 	* mpz/powm.c: Move new_b out since it lives on through b.
   5310 
   5311 	* configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting
   5312 	to thumb code.
   5313 
   5314 2012-11-26  Torbjorn Granlund  <tege (a] gmplib.org>
   5315 
   5316 	* tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax
   5317 	overflow.
   5318 
   5319 2012-11-25  Torbjorn Granlund  <tege (a] gmplib.org>
   5320 
   5321 	* mpn/generic/get_d.c: Reinsert non-IEEE code.
   5322 
   5323 	* mpn/vax/add_n.asm: New file.
   5324 	* mpn/vax/add_n.s: Remove.
   5325 	* mpn/vax/addmul_1.asm: New file.
   5326 	* mpn/vax/addmul_1.s: Remove.
   5327 	* mpn/vax/lshift.asm: New file.
   5328 	* mpn/vax/lshift.s: Remove.
   5329 	* mpn/vax/mul_1.asm: New file.
   5330 	* mpn/vax/mul_1.s: Remove.
   5331 	* mpn/vax/rshift.asm: New file.
   5332 	* mpn/vax/rshift.s: Remove.
   5333 	* mpn/vax/sub_n.asm: New file.
   5334 	* mpn/vax/sub_n.s: Remove.
   5335 	* mpn/vax/submul_1.asm: New file.
   5336 	* mpn/vax/submul_1.s: Remove.
   5337 
   5338 	* mpn/vax/elf.m4: New file.
   5339 	* configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4.
   5340 
   5341 	* tests/mpn/t-get_d.c (check_onebit): Get vax bounds right.
   5342 	(main): Switch off check_rand for vax.
   5343 
   5344 2012-11-16  Torbjorn Granlund  <tege (a] gmplib.org>
   5345 
   5346 	* mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec.
   5347 
   5348 	* mpn/generic/sb_div_sec.c: New file.
   5349 	* mpn/generic/sbpi1_div_sec.c: New file.
   5350 	* configure.in (gmp_mpn_functions): Add new files.
   5351 	* gmp-impl.h: Declare new functions.
   5352 
   5353 2012-11-12  Torbjorn Granlund  <tege (a] gmplib.org>
   5354 
   5355 	* longlong.h: Add ARM64 support.
   5356 	* longlong.h: Add AVR support.
   5357 
   5358 	* mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify.
   5359 
   5360 	* mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR.
   5361 	* tests/mpq/t-md_2exp.c (check_random): New function.
   5362 
   5363 2012-11-10  Torbjorn Granlund  <tege (a] gmplib.org>
   5364 
   5365 	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static.
   5366 
   5367 2012-11-04  Torbjorn Granlund  <tege (a] gmplib.org>
   5368 
   5369 	* mpz/powm_ui.c: Rewrite.
   5370 
   5371 2012-11-01  Niels Mller  <nisse (a] lysator.liu.se>
   5372 
   5373 	* mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs
   5374 	rather than bits. Use single-precision iterations for the first
   5375 	limb.
   5376 	* mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call.
   5377 	* tests/mpn/t-brootinv.c (main): Likewise.
   5378 	* tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise.
   5379 	* gmp-impl.h (mpn_brootinv): Updated prototype.
   5380 
   5381 	* mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit
   5382 	tests in the single-precision loop.
   5383 
   5384 	* mpz/combit.c (mpz_combit): Rewrite, optimizing for the common
   5385 	case.
   5386 
   5387 2012-10-31  Niels Mller  <nisse (a] lysator.liu.se>
   5388 
   5389 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv.
   5390 	* tests/mpn/t-brootinv.c: New file
   5391 
   5392 	* mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the
   5393 	loop, and do powering as a plain mpn_sqr followed by mpn_powlo.
   5394 
   5395 	* tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1,
   5396 	mpn_brootinv.
   5397 
   5398 	* tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1)
   5399 	(speed_mpn_brootinv): New functions.
   5400 	* tune/speed.h (SPEED_ROUTINE_MPN_BROOT)
   5401 	(SPEED_ROUTINE_MPN_BROOTINV): New macros.
   5402 
   5403 	* mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly
   5404 	for benchmarking).
   5405 	* gmp-impl.h (mpn_broot_invm1): Declare it.
   5406 
   5407 2012-10-28  Torbjorn Granlund  <tege (a] gmplib.org>
   5408 
   5409 	* configure.in (gmp_mpn_functions): Add new files.
   5410 	* gmp-impl.h: Declare new functions.
   5411 	* mpn/generic/perfpow.c: Overhaul.
   5412 	(binv_root, binv_sqroot): Remove.
   5413 	* mpn/generic/brootinv.c: New file, code from overhauled binv_root.
   5414 	* mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot.
   5415 	* mpn/generic/bsqrt.c: New file.
   5416 
   5417 	* tests/mpn/t-broot.c: Add a forgotten TMP_MARK.
   5418 
   5419 2012-10-28  Niels Mller  <nisse (a] lysator.liu.se>
   5420 
   5421 	* mpn/generic/broot.c (mpn_broot): New file and function.
   5422 	* configure.in (gmp_mpn_functions): Add broot.
   5423 	* gmp-impl.h (mpn_broot): Declare.
   5424 	* tests/mpn/t-broot.c: New testcase.
   5425 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot.
   5426 
   5427 2012-10-27  Torbjorn Granlund  <tege (a] gmplib.org>
   5428 
   5429 	* mpn/generic/remove.c: Get remainder allocation right.
   5430 
   5431 2012-10-25  Torbjorn Granlund  <tege (a] gmplib.org>
   5432 
   5433 	* longlong.h: De-support old POWER asm syntax.
   5434 
   5435 	* tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands.
   5436 
   5437 	* mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function.
   5438 	(mpn_remove): Call mpn_bdiv_qr_wrap.
   5439 	* mpz/remove.c: Enable suppressed mpn_remove call.
   5440 
   5441 2012-10-17  Torbjorn Granlund  <tege (a] gmplib.org>
   5442 
   5443 	* mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent.
   5444 
   5445 2012-09-10  Torbjorn Granlund  <tege (a] gmplib.org>
   5446 
   5447 	* demos/factorize.c: Rewrite no more current form.  Implement Lucas
   5448 	prime proving, and make its use the default.
   5449 	* demos/primes.h: New file.
   5450 
   5451 2012-08-24  Torbjorn Granlund  <tege (a] gmplib.org>
   5452 
   5453 	* demos/factorize.c: Overhaul.
   5454 
   5455 2012-08-06 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5456 
   5457 	* doc/gmp.texi (mpn_neg): Correctly document returned type.
   5458 
   5459 	* gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels).
   5460 
   5461 2012-07-28  Marc Glisse  <marc.glisse (a] inria.fr>
   5462 
   5463 	* gmpxx.h (std::common_type): New partial specializations with builtin
   5464 	types.
   5465 	* tests/cxx/t-cxx11.cc: Test it.
   5466 
   5467 2012-07-21  Torbjorn Granlund  <tege (a] gmplib.org>
   5468 
   5469 	* mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with
   5470 	"large" code affecting elf+darwin PIC.
   5471 
   5472 2012-07-21  Marc Glisse  <marc.glisse (a] inria.fr>
   5473 
   5474 	* gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4.
   5475 
   5476 2012-06-26  Torbjorn Granlund  <tege (a] gmplib.org>
   5477 
   5478 	* Makefile.am (LIBMP_LT_*): Remove these.
   5479 
   5480 2012-06-26  Marc Glisse  <marc.glisse (a] inria.fr>
   5481 
   5482 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0.
   5483 
   5484 2012-06-24 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5485 
   5486 	* configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of
   5487 	assembly code with the --disable-assembly option.
   5488 	* mpz/oddfac_1.c: Use the ASSERT_CODE macro.
   5489 	* gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2).
   5490 
   5491 	* gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP
   5492 	from mpz/export.c .
   5493 	* mpz/export.c (MPN_SIZEINBASE_2EXP): Removed.
   5494 	* mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE.
   5495 
   5496 	* mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits.
   5497 	* mpn/generic/perfpow.c: Likewise.
   5498 	* mpn/generic/rootrem.c: Likewise.
   5499 	* mpz/get_d_2exp.c: Likewise.
   5500 	* mpn/generic/powm_sec.c: Likewise, nailify.
   5501 	* mpn/generic/powlo.c: Likewise.
   5502 	* mpn/generic/powm.c: Likewise.
   5503 
   5504 2012-06-23  Marc Glisse  <marc.glisse (a] inria.fr>
   5505 
   5506 	* gmpxx.h (numeric_limits): Make content public.
   5507 	* cxx/limits.cc: New file, proper declarations.
   5508 	* Makefile.am: List new file.
   5509 	* cxx/Makefile.am: Likewise.
   5510 	* cxx/t-misc.cc: Add minimal test for numeric_limits.
   5511 
   5512 2012-06-09  Marc Glisse  <marc.glisse (a] inria.fr>
   5513 
   5514 	* gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef.
   5515 	(__gmp_temp): Wrapper for mp*_class, the constructor copies the
   5516 	precision of its second argument for mpf_t.
   5517 	(__gmp_expr::eval(p, prec)): Remove.
   5518 	(__gmp_expr::eval(p)): Use __gmp_temp.
   5519 	(__gmp_set_expr): Never pass prec to eval().
   5520 
   5521 2012-06-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5522 
   5523 	* gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in.
   5524 	(MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT.
   5525 	(MPZ_NEWALLOC): New macro.
   5526 	* mpq: Use the new macro when possible.
   5527 	* mpz/bin_uiui.c: Likewise.
   5528 	* mpz/oddfac_1.c: Likewise.
   5529 	* mpz/prodlimbs.c: Likewise.
   5530 
   5531 2012-06-04  Torbjorn Granlund  <tege (a] gmplib.org>
   5532 
   5533 	* mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any".
   5534 
   5535 2012-06-03  Niels Mller  <nisse (a] lysator.liu.se>
   5536 
   5537 	* mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling
   5538 	impossible case u1 == 0, Simplified test for unlikely case u0 == 0.
   5539 
   5540 2012-06-02  Torbjorn Granlund  <tege (a] gmplib.org>
   5541 
   5542 	* mpn/arm/lshiftc.asm: New file.
   5543 
   5544 2012-06-01  Torbjorn Granlund  <tege (a] gmplib.org>
   5545 
   5546 	* mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more
   5547 	places.
   5548 
   5549 	* mpz/get_str.c: Don't strip leading zeros since current mpn_get_str
   5550 	won't generate any.  Misc streamlining.
   5551 	* mpz/out_str.c: Analogous changes.
   5552 
   5553 	* tests/mpz/io.c: Use a wider range of bases.
   5554 
   5555 	* tests/mpz/t-cong.c (check_random): Rewrite random generation for
   5556 	exponentially distributed operand sizes.
   5557 
   5558 2012-06-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5559 
   5560 	* mpq: Use more macros and MPZ_REALLOC return value when possible.
   5561 
   5562 	* gmp-impl.h (LIMBS): Removed, was an alias for PTR.
   5563 	* mpz/combit.c: Use PTR and CNST_LIMB.
   5564 
   5565 	* tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr.
   5566 	* mpn/generic/bdiv_qr.c: Add an ASSERT.
   5567 
   5568 	* mpn/generic/remove.c: Add a zero limb to use bdiv_qr...
   5569 
   5570 2012-05-31  Marc Glisse  <marc.glisse (a] inria.fr>
   5571 
   5572 	* gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1).
   5573 	* tests/cxx/t-constr.cc: Test it.
   5574 
   5575 2012-05-30  Torbjorn Granlund  <tege (a] gmplib.org>
   5576 
   5577 	* mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY.
   5578 	* mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT.
   5579 
   5580 2012-05-29 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5581 
   5582 	* mpz/remove.c: Optimise branches.
   5583 
   5584 	* mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path.
   5585 	* mpn/generic/toom8h_mul.c: Likewise.
   5586 
   5587 2012-05-29  Torbjorn Granlund  <tege (a] gmplib.org>
   5588 
   5589 	* mpn/arm/v5/mod_1_1.asm: New file.
   5590 
   5591 2012-05-28  Niels Mller  <nisse (a] lysator.liu.se>
   5592 
   5593 	* mpn/generic/gcdext.c (compute_v): Simplified carry handling a
   5594 	bit, reduced stated scratch need from 2n+1 to 2n. Also comment and
   5595 	ASSERT improvements.
   5596 
   5597 2012-05-27  Torbjorn Granlund  <tege (a] gmplib.org>
   5598 
   5599 	* config.guess: Add new x86 CPUs.
   5600 	* mpn/x86/fat/fat.c: Likewise.
   5601 	* mpn/x86_64/fat/fat.c: Likewise.
   5602 
   5603 2012-05-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5604 
   5605 	* mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off.
   5606 
   5607 	* mpn/generic/toom8h_mul.c: mark UNLIKELY branches.
   5608 
   5609 2012-05-26  Torbjorn Granlund  <tege (a] gmplib.org>
   5610 
   5611 	* mpz: Use MPZ_REALLOC return value when possible.
   5612 
   5613 2012-05-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5614 
   5615 	* mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0).
   5616 
   5617 2012-05-24  Torbjorn Granlund  <tege (a] gmplib.org>
   5618 
   5619 	* mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument.
   5620 
   5621 2012-05-24 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5622 
   5623 	* mpz/remove.c: Support negative divisor.
   5624 	* tests/mpz/t-remove.c: Test negative divisor.
   5625 
   5626 2012-05-23  Torbjorn Granlund  <tege (a] gmplib.org>
   5627 
   5628 	* tests/mpz/reuse.c: Major rewrite.
   5629 
   5630 2012-05-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5631 
   5632 	* mpz/sqrt.c: Further simplify.
   5633 	* mpz/sqrtrem.c: Likewise.
   5634 
   5635 	* Mark failing branches with UNLIKELY. Many files affected.
   5636 
   5637 2012-05-22  Torbjorn Granlund  <tege (a] gmplib.org>
   5638 
   5639 	* mpz/sqrt.c: Allocate less for overlapping operands, simplify.
   5640 	* mpz/sqrtrem.c: Likewise.
   5641 
   5642 2012-05-21 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5643 
   5644 	* mpn/generic/toom8_sqr.c: Reduce branches for recursion.
   5645 	* mpn/generic/toom8h_mul.c: Likewise.
   5646 
   5647 	* tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined.
   5648 
   5649 2012-05-20  Torbjorn Granlund  <tege (a] gmplib.org>
   5650 
   5651 	* tests/mpz/t-gcd.c: Rewrite.
   5652 
   5653 2012-05-19  Torbjorn Granlund  <tege (a] gmplib.org>
   5654 
   5655 	* tests/mpz/t-gcd.c: Generate larger operands for better gcd code
   5656 	coverage; distribute size exponentially.
   5657 
   5658 2012-05-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5659 
   5660 	* mpf/pow_ui.c: Simplify.
   5661 	* tests/mpf/reuse.c (dsi_func): Exercise pow_ui.
   5662 
   5663 	* tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT.
   5664 	* tests/mpf/t-set.c (check_random): New check, both set and init_set.
   5665 
   5666 	* tests/cxx/t-ops.cc (check_mpq): Check squaring.
   5667 	* tests/mpq/t-equal.c (check_various): Check different den-size.
   5668 
   5669 	* mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY.
   5670 	* mpz/cmpabs_d.c: Remove an unused branch.
   5671 
   5672 	* tests/mpz/t-get_d_2exp.c (check_zero): New check.
   5673 	* tests/mpz/t-inp_str.c: A few more cases.
   5674 	* tests/mpz/t-cmp_d.c: More bases and symbols, a few cases.
   5675 
   5676 	* mpz/rootrem.c: Correctly handle odd roots of negatives.
   5677 	* tests/mpz/t-root.c: Test it.
   5678 
   5679 2012-05-16  Torbjorn Granlund  <tege (a] gmplib.org>
   5680 
   5681 	* tests/mpf/t-eq.c (check_random): New function, meat from old main().
   5682 	(check_data): New function.
   5683 
   5684 2012-05-13  Torbjorn Granlund  <tege (a] gmplib.org>
   5685 
   5686 	* mpn/arm/rsh1aors_n.asm: New file.
   5687 	* mpn/arm/v5/mod_1_2.asm: New file.
   5688 
   5689 2012-05-11  Marc Glisse  <marc.glisse (a] inria.fr>
   5690 
   5691 	* gmpxx.h (explicit operator bool): New functions.
   5692 	* tests/cxx/t-cxx11.cc: Test the above.
   5693 
   5694 2012-05-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5695 
   5696 	* gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized
   5697 	* mpn/x86/fat/fat.c: Use separated _initialized variable.
   5698 	* mpn/x86_64/fat/fat.c: Likewise.
   5699 	* tests/mpn/t-fat.c: Likewise.
   5700 
   5701 	* mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized.
   5702 	* mpn/generic/toom22_mul.c: Likewise.
   5703 	* mpn/generic/toom3_sqr.c: Likewise.
   5704 	* mpn/generic/toom33_mul.c: Likewise.
   5705 
   5706 2012-05-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5707 
   5708 	* mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte.
   5709 
   5710 	* mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts.
   5711 	(MAXFACS): Redefine, using the shared (safer) log_n_max.
   5712 
   5713 2012-05-08  Torbjorn Granlund  <tege (a] gmplib.org>
   5714 
   5715 	* mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for
   5716 	coherency with ASSERT in mpn/generic/redc_n.c.
   5717 
   5718 2012-05-07 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5719 
   5720 	* mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC.
   5721 	* tests/mpn/toom-sqr-shared.h: Don't test if no range.
   5722 
   5723 	* mpz/oddfac_1.c: Add ASSERTs to warn about small threshold.
   5724 	* tune/tuneup.c: Update minimal threshold for FAC_DSC.
   5725 
   5726 2012-05-06  Torbjorn Granlund  <tege (a] gmplib.org>
   5727 
   5728 	* mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code.
   5729 
   5730 2012-05-05 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5731 
   5732 	* mpn/generic/invert.c: Mark a branch UNLIKELY.
   5733 	* tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum.
   5734 	* gmp-impl.h (FAC_???_THRESHOLD): Update default values.
   5735 	(ABOVE_THRESHOLD): New definition with __builtin_constant_p.
   5736 
   5737 	* mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY.
   5738 	* mpn/generic/toom33_mul.c: Likewise.
   5739 	* mpn/generic/toom2_sqr.c: Likewise.
   5740 	* mpn/generic/toom3_sqr.c: Likewise.
   5741 
   5742 2012-05-04  Torbjorn Granlund  <tege (a] gmplib.org>
   5743 
   5744 	* tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds.
   5745 
   5746 2012-05-03  Torbjorn Granlund  <tege (a] gmplib.org>
   5747 
   5748 	* mpn/generic/powm_sec.c: Use redc_2.
   5749 	(INNERLOOP): Use this mechanism, like plain powm.c.
   5750 	(WANT_CACHE_SECURITY): Remove, feature now unconditional.
   5751 
   5752 2012-05-02  Torbjorn Granlund  <tege (a] gmplib.org>
   5753 
   5754 	* mpz/bin_uiui.c: Make use of CNST_LIMB.
   5755 
   5756 2012-05-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5757 
   5758 	* mpz/mfac_uiui.c: Support limb != ui.
   5759 
   5760 2012-05-02  Torbjorn Granlund  <tege (a] gmplib.org>
   5761 
   5762 	* mpn/arm/logops_n.asm: Work around register clobbering issue.
   5763 
   5764 	* mpn/arm/aorscnd_n.asm: New file.
   5765 
   5766 2012-05-01  Torbjorn Granlund  <tege (a] gmplib.org>
   5767 
   5768 	* configure.in: Put arm dirs in path in proper prio order.
   5769 
   5770 	* mpn/arm/logops_n.asm: New file.
   5771 
   5772 	* mpz/2fac_ui.c: Fix assumed typo.
   5773 
   5774 	* mpn/arm/v6/gmp-mparam.h: New file.
   5775 
   5776 	* mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD.
   5777 	* mpn/arm/v6t2/gcd_1.asm: Likewise.
   5778 
   5779 2012-04-30  Torbjorn Granlund  <tege (a] gmplib.org>
   5780 
   5781 	* mpn/arm/v6/sqr_basecase.asm: New file.
   5782 
   5783 2012-04-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5784 
   5785 	* mpn/generic/comb_tables.c: New file.
   5786 	* configure.in: Add it.
   5787 	* gen-fac.c: Define table limits.
   5788 	* gmp-impl.h: Declare tables.
   5789 	(log_n_max): New static function.
   5790 	* mpz/2fac_ui.c: Use shared tables.
   5791 	* mpz/bin_uiui.c: Likewise.
   5792 	* mpz/oddfac_1.c: Likewise.
   5793 	* mpz/primorial_ui.c: Likewise.
   5794 
   5795 	* mpz/mfac_uiui.c: New file.
   5796 	* Makefile.am: Compile it.
   5797 	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c
   5798 	* gmp-h.in (mpz_mfac_uiui): Declare.
   5799 
   5800 	* tests/mpz/t-mfac_uiui.c: New file.
   5801 	* tests/mpz/Makefile.am: Run it.
   5802 
   5803 	* doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions.
   5804 
   5805 	* tests/mpz/t-lcm.c: Test zero too.
   5806 
   5807 	* mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed).
   5808 
   5809 2012-04-29  Torbjorn Granlund  <tege (a] gmplib.org>
   5810 
   5811 	* mpn/arm/aors_n.asm: Tune for more stable performance.
   5812 
   5813 	* mpn/arm/aorslsh1_n.asm: New file.
   5814 
   5815 	* mpn/arm/mod_34lsub1.asm: New file.
   5816 
   5817 	* mpn/arm/v6t2/divrem_1.asm: New file.
   5818 
   5819 2012-04-28  Torbjorn Granlund  <tege (a] gmplib.org>
   5820 
   5821 	* mpn/thumb/add_n.asm: New file.
   5822 	* mpn/thumb/sub_n.asm: New file.
   5823 	* mpn/thumb/add_n.s: Remove broken code.
   5824 	* mpn/thumb/sub_n.s: Likewise.
   5825 
   5826 	* mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size.
   5827 	* mpn/arm/v6/mul_1.asm: Likewise.
   5828 
   5829 2012-04-27  Torbjorn Granlund  <tege (a] gmplib.org>
   5830 
   5831 	* configure.in: Search arm/v6t2 for arm7.
   5832 
   5833 	* mpn/arm/v5/gcd_1.asm: New file.
   5834 	* mpn/arm/v6t2/gcd_1.asm: New file.
   5835 
   5836 	* mpn/arm/mode1o.asm: New file.
   5837 	* mpn/arm/v6t2/mode1o.asm: New file.
   5838 
   5839 	* mpn/arm/arm-defs.m4 (LEA): New define.
   5840 	* mpn/arm/invert_limb.asm: Use LEA.
   5841 
   5842 2012-04-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5843 
   5844 	* mpz/bin_uiui.c (bc_bin_uiui): Nail support.
   5845 	* tests/cxx/t-ops2.cc: Test 0/3.
   5846 	* oddfac_1.c: assume n > 26.
   5847 	* tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes.
   5848 
   5849 2012-04-24  Torbjorn Granlund  <tege (a] gmplib.org>
   5850 
   5851 	* mpn/arm/v6/addmul_2.asm: New file.
   5852 	* mpn/arm/v6/mul_2.asm: New file.
   5853 
   5854 2012-04-23  Torbjorn Granlund  <tege (a] gmplib.org>
   5855 
   5856 	* mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase.
   5857 
   5858 2012-04-22  Torbjorn Granlund  <tege (a] gmplib.org>
   5859 
   5860 	* configure.in: Recognise ARM sub-architectures.
   5861 
   5862 	* configfsf.guess: Update to current FSF version.
   5863 	* configfsf.sub: Likewise.
   5864 
   5865 	* mpn/arm/bdiv_dbm1c.asm: New file.
   5866 
   5867 	* mpn/arm/v6/mul_1.asm: New file.
   5868 	* mpn/arm/v6/addmul_1.asm: New file.
   5869 
   5870 2012-04-22 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5871 
   5872 	* gen-fac.c: Renamed, was gen-fac_ui.c .
   5873 	* Makefile.am: Renamed gen-fac.c and fac_table.h .
   5874 	* gmp-impl.h: #include "fac_table.h".
   5875 	* mpz/oddfac_1.c: Use generated constant.
   5876 	* mpz/bin_ui.c: Small optimisations.
   5877 
   5878 	* tune/common.c (speed_mpz_bin_ui): New function.
   5879 	* tune/speed.h: Declare it.
   5880 	* tune/speed.c: Use it.
   5881 
   5882 2012-04-21  Torbjorn Granlund  <tege (a] gmplib.org>
   5883 
   5884 	* mpn/arm/mul_1.asm: Cleanup.
   5885 	* mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache.
   5886 	* mpn/arm/copyd.asm: Likewise.
   5887 
   5888 	* mpn/arm/add_n.asm: Delete.
   5889 	* mpn/arm/sub_n.asm: Delete.
   5890 	* mpn/arm/aors_n.asm: New file, made from old files.
   5891 
   5892 	* mpn/arm/addmul_1.asm: Delete.
   5893 	* mpn/arm/submul_1.asm: Delete.
   5894 	* mpn/arm/aorsmul_1.asm: New file, made from old files.
   5895 
   5896 	* mpn/arm/com.asm: New file.
   5897 	* mpn/arm/lshift.asm: New file.
   5898 	* mpn/arm/rshift.asm: New file.
   5899 
   5900 2012-04-20  Torbjorn Granlund  <tege (a] gmplib.org>
   5901 
   5902 	* tests/mpq/io.c: New file.
   5903 	* tests/mpq/Makefile.am: Run it.
   5904 
   5905 	* mpz/clrbit.c: Simplify along the lines of setbit.c.
   5906 
   5907 2012-04-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5908 
   5909 	* mpz/setbit.c: Simplify.
   5910 
   5911 	* gmp-impl.h (LOG2C): Define.
   5912 	* mpz/fac_ui.c (LOG2C): Remove.
   5913 	* mpz/2fac_ui.c (LOG2C): Remove.
   5914 	* mpz/oddfac_1.c (LOG2C): Remove.
   5915 	* mpn/generic/binvert.c (LOG2C): Remove.
   5916 	* mpn/generic/invertappr.c (LOG2C): Remove.
   5917 
   5918 	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations,
   5919 	and assume that n and k are not small.
   5920 
   5921 2012-04-19  Torbjorn Granlund  <tege (a] gmplib.org>
   5922 
   5923 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove.
   5924 
   5925 	* tests/mpz/t-remove.c: Clear out mpz variables.
   5926 
   5927 	* tests/mpz/t-cong.c (check_random): Use much larger numbers.
   5928 	(check_data): Check congruences mod 0.
   5929 
   5930 	* tests/mpz/t-divis.c: Test divisibility by zero.
   5931 
   5932 	* tests/mpz/reuse.c: Test mpz_mod.
   5933 
   5934 	* mpz/setbit.c: Remove dead code.  Use CNST_LIMB.
   5935 	* mpz/clrbit.c: Use CNST_LIMB.
   5936 
   5937 2012-04-19 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5938 
   5939 	* primesieve.c: New file, with functions from mpz/oddfac_1.c .
   5940 	* mpz/oddfac_1.c (bitwise_primesieve): Re-moved.
   5941 	* Makefile.am (libgmp_la_SOURCES): Add primesieve.c .
   5942 	* gmp-impl.h (gmp_primesieve): Declare.
   5943 
   5944 	* mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based
   5945 	implementation.
   5946 	* tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck.
   5947 
   5948 	* mpz/primorial_ui.c: New file.
   5949 	* mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c
   5950 	* Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo
   5951 	* gmp-h.in (mpz_primorial_ui): Declare.
   5952 	* tests/mpz/t-primorial_ui.c: New test for the new function.
   5953 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui.
   5954 	* doc/gmp.texi: Short documentation for the new function.
   5955 
   5956 2012-04-17  Torbjorn Granlund  <tege (a] gmplib.org>
   5957 
   5958 	* mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues.
   5959 	* mpn/x86_64/coreisbr/mul_1.asm: Likewise.
   5960 
   5961 	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register
   5962 	partitioning rules.
   5963 
   5964 	* mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround
   5965 	to overlap issue.
   5966 
   5967 2012-04-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   5968 
   5969 	* mpz/bin_uiui.c: Support small limbs (fallback on bin_ui).
   5970 
   5971 	* tests/mpn/toom-sqr-shared.h: Use a restricted range.
   5972 	* tests/mpn/t-toom2-sqr.c: Specify correct range.
   5973 	* tests/mpn/t-toom3-sqr.c: Likewise.
   5974 	* tests/mpn/t-toom4-sqr.c: Likewise.
   5975 	* tests/mpn/t-toom6-sqr.c: Likewise.
   5976 	* tests/mpn/t-toom8-sqr.c: Likewise, but extended.
   5977 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests.
   5978 
   5979 	* mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np.
   5980 
   5981 2012-04-17  Torbjorn Granlund  <tege (a] gmplib.org>
   5982 
   5983 	* mpn/x86_64/copyd.asm: Rewrite.
   5984 	* mpn/x86_64/copyi.asm: Rewrite.
   5985 
   5986 2012-04-16  Torbjorn Granlund  <tege (a] gmplib.org>
   5987 
   5988 	* mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences.
   5989 	* mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
   5990 	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
   5991 
   5992 	* mpn/x86_64/x86_64-defs.m4 (palignr): New macro.
   5993 	(x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx
   5994 	counterparts.
   5995 	(x86_lookup): Copy from x86/x86-defs.m4.
   5996 	* mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro.
   5997 	* mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
   5998 
   5999 2012-04-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6000 
   6001 	* tests/mpz/t-bin.c: Add more tests on small values.
   6002 	* mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas.
   6003 
   6004 2012-04-15  Torbjorn Granlund  <tege (a] gmplib.org>
   6005 
   6006 	* mpn/x86_64/fastsse/copyd-palignr.asm: New file.
   6007 	* mpn/x86_64/fastsse/copyi-palignr.asm: New file.
   6008 	* mpn/x86_64/core2/copyd.asm: New file.
   6009 	* mpn/x86_64/core2/copyi.asm: New file.
   6010 	* mpn/x86_64/nano/copyd.asm: New file.
   6011 	* mpn/x86_64/nano/copyi.asm: New file.
   6012 	* mpn/x86_64/atom/copyd.asm: New file.
   6013 	* mpn/x86_64/atom/copyi.asm: New file.
   6014 
   6015 2012-04-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6016 
   6017 	* mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's).
   6018 	* gen-fac_ui.c: Generate new constants for bin_uiui.
   6019 
   6020 	* tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value.
   6021 
   6022 	* mpn/generic/invert.c: Remove support for scratch == NULL.
   6023 	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch
   6024 	space for mpn_invert.
   6025 
   6026 	* mpz/mul_i.h: Small clean-up.
   6027 
   6028 	* tests/mpn/toom-sqr-shared.h: New file.
   6029 	* tests/mpn/t-toom2-sqr.c: New file.
   6030 	* tests/mpn/t-toom3-sqr.c: New file.
   6031 	* tests/mpn/t-toom4-sqr.c: New file.
   6032 	* tests/mpn/t-toom6-sqr.c: New file.
   6033 	* tests/mpn/t-toom8-sqr.c: New file.
   6034 	* tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h .
   6035 
   6036 	* mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible.
   6037 
   6038 2012-04-12  Torbjorn Granlund  <tege (a] gmplib.org>
   6039 
   6040 	* mpn/x86_64/fastsse/lshift-movdqu2.asm: New file.
   6041 	* mpn/x86_64/fastsse/rshift-movdqu2.asm: New file.
   6042 	* mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file.
   6043 	* mpn/x86_64/coreisbr/lshift.asm: New file.
   6044 	* mpn/x86_64/coreisbr/rshift.asm: New file.
   6045 	* mpn/x86_64/coreisbr/lshiftc.asm: New file.
   6046 	* mpn/x86_64/k10/lshift.asm: New file.
   6047 	* mpn/x86_64/k10/rshift.asm: New file.
   6048 	* mpn/x86_64/k10/lshiftc.asm: New file.
   6049 
   6050 	* mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form.
   6051 
   6052 2012-04-11  Niels Mller  <nisse (a] lysator.liu.se>
   6053 
   6054 	* Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to
   6055 	locate gmp.h.
   6056 
   6057 2012-04-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6058 
   6059 	* Makefile.am (check-mini-gmp): Use $(MAKE).
   6060 	(clean-mini-gmp): New target.
   6061 	(clean-local, distclean-local): New automake targets. Depend on
   6062 	clean-mini-gmp.
   6063 
   6064 	* gen-fac_ui.c (mpz_root): Remove.
   6065 
   6066 2012-04-07  Torbjorn Granlund  <tege (a] gmplib.org>
   6067 
   6068 	* mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table.
   6069 
   6070 2012-04-05  Torbjorn Granlund  <tege (a] gmplib.org>
   6071 
   6072 	* mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32.
   6073 	* mpn/powerpc64/p7/hamdist.asm: Likewise.
   6074 
   6075 2012-04-04  Torbjorn Granlund  <tege (a] gmplib.org>
   6076 
   6077 	* mpn/powerpc64/p7/popcount.asm: New file.
   6078 	* mpn/powerpc64/p7/hamdist.asm: New file.
   6079 
   6080 	* longlong.h (ARM count_leading_zeros): Enable for more arch versions.
   6081 
   6082 	* mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area.
   6083 	* mpn/x86_64/core2/gcd_1.asm: Likewise.
   6084 
   6085 2012-04-03  Torbjorn Granlund  <tege (a] gmplib.org>
   6086 
   6087 	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64.
   6088 
   6089 2012-04-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6090 
   6091 	* mpz/oddfac_1.c: Initialize size for ASSERT.
   6092 
   6093 2012-04-02  Torbjorn Granlund  <tege (a] gmplib.org>
   6094 
   6095 	* gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS).
   6096 
   6097 	* gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs.
   6098 
   6099 2012-03-30 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6100 
   6101 	* mpn/x86_64/sqr_basecase.asm: Speed-up for small cases.
   6102 
   6103 2012-03-29  Torbjorn Granlund  <tege (a] gmplib.org>
   6104 
   6105 	* mpn/sparc64/gcd_1.asm: New file.
   6106 
   6107 2012-03-27  Torbjorn Granlund  <tege (a] gmplib.org>
   6108 
   6109 	* config.guess: Fix typo in coreisbr recognition.
   6110 
   6111 2012-03-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6112 
   6113 	* mpn/x86_64/gcd_1.asm: Reduce latency.
   6114 	* mpn/x86_64/mul_basecase.asm: Save one jump.
   6115 
   6116 	* mpz/iset_ui.c: Don't realloc.
   6117 
   6118 2012-03-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6119 
   6120 	* mp_clz_tab.c: Add __clz_tab[128].
   6121 	* longlong.h (count_trailing_zeros): Use it in pure C variant.
   6122 
   6123 2012-03-20  Torbjorn Granlund  <tege (a] gmplib.org>
   6124 
   6125 	* configure.in (x86 fat_path): Add many missing directories.
   6126 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite.
   6127 	(fake_cpuid_table): Add many more CPUs.
   6128 
   6129 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup.
   6130 
   6131 2012-03-19  Torbjorn Granlund  <tege (a] gmplib.org>
   6132 
   6133 	* mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros.
   6134 	* mpn/x86/darwin.m4: Likewise.
   6135 	* mpn/x86/k7/gcd_1.asm: Use new macros to support PIC.
   6136 	* mpn/x86/p6/gcd_1.asm: Likewise.
   6137 
   6138 2012-03-19 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6139 
   6140 	* gen-fac_ui.c: Generate more constants (possible mini-mpz_root).
   6141 	* mpz/oddfac_1.c: Improve ASSERTs.
   6142 	(log_n_max): Use precomputed table.
   6143 
   6144 	* longlong.h (_PROTO): Remove.
   6145 
   6146 2012-03-18  Torbjorn Granlund  <tege (a] gmplib.org>
   6147 
   6148 	* longlong.h (count_trailing_zeros): Write better pure C default
   6149 	variant.
   6150 
   6151 	* mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference.
   6152 
   6153 	* mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD
   6154 	defined for fat binaries.
   6155 
   6156 2012-03-17  Torbjorn Granlund  <tege (a] gmplib.org>
   6157 
   6158 	* mpn/x86/k7/gcd_1.asm: Rewrite.
   6159 	* mpn/x86/p6/gcd_1.asm: New file.
   6160 
   6161 	* mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls.
   6162 	* mpn/x86_64/gcd_1.asm: Rewrite.
   6163 
   6164 2012-03-15  Torbjorn Granlund  <tege (a] gmplib.org>
   6165 
   6166 	* mpn/generic/gcd_1.c: Parameterise zerotab code.
   6167 
   6168 	* mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file.
   6169 
   6170 	* mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop
   6171 	code.
   6172 
   6173 2012-03-13  Torbjorn Granlund  <tege (a] gmplib.org>
   6174 
   6175 	* mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds.
   6176 
   6177 	* mpn/x86_64/core2/gcd_1.asm: Shorten critical path.
   6178 
   6179 2012-03-12  Torbjorn Granlund  <tege (a] gmplib.org>
   6180 
   6181 	* mpn/x86_64/core2/gcd_1.asm: New file.
   6182 	* mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file.
   6183 	* mpn/x86_64/bd1/gcd_1.asm: Likewise.
   6184 
   6185 	* mpn/x86_64/bobcat/sqr_basecase.asm: New file.
   6186 	* mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning.
   6187 
   6188 2012-03-10  Torbjorn Granlund  <tege (a] gmplib.org>
   6189 
   6190 	* configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2,
   6191 	mullo_basecase, redc_1, redc_2, sublsh1_n.
   6192 
   6193 	* gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
   6194 	* gmp-impl.h: Adjust corresponding declarations.
   6195 
   6196 	* mpn/generic/redc_2.c (mpn_addmul_2): Make static.
   6197 
   6198 	* mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to
   6199 	reduce branch offsets.  Pass plain 0,1,3... in %al since we'd else run
   6200 	out of 8-bit range.
   6201 
   6202 	* mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value.
   6203 	* mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index
   6204 	value.
   6205 
   6206 	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
   6207 	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
   6208 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
   6209 	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
   6210 
   6211 	* mpn/x86_64/fat/redc_2.c: New file.
   6212 	* mpn/x86/fat/mullo_basecase.c: New file.
   6213 	* mpn/x86/fat/redc_1.c: New file.
   6214 	* mpn/x86/fat/redc_2.c: New file.
   6215 
   6216 	* tests/mpn/t-fat.c: Test mullo_basecase.
   6217 
   6218 2012-03-08  Torbjorn Granlund  <tege (a] gmplib.org>
   6219 
   6220 	* mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64.
   6221 
   6222 2012-02-29  Marc Glisse  <marc.glisse (a] inria.fr>
   6223 
   6224 	* gmpxx.h: Ignore partial C++11 support in g++-4.6.
   6225 	* tests/cxx/t-cxx11.cc: Likewise.
   6226 
   6227 	* gmpxx.h (operator""): New functions.
   6228 	* tests/cxx/t-cxx11.cc: Test the above.
   6229 	* doc/gmp.texi: Document the above.
   6230 
   6231 2012-03-08 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6232 
   6233 	* acinclude.m4 (GMP_H_ANSI): Remove.
   6234 	* configure.in: Don't use GMP_H_ANSI.
   6235 	* gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove.
   6236 
   6237 2012-03-08  Torbjorn Granlund  <tege (a] gmplib.org>
   6238 
   6239 	* mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer".
   6240 	(__gmpn_cpuvec_init): Overhaul to match configure.in.
   6241 
   6242 	* configure.in: Adjust bulldozer path_64.
   6243 
   6244 2012-03-07  Torbjorn Granlund  <tege (a] gmplib.org>
   6245 
   6246 	* configure.in (x86_64 fat_path): List recently added AMD directories.
   6247 
   6248 	* mpn/x86_64/bobcat/copyi.asm: New file.
   6249 	* mpn/x86_64/bobcat/copyd.asm: New file.
   6250 
   6251 	* config.guess: Handle AMD 11h correctly.
   6252 
   6253 	* tune/tuneup.c (tune_redc): Better handle situation where redc_2 is
   6254 	never faster.
   6255 
   6256 2012-03-06  Torbjorn Granlund  <tege (a] gmplib.org>
   6257 
   6258 	* mpn/x86_64/bobcat/mul_basecase.asm: New file.
   6259 
   6260 2012-03-04  Torbjorn Granlund  <tege (a] gmplib.org>
   6261 
   6262 	* mpn/x86_64/bobcat/mul_1.asm: New file.
   6263 	* mpn/x86_64/bobcat/aorsmul_1.asm: New file.
   6264 
   6265 2012-03-04 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6266 
   6267 	* mpz/invert.c: Remove mod 0 branch.
   6268 	* tests/mpz/t-invert.c: Avoid testing mod 0.
   6269 	* doc/gmp.texi (mpz_invert): Specify mod 0 is not handled.
   6270 
   6271 	* gmp-h.in (__gmp_signed, __gmp_const): Remove.
   6272 	(__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove.
   6273 	* gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST.
   6274 	* demos/expr/: Strip __gmp_const usage from all files.
   6275 
   6276 	* tests/mpz/t-powm.c (allsizes_seen): Require unsigned*.
   6277 
   6278 2012-03-03  Torbjorn Granlund  <tege (a] gmplib.org>
   6279 
   6280 	* mpn/x86_64/k8/gmp-mparam.h: New file.
   6281 	* mpn/x86_64/k10/gmp-mparam.h: New file.
   6282 
   6283 	* mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables.
   6284 	* mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise.
   6285 	* mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise.
   6286 	* mpn/generic/mu_bdiv_qr.c: Likewise.
   6287 	* mpz/jacobi.c: Likewise.
   6288 	* mpz/mod.c: Likewise.
   6289 
   6290 	* mpn/generic/toom42_mul.c: Remove unread variable.
   6291 	* mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise.
   6292 	* mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise.
   6293 	* tests/refmpn.c (refmpn_mul): Likewise.
   6294 	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation
   6295 	into ASSERT, remove variable.
   6296 
   6297 	* gmp-h.in (__GMP_PROTO): Remove.
   6298 	* Strip __GMP_PROTO usage from all files.
   6299 	* Strip prototype parameter names from all files.
   6300 
   6301 2012-03-01 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6302 
   6303 	* doc/gmp.texi (mpz_invert): Correctly document result range.
   6304 	* tests/mpz/t-invert.c: Small range correction.
   6305 
   6306 2012-03-01  Torbjorn Granlund  <tege (a] gmplib.org>
   6307 
   6308 	* mpn/x86_64/mullo_basecase.asm: New file.
   6309 
   6310 2012-02-29  Marc Glisse  <marc.glisse (a] inria.fr>
   6311 
   6312 	* gmpxx.h (std::numeric_limits): New partial specialization.
   6313 
   6314 2012-02-29  Niels Mller  <nisse (a] lysator.liu.se>
   6315 
   6316 	* Makefile.am (check-mini-gmp): Use $(MAKE).
   6317 	(clean-mini-gmp): New target.
   6318 	(clean-local, distclean-local): New automake targets. Depend on
   6319 	clean-mini-gmp.
   6320 
   6321 2012-02-28  Niels Mller  <nisse (a] lysator.liu.se>
   6322 
   6323 	* Makefile.am (check-mini-gmp): New target, for running the
   6324 	mini-gmp testsuite.
   6325 
   6326 2012-02-27  Torbjorn Granlund  <tege (a] gmplib.org>
   6327 
   6328 	* mpn/x86_64/fastsse/lshiftc.asm: New file.
   6329 	* mpn/x86_64/fastsse/com.asm: New file.
   6330 
   6331 	* mpn/x86_64/bd1/popcount.asm: New file.
   6332 	* mpn/x86_64/bd1/hamdist.asm: New file.
   6333 
   6334 	* mpn/x86_64/fastsse/copyi.asm: New file.
   6335 	* mpn/x86_64/fastsse/copyd.asm: New file.
   6336 	* mpn/x86_64/fastsse/lshift.asm: New file.
   6337 
   6338 2012-02-26  Torbjorn Granlund  <tege (a] gmplib.org>
   6339 
   6340 	* mpn/x86_64/coreisbr/addmul_2.asm: New file.
   6341 
   6342 	* tests/devel/try.c (param_init): Don't require addmul_N to handle
   6343 	overlap.
   6344 
   6345 	* mpn/x86_64/bd1/mul_1.asm: New file.
   6346 	* mpn/x86_64/bd1/aorsmul_1.asm: New file.
   6347 
   6348 2012-02-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6349 
   6350 	* mpz/2fac_ui.c: New file: implements n!!.
   6351 	* Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui.
   6352 	* gmp-h.in: Declare mpz_2fac_ui.
   6353 	* tests/mpz/t-fac.c: Test mpz_2fac_ui.
   6354 	* doc/gmp.texi: Document mpz_2fac_ui.
   6355 	* mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c.
   6356 
   6357 	* mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2.
   6358 
   6359 2012-02-26  Niels Mller  <nisse (a] lysator.liu.se>
   6360 
   6361 	* bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the
   6362 	standard GMP functions, and then defines the few functions
   6363 	particular for the bootstrap.
   6364 	* dumbmp.c: Deleted file. A few functions moved to bootstrap.c.
   6365 
   6366 	* gen-bases.c: Include bootstrap.c, not dumbmp.c.
   6367 	* gen-fac_ui.c: Likewise.
   6368 	* gen-trialdivtab.c: Likewise.
   6369 	* gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather
   6370 	than ASSERT. Deleted casts of xmalloc return value.
   6371 	* gen-psqr.c: Likewise.
   6372 	(COLLAPSE_ELEMENT): Use memmove rather than mem_copyi.
   6373 
   6374 	* Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c.
   6375 	(EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp
   6376 	files.
   6377 
   6378 2012-02-24 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6379 
   6380 	* mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P.
   6381 	* mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
   6382 	* mpz/aors_ui.h: Likewise.
   6383 	* mpz/com.c: Likewise.
   6384 	* mpz/neg.c: Likewise.
   6385 
   6386 	* mpz/invert.c: Reply "no-inverse" when modulus is zero.
   6387 	* tests/mpz/t-invert.c: Add more checks.
   6388 	* doc/gmp.texi (mpz_invert): Inverse can not be zero.
   6389 
   6390 2012-02-24  Torbjorn Granlund  <tege (a] gmplib.org>
   6391 
   6392 	* tests/mpn/logic.c: New file.
   6393 	* tests/mpn/Makefile.am (check_PROGRAMS): Add logic.
   6394 
   6395 	* tests/mpz/t-invert.c: New file.
   6396 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert.
   6397 
   6398 2012-02-24  Marc Glisse  <marc.glisse (a] inria.fr>
   6399 
   6400 	* tests/mpq/t-cmp.c: Move NUM and DEN macros...
   6401 	* tests/mpq/t-cmp_ui.c: Likewise...
   6402 	* gmp-impl.h: ... to here.
   6403 
   6404 	* mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC.
   6405 	* mpq/aors.c: Likewise.
   6406 	* mpq/canonicalize.c: Likewise.
   6407 	* mpq/clear.c: Likewise.
   6408 	* mpq/cmp.c: Likewise.
   6409 	* mpq/cmp_si.c: Likewise.
   6410 	* mpq/cmp_ui.c: Likewise.
   6411 	* mpq/div.c: Likewise.
   6412 	* mpq/equal.c: Likewise.
   6413 	* mpq/get_d.c: Likewise.
   6414 	* mpq/get_den.c: Likewise.
   6415 	* mpq/get_num.c: Likewise.
   6416 	* mpq/get_str.c: Likewise.
   6417 	* mpq/init.c: Likewise.
   6418 	* mpq/inp_str.c: Likewise.
   6419 	* mpq/inv.c: Likewise.
   6420 	* mpq/md_2exp.c: Likewise.
   6421 	* mpq/mul.c: Likewise.
   6422 	* mpq/neg.c: Likewise.
   6423 	* mpq/set.c: Likewise.
   6424 	* mpq/set_d.c: Likewise.
   6425 	* mpq/set_den.c: Likewise.
   6426 	* mpq/set_f.c: Likewise.
   6427 	* mpq/set_num.c: Likewise.
   6428 	* mpq/set_si.c: Likewise.
   6429 	* mpq/set_str.c: Likewise.
   6430 	* mpq/set_ui.c: Likewise.
   6431 	* mpq/set_z.c: Likewise.
   6432 	* mpq/swap.c: Likewise.
   6433 
   6434 	* tests/mpq/t-inv.c: New test file.
   6435 	* tests/mpq/Makefile.am: Add the above.
   6436 
   6437 	* gmpxx.h (__gmp_set_expr): Use mpq_set_z.
   6438 
   6439 	* mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
   6440 	* mpq/set_d.c: Likewise.
   6441 	* mpq/set_f.c: Likewise.
   6442 
   6443 2012-02-24  Niels Mller  <nisse (a] lysator.liu.se>
   6444 
   6445 	* mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and
   6446 	mpn_submul_1c entry points.
   6447 
   6448 2012-02-23  Marc Glisse  <marc.glisse (a] inria.fr>
   6449 
   6450 	* mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC.
   6451 	* mpz/aors_ui.h: Likewise.
   6452 	* mpz/array_init.c: Likewise.
   6453 	* mpz/cdiv_q.c: Likewise.
   6454 	* mpz/cdiv_qr.c: Likewise.
   6455 	* mpz/cdiv_r.c: Likewise.
   6456 	* mpz/clear.c: Likewise.
   6457 	* mpz/clrbit.c: Likewise.
   6458 	* mpz/cmp_si.c: Likewise.
   6459 	* mpz/com.c: Likewise.
   6460 	* mpz/fdiv_q.c: Likewise.
   6461 	* mpz/fdiv_qr.c: Likewise.
   6462 	* mpz/fdiv_r.c: Likewise.
   6463 	* mpz/get_si.c: Likewise.
   6464 	* mpz/get_str.c: Likewise.
   6465 	* mpz/init.c: Likewise.
   6466 	* mpz/inp_str.c: Likewise.
   6467 	* mpz/iset.c: Likewise.
   6468 	* mpz/iset_d.c: Likewise.
   6469 	* mpz/iset_si.c: Likewise.
   6470 	* mpz/iset_str.c: Likewise.
   6471 	* mpz/iset_ui.c: Likewise.
   6472 	* mpz/mod.c: Likewise.
   6473 	* mpz/neg.c: Likewise.
   6474 	* mpz/out_str.c: Likewise.
   6475 	* mpz/random2.c: Likewise.
   6476 	* mpz/set_si.c: Likewise.
   6477 	* mpz/set_str.c: Likewise.
   6478 	* mpz/set_ui.c: Likewise.
   6479 	* mpz/setbit.c: Likewise.
   6480 	* mpz/sqrt.c: Likewise.
   6481 	* mpz/swap.c: Likewise.
   6482 	* mpz/tdiv_r_2exp.c: Likewise.
   6483 
   6484 	* tests/cxx/t-ops.cc: Test mpz_abs reallocation.
   6485 
   6486 2012-02-23  Torbjorn Granlund  <tege (a] gmplib.org>
   6487 
   6488 	* mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite.
   6489 	* mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here.
   6490 
   6491 	* mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit).
   6492 
   6493 2012-02-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6494 
   6495 	* mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial.
   6496 
   6497 	* mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements.
   6498 
   6499 	* mpz/and.c: Use mpn_ logic everywhere. Reduce branches.
   6500 	* mpz/ior.c: Likewise.
   6501 	* mpz/xor.c: Likewise.
   6502 
   6503 2012-02-20  Torbjorn Granlund  <tege (a] gmplib.org>
   6504 
   6505 	* mpn/x86_64/coreisbr/mul_1.asm: New file.
   6506 
   6507 	* mpn/x86_64/coreisbr/aorsmul_1.asm: New file.
   6508 
   6509 	* mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many
   6510 	assemblers don't support it.
   6511 
   6512 2012-02-19  Torbjorn Granlund  <tege (a] gmplib.org>
   6513 
   6514 	* mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry.
   6515 	Reintroduce previously removed RP argument.
   6516 	* mpn/x86_64/redc_1.asm: Likewise.
   6517 
   6518 	* mpn/generic/redc_2.c: Remove mpn_sub_n call, return carry from
   6519 	mpn_add_n call.
   6520 
   6521 	* gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t.
   6522 
   6523 	* tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument.
   6524 
   6525 	* tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface.
   6526 
   6527 	* mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1.
   6528 	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise.
   6529 	* mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2.
   6530 
   6531 2012-02-18  Marc Glisse  <marc.glisse (a] inria.fr>
   6532 
   6533 	* gmpxx.h (std::common_type): New partial specialization in C++11.
   6534 	* tests/cxx/t-cxx11.cc: Test it.
   6535 
   6536 	* gmpxx.h: Don't declare long double functions that are never defined.
   6537 
   6538 	* gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z
   6539 	becomes tmp=z*z, q=q*q, q+=tmp.
   6540 	* tests/cxx/t-binary.cc: More variable reuse tests.
   6541 
   6542 2012-02-17  Marc Glisse  <marc.glisse (a] inria.fr>
   6543 
   6544 	* gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for
   6545 	the benefit of applications using gcc -Wundef.
   6546 	(__GMP_WITHIN_GMPXX): Likewise.
   6547 
   6548 2012-02-16  Marc Glisse  <marc.glisse (a] inria.fr>
   6549 
   6550 	* gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d
   6551 	becomes tmp=c*d, e=a*b, e-=tmp.
   6552 	* tests/cxx/t-binary.cc: More variable reuse tests.
   6553 
   6554 2012-02-15  Niels Mller  <nisse (a] lysator.liu.se>
   6555 
   6556 	* tune/tuneup.c (mul_toom43_to_toom54_threshold): New global.
   6557 	(tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD.
   6558 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro.
   6559 	(SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro.
   6560 	Prototypes for corresponding functions.
   6561 	* tune/common.c (speed_mpn_toom43_for_toom54_mul): New function.
   6562 	(speed_mpn_toom54_for_toom43_mul): New function.
   6563 
   6564 	* gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant.
   6565 	(MPN_TOOM53_MUL_MINSIZE): Likewise.
   6566 	(MPN_TOOM54_MUL_MINSIZE): New constant.
   6567 	(mpn_toom54_mul): Added prototype.
   6568 	(MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and
   6569 	tuning setup.
   6570 
   6571 2012-02-14  Niels Mller  <nisse (a] lysator.liu.se>
   6572 
   6573 	* mpn/generic/toom54_mul.c: New file, originally contributed by
   6574 	Marco.
   6575 	* gmp-impl.h (mpn_toom54_mul_itch): New function.
   6576 	* configure.in (gmp_mpn_functions): Added toom54_mul.
   6577 	* tests/mpn/t-toom54.c: New file.
   6578 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54.
   6579 
   6580 2012-02-13  Niels Mller  <nisse (a] lysator.liu.se>
   6581 
   6582 	* configure.in: Display summary of options.
   6583 
   6584 2012-02-11  Torbjorn Granlund  <tege (a] gmplib.org>
   6585 
   6586 	* tests/tests.h (TESTS_REPS): Print any non-standard repetitions.
   6587 
   6588 2012-02-11 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6589 
   6590 	* doc/gmp.texi (Factorial): Shortly describe current algorithm.
   6591 	(Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly.
   6592 	* gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY.
   6593 
   6594 2012-02-10  Niels Mller  <nisse (a] lysator.liu.se>
   6595 
   6596 	* tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter
   6597 	bound for cofactors.
   6598 
   6599 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected
   6600 	handling of unlikely (maybe impossible?) case u1n < un. Related to
   6601 	the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo.
   6602 
   6603 2012-02-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6604 
   6605 	* gmp-impl.h (mpn_toom3*_itch): Support any recursion depth.
   6606 	* tests/refmpn.c (refmpn_mul): Restore tight allocations.
   6607 
   6608 	* mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!!
   6609 	* gmp-impl.h (mpz_oddfac_1): Update signature.
   6610 	* mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1.
   6611 
   6612 2012-02-09  Marc Glisse  <marc.glisse (a] inria.fr>
   6613 
   6614 	* gmp-impl.h (ABS_CAST): New macro.
   6615 	* mpf/cmp_si.c: Use ABS_CAST.
   6616 	* mpf/get_si.c: Use ABS_CAST.
   6617 	* mpf/iset_si.c: Use ABS_CAST.
   6618 	* mpf/set_si.c: Use ABS_CAST.
   6619 	* mpq/set_si.c: Use ABS_CAST.
   6620 	* mpz/cmp_si.c: Use ABS_CAST.
   6621 	* mpz/get_si.c: Use ABS_CAST.
   6622 	* mpz/iset_si.c: Use ABS_CAST.
   6623 	* mpz/mul_i.h: Use ABS_CAST.
   6624 	* mpz/set_si.c: Use ABS_CAST.
   6625 
   6626 2012-02-08  Torbjorn Granlund  <tege (a] gmplib.org>
   6627 
   6628 	* mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb
   6629 	code.
   6630 
   6631 2012-02-08  Niels Mller  <nisse (a] lysator.liu.se>
   6632 
   6633 	* doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor
   6634 	canonicalization.
   6635 
   6636 2012-02-07  Niels Mller  <nisse (a] lysator.liu.se>
   6637 
   6638 	* mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the
   6639 	special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo.
   6640 
   6641 2012-02-06  Niels Mller  <nisse (a] lysator.liu.se>
   6642 
   6643 	* mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry
   6644 	handling bug. Fix copied from gmp-5.0 repo, where the function is
   6645 	found in hgcd.c.
   6646 
   6647 	* tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands,
   6648 	not mpz_urandomb. Change copied from gmp-5.0 repo.
   6649 	* tests/mpn/t-hgcd.c (main): Likewise.
   6650 
   6651 2012-02-04 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6652 
   6653 	* tests/refmpn.c (refmpn_mul): More conservative allocations.
   6654 
   6655 2012-02-03  Torbjorn Granlund  <tege (a] gmplib.org>
   6656 
   6657 	* mpn/x86_64/bd1/gmp-mparam.h: New file.
   6658 
   6659 	* longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv.
   6660 
   6661 	* mpn/generic/udiv_w_sdiv.c: Use c89 function header.
   6662 
   6663 2012-02-03 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6664 
   6665 	* mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions.
   6666 	* mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation.
   6667 	* gmp-impl.h: mpz_oddfac_1 declaration.
   6668 	* Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo .
   6669 	* mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c .
   6670 	* tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c .
   6671 
   6672 2012-02-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6673 
   6674 	* mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug.
   6675 
   6676 2012-02-02  Torbjorn Granlund  <tege (a] gmplib.org>
   6677 
   6678 	* mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT.
   6679 	* mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n.
   6680 
   6681 	* tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in
   6682 	tested function.
   6683 
   6684 2012-02-01  Torbjorn Granlund  <tege (a] gmplib.org>
   6685 
   6686 	* tests/mpn/t-mul.c: New file.
   6687 	* tests/mpn/Makefile.am: Compile it.
   6688 
   6689 2012-02-01  Marc Glisse  <marc.glisse (a] inria.fr>
   6690 
   6691 	* gmpxx.h: Remove check for g++ older than 2.91.
   6692 
   6693 2012-02-01  Niels Mller  <nisse (a] lysator.liu.se>
   6694 
   6695 	* mpn/generic/mul.c: Added diagram on where toom functions can be
   6696 	called.
   6697 
   6698 2012-02-01  Marc Glisse  <marc.glisse (a] inria.fr>
   6699 
   6700 	* gmpxx.h (__gmp_unary_expr): Make the constructor explicit.
   6701 	(__gmp_expr(__gmp_expr&&)): New move constructors.
   6702 	(__gmp_expr::operator=(__gmp_expr&&)): New move assignments.
   6703 	(swap): Mark as noexcept.
   6704 	(__GMPXX_USE_CXX11): New macro.
   6705 	(__GMPXX_NOEXCEPT): New macro.
   6706 	* tests/cxx/t-cxx11.cc: New file.
   6707 	* tests/cxx/Makefile.am: Added t-cxx11.
   6708 
   6709 2012-01-31  Torbjorn Granlund  <tege (a] gmplib.org>
   6710 
   6711 	* mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for
   6712 	SQR_BASECASE_MAX.
   6713 	(SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec.
   6714 	(SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD
   6715 	straight, without arithmetic.
   6716 	(mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion.
   6717 
   6718 2012-01-30  Torbjorn Granlund  <tege (a] gmplib.org>
   6719 
   6720 	* tests/mpz/t-powm.c: Ensure all sizes are seen.
   6721 
   6722 2012-01-30  Marc Glisse  <marc.glisse (a] inria.fr>
   6723 
   6724 	* gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c
   6725 	when d != c.
   6726 	* tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c.
   6727 
   6728 2012-01-28  Marc Glisse  <marc.glisse (a] inria.fr>
   6729 
   6730 	* gmpxx.h: Don't compute -LONG_MIN.
   6731 
   6732 	* doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t.
   6733 	* gmpxx.h: Replace unsigned long with mp_bitcnt_t.
   6734 
   6735 2012-01-27  Torbjorn Granlund  <tege (a] gmplib.org>
   6736 
   6737 	* Upgrade to libtool 2.4.2.
   6738 
   6739 2012-01-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6740 
   6741 	* tests/mpz/t-fac_ui.c: Increase default test cases.
   6742 
   6743 	* mpz/prodlimbs.c: New file, mpz_prodlimbs implementation.
   6744 	* gmp-impl.h: mpz_prodlimbs declaration.
   6745 	* Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo .
   6746 	* mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c .
   6747 	(fac_ui.h): remove target (moved up one directory).
   6748 	* mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations.
   6749 
   6750 2012-01-25  Torbjorn Granlund  <tege (a] gmplib.org>
   6751 
   6752 	* tune/tuneup.c: Remove unused tuneup variables.
   6753 
   6754 2012-01-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6755 
   6756 	* mpz/fac_ui.c: Reduce branches in basecases.
   6757 
   6758 2012-01-18  Marc Glisse  <marc.glisse (a] inria.fr>
   6759 
   6760 	* doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t.
   6761 
   6762 2012-01-17  Torbjorn Granlund  <tege (a] gmplib.org>
   6763 
   6764 	* configure.in: Add ultrasparc T4 support.
   6765 
   6766 	* demos/isprime.c (main): Run 25 millerrabin tests.
   6767 
   6768 2012-01-16 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6769 
   6770 	* mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size.
   6771 	(mpz_oddswing_1): Reduce the number of divisions.
   6772 	(mpz_oddfac_1): Reduce memory usage.
   6773 	* mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_.
   6774 	* tune/tuneup.c (tune_fac_ui): Likewise.
   6775 
   6776 2012-01-15  Niels Mller  <nisse (a] lysator.liu.se>
   6777 
   6778 	* mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than
   6779 	ULONG_MAX, when returning "infinity".
   6780 	* mpz/scan1.c (mpz_scan1): Likewise.
   6781 
   6782 2012-01-12  Torbjorn Granlund  <tege (a] gmplib.org>
   6783 
   6784 	* tests/t-popc.c: Test longer bit strings.
   6785 
   6786 2012-01-12 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6787 
   6788 	* mpz/divexact.c: Tight realloc, delayed if variables are reused.
   6789 	* mpz/lcm.c: Smaller temp space, avoid goto.
   6790 	* gmp-impl.h (popc_limb): avoid double & (for 8-bits limb).
   6791 
   6792 2012-01-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6793 
   6794 	* mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds.
   6795 	* tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_.
   6796 
   6797 2012-01-07  Torbjorn Granlund  <tege (a] gmplib.org>
   6798 
   6799 	* mpz/mul_2exp.c: Rewrite.
   6800 	* mpz/tdiv_q_2exp.c: Rewrite.
   6801 
   6802 2012-01-05 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6803 
   6804 	* gen-fac_ui.c: Remove currently unused constants; add new odd
   6805 	double factorial table.
   6806 	* mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default.
   6807 	(mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd.
   6808 	(mpz_prodlimbs): More in-place computations.
   6809 
   6810 	* tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_.
   6811 
   6812 2012-01-02 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6813 
   6814 	* tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD.
   6815 
   6816 2011-12-31  Torbjorn Granlund  <tege (a] gmplib.org>
   6817 
   6818 	* Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz.
   6819 
   6820 2011-12-31 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6821 
   6822 	* tune/Makefile.am (fac_ui.c): New target.
   6823 	(nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c.
   6824 	* tune/tuneup.c (mpz_fac_ui_tune): Declare prototype.
   6825 	(fac_odd_threshold,fac_dsc_threshold): New global variables.
   6826 	(speed_mpz_fac_ui_tune,tune_fac_ui): New functions.
   6827 	(all): Call tune_fac_ui.
   6828 	* gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
   6829 	New thresholds: default values, and setup for tuning.
   6830 	(FAC_DSC_THRESHOLD_LIMIT): Define (when tuning).
   6831 	* mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
   6832 	Default values removed.
   6833 
   6834 2011-12-30  Torbjorn Granlund  <tege (a] gmplib.org>
   6835 
   6836 	* mpz/hamdist.c: Fix typo in a return statement.
   6837 
   6838 	* mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from
   6839 	SQR_TOOM2_THRESHOLD.
   6840 
   6841 2011-12-17  Torbjorn Granlund  <tege (a] gmplib.org>
   6842 
   6843 	* tests/mpz/t-perfpow.c: Decrease default # of tests.
   6844 
   6845 2011-12-16  Torbjorn Granlund  <tege (a] gmplib.org>
   6846 
   6847 	* tests/refmpn.c (AORS_1): Fix typo in variable type.
   6848 
   6849 2011-12-10  Torbjorn Granlund  <tege (a] gmplib.org>
   6850 
   6851 	* mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to
   6852 	allow quotient and dividend to completely overlap.
   6853 	* mpn/generic/sbpi1_bdiv_qr.c: Likewise.
   6854 
   6855 2011-12-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6856 
   6857 	* mpz/fac_ui.c: fac_bc_ui inlined in fac_ui.
   6858 
   6859 2011-12-08  Torbjorn Granlund  <tege (a] gmplib.org>
   6860 
   6861 	* mpn/generic/powm_sec.c: Handle fat binaries better.
   6862 
   6863 	* mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size.
   6864 
   6865 	* mpn/x86/fat/com.c: New file.
   6866 
   6867 	* mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64.
   6868 	* mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64
   6869 	to avoid overhead for standard ABIs.
   6870 
   6871 	* mpn/x86_64/gcd_1.asm: Support DOS64.
   6872 
   6873 2011-12-07  Torbjorn Granlund  <tege (a] gmplib.org>
   6874 
   6875 	* configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat
   6876 	functions.
   6877 
   6878 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break.
   6879 
   6880 2011-12-07 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   6881 
   6882 	* gen-fac_ui.c: Generate two more tables: odd factorial, swing.
   6883 
   6884 	* mpz/fac_ui.c: Rewrite.
   6885 
   6886 2011-12-06  Niels Mller  <nisse (a] lysator.liu.se>
   6887 
   6888 	* mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first
   6889 	recursive call.
   6890 
   6891 2011-12-06  Torbjorn Granlund  <tege (a] gmplib.org>
   6892 
   6893 	* tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the
   6894 	benefit of fat builds).
   6895 	* tune/mod_1_1-2.c: Likewise.
   6896 
   6897 2011-12-05  Torbjorn Granlund  <tege (a] gmplib.org>
   6898 
   6899 	* mpn/x86/fat/lshiftc.c: New file.
   6900 	* mpn/x86/fat/mod_1_1.c: New file.
   6901 	* mpn/x86/fat/mod_1_2.c: New file.
   6902 	* mpn/x86/fat/mod_1_4.c: New file.
   6903 
   6904 	* mpn/x86/fat/diveby3.c: Remove no longer fat function.
   6905 	* mpn/x86_64/fat/diveby3.c: Likewise.
   6906 
   6907 	* mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm.
   6908 	* mpn/x86_64/fat/mode1o.c: Likewise.
   6909 
   6910 	* configure.in (fat_functions): Update to more relevant function set.
   6911 	Add special handling for mod_1_N_cps functions.
   6912 	* gmp-impl.h (struct cpuvec_t) : Corresponding changes.  Also add
   6913 	vrious declarations for new functions.
   6914 	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
   6915 	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
   6916 	* mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
   6917 	* mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
   6918 
   6919 	* mpn/x86_64: Port most remaining x86_64 files to DOS64.
   6920 
   6921 	* mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT.
   6922 
   6923 	* mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code.
   6924 	* mpn/x86_64/darwin.m4 (LEA): Likewise.
   6925 
   6926 2011-12-04  Torbjorn Granlund  <tege (a] gmplib.org>
   6927 
   6928 	* mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs.
   6929 	* mpn/x86/fat/fat.c (MAKE_FMS): Likewise.
   6930 
   6931 	* mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value.
   6932 
   6933 2011-12-02  Torbjorn Granlund  <tege (a] gmplib.org>
   6934 
   6935 	* mpn/x86_64/invert_limb_table.asm: Use PROTECT.
   6936 	* mpn/x86_64/invert_limb.asm: Likewise.
   6937 
   6938 	* mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines.
   6939 	* mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines.
   6940 	* mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines.
   6941 
   6942 2011-12-01  Torbjorn Granlund  <tege (a] gmplib.org>
   6943 
   6944 	* mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c.
   6945 
   6946 	* mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these
   6947 	denote all standard calling conventions).
   6948 
   6949 	* mpn/x86_64: Add DOS64 ABI support to more files.
   6950 
   6951 	* mpn/x86_64/mod_1_1.asm: Finish DOS64 support.
   6952 	* mpn/x86_64/mod_1_2.asm: Likewise.
   6953 	* mpn/x86_64/mod_1_4.asm: Likewise.
   6954 
   6955 	* configure.in: Add GMP_NONSTD_ABI also for fat builds.
   6956 
   6957 	* mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64.
   6958 
   6959 	* mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines.
   6960 	* mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines.
   6961 
   6962 	* mpn/x86_64/dive_1.asm: Add DOS64 ABI support.
   6963 	* mpn/x86_64/mode1o.asm: Likewise.
   6964 
   6965 	* mpn/x86_64/mod_34lsub1.asm: Enable for DOS64.
   6966 
   6967 	* mpn/x86_64/invert_limb.asm: Wrap .protected decl.
   6968 
   6969 	* gmp-impl.h (DECL_divexact_1): Fix typo in return type.
   6970 
   6971 	* mpn/x86_64/dos64.m4 (LEA): New define.
   6972 	(PIC): Define.
   6973 
   6974 2011-11-29  Torbjorn Granlund  <tege (a] gmplib.org>
   6975 
   6976 	* mpn/x86_64: Add DOS64 ABI support to most files.
   6977 
   6978 2011-11-28  Torbjorn Granlund  <tege (a] gmplib.org>
   6979 
   6980 	* mpn/x86_64/mul_basecase.asm: Support ABI DOS64.
   6981 	* mpn/x86_64/sqr_basecase.asm: Support ABI DOS64.
   6982 	* mpn/x86_64/aorsmul_1.asm: Support ABI DOS64.
   6983 	* mpn/x86_64/mul_1.asm: Support ABI DOS64.
   6984 
   6985 	* mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs.
   6986 
   6987 	* mpn/x86_64/dos64.m4: New file.
   6988 
   6989 	* mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro.
   6990 
   6991 	* configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI.
   6992 	No longer clear out path_64.
   6993 	(mpn code selection loop): Handle GMP_NONSTD_ABI.
   6994 
   6995 	* mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants.
   6996 
   6997 2011-11-25  Torbjorn Granlund  <tege (a] gmplib.org>
   6998 
   6999 	* x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode.
   7000 
   7001 	* configure.in: Overhaul x86/x86_64 support, merging three case
   7002 	statements into one.
   7003 
   7004 2011-11-24  Torbjorn Granlund  <tege (a] gmplib.org>
   7005 
   7006 	* doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t
   7007 	precision.
   7008 
   7009 	* mpn/powerpc32/p7/gmp-mparam.h: New file.
   7010 
   7011 	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's
   7012 	threshold.
   7013 
   7014 2011-11-22  Torbjorn Granlund  <tege (a] gmplib.org>
   7015 
   7016 	* mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file.
   7017 
   7018 	* configure.in: Don't fail fat builds under 64-bit DOS.
   7019 
   7020 	* mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better
   7021 	power5 performance.
   7022 
   7023 2011-11-21  Torbjorn Granlund  <tege (a] gmplib.org>
   7024 
   7025 	* gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name.
   7026 
   7027 2011-11-20  Torbjorn Granlund  <tege (a] gmplib.org>
   7028 
   7029 	* configure.in: Split x86 CPUs into more subtypes for more accurate
   7030 	passing of gcc flags.
   7031 
   7032 	* mpn/powerpc32/p3-p7/aors_n.asm: New file.
   7033 
   7034 	* configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe
   7035 	mechanism.
   7036 
   7037 	* configure.in: Support powerpc32/p3-p7 directory for affected CPUs.
   7038 
   7039 2011-11-17  Torbjorn Granlund  <tege (a] gmplib.org>
   7040 
   7041 	* tune/speed.c (routine): Add mpn_tabselect.
   7042 	* tune/common.c (speed_mpn_tabselect): New function.
   7043 	* tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from
   7044 	old SPEED_ROUTINE_MPN_COPY.
   7045 	(SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL.
   7046 	(SPEED_ROUTINE_MPN_TABSELECT): New macro.
   7047 
   7048 2011-11-17  Niels Mller  <nisse (a] lysator.liu.se>
   7049 
   7050 	* tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change.
   7051 
   7052 2011-11-16  Torbjorn Granlund  <tege (a] gmplib.org>
   7053 
   7054 	* mpn/powerpc32/tabselect.asm: New file.
   7055 
   7056 	* mpn/powerpc64/mode64/aorscnd_n.asm: New file.
   7057 
   7058 2011-11-15  Niels Mller  <nisse (a] lysator.liu.se>
   7059 
   7060 	* tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype.
   7061 	(mpn_hgcd_lehmer_itch): Likewise.
   7062 	(mpn_hgcd_appr_lehmer): Likewise.
   7063 	(mpn_hgcd_appr_lehmer_itch): Likewise.
   7064 	(MPN_HGCD_LEHMER_ITCH): Deleted macro.
   7065 
   7066 	* tune/speed.c (routine): Added mpn_hgcd_appr_lehmer.
   7067 
   7068 	* tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch
   7069 	rather than similarly named macro.
   7070 	(speed_mpn_hgcd_appr_lehmer): New function.
   7071 
   7072 	* tune/Makefile.am (libspeed_la_SOURCES): Added
   7073 	hgcd_appr_lehmer.c.
   7074 
   7075 	* tune/hgcd_appr_lehmer.c: New file.
   7076 
   7077 	* tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some
   7078 	machines got small thresholds which appear to be bogus.
   7079 
   7080 2011-11-15  Torbjorn Granlund  <tege (a] gmplib.org>
   7081 
   7082 	* mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls.
   7083 	(redcify): Likewise.
   7084 	(mpn_powm_sec): Likewise.
   7085 
   7086 	* mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage
   7087 	(mpn_powm_sec_itch): Rewrite.
   7088 
   7089 	* mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in
   7090 	initialisation.
   7091 
   7092 	* configure.in: Amend 2011-11-03 gcc_cflags change.
   7093 
   7094 	* mpn/powerpc64/tabselect.asm: New file.
   7095 	* mpn/x86_64/tabselect.asm: New file.
   7096 	* mpn/x86/tabselect.asm: New file.
   7097 	* mpn/ia64/tabselect.asm: New file.
   7098 
   7099 	* mpn/asm-defs.m4 (define_mpn): Add tabselect.
   7100 
   7101 	* configure.in (gmp_mpn_functions): Add tabselect.
   7102 	(HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect.
   7103 
   7104 	* mpn/generic/powm_sec.c: Remove mpn_tabselect implementation.
   7105 	* mpn/generic/tabselect.c: New file with removed code.
   7106 
   7107 2011-11-13  Torbjorn Granlund  <tege (a] gmplib.org>
   7108 
   7109 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c.
   7110 
   7111 	* mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE
   7112 	(POWM_SEC_TABLE): Define default.
   7113 
   7114 	* tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE.
   7115 	(all): Call new function.
   7116 
   7117 	* mpn/generic/powm_sec.c (win_size): Define only when
   7118 	TUNE_PROGRAM_BUILD is not set.
   7119 
   7120 2011-11-13  Niels Mller  <nisse (a] lysator.liu.se>
   7121 
   7122 	* tune/tuneup.c (tune_hgcd_appr): Use default min_size.
   7123 	(tune_hgcd_reduce): Increase max_size and step_factor, to 7000
   7124 	and 0.04, respectively.
   7125 
   7126 2011-11-11  Torbjorn Granlund  <tege (a] gmplib.org>
   7127 
   7128 	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove.
   7129 
   7130 2011-11-11  Niels Mller  <nisse (a] lysator.liu.se>
   7131 
   7132 	* tune/hgcd_reduce_2.c: New file.
   7133 	* tune/hgcd_reduce_1.c: New file.
   7134 
   7135 	* tune/tuneup.c (hgcd_appr_threshold): New threshold variable.
   7136 	(hgcd_reduce_threshold): Likewise.
   7137 	(tune_hgcd_appr): New function.
   7138 	(tune_hgcd_reduce): New function.
   7139 	(all): Call tune_hgcd_appr and tune_hgcd_reduce.
   7140 
   7141 	* tune/speed.h (speed_mpn_hgcd_reduce): Declaration.
   7142 	(speed_mpn_hgcd_reduce_[12]): Likewise.
   7143 	(mpn_hgcd_reduce_[12]): Likewise.
   7144 	(SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro.
   7145 
   7146 	* tune/speed.c (routine): Added mpn_hgcd_reduce,
   7147 	mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2.
   7148 
   7149 	* tune/common.c (speed_mpn_hgcd_reduce): New function.
   7150 	(speed_mpn_hgcd_reduce_[12]): Likewise.
   7151 
   7152 	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c
   7153 	hgcd_reduce_2.c.
   7154 	(TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c.
   7155 
   7156 	* mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted
   7157 	functions, earlier copied to hgcd_reduce.c.
   7158 	(mpn_hgcd_appr): Use hgcd_reduce.
   7159 
   7160 2011-11-09  Torbjorn Granlund  <tege (a] gmplib.org>
   7161 
   7162 	* mpn/powerpc64/mode64/sqr_basecase.asm: New file.
   7163 
   7164 	* mpn/x86_64/aorscnd_n.asm: New file.
   7165 
   7166 	* tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n.
   7167 	* tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions.
   7168 	* tune/speed.h: Declare them.
   7169 
   7170 	* tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n.
   7171 	* tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions.
   7172 	* tests/tests.h: Declare them.
   7173 
   7174 	* configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n.
   7175 
   7176 2011-11-07  Torbjorn Granlund  <tege (a] gmplib.org>
   7177 
   7178 	* mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but
   7179 	not fully canonically; leave add_n and conditional sub_n to caller.
   7180 	Therefore omit R argument.
   7181 
   7182 	* mpn/generic/redc_1_sec.c: Remove.
   7183 
   7184 	* gmp-impl.h (mpn_redc_1): Update declaration.
   7185 	(mpn_redc_1_sec): Remove declaration.
   7186 
   7187 	* configure.in (gmp_mpn_functions): Remove redc_1.
   7188 
   7189 	* mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface.
   7190 	* tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise.
   7191 
   7192 	* tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1
   7193 	instead of mpn_addmul_1.
   7194 
   7195 	* mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1.
   7196 	* mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for
   7197 	mpn_redc_1_sec.
   7198 
   7199 2011-11-03  Torbjorn Granlund  <tege (a] gmplib.org>
   7200 
   7201 	* dumbmp.c (mpz_sub): Abort for non-handled case.
   7202 
   7203 	* mpn/powerpc64/mode64/lshiftc.asm: Move file from here...
   7204 	* mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications.
   7205 
   7206 	* configure.in: Pass -m32 in more cases, using _maybe mechanism.
   7207 	Inherit default gcc_cflags in more places.
   7208 
   7209 	* mpn/powerpc64/mode64/p7/gmp-mparam.h: New file.
   7210 
   7211 2011-11-02  Torbjorn Granlund  <tege (a] gmplib.org>
   7212 
   7213 	* mpn/s390_64/invert_limb.asm: Slight optimisation.
   7214 
   7215 	* configure.in (s390): Set gcc_32_cflags_maybe.
   7216 
   7217 	* mpn/s390_32/gmp-mparam.h: Put in proper data.
   7218 	* mpn/s390_32/esame/gmp-mparam.h: New file.
   7219 
   7220 	* mpn/x86_64/bobcat/gmp-mparam.h: New file.
   7221 
   7222 	* mpn/s390_32/lshift.asm: New file.
   7223 	* mpn/s390_32/rshift.asm: New file.
   7224 	* mpn/s390_32/lshiftc.asm: New file.
   7225 
   7226 2011-10-31  Torbjorn Granlund  <tege (a] gmplib.org>
   7227 
   7228 	* mpn/powerpc64/sqr_diagonal.asm: Move from here...
   7229 	* mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here.
   7230 
   7231 	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file.
   7232 
   7233 	* mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code.
   7234 	* mpn/s390_32/esame/sqr_basecase.asm: Likewise.
   7235 
   7236 2011-10-29  Torbjorn Granlund  <tege (a] gmplib.org>
   7237 
   7238 	* mpn/s390_64/lshift.asm: Complete rewrite.
   7239 	* mpn/s390_64/rshift.asm: Likewise.
   7240 
   7241 	* mpn/s390_64/lshiftc.asm: New file.
   7242 
   7243 2011-10-28  Torbjorn Granlund  <tege (a] gmplib.org>
   7244 
   7245 	* mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code.
   7246 
   7247 2011-10-27  Torbjorn Granlund  <tege (a] gmplib.org>
   7248 
   7249 	From Per Olofsson:
   7250 	* gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH
   7251 	clash.
   7252 
   7253 	* mpn/s390_32/esame/mul_basecase.asm: New file.
   7254 
   7255 	* mpn/s390_32/esame/sqr_basecase.asm: New file.
   7256 
   7257 	* mpn/s390_32/logops_n.asm: New file.
   7258 
   7259 	* mpn/s390_64/logops_n.asm: Fix rp=up code.  Remove a leftover insn.
   7260 
   7261 2011-10-26  Niels Mller  <nisse (a] lysator.liu.se>
   7262 
   7263 	* gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added
   7264 	prototypes.
   7265 	(HGCD_APPR_THRESHOLD): Set up threshold for tuning.
   7266 	(HGCD_REDUCE_THRESHOLD): Likewise.
   7267 
   7268 	* configure.in (gmp_mpn_functions): Added hgcd_reduce.
   7269 
   7270 	* mpn/generic/hgcd_reduce.c: New file.
   7271 
   7272 2011-10-24  Torbjorn Granlund  <tege (a] gmplib.org>
   7273 
   7274 	* mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't
   7275 	allocate any stack space.
   7276 
   7277 2011-10-23  Torbjorn Granlund  <tege (a] gmplib.org>
   7278 
   7279 	* mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible.
   7280 
   7281 	* tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc):
   7282 	Pass correct input args.
   7283 
   7284 	* mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions.
   7285 
   7286 	* mpn/s390_64/mul_basecase.asm: New file.
   7287 
   7288 	* mpn/s390_64/sqr_basecase.asm: New file.
   7289 	* mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase.
   7290 
   7291 	* mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l.
   7292 
   7293 	* mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm.
   7294 	* mpn/s390_64/sublsh1_n.asm: New file.
   7295 	* mpn/s390_64/aorslsh1_n.asm: Remove file.
   7296 
   7297 2011-10-22  Torbjorn Granlund  <tege (a] gmplib.org>
   7298 
   7299 	* mpn/s390_64/logops_n.asm: New file.
   7300 
   7301 	* mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code.
   7302 
   7303 2011-10-20  Torbjorn Granlund  <tege (a] gmplib.org>
   7304 
   7305 	* tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro.
   7306 	* tune/common.c (speed_mpn_sqr_diag_addlsh1): New function.
   7307 	* tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1.
   7308 
   7309 	* mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code.
   7310 
   7311 	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers.
   7312 
   7313 2011-10-19  Torbjorn Granlund  <tege (a] gmplib.org>
   7314 
   7315 	* mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code.
   7316 	* mpn/s390_32/esame/add_n.asm: Likewise.
   7317 
   7318 2011-10-17  Torbjorn Granlund  <tege (a] gmplib.org>
   7319 
   7320 	* mpn/s390_32/esame/aorslsh1_n.asm: New file.
   7321 
   7322 2011-10-16  Torbjorn Granlund  <tege (a] gmplib.org>
   7323 
   7324 	* mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file.
   7325 
   7326 	* mpn/s390_32/copyi.asm: New file.
   7327 	* mpn/s390_32/copyd.asm: New file.
   7328 
   7329 	* mpn/s390_64/copyd.asm: Optimise.
   7330 
   7331 	* mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy.
   7332 
   7333 	* mpn/s390_64/aorslsh1_n.asm: New file.
   7334 
   7335 	* mpn/s390_64/mod_34lsub1.asm: New file.
   7336 
   7337 	* mpn/s390_64/sqr_diag_addlsh1.asm: New file.
   7338 
   7339 2011-10-15  Torbjorn Granlund  <tege (a] gmplib.org>
   7340 
   7341 	* configure.in (s390): Rewrite support to handle known CPUs.
   7342 	* config.guess: Recognise s390 CPUs.
   7343 	* config.sub: Match s390 CPUs.
   7344 	* acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines.
   7345 
   7346 2011-10-14  Torbjorn Granlund  <tege (a] gmplib.org>
   7347 
   7348 	From Per Olofsson:
   7349 	* mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h.
   7350 	* mpn/generic/gcd_1.c: Separate declarations and initialisers for the
   7351 	benefit of C++.
   7352 
   7353 	* configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch.
   7354 	* longlong.h (s390): Use it.
   7355 	(s390 umul_ppmm): Fix typo in pure C variant.
   7356 
   7357 2011-10-13  Torbjorn Granlund  <tege (a] gmplib.org>
   7358 
   7359 	* longlong.h (s390): Put back an accidentally deleted #else.
   7360 
   7361 	* configure.in (s390): Unset extra_functions for s390x.
   7362 
   7363 2011-10-12  Torbjorn Granlund  <tege (a] gmplib.org>
   7364 
   7365 	* mpn/s390_64/lshift.asm: Reduce register usage.
   7366 	* mpn/s390_64/rshift.asm: Likewise.
   7367 
   7368 	* longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm.
   7369 
   7370 	From Andreas Krebbel:
   7371 	* longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using
   7372 	64-bit registers.
   7373 	(s390 udiv_qrnnd): Likewise.
   7374 
   7375 2011-10-11  Torbjorn Granlund  <tege (a] gmplib.org>
   7376 
   7377 	* configure.in (s390x): Pass -mzarch to gcc in 32-bit mode.
   7378 
   7379 	* longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns.
   7380 	* mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise.
   7381 
   7382 	* mpn/s390_64/copyd.asm: New file.
   7383 
   7384 2011-10-10  Niels Mller  <nisse (a] lysator.liu.se>
   7385 
   7386 	* mpn/generic/hgcd_appr.c: Deleted debugging code.
   7387 
   7388 	* tests/mpn/t-hgcd_appr.c (main): Added -v flag.
   7389 	(hgcd_appr_valid_p): Increased margin of non-minimality for
   7390 	divide-and-conquer algorithm. Display bit counts only if
   7391 	-v is used.
   7392 
   7393 	* mpn/generic/hgcd_appr.c (submul): New (static) function.
   7394 	(hgcd_matrix_apply): New function.
   7395 	(mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm.
   7396 	(mpn_hgcd_appr): Implemented divide-and-conquer.
   7397 
   7398 2011-10-10  Torbjorn Granlund  <tege (a] gmplib.org>
   7399 
   7400 	* mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant.  Put arm code
   7401 	inside __GNUC__.
   7402 
   7403 	* tune/time.c (STCK): Use proper memory constraint.
   7404 
   7405 	From Marco Trudel:
   7406 	* tests/mpz/t-scan.c (check_ref): Fix loop end bound.
   7407 
   7408 2011-10-10  Niels Mller  <nisse (a] lysator.liu.se>
   7409 
   7410 	* gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold.
   7411 
   7412 	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change.
   7413 	Destroy inputs, let caller make working copies if needed.
   7414 	(mpn_hgcd_appr_itch): Reduced scratch need.
   7415 	* gmp-impl.h: Updated mpn_hgcd_appr prototype.
   7416 	* tests/mpn/t-hgcd_appr.c (one_test): Make working copies for
   7417 	hgcd_appr.
   7418 	* tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL.
   7419 	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted.
   7420 
   7421 2011-10-09  Torbjorn Granlund  <tege (a] gmplib.org>
   7422 
   7423 	* mpn/s390_64/copyi.asm: New file.
   7424 	* mpn/s390_64/lshift.asm: New file.
   7425 	* mpn/s390_64/rshift.asm: New file.
   7426 
   7427 	* mpn/s390_64/add_n.asm: Rewrite using lmg/stmg.
   7428 	* mpn/s390_64/sub_n.asm: Likewise.
   7429 
   7430 	* mpn/s390_64/invert_limb.asm: Save a callee-saves register less.
   7431 
   7432 	* tune/time.c (getrusage_backwards_p): Properly cast printed values.
   7433 
   7434 	* longlong.h (s390x): Put back UDItype casts to make gcc reloading use
   7435 	right more for constants.
   7436 	(s390x count_leading_zeros): Disable until we support z10 specifically.
   7437 	(s390x add_ssaaaa): Remove algsi/slgsi until we support z10.
   7438 
   7439 2011-10-09  Niels Mller  <nisse (a] lysator.liu.se>
   7440 
   7441 	* mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare
   7442 	matrix argument const.
   7443 
   7444 2011-10-08  Niels Mller  <nisse (a] lysator.liu.se>
   7445 
   7446 	* tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the
   7447 	allowed margin of non-minimality for hgcd_appr.
   7448 
   7449 	* mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of
   7450 	extra_bits, starting at zero, to ensure that we don't produce too
   7451 	small remainders. Added a final reduction loop when we we
   7452 	otherwise terminate with extra_bits > 0, to make the returned
   7453 	remainders closer to minimal.
   7454 
   7455 2011-10-07  Torbjorn Granlund  <tege (a] gmplib.org>
   7456 
   7457 	* longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd.
   7458 	(s390): Overhaul 32-bit and 64-bit code.
   7459 
   7460 2011-10-07  Niels Mller  <nisse (a] lysator.liu.se>
   7461 
   7462 	* tune/speed.h (speed_mpn_hgcd_appr): New prototype.
   7463 	(SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro.
   7464 	* tune/common.c (speed_mpn_hgcd_appr): New function.
   7465 	* tune/speed.c (routine): Added mpn_hgcd_appr.
   7466 
   7467 	* tests/mpn/t-hgcd_appr.c: New file.
   7468 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr.
   7469 
   7470 	* configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr.
   7471 
   7472 	* gmp-impl.h: Added prototypes for mpn_hgcd_step,
   7473 	mpn_hgcd_appr_itch and mpn_hgcd_appr.
   7474 
   7475 	* mpn/generic/hgcd_appr.c: New file.
   7476 
   7477 	* mpn/generic/hgcd_step.c: New file, extracted from hgcd.c.
   7478 	(mpn_hgcd_step): Renamed, from...
   7479 	* mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved
   7480 	to hgcd_step.c.
   7481 	(hgcd_hook): Also moved to hgcd_step.c.
   7482 	(mpn_hgcd): Updated for hgcd_step renaming.
   7483 
   7484 2011-10-06  Torbjorn Granlund  <tege (a] gmplib.org>
   7485 
   7486 	* mpn/s390_64/invert_limb.asm: New file.
   7487 
   7488 2011-10-04  Torbjorn Granlund  <tege (a] gmplib.org>
   7489 
   7490 	* mpn/s390_64/submul_1.asm: New file.
   7491 	* mpn/s390_32/esame/submul_1.asm: New file.
   7492 
   7493 	* mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start.
   7494 
   7495 	* mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and
   7496 	z8000x.
   7497 
   7498 	* doc/gmp.texi (Custom Allocation): Rephrase a paragraph.
   7499 
   7500 	* demos/factorize.c: Run 25 Miller-Rabin tests.
   7501 
   7502 	* mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10).
   7503 
   7504 2011-10-03  Torbjorn Granlund  <tege (a] gmplib.org>
   7505 
   7506 	* configure.in: Support s390x.
   7507 
   7508 	* longlong.h: Add support for 64-bit s390x.
   7509 
   7510 	* mpn/s390_64: New directory.
   7511 	* mpn/s390_64/add_n.asm: New file.
   7512 	* mpn/s390_64/sub_n.asm: New file.
   7513 	* mpn/s390_64/mul_1.asm: New file.
   7514 	* mpn/s390_64/addmul_1.asm: New file.
   7515 	* mpn/s390_64/bdiv_dbm1c.asm: New file.
   7516 	* mpn/s390_64/gmp-mparam.h: New file, taken from x86_64.
   7517 
   7518 	* mpn/s390_32: Directory renamed from mpn/s390.
   7519 	* mpn/s390_32/gmp-mparam.h: New file, taken from x86_64.
   7520 	* mpn/s390_32/esame/add_n.asm: New file.
   7521 	* mpn/s390_32/esame/sub_n.asm: New file.
   7522 	* mpn/s390_32/esame/mul_1.asm: New file.
   7523 	* mpn/s390_32/esame/addmul_1.asm: New file.
   7524 	* mpn/s390_32/esame/bdiv_dbm1c.asm: New file.
   7525 
   7526 2011-10-03  Niels Mller  <nisse (a] lysator.liu.se>
   7527 
   7528 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid.
   7529 	* tests/mpn/t-mulmid.c: New file.
   7530 
   7531 	mulmid-related assembly for x86_64, from David Harvey:
   7532 	* mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and
   7533 	mulmid_basecase. Also use m4_not_for_expansion on the
   7534 	corresponding OPERATION_* symbols.
   7535 	* mpn/x86_64/aors_err1_n.asm: New file.
   7536 	* mpn/x86_64/aors_err2_n.asm: Likewise.
   7537 	* mpn/x86_64/aors_err3_n.asm: Likewise.
   7538 	* mpn/x86_64/mulmid_basecase.asm: Likewise.
   7539 	* mpn/x86_64/core2/aors_err1_n.asm: Likewise.
   7540 	* mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value.
   7541 	* mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise.
   7542 
   7543 	Tuning of mulmid, from David Harvey:
   7544 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c
   7545 	mulmid_n.c toom42_mulmid.c.
   7546 	* tune/speed.h: Prototypes for mulmid-related functions.
   7547 	(struct speed_params): Increased max number of sources to 5.
   7548 	(SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro.
   7549 	(SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise.
   7550 	(SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise.
   7551 	(SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise.
   7552 	(SPEED_ROUTINE_MPN_MULMID): Likewise.
   7553 	(SPEED_ROUTINE_MPN_MULMID_N): Likewise.
   7554 	(SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise.
   7555 	* tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions.
   7556 	(speed_mpn_mulmid_basecase): New function.
   7557 	(speed_mpn_mulmid): New function.
   7558 	(speed_mpn_mulmid_n): New function.
   7559 	(speed_mpn_toom42_mulmid): New function.
   7560 	* tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n,
   7561 	mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and
   7562 	mpn_mulmid.
   7563 	* tune/tuneup.c (mulmid_toom42_threshold): New threshold variable.
   7564 	(tune_mulmid): New function.
   7565 	(all): Call tune_mulmid.
   7566 
   7567 	Testing of mulmid, from David Harvey:
   7568 	* tests/refmpn.c (AORS_ERR1_N): New macro.
   7569 	(refmpn_add_err1_n, refmpn_sub_err1_n): New functions.
   7570 	(AORS_ERR2_N): New macro.
   7571 	(refmpn_add_err2_n, refmpn_sub_err2_n): New functions.
   7572 	(AORS_ERR3_N): New macro.
   7573 	(refmpn_add_err3_n, refmpn_sub_err3_n): New functions.
   7574 	(refmpn_mulmid_basecase): New function.
   7575 	(refmpn_toom42_mulmid): New function, wrapper for
   7576 	refmpn_mulmid_basecase.
   7577 	(refmpn_mulmid_n): Likewise.
   7578 	(refmpn_mulmid): Likewise.
   7579 	* tests/tests.h: Prototypes for new functions.
   7580 	* tests/devel/try.c (NUM_SOURCES): Increased to 5.
   7581 	(struct try_t): Use NUM_SOURCES and NUM_DESTS constants.
   7582 	(SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants.
   7583 	(OVERLAP_NOT_DST2): New flag.
   7584 	(param_init): New mulmid-related operation types.
   7585 	(mpn_toom42_mulmid_fun): New function.
   7586 	(choice_array): Added mulmid-related entries.
   7587 	(overlap_array): Extended for larger NUM_SOURCES.
   7588 	(OVERLAP_COUNT): Handle OVERLAP_NOT_DST2.
   7589 	(call): Support mulmid-related functions.
   7590 	(pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3.
   7591 	(SIZE_ITERATION): Handle SIZE_ODD.
   7592 	(SIZE2_FIRST): Handle SIZE_CEIL_HALF.
   7593 	(SIZE2_LAST): Likewise.
   7594 
   7595 	Implementation of mulmid, from David Harvey:
   7596 	* mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function.
   7597 	* mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise.
   7598 	* mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise.
   7599 	* mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise.
   7600 	* mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise.
   7601 	* mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise.
   7602 	* mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise.
   7603 	* mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise.
   7604 	* mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise.
   7605 	* configure.in (gmp_mpn_functions): Added mulmid-related
   7606 	functions.
   7607 	(GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and
   7608 	aors_err3_n.
   7609 	* gmp-impl.h: Added prototypes for mulmid functions.
   7610 	(MPN_TOOM42_MULMID_MINSIZE): New constant.
   7611 	(MULMID_TOOM42_THRESHOLD): New threshold.
   7612 	(mpn_toom42_mulmid_itch): New macro.
   7613 
   7614 2011-10-03  Niels Mller  <nisse (a] lysator.liu.se>
   7615 
   7616 	* tune/tune-gcd-p.c (main): Fixed broken loop conditions.
   7617 
   7618 2011-09-26  Torbjorn Granlund  <tege (a] gmplib.org>
   7619 
   7620 	* mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation
   7621 	actually compute intended function.
   7622 
   7623 	* longlong.h (SH): Recognise predefs for all SH processors as defined
   7624 	by current gcc versions.
   7625 
   7626 2011-09-25  Torbjorn Granlund  <tege (a] gmplib.org>
   7627 
   7628 	* mpn/sh: Migrate files to '.asm'.
   7629 	* configure.in: Recognise sh3 and sh4.
   7630 
   7631 2011-09-21  Marc Glisse  <marc.glisse (a] inria.fr>
   7632 
   7633 	* gmpxx.h (mpz_class::swap): New function.
   7634 	(mpq_class::swap): Likewise.
   7635 	(mpf_class::swap): Likewise.
   7636 	(swap): New function.
   7637 	* tests/cxx/t-assign.cc: Test the above.
   7638 	* doc/gmp.texi (swap): Document the above.
   7639 
   7640 2011-08-21  Marc Glisse  <marc.glisse (a] inria.fr>
   7641 
   7642 	* tests/cxx/t-ops2.cc: check mul-div by 2.
   7643 
   7644 	* gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p).
   7645 	(__gmp_binary_lshift): Move before multiplication. Optimize x << 0.
   7646 	(__gmp_binary_rshift): Move before division. Optimize x >> 0.
   7647 	(__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer.
   7648 	(__gmp_binary_minus): Optimize x - 0 and 0 - x.
   7649 	Rewrite rational - integer.
   7650 	(__gmp_binary_multiplies): Optimize x * 2^n.
   7651 	(__gmp_binary_divides): Optimize x / 2^n.
   7652 	(__gmp_binary_*): Deduplicate code for symmetric operations.
   7653 
   7654 2011-08-18  Torbjorn Granlund  <tege (a] gmplib.org>
   7655 
   7656 	* printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for
   7657 	one more digit.
   7658 
   7659 2011-08-17  Torbjorn Granlund  <tege (a] gmplib.org>
   7660 
   7661 	* mpf/sub.c: Fix typo in copy condition.  Delay an allocation.
   7662 
   7663 2011-08-12  Torbjorn Granlund  <tege (a] gmplib.org>
   7664 
   7665 	* gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo.
   7666 
   7667 2011-08-10  Torbjorn Granlund  <tege (a] gmplib.org>
   7668 
   7669 	* gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New.
   7670 	(DIGITS_IN_BASE_FROM_BITS): Compute more accurate result.
   7671 	(MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS.
   7672 
   7673 	* tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error.
   7674 
   7675 2011-08-09  Torbjorn Granlund  <tege (a] gmplib.org>
   7676 
   7677 	* mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size
   7678 	adjustment.
   7679 
   7680 	* gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding
   7681 	overflow for base 2.
   7682 
   7683 2011-08-07  Torbjorn Granlund  <tege (a] gmplib.org>
   7684 
   7685 	* gmp-impl.h (struct bases): Add log2b and logb2 field, remove
   7686 	chars_per_limb_exactly field.
   7687 	(DIGITS_IN_BASE_FROM_BITS): New.
   7688 	(DIGITS_IN_BASE_PER_LIMB): New.
   7689 	(LIMBS_PER_DIGIT_IN_BASE): New.
   7690 	* gen-bases.c: Generate log2b and logb2 fields; do not generate
   7691 	chars_per_limb_exactly field.
   7692 	* mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c
   7693 	  mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c
   7694 	  mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c:
   7695 	Use new macros.
   7696 
   7697 2011-08-04  Torbjorn Granlund  <tege (a] gmplib.org>
   7698 
   7699 	* dumbmp.c (mpz_root): Reinsert accidentally removed line.
   7700 
   7701 2011-08-03  Torbjorn Granlund  <tege (a] gmplib.org>
   7702 
   7703 	* dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal
   7704 	to divisor value.
   7705 	(mpz_root): Create reasonable starting approximation.
   7706 	(mpz_sqrt): New function.
   7707 	(mpz_mul_2exp): Add faster block shifting code, disabled for now.
   7708 
   7709 2011-07-15  Torbjorn Granlund  <tege (a] gmplib.org>
   7710 
   7711 	* mpn/arm/invert_limb.asm: Swap around some registers to silence 'as'
   7712 	warnings.
   7713 
   7714 2011-07-14  Torbjorn Granlund  <tege (a] gmplib.org>
   7715 
   7716 	* mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size
   7717 	argument right.
   7718 
   7719 2011-07-04  Torbjorn Granlund  <tege (a] gmplib.org>
   7720 
   7721 	* tests/misc/t-locale.c: Disable test for mingw.
   7722 
   7723 	* configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out
   7724 	extra_functions_64.
   7725 
   7726 2011-07-02  Torbjorn Granlund  <tege (a] gmplib.org>
   7727 
   7728 	* config.guess: Don't print newline in x86 cpuid function.
   7729 	Rewrite x86-64 cpu recognition asm code to work under Windoze.
   7730 
   7731 2011-06-16  Torbjorn Granlund  <tege (a] gmplib.org>
   7732 
   7733 	* acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change.
   7734 
   7735 	* configure.in: Surround tr ranges with [] for portability.
   7736 
   7737 2011-05-25  Niels Mller  <nisse (a] lysator.liu.se>
   7738 
   7739 	* tune/tune-gcd-p.c (search): New function to search for minimum.
   7740 	(main): Replaced slow linear search.
   7741 
   7742 2011-05-24  Niels Mller  <nisse (a] lysator.liu.se>
   7743 
   7744 	* tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added
   7745 	related automake variables.
   7746 
   7747 	* mpn/Makefile.am (tune-gcd-p): Deleted target.
   7748 
   7749 	* tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c
   7750 	and updated.
   7751 	* mpn/generic/gcd.c: Deleted the corresponding code, including
   7752 	main function.
   7753 
   7754 2011-05-23  Niels Mller  <nisse (a] lysator.liu.se>
   7755 
   7756 	* mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when
   7757 	needed, to get asize >= bsize. Use the reciprocity law generalized
   7758 	to work when one operand is even.
   7759 
   7760 2011-05-22  Niels Mller  <nisse (a] lysator.liu.se>
   7761 
   7762 	* mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1
   7763 	case. Sometimes, powers of two in b were taken into account twice.
   7764 
   7765 2011-05-21  Niels Mller  <nisse (a] lysator.liu.se>
   7766 
   7767 	* mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was
   7768 	broken. Rewrote it.
   7769 
   7770 	* tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime
   7771 	candidate and step has no common factor.
   7772 	(check_data): Added some test cases related to the asize == 1 case
   7773 	in mpz_jacobi.
   7774 
   7775 2011-05-20  Niels Mller  <nisse (a] lysator.liu.se>
   7776 
   7777 	* gmp-impl.h: Jacobi-related prototypes.
   7778 
   7779 	* configure.in (gmp_mpn_functions): Added jacobi_2, jacobi,
   7780 	hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer.
   7781 
   7782 	* mpz/jacobi.c (STRIP_TWOS): Deleted macro.
   7783 	(mpz_jacobi): Partially rewritten, to no longer makes the A
   7784 	operand odd. Use new mpn_jacobi_n.
   7785 
   7786 	* mpn/generic/jacobi_lehmer.c: Deleted file.
   7787 
   7788 	* mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi
   7789 	implementation. Supersedes jacobi_lehmer.c.
   7790 
   7791 	* mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and
   7792 	function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to
   7793 	mpn_jacobi_update when appropriate.
   7794 
   7795 	* mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from
   7796 	jacobi_lehmer.c.
   7797 	* mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise.
   7798 
   7799 	* mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL.
   7800 
   7801 2011-05-19  Niels Mller  <nisse (a] lysator.liu.se>
   7802 
   7803 	* tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for
   7804 	the functions moved to hgcd_matrix.c.
   7805 
   7806 	* configure.in (gmp_mpn_functions): Added hgcd_matrix.
   7807 
   7808 	* mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other
   7809 	helper functions moved to hgcd_matrix.c, see below.
   7810 	(hgcd_hook): New function.
   7811 	(hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook.
   7812 
   7813 	* mpn/generic/hgcd_matrix.c: New file.
   7814 	(mpn_hgcd_matrix_init): Moved here, from hgcd.c.
   7815 	(mpn_hgcd_matrix_update_q): Likewise.
   7816 	(mpn_hgcd_matrix_mul_1): Likewise.
   7817 	(mpn_hgcd_matrix_mul): Likewise.
   7818 	(mpn_hgcd_matrix_adjust): Likewise.
   7819 
   7820 	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New
   7821 	argument s, for use by hgcd.
   7822 	* gmp-impl.h (mpn_gcd_subdiv_step): Update declaration.
   7823 
   7824 	* mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step.
   7825 	* mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT.
   7826 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
   7827 	(mpn_gcdext_hook): Added some ASSERTs.
   7828 	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise.
   7829 
   7830 2011-05-17  Niels Mller  <nisse (a] lysator.liu.se>
   7831 
   7832 	* doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements:
   7833 	Must have un >= vn > 0, and V normalized.
   7834 	* mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input
   7835 	normalization.
   7836 	* mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input
   7837 	requirements.
   7838 
   7839 2011-05-15  Marc Glisse  <marc.glisse (a] inria.fr>
   7840 
   7841 	* gmpxx.h (operator<<): Dedup.
   7842 	* tests/cxx/t-iostream.cc: Test on compound types.
   7843 
   7844 	* gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2.
   7845 
   7846 2011-05-10  Marc Glisse  <marc.glisse (a] inria.fr>
   7847 
   7848 	* gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b).
   7849 	(operator>>): Clean the commenting out.
   7850 	* tests/cxx/t-iostream.cc: New file.
   7851 	* tests/cxx/Makefile.am: Added t-iostream.
   7852 
   7853 2011-05-10  Niels Mller  <nisse (a] lysator.liu.se>
   7854 
   7855 	* doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0.
   7856 	(mpz_gcdext): Document range for cofactors.
   7857 
   7858 2011-05-09  Niels Mller  <nisse (a] lysator.liu.se>
   7859 
   7860 	* mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs.
   7861 	* doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation
   7862 	requirements; one extra limb is still needed for S.
   7863 
   7864 2011-05-09  Torbjorn Granlund  <tege (a] gmplib.org>
   7865 
   7866 	* mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
   7867 	* mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
   7868 
   7869 2011-05-08  Marc Glisse  <marc.glisse (a] inria.fr>
   7870 
   7871 	* gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places.
   7872 	* doc/gmp.texi: Likewise.
   7873 
   7874 2011-05-06  Marc Glisse  <marc.glisse (a] inria.fr>
   7875 
   7876 	* gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit.
   7877 	(mpq_class): Make constructor from mpf_class explicit.
   7878 	* doc/gmp.texi: Document the above.
   7879 	* NEWS: Likewise, and mention the EOF istream fix.
   7880 	* tests/cxx/t-mix.cc: New file.
   7881 	* tests/cxx/Makefile.am: Added t-mix.
   7882 
   7883 	* tests/cxx/t-assign.cc: Minor tweak.
   7884 	* tests/cxx/t-misc.cc: Likewise.
   7885 
   7886 	* gmpxx.h (__gmp_resolve_temp): Remove.
   7887 	(__gmp_set_expr): Remove some overloads.
   7888 	(mpq_class): mpz_init_set the numerator and denominator instead of
   7889 	mpq_init + mpq_set.
   7890 	(mpz_class): Dedup the string constructors.
   7891 	(mpq_class): Likewise.
   7892 
   7893 	* tests/cxx/t-ops3.cc: New file.
   7894 	* tests/cxx/Makefile.am: Added t-ops3.
   7895 
   7896 2011-05-05  Torbjorn Granlund  <tege (a] gmplib.org>
   7897 
   7898 	* mpz/gcdext.c: Correct sgn computation.
   7899 	Use MPZ_REALLOC.
   7900 
   7901 2011-05-05  Marc Glisse  <marc.glisse (a] inria.fr>
   7902 
   7903 	* mpn/x86_64/fat/fat.c: Update for Sandy Bridge.
   7904 	* config.guess: warning to keep it in sync with fat.c.
   7905 
   7906 2011-05-05  Torbjorn Granlund  <tege (a] gmplib.org>
   7907 
   7908 	* mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol.  Use it to
   7909 	work around Darwin problems.
   7910 
   7911 2011-05-04  Niels Mller  <nisse (a] lysator.liu.se>
   7912 
   7913 	* mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use
   7914 	mpz_divexact when computing the second cofactor.
   7915 
   7916 2011-05-03  David Harvey  <dmharvey (a] cims.nyu.edu>
   7917 
   7918 	* configure.in: make invert_limb_table work correctly with
   7919 	--disable-assembly (from Niels Mller)
   7920 
   7921 2011-05-02  Marc Glisse  <marc.glisse (a] inria.fr>
   7922 
   7923 	* .bootstrap: libtoolize doesn't need -c.
   7924 
   7925 	* configfsf.guess: Update to version of 2011-02-02.
   7926 	* configfsf.sub: Update to version of 2011-03-23.
   7927 
   7928 2011-05-02  Niels Mller  <nisse (a] lysator.liu.se>
   7929 
   7930 	* mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end
   7931 	of mpn_gcdext parameters.
   7932 
   7933 	* doc/gmp.texi (mpn_gcdext): Updated doc.
   7934 
   7935 2011-05-01  Niels Mller  <nisse (a] lysator.liu.se>
   7936 
   7937 	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT.
   7938 
   7939 2011-04-30  Marc Glisse  <marc.glisse (a] inria.fr>
   7940 
   7941 	* gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition
   7942 	and the documentation.
   7943 	(mpz_remove): Likewise.
   7944 	(mpf_eq): Likewise.
   7945 
   7946 	* ltmain.sh: Remove.
   7947 	* .bootstrap: Let libtoolize generate ltmain.sh.
   7948 
   7949 	* tests/cxx/t-ops2.cc: Add a couple tests.
   7950 	* tests/cxx/t-rand.cc: Likewise.
   7951 
   7952 	* doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not
   7953 	change the precision.
   7954 
   7955 	* gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline.
   7956 
   7957 2011-04-28  Torbjorn Granlund  <tege (a] gmplib.org>
   7958 
   7959 	* configure.in (x86_64): Support bobcat specifically.
   7960 	(x86): Match bobcat and bulldozer, handle like k10.
   7961 
   7962 2011-04-28  David Harvey  <dmharvey (a] cims.nyu.edu>
   7963 
   7964 	* README.HG: update autotools version numbers.
   7965 
   7966 2011-04-27  Torbjorn Granlund  <tege (a] gmplib.org>
   7967 
   7968 	* tune/speed.h (speed_cyclecounter): Always use PIC variant when
   7969 	compiled with Apple's GCC.
   7970 
   7971 	* mpn/x86/darwin.m4 (LEA): Complete rewrite.
   7972 	(m4append): New macro.
   7973 
   7974 2011-04-26  Torbjorn Granlund  <tege (a] gmplib.org>
   7975 
   7976 	* mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it
   7977 	interferes with expressions.
   7978 
   7979 2011-04-20  Torbjorn Granlund  <tege (a] gmplib.org>
   7980 
   7981 	* acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang
   7982 	problems.
   7983 
   7984 2011-04-12  Niels Mller  <nisse (a] lysator.liu.se>
   7985 
   7986 	* mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table
   7987 	as .protected.
   7988 
   7989 2011-04-11  Torbjorn Granlund  <tege (a] gmplib.org>
   7990 
   7991 	* mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround.
   7992 	Undo 2011-03-28 change.
   7993 
   7994 	* mpn/asm-defs.m4 (define_mpn): Use deflit.
   7995 
   7996 2011-04-10  Niels Mller  <nisse (a] lysator.liu.se>
   7997 
   7998 	* mpn/asm-defs.m4 (define_mpn): Added invert_limb_table.
   7999 
   8000 	* configure.in: Add invert_limb_table to extra_functions_64 on
   8001 	x86_64.
   8002 
   8003 	* mpn/x86_64/invert_limb.asm: Changed references from approx_tab
   8004 	mpn_invert_limb_table.
   8005 
   8006 	* mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New
   8007 	file. Extracted approximation table from invert_limb.asm, renamed
   8008 	and made global.
   8009 
   8010 2011-03-30  Niels Mller  <nisse (a] lysator.liu.se>
   8011 
   8012 	* mpn/x86_64/div_qr_2u_pi1.asm: New file.
   8013 
   8014 	* configure.in (gmp_mpn_functions): Add div_qr_2u_pi1.
   8015 
   8016 	* gmp-impl.h (mpn_div_qr_2u_pi1): Declare.
   8017 
   8018 	* mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to
   8019 	separate file, from...
   8020 	* mpn/generic/div_qr_2.c: ... old location.
   8021 
   8022 	* mpn/generic/div_qr_2n_pi1.c: Renamed file, from...
   8023 	* mpn/generic/div_qr_2_pi1_norm.c: ...old name.
   8024 	* mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from...
   8025 	* mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name.
   8026 
   8027 	* gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration.
   8028 	* tune/speed.h (speed_mpn_div_qr_2n): Likewise.
   8029 	(speed_mpn_div_qr_2u): Likewise.
   8030 
   8031 	* tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n.
   8032 
   8033 	* tune/speed.c (routine): Use new names mpn_div_qr_2n and
   8034 	mpn_div_qr_2u, also on the command line.
   8035 
   8036 	* tune/common.c (speed_mpn_div_qr_2n): Renamed, from...
   8037 	(speed_mpn_div_qr_2_norm): ... old name.
   8038 	(speed_mpn_div_qr_2u): Renamed, from...
   8039 	(speed_mpn_div_qr_2_unnorm): ... old name.
   8040 
   8041 	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed,
   8042 	from...
   8043 	(mpn_div_qr_2_pi1_norm): ...old name.
   8044 	* mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise.
   8045 
   8046 	* mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from...
   8047 	(mpn_div_qr_2_pi2_norm): ... old name.
   8048 	(mpn_div_qr_2u_pi1): Renamed, from...
   8049 	(mpn_div_qr_2_pi1_unnorm): ... old name.
   8050 	(mpn_div_qr_2): Call functions using new names.
   8051 
   8052 	* mpn/asm-defs.m4: Renamed div_qr_2-functions to new names.
   8053 
   8054 2011-03-29  Niels Mller  <nisse (a] lysator.liu.se>
   8055 
   8056 	* mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp
   8057 	argument.
   8058 
   8059 	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration.
   8060 	* gmp-h.in (mpn_div_qr_2): Likewise.
   8061 
   8062 	* tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface.
   8063 	* tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise.
   8064 
   8065 	* mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp
   8066 	argument. Don't clobber the input dividend.
   8067 	(mpn_div_qr_2_pi1_unnorm): Likewise.
   8068 	(mpn_div_qr_2): Likewise.
   8069 	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise.
   8070 
   8071 2011-03-29  Niels Mller  <nisse (a] lysator.liu.se>
   8072 
   8073 	* mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop.
   8074 	Earlier load of divisor from stack.
   8075 
   8076 2011-03-28  Torbjorn Granlund  <tege (a] gmplib.org>
   8077 
   8078 	* mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from
   8079 	being interpreted as m4 macro parameters.
   8080 
   8081 2011-03-22  Niels Mller  <nisse (a] lysator.liu.se>
   8082 
   8083 	* mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop
   8084 	from divrem_2.asm.
   8085 
   8086 	* mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly
   8087 	optimized, implementation.
   8088 
   8089 	* mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm.
   8090 
   8091 	* mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved
   8092 	to separate file, from...
   8093 	* mpn/generic/div_qr_2.c: ... old location.
   8094 
   8095 	* gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare.
   8096 
   8097 	* configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm.
   8098 
   8099 2011-03-22  Torbjorn Granlund  <tege (a] gmplib.org>
   8100 
   8101 	* configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling.
   8102 	Reinsert lost linux/bsd cpu_path handling.
   8103 
   8104 	* mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB.
   8105 	* mpn/generic/div_qr_2.c: Likewise.
   8106 
   8107 	* mpn/generic/div_qr_2.c: Use asm just for gcc.
   8108 	Make powerpc add_sssaaaa work for 32-bit case, and use less strict
   8109 	constraints.
   8110 
   8111 2011-03-21  Niels Mller  <nisse (a] lysator.liu.se>
   8112 
   8113 	* tune/tuneup.c (div_qr_2_pi2_threshold): New global variable.
   8114 	(tune_div_qr_2): New function.
   8115 	(all): Call tune_div_qr_2.
   8116 
   8117 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c.
   8118 
   8119 	* gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning.
   8120 
   8121 	New 4/2 division loop, based on Torbjrn's work:
   8122 	* mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros.
   8123 	(udiv_qr_4by2): New macro.
   8124 	(invert_4by2): New function.
   8125 	(mpn_div_qr_2_pi2_norm): New function.
   8126 	(DIV_QR_2_PI2_THRESHOLD): New threshold.
   8127 	(mpn_div_qr_2_pi1_norm): Renamed, from...
   8128 	(mpn_div_qr_2_norm): ... old name.
   8129 	(mpn_div_qr_2_pi1_unnorm): Renamed, from...
   8130 	(mpn_div_qr_2_unnorm): ... old name.
   8131 	(mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough
   8132 	normalized divisors.
   8133 
   8134 	* gmp-impl.h (udiv_qr_3by2): Avoid a copy.
   8135 
   8136 2011-03-21  Torbjorn Granlund  <tege (a] gmplib.org>
   8137 
   8138 	* configure.in (hppa): Under linux, treat 64-bit processors as if they
   8139 	were 32-bit processors.
   8140 
   8141 	* mpn/generic/addcnd_n.c: New file.
   8142 	* mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n.
   8143 	* configure.in (gmp_mpn_functions): Add addcnd_n.
   8144 	* gmp-impl.h (mpn_addcnd_n): Declare.
   8145 
   8146 	* mpn/generic/subcnd_n.c: Combine nails and non-nails functions.
   8147 
   8148 	* gmp-impl.h (invert_pi1): Prepend _ to local variables, protect
   8149 	parameters within () where necessary.
   8150 
   8151 	* mpn/asm-defs.m4 (define_mpn): Add div_qr_2.
   8152 	* configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed
   8153 	line.
   8154 
   8155 2011-03-20  Torbjorn Granlund  <tege (a] gmplib.org>
   8156 
   8157 	* configure.in (powerpc): Add cpu_path for all three ABIs.
   8158 	Rename "aix64" to "mode64" for consistency.
   8159 
   8160 2011-03-16  Marc Glisse  <marc.glisse (a] inria.fr>
   8161 
   8162 	* gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal.
   8163 	(__gmp_binary_less_equal): Remove, use !__gmp_binary_greater.
   8164 	(__gmp_binary_greater_equal): Remove, use !__gmp_binary_less.
   8165 	* tests/cxx/t-ops2.cc: Typo.
   8166 
   8167 2011-03-20  Niels Mller  <nisse (a] lysator.liu.se>
   8168 
   8169 	* tune/common.c (speed_mpn_div_qr_2_norm): New function.
   8170 	(speed_mpn_div_qr_2_unnorm): New function.
   8171 	* tune/speed.c (routine): Recognize above functions.
   8172 	* tune/speed.h: Declarations for above functions.
   8173 	(SPEED_ROUTINE_MPN_DIV_QR_2): New macro.
   8174 
   8175 	* tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and
   8176 	mpn_div_qr_2.
   8177 
   8178 	* mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function.
   8179 	Intended to eventually replace divrem_2.
   8180 	* configure.in (gmp_mpn_functions): Add div_qr_2.
   8181 
   8182 2011-03-16  Marc Glisse  <marc.glisse (a] inria.fr>
   8183 
   8184 	* gmpxx.h (__gmp_set_expr): Remove broken declarations.
   8185 
   8186 2011-03-19  Torbjorn Granlund  <tege (a] gmplib.org>
   8187 
   8188 	* mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional
   8189 	reallocation.
   8190 
   8191 2011-03-19  Niels Mller  <nisse (a] lysator.liu.se>
   8192 
   8193 	* mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert
   8194 	regarding q and n overlap.
   8195 
   8196 2011-03-16  Marc Glisse  <marc.glisse (a] inria.fr>
   8197 
   8198 	* gmpxx.h (__mpz_set_ui_safe): New inline function.
   8199 	(__mpz_set_si_safe): Likewise.
   8200 	(__GMPXX_TMPZ_UI): Use the new function.
   8201 	(__GMPXX_TMPZ_SI): Likewise.
   8202 	(__GMPXX_TMPQ_UI): Likewise.
   8203 	(__GMPXX_TMPQ_SI): Likewise.
   8204 	* tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t.
   8205 
   8206 2011-03-15  Marc Glisse  <marc.glisse (a] inria.fr>
   8207 
   8208 	* gmpxx.h (__GMPXX_TMPQ_UI): New macro.
   8209 	(__GMPXX_TMPQ_SI): New macro.
   8210 	(struct __gmp_binary_multiplies): Rewrite, using the new macros.
   8211 	(struct __gmp_binary_divides): Likewise.
   8212 
   8213 	* gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite.
   8214 	* tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t.
   8215 
   8216 2011-03-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8217 
   8218 	* mpn/generic/toom_interpolate_16pts.c: Remove ambiguity.
   8219 
   8220 2011-03-14  Torbjorn Granlund  <tege (a] gmplib.org>
   8221 
   8222 	* tune/tuneup.c (tune_mul): Set tuning min size considering print skew.
   8223 
   8224 	* doc/gmp.texi: Make reference to "Formatted I/O" chapters from type
   8225 	specific I/O sections.
   8226 
   8227 	* mpn/alpha/add_n.asm: Add _nc entry point.
   8228 	* mpn/alpha/sub_n.asm: Likewise.
   8229 	* mpn/mips64/add_n.asm: Likewise.
   8230 	* mpn/mips64/sub_n.asm: Likewise.
   8231 	* mpn/sparc64/ultrasparc1234/add_n.asm: Likewise.
   8232 	* mpn/sparc64/ultrasparc1234/sub_n: Likewise.
   8233 
   8234 2011-03-13  Marc Glisse  <marc.glisse (a] inria.fr>
   8235 
   8236 	* tests/cxx/t-ops2.cc: New file.
   8237 	* tests/cxx/Makefile.am: Added t-ops2.
   8238 
   8239 2011-03-13  Torbjorn Granlund  <tege (a] gmplib.org>
   8240 
   8241 	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized
   8242 	for better code.
   8243 
   8244 	* gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32.  Generate
   8245 	no code for incrementing by constant 0.
   8246 
   8247 2011-03-12  Marc Glisse  <marc.glisse (a] inria.fr>
   8248 
   8249 	* gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places.
   8250 
   8251 2011-03-12  Torbjorn Granlund  <tege (a] gmplib.org>
   8252 
   8253 	* mpn/powerpc64/rshift.asm: Accept/return values correctly also for
   8254 	32-bit ABI.
   8255 	* mpn/powerpc64/lshift.asm: Likewise.
   8256 
   8257 	* tune/powerpc.asm: Use powerpc syntax, not power syntax.
   8258 
   8259 	* tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove.
   8260 	* tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc.
   8261 
   8262 2011-03-12  Marc Glisse  <marc.glisse (a] inria.fr>
   8263 
   8264 	* tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s.
   8265 
   8266 	* gmpxx.h: Remove leftover #undefs.
   8267 
   8268 2011-03-11  Torbjorn Granlund  <tege (a] gmplib.org>
   8269 
   8270 	* gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2,
   8271 	udiv_qrnnd_preinv2gen): Remove obsolete macros.
   8272 	(udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3.
   8273 
   8274 2011-03-11 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8275 
   8276 	* gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros.
   8277 	* mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1.
   8278 
   8279 	* tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12].
   8280 	* tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12].
   8281 	* tests/tests.h: Declarations for reference functions above.
   8282 
   8283 	* tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions.
   8284 	* tune/speed.h: Prototypes for functions above.
   8285 	* tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12].
   8286 
   8287 	* mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1.
   8288 	* mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly.
   8289 
   8290 	* configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12].
   8291 	* mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12].
   8292 
   8293 2011-03-10  Marc Glisse  <marc.glisse (a] inria.fr>
   8294 
   8295 	* tests/cxx/t-istream.cc: Explicit conversion to streampos.
   8296 
   8297 2011-03-10  Torbjorn Granlund  <tege (a] gmplib.org>
   8298 
   8299 	* mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates.
   8300 
   8301 	* Move new aorrlsh_n.asm to new k8 dir.  Revert
   8302 	mpn/x86_64/aorrlsh_n.asm.
   8303 	* configure.in: Setup path for new k8 directory.
   8304 
   8305 2011-03-10 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8306 
   8307 	* mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom.
   8308 	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above.
   8309 
   8310 2011-03-09  Torbjorn Granlund  <tege (a] gmplib.org>
   8311 
   8312 	* mpn/x86_64/aorrlsh_n.asm: Complete rewrite.
   8313 
   8314 	* mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file.
   8315 
   8316 2011-03-09  Marc Glisse  <marc.glisse (a] inria.fr>
   8317 
   8318 	* tests/cxx/t-ostream.cc: Use bool instead of int.
   8319 	* tests/cxx/t-istream.cc: Likewise.
   8320 	* tests/cxx/t-misc.cc: Likewise.
   8321 
   8322 	* cxx/ismpznw.cc: Don't clear eofbit.
   8323 	* cxx/ismpq.cc: Likewise.
   8324 	* cxx/ismpf.cc: Likewise.
   8325 	* tests/cxx/t-istream.cc: Test accordingly.
   8326 
   8327 2011-03-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8328 
   8329 	* mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file.
   8330 
   8331 2011-03-09  Marc Glisse  <marc.glisse (a] inria.fr>
   8332 
   8333 	* doc/gmp.texi: Remove void return type from constructors. Document
   8334 	explicit constructors. Document mpf_class::mpf_class(mpf_t).
   8335 
   8336 2011-03-07 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8337 
   8338 	* mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned
   8339 	outer loop exit.
   8340 
   8341 2011-03-07  Torbjorn Granlund  <tege (a] gmplib.org>
   8342 
   8343 	* mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug.
   8344 
   8345 	* mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops.
   8346 	Tweak outer loop rp updates.
   8347 
   8348 2011-03-06  Torbjorn Granlund  <tege (a] gmplib.org>
   8349 
   8350 	* mpn/x86/atom/sse2/sqr_basecase.asm: New file.
   8351 
   8352 2011-03-05  Torbjorn Granlund  <tege (a] gmplib.org>
   8353 
   8354 	* mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code.
   8355 
   8356 2011-03-04  Torbjorn Granlund  <tege (a] gmplib.org>
   8357 
   8358 	* mpn/x86_64/addmul_2.asm: Rewrite for linear performance.
   8359 
   8360 2011-03-03  Torbjorn Granlund  <tege (a] gmplib.org>
   8361 
   8362 	* mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout.  Add arm
   8363 	variant.  Enable sparc64 code and powerpc code (the latter for 32-bit
   8364 	and 64-bit).
   8365 
   8366 	* mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n.
   8367 
   8368 	* gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare.
   8369 	* mpn/asm-defs.m4: Likewise.
   8370 
   8371 	* mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to
   8372 	carry-in issues.
   8373 	* mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise.
   8374 	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise.
   8375 
   8376 2011-03-03  Niels Mller  <nisse (a] lysator.liu.se>
   8377 
   8378 	* mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m
   8379 	as in output operand only. Added sparc32 implementation. Also
   8380 	added #if:ed out attempts at sparc64 and powerpc64.
   8381 
   8382 	* tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD
   8383 	measurement for use by mpn_mod_1_tune. And omit measurement if
   8384 	mpn_mod_1_1p is native assembly code.
   8385 
   8386 	* mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro
   8387 	to check mod_1_1p_method and call the right function.
   8388 	(mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise.
   8389 
   8390 	* gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro.
   8391 	(mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable.
   8392 
   8393 2011-03-02  Torbjorn Granlund  <tege (a] gmplib.org>
   8394 
   8395 	* mpn/x86_64/coreinhm/aorrlsh_n.asm: New file.
   8396 	* mpn/x86_64/coreisbr/aorrlsh_n.asm: New file.
   8397 
   8398 2011-03-01  Niels Mller  <nisse (a] lysator.liu.se>
   8399 
   8400 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and
   8401 	two mov instructions.
   8402 
   8403 	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
   8404 	computation, analogous to recent x86_64/mod_1_1.asm changes.
   8405 	(mpn_mod_1_1p): Corresponding changes. Don't shift b.
   8406 
   8407 	* mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv
   8408 	rather than udiv_rnd_preinv.
   8409 	(mpn_mod_1s_4p): Likewise.
   8410 
   8411 2011-03-01  Torbjorn Granlund  <tege (a] gmplib.org>
   8412 
   8413 	* mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code
   8414 	between entry points.
   8415 	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
   8416 
   8417 	* mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion.  Also fix
   8418 	problem with passing a longlong limb to a _ui function.
   8419 
   8420 	* gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type.
   8421 	(udiv_rnnd_preinv): Likewise.
   8422 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise.
   8423 
   8424 2011-02-28  Niels Mller  <nisse (a] lysator.liu.se>
   8425 
   8426 	* mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define
   8427 	add_mssaaaa, not add_sssaaaa.
   8428 
   8429 	* tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and
   8430 	mpn_mod_1_1_2, to set MOD_1_1P_METHOD.
   8431 
   8432 	* tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2.
   8433 
   8434 	* tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2,
   8435 	mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and
   8436 	mpn_mod_1_1p_cps_2.
   8437 
   8438 	* tune/common.c (speed_mpn_mod_1_1_1): New function.
   8439 	(speed_mpn_mod_1_1_2): New function.
   8440 
   8441 	* tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c
   8442 	mod_1_1-2.c.
   8443 
   8444 	* tune/mod_1_1-1.c: New file.
   8445 	* tune/mod_1_1-2.c: New file.
   8446 
   8447 	* mpn/generic/mod_1_1.c: Implemented an algorithm with fewer
   8448 	multiplications, configured via MOD_1_1P_METHOD.
   8449 
   8450 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
   8451 	computation of B2modb, use B^2 mod (normalized b).
   8452 	(mpn_mod_1_1p): Corresponding changes. Don't shift b.
   8453 
   8454 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather
   8455 	than udiv_rnd_preinv.
   8456 	(mpn_mod_1_1p): Likewise.
   8457 	* mpn/generic/mod_1_4.c: Analogous changes.
   8458 	* mpn/generic/mod_1_3.c: Analogous changes.
   8459 	* mpn/generic/mod_1_2.c: Analogous changes.
   8460 	* mpn/generic/mod_1.c: Analogous changes.
   8461 	* mpn/generic/pre_mod_1.c: Analogous changes.
   8462 
   8463 	* gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch
   8464 	using masking logic. Further optimization of the nl == constant 0
   8465 	case, similar to udiv_rnd_preinv.
   8466 	(udiv_rnnd_preinv): Likewise.
   8467 	(udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0
   8468 	instead.
   8469 
   8470 	* tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise
   8471 	the nl == constant 0 special case in udiv_qrnnd_preinv3.
   8472 
   8473 2011-02-28  Torbjorn Granlund  <tege (a] gmplib.org>
   8474 
   8475 	* mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar
   8476 	divisions.  Misc minor cleanup.
   8477 
   8478 	* mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline.
   8479 
   8480 	* mpn/x86/atom/mul_basecase.asm: Remove file no longer used.
   8481 
   8482 	* mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U))
   8483 	allocations until they are known to be needed.
   8484 
   8485 2011-02-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8486 
   8487 	* mpn/x86/atom/sse2/mul_1.asm: New code.
   8488 
   8489 2011-02-27  Niels Mller  <nisse (a] lysator.liu.se>
   8490 
   8491 	* gmp-impl.h (udiv_rnnd_preinv): New macro.
   8492 
   8493 2011-02-27  Torbjorn Granlund  <tege (a] gmplib.org>
   8494 
   8495 	* mpn/x86/atom/sse2/mul_basecase.asm: New file.
   8496 
   8497 2011-02-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8498 
   8499 	* mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code.
   8500 
   8501 2011-02-26  Torbjorn Granlund  <tege (a] gmplib.org>
   8502 
   8503 	* mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
   8504 	* mpn/m68k/mc68020/aorsmul_1.asm: Likewise.
   8505 
   8506 2011-02-25  Torbjorn Granlund  <tege (a] gmplib.org>
   8507 
   8508 	* mpn/x86/atom/sse2/aorsmul_1.asm: New file.
   8509 	* mpn/x86/atom/aorsmul_1.asm: File removed.
   8510 
   8511 2011-02-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8512 
   8513 	* mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom).
   8514 	* mpn/x86/atom/sse2/mul_1.asm: Likewise.
   8515 	* mpn/x86/atom/sse2/popcount.asm: Likewise.
   8516 	* mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now).
   8517 	* mpn/x86/atom/mul_1.asm: Likewise.
   8518 	* mpn/x86/atom/popcount.asm: Likewise.
   8519 
   8520 	* configure.in: Set up mmx path for atom.
   8521 	* mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom).
   8522 	* mpn/x86/atom/mmx/copyi.asm: Likewise.
   8523 	* mpn/x86/atom/mmx/hamdist.asm: Likewise.
   8524 	* mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now).
   8525 	* mpn/x86/atom/copyi.asm: Likewise.
   8526 	* mpn/x86/atom/hamdist.asm: Likewise.
   8527 
   8528 2011-02-24  Torbjorn Granlund  <tege (a] gmplib.org>
   8529 
   8530 	* mpn/x86/atom/sse2/mod_1_1.asm: New file.
   8531 	* mpn/x86/atom/sse2/mod_1_4.asm: New file.
   8532 	* configure.in: Set up sse2 path for atom.
   8533 
   8534 	* mpn/x86/p6/sse2/mod_1_1.asm: New file.
   8535 	* mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE.
   8536 
   8537 2011-02-24  Niels Mller  <nisse (a] lysator.liu.se>
   8538 
   8539 	* mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same
   8540 	algorithm as the x86_64 version.
   8541 
   8542 2011-02-23 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8543 
   8544 	* mpn/x86/atom/logops_n.asm: New file (same loop as aors_n).
   8545 
   8546 2011-02-23  Niels Mller  <nisse (a] lysator.liu.se>
   8547 
   8548 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one
   8549 	instruction and one register in the inner loop. Rearranged
   8550 	registers slightly, and no longer needs the callee-save register
   8551 	%r12.
   8552 
   8553 2011-02-22  Torbjorn Granlund  <tege (a] gmplib.org>
   8554 
   8555 	* configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also
   8556 	fixing typo in exporting code.
   8557 
   8558 	* mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
   8559 	* mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
   8560 
   8561 2011-02-22  Niels Mller  <nisse (a] lysator.liu.se>
   8562 
   8563 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite.
   8564 
   8565 2011-02-22 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8566 
   8567 	* mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added).
   8568 
   8569 2011-02-21  Torbjorn Granlund  <tege (a] gmplib.org>
   8570 
   8571 	* mpn/x86/aors_n.asm: Move _nc entry to after main code.  Align loop
   8572 	and _n entry for claimed performance.  Normalise mnemonic usage.
   8573 
   8574 	* mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly
   8575 	slower for addlsh_1 for large operands, but much faster for small).
   8576 	* mpn/x86/atom/addlsh1_n.asm: Remove.
   8577 	* mpn/x86/atom/rsblsh1_n.asm: Remove.
   8578 
   8579 2011-02-20  Marc Glisse  <marc.glisse (a] inria.fr>
   8580 
   8581 	* mpq/aors.c: Rewrite to remove redundant division.
   8582 
   8583 2011-02-20  Torbjorn Granlund  <tege (a] gmplib.org>
   8584 
   8585 	* mpn/x86/atom/lshift.asm: New file.
   8586 	* mpn/x86/atom/rshift.asm: Normalise mnemonic usage.
   8587 
   8588 	* gmp-impl.h (mpn_divexact_by7): Relax inclusion condition.
   8589 
   8590 	* mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function.
   8591 	(mpz_divexact_by3): Wrap inside appropriate conditions.
   8592 	(mpz_divexact_gcd): Rewrite.
   8593 
   8594 	* mpn/x86/bdiv_dbm1c.asm: Save a jump.
   8595 
   8596 2011-02-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8597 
   8598 	* mpn/x86/atom/aorslshC_n.asm: New file.
   8599 	* mpn/x86/atom/sublsh2_n.asm: New file.
   8600 
   8601 	* mpn/x86/atom/aors_n.asm: New code.
   8602 	* mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit.
   8603 	* mpn/x86/atom/lshift.asm: Likewise.
   8604 
   8605 2011-02-19  Torbjorn Granlund  <tege (a] gmplib.org>
   8606 
   8607 	* mpn/x86_64/atom/rsh1aors_n.asm: New file.
   8608 
   8609 	* mpn/x86_64/atom/lshift.asm: New file.
   8610 	* mpn/x86_64/atom/rshift.asm: New file.
   8611 	* mpn/x86_64/atom/lshiftc.asm: New file.
   8612 
   8613 2011-02-17 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8614 
   8615 	* mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes.
   8616 	* mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements.
   8617 
   8618 2011-02-16  Torbjorn Granlund  <tege (a] gmplib.org>
   8619 
   8620 	* configure.in: Fix k8/k10 32-bit path setup problem.
   8621 
   8622 2011-02-16 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8623 
   8624 	* mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul.
   8625 
   8626 2011-02-14 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8627 
   8628 	* gmp-impl.h (mpn_sublsh_n): Declare.
   8629 	* mpn/asm-defs.m4: Likewise.
   8630 
   8631 	* mpn/x86/atom/aorrlshC_n.asm: New file (was k7).
   8632 	* mpn/x86/k7/aorrlshC_n.asm: ReMoved.
   8633 	* mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm.
   8634 	* mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm.
   8635 
   8636 2011-02-13  Torbjorn Granlund  <tege (a] gmplib.org>
   8637 
   8638 	* mpn/x86_64/atom/aorrlsh2_n.asm: New file.
   8639 
   8640 2011-02-12  Torbjorn Granlund  <tege (a] gmplib.org>
   8641 
   8642 	* mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers.
   8643 
   8644 	* mpn/x86_64/atom/sublsh1_n.asm: New file.
   8645 
   8646 	* mpn/x86_64/atom/aorrlsh1_n.asm: New file.
   8647 
   8648 2011-02-11  Torbjorn Granlund  <tege (a] gmplib.org>
   8649 
   8650 	* mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues.
   8651 
   8652 2011-02-10  Torbjorn Granlund  <tege (a] gmplib.org>
   8653 
   8654 	* mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970.
   8655 
   8656 2011-02-11 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8657 
   8658 	* mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's).
   8659 
   8660 	* configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc.
   8661 	* tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes.
   8662 	* tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc.
   8663 	* tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc.
   8664 
   8665 	* mpn/x86/k7/aorrlshC_n.asm: New file.
   8666 	* mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm.
   8667 	* mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm.
   8668 
   8669 2011-02-06 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8670 
   8671 	* mpn/x86/k7/addlsh1_n.asm: New file.
   8672 	* mpn/x86/k7/sublsh1_n.asm: New file.
   8673 	* mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm.
   8674 	* mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm.
   8675 
   8676 2011-02-05  Torbjorn Granlund  <tege (a] gmplib.org>
   8677 
   8678 	* gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc,
   8679 	mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare.
   8680 	* mpn/asm-defs.m4: Likewise.
   8681 
   8682 	* mpn/x86_64/coreisbr/aorrlshC_n.asm: New file.
   8683 	* mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file.
   8684 	* mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file.
   8685 
   8686 	* mpn/x86_64/coreisbr/aors_n.asm: New file, based on old
   8687 	atom/aors_n.asm.
   8688 	* mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm.
   8689 
   8690 2011-02-05 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8691 
   8692 	* gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero.
   8693 	(mpn_toom8_mul_n_itch): Likewise.
   8694 	(MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define.
   8695 	* tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN.
   8696 	* tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN.
   8697 
   8698 	* mpz/lucnum_ui.c: Use mpn_addlsh2_n.
   8699 
   8700 2011-02-04  Torbjorn Granlund  <tege (a] gmplib.org>
   8701 
   8702 	* mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE.
   8703 	* mpn/x86_64/atom/dive_1.asm: Likewise.
   8704 	* mpn/x86_64/atom/popcount.asm: Likewise.
   8705 	* mpn/x86_64/core2/popcount.asm: Likewise.
   8706 	* mpn/x86_64/coreinhm/hamdist.asm: Likewise.
   8707 	* mpn/x86_64/coreinhm/popcount.asm: Likewise.
   8708 	* mpn/x86_64/nano/popcount.asm: Likewise.
   8709 	* mpn/x86_64/pentium4/popcount.asm: Likewise.
   8710 
   8711 2011-02-04 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8712 
   8713 	* mpn/x86/atom/mode1o.asm: New file, grabbing another asm file.
   8714 	* mpn/x86/atom/mul_1.asm: Claim mul_1c.
   8715 
   8716 2011-02-02  Niels Mller  <nisse (a] lysator.liu.se>
   8717 
   8718 	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one
   8719 	speed_operand_dst call.
   8720 
   8721 2011-02-01  Torbjorn Granlund  <tege (a] gmplib.org>
   8722 
   8723 	* tune/speed.h (struct speed_params): Allow for 4 dst operands.
   8724 	* tune/common.c (TOLERANCE): Increase from 0.5% to 1%.
   8725 
   8726 	* tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based
   8727 	on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested
   8728 	by Niels).
   8729 	* tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL.
   8730 	(speed_mpn_hgcd_lehmer): Likewise.
   8731 
   8732 	* configure.in: Set up 32-bit x86 paths for new corei* CPU strings.
   8733 
   8734 2011-01-31  Torbjorn Granlund  <tege (a] gmplib.org>
   8735 
   8736 	* config.guess: Recognise new Intel processors.
   8737 
   8738 	* config.guess: Support 'coreinhm' and 'coreisbr'.
   8739 	* config.sub: Likewise.
   8740 	* configure.in: Likewise.
   8741 
   8742 2011-01-30  Torbjorn Granlund  <tege (a] gmplib.org>
   8743 
   8744 	* configure.in: Support x86/geode.
   8745 	* mpn/x86/geode/gmp-mparam.h: New file.
   8746 
   8747 2011-01-29 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8748 
   8749 	* mpn/x86/atom/addlsh1_n.asm: Removed.
   8750 	* mpn/x86/atom/rsh1add_n.asm: Likewise.
   8751 
   8752 2011-01-28  Torbjorn Granlund  <tege (a] gmplib.org>
   8753 
   8754 	* mpn/alpha/ev6/slot.pl: Add some missing insns.
   8755 
   8756 2011-01-28 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8757 
   8758 	* mpn/x86/atom/copyd.asm: New file, grabbing another asm file.
   8759 	* mpn/x86/atom/copyi.asm: Likewise.
   8760 	* mpn/x86/atom/aors_n.asm: Likewise.
   8761 	* mpn/x86/atom/addlsh1_n.asm: Likewise.
   8762 	* mpn/x86/atom/aorsmul_1.asm: Likewise.
   8763 	* mpn/x86/atom/bdiv_q_1.asm: Likewise.
   8764 	* mpn/x86/atom/dive_1.asm: Likewise.
   8765 	* mpn/x86/atom/divrem_1.asm: Likewise.
   8766 	* mpn/x86/atom/hamdist.asm: Likewise.
   8767 	* mpn/x86/atom/logops_n.asm: Likewise.
   8768 	* mpn/x86/atom/lshift.asm: Likewise.
   8769 	* mpn/x86/atom/mod_34lsub1.asm: Likewise.
   8770 	* mpn/x86/atom/mul_1.asm: Likewise.
   8771 	* mpn/x86/atom/mul_basecase.asm: Likewise.
   8772 	* mpn/x86/atom/popcount.asm: Likewise.
   8773 	* mpn/x86/atom/rsh1add_n.asm: Likewise.
   8774 	* mpn/x86/atom/rshift.asm: Likewise.
   8775 	* mpn/x86/atom/sqr_basecase.asm: Likewise.
   8776 
   8777 2011-01-27  Torbjorn Granlund  <tege (a] gmplib.org>
   8778 
   8779 	* mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file.
   8780 	* mpn/x86_64/atom/popcount.asm: Likewise.
   8781 	* mpn/x86_64/atom/dive_1.asm: Likewise.
   8782 	* mpn/x86_64/nano/popcount.asm: Likewise.
   8783 
   8784 2011-01-26  Torbjorn Granlund  <tege (a] gmplib.org>
   8785 
   8786 	* mpn/alpha/invert_limb.asm: Complete rewrite.
   8787 
   8788 2011-01-25  Torbjorn Granlund  <tege (a] gmplib.org>
   8789 
   8790 	* mpn/powerpc32/invert_limb.asm: New file.
   8791 
   8792 2011-01-25 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8793 
   8794 	* mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file.
   8795 	* mpn/x86/k7/bdiv_q_1.asm: New file.
   8796 
   8797 2011-01-24  Torbjorn Granlund  <tege (a] gmplib.org>
   8798 
   8799 	* tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds
   8800 	until no tiny ranges remain.
   8801 
   8802 2011-01-23  Torbjorn Granlund  <tege (a] gmplib.org>
   8803 
   8804 	* mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead.
   8805 
   8806 	* mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point.
   8807 
   8808 2011-01-22  Torbjorn Granlund  <tege (a] gmplib.org>
   8809 
   8810 	* mpn/ia64/aors_n.asm: Fix some incorrect bundle types.
   8811 
   8812 	* mpn/ia64/sqr_diagonal.asm: Remove.
   8813 
   8814 	* mpn/ia64/sqr_diag_addlsh1.asm: New file.
   8815 
   8816 	* mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics.
   8817 
   8818 	* mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using
   8819 	new function mpn_sqr_diag_addlsh1 or defining its equivalent.
   8820 
   8821 	* gmp-impl.h (mpn_addmul_2s): Declare.
   8822 	(mpn_sqr_diag_addlsh1): Declare.
   8823 	* mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1.
   8824 
   8825 	* configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and
   8826 	mpn_addmul_2s.
   8827 	(gmp_mpn_functions_optional): Add sqr_diag_addlsh1.
   8828 
   8829 2011-01-21 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8830 
   8831 	* tests/devel/try.c: Initial support for mpn_bdiv_q_1.
   8832 	* mpn/x86/pentium/bdiv_q_1.asm: New file.
   8833 	* mpn/x86/p6/bdiv_q_1.asm: New file.
   8834 
   8835 2011-01-20  Torbjorn Granlund  <tege (a] gmplib.org>
   8836 
   8837 	* tune/speed.c (run_gnuplot): Update to current gnuplot syntax.
   8838 
   8839 	* mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1
   8840 	for POWER5.
   8841 
   8842 2011-01-19  Torbjorn Granlund  <tege (a] gmplib.org>
   8843 
   8844 	* mpn/x86_64/core2/rsh1aors_n.asm: New file.
   8845 
   8846 2011-01-18 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8847 
   8848 	* mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1).
   8849 
   8850 2011-01-15 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8851 
   8852 	* mpn/generic/divexact.c: Avoid COPY if not needed.
   8853 
   8854 2011-01-14  Torbjorn Granlund  <tege (a] gmplib.org>
   8855 
   8856 	* gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold.
   8857 	* configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD.
   8858 
   8859 2011-01-13 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8860 
   8861 	* mpz/mul.c: Remove redundant size computation.
   8862 
   8863 2011-01-08  Torbjorn Granlund  <tege (a] gmplib.org>
   8864 
   8865 	* tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6.
   8866 	(param_init): Support new types.
   8867 	(choice_array): Support testing of mpn_mul_5 and mpn_mul_6.
   8868 	(call): Support new routines.
   8869 
   8870 	* tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions.
   8871 	* tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare.
   8872 	Remove parameter names from some other functions.
   8873 
   8874 	* gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare.
   8875 	* mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6,
   8876 	mpn_addmul_7, and mpn_addmul_8.
   8877 
   8878 	* configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6.
   8879 
   8880 	* tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6.
   8881 	* tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions.
   8882 	* tune/speed.h: Declare new functions.
   8883 
   8884 2011-01-03 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   8885 
   8886 	* mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup.
   8887 	* mpz/cmp.c: Likewise.
   8888 	* mpz/gcd.c: Likewise.
   8889 	* mpz/mul.c: Likewise.
   8890 	* mpz/powm.c: Likewise.
   8891 	* mpz/set.c: Likewise.
   8892 	* mpz/sqrtrem.c: Likewise.
   8893 	* mpz/tdiv_qr.c: Likewise.
   8894 
   8895 2010-12-28  Torbjorn Granlund  <tege (a] gmplib.org>
   8896 
   8897 	* mpn/minithres/gmp-mparam.h: Update with several recent thresholds.
   8898 
   8899 2010-12-19  Torbjorn Granlund  <tege (a] gmplib.org>
   8900 
   8901 	* mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms.
   8902 	* mpn/x86/k7/mod_1_4.asm: Likewise.
   8903 	* mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise.
   8904 	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
   8905 	* mpn/x86_64/core2/divrem_1.asm: Likewise.
   8906 	* mpn/x86_64/divrem_1.asm: Likewise.
   8907 	* mpn/x86_64/mod_1_1.asm: Likewise.
   8908 	* mpn/x86_64/mod_1_2.asm: Likewise.
   8909 	* mpn/x86_64/mod_1_4.asm: Likewise.
   8910 
   8911 	* mpn/x86/k7/gcd_1.asm: Rewrite.  Remove slow 'div' loop.  Call
   8912 	mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs.
   8913 	Misc cleanups.
   8914 
   8915 2010-12-18  Torbjorn Granlund  <tege (a] gmplib.org>
   8916 
   8917 	* mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than
   8918 	BMOD_1_TO_MOD_1_THRESHOLD limbs.
   8919 
   8920 	* configure.in: Generalise code for putting THRESHOLDs in config.m4.
   8921 	Add BMOD_1_TO_MOD_1_THRESHOLD to list.
   8922 
   8923 	* mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts.
   8924 
   8925 	* mpn/x86_64/addmul_2.asm: Remove constant index.
   8926 	* mpn/x86_64/lshiftc.asm: Likewise.
   8927 	* mpn/x86_64/pentium4/lshift.asm: Likewise.
   8928 	* mpn/x86_64/pentium4/lshiftc.asm: Likewise.
   8929 	* mpn/x86_64/pentium4/rshift.asm: Likewise.
   8930 
   8931 2010-12-16  Torbjorn Granlund  <tege (a] gmplib.org>
   8932 
   8933 	* mpn/x86_64/mod_34lsub1.asm: Complete rewrite.
   8934 	* mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old
   8935 	mpn/x86_64/mod_34lsub1.asm.
   8936 
   8937 2010-12-15  Torbjorn Granlund  <tege (a] gmplib.org>
   8938 
   8939 	* mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table.
   8940 
   8941 2010-12-14  Torbjorn Granlund  <tege (a] gmplib.org>
   8942 
   8943 	* mp-h.in: Remove.
   8944 	* configure.in: Remove mp-h.in from AC_OUTPUT invocation.
   8945 
   8946 2010-12-13  Torbjorn Granlund  <tege (a] gmplib.org>
   8947 
   8948 	* mpz/mod.c: Rewrite.
   8949 
   8950 	* mpn/x86_64/corei/popcount.asm: New file.
   8951 	* mpn/x86_64/corei/hamdist.asm: New file.
   8952 
   8953 	* mpn/x86_64/k10/hamdist.asm: New file.
   8954 
   8955 	* configure.in: Amend last change for lame /bin/sh.
   8956 
   8957 2010-12-12  Torbjorn Granlund  <tege (a] gmplib.org>
   8958 
   8959 	* configure.in: Comment out M4=m4-not-needed.
   8960 
   8961 	* mpn/x86_64/k10/popcount.asm: New file.
   8962 	* configure.in: Setup special path for k10 and later AMD CPUs.
   8963 	Remove special x86_64'k8' path, since directory is non-existent.
   8964 
   8965 2010-12-11  Torbjorn Granlund  <tege (a] gmplib.org>
   8966 
   8967 	* mpn/sparc32/ultrasparct1: New directory.
   8968 	* mpn/sparc32/ultrasparct1/add_n.asm: New file.
   8969 	* mpn/sparc32/ultrasparct1/sub_n.asm: New file.
   8970 	* mpn/sparc32/ultrasparct1/mul_1.asm: New file.
   8971 	* mpn/sparc32/ultrasparct1/addmul_1.asm: New file.
   8972 	* mpn/sparc32/ultrasparct1/submul_1.asm: New file.
   8973 	* mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file.
   8974 
   8975 	* config.guess: Support Ultrasparc T2 and T3.
   8976 	* config.sub: Likewise.
   8977 	* configure.in: Likewise.
   8978 
   8979 	* config.guess: Generalise BSD Sparc recognition by allowing any
   8980 	caps (needed for OpenBSD which spells things innovatively).
   8981 
   8982 2010-12-01  Torbjorn Granlund  <tege (a] gmplib.org>
   8983 
   8984 	* config.guess: Match new AMD processors, allow finer distinctions
   8985 	among old ones.
   8986 	* acinclude.m4 (X86_64_PATTERN): Likewise.
   8987 	* config.sub: Likewise.
   8988 	* configure.in: Rudimentarily support new AMD processors.
   8989 
   8990 	* configure.in (--enable_assembly): New option.
   8991 	(target none-*-*): Disable, give error.
   8992 
   8993 2010-11-29  Torbjorn Granlund  <tege (a] gmplib.org>
   8994 
   8995 	* mpn/x86/x86-defs.m4 (LEA): Support non-PIC code.
   8996 	* mpn/x86/darwin.m4 (LEA): Likewise.
   8997 
   8998 	* tests/amd64call.asm: Rewrite for code size, and to match calls and
   8999 	returns.
   9000 
   9001 	* tests/x86call.asm: Rewrite for code size, to support PIC, and to
   9002 	match calls and returns.
   9003 	* tests/x86check.c: Rewrite.
   9004 
   9005 2010-11-22  Torbjorn Granlund  <tege (a] gmplib.org>
   9006 
   9007 	* mpz/get_str.c: Make all bases either work or return an error.
   9008 	* mpz/out_str.c: Likewise.
   9009 	* mpq/get_str.c: Likewise.
   9010 	* mpf/get_str.c: Likewise.
   9011 
   9012 2010-11-14  Torbjorn Granlund  <tege (a] gmplib.org>
   9013 
   9014 	* tests/misc/t-printf.c: Add explicit casts for type conversions.
   9015 	* mpn/generic/toom62_mul.c: Likewise.
   9016 
   9017 2010-11-13  Torbjorn Granlund  <tege (a] gmplib.org>
   9018 
   9019 	* mpn/generic/get_d.c: Misc cleanup.  Fail with a syntax error for
   9020 	non-IEEE fp formats.
   9021 
   9022 	* tests/devel/try.c (malloc_region): Add explicit casts for type
   9023 	conversions.
   9024 
   9025 	* acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible.
   9026 	(GMP_C_DOUBLE_FORMAT): Likewise.
   9027 	(GMP_FUNC_VSNPRINTF): Likewise.
   9028 
   9029 	* config.guess (x86): Make test C snippet C++ compatible.
   9030 
   9031 2010-11-12  Torbjorn Granlund  <tege (a] gmplib.org>
   9032 
   9033 	* Makefile.am: Remove mpbsd.
   9034 	* configure.in: Remove mpbsd.
   9035 	* doc/configuration: Remove mpbsd mentions.
   9036 	* doc/gmp.texi: Remove mpbsd docs.
   9037 	* tests/Makefile.am: Remove mpbsd.
   9038 	* libmp.sym: Remove.
   9039 	* mpbsd: Remove directory and files.
   9040 	* tests/mpbsd: Remove directory and files.
   9041 
   9042 2010-11-11  Torbjorn Granlund  <tege (a] gmplib.org>
   9043 
   9044 	* mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn.
   9045 	Use 64-bit 'test' to support operands of 2^32 limbs and more.
   9046 
   9047 	* rand: New directory, move rand*.c and randmt.h here.
   9048 	* rand/Makefile.am: New file.
   9049 	* Makefile.am (SUBDIRS): Add rand.
   9050 	(RANDOM_OBJECTS): New variable.
   9051 	(libgmp_la_SOURCES): Remove random objects.
   9052 	(libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS.
   9053 	* configure.in (AC_OUTPUT): Add rand/Makefile.
   9054 
   9055 	* ansi2knr.1: File removed.
   9056 	* ansi2knr.c: File removed.
   9057 
   9058 2010-11-10  Torbjorn Granlund  <tege (a] gmplib.org>
   9059 
   9060 	Make it possible to compile GMP with g++:
   9061 
   9062 	* gmp-impl.h: Declare __gmp_digit_value_tab here.
   9063 	* mpbsd/min.c: ...not here.
   9064 	* mpbsd/xtom.c: ...nor here.
   9065 	* mpf/set_str.c: ...nor here.
   9066 	* mpz/inp_str.c: ...nor here.
   9067 	* mpz/set_str.c: ...nor here.
   9068 
   9069 	* mpn/generic/toom43_mul.c: Add casts for logical operations on enums.
   9070 	* mpn/generic/toom44_mul.c: Likewise.
   9071 	* mpn/generic/toom4_sqr.c: Likewise.
   9072 	* mpn/generic/toom52_mul.c: Likewise.
   9073 	* mpn/generic/toom53_mul.c: Likewise.
   9074 	* mpn/generic/toom62_mul.c: Likewise.
   9075 
   9076 	* mpz/clrbit.c: Clean up typing using MPZ_REALLOC.
   9077 	* mpz/setbit.c: Likewise.
   9078 
   9079 	* mpz/powm.c: Avoid variable name 'new'.
   9080 
   9081 	* randlc2x.c: Add explicit casts for type conversions.
   9082 	* tests/misc/t-printf.c: Likewise.
   9083 	* tests/misc/t-scanf.c: Likewise.
   9084 	* tests/misc.c: Likewise.
   9085 	* tests/mpz/convert.c: Likewise.
   9086 	* tests/refmpn.c: Likewise.
   9087 
   9088 	* tests/tests.h: Unconditionally use <sstream> for now.
   9089 
   9090 	* tests/memory.c: Include "tests.h.
   9091 
   9092 	* mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype.
   9093 	* mp_set_fns.c: Likewise.
   9094 	* mpf/cmp.c: Likewise.
   9095 	* mpf/cmp_si.c: Likewise.
   9096 	* mpf/cmp_ui.c: Likewise.
   9097 	* mpf/fits_s.h: Likewise.
   9098 	* mpf/fits_u.h: Likewise.
   9099 	* mpf/get_dfl_prec.c: Likewise.
   9100 	* mpf/get_prc.c: Likewise.
   9101 	* mpf/get_si.c: Likewise.
   9102 	* mpf/get_ui.c: Likewise.
   9103 	* mpf/int_p.c: Likewise.
   9104 	* mpf/set_dfl_prec.c: Likewise.
   9105 	* mpf/set_prc_raw.c: Likewise.
   9106 	* mpf/size.c: Likewise.
   9107 	* mpf/swap.c: Likewise.
   9108 	* mpq/equal.c: Likewise.
   9109 	* mpq/swap.c: Likewise.
   9110 	* mpz/cmp.c: Likewise.
   9111 	* mpz/cmp_si.c: Likewise.
   9112 	* mpz/cmp_ui.c: Likewise.
   9113 	* mpz/cmpabs.c: Likewise.
   9114 	* mpz/cmpabs_ui.c: Likewise.
   9115 	* mpz/cong_2exp.c: Likewise.
   9116 	* mpz/divis_2exp.c: Likewise.
   9117 	* mpz/fits_s.h: Likewise.
   9118 	* mpz/get_si.c: Likewise.
   9119 	* mpz/hamdist.c: Likewise.
   9120 	* mpz/scan0.c: Likewise.
   9121 	* mpz/scan1.c: Likewise.
   9122 	* mpz/sizeinbase.c: Likewise.
   9123 	* mpz/swap.c: Likewise.
   9124 	* mpz/tstbit.c: Likewise.
   9125 	* tal-reent.c: Likewise.
   9126 
   9127 2010-11-09  Torbjorn Granlund  <tege (a] gmplib.org>
   9128 
   9129 	* configure.in: Get rid of K&R support.
   9130 	* Makefile.am: Likewise.
   9131 	* mpn/Makefile.am: Likewise.
   9132 	* doc/configuration: Update docs wrt K&R support.
   9133 	* doc/gmp.texi: Likewise.
   9134 
   9135 	* configure.in (AC_INIT): Amend bug reporting address with manual
   9136 	reference.
   9137 
   9138 2010-11-06  Torbjorn Granlund  <tege (a] gmplib.org>
   9139 
   9140 	* config.guess: If cpuid says we have 32bit-only x86 but
   9141 	configfsf.guess return x86_64, return the latter.
   9142 
   9143 	* mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn.
   9144 
   9145 2010-10-09  Torbjorn Granlund  <tege (a] gmplib.org>
   9146 
   9147 	* mpn/generic/trialdiv.c: Update documentation.
   9148 
   9149 2010-10-04  Torbjorn Granlund  <tege (a] gmplib.org>
   9150 
   9151 	* mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator.
   9152 	* mpn/x86_64/aorrlshC_n.asm: Likewise.
   9153 	* mpn/x86_64/pentium4/aorslshC_n.asm: Likewise.
   9154 	* mpn/x86/k7/gcd_1.asm: Likewise.
   9155 
   9156 2010-08-20  Niels Mller  <nisse (a] lysator.liu.se>
   9157 
   9158 	Suggested by Ozkan Sezer:
   9159 	* configure.in: If $M4 is already set in the environment, don't
   9160 	touch it. Fixed the case that no assembler files are used, and
   9161 	GMP_PROG_M4 is omitted.
   9162 
   9163 2010-08-08  Torbjorn Granlund  <tege (a] gmplib.org>
   9164 
   9165 	* mpn/x86_64/fat/fat.c: Recognise many more processors.
   9166 
   9167 2010-06-30  Torbjorn Granlund  <tege (a] gmplib.org>
   9168 
   9169 	* mpn/x86_64/divrem_2.asm: Tune.
   9170 
   9171 2010-06-19  Niels Mller  <nisse (a] lysator.liu.se>
   9172 
   9173 	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized
   9174 	divisor to the benchmarked function.
   9175 
   9176 2010-06-15  Torbjorn Granlund  <tege (a] gmplib.org>
   9177 
   9178 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
   9179 	* mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite.
   9180 	* mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
   9181 
   9182 	* gmp-impl.h (udiv_rnd_preinv): Simplify.
   9183 
   9184 	* mpn/x86/k7/mod_1_1.asm: New file.
   9185 	* mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
   9186 	* mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
   9187 	* mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
   9188 
   9189 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are
   9190 	computed.
   9191 	* mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise.
   9192 	* mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise.
   9193 
   9194 	* mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm.
   9195 
   9196 2010-06-15  Niels Mller  <nisse (a] lysator.liu.se>
   9197 
   9198 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1.
   9199 	* tests/mpn/t-mod_1.c: New file.
   9200 
   9201 2010-05-25  Torbjorn Granlund  <tege (a] gmplib.org>
   9202 
   9203 	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space
   9204 	for inverse, since that is passed in already.
   9205 
   9206 2010-05-24  Torbjorn Granlund  <tege (a] gmplib.org>
   9207 
   9208 	* mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function.
   9209 	* gmp-impl.h: Declare it.
   9210 	* tune/common.c (speed_mpn_mupi_div_qr): Use new itch function.
   9211 	* tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right
   9212 	for new itch function.
   9213 
   9214 	* mpn/powerpc32/lshiftc.asm: New file.
   9215 
   9216 2010-05-22  Torbjorn Granlund  <tege (a] gmplib.org>
   9217 
   9218 	* tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06.
   9219 
   9220 2010-05-17  Torbjorn Granlund  <tege (a] gmplib.org>
   9221 
   9222 	* configure.in (ia64): Get 32-bit sizeof test right.
   9223 
   9224 	* tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of
   9225 	PREINV_MOD_1_TO_MOD_1_THRESHOLD.
   9226 
   9227 2010-05-16  Torbjorn Granlund  <tege (a] gmplib.org>
   9228 
   9229 	* mpn/sparc64/mod_1.c: Rewrite.
   9230 	* mpn/sparc64/sparc64.h (umul_ppmm_s): New macro.
   9231 	* mpn/sparc64/mod_1_4.c: New file.
   9232 
   9233 	* mpn/generic/divrem_1.c: Minor cleanup.
   9234 	* mpn/generic/mod_1.c: Likewise.
   9235 	* mpn/generic/mod_1_1.c: Likewise.
   9236 	* mpn/generic/mod_1_2.c: Likewise.
   9237 	* mpn/generic/mod_1_3.c: Likewise.
   9238 	* mpn/generic/mod_1_4.c: Likewise.
   9239 
   9240 	* configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI.
   9241 
   9242 	* tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before
   9243 	tuning MOD_1U_TO_MOD_1_1_THRESHOLD.
   9244 
   9245 2010-05-14  Torbjorn Granlund  <tege (a] gmplib.org>
   9246 
   9247 	* mpn/generic/redc_2.c: Use asm code just for GNU C.
   9248 
   9249 2010-05-13  Torbjorn Granlund  <tege (a] gmplib.org>
   9250 
   9251 	* mpn/sparc64/ultrasparc1234: New directory.  Move all code that uses
   9252 	floating-point into this directory.
   9253 	* configure.in: Point to ultrasparc1234 for appropriate CPUs.
   9254 
   9255 	* mpn/sparc64/ultrasparct1/add_n.asm: New file.
   9256 	* mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file.
   9257 	* mpn/sparc64/ultrasparct1/addmul_1.asm: New file.
   9258 	* mpn/sparc64/ultrasparct1/lshift.asm: New file.
   9259 	* mpn/sparc64/ultrasparct1/mul_1.asm: New file.
   9260 	* mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file.
   9261 	* mpn/sparc64/ultrasparct1/rshift.asm: New file.
   9262 	* mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file.
   9263 	* mpn/sparc64/ultrasparct1/sublshC_n.asm: New file.
   9264 	* mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file.
   9265 	* mpn/sparc64/ultrasparct1/addlshC_n.asm: New file.
   9266 	* mpn/sparc64/ultrasparct1/lshiftc.asm: New file.
   9267 	* mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file.
   9268 	* mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file.
   9269 	* mpn/sparc64/ultrasparct1/sub_n.asm: New file.
   9270 	* mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file.
   9271 	* mpn/sparc64/ultrasparct1/submul_1.asm: New file.
   9272 	* mpn/sparc64/ultrasparct1/gmp-mparam.h: New file.
   9273 
   9274 	* configure.in: Give ultrasparct1 and ultrasparct2 special code path.
   9275 
   9276 	* mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n.
   9277 
   9278 2010-05-12  Niels Mller  <nisse (a] lysator.liu.se>
   9279 
   9280 	* mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of
   9281 	scratch space.
   9282 
   9283 	* tune/common.c (speed_mpz_powm_sec): New function.
   9284 	* tune/speed.h: Declare speed_mpz_powm_sec.
   9285 	* tune/speed.c (routine): Added speed_mpz_powm_sec.
   9286 
   9287 	* tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n)
   9288 	(speed_mpn_rsblsh_n): New functions.
   9289 	* tune/speed.h: Declare new functions.
   9290 	* tune/speed.c (routine): Add new functions.
   9291 
   9292 2010-05-12  Torbjorn Granlund  <tege (a] gmplib.org>
   9293 
   9294 	* mpn/x86_64/mod_1_4.asm: Tune for more processors.
   9295 
   9296 	* mpn/x86_64/pentium4/lshiftc.asm: New file.
   9297 
   9298 2010-05-11  Niels Mller  <nisse (a] lysator.liu.se>
   9299 
   9300 	* mpz/jacobi.c (mpz_jacobi): Deleted old implementation.
   9301 	Reorganized new implementation, to handle small inputs efficiently.
   9302 
   9303 	* tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes.
   9304 	(check_data): One more input pair related to a fixed bug.
   9305 	(main): Enable check_large_quotients.
   9306 
   9307 2010-05-10  Torbjorn Granlund  <tege (a] gmplib.org>
   9308 
   9309 	* mpn/x86_64/aorrlsh2_n.asm: Fix typo.
   9310 
   9311 2010-05-09  Torbjorn Granlund  <tege (a] gmplib.org>
   9312 
   9313 	* mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm.
   9314 	* mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm.
   9315 	* mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm.
   9316 	* mpn/x86_64/core2/aorrlsh2_n.asm: Likewise.
   9317 
   9318 	* mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm.
   9319 	* mpn/x86_64/core2/aorslsh1_n.asm: Remove.
   9320 	* mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm.
   9321 	* mpn/x86_64/core2/sublsh2_n.asm: Likewise.
   9322 
   9323 2010-05-08  Torbjorn Granlund  <tege (a] gmplib.org>
   9324 
   9325 	* mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n.
   9326 
   9327 	* mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm.
   9328 	* mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm.
   9329 	* mpn/x86_64/pentium4/aorslsh2_n.asm: New file.
   9330 
   9331 2010-05-07  Torbjorn Granlund  <tege (a] gmplib.org>
   9332 
   9333 	* mpn/sparc64: Support operands of >= 2^32 limbs.
   9334 
   9335 	* mpn/sparc64/lshiftc.asm: New file.
   9336 
   9337 	* mpn/ia64/divrem_2.asm: Complete rewrite.
   9338 
   9339 2010-05-06  Torbjorn Granlund  <tege (a] gmplib.org>
   9340 
   9341 	* tune/tuneup.c (all): Don't call tune_divrem_2.
   9342 
   9343 	* mpn/generic/divrem_2.c: Complete rewrite.
   9344 
   9345 	* tune/tuneup.c (tune_mod_1): Fix typo.
   9346 
   9347 2010-05-05  Torbjorn Granlund  <tege (a] gmplib.org>
   9348 
   9349 	* mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names.
   9350 	(mpn_mod_1_1p_cps): Rewrite.
   9351 
   9352 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise.
   9353 
   9354 	* longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code.
   9355 
   9356 	* mpn/x86/pentium4/sse2/mod_1_1.asm: New file.
   9357 
   9358 	* mpn/powerpc64/mode64/mod_1_1.asm: New file.
   9359 
   9360 	* tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit
   9361 	of machines with early-out multipliers.
   9362 
   9363 2010-05-04  Torbjorn Granlund  <tege (a] gmplib.org>
   9364 
   9365 	* tune/tuneup.c (tune_mod_1): Fix typo.
   9366 
   9367 	* mpn/generic/mod_1_1.c: Undo last change.
   9368 	* mpn/x86_64/mod_1_1.asm: Likewise.
   9369 
   9370 2010-05-03  Niels Mller  <nisse (a] lysator.liu.se>
   9371 
   9372 	* mpn/generic/jacobi_lehmer.c (jacobi_hook): New function.
   9373 	(mpn_jacobi_subdiv_step): Deleted function.
   9374 	(mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step.
   9375 
   9376 	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
   9377 	to use a single hook function.
   9378 	* mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook
   9379 	interface.
   9380 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook
   9381 	function.
   9382 	* mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted
   9383 	to new hook interface.
   9384 	* gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function
   9385 	type, not a struct.
   9386 	(mpn_gcdext_hook): Declare.
   9387 
   9388 2010-05-03  Torbjorn Granlund  <tege (a] gmplib.org>
   9389 
   9390 	* mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in.
   9391 	* mpn/generic/mod_1_2.c: Likewise.
   9392 	* mpn/generic/mod_1_3.c: Likewise.
   9393 	* mpn/generic/mod_1_4.c: Likewise.
   9394 	* mpn/x86_64/mod_1_1.asm: Likewise.
   9395 	* mpn/x86_64/mod_1_2.asm: Likewise.
   9396 	* mpn/x86_64/mod_1_4.asm: Likewise.
   9397 	* mpn/x86/k7/mod_1_4.asm: Likewise.
   9398 	* mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
   9399 	* mpn/alpha/ev6/mod_1_4.asm: Likewise.
   9400 
   9401 	* tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and
   9402 	MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for
   9403 	correctness.
   9404 
   9405 	* mpn/powerpc64/sqr_diagonal.asm: Complete rewrite.
   9406 
   9407 	* mpn/powerpc64/mode64/mod_1_4.asm: New file.
   9408 
   9409 2010-05-02  Torbjorn Granlund  <tege (a] gmplib.org>
   9410 
   9411 	* config.guess: Recognise power7.
   9412 
   9413 	* configure.in: Major overhaul of powerpc support.
   9414 
   9415 	* mpn/powerpc64/p6/lshift.asm: New file.
   9416 	* mpn/powerpc64/p6/lshiftc.asm: Likewise.
   9417 	* mpn/powerpc64/p6/rshift.asm: Likewise.
   9418 
   9419 2010-04-30  Torbjorn Granlund  <tege (a] gmplib.org>
   9420 
   9421 	* configure.in (powerpc64): Support CPU specific mode-less subdirs.
   9422 
   9423 	* mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making
   9424 	requested alignment actually honoured.
   9425 
   9426 2010-04-30  Niels Mller  <nisse (a] lysator.liu.se>
   9427 
   9428 	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of
   9429 	the case bl == 1. Fixed missing application of reciprocity.
   9430 
   9431 2010-04-29  Niels Mller  <nisse (a] lysator.liu.se>
   9432 
   9433 	* configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step.
   9434 
   9435 	* mpn/generic/gcdext.c (mpn_gcdext): Use new generalized
   9436 	mpn_gcd_subdiv_step.
   9437 
   9438 	* mpn/generic/gcdext_lehmer.c (gcdext_update): New function.
   9439 	(gcdext_done): New function.
   9440 	(gcdext_hook): New const hook struct.
   9441 	(mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step.
   9442 
   9443 	* mpn/generic/gcd.c (gcd_done): New function.
   9444 	(gcd_hook): New const hook struct.
   9445 	(mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface.
   9446 
   9447 	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
   9448 	function. Added hook function pointers to the argument list, so
   9449 	the same function can be used for gcd, gcdext, and jacobi.
   9450 
   9451 	* gmp-impl.h (struct gcd_subdiv_step_hook): New struct.
   9452 	(mpn_gcdext_subdiv_step): Deleted prototype.
   9453 	(struct gcdext_ctx): New struct.
   9454 	(gcdext_hook): Declare const struct.
   9455 	(mpn_gcd_subdiv_step): Updated prototype.
   9456 
   9457 	* mpn/generic/gcdext_subdiv_step.c: Deleted file.
   9458 
   9459 2010-04-28  Torbjorn Granlund  <tege (a] gmplib.org>
   9460 
   9461 	* mpn/powerpc64/lshift.asm: Rewrite.
   9462 	* mpn/powerpc64/rshift.asm: Likewise.
   9463 	* mpn/powerpc64/mode64/lshiftc.asm: New file.
   9464 
   9465 	* mpn/powerpc64/aix.m4: Align functions to 32-byte boundary.
   9466 	* mpn/powerpc64/darwin.m4: Likewise.
   9467 	* mpn/powerpc64/elf.m4: Likewise.
   9468 
   9469 2010-04-28  Niels Mller  <nisse (a] lysator.liu.se>
   9470 
   9471 	* tests/mpz/t-jac.c (check_data): Added some more test cases.
   9472 
   9473 	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count
   9474 	trailing zeros, not leading.
   9475 
   9476 2010-04-27  Torbjorn Granlund  <tege (a] gmplib.org>
   9477 
   9478 	* mpn/powerpc64/mode64/p6/mul_basecase.asm: New file.
   9479 
   9480 2010-04-23  Niels Mller  <nisse (a] lysator.liu.se>
   9481 
   9482 	* gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted.
   9483 	(mpn_gcd_lehmer_n): Deleted declaration.
   9484 
   9485 	* mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c.
   9486 	(mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use
   9487 	MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH.
   9488 
   9489 2010-04-22  Torbjorn Granlund  <tege (a] gmplib.org>
   9490 
   9491 	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them
   9492 	consecutive, for the benefit of POWER6.
   9493 
   9494 	* mpn/powerpc64/mode64/p6/gmp-mparam.h: New file.
   9495 
   9496 2010-04-21  Torbjorn Granlund  <tege (a] gmplib.org>
   9497 
   9498 	* mpn/generic/gcd_lehmer.c: Deleted file.
   9499 
   9500 	* mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them
   9501 	consecutive, for the benefit of POWER6.
   9502 	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
   9503 	* mpn/powerpc64/mode64/divrem_2.asm: Likewise.
   9504 	* mpn/powerpc64/mode64/mul_1.asm: Likewise.
   9505 	* mpn/powerpc64/mode64/aorsmul_1.asm: Likewise.
   9506 
   9507 	* mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary
   9508 	workaround for POWER6 pipeline glitch.
   9509 
   9510 2010-04-19  Niels Mller  <nisse (a] lysator.liu.se>
   9511 
   9512 	* mpz/jacobi.c (mpz_jacobi): New implementation using
   9513 	mpn_jacobi_lehmer. Currently #if:ed out.
   9514 
   9515 	* mpn/generic/jacbase.c (mpn_jacobi_base)
   9516 	[JACOBI_BASE_METHOD < 4]: Support inputs with a >= b.
   9517 
   9518 	* gmp-impl.h (mpn_jacobi_lehmer): Added prototype.
   9519 	(jacobi_table): Declare.
   9520 	(mpn_jacobi_init): New inline function.
   9521 	(mpn_jacobi_finish): Likewise.
   9522 	(mpn_jacobi_update): Likewise.
   9523 
   9524 	* mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new
   9525 	function.
   9526 
   9527 	* configure.in (gmp_mpn_functions): Added jacobi_lehmer.
   9528 
   9529 2010-04-14  Niels Mller  <nisse (a] lysator.liu.se>
   9530 
   9531 	* configure.in (gmp_mpn_functions): Added
   9532 	matrix22_mul1_inverse_vector.
   9533 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
   9534 	matrix22_mul1_inverse_vector.c.
   9535 
   9536 	* gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for
   9537 	rename of mpn_matrix22_mul1_inverse_vector.
   9538 	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise.
   9539 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
   9540 	* mpn/generic/hgcd.c (hgcd_step): Likewise.
   9541 
   9542 	* mpn/generic/matrix22_mul1_inverse_vector.c
   9543 	(mpn_matrix22_mul1_inverse_vector): New file, function moved and
   9544 	renamed...
   9545 	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector):
   9546 	...from here.
   9547 
   9548 2010-04-12  Torbjorn Granlund  <tege (a] gmplib.org>
   9549 
   9550 	* tests/mpn/t-toom6h.c (SIZE_LOG): Define.
   9551 	* tests/mpn/t-toom8h.c (SIZE_LOG): Likewise.
   9552 
   9553 2010-04-10  Torbjorn Granlund  <tege (a] gmplib.org>
   9554 
   9555 	* mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code.
   9556 
   9557 	* mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n.
   9558 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   9559 
   9560 	* mpn/ia64/aors_n.asm: Complete rewrite.
   9561 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   9562 
   9563 	* mpn/ia64/add_n_sub_n.asm: Misc cleanups.  Add slotting comments.
   9564 
   9565 	* mpn/ia64/lshiftc.asm: New file.
   9566 
   9567 	* mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and
   9568 	rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n.
   9569 
   9570 	* mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around
   9571 	Solaris assembler bug.
   9572 	* mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise.
   9573 
   9574 	* mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form.
   9575 	* mpn/x86/pentium/aors_n.asm: Likewise.
   9576 	* mpn/x86_64/invert_limb.asm: Likewise.
   9577 
   9578 	* mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code.
   9579 
   9580 	* mpn/x86_64/pentium4/rsh1aors_n.asm: New file.
   9581 
   9582 2010-03-25  Torbjorn Granlund  <tege (a] gmplib.org>
   9583 
   9584 	* mpn/ia64/add_n_sub_n.asm: New file.
   9585 
   9586 	* mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage.
   9587 	* mpn/generic/toom3_sqr.c: Likewise.
   9588 	* mpn/generic/toom63_mul.c: Likewise.
   9589 
   9590 	* mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c.
   9591 
   9592 2010-03-23  Torbjorn Granlund  <tege (a] gmplib.org>
   9593 
   9594 	* mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn.
   9595 
   9596 	* mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of
   9597 	aorslsh1_n.asm.
   9598 	* mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm.
   9599 	* mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
   9600 
   9601 2010-03-20  Torbjorn Granlund  <tege (a] gmplib.org>
   9602 
   9603 	* mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation
   9604 	in the Newton iteration.
   9605 
   9606 2010-03-20 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   9607 
   9608 	* mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n.
   9609 
   9610 2010-03-20  Torbjorn Granlund  <tege (a] gmplib.org>
   9611 
   9612 	* mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from
   9613 	last iteration of aorslsh1_n.asm.
   9614 	* mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm.
   9615 	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
   9616 
   9617 2010-03-19  Torbjorn Granlund  <tege (a] gmplib.org>
   9618 
   9619 	* mpn/x86_64/nano/dive_1.asm: New file.
   9620 
   9621 	* mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU
   9622 	types.  Unconditionally provide code for normalised and unnormalised
   9623 	divisors.  Cleanup labels.
   9624 
   9625 	* mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised
   9626 	divisors.  Cleanup labels.
   9627 
   9628 	* mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and
   9629 	mpn_sublsh_n with correct args.
   9630 
   9631 	* tests/devel/try.c: Use enum for TYPE_*.
   9632 
   9633 	* tests/devel/try.c: Test mpn_sublsh2_n.
   9634 	* tests/refmpn.c (refmpn_sublsh2_n): New function.
   9635 	* tests/tests.h (refmpn_sublsh2_n): Declare.
   9636 
   9637 	* mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster
   9638 	mpn_addlsh1_n and mpn_sublsh1_n.
   9639 	* mpn/powerpc64/mode64/addlsh1_n.asm: Delete.
   9640 	* mpn/powerpc64/mode64/sublsh1_n.asm: Delete.
   9641 
   9642 2010-03-18  Torbjorn Granlund  <tege (a] gmplib.org>
   9643 
   9644 	* configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and
   9645 	nm_32_flags.
   9646 
   9647 	* mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed.
   9648 	Misc cleanups.  Add cycle table.
   9649 
   9650 	* mpn/x86_64/copyi.asm: Update cycle table.
   9651 	* mpn/x86_64/copyd.asm: Likewise.
   9652 	* mpn/x86_64/rsh1aors_n.asm: Likewise.
   9653 	* mpn/x86_64/dive_1.asm: Likewise.
   9654 
   9655 	* mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups.  Add cycle table.
   9656 	* mpn/x86/pentium4/sse2/sub_n.asm: Likewise.
   9657 
   9658 2010-03-16  Torbjorn Granlund  <tege (a] gmplib.org>
   9659 
   9660 	* mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn.
   9661 	* mpn/x86_64/core2/divrem_1.asm: Likewise.
   9662 
   9663 	* tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops.
   9664 
   9665 2010-03-15  Torbjorn Granlund  <tege (a] gmplib.org>
   9666 
   9667 	* mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
   9668 
   9669 	* mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended
   9670 	bundling.
   9671 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   9672 	* mpn/ia64/dive_1.asm: Likewise.
   9673 
   9674 2010-03-13  Torbjorn Granlund  <tege (a] gmplib.org>
   9675 
   9676 	* mpn/x86/pentium4/sse2/submul_1.asm: Rewrite.
   9677 
   9678 	* mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code
   9679 	for both mpn_addmul_1 and mpn_submul_1.
   9680 	* mpn/powerpc64/mode64/addmul_1.asm: Remove.
   9681 	* mpn/powerpc64/mode64/submul_1.asm: Remove.
   9682 
   9683 2010-03-11  Niels Mller  <nisse (a] lysator.liu.se>
   9684 
   9685 	* mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss.
   9686 
   9687 	* mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the
   9688 	JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1.
   9689 
   9690 2010-03-10  Torbjorn Granlund  <tege (a] gmplib.org>
   9691 
   9692 	* mpn/x86_64/divrem_1.asm: Make fraction code take documented # of
   9693 	cycles.  Annotate code for more CPUs.  Misc cleanups.
   9694 	* mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs.
   9695 
   9696 	* mpn/alpha/ev6/mod_1_4.asm: New file.
   9697 
   9698 	* mpn/ia64/mod_34lsub1.asm: New file.
   9699 
   9700 	* doc/gmp.texi (Language Bindings): Update Python site, add Ruby.
   9701 
   9702 2010-03-10  Niels Mller  <nisse (a] lysator.liu.se>
   9703 
   9704 	* tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4.
   9705 	* tune/speed.c (routine): Added mpn_jacobi_base_4.
   9706 	* tune/common.c (speed_mpn_jacobi_base_4): New function.
   9707 	* tune/speed.h (speed_mpn_jacobi_base_4): Declare it.
   9708 	* tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c.
   9709 	* tune/jacbase4.c: New file.
   9710 
   9711 	* mpn/generic/jacbase.c (mpn_jacobi_base): New function, for
   9712 	JACOBI_BASE_METHOD 4.
   9713 
   9714 2010-03-09  Niels Mller  <nisse (a] lysator.liu.se>
   9715 
   9716 	* tests/mpz/t-jac.c (check_large_quotients): Also generate inputs
   9717 	with large quotients and a large gcd.
   9718 
   9719 2010-03-09 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   9720 
   9721 	* tests/mpz/t-bin.c (randomwalk): New test-generator function.
   9722 
   9723 2010-03-07  Torbjorn Granlund  <tege (a] gmplib.org>
   9724 
   9725 	* tune/speed.c (routine): Force r argument for several mod_1 calls.
   9726 
   9727 2010-03-06  Torbjorn Granlund  <tege (a] gmplib.org>
   9728 
   9729 	* mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR.
   9730 	Misc clean up.
   9731 
   9732 	* mpn/x86_64/mod_1_1.asm: New file.
   9733 	* mpn/x86_64/mod_1_2.asm: New file.
   9734 	* mpn/x86_64/mod_1_4.asm: Update cycle counts.
   9735 
   9736 	* tests/tests.h (TESTS_REPS): Fix typo.
   9737 
   9738 2010-03-03  Torbjorn Granlund  <tege (a] gmplib.org>
   9739 
   9740 	* mpn/x86_64/core2/divrem_1.asm: New file.
   9741 
   9742 2010-02-26  Niels Mller  <nisse (a] lysator.liu.se>
   9743 
   9744 	* tune/speed.c (routine): Added udiv_qrnnd_preinv3.
   9745 
   9746 	* tune/common.c (speed_udiv_qrnnd_preinv3): New function.
   9747 	* tune/speed.h: Added prototype for it.
   9748 
   9749 2010-02-26  Niels Mller  <nisse (a] lysator.liu.se>
   9750 
   9751 	* tests/mpz/t-jac.c (check_large_quotients): New test. Currently
   9752 	disabled, since it's quite slow.
   9753 	(mpz_nextprime_step): New function.
   9754 
   9755 2010-02-26  Torbjorn Granlund  <tege (a] gmplib.org>
   9756 
   9757 	* mpn/pa64/aors_n.asm: Fix typo in last change.
   9758 
   9759 2010-02-25  Niels Mller  <nisse (a] lysator.liu.se>
   9760 
   9761 	* tests/mpz/t-jac.c (ref_jacobi): New reference implementation,
   9762 	using factorization and legendre symbols computed by powm.
   9763 
   9764 	* tests/devel/try.c (param_init, call): Don't pass negative values
   9765 	for the second argument to mpz_jacobi and refmpz_jacobi.
   9766 
   9767 	* tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive.
   9768 
   9769 	* tests/devel/try.c (param_init): Support mpz_legendre.
   9770 	(choice_array): Added mpz_kronecker (apparently forgotten) and
   9771 	mpz_legendre.
   9772 	(call): Added TYPE_MPZ_LEGENDRE.
   9773 	(try_one): Added support for DATA_SRC1_ODD_PRIME.
   9774 
   9775 	* tests/refmpz.c (refmpz_legendre): Rewrote using powm.
   9776 
   9777 2010-02-25  Torbjorn Granlund  <tege (a] gmplib.org>
   9778 
   9779 	* config.guess: Make "corei" default for unrecognised Intel P6 CPUs.
   9780 
   9781 	* tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb
   9782 	variables.
   9783 
   9784 	* tests/mpn/t-toom6h.c (COUNT): Define.
   9785 	* tests/mpn/t-toom8h.c (COUNT): Define.
   9786 
   9787 	* tests/mpn/t-div.c: Cast a switch index to placate HP's cc.
   9788 	* tests/mpn/t-bdiv.c: Likewise.
   9789 
   9790 	* mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI.
   9791 
   9792 2010-02-24 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   9793 
   9794 	* tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos ().
   9795 	* tests/mpf/t-inp_str.c (data): Test also "+" in the exponent.
   9796 
   9797 2010-02-23  Torbjorn Granlund  <tege (a] gmplib.org>
   9798 
   9799 	* mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc.
   9800 
   9801 	* mpn/generic/sqrtrem.c: Use CNST_LIMB.
   9802 
   9803 2010-02-20  Niels Mller  <nisse (a] lysator.liu.se>
   9804 
   9805 	* tune/speed.h (mpn_gcd_accel): Deleted prototype.
   9806 	(mpn_hgcd_lehmer): New prototype.
   9807 	(MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h).
   9808 
   9809 	* tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c.
   9810 	* tune/hgcd_lehmer.c: New file.
   9811 	* tune/gcd_accel.c: Deleted obsolete file.
   9812 
   9813 	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro.
   9814 
   9815 	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function,
   9816 	(mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop
   9817 	around hgcd_step.
   9818 	(mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n).
   9819 
   9820 2010-02-19  Niels Mller  <nisse (a] lysator.liu.se>
   9821 
   9822 	* Makefile.am (mpn/jacobitab.h): Added the rules needed to
   9823 	generate this file.
   9824 
   9825 	* gen-jacobitab.c: New file.
   9826 
   9827 2010-02-19  Torbjorn Granlund  <tege (a] gmplib.org>
   9828 
   9829 	* mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop
   9830 	expansions.
   9831 
   9832 2010-02-16  Niels Mller  <nisse (a] lysator.liu.se>
   9833 
   9834 	* tune/time.c (cgt_works_p): Added rudimentary sanity check for
   9835 	clock_gettime working.
   9836 
   9837 2010-02-15  Niels Mller  <nisse (a] lysator.liu.se>
   9838 
   9839 	* tune/time.c (speed_time_init): Make use of cycle counter
   9840 	configurable, via the speed_option_cycles_broken flag.
   9841 	* tune/common.c (speed_option_cycles_broken): New global variable.
   9842 	(speed_option_set): Recognize option "cycles-broken".
   9843 
   9844 	* tune/time.c (cycles_works_p): Deleted hack to disable cycle
   9845 	counter on linux. Needs to be replaced by something more
   9846 	selective.
   9847 
   9848 2010-02-11  Niels Mller  <nisse (a] lysator.liu.se>
   9849 
   9850 	* tune/time.c (speed_time_init): Fix speed_time_string when using
   9851 	clock_gettime.
   9852 	(cycles_works_p): On linux, don't use the cycle counter.
   9853 
   9854 	* tune/Makefile.am: Add $(TUNE_LIBS) when linking programs.
   9855 
   9856 	* configure.in: Check if -lrt is needed for clock_gettime, and if
   9857 	so, add that flag to TUNE_LIBS.
   9858 
   9859 2010-02-07  Torbjorn Granlund  <tege (a] gmplib.org>
   9860 
   9861 	* tune/tuneup.c (tune_redc): Set min_size and min_is_always when
   9862 	measuring REDC_1_TO_REDC_2_THRESHOLD.
   9863 	(tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD.
   9864 
   9865 	* mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo.
   9866 	* mpn/x86_64/lshsub_n.asm: Likewise.
   9867 
   9868 2010-02-05  Torbjorn Granlund  <tege (a] gmplib.org>
   9869 
   9870 	* Version 5.0.1 released.
   9871 
   9872 	* mpn/generic/powm.c: Use rp target area for power table computation in
   9873 	order to use less scratch.
   9874 
   9875 	* mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical
   9876 	mpn_mulmod_bnm1_itch call.
   9877 
   9878 	* mpn/generic/mu_div_qr.c: Remove always true #if.
   9879 	* mpn/generic/mu_divappr_q.c: Likewise.
   9880 	* mpn/generic/mu_bdiv_q.c: Likewise.
   9881 	* mpn/generic/mu_bdiv_qr.c: Likewise.
   9882 
   9883 2010-02-01  Torbjorn Granlund  <tege (a] gmplib.org>
   9884 
   9885 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
   9886 	Bump version info.
   9887 
   9888 	* mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2.
   9889 	* mpn/x86/p6/gmp-mparam.h: Likewise.
   9890 	* mpn/x86/p6/mmx/gmp-mparam.h: Likewise.
   9891 	* mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken.
   9892 
   9893 2010-01-29  Torbjorn Granlund  <tege (a] gmplib.org>
   9894 
   9895 	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m,
   9896 	k and rec; add argument sqr.  Don't call mpn_mul_fft_decompose here,
   9897 	instead do that in all callers.
   9898 	(mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not
   9899 	explicit alloc/free.
   9900 	(mpn_fft_div_2exp_modF): Avoid a scalar division.
   9901 	(mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k.
   9902 	(mpn_fft_mul_2exp_modF): Make function more symmetrical.
   9903 
   9904 2010-01-27  Torbjorn Granlund  <tege (a] gmplib.org>
   9905 
   9906 	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite.
   9907 	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable
   9908 	better mulmod itch estimate.
   9909 	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
   9910 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
   9911 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
   9912 
   9913 2010-01-27 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   9914 
   9915 	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed
   9916 	estimate, enabled a conservative one.
   9917 	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
   9918 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
   9919 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
   9920 
   9921 2010-01-26 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   9922 
   9923 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to
   9924 	reduce memory usage.
   9925 	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
   9926 	(mpn_sqrmod_bnm1_next_size): New function.
   9927 
   9928 	* gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now.
   9929 	(mpn_sqrmod_bnm1_itch): New inline function.
   9930 	(mpn_sqrmod_bnm1_next_size): Declaration and mangling.
   9931 	* mpn/generic/nussbaumer_mul.c: Use the new functions.
   9932 
   9933 	* mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for
   9934 	mpn_mulmod_bnm1_itch.
   9935 	* mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
   9936 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
   9937 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
   9938 	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise.
   9939 	* mpn/generic/binvert.c (mpn_binvert_itch): Likewise.
   9940 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise.
   9941 	(SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise.
   9942 
   9943 	* tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test
   9944 	reduced memory usage.
   9945 
   9946 2010-01-25  Torbjorn Granlund  <tege (a] gmplib.org>
   9947 
   9948 	* tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but
   9949 	also inserting a sentinel.
   9950 	(fftmes): Use INSERT_FFTTAB for inserting new measurements.
   9951 	Limit k range to best_k - 4 ... best_k + 4.
   9952 
   9953 2010-01-23  Torbjorn Granlund  <tege (a] gmplib.org>
   9954 
   9955 	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.
   9956 	(__GMP_MP_RELEASE): New macro.
   9957 
   9958 	* mpf/div.c: Rewrite to use mpn_div_q.
   9959 
   9960 2010-01-21  Torbjorn Granlund  <tege (a] gmplib.org>
   9961 
   9962 	* Add FFT_TABLE3 tables for a basic set of machines.
   9963 
   9964 	* configure.in: Use -mtune=nocona for 64-bit pentium4.
   9965 
   9966 	* config.guess: Recognise many more Intel processors.
   9967 
   9968 	* tune/common.c: Whitespace cleanup.
   9969 	(speed_mpn_matrix22_mul): Rewrite.
   9970 
   9971 2010-01-21  Niels Mller  <nisse (a] lysator.liu.se>
   9972 
   9973 	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take
   9974 	advantage of new mpn_mulmod_bnm1 interface, to reduce allocation.
   9975 
   9976 	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to
   9977 	mpn_mulmod_bnm1 interface change.
   9978 
   9979 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change,
   9980 	in case an + bn < rn, only write an + bn output limbs. New input
   9981 	requirement, an + bn > rn/2.
   9982 	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding
   9983 	changes.
   9984 
   9985 2010-01-19  Torbjorn Granlund  <tege (a] gmplib.org>
   9986 
   9987 	* tune/tuneup.c (fftmes): Round up initial n according to initial k.
   9988 	Limit k to 24 in loop.  Remove an obsolete always-true condition.
   9989 	Remove a redundant trace printout.
   9990 
   9991 2010-01-18  Torbjorn Granlund  <tege (a] gmplib.org>
   9992 
   9993 	* tune/tuneup.c (fftmes): New function
   9994 	(fft): Rewrite.
   9995 	(mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c.
   9996 	(fftfill): New function, code taken from mul_fft.c (mpn_mul_fft).
   9997 	(cached_measure): New function.
   9998 
   9999 	* gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c.
   10000 	(MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup
   10001 	builds.
   10002 	(FFT_TABLE3_SIZE): Increase value for tuneup builds.
   10003 
   10004 	* mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3").
   10005 	Misc cleanups to old table type code.
   10006 
   10007 2010-01-16  Torbjorn Granlund  <tege (a] gmplib.org>
   10008 
   10009 	* mpn/x86_64/darwin.m4: Fix typo in last change.
   10010 
   10011 2010-01-15  Torbjorn Granlund  <tege (a] gmplib.org>
   10012 
   10013 	* gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C.
   10014 
   10015 	* gmp-impl.h (GMP_LIMB_BYTES): New define.
   10016 
   10017 	* mpn/x86_64/darwin.m4 (LEA): New define.
   10018 
   10019 	* mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT.
   10020 	Rename and globalise it to work around Mac OS bug.
   10021 
   10022 	With Philip McLaughlin:
   10023 	* mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but
   10024 	use DEF_OBJECT...END_OBJECT.
   10025 	Keep stack pointer at ABI mandated alignment over call.
   10026 
   10027 2010-01-12  Torbjorn Granlund  <tege (a] gmplib.org>
   10028 
   10029 	* tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and
   10030 	mpn_dc_div_qr_n.
   10031 	* tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n):
   10032 	Remove now unused functions.
   10033 	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N,
   10034 	SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove
   10035 	now unused macros.
   10036 
   10037 	* mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function.
   10038 
   10039 	* ltmain.sh: Upgrade from 1.5.24 to 2.2.6b.
   10040 	* ylwrap: New file.
   10041 	* .bootstrap: Remove explicit versions.
   10042 
   10043 	* doc/gmp.texi (Block-wise Barrett Division): New node.
   10044 
   10045 	* mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build
   10046 	problems.
   10047 
   10048 2010-01-11  Torbjorn Granlund  <tege (a] gmplib.org>
   10049 
   10050 	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size
   10051 	restrictions.
   10052 	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
   10053 	(speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size
   10054 	limits for SPEED_ROUTINE_MPN_PI1_DIV.
   10055 
   10056 	* tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and
   10057 	mpn_dcpi1_divappr_q.
   10058 
   10059 2010-01-08  Torbjorn Granlund  <tege (a] gmplib.org>
   10060 
   10061 	* Version 5.0.0 released.
   10062 
   10063 	* mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb
   10064 	everywhere.
   10065 
   10066 2010-01-07  Torbjorn Granlund  <tege (a] gmplib.org>
   10067 
   10068 	* Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines.
   10069 
   10070 	* mpn/generic/mu_div_q.c: Account for divisor truncation error as well
   10071 	as mpn_mu_divappr_q's error.
   10072 
   10073 	* mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a
   10074 	high limb.
   10075 
   10076 	* tests/mpn/t-bdiv.c: Move a random call for debugability.
   10077 	* tests/mpn/t-div.c: Likewise.
   10078 
   10079 	* mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code.
   10080 
   10081 	* mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation
   10082 	subtract.
   10083 	* mpn/generic/mu_divappr_q.c: Likewise.
   10084 
   10085 	* mpn/generic/mu_divappr_q.c
   10086 	(mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant.
   10087 	* gmp-impl.h: Likewise.
   10088 
   10089 	* perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of
   10090 	mpn_bdiv_q (with too little scratch space!).
   10091 
   10092 	From Niels Mller:
   10093 	* tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable
   10094 	tn.
   10095 
   10096 	* mpn/minithres/gmp-mparam.h: Add all lately defined thresholds.
   10097 
   10098 	* mpn/generic/div_q.c: Use SB division for small quotients as well as
   10099 	small divisors.  Fix typo in itch call.
   10100 
   10101 2010-01-06  Niels Mller  <nisse (a] lysator.liu.se>
   10102 
   10103 	* tests/mpn/t-div.c (check_one): Checking based on multiplication,
   10104 	refmpn_mul, rather than refmpn_tdiv_qr.
   10105 
   10106 2010-01-06 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10107 
   10108 	* mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t.
   10109 
   10110 2010-01-06  Torbjorn Granlund  <tege (a] gmplib.org>
   10111 
   10112 	* gmp-h.in (__GNU_MP__): Bump.
   10113 	(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL):
   10114 	Bump version info.
   10115 	* mp-h.in (__GNU_MP__): Bump.
   10116 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
   10117 	Bump version info.
   10118 
   10119 	* doc/gmp.texi: Rewrite mpn_gcdext text.  Remove some out-of-date
   10120 	text in Algorithms chapter.
   10121 
   10122 	* mpn/generic/div_q.c: Properly handle np=scratch.  Fix critical typo
   10123 	in final adjustment code.  Misc cleanups.
   10124 
   10125 	* mpn/generic/rootrem.c: Use mpn_div_q.
   10126 	* mpz/tdiv_q.c: Likewise.
   10127 
   10128 	* tests/mpn/t-div.c: Test mpn_div_q.
   10129 	(SIZE_LOG): Up to 17.
   10130 
   10131 	* mpn/generic/div_q.c: New file.
   10132 	* configure.in (gmp_mpn_functions): Add div_q.
   10133 
   10134 	* mpn/generic/mu_div_q.c: Actually declare dividend constant.
   10135 
   10136 2010-01-04  Torbjorn Granlund  <tege (a] gmplib.org>
   10137 
   10138 	* tune/tuneup.c (fft): Separate tuning of modf and full products.
   10139 	(struct fft_param_t): New field, mul_modf_function.
   10140 	(tune_fft_sqr): Fix typo.
   10141 	(tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field.
   10142 	* tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions.
   10143 
   10144 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up.
   10145 
   10146 	* mpn/generic/mul.c: Simplify rational expression.
   10147 
   10148 	* gmp-impl.h: Cleanup threshold variables; remove obsolete ones and
   10149 	make all possibly needed definitions for existing ones.
   10150 	* tune/tuneup.c (tune_mul): Write fractions-compensated values to
   10151 	threshold variables.
   10152 
   10153 2010-01-03 Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10154 
   10155 	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
   10156 	mpn_toom43_mul.
   10157 
   10158 	* mpn/generic/toom_interpolate_6pts.c: Small reorganisation.
   10159 
   10160 2010-01-03  Torbjorn Granlund  <tege (a] gmplib.org>
   10161 
   10162 	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
   10163 	INV_MULMOD_BNM1_THRESHOLD/2 instead.
   10164 
   10165 	* gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default
   10166 	here...
   10167 	* mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here.
   10168 
   10169 	* tests/mpn/t-div.c: Rewrite operand generation code.
   10170 
   10171 2010-01-02  Torbjorn Granlund  <tege (a] gmplib.org>
   10172 
   10173 	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
   10174 	INV_MULMOD_BNM1_THRESHOLD.
   10175 
   10176 2010-01-02  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10177 
   10178 	* mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more
   10179 	efficiently.
   10180 	* mpn/generic/mu_div_q.c: Likewise.
   10181 
   10182 	* mpn/generic/invert.c: Remove duplicated code.
   10183 
   10184 2010-01-01  Torbjorn Granlund  <tege (a] gmplib.org>
   10185 
   10186 	* gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0.
   10187 
   10188 	* mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1.  Clean up
   10189 	scratch usage.  Improve itch functions.
   10190 	* mpn/generic/mu_divappr_q.c: Likewise.
   10191 	* mpn/generic/mu_bdiv_qr.c: Likewise.
   10192 	* mpn/generic/mu_div_q.c: Likewise.
   10193 
   10194 	* mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs.
   10195 	* mpn/generic/dcpi1_bdiv_q.c: Likewise.
   10196 
   10197 	* tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c.
   10198 	Increase COUNT to 500.
   10199 
   10200 	* tests/mpn/t-div.c: Avoid generating too small test operands.
   10201 	Move SB suppression limit downwards.  Increase COUNT to 200.
   10202 
   10203 2009-12-31  Torbjorn Granlund  <tege (a] gmplib.org>
   10204 
   10205 	* mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case.
   10206 
   10207 	* tests/tests.h (TESTS_REPS): New macro.
   10208 	* tests/mpz/dive.c: Use larger operands, decrease default reps, use
   10209 	TESTS_REPS.
   10210 	* tests/mpz/convert.c: Likewise.
   10211 	* tests/mpz/t-sqrtrem.c: Likewise.
   10212 	* tests/mpz/reuse: Likewise.
   10213 	* tests/mpz/t-root.c: Likewise.
   10214 	* tests/mpz/t-tdiv.c: Likewise.
   10215 	* tests/mpz/t-gcd.c: Likewise.
   10216 	* tests/mpz/t-powm.c: Likewise.
   10217 
   10218 2009-12-31  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10219 
   10220 	* mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow.
   10221 	* mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise.
   10222 
   10223 	* mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more,
   10224 	simply consider UNLIKELY any unexpected size.
   10225 
   10226 2009-12-31  Torbjorn Granlund  <tege (a] gmplib.org>
   10227 
   10228 	* tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function.
   10229 	(tune_mu_div): Use it.
   10230 
   10231 2009-12-30  Torbjorn Granlund  <tege (a] gmplib.org>
   10232 
   10233 	* tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div)
   10234 	(tune_dc_div): Clear global s.r to make speed functions do 2n/n.
   10235 
   10236 	* tune/speed.c (routine): New entries for mpn_mu_div_qr and
   10237 	mpn_mupi_div_qr.  Allow .r parameter for mpn_sbpi1_div_qr,
   10238 	mpn_dcpi1_div_qr.
   10239 	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR)
   10240 	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter.
   10241 
   10242 	* tests/mpz/t-tdiv.c: Increase operands size again.
   10243 
   10244 	* mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer.
   10245 
   10246 	* mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary
   10247 	alloc.
   10248 
   10249 2009-12-29  Torbjorn Granlund  <tege (a] gmplib.org>
   10250 
   10251 	* tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD.
   10252 	* tune/speed.h (struct speed_params): Allow 3 source operands.
   10253 	(SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro.
   10254 	* tune/common.c (speed_mpn_mupi_div_qr): New function.
   10255 
   10256 	* mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr.
   10257 
   10258 	* tests/mpz/t-tdiv.c: Use larger test operands.
   10259 
   10260 	* mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1.
   10261 
   10262 	* mpz/mul.c: Call mpn_sqr directly.  Use PTR,SIZ,ALLOC.
   10263 
   10264 	* tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require
   10265 	this.
   10266 
   10267 	* tests/mpn/t-div.c: Call mu_div functions with operands that generate
   10268 	a high quotient limb.
   10269 
   10270 	* mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb,
   10271 	to let dividend argument be constant, and as a general cleanup.
   10272 	* mpn/generic/mu_divappr_q.c: Likewise.
   10273 	* mpn/generic/mu_div_q.c: Likewise.
   10274 	* gmp-impl.h: Update declarations of changed functions.
   10275 
   10276 	* mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space
   10277 	when caller passed NULL.
   10278 
   10279 2009-12-28  Torbjorn Granlund  <tege (a] gmplib.org>
   10280 
   10281 	* mpn/generic/toom_couple_handling.c: Prefix name with mpn_.
   10282 	* gmp-impl.h: Likewise.
   10283 	* mpn/generic/toom63_mul.c: Likewise.
   10284 	* mpn/generic/toom6_sqr.c: Likewise.
   10285 	* mpn/generic/toom6h_mul.c: Likewise.
   10286 	* mpn/generic/toom8_sqr.c: Likewise.
   10287 	* mpn/generic/toom8h_mul.c: Likewise.
   10288 
   10289 	* configure.in (gmp_mpn_functions_optional) Move "com" from here...
   10290 	(gmp_mpn_functions): ...to here.
   10291 	* mpn/generic/com.c: New file.
   10292 	* (mpn_com): New name for mpn_com_n.  Make public.
   10293 	* (mpn_neg): Analogous changes.
   10294 
   10295 	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor.
   10296 
   10297 	* tune/common.c, tune/speed.c, tune/speed.h: Support measuring
   10298 	mpn_lshiftc.
   10299 
   10300 	* tests/devel/try.c: Test mpn_lshiftc.
   10301 	* tests/refmpn.c (refmpn_com): New function.
   10302 	(refmpn_lshiftc): Likewise.
   10303 
   10304 	* configure.in (gmp_mpn_functions_optional) Move lshiftc from here...
   10305 	(gmp_mpn_functions): ...to here.
   10306 	* mpn/generic/lshiftc.c: New file.
   10307 	* mpn/x86_64/lshiftc.asm: New file.
   10308 	* mpn/x86_64/core2/lshiftc.asm: New file.
   10309 	* mpn/generic/mul_fft.c (mpn_lshiftc): Remove.
   10310 
   10311 	* mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance.
   10312 	* mpn/x86_64/core2/rshift.asm: Likewise.
   10313 
   10314 2009-12-27  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10315 
   10316 	* mpn/generic/mul.c: Use toom6h and toom8h for almost balanced.
   10317 
   10318 	* mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in
   10319 	Toom-8 range.
   10320 
   10321 2009-12-27  Torbjorn Granlund  <tege (a] gmplib.org>
   10322 
   10323 	* (mpn_sqr): New name for mpn_sqr_n.  Many files affected.
   10324 
   10325 	* tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD.
   10326 	(tune_invertappr, tune_invert, tune_binvert): Let max_size default.
   10327 
   10328 	* tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions.
   10329 	* tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro.
   10330 	(SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise.
   10331 	(SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise.
   10332 	(SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise.
   10333 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c.
   10334 	* tune/common.c (speed_mpn_mu_div_qr): New function.
   10335 	(speed_mpn_mu_divappr_q): Likewise.
   10336 	(speed_mpn_mu_div_q): Likewise.
   10337 	(speed_mpn_mu_bdiv_q): Likewise.
   10338 	(speed_mpn_mu_bdiv_qr): Likewise.
   10339 
   10340 	* mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0
   10341 	values.
   10342 
   10343 	* gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove.
   10344 	(BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of
   10345 	MODEXACT_1_ODD_THRESHOLD.
   10346 	(MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD.
   10347 	* mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise.
   10348 	* tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD;
   10349 	Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1.
   10350 	(tuned_speed_mpn_mod_1): Remove variable.
   10351 	(tune_mod_1): Fix thinkos.  Suppress printing of "always" etc.
   10352 	(all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom
   10353 	depends on some of them.
   10354 
   10355 	* mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for
   10356 	TOOM22_MUL_MN_REC.
   10357 
   10358 2009-12-26  Niels Mller  <nisse (a] lysator.liu.se>
   10359 
   10360 	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax
   10361 	requirements a bit.
   10362 
   10363 	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on
   10364 	input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high
   10365 	limbs of the evaluated values in scalar variables.
   10366 
   10367 	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove
   10368 	unused variables.
   10369 
   10370 	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use
   10371 	of mpn_addsub_n which should be mpn_add_n_sub_n.
   10372 
   10373 2009-12-26  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10374 
   10375 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn).
   10376 
   10377 	* gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine.
   10378 	(mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine.
   10379 	* mpn/generic/mul_n.c: Use renamed _itch macros.
   10380 
   10381 2009-12-25  Niels Mller  <nisse (a] lysator.liu.se>
   10382 
   10383 	* tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements.
   10384 	* gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed
   10385 	by toom32 itself, and also the pointwise multiplications are
   10386 	currently mpn_mul_n with no supplied scratch.
   10387 	* mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized
   10388 	interpolation to use less scratch space. No longer supports the
   10389 	most extreme size ratios.
   10390 
   10391 2009-12-25  Torbjorn Granlund  <tege (a] gmplib.org>
   10392 
   10393 	* tune/tuneup.c (tune_preinv_mod_1): Purge.
   10394 	(tune_mod_1): Use speed_mpn_mod_1_tune for
   10395 	PREINV_MOD_1_TO_MOD_1_THRESHOLD
   10396 
   10397 	* mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly.  Don't use full
   10398 	precision in mpn_sbpi1_divappr_q call.  Misc cleanup.
   10399 
   10400 	* tune/tuneup.c (tune_mod_1): Add a check_size for
   10401 	PREINV_MOD_1_TO_MOD_1_THRESHOLD.
   10402 
   10403 2009-12-24  Torbjorn Granlund  <tege (a] gmplib.org>
   10404 
   10405 	* tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
   10406 	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
   10407 	* tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
   10408 	(MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
   10409 
   10410 	* gmp-impl.h (USE_PREINV_MOD_1): Remove.
   10411 	(MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in
   10412 	terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically
   10413 	using USE_PREINV_MOD_1).
   10414 	* mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates.
   10415 
   10416 	* tune/tuneup.c (tune_mod_1): Rewrite.
   10417 	* gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New.
   10418 	(MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD.
   10419 	(MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD.
   10420 	(MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD.
   10421 	* mpn/generic/mod_1.c: Corresponding updates.
   10422 
   10423 2009-12-24  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10424 
   10425 	* mpn/generic/mul_n.c: Use also toom6h and toom8h.
   10426 	* mpn/generic/sqr_n.c: Use also toom6 and toom8.
   10427 	* gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half.
   10428 	* tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds.
   10429 
   10430 2009-12-24  Torbjorn Granlund  <tege (a] gmplib.org>
   10431 
   10432 	* mpn/generic/mod_1_4.c: Get ASSERT right.
   10433 	* mpn/generic/mod_1_3.c: Likewise.
   10434 	* mpn/generic/mod_1_2.c: Likewise.
   10435 
   10436 	* mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native
   10437 	mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX.
   10438 
   10439 2009-12-23  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10440 
   10441 	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
   10442 	mpn_toom8h_mul and mpn_toom8_sqr speed.
   10443 
   10444 	* mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs.
   10445 
   10446 	* mpn/generic/toom8h_mul.c: New file.
   10447 	* mpn/generic/toom8_sqr.c: New file.
   10448 	* mpn/generic/toom_interpolate_16pts.c: New file.
   10449 	* gmp-impl.h: Provide corresponding declarations.
   10450 	* configure.in (gmp_mpn_functions): List toom_interpolate_16pts,
   10451 	toom8h_mul, and toom8h_sqr.
   10452 	* tests/mpn/t-toom8h.c: New test program.
   10453 
   10454 	* mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul.
   10455 	* mpn/generic/toom6h_mul.c: Removed _sqr.
   10456 
   10457 	* mpn/generic/mulmod_bnm1.c: Nailify CRT.
   10458 	* mpn/generic/sqrmod_bnm1.c: Likewise.
   10459 
   10460 	* mpn/generic/mullo_n.c: Split dc_mullo_n function;
   10461 	ALLOC memory at once.
   10462 
   10463 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update.
   10464 
   10465 	* mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts.
   10466 	* mpn/generic/toom_interpolate_12pts.c: Likewise.
   10467 
   10468 	* mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2.
   10469 	* mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q.
   10470 
   10471 	* mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3.
   10472 	* mpn/generic/toom6h_mul.c: Avoid obsolete _itch function.
   10473 
   10474 2009-12-23  Torbjorn Granlund  <tege (a] gmplib.org>
   10475 
   10476 	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
   10477 	mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p.
   10478 
   10479 	* tests/mpz/t-powm.c: Test mpz_powm_sec.
   10480 
   10481 	* mpz/powm_sec.c: New file.
   10482 	* gmp-h.in: Declare it.
   10483 	* Makefile.am, mpz/Makefile.am: Compile it.
   10484 	* doc/gmp.texi: Document it.
   10485 
   10486 	* mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function.
   10487 	(mpn_powm_sec): Use passed scratch, no local allocation.
   10488 	Allow exp argument = 1.
   10489 	(win_size): Start loop from 1.
   10490 
   10491 	* mpn/generic/powm.c (win_size): Start loop from 1.
   10492 
   10493 2009-12-22  Torbjorn Granlund  <tege (a] gmplib.org>
   10494 
   10495 	* tests/mpn/t-div.c: New file.
   10496 	* tests/mpn/Makefile.am: Compile it.
   10497 
   10498 	* mpn/generic/mu_divappr_q.c: Handle quotient overflow.
   10499 
   10500 	* mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function.
   10501 
   10502 2009-12-22  Niels Mller  <nisse (a] lysator.liu.se>
   10503 
   10504 	* mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2.  Intended to change
   10505 	nothing after preprocessing.
   10506 
   10507 	* mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2,
   10508 	avoid using memory locations as output parameters, and revert to
   10509 	explicitly copying n1 and n0 to memory.
   10510 
   10511 	* gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the
   10512 	same code as was used before the introduction of this macro.
   10513 	Eliminated some local variables, instead do multiple updates to
   10514 	the output parameters.
   10515 
   10516 2009-12-22  Torbjorn Granlund  <tege (a] gmplib.org>
   10517 
   10518 	* tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid
   10519 	invalid recursive sizes.
   10520 
   10521 	* tests/mpn/t-bdiv.c: Get itch function calls right.
   10522 
   10523 	* mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite.
   10524 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify.
   10525 
   10526 	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate.
   10527 	(mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD.
   10528 
   10529 2009-12-18  Niels Mller  <nisse (a] lysator.liu.se>
   10530 
   10531 	* tests/mpn/t-bdiv.c: Add red-zones.
   10532 
   10533 2009-12-21  Torbjorn Granlund  <tege (a] gmplib.org>
   10534 
   10535 	* mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0.
   10536 
   10537 	* mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial
   10538 	quotient block (code block copied from dcpi1_div_qr.c).
   10539 
   10540 	* mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of
   10541 	GMP_NUMB_MAX.  Remove an impossible qn = 0 case.
   10542 
   10543 	* mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1.
   10544 
   10545 	* mpn/generic/mul.c: Put back call to mpn_mul_n.
   10546 
   10547 	* tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to
   10548 	dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n.
   10549 
   10550 	* mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn.
   10551 	* mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3.
   10552 	* mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3.
   10553 
   10554 	* mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from
   10555 	mpn_bdiv_q_1_pi1.
   10556 	* All references changed.
   10557 
   10558 	* configure.in: Add --enable-old-fft-full.
   10559 	* tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on
   10560 	WANT_OLD_FFT_FULL.
   10561 	* tune/common.c (speed_mpn_mul_fft_full)
   10562 	(speed_mpn_mul_fft_full_sqr): Likewise.
   10563 	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff
   10564 	WANT_OLD_FFT_FULL.
   10565 
   10566 2009-12-21  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10567 
   10568 	* gmp-impl.h (mpn_toom6h_mul_itch): New inline function.
   10569 	(MUL_TOOM6H_THRESHOLD): Default value.
   10570 	(SQR_TOOM6_THRESHOLD): Default value.
   10571 	* mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h.
   10572 	* tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
   10573 	mpn_toom6h_mul and mpn_toom6_sqr speed.
   10574 
   10575 	* mpn/generic/toom63_mul.c: Remove unused TMP_*.
   10576 
   10577 	* mpn/generic/toom_eval_pm2rexp.c: New file.
   10578 	* gmp-impl.h: Provide corresponding declaration.
   10579 	* configure.in (gmp_mpn_functions): List toom_eval_pm2rexp.
   10580 	* mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp.
   10581 
   10582 	* mpn/generic/toom_couple_handling.c: New file, helper function
   10583 	for high degree Toom.
   10584 	* gmp-impl.h: Provide corresponding declaration.
   10585 	* configure.in (gmp_mpn_functions): List toom_couple_handling.
   10586 	* mpn/generic/toom6h_mul.c: Use shared toom_couple_handling.
   10587 	* mpn/generic/toom63_mul.c: Likewise.
   10588 
   10589 	* mpn/generic/toom6h_mul.c: New file.
   10590 	* mpn/generic/toom_interpolate_12pts.c: New file.
   10591 	* gmp-impl.h: Provide corresponding declarations.
   10592 	* configure.in (gmp_mpn_functions): List toom_interpolate_12pts,
   10593 	toom6h_mul.
   10594 	* tests/mpn/t-toom6h.c: New test program.
   10595 
   10596 	* tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul.
   10597 	* tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise.
   10598 
   10599 2009-12-20  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10600 
   10601 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT.
   10602 	* mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
   10603 
   10604 2009-12-20  Torbjorn Granlund  <tege (a] gmplib.org>
   10605 
   10606 	* Change all bit counts for bignums to use mp_bitcnt_t.
   10607 
   10608 	* mpn/generic/bdivmod.c: File removed.  All references purged.
   10609 
   10610 	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable.
   10611 
   10612 	* gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul.
   10613 	* mpn/generic/mul.c: Refer mpn_fft_mul.
   10614 	* mpn/generic/mul_n.c: Likewise.
   10615 	* mpn/generic/sqr_n.c: Likewise.
   10616 	* mpn/generic/mullo_n.c: Likewise.
   10617 
   10618 	* mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by
   10619 	Marco.  Use TMP_SALLOC_LIMBS in more places.  Clean up ws allocation.
   10620 
   10621 2009-12-19  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10622 
   10623 	* mpn/generic/toom_interpolate_8pts.c: Nailify.
   10624 
   10625 2009-12-19  Torbjorn Granlund  <tege (a] gmplib.org>
   10626 
   10627 	* mpn/generic/mul.c: Major rewrite.  Use toom43, toom53, toom63.
   10628 	Call mpn_nussbaumer_mul for largest operands.
   10629 
   10630 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro.
   10631 	(SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro.
   10632 	(SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro.
   10633 	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro.
   10634 	(SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro.
   10635 	(SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro.
   10636 	* tune/common.c (speed_mpn_toom63_mul): New function.
   10637 	(speed_mpn_toom32_for_toom43_mul): New function.
   10638 	(speed_mpn_toom43_for_toom32_mul): New function.
   10639 	(speed_mpn_toom32_for_toom53_mul): New function.
   10640 	(speed_mpn_toom53_for_toom32_mul): New function.
   10641 	(speed_mpn_toom42_for_toom53_mul): New function.
   10642 	(speed_mpn_toom53_for_toom42_mul): New function.
   10643 	* tune/tuneup.c (tune_mul_n): New name for old tune_mul.
   10644 	(tune_sqr_n): New name for old tune_sqr.
   10645 	(tune_mul): New function, for unbalanced multiplication.
   10646 	* gmp-impl.h: Provide declarations for corresponding threshold vars.
   10647 
   10648 	* gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare.
   10649 	* mpn/asm-defs.m4: Likewise.
   10650 	* configure.in: Add corresponding HAVE_NATIVEs.
   10651 	* mpn/x86_64/rsh1aors_n.asm: Add _nc entry point.
   10652 
   10653 2009-12-18  Niels Mller  <nisse (a] lysator.liu.se>
   10654 
   10655 	* mpz/divexact.c: Rewrite to use mpn_divexact.
   10656 
   10657 	* mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused
   10658 	variables.
   10659 
   10660 	* mpn/generic/toom52_mul.c (mpn_toom52_mul)
   10661 	[HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a
   10662 	compiler warning.
   10663 
   10664 	* gmp-impl.h (gmp_pi1_t): Eliminated inv21 member.
   10665 	(invert_pi1): ...and don't store it here.
   10666 
   10667 	* mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified
   10668 	calculation of block size n.
   10669 	* gmp-impl.h (mpn_toom63_mul_itch): Likewise.
   10670 
   10671 	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed
   10672 	output asserts.
   10673 
   10674 2009-12-18  Torbjorn Granlund  <tege (a] gmplib.org>
   10675 
   10676 	* tests/mpn/t-toom63.c: New test program.
   10677 
   10678 2009-12-18  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10679 
   10680 	* mpn/generic/invert.c: Nailify.
   10681 	* mpn/generic/invertappr.c: Nailify.
   10682 	* mpn/generic/mulmod_bnm1.c: Nailify.
   10683 	* mpn/generic/sqrmod_bnm1.c: Nailify.
   10684 
   10685 	* tests/mpn/t-invert.c: New test program.
   10686 
   10687 	* mpn/generic/toom63_mul.c: New file.
   10688 	* mpn/generic/toom_interpolate_8pts.c: New file.
   10689 	* gmp-impl.h: Provide corresponding declarations.
   10690 	* configure.in (gmp_mpn_functions): List toom_interpolate_8pts and
   10691 	toom63_mul.
   10692 
   10693 2009-12-17  Torbjorn Granlund  <tege (a] gmplib.org>
   10694 
   10695 	* mpn/generic/mul.c: Move allocation of ws to where it is used.
   10696 	Identify toom22, 32, 42, in that order (in two places).  Use midline
   10697 	between toom22, 32, 42.
   10698 	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also
   10699 	mpn_toom32_mul.
   10700 
   10701 	* doc/gmp.texi: Update References section.  Update Contributors
   10702 	section.  Misc updates.
   10703 
   10704 	* gmp-impl.h: Renew default values for all THRESHOLDs.
   10705 
   10706 2009-12-17  Niels Mller  <nisse (a] lysator.liu.se>
   10707 
   10708 	* mpn/generic/divexact.c (mpn_divexact): Don't require that the
   10709 	dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When
   10710 	shifting, allocate and process only the low qn+1 limbs. Eliminated
   10711 	code for the impossible case nn < qn.
   10712 
   10713 	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input
   10714 	asserts.
   10715 
   10716 	* mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that
   10717 	the initial quotient block is a single limb, use 3/2 division,
   10718 	thereby eliminating the only use of gmp_pi1_t->inv21.
   10719 
   10720 2009-12-17  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10721 
   10722 	* mpn/generic/invert.c: Added some comment.
   10723 	* mpn/generic/invertappr.c: Slightly better threshold handling.
   10724 	* gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200.
   10725 
   10726 	* mpn/generic/nussbaumer_mul.c: New file.
   10727 	* configure.in (gmp_mpn_functions): Add nussbaumer_mul.
   10728 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul.
   10729 	* gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling.
   10730 	* tune/speed.h (speed_mpn_nussbaumer_mul): Declare function.
   10731 	* tune/common.c (speed_mpn_nussbaumer_mul): New function.
   10732 	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul.
   10733 
   10734 	* mpn/generic/sqrmod_bnm1.c: New file.
   10735 	* configure.in (gmp_mpn_functions): Add sqrmod_bnm1.
   10736 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1.
   10737 	* gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling.
   10738 	(SQRMOD_BNM1_THRESHOLD): support for the new threshold.
   10739 	* tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function.
   10740 	* tune/common.c (speed_mpn_sqrmod_bnm1): New function.
   10741 	* tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1.
   10742 	* tests/mpn/t-mulmod_bnm1.c: Attribution.
   10743 	* tests/mpn/t-sqrmod_bnm1.c: New test file.
   10744 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1.
   10745 
   10746 	* tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD.
   10747 
   10748 	* mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul,
   10749 	use squaring if operands coincide.
   10750 	* tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function.
   10751 	* tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function.
   10752 	* tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr.
   10753 
   10754 2009-12-17  Torbjorn Granlund  <tege (a] gmplib.org>
   10755 
   10756 	* mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite.
   10757 
   10758 2009-12-16  Torbjorn Granlund  <tege (a] gmplib.org>
   10759 
   10760 	* tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul
   10761 	instead of refmpn_mul_basecase.
   10762 	* tests/mpn/toom-shared.h: Likewise.
   10763 	* tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise.
   10764 
   10765 	* minithres/gmp-mparam.h: Add new thresholds, trim old values.
   10766 
   10767 	* mpn/generic/powm.c: Use mp_bitcnt_t for bit counts.
   10768 	Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in
   10769 	non-WANT_REDC_2 INNERLOOP expansion code.
   10770 	* mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts.
   10771 
   10772 2009-12-16  Niels Mller  <nisse (a] lysator.liu.se>
   10773 
   10774 	* tests/mpz/t-gcd.c (main): Added test case to exercise the
   10775 	unlikely u0 == u1 case in mpn_gcdext_lehmer_n.
   10776 
   10777 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT
   10778 	right.
   10779 
   10780 2009-12-16  Torbjorn Granlund  <tege (a] gmplib.org>
   10781 
   10782 	* tests/mpz/t-mul.c: Misc cleanups.
   10783 	(mul_basecase): Remove.
   10784 	(ref_mpn_mul): Remove.
   10785 	* tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's
   10786 	ref_mpn_mul.
   10787 	(refmpn_mullo_n): Add a missing free.
   10788 
   10789 	* tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr,
   10790 	mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and
   10791 	mpn_{sb,dc}pi1_bdiv_q.
   10792 
   10793 	* mpn/generic/invertappr.c: New file, meat from invert.c.
   10794 	* mpn/generic/invert.c: Leave just mpn_invert.c.
   10795 	* configure.in (gmp_mpn_functions): Add invertappr.
   10796 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c.
   10797 	* gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros.
   10798 
   10799 2009-12-15  Torbjorn Granlund  <tege (a] gmplib.org>
   10800 
   10801 	* mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right.
   10802 
   10803 2009-12-15  Niels Mller  <nisse (a] lysator.liu.se>
   10804 
   10805 	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step
   10806 	towards nail support.
   10807 
   10808 2009-12-15  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10809 
   10810 	* gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling.
   10811 	* mpn/generic/mulmod_bnm1.c: Comment representation of class [0].
   10812 
   10813 2009-12-14  Niels Mller  <nisse (a] lysator.liu.se>
   10814 
   10815 	* mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use
   10816 	udiv_qr_3by2.
   10817 
   10818 2009-12-14  Torbjorn Granlund  <tege (a] gmplib.org>
   10819 
   10820 	* tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD
   10821 	tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be
   10822 	wrong (as pointed out by Marco).
   10823 	* (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too.
   10824 
   10825 2009-12-14  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10826 
   10827 	* mpn/generic/invert.c: Improved comments.
   10828 	(mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q.
   10829 
   10830 2009-12-14  Niels Mller  <nisse (a] lysator.liu.se>
   10831 
   10832 	* gmp-impl.h (udiv_qr_3by2): Fix typo in argument list.
   10833 
   10834 2009-12-13  Niels Mller  <nisse (a] lysator.liu.se>
   10835 
   10836 	* gmp-impl.h (udiv_qr_3by2): New macro.
   10837 	* mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2.
   10838 
   10839 2009-12-13  Torbjorn Granlund  <tege (a] gmplib.org>
   10840 
   10841 	* mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer
   10842 	overrun.
   10843 
   10844 	* mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd
   10845 	mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft.  Replace some
   10846 	comments on cc's range with ASSERTs.
   10847 
   10848 	* mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul.
   10849 
   10850 	* mpz/powm.c: Rework buffer handling.
   10851 
   10852 2009-12-13  Niels Mller  <nisse (a] lysator.liu.se>
   10853 
   10854 	* tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check
   10855 	results (slow!). Iteration counts of all toom tests reduced
   10856 	considerably.
   10857 
   10858 2009-12-13  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10859 
   10860 	* mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni.
   10861 	(mpn_bc_invertappr): New function, the basecase.
   10862 	(mpn_ni_invertapp): New function, Newton iteration.
   10863 	(mpn_invert): Use mpn_ni_invertapp.
   10864 	* tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD.
   10865 	(tune_invertappr): Min for INV_NEWTON_THRESHOLD.
   10866 
   10867 	* tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro.
   10868 	(speed_mpn_ni_invertappr): Declare function.
   10869 	* tune/common.c (speed_mpn_ni_invertappr): New function.
   10870 	* tune/speed.c (routine): Add speed_mpn_ni_invertappr.
   10871 
   10872 	* tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to
   10873 	tune INV_MULMOD_BNM1_THRESHOLD.
   10874 
   10875 2009-12-12  Torbjorn Granlund  <tege (a] gmplib.org>
   10876 
   10877 	* mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite.
   10878 
   10879 2009-12-12  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10880 
   10881 	* tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test
   10882 	for odd sizes.
   10883 
   10884 	* mpn/generic/invert.c: Complete rewrite. Uses Newton iterations.
   10885 	* gmp-impl.h (mpn_invertappr): Added prototype and name-mangling.
   10886 	(mpn_invertappr_itch): Added prototype and name-mangling.
   10887 	(INV_APPR_THRESHOLD): Support for a new tunable const.
   10888 	* tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro.
   10889 	(speed_mpn_invertappr): Declare function.
   10890 	* tune/common.c (speed_mpn_invertappr): New function.
   10891 	* tune/speed.c (routine): Add speed_mpn_invertappr.
   10892 	* tune/tuneup.c (tune_invertappr): New function: was tune_invert.
   10893 	(tune_invert): Now tune only INV_APPR_THRESHOLD.
   10894 	(all): Enable call to tune_invert and tune_invertappr.
   10895 
   10896 2009-12-11  Torbjorn Granlund  <tege (a] gmplib.org>
   10897 
   10898 	* mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping.
   10899 	Old, evidently broken wrapping code removed.
   10900 	* tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD.
   10901 	* gmp-impl.h: Provide declarations for corresponding threshold var.
   10902 
   10903 	* tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable.
   10904 
   10905 	* tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD.
   10906 	* gmp-impl.h: Provide declarations for corresponding threshold var.
   10907 
   10908 	* tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero.
   10909 
   10910 	* configure.in: Set up different paths for different 64-bit sparc
   10911 	processors.
   10912 	* mpn/sparc64/ultrasparc34/gmp-mparam.h: New file.
   10913 
   10914 2009-12-10  Torbjorn Granlund  <tege (a] gmplib.org>
   10915 
   10916 	* mpn/*/gmp-mparam.h: Regenerate many of these files.
   10917 
   10918 2009-12-10  Niels Mller  <nisse (a] lysator.liu.se>
   10919 
   10920 	* gmp-impl.h (mpn_divexact): Removed scratch pointer from
   10921 	prototype.
   10922 	* mpn/generic/gcdext.c (divexact): Deleted, moved to...
   10923 	* mpn/generic/divexact.c (mpn_divexact): New implementation (moved
   10924 	from gcdext.c). The bidirectional divexact is kept but #if:ed out.
   10925 	Interface change, since the new code doesn't take a scratch
   10926 	argument.
   10927 
   10928 	* tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered
   10929 	MIN_N to 1. Various fixes to handle n == 1 properly.
   10930 
   10931 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface
   10932 	change, require an >= bn.
   10933 
   10934 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive
   10935 	case to not write beyond end of result area.
   10936 
   10937 2009-12-09  Torbjorn Granlund  <tege (a] gmplib.org>
   10938 
   10939 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made
   10940 	from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1.
   10941 	* tune/common.c (speed_mpn_bc_mulmod_bnm1): New function.
   10942 	(speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL.
   10943 	* tune/speed.c (routine): Add mpn_bc_mulmod_bnm1.
   10944 
   10945 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
   10946 
   10947 	* tune/tuneup.c (tune_mulmod_bnm1): Rewrite.
   10948 
   10949 2009-12-08  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10950 
   10951 	* mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1,
   10952 	mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly
   10953 	same as result area (as suggested by Niels Mller).
   10954 	(mpn_mulmod_bnm1): Calls changed accordingly.
   10955 
   10956 2009-12-08  Niels Mller  <nisse (a] lysator.liu.se>
   10957 
   10958 	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use
   10959 	table lookup for count_trailing_zeros. Binary algorithm still
   10960 	disabled by default.
   10961 
   10962 	* mpn/generic/gcdext.c (divexact): Local definition of divexact,
   10963 	using mpn_bdiv_q.
   10964 	(compute_v): Use it.
   10965 
   10966 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv.
   10967 
   10968 	* tests/mpn/t-bdiv.c: New file.
   10969 
   10970 	* mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length,
   10971 	should have qn == nn.
   10972 
   10973 	* mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to
   10974 	the lower-level functions.
   10975 
   10976 2009-12-08  Torbjorn Granlund  <tege (a] gmplib.org>
   10977 
   10978 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define.
   10979 	* tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function.
   10980 	* tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring
   10981 	mpn_mulmod_bnm1 at recommended sizes.
   10982 
   10983 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
   10984 	(mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add.
   10985 
   10986 	* tune/speed.c (routine): Add mpn_invert.
   10987 
   10988 	* tune/tuneup.c (tune_invert): New function.
   10989 	* tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro.
   10990 	* tune/common.c (speed_mpn_invert): New function.
   10991 	* gmp-impl.h: Provide declarations for corresponding threshold var.
   10992 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c.
   10993 
   10994 2009-12-08  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   10995 
   10996 	* tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n;
   10997 	mpn_rsblsh_n now tests all shift values.
   10998 	* tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions.
   10999 	(refmpn_addlsh1_n): Use generic refmpn_addlsh_n.
   11000 	(refmpn_sublsh1_n): Use generic refmpn_sublsh_n.
   11001 	(refmpn_addlsh2_n): New function.
   11002 	* tests/tests.h: Declare new functions.
   11003 
   11004 2009-12-06  Torbjorn Granlund  <tege (a] gmplib.org>
   11005 
   11006 	* tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12.
   11007 
   11008 	* Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*.
   11009 
   11010 	* configure.in: Don't include ev5 directory for ev6* and ev7.  Misc
   11011 	alpha path cleanups.
   11012 	* mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm.
   11013 	* mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm.
   11014 	* mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm.
   11015 	* mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm.
   11016 	* mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm.
   11017 	* mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm.
   11018 
   11019 	* mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than
   11020 	mpn_bdiv_dbm1c on all hardware.
   11021 
   11022 	* mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit.
   11023 
   11024 	* gmp-impl.h (mpn_redc_1_sec): Declare.
   11025 	* configure.in (gmp_mpn_functions): Add redc_1_sec.
   11026 
   11027 2009-12-06  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11028 
   11029 	* tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit.
   11030 
   11031 2009-12-05  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11032 
   11033 	* mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0.
   11034 	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise.
   11035 	* mpn/generic/toom_eval_pm1.c: Likewise.
   11036 	* mpn/generic/toom_eval_pm2exp.c: Likewise.
   11037 	* mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n.
   11038 
   11039 	* mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign.
   11040 
   11041 	* mpn/generic/toom33_mul.c: Adapt to changes above.
   11042 	* mpn/generic/toom3_sqr.c: Likewise.
   11043 	* mpn/generic/toom42_mul.c: Likewise.
   11044 	* mpn/generic/toom43_mul.c: Reduce branches.
   11045 	* mpn/generic/toom44_mul.c: Likewise.
   11046 	* mpn/generic/toom53_mul.c: Likewise.
   11047 	* mpn/generic/toom62_mul.c: Likewise.
   11048 
   11049 	* mpn/generic/toom52_mul.c: Use toom_eval_ functions.
   11050 
   11051 	* mpn/generic/toom4_sqr.c: Avoid C99 construct.
   11052 	* mpn/generic/toom_interpolate_7pts.c: Likewise.
   11053 
   11054 2009-12-05  Torbjorn Granlund  <tege (a] gmplib.org>
   11055 
   11056 	* mpn/generic/redc_1_sec.c: New file.
   11057 	* mpn/generic/powm_sec.c: Use redc_1_sec.  Use dummy full subtract
   11058 	instead of mpn_cmp since the latter leaks to the side channel.
   11059 	(mpn_local_sqr_n): New function, with associated macros.
   11060 	(mpn_powm_sec): Use mpn_local_sqr_n.
   11061 
   11062 	* configure.in (HAVE_NATIVE): Add missing functions, then sort.
   11063 
   11064 2009-12-04  Torbjorn Granlund  <tege (a] gmplib.org>
   11065 
   11066 	* tune/tuneup.c (tune_dc_div): Up min_size to 6.
   11067 	(tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2.
   11068 
   11069 	* tune/speed.h: Negate "binvert"-type inverses, as required.
   11070 
   11071 	* mpn/generic/redc_1.c: Add ASSERTs.
   11072 	* mpn/generic/redc_2.c: Likewise.
   11073 
   11074 	* mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing.
   11075 
   11076 2009-12-03  Yann Droneaud  <yann (a] droneaud.fr>
   11077 
   11078 	* acinclude.m4 ([long long reliability test 1]): Add a "static" for C99
   11079 	inline semantics compatibility.
   11080 
   11081 2009-12-03  Torbjorn Granlund  <tege (a] gmplib.org>
   11082 
   11083 	* configure.in: Move intptr_t test into common AC_CHECK_TYPES.
   11084 
   11085 	* mpn/generic/gcdext.c: Add a TMP_FREE.
   11086 
   11087 2009-12-03  Niels Mller  <nisse (a] lysator.liu.se>
   11088 
   11089 	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
   11090 	Added various masking tricks.
   11091 
   11092 	* mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
   11093 	Reimplemented binary gcdext, with proper canonicalization.
   11094 
   11095 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0
   11096 	from mpn_gcdext_1.
   11097 	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b,
   11098 	assertions fixed accordingly.
   11099 
   11100 2009-12-03  Torbjorn Granlund  <tege (a] gmplib.org>
   11101 
   11102 	* tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD.  Rewrite
   11103 	DC_DIV_QR_THRESHOLD tuning code.
   11104 	(tune_dc_div): Rewrite.
   11105 	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro.
   11106 	* tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
   11107 	speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions.
   11108 	* gmp-impl.h: Provide declarations for corresponding threshold vars.
   11109 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c.
   11110 
   11111 	* tune/tuneup.c (tune_binvert): Up max_size.
   11112 
   11113 2009-12-02  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11114 
   11115 	* tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n.
   11116 	* tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions.
   11117 	(refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n.
   11118 	* tests/tests.h: Declare new functions.
   11119 
   11120 2009-12-03  Niels Mller  <nisse (a] lysator.liu.se>
   11121 
   11122 	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step):
   11123 	Select the right cofactor in the cases A == B or A == 2B.
   11124 
   11125 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted
   11126 	handling of ap[0] == 0 and bp[0] == 0; these cases don't happen.
   11127 	Select the right cofactor in the case ap[0] == bp[0].
   11128 	* mpn/generic/gcdext.c (mpn_gcdext): Analogous changes.
   11129 
   11130 2009-12-02  Niels Mller  <nisse (a] lysator.liu.se>
   11131 
   11132 	* gmp-h.in (mpn_gcdext_1): Updated prototype.
   11133 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
   11134 	signed cofactors from gcdext_1.
   11135 	* mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm,
   11136 	and return signed cofactors.
   11137 
   11138 2009-12-02  Torbjorn Granlund  <tege (a] gmplib.org>
   11139 
   11140 	* doc/gmp.texi (Low-level Functions): Document mpn_sqr_n.
   11141 
   11142 	* tune/speed.c (routine): Add mpn_binvert.
   11143 
   11144 	* tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD.
   11145 	(tune_binvert): New function.
   11146 	* tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro.
   11147 	* tune/common.c (speed_mpn_binvert): New function.
   11148 	* gmp-impl.h: Provide declarations for corresponding threshold var.
   11149 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c.
   11150 
   11151 	* tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD.
   11152 	(tune_dc_bdiv): New function.
   11153 	(tune_dc_div): New name for tune_dc.
   11154 	* tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR,
   11155 	SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros.
   11156 	* tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr,
   11157 	speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions.
   11158 	* gmp-impl.h: Provide declarations for corresponding threshold vars.
   11159 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and
   11160 	dcpi1_bdiv_q.c.
   11161 
   11162 2009-12-01  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11163 
   11164 	* mpn/generic/toom53_mul.c: Removed double computation of vinf.
   11165 
   11166 	* mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n.
   11167 	* mpn/asm-defs.m4 (define_mpn): Add rsblsh_n.
   11168 	* gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling.
   11169 
   11170 	* mpn/generic/fib2_ui.c: Reduce the amount of temporary storage.
   11171 	Use mpn_rsblsh_n.
   11172 
   11173 2009-12-01  Torbjorn Granlund  <tege (a] gmplib.org>
   11174 
   11175 	* mpn/generic/redc_n.c: Rework temp allocation.
   11176 
   11177 	* mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also
   11178 	to this function.
   11179 
   11180 	* mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right.
   11181 	Misc cleanups.
   11182 
   11183 	* tune/speed.c (routine): Fix typo in last change.
   11184 	Add mpn_redc_2.
   11185 
   11186 	* tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly.
   11187 
   11188 2009-12-01  Niels Mller  <nisse (a] lysator.liu.se>
   11189 
   11190 	* tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n.
   11191 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro.
   11192 	(speed_mpn_toom42_mul): Declare function.
   11193 	* tune/common.c (speed_mpn_toom42_mul): New function.
   11194 	* gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant.
   11195 
   11196 2009-11-30  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11197 
   11198 	* mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n.
   11199 
   11200 2009-11-29  Torbjorn Granlund  <tege (a] gmplib.org>
   11201 
   11202 	* mpn/x86_64/pentium4/gmp-mparam.h
   11203 	(HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef.
   11204 
   11205 	* Makefile.am (EXTRA_DIST): Remove macos.
   11206 
   11207 2009-11-28  Torbjorn Granlund  <tege (a] gmplib.org>
   11208 
   11209 	* tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning.
   11210 
   11211 	* mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting
   11212 	to allow configure.in parse it more easily.  Trim from 120 to 80.
   11213 
   11214 2009-11-28  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11215 
   11216 	* mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects
   11217 	a bug affecting previous version.
   11218 
   11219 2009-11-28  Torbjorn Granlund  <tege (a] gmplib.org>
   11220 
   11221 	* configure.in: Handle atom also in 32-bit mode.
   11222 	* mpn/x86/atom/gmp-mparam.h: New file.
   11223 
   11224 	* gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default.
   11225 
   11226 	* mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n.
   11227 
   11228 	* Use TMP_ALLOC_LIMBS consistently.
   11229 	* Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS.
   11230 
   11231 	* macos: Remove entire directory.
   11232 
   11233 2009-11-27  Torbjorn Granlund  <tege (a] gmplib.org>
   11234 
   11235 	* mpn/x86_64/corei/gmp-mparam.h: New file.
   11236 	* mpn/x86_64/core2/gmp-mparam.h: Now for just core2.
   11237 	* mpn/powerpc64/mode64/p3/gmp-mparam.h: New file.
   11238 	* mpn/powerpc64/mode64/p4/gmp-mparam.h: New file.
   11239 	* mpn/powerpc64/mode64/p5/gmp-mparam.h: New file.
   11240 
   11241 	* config.guess: Return "corei" for core i7 and core i5.
   11242 	* config.sub: Recognise "corei".
   11243 	* acinclude.m4 (X86_64_PATTERN): Add corei.
   11244 	* configure.in (powerpc): Set up more CPU-specific paths.
   11245 	(x86): Handle corei.
   11246 
   11247 	* mpz/powm.c: Allow input operand overlap also when exponent = 1.
   11248 	Misc cleanups.
   11249 
   11250 2009-11-26  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11251 
   11252 	* tests/mpn/t-mulmod_bnm1.c: New test file.
   11253 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1.
   11254 
   11255 	* mpn/generic/mullow_n.c: Comments on Mulders' trick implementation.
   11256 
   11257 2009-11-26  Torbjorn Granlund  <tege (a] gmplib.org>
   11258 
   11259 	* mpn/generic/powm.c: Make comments reflect current code state.
   11260 
   11261 	* tests/devel/try.c: Make mpn_mullow_n testing actually work.
   11262 
   11263 2009-11-25  Torbjorn Granlund  <tege (a] gmplib.org>
   11264 
   11265 	* mpz/powm.c: Clean up unused defs.
   11266 
   11267 2009-11-24  Torbjorn Granlund  <tege (a] gmplib.org>
   11268 
   11269 	* tune/tuneup.c (tune_redc): Rewrite.
   11270 	* mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD,
   11271 	REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD.
   11272 	Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD.
   11273 	(WANT_REDC_2): Define.
   11274 	* gmp-impl.h: Corresponding changes.
   11275 
   11276 2009-11-23  Torbjorn Granlund  <tege (a] gmplib.org>
   11277 
   11278 	* mpn/generic/powm.c: Fix typo.
   11279 	Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD...
   11280 	REDC_N_THRESHOLD chain.
   11281 
   11282 2009-11-22  Torbjorn Granlund  <tege (a] gmplib.org>
   11283 
   11284 	* tune/tuneup.c (tune_mullow): Set min_size to 1.
   11285 
   11286 	* mpn/generic/powm_sec.c: Use just mpn_mul_basecase and
   11287 	mpn_sqr_basecase for multiplication and squaring.
   11288 
   11289 	* tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD.
   11290 	(tune_redc): New function.
   11291 	(tune_powm): Remove function.
   11292 	* tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New.
   11293 	* tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New.
   11294 
   11295 	* mpz/powm.c: Complete rewrite.  Use mpn_powm and mpn_powlo.
   11296 	* mpn/generic/powm.c: Rewrite.
   11297 	* mpn/generic/redc_n.c: New file.
   11298 	* configure.in (gmp_mpn_functions): Add redc_n.
   11299 	* gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define
   11300 	for tuneup.
   11301 
   11302 2009-11-21  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11303 
   11304 	* mpn/generic/mullow_n.c: Disable Mulders' trick for small operands,
   11305 	use fft for bigger ones.
   11306 	* tests/mpn/t-mullo.c: New test file.
   11307 
   11308 2009-11-22  Torbjorn Granlund  <tege (a] gmplib.org>
   11309 
   11310 	* tune/tuneup.c (tune_mullow): Rewrite.
   11311 
   11312 2009-11-21  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11313 
   11314 	* gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and
   11315 	CACHED_BELOW_THRESHOLD).
   11316 
   11317 	* mpn/generic/mullow_n.c: Use Mulders' trick.
   11318 	* tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of
   11319 	search depends on FFT tuning;
   11320 	(all): Anticipate tune_fft_{mul,sqr}.
   11321 
   11322 	* tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1.
   11323 
   11324 2009-11-19  Niels Mller  <nisse (a] lysator.liu.se>
   11325 
   11326 	* mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2)
   11327 	[HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call
   11328 	(spotted by Marco Bodrato).
   11329 	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise.
   11330 	* mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise.
   11331 
   11332 	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]:
   11333 	Fixed missing declaration.
   11334 
   11335 	* mpn/asm-defs.m4 (define_mpn): Add addlsh_n.
   11336 	* gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling.
   11337 
   11338 2009-11-19  Niels Mller  <nisse (a] lysator.liu.se>
   11339 
   11340 	* mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file.
   11341 	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2.
   11342 	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
   11343 	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
   11344 
   11345 2009-11-18  Torbjorn Granlund  <tege (a] gmplib.org>
   11346 
   11347 	* gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions.
   11348 
   11349 	* config.guess: Recognise VIA nano.
   11350 	* config.sub: Likewise.
   11351 	* configure.in: Generalise x86_64 support; recognise VIA nano.
   11352 
   11353 2009-11-16  Torbjorn Granlund  <tege (a] gmplib.org>
   11354 
   11355 	* tune/speed.c (routine): Add measurement of mpn_addlsh2_n,
   11356 	mpn_sublsh2_n, mpn_rsblsh2_n.
   11357 	* tune/common.c: Add speed routines for lsh2 functions.
   11358 
   11359 	* mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD.
   11360 
   11361 	* configure.in (gmp_mpn_functions_optional): Add *lsh_n functions.
   11362 
   11363 	* mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code
   11364 	work.
   11365 
   11366 	* mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop.
   11367 
   11368 	* configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they
   11369 	are now in gmp_mpn_functions.  Analogously move logical functions.
   11370 
   11371 2009-11-16  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11372 
   11373 	* mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo).
   11374 	* mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43).
   11375 
   11376 	* mpn/asm-defs.m4: Fix comments for op_lsh2 new functions.
   11377 	* gmp-impl.h: Likewise.
   11378 	* tests/mpz/t-fac_ui.c: Fix a comment.
   11379 
   11380 2009-11-15  Torbjorn Granlund  <tege (a] gmplib.org>
   11381 
   11382 	* mpn/x86_64/aorrlsh2_n.asm: New file.
   11383 	* configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n,
   11384 	including mulfuncs.
   11385 	* gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare.
   11386 	* mpn/asm-defs.m4: Likewise.
   11387 
   11388 	* mpn/generic/copyi.c: New file.
   11389 	* mpn/generic/copyd.c: Likewise.
   11390 	* mpn/generic/zero.c: Likewise.
   11391 	* gmp-h.in: Declare new functions.
   11392 	* configure.in (gmp_mpn_functions): Add new functions.
   11393 
   11394 2009-11-15  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11395 
   11396 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo
   11397 
   11398 	* mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation.
   11399 	* mpn/generic/toom3_sqr.c: Likewise.
   11400 
   11401 2009-11-14  Torbjorn Granlund  <tege (a] gmplib.org>
   11402 
   11403 	* mpn/generic/toom52_mul.c: Use mpn_addlsh1_n.
   11404 
   11405 	* mpn/generic/toom52_mul.c: Toggle the right flag bit in an
   11406 	HAVE_NATIVE_mpn_add_n_sub_n arm.
   11407 
   11408 	* tests/mpz/t-remove.c: New file.
   11409 
   11410 	* mpn/generic/remove.c: Major overhaul.  Add parameter 'cap'.
   11411 
   11412 	* mpn/generic/binvert.c: Fix typo in last change.
   11413 
   11414 	* mpn/generic/bdiv_qr.c: Make it actually work.  Also use passed-in
   11415 	scratch space.
   11416 
   11417 	* mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call.
   11418 
   11419 2009-11-12  Torbjorn Granlund  <tege (a] gmplib.org>
   11420 
   11421 	* mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT.
   11422 
   11423 2009-11-11  Torbjorn Granlund  <tege (a] gmplib.org>
   11424 
   11425 	* mpn/generic/binvert.c: Simplify, fix comments.
   11426 
   11427 	* tests/devel/try.c: Test mpn_invert and mpn_binvert.
   11428 
   11429 	* tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions.
   11430 	* tests/tests.h: Declare new functions.
   11431 
   11432 2009-11-10  Torbjorn Granlund  <tege (a] gmplib.org>
   11433 
   11434 	* configure.in: Supply compiler options for atom in 32-bit mode.
   11435 
   11436 	* acinclude.m4 (X86_64_PATTERN): New.
   11437 	* configure.in: Setup and use X86_64_PATTERN.
   11438 
   11439 	* mpn/x86_64/fat/fat.c: New file.
   11440 	* mpn/x86_64/fat/fat_entry.asm: New file.
   11441 	* mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat.
   11442 	* mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from
   11443 	mpn/x86/x86-defs.m4.
   11444 	* configure.in: Move down x86 fat setup code until after ABI has been
   11445 	determined; generalise to handle x86_64.
   11446 
   11447 2009-11-09  Torbjorn Granlund  <tege (a] gmplib.org>
   11448 
   11449 	* mpn/x86/fat/mod_1.c: New file.
   11450 
   11451 	* acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting.
   11452 
   11453 2009-11-08  Torbjorn Granlund  <tege (a] gmplib.org>
   11454 
   11455 	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface.  Callers
   11456 	updated.
   11457 	* mpn/generic/logops_n.c: New file.
   11458 	* doc/gmp.texi (Low-level Functions): Document logical mpn functions.
   11459 
   11460 2009-11-07  Torbjorn Granlund  <tege (a] gmplib.org>
   11461 
   11462 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new
   11463 	mpn_mulmod_bnm1 interface.
   11464 
   11465 2009-11-07  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11466 
   11467 	* mpn/generic/mulmod_bnm1.c: New interface, with size
   11468 	specified for all operands in mpn_mulmod_bnm1.
   11469 	* gmp-impl.h: Changed mpn_mulmod_bnm1 prototype.
   11470 
   11471 2009-11-05  Torbjorn Granlund  <tege (a] gmplib.org>
   11472 
   11473 	* mpn/x86/k7/gcd_1.asm: Actually use div-reduced value.
   11474 	Mnemonic cleanup.
   11475 
   11476 	* mpn/x86_64/gcd_1.asm: New file.
   11477 
   11478 2009-11-03  Torbjorn Granlund  <tege (a] gmplib.org>
   11479 
   11480 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c.
   11481 
   11482 2009-11-03  Marco Bodrato <bodrato (a] mail.dm.unipi.it>
   11483 
   11484 	* mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup.
   11485 
   11486 2009-11-02  Torbjorn Granlund  <tege (a] gmplib.org>
   11487 
   11488 	* configure.in (gmp_mpn_functions): Remove obsolete functions
   11489 	dc_divrem_n and sb_divrem_mn.
   11490 	* gmp-impl.h: Misc cleanup.
   11491 	(mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove.
   11492 	(DIV_DC_THRESHOLD): Remove.
   11493 	* mpn/generic/dc_divrem_n.c: Remove.
   11494 	* mpn/generic/sb_divrem_mn.c: Remove.
   11495 	* mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD.
   11496 
   11497 	* tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr.
   11498 	* tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn.
   11499 
   11500 	* tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c.
   11501 	(TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c.
   11502 	* tune/common.c (speed_mpn_dcpi1_div_qr_n): New function.
   11503 	Remove mpn_sb_divrem_mn related functions.
   11504 	* tune/speed.c (routine): Remove entries related to mpn_dc_divrem and
   11505 	mpn_sb_divrem.
   11506 	(routine): New entry for mpn_dc_div_qr_n.
   11507 	* tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse
   11508 	needed by pi1 calls.
   11509 	(SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove.
   11510 	* tune/tuneup.c (tune_sb_preinv): Remove.
   11511 	(tune_dc): Update to measure DC_DIV_QR_THRESHOLD.
   11512 
   11513 	* mpn/generic/sb_divappr_q.c: Remove.
   11514 
   11515 2009-11-01  Torbjorn Granlund  <tege (a] gmplib.org>
   11516 
   11517 	* gmp-impl.h: Misc minor cleanups.
   11518 
   11519 2009-10-31  Torbjorn Granlund  <tege (a] gmplib.org>
   11520 
   11521 	* gmp-impl.h (toom itch functions): Simplify, make some into macros.
   11522 	(MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove.
   11523 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove.
   11524 	* mpn/generic/mul_n.c (mpn_sqr_n): Move from here...
   11525 	* mpn/generic/sqr_n.c: ...to this new file.
   11526 	* configure.in (gmp_mpn_functions): Add sqr_n.
   11527 
   11528 	* Globally change
   11529 	  MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD,
   11530 	  MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD,
   11531 	  SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD,
   11532 	and associated names analogously.
   11533 
   11534 2009-10-31  Niels Mller  <nisse (a] lysator.liu.se>
   11535 
   11536 	* mpn/generic/toom_interpolate_7pts.c: Changed evaluation points,
   11537 	replacing -1/2 by -2.
   11538 	* mpn/generic/toom44_mul.c: Updated to use new evaluation points,
   11539 	and use mpn_toom_eval_dgr3_pm2.
   11540 	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise.
   11541 	* mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new
   11542 	evaluation points, and use mpn_toom_eval_pm1 and
   11543 	mpn_toom_eval_pm2exp.
   11544 	* mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
   11545 
   11546 	* mpn/generic/toom_eval_pm2exp.c: New file.
   11547 	* mpn/generic/toom_eval_pm1.c: New file.
   11548 
   11549 	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
   11550 	mpn_toom_eval_dgr3_pm2.
   11551 
   11552 2009-10-30  Torbjorn Granlund  <tege (a] gmplib.org>
   11553 
   11554 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files.
   11555 
   11556 2009-10-30  Niels Mller  <nisse (a] lysator.liu.se>
   11557 
   11558 	* configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
   11559 	* gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2.
   11560 	* mpn/generic/toom_eval_dgr3_pm2.c: New file.
   11561 
   11562 2009-10-29  Niels Mller  <nisse (a] lysator.liu.se>
   11563 
   11564 	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
   11565 	mpn_toom_eval_dgr3_pm1.
   11566 	* mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise.
   11567 
   11568 2009-10-29  Torbjorn Granlund  <tege (a] gmplib.org>
   11569 
   11570 	* mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR.
   11571 
   11572 	* gmp-impl.h (mpn_mulmod_bnm1_itch): New macro.
   11573 
   11574 	* mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft.
   11575 	(mpn_mulmod_bnm1_next_size): Adopt to SS FFT.
   11576 
   11577 	* mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb.
   11578 	(mpn_mul_fft_internal): Likewise.
   11579 
   11580 	* mpn/generic/mulmod_bnm1.c: New file, by Niels Mller.
   11581 	* configure.in (gmp_mpn_functions): Add mulmod_bnm1.
   11582 	* gmp-impl.h: Add related declarations.
   11583 	* tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD.
   11584 	* tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro.
   11585 	* tune/common.c (speed_mpn_mulmod_bnm1): New function.
   11586 	* Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c.
   11587 
   11588 	* gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations.
   11589 	* tune/common.c: Remove/rename kara functions.
   11590 	* tune/speed.h: Likewise.
   11591 
   11592 	* tests/devel/try.c: Clean up usage of %p printf arguments.
   11593 
   11594 	* gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function
   11595 	names and limitations
   11596 	* tune/tuneup.c: Use updated macro names.
   11597 	* tune/speed.h: Likewise.
   11598 	* tests/devel/try.c: Test new mul/sqr functions, remove old tests.
   11599 
   11600 2009-10-29  Niels Mller  <nisse (a] lysator.liu.se>
   11601 
   11602 	* tune/speed.c: Added support for mpn_toom4_sqr.
   11603 
   11604 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro.
   11605 	(SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted.
   11606 	(SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted.
   11607 	(SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch.
   11608 
   11609 	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove
   11610 	declarations.
   11611 	(mpn_toom2_sqr_itch): Add margin for recursive calls.
   11612 
   11613 2009-10-28  Niels Mller  <nisse (a] lysator.liu.se>
   11614 
   11615 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba
   11616 	implementation.
   11617 	(mpn_kara_sqr_n): Likewise deleted.
   11618 
   11619 	* mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and
   11620 	mpn_toom3_sqr, not the old implementations.
   11621 
   11622 	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by
   11623 	mpn_toom33_mul_itch.
   11624 	(MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by
   11625 	mpn_toom3_sqr_itch.
   11626 	(mpn_toom33_mul_itch): Needs more scratch.
   11627 	(mpn_toom3_sqr_itch): Likewise.
   11628 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use
   11629 	mpn_toom33_mul_itch.
   11630 	(SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch.
   11631 	* mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch.
   11632 	(mpn_sqr_n): Use mpn_toom3_sqr_itch.
   11633 
   11634 	* mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs
   11635 	some more supplied scratch instead.
   11636 	* mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise.
   11637 
   11638 2009-10-26  Torbjorn Granlund  <tege (a] gmplib.org>
   11639 
   11640 	* gmp-impl.h (invert_pi1): Streamline, as suggested by Niels.
   11641 
   11642 2009-10-24  Torbjorn Granlund  <tege (a] gmplib.org>
   11643 
   11644 	* mpn/generic/bdiv_q.c: Update to call new functions.
   11645 	* mpn/generic/bdiv_qr.c: Likewise.
   11646 	* mpn/generic/binvert.c: Likewise.
   11647 	* mpn/generic/divexact.c: Likewise.
   11648 	* mpn/generic/divis.c: Likewise.
   11649 	* mpn/generic/perfpow.c: Likewise.
   11650 	* mpn/generic/tdiv_qr.c: Likewise.
   11651 	* mpn/generic/dcpi1_bdiv_q.c: New file.
   11652 	* mpn/generic/dcpi1_bdiv_qr.c: New file.
   11653 	* mpn/generic/dcpi1_div_q.c: New file.
   11654 	* mpn/generic/dcpi1_div_qr.c: New file.
   11655 	* mpn/generic/dcpi1_divappr_q.c: New file.
   11656 	* mpn/generic/sbpi1_bdiv_q.c: New file.
   11657 	* mpn/generic/sbpi1_bdiv_qr.c: New file.
   11658 	* mpn/generic/sbpi1_div_q.c: New file.
   11659 	* mpn/generic/sbpi1_div_qr.c: New file.
   11660 	* mpn/generic/sbpi1_divappr_q.c: New file.
   11661 	* mpn/generic/dc_bdiv_q.c: Removed.
   11662 	* mpn/generic/dc_bdiv_qr.c: Removed.
   11663 	* mpn/generic/dc_div_q.c: Removed.
   11664 	* mpn/generic/dc_div_qr.c: Removed.
   11665 	* mpn/generic/dc_divappr_q.c: Removed.
   11666 	* mpn/generic/sb_bdiv_q.c: Removed.
   11667 	* mpn/generic/sb_bdiv_qr.c: Removed.
   11668 	* mpn/generic/sb_div_q.c: Removed.
   11669 	* mpn/generic/sb_div_qr.c: Removed.
   11670 
   11671 	* configure.in (gmp_mpn_functions): Add new division functions, remove
   11672 	obsolete division functions.
   11673 
   11674 	* gmp-impl.h: Add declarations of new division functions, remove
   11675 	corresponding obsolete declarations.
   11676 	(gmp_pi1_t, gmp_pi2_t): New types.
   11677 	(invert_pi1): New macro for computing 2/1 and 3/2 inverses.
   11678 
   11679 2009-10-23  Niels Mller  <nisse (a] lysator.liu.se>
   11680 
   11681 	* gmp-impl.h (mpn_toom62_mul_itch): New function.
   11682 
   11683 	* tests/mpn/t-toom53.c: New test program.
   11684 	* tests/mpn/t-toom62.c: New test program.
   11685 
   11686 2009-10-23  Torbjorn Granlund  <tege (a] gmplib.org>
   11687 
   11688 	* mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines.
   11689 	* tests/mpf/t-get_d.c (test_denorms): New function.
   11690 
   11691 2009-10-23  Niels Mller  <nisse (a] lysator.liu.se>
   11692 
   11693 	* mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch
   11694 	space, not TMP_ALLOC. Interface change, now requires input sizes
   11695 	such that s + t >= 5.
   11696 
   11697 	* gmp-impl.h (mpn_toom52_mul_itch): New function.
   11698 
   11699 	* tests/mpn/t-toom52.c: New test program.
   11700 
   11701 2009-10-22  Torbjorn Granlund  <tege (a] gmplib.org>
   11702 
   11703 	* mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease.
   11704 
   11705 2009-10-22  Niels Mller  <nisse (a] lysator.liu.se>
   11706 
   11707 	* tests/mpn/t-toom44.c: New test program.
   11708 	* tests/mpn/t-toom33.c: New test program.
   11709 
   11710 	* tests/mpn/toom-shared.h (main): Reorganized input generation.
   11711 	Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN.
   11712 	Updated existing toom test programs.
   11713 
   11714 2009-10-22  Torbjorn Granlund  <tege (a] gmplib.org>
   11715 
   11716 	* tests/devel/try.c: Fix typos in last change.
   11717 
   11718 2009-10-21  Torbjorn Granlund  <tege (a] gmplib.org>
   11719 
   11720 	* mpn/asm-defs.m4 (define_mpn): Add mullow_basecase.
   11721 
   11722 	* tests/devel/try.c: Test mpn_mullow_n.
   11723 
   11724 	* tests/refmpn.c (refmpn_mullow_n): New function.
   11725 	* tests/tests.h: Declare it.
   11726 
   11727 2009-10-21  Niels Mller  <nisse (a] lysator.liu.se>
   11728 
   11729 	* tests/mpn/toom-shared.h (main): Check for writes outside of the
   11730 	product or scratch area.
   11731 
   11732 	* gmp-impl.h (mpn_toom43_mul_itch): New function.
   11733 
   11734 	* mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch
   11735 	space, not TMP_ALLOC. Interface change, now requires input sizes
   11736 	such that s + t >= 5.
   11737 
   11738 2009-10-20  Niels Mller  <nisse (a] lysator.liu.se>
   11739 
   11740 	* tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be
   11741 	overridden by users. Needed by t-toom42 and t-toom43.
   11742 
   11743 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32,
   11744 	t-toom42 and t-toom43.
   11745 	* tests/mpn/t-toom43.c: New test program.
   11746 	* tests/mpn/t-toom42.c: New test program.
   11747 	* tests/mpn/t-toom32.c: New test program.
   11748 
   11749 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22.
   11750 	* tests/mpn/t-toom22.c: New test file.
   11751 	* tests/mpn/toom-shared.h: New file. Test framework for Toom
   11752 	functions.
   11753 
   11754 2009-10-14  Niels Mller  <nisse (a] lysator.liu.se>
   11755 
   11756 	* mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new
   11757 	mpn_matrix22_mul_strassen, the scratch need is reduced by 16%.
   11758 
   11759 2009-10-14  Marco Bodrato  <bodrato (a] mail.dm.unipi.it>
   11760 
   11761 	* mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New
   11762 	Strassen-like algorithm, to reduce the amount of temporary
   11763 	storage.
   11764 	(mpn_matrix22_mul_itch): Updated to reflect the reduced storage
   11765 	need.
   11766 
   11767 2009-10-03  Torbjorn Granlund  <tege (a] gmplib.org>
   11768 
   11769 	* Rename mpn_addsub_n to mpn_add_n_sub_n.
   11770 
   11771 2009-10-01  Torbjorn Granlund  <tege (a] gmplib.org>
   11772 
   11773 	* mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of
   11774 	old functions.
   11775 
   11776 	* mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions.
   11777 
   11778 	* mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from
   11779 	TOOM22_MUL_N_REC.  Unconditionally call the generic mpn_mul_n.
   11780 	* mpn/generic/toom32_mul.c: Analogous changes.
   11781 
   11782 2009-09-28  Niels Mller  <nisse (a] lysator.liu.se>
   11783 
   11784 	* mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the
   11785 	Newton iteration.
   11786 
   11787 2009-09-27  Niels Mller  <nisse (a] lysator.liu.se>
   11788 
   11789 	* mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1
   11790 	arguments to add, sub and shift.
   11791 
   11792 2009-09-25  Niels Mller  <nisse (a] lysator.liu.se>
   11793 
   11794 	* mpn/x86/invert_limb.asm: New file.
   11795 
   11796 2009-09-24  Torbjorn Granlund  <tege (a] gmplib.org>
   11797 
   11798 	* mpn/generic/toom33_mul.c: Use new toom functions for all recursive
   11799 	products.
   11800 	* mpn/generic/toom3_sqr.c: Likewise.
   11801 	* mpn/generic/toom44_mul.c: Likewise.
   11802 	* mpn/generic/toom4_sqr.c: Likewise.
   11803 
   11804 	* mpn/generic/add_n.c: Relax operand overlap ASSERTs.
   11805 	* mpn/generic/sub_n.c: Likewise.
   11806 
   11807 2009-09-15  Torbjorn Granlund  <tege (a] gmplib.org>
   11808 
   11809 	Suggested by Uwe Mueller:
   11810 	* printf/doprnt.c: Use "%ld" for exponent printing.
   11811 	* printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long".
   11812 
   11813 2009-09-14  Torbjorn Granlund  <tege (a] gmplib.org>
   11814 
   11815 	* configure.in: Handle mingw64.
   11816 	* gmp-impl.h (gmp_intptr_t): Declare.
   11817 	* tests/amd64check.c (calling_conventions_values): Use CNST_LIMB.
   11818 	* tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p".
   11819 	* tests/misc.c: Use gmp_intptr_t.
   11820 	* tests/mpq/t-get_str.c: Print pointers using C90 "%p".
   11821 
   11822 2009-08-12  Torbjorn Granlund  <tege (a] gmplib.org>
   11823 
   11824 	* mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code.
   11825 
   11826 	* mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p.
   11827 
   11828 	* mpn/arm/invert_limb.asm: Complete rewrite.
   11829 
   11830 	* longlong.h: Document LONGLONG_STANDALONE and NO_ASM.
   11831 
   11832 2009-08-05  Torbjorn Granlund  <tege (a] gmplib.org>
   11833 
   11834 	* tests/mpz/dive_ui.c (check_random): Avoid zero divisors.
   11835 
   11836 2009-07-31  Torbjorn Granlund  <tege (a] gmplib.org>
   11837 
   11838 	* mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility
   11839 	pointed out by Per Austrin).
   11840 	(mpn_mod_1_1p): Renamed from mpn_mod_1s_1p.
   11841 	(mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps.
   11842 	*mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for
   11843 	any modulus.
   11844 
   11845 2009-07-28  Torbjorn Granlund  <tege (a] gmplib.org>
   11846 
   11847 	* configure.in: Pass arch for x86 also in 64-bit mode.
   11848 
   11849 2009-07-26  Torbjorn Granlund  <tege (a] swox.com>
   11850 
   11851 	* config.guess (_cpuid): Recognise more Intel "Core" processors.
   11852 
   11853 2009-07-13  Torbjorn Granlund  <tege (a] gmplib.org>
   11854 
   11855 	* mpf/eq.c: Rewrite.
   11856 
   11857 	* tests/mpf/t-eq.c: New test.
   11858 
   11859 2009-07-06  Torbjorn Granlund  <tege (a] gmplib.org>
   11860 
   11861 	* gmp-impl.h (__mp_bases): Remove this alias.
   11862 
   11863 	* mpf/get_str.c: Use less overflow prone expression for computing limb
   11864 	allocation.
   11865 	* mpz/inp_str.c: Likewise.
   11866 	* mpf/set_str.c: Likewise.
   11867 	* mpz/set_str.c: Likewise.
   11868 
   11869 2009-07-03  Niels Mller  <nisse (a] lysator.liu.se>
   11870 
   11871 	* mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce
   11872 	the number of branches in the loop.
   11873 
   11874 2009-06-28  Torbjorn Granlund  <tege (a] gmplib.org>
   11875 
   11876 	* demos/factorize.c (factor_using_pollard_rho): Rewrite.
   11877 
   11878 	* mpz/clears.c: New file.
   11879 	* mpq/clears.c: New file.
   11880 	* mpf/clears.c: New file.
   11881 	* gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare.
   11882 	* mpz/Makefile.am: Add clears.c.
   11883 	* mpq/Makefile.am: Add clears.c.
   11884 	* mpf/Makefile.am: Add clears.c.
   11885 	* Makefile.am: Add these also to respective OBJECTS variables.
   11886 	* doc/gmp.texi: Document inits function and clears functions.
   11887 
   11888 2009-06-20  Torbjorn Granlund  <tege (a] gmplib.org>
   11889 
   11890 	* mp-h.in (mp_bitcnt_t): Declare here too.
   11891 
   11892 2009-06-19  Torbjorn Granlund  <tege (a] gmplib.org>
   11893 
   11894 	* mpq/inits.c: New file.
   11895 	* mpf/inits.c: New file.
   11896 	* gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare .
   11897 
   11898 	* mpn/generic/remove.c: New file.
   11899 	* configure.in (gmp_mpn_functions): Add remove.
   11900 	* gmp-impl.h (mpn_remove): Declare.
   11901 
   11902 	* gmp-h.in (mp_bitcnt_t): New basic type.
   11903 	* mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition.
   11904 
   11905 	* mpn/generic/bdiv_qr.c: Make it actually work.
   11906 
   11907 	* mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and
   11908 	to need fewer registers.
   11909 
   11910 2009-06-17  Torbjorn Granlund  <tege (a] gmplib.org>
   11911 
   11912 	* mpn/x86_64/rsh1aors_n.asm: New file.
   11913 	* mpn/x86_64/rsh1add_n.asm: Remove.
   11914 	* mpn/x86_64/rsh1sub_n.asm: Remove.
   11915 
   11916 	* mpz/inits.c: New file.
   11917 
   11918 	* gen-trialdivtab.c: Wrap limb constants into CNST_LIMB.
   11919 
   11920 	With Martin Boij:
   11921 	* mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being
   11922 	recursive to being iterative.
   11923 	(mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer
   11924 	overrun.  Trim allocation of next and prev.  Never create oversize
   11925 	products in the multiplicity binary search.
   11926 
   11927 	* mpn/generic/dc_div_q.c: Add missing TMP_FREE.
   11928 
   11929 2009-06-16  Torbjorn Granlund  <tege (a] gmplib.org>
   11930 
   11931 	Revert:
   11932 	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
   11933 
   11934 2009-06-16  Martin Boij  <mboij (a] kth.se>
   11935 
   11936 	* mpn/generic/perfpow.c (logs): Use more conservative table.
   11937 
   11938 2009-06-15  Torbjorn Granlund  <tege (a] gmplib.org>
   11939 
   11940 	* mpn/pa64/aors_n.asm: New file.
   11941 	* mpn/pa64/add_n.asm: Remove.
   11942 	* mpn/pa64/sub_n.asm: Remove.
   11943 
   11944 	* mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
   11945 
   11946 2009-06-14  Torbjorn Granlund  <tege (a] gmplib.org>
   11947 
   11948 	* mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn.
   11949 	* mpn/x86_64/dive_1.asm: Likewise.
   11950 
   11951 	* mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not
   11952 	mpn_divexact_itch for 2-adic division.
   11953 	(all functions): Micro optimise.
   11954 
   11955 	* Makefile.am (libmp_la_SOURCES): Add nextprime.c.
   11956 
   11957 2009-06-13  Torbjorn Granlund  <tege (a] gmplib.org>
   11958 
   11959 	* gmp-h.in (mpn_perfect_power_p): Declare.
   11960 	* configure.in (gmp_mpn_functions): Add perfpow.
   11961 	* mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p.
   11962 
   11963 2009-06-13  Martin Boij  <mboij (a] kth.se>
   11964 
   11965 	* mpn/generic/perfpow.c: New file.
   11966 	* tests/mpz/t-perfpow.c: Rewrite.
   11967 
   11968 2009-06-12  Torbjorn Granlund  <tege (a] gmplib.org>
   11969 
   11970 	* mpn/generic/bdiv_qr.c: New file.
   11971 	* mpn/generic/bdiv_q.c: New file.
   11972 	* configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q.
   11973 	* gmp-impl.h: Declare new functions.
   11974 
   11975 	* nextprime.c: New file.
   11976 	* gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime):
   11977 	Declare.
   11978 	* Makefile.am (libgmp_la_SOURCES): Add nextprime.c.
   11979 
   11980 2009-06-11  Torbjorn Granlund  <tege (a] gmplib.org>
   11981 
   11982 	* mpn/generic/trialdiv.c: New file.
   11983 	* gen-trialdivtab.c: New file.
   11984 	* configure.in (gmp_mpn_functions): Add trialdiv.
   11985 	* gmp-impl.h (mpn_trialdiv): Declare
   11986 	* Makefile.am: Add rules for gen-trialdivtab and trialdiv.
   11987 
   11988 	* longlong.h (arm count_leading_zeros): Define for armv5.
   11989 
   11990 	* gmp-impl.h: Move down toom itch functions to after we've #defined
   11991 	all THRESHOLDs.
   11992 
   11993 	* dumbmp.c (isprime): Replace with slightly less inefficient code.
   11994 	(mpz_tdiv_r): New function.
   11995 
   11996 2009-06-11  Niels Mller  <nisse (a] lysator.liu.se>
   11997 
   11998 	Support for mpn_toom32_mul in speed:
   11999 	* tune/speed.c (routine): Added mpn_toom32_mul.
   12000 	* tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro.
   12001 	* tune/common.c (speed_mpn_toom32_mul): New function.
   12002 
   12003 	* gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed
   12004 	for the calls to mpn_toom22_mul.
   12005 	(ABOVE_THRESHOLD): Moved this and related macros so it can be used
   12006 	by mpn_toom32_mul_itch.
   12007 	(mpn_toom22_mul_itch): Count scratch space for recursive calls.
   12008 
   12009 2009-06-11  Torbjorn Granlund  <tege (a] gmplib.org>
   12010 
   12011 	* mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful
   12012 	also for k6 and non-sse p6.
   12013 
   12014 2009-06-10  Torbjorn Granlund  <tege (a] gmplib.org>
   12015 
   12016 	* mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks.
   12017 
   12018 	* mpn/x86/mod_1.asm: Remove obsolete file.
   12019 	* mpn/x86/k7/mmx/mod_1.asm: Likewise.
   12020 	* mpn/x86/pentium4/sse2/mod_1.asm: Likewise.
   12021 	* mpn/x86/p6/mod_1.asm: Likewise.
   12022 	* mpn/x86/pentium/mod_1.asm: Likewise.
   12023 
   12024 2009-06-08  Niels Mller  <nisse (a] lysator.liu.se>
   12025 
   12026 	* mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce
   12027 	the need for scratch space, and get rid of TMP_ALLOC. Also use
   12028 	mpn_toom_eval_dgr3_pm1.
   12029 
   12030 	* mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts):
   12031 	Stricter ASSERTs based on maximum size of polynomial coefficients.
   12032 	Improved comments on the signedness of intermediate values.
   12033 
   12034 2009-06-07  Torbjorn Granlund  <tege (a] gmplib.org>
   12035 
   12036 	* mpn/generic/toom2_sqr.c: Make it actually work.
   12037 
   12038 	* mpn/generic/toom3_sqr.c: Reduce local scratch space.
   12039 
   12040 2009-06-05  Torbjorn Granlund  <tege (a] gmplib.org>
   12041 
   12042 	* mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200.
   12043 	(MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide
   12044 	FFT_TABLE2_SIZE if they are defined.
   12045 	(struct nk): Use bit field.
   12046 
   12047 2009-06-05  Niels Mller  <nisse (a] lysator.liu.se>
   12048 
   12049 	* mpn/generic/toom44_mul.c (mpn_toom44_mult): Use
   12050 	mpn_toom_eval_dgr3_pm1.
   12051 
   12052 	* mpn/generic/toom_eval_dgr3_pm1.c: New file.
   12053 
   12054 	* mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts):
   12055 	Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U.
   12056 
   12057 	* mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to
   12058 	reduce the need for scratch space, and get rid of TMP_ALLOC.
   12059 
   12060 2009-06-05  Torbjorn Granlund  <tege (a] gmplib.org>
   12061 
   12062 	* mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to
   12063 	mpn_bdiv_q_1_pi1, if the latter is NATIVE.
   12064 
   12065 2009-06-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12066 
   12067 	* mpn/x86_64/bdiv_q_1.asm: New file.
   12068 
   12069 	* configure.in (HAVE_NATIVE): Add recently added functions.
   12070 	(GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n.
   12071 
   12072 	* tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1):
   12073 	New functions.
   12074 	* tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
   12075 	* tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define.
   12076 	(SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define.
   12077 
   12078 	* configure.in (gmp_mpn_functions): Add bdiv_q_1.
   12079 	* mpn/generic/bdiv_q_1.c: New file.
   12080 	* mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
   12081 	* gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare.
   12082 
   12083 	* mpn/x86_64/lshift.asm: Cleanup.
   12084 	* mpn/x86_64/rshift.asm: Cleanup.
   12085 
   12086 	* mpn/x86_64/addlsh1_n.asm: Removed.
   12087 	* mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle
   12088 	addlsh1_n and rsblsh1_n functionality.
   12089 
   12090 	* tests/refmpn.c (refmpn_rsblsh1_n): New function.
   12091 	* tests/devel/try.c: Test mpn_rsblsh1_n.
   12092 	* tests/tests.h: Declare refmpn_rsblsh1_n.
   12093 	* tune/common.c (speed_mpn_rsblsh1_n): New function.
   12094 	* tune/speed.c (routine): Add mpn_rsblsh1_n.
   12095 	* tune/speed.h (mpn_rsblsh1_n): Declare.
   12096 
   12097 	* configure.in (gmp_mpn_functions_optional): Add rsblsh1_n.
   12098 	(GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc.
   12099 	* mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n.
   12100 	* gmp-impl.h (mpn_rsblsh1_n): Declare.
   12101 
   12102 	* mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC.
   12103 
   12104 2009-06-03  Marco Bodrato  <bodrato (a] mail.dm.unipi.it>
   12105 
   12106 	* mpn/generic/toom43_mul.c: New file.
   12107 	* mpn/generic/toom52_mul.c: New file.
   12108 	* mpn/generic/toom_interpolate_6pts.c: New file.
   12109 
   12110 2009-06-03  Torbjorn Granlund  <tege (a] gmplib.org>
   12111 
   12112 	* configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and
   12113 	toom_interpolate_6pts, but also some previously forgotten functions.
   12114 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise.
   12115 	* gmp-impl.h: Declare new functions. Sort toom function declarations.
   12116 
   12117 	* gmp-impl.h: Rename  toom4_* flags enum to toom7_*.  Relevant C files
   12118 	updated.
   12119 
   12120 	* mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove.
   12121 
   12122 2009-06-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12123 
   12124 	* demos/factorize.c: Add -q command line option.
   12125 
   12126 2009-06-02  Marco Bodrato  <bodrato (a] mail.dm.unipi.it>
   12127 
   12128 	* mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed
   12129 	improvements.
   12130 
   12131 	* mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely
   12132 	do away with explicit scratch space.
   12133 	* gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype.
   12134 
   12135 	* mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n):
   12136 	Update toom_interpolate_5pts call without scratch space parameter.
   12137 	* mpn/generic/toom3_sqr.c: Likewise.
   12138 	* mpn/generic/toom42_mul.c: Likewise.
   12139 	* mpn/generic/toom33_mul.c: Likewise.
   12140 
   12141 	* mpn/generic/toom33_mul.c: Reduce local scratch space.
   12142 	* mpn/generic/toom32_mul.c: Rewrite to not use local scratch space.
   12143 
   12144 2009-06-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12145 
   12146 	* mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for
   12147 	oo point.
   12148 
   12149 2009-06-01  Torbjorn Granlund  <tege (a] gmplib.org>
   12150 
   12151 	* mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and
   12152 	toom44 slicing code.
   12153 
   12154 	* mpz/remove.c: Correctly handle multiplicity that does not fit an int.
   12155 
   12156 	* Makefile.am (dist-hook): Check library version consistency.
   12157 
   12158 	* mpn/generic/mul.c: Rewrite.
   12159 
   12160 2009-05-29  Torbjorn Granlund  <tege (a] gmplib.org>
   12161 
   12162 	* tests/mpz/t-divis.c (check_random): Create huge test operands.
   12163 
   12164 	* mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC
   12165 	call, not multiple TMP_SALLOC.
   12166 	* mpn/generic/toom4_sqr.c: Likewise.
   12167 
   12168 	* gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code.
   12169 
   12170 	* mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT.
   12171 
   12172 	* mpn/generic/divis.c: Rewrite.
   12173 
   12174 	* gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t.
   12175 	(mpn_toom2_sqr_itch): Simplify.
   12176 
   12177 	* mpn/generic/mu_bdiv_qr.c: Implement properly.
   12178 
   12179 2009-05-27  Torbjorn Granlund  <tege (a] gmplib.org>
   12180 
   12181 	* mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function.
   12182 	* mpn/generic/mod_1_2.c: Likewise.
   12183 	* mpn/generic/mod_1_3.c: Likewise.
   12184 	* mpn/generic/mod_1_4.c: Likewise.
   12185 
   12186 	* tune: Add speed measuring of toom22, toom33, and toom44.
   12187 
   12188 	* mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient
   12189 	product better.
   12190 
   12191 2009-05-26  Torbjorn Granlund  <tege (a] gmplib.org>
   12192 
   12193 	* tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for
   12194 	better huge-operands performance.
   12195 
   12196 2009-05-24  Torbjorn Granlund  <tege (a] gmplib.org>
   12197 
   12198 	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$".
   12199 
   12200 2009-05-23  Torbjorn Granlund  <tege (a] gmplib.org>
   12201 
   12202 	* gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p):
   12203 	Declare using __GMP_ATTRIBUTE_PURE.
   12204 
   12205 	* tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N
   12206 	functions.
   12207 	(one): Remove redundant size loop exit condition.
   12208 
   12209 2009-05-20  Torbjorn Granlund  <tege (a] gmplib.org>
   12210 
   12211 	* mpn/x86/pentium4/sse2/mod_1_4.asm: New file.
   12212 	* mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code).
   12213 
   12214 2009-05-18  Torbjorn Granlund  <tege (a] gmplib.org>
   12215 
   12216 	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4.
   12217 	(__GNU_MP_VERSION_PATCHLEVEL): Set to -1.
   12218 
   12219 	* mpn/x86_64/mod_1_4.asm: New file.
   12220 
   12221 	* mpn/asm-defs.m4: Correct names for mod_1_N functions.
   12222 	Add defines for corresponding cps functions.
   12223 
   12224 	* mpn/generic/mod_1_2.c: Support any sizes > 1.
   12225 	* mpn/generic/mod_1_3.c: Likewise.
   12226 	* mpn/generic/mod_1_4.c: Likewise.
   12227 
   12228 2009-05-12  Torbjorn Granlund  <tege (a] gmplib.org>
   12229 
   12230 	* Version 4.3.1 released.
   12231 
   12232 2009-05-11  Torbjorn Granlund  <tege (a] gmplib.org>
   12233 
   12234 	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
   12235 
   12236 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
   12237 	Bump version info.
   12238 
   12239 2009-05-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12240 
   12241 	* tests/mpz: Add MPZ_CHECK_FORMAT to many tests.
   12242 
   12243 2009-05-07  Torbjorn Granlund  <tege (a] gmplib.org>
   12244 
   12245 	* mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is
   12246 	defined in x86-defs.m4.
   12247 
   12248 2009-05-06  Torbjorn Granlund  <tege (a] gmplib.org>
   12249 
   12250 	* mpn/x86/p6/aors_n.asm: Use L() for labels.
   12251 	* mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
   12252 	* mpn/x86/pentium4/sse2/mul_1.asm: Likewise.
   12253 	* mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise.
   12254 	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
   12255 	* mpn/x86_64/lshift.asm: Likewise.
   12256 	* mpn/x86_64/rshift.asm: Likewise.
   12257 
   12258 	* tests/cxx/t-locale.cc (point_string): Declare as extern "C" to
   12259 	placate compilers that mangle variable names.
   12260 
   12261 2009-05-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12262 
   12263 	* tests/mpz/t-gcd.c: Generate operands that are multiple of each other.
   12264 
   12265 2009-05-01  Torbjorn Granlund  <tege (a] gmplib.org>
   12266 
   12267 	* gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems.
   12268 	(gmp_randinit_set): Add missing __GMP_DECLSPEC.
   12269 
   12270 2009-04-28  Torbjorn Granlund  <tege (a] gmplib.org>
   12271 
   12272 	* mpn/generic/neg_n.c: New file.
   12273 	* configure.in (gmp_mpn_functions): Add neg_n.
   12274 	* mpn/asm-defs.m4 (define_mpn): Add neg_n.
   12275 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c.
   12276 	* gmp-h.in: Handle mpn_neg_n properly.
   12277 
   12278 	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify.
   12279 
   12280 	* mpn/generic/gcdext.c: Change some MPN_NORMALIZE to
   12281 	MPN_NORMALIZE_NOT_ZERO.
   12282 	* mpn/generic/gcdext_lehmer.c: Likewise.
   12283 	Add a MPN_NORMALIZE_NOT_ZERO.
   12284 
   12285 	* mpn/generic/binvert.c: Remove own mpn_neg_n.
   12286 
   12287 	* tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls.
   12288 
   12289 2009-04-27  Torbjorn Granlund  <tege (a] gmplib.org>
   12290 
   12291 	* mpn/Makefile.am (TARG_DIST): Add minithres.
   12292 
   12293 	* mpn/generic/bdiv_dbm1c.c: Handle nails.
   12294 
   12295 2009-04-26  Torbjorn Granlund  <tege (a] gmplib.org>
   12296 
   12297 	* config.guess: Recognise more POWER processor types.
   12298 
   12299 2009-04-25  Torbjorn Granlund  <tege (a] gmplib.org>
   12300 
   12301 	* mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug.
   12302 	* mpn/x86/darwin.m4: Define symbol "DARWIN".
   12303 
   12304 2009-04-19  Torbjorn Granlund  <tege (a] gmplib.org>
   12305 
   12306 	* mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort().
   12307 	* mpn/generic/powm_sec.c: Likewise.
   12308 
   12309 	* mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define.  Add dummy variants
   12310 	for other m4 files.
   12311 	* mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC.
   12312 	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
   12313 
   12314 2009-04-16  Torbjorn Granlund  <tege (a] gmplib.org>
   12315 
   12316 	* mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define.
   12317 	* mpn/x86_64/darwin.m4: Likewise.
   12318 	* mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT.
   12319 
   12320 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
   12321 	Remove an unused variable.
   12322 
   12323 	* mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right.
   12324 
   12325 2009-04-14  Torbjorn Granlund  <tege (a] gmplib.org>
   12326 
   12327 	* Version 4.3.0 released.
   12328 
   12329 	* scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy
   12330 	argument.
   12331 	* scanf/sscanffuns.c (scan): Disable vsscanf variant for now.
   12332 
   12333 2009-04-13  Torbjorn Granlund  <tege (a] gmplib.org>
   12334 
   12335 	* scanf/sscanffuns.c (scan): Rewrite to use stdarg.
   12336 
   12337 	* tests/mpz/t-root.c: Rewrite.  Add unconditional gcc 4.3.2 tests.
   12338 
   12339 2009-04-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12340 
   12341 	* mpn/generic/powm.c: New file.
   12342 	* mpn/generic/powlo.c: New file.
   12343 	* mpn/generic/powm_sec.c: New file.
   12344 	* configure.in (gmp_mpn_functions): List new functions.
   12345 
   12346 2009-04-08  Torbjorn Granlund  <tege (a] gmplib.org>
   12347 
   12348 	* mpz/urandomm.c: Amend last fix.
   12349 
   12350 2009-04-06  Torbjorn Granlund  <tege (a] gmplib.org>
   12351 
   12352 	* configure.in: Support Sun cc for x86_64.
   12353 
   12354 	* mpz/urandomm.c: Handle operand overlap.
   12355 
   12356 2009-03-11  Torbjorn Granlund  <tege (a] gmplib.org>
   12357 
   12358 	* configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that
   12359 	GCC now passes the proper options.
   12360 
   12361 2009-03-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12362 
   12363 	* mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised
   12364 	case.
   12365 
   12366 2009-03-05  Torbjorn Granlund  <tege (a] gmplib.org>
   12367 
   12368 	* ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h,
   12369 	pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update.
   12370 
   12371 2009-03-03  Torbjorn Granlund  <tege (a] gmplib.org>
   12372 
   12373 	* mpn/ia64/bdiv_dbm1c.asm: Accept/return carry.
   12374 
   12375 2009-03-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12376 
   12377 	* configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris
   12378 	system compiler.
   12379 
   12380 2009-03-01  Torbjorn Granlund  <tege (a] gmplib.org>
   12381 
   12382 	* longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer
   12383 	gcc.
   12384 
   12385 2009-02-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12386 
   12387 	* mpn/generic/redc_2.c: Remove code for testing and timing.  Update
   12388 	to current FSF header.
   12389 	* mpn/generic/redc_1.c: Update to current FSF header.
   12390 
   12391 2009-01-21  Torbjorn Granlund  <tege (a] gmplib.org>
   12392 
   12393 	* mpz/powm.c (redc): Remove.
   12394 	(mpz_powm): Use mpn_redc_1 instead of redc.
   12395 
   12396 	* tests/mpz/t-powm.c: Rewrite reference code.
   12397 
   12398 2009-01-18  Torbjorn Granlund  <tege (a] gmplib.org>
   12399 
   12400 	* tests/mpz: Increase reps for many tests.
   12401 
   12402 	* mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of
   12403 	mpn_sub_1 (works around gcc 4.3 bugs and is also faster).
   12404 
   12405 2009-01-16  Torbjorn Granlund  <tege (a] gmplib.org>
   12406 
   12407 	* tests/tests.h: Declare refmpn_divrem_2.
   12408 
   12409 2009-01-15  Torbjorn Granlund  <tege (a] gmplib.org>
   12410 
   12411 	* mpz/perfpow.c: Add TMP_FREE before every return statement.
   12412 
   12413 	* mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE.
   12414 
   12415 	* configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2,
   12416 	the change was accidental and cause too much miscompilation.
   12417 
   12418 2009-01-14  Torbjorn Granlund  <tege (a] gmplib.org>
   12419 
   12420 	* tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when
   12421 	longlong.h specified UDIV_PREINV_ALWAYS.
   12422 
   12423 	* mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation
   12424 	divisor.
   12425 
   12426 2009-01-13  Torbjorn Granlund  <tege (a] gmplib.org>
   12427 
   12428 	* tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD,
   12429 	MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD.
   12430 
   12431 	* mpn/generic/mod_1.c: Rewrite.
   12432 	* mpn/generic/mod_1_1.c: New file.
   12433 	* mpn/generic/mod_1_2.c: New file.
   12434 	* mpn/generic/mod_1_3.c: New file.
   12435 	* mpn/generic/mod_1_4.c: New file.
   12436 	* configure.in (gmp_mpn_functions): Add mod_1_*.
   12437 	* mpn/asm-defs.m4 (define_mpn): Add mod_1_*.
   12438 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c.
   12439 	* gmp-impl.h: Declare new mpn_mod_1s_* functions and associated
   12440 	THRESHOLD macros.
   12441 	(udiv_rnd_preinv): New macro.
   12442 
   12443 2009-01-12  Torbjorn Granlund  <tege (a] gmplib.org>
   12444 
   12445 	* tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1.
   12446 
   12447 2009-01-08  Torbjorn Granlund  <tege (a] gmplib.org>
   12448 
   12449 	* tests/mpz/t-nextprime.c: New test file.
   12450 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime.
   12451 
   12452 	From Niels Mller:
   12453 	* mpz/nextprime.c: Handle large prime gaps by limiting incr.
   12454 
   12455 2009-01-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12456 
   12457 	* mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source
   12458 	pointers after reallocation.  Misc cleanup.
   12459 
   12460 	* gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N.
   12461 
   12462 	* mpn/x86/fat/diveby3.c: New file.
   12463 
   12464 2008-12-30  Niels Mller  <nisse (a] lysator.liu.se>
   12465 
   12466 	* doc/gmp.texi (Greatest Common Divisor Algorithms): Updated
   12467 	section on GCD algorithms.
   12468 
   12469 2008-12-29  Torbjorn Granlund  <tege (a] gmplib.org>
   12470 
   12471 	* doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4
   12472 	and unbalanced multiplication.
   12473 	(Radix to Binary): Add warning that text is outdated,
   12474 	(Contributors): Fix typos.
   12475 
   12476 	* mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming
   12477 	unreachable recursive functions.
   12478 	* gmp-impl.h: Update toom itch functions.
   12479 
   12480 	* mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to
   12481 	placate tuneup.
   12482 
   12483 2008-12-28  Torbjorn Granlund  <tege (a] gmplib.org>
   12484 
   12485 	* mpn/x86_64/pentium4/aors_n.asm: Tune prologue code.
   12486 
   12487 	* mpn/x86_64/pentium4/aorslsh1_n.asm: New file.
   12488 
   12489 	* mpn/x86_64/darwin.m4: Define symbol "DARWIN".
   12490 	* mpn/x86_64/invert_limb.asm: Work around darwin quirks.
   12491 
   12492 	* mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin.
   12493 
   12494 	* mpn/x86_64/invert_limb.asm: New file.
   12495 
   12496 2008-12-27  Torbjorn Granlund  <tege (a] gmplib.org>
   12497 
   12498 	* mpn/x86_64/core2/aorslsh1_n.asm: New file.
   12499 
   12500 2008-12-26  Torbjorn Granlund  <tege (a] gmplib.org>
   12501 
   12502 	* mpz/perfpow.c: Handle negative arguments properly.
   12503 	* tests/mpz/t-perfpow.c: New file.
   12504 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow.
   12505 
   12506 2008-12-23  Torbjorn Granlund  <tege (a] gmplib.org>
   12507 
   12508 	* tests/mpz/t-mul.c (dump_abort): Improve error message.
   12509 
   12510 	* gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c:
   12511 	Remove private mpn_zero_p.
   12512 
   12513 	* tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD.
   12514 	(tune_sqr): Tune for SQR_TOOM4_THRESHOLD.
   12515 
   12516 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and
   12517 	toom4_sqr.c.
   12518 
   12519 	* configure.in (gmp_mpn_functions): Toom function updates.
   12520 
   12521 	* Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c.  Function names changed
   12522 	accordingly.
   12523 
   12524 	* mpn/toomMN_mul.c: Add scratch parameter.  Do recursive multiplies
   12525 	properly.  Misc tuning.  Remove CHECK and TIMING code.
   12526 
   12527 	* mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files.
   12528 
   12529 	* gmp-impl.h (mpn_toomMN_mul_itch): Several new functions.
   12530 	(mpn_zero_p): New functions.
   12531 	Add various TOOM4/TOOM44 related parameters.
   12532 	Update mpn_toomMN_mul prototypes.
   12533 
   12534 	* mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul.  Use TMP_BALLOC
   12535 	instead of malloc.
   12536 	(mpn_sqr_n): Analogous changes.
   12537 
   12538 	* mpn/generic/mul.c: Update unbalanced toom code to pass scratch space.
   12539 
   12540 2008-12-21  Torbjorn Granlund  <tege (a] gmplib.org>
   12541 
   12542 	* mpz/nextprime.c: Add TMP_SDECL/MARK/FREE.
   12543 
   12544 2008-12-20  Torbjorn Granlund  <tege (a] gmplib.org>
   12545 
   12546 	* mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface.
   12547 	(invsqrttab): New table, remove table approx_tab.
   12548 	(mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call.
   12549 	(mpn_sqrtrem): Update mpn_sqrtrem1 call.
   12550 
   12551 2008-12-18  Torbjorn Granlund  <tege (a] gmplib.org>
   12552 
   12553 	* mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5).
   12554 	Give credit to authors.
   12555 
   12556 	* mpn/x86_64/redc_1.asm: Align stack as mandated by ABI.
   12557 
   12558 	* mpn/x86_64/divrem_2.asm: Add some comments.
   12559 
   12560 	* mpn/x86_64/darwin.m4: New file.
   12561 	* configure.in: Use x86_64/darwin.m4.
   12562 
   12563 2008-12-15  Torbjorn Granlund  <tege (a] gmplib.org>
   12564 
   12565 	* doc/projects.html: Remove GCD and division projects, update text on
   12566 	multiplication.
   12567 
   12568 	* doc/tasks.html: Add a caution about that the file is somewhat
   12569 	outdated.
   12570 
   12571 2008-12-14  Torbjorn Granlund  <tege (a] gmplib.org>
   12572 
   12573 	* mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1,
   12574 	much improved for mpn_submul_1).
   12575 	* mpn/alpha/ev6/addmul_1: File removed.
   12576 	* mpn/alpha/ev6/submul_1: File removed.
   12577 
   12578 2008-12-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12579 
   12580 	From David Harvey:
   12581 	* mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed.
   12582 
   12583 	* mpn/powerpc64/mode64/divrem_1.asm: Rewrite.
   12584 
   12585 	* mpn/powerpc64/mode64/mul_basecase.asm: New file.
   12586 
   12587 2008-12-08  Torbjorn Granlund  <tege (a] gmplib.org>
   12588 
   12589 	* mpn/powerpc64/mode64/gmp-mparam.h: New file.
   12590 
   12591 	* gmp-impl.h: Additional cleanups.
   12592 	(mpn_set_str_compute_powtab): New prototype.
   12593 	(mpn_powm, mpn_powlo): New prototypes.
   12594 
   12595 	* mpz/pow_ui.c: Handle some small exponents locally.
   12596 
   12597 2008-12-07  Torbjorn Granlund  <tege (a] gmplib.org>
   12598 
   12599 	* mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h).
   12600 
   12601 	* tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving
   12602 	the #define mpn_set_str* before including gmp-impl.h.
   12603 
   12604 	* All files: Change _PROTO => __GMP_PROTO.
   12605 
   12606 	* tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad.
   12607 	* tune/common.c (speed_mpn_dc_set_str): Remove, it is broken.
   12608 
   12609 	* mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static,
   12610 	and inline it.
   12611 
   12612 	* gmp-impl.h: Major cleanup.
   12613 	(Remove formal parameter names.  Use __GMP_PROTO consistently.  Move
   12614 	__GMP_PROTO and __MPN use to adjacent lines for declared function.
   12615 	Fix typos.  Remove code inside #if 0.)
   12616 
   12617 	* configure.in (gmp_mpn_functions): Add mul_toom33.  Reformat.
   12618 
   12619 2008-12-05  Torbjorn Granlund  <tege (a] gmplib.org>
   12620 
   12621 	* mpn/generic/redc_1.c: New file.
   12622 	* mpn/generic/redc_2.c: New file.
   12623 
   12624 	* configure.in (gmp_mpn_functions): List redc_1 and redc_2.
   12625 	(HAVE_NATIVE): Likewise.
   12626 
   12627 	* tune/common.c (speed_mpn_redc_1): Renamed from speed_redc.
   12628 	* tune/speed.c (routine): Remove "redc", and "mpn_redc_1".
   12629 	* tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC.
   12630 	Updated call.
   12631 	* tune/tuneup.c (tune_powm): Update redc call.
   12632 
   12633 2008-12-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12634 
   12635 	* mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code
   12636 	and addlsh1 loop.  Misc cleanup.
   12637 
   12638 2008-12-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12639 
   12640 	* mpn/x86_64/sqr_basecase.asm: New file.
   12641 
   12642 2008-11-30  Torbjorn Granlund  <tege (a] gmplib.org>
   12643 
   12644 	* mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant.
   12645 
   12646 2008-11-28  Torbjorn Granlund  <tege (a] gmplib.org>
   12647 
   12648 	* mpn/x86_64/redc_1.asm: Rewrite.
   12649 
   12650 2008-11-27  Torbjorn Granlund  <tege (a] gmplib.org>
   12651 
   12652 	* tests/refmpn.c (refmpn_redc_1): New function.
   12653 
   12654 2008-11-25  Torbjorn Granlund  <tege (a] gmplib.org>
   12655 
   12656 	* mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1.
   12657 
   12658 2008-11-23  Torbjorn Granlund  <tege (a] gmplib.org>
   12659 
   12660 	* mpn/x86_64/divrem_1.asm: Rewrite.
   12661 
   12662 	* alpha/divrem_2.asm: New file.
   12663 	* powerpc32/divrem_2.asm: New file.
   12664 	* powerpc64/mode64/divrem_2.asm: New file.
   12665 	* x86/divrem_2.asm: New file.
   12666 	* x86_64/divrem_2.asm: New file.
   12667 	* tests/refmpn.c (refmpn_divrem_2): New function.
   12668 
   12669 2008-11-22  Torbjorn Granlund  <tege (a] gmplib.org>
   12670 
   12671 	* mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed.
   12672 	* mpn/x86/k7/aorsmul_1.asm: Likewise.
   12673 
   12674 	* acinclude.m4 (GMP_VERSION): Include last component even when zero.
   12675 
   12676 2008-11-21  Torbjorn Granlund  <tege (a] gmplib.org>
   12677 
   12678 	* mpn/x86_64/README: Rewrite.
   12679 
   12680 	* tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for
   12681 	printf type correctness.
   12682 
   12683 	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
   12684 
   12685 	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
   12686 	Bump version info.
   12687 
   12688 2008-11-20  Torbjorn Granlund  <tege (a] gmplib.org>
   12689 
   12690 	* gmp-impl.h: Rename modlimb_invert to binvert_limb.
   12691 	* tune/speed.h: Likewise.
   12692 	* tune/modlinv.c: Likewise.
   12693 	* tune/common.c: Likewise.
   12694 	* tests/t-modlinv.c: Likewise.
   12695 	* tests/t-constants.c: Likewise.
   12696 	* mpn/sparc64/mode1o.c: Likewise.
   12697 	* mpn/alpha/dive_1.c: Likewise.
   12698 	* mpn/sparc64/dive_1.c: Likewise.
   12699 	* mpn/generic/mode1o.c: Likewise.
   12700 	* mpn/generic/dive_1.c: Likewise.
   12701 	* mpn/generic/bdivmod.c: Likewise.
   12702 	* mpn/alpha/mode1o.asm: Likewise.
   12703 	* mpn/asm-defs.m4: Likewise.
   12704 	* mpn/ia64/mode1o.asm: Likewise.
   12705 	* mpn/powerpc32/README: Likewise.
   12706 	* mpn/powerpc32/mode1o.asm: Likewise.
   12707 	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
   12708 	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
   12709 	* mpn/x86/dive_1.asm: Likewise.
   12710 	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
   12711 	* mpn/x86/k6/mode1o.asm: Likewise.
   12712 	* mpn/x86/k7/dive_1.asm: Likewise.
   12713 	* mpn/x86/k7/mode1o.asm: Likewise.
   12714 	* mpn/x86/p6/dive_1.asm: Likewise.
   12715 	* mpn/x86/p6/mode1o.asm: Likewise.
   12716 	* mpn/x86/pentium/dive_1.asm: Likewise.
   12717 	* mpn/x86/pentium/mode1o.asm: Likewise.
   12718 	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
   12719 	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
   12720 	* mpn/x86_64/dive_1.asm: Likewise.
   12721 	* mpn/x86_64/mode1o.asm: Likewise.
   12722 
   12723 	* mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment
   12724 	neutral loop.
   12725 
   12726 2008-11-18  Torbjorn Granlund  <tege (a] gmplib.org>
   12727 
   12728 	* configure.in: Remove gcd_finda related declarations.
   12729 	* gmp-impl.h (mpn_gcd_finda): Remove declaration.
   12730 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda.
   12731 	* mpn/asm-defs.m4: Remove define_mpn(gcd_finda).
   12732 	* mpn/x86/k6/gcd_finda.asm: Remove file.
   12733 	* tests/devel/try.c (param_init): Remove mpn_gcd_finda.
   12734 	(choice_array): Remove mpn_gcd_finda.
   12735 	* tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda.
   12736 	* tests/refmpn.c (refmpn_gcd_finda): Remove.
   12737 	* tests/tests.h (refmpn_gcd_finda): Remove declaration.
   12738 	* tune/common.c (speed_mpn_gcd_finda): Remove.
   12739 	* tune/gcd_finda_gen.c: Remove file.
   12740 	* tune/speed.h (speed_mpn_gcd_finda): Remove declaration.
   12741 	* tune/speed.c (routine): Remove mpn_gcd_finda entry.
   12742 
   12743 	* tests/mpz/t-powm.c: Print test number when failing a test.
   12744 
   12745 	* mpn/x86_64/redc_1.asm (CALL): Move from here...
   12746 	* mpn/x86_64/x86_64-defs.m4: ...to here.
   12747 
   12748 	* gmp-impl.h (mpn_jacobi_base): Remove parameter names.
   12749 
   12750 2008-11-11  Torbjorn Granlund  <tege (a] gmplib.org>
   12751 
   12752 	* tests/mpf/t-conv.c: Add some specific tests, supplementing the random
   12753 	tests.
   12754 
   12755 2008-11-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12756 
   12757 	* mpf/set_str.c: Default 'base' before letting exp_base inherit it.
   12758 
   12759 	* tests/cxx/t-prec.cc: Use the right precision for all float constants.
   12760 
   12761 2008-11-08  Torbjorn Granlund  <tege (a] gmplib.org>
   12762 
   12763 	* doc/gmp.texi (Float Comparison): Update mpf_eq documentation.
   12764 
   12765 	* mpf/eq.c: Compare the right number of bits.
   12766 
   12767 2008-11-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12768 
   12769 	Undo, it made testing too slow:
   12770 	* tests/mpz/t-mul.c: Use slower geometric progression for operand
   12771 	sizes.
   12772 
   12773 	* mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits.
   12774 
   12775 2008-10-31  Niels Mller  <nisse (a] lysator.liu.se>
   12776 
   12777 	* mpn/generic/hgcd2.c (div1): New function (taken from old gcdext
   12778 	implementation)
   12779 	(mpn_hgcd2): Use single precision for the second half of the work.
   12780 
   12781 2008-10-30  Torbjorn Granlund  <tege (a] gmplib.org>
   12782 
   12783 	* mpn/x86/p6/sse2/gmp-mparam.h: New file.
   12784 
   12785 2008-10-29  Torbjorn Granlund  <tege (a] gmplib.org>
   12786 
   12787 	* configure.in (x86 fat_path): Add "x86/p6/sse2".
   12788 
   12789 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6
   12790 	(pentiumm, core2).
   12791 
   12792 	* mpn/x86/p6/sse2/mul_1.asm: New file.
   12793 	* mpn/x86/p6/sse2/addmul_1.asm: New file.
   12794 	* mpn/x86/p6/sse2/submul_1.asm: New file.
   12795 	* mpn/x86/p6/sse2/mul_basecase.asm: New file.
   12796 	* mpn/x86/p6/sse2/sqr_basecase.asm: New file.
   12797 	* mpn/x86/p6/sse2/popcount.asm: New file.
   12798 
   12799 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for
   12800 	model and family.
   12801 
   12802 2008-10-28  Torbjorn Granlund  <tege (a] gmplib.org>
   12803 
   12804 	From Mickael Gastineau:
   12805 	* gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC.
   12806 
   12807 2008-10-27  Torbjorn Granlund  <tege (a] gmplib.org>
   12808 
   12809 	* gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE.
   12810 
   12811 2008-10-27  Niels Mller  <nisse (a] lysator.liu.se>
   12812 
   12813 	* tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once
   12814 	for each call to mpn_hgcd.
   12815 	(speed_mpn_hgcd_lehmer): Likewise.
   12816 
   12817 2008-10-26  Torbjorn Granlund  <tege (a] gmplib.org>
   12818 
   12819 	* configure.in: Point to p6/sse2 for pentiumm and core2.
   12820 
   12821 	* gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat
   12822 	definitions.
   12823 
   12824 	* tune/common.c, tune/speed.c, tune/speed.h:
   12825 	Add speed measurement of mpn_bdiv_dbm1c.
   12826 
   12827 2008-10-24  Torbjorn Granlund  <tege (a] gmplib.org>
   12828 
   12829 	* mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend.
   12830 
   12831 	* mpz/nextprime.c: Move declarations to function beginning.
   12832 
   12833 2008-10-23  Niels Mller  <nisse (a] lysator.liu.se>
   12834 
   12835 	* gmp-impl.h (DECL_gcdext_1): Deleted.
   12836 
   12837 2008-10-22  Torbjorn Granlund  <tege (a] gmplib.org>
   12838 
   12839 	* mpn/x86_64/atom/aors_n.asm: New file.
   12840 	* mpn/x86_64/atom/gmp-mparam.h: New file.
   12841 
   12842 2008-10-21  Torbjorn Granlund  <tege (a] gmplib.org>
   12843 
   12844 	With Neils Mller:
   12845 	* mpz/nextprime.c: Rewrite.
   12846 
   12847 	* tests/devel/try.c (main): Use strtol for 's' and 'S' optargs.
   12848 
   12849 	* mpn/x86_64/pentium4/rshift.asm: Misc cleanups.
   12850 	* mpn/x86_64/pentium4/lshift.asm: Likewise.
   12851 
   12852 	* mpn/x86_64/pentium4/aors_n.asm: Use fewer registers.
   12853 
   12854 	* configure.in: Set up specific path for x86_64/atom.
   12855 
   12856 2008-10-21  Niels Mller  <nisse (a] lysator.liu.se>
   12857 
   12858 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed
   12859 	qstack.c.
   12860 	* mpn/generic/qstack.c: Deleted obsolete file.
   12861 
   12862 2008-10-20  Torbjorn Granlund  <tege (a] gmplib.org>
   12863 
   12864 	* mpn/x86_64/core2/aorsmul_1.asm: New file.
   12865 
   12866 2008-10-19  Torbjorn Granlund  <tege (a] gmplib.org>
   12867 
   12868 	* mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE.
   12869 
   12870 	* gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS
   12871 	inside several of these macros.
   12872 
   12873 2008-10-17  Torbjorn Granlund  <tege (a] gmplib.org>
   12874 
   12875 	* tests/mpz/t-mul.c: Use slower geometric progression for operand
   12876 	sizes.  Do every other tests for same size operands.
   12877 
   12878 2008-10-15  Torbjorn Granlund  <tege (a] gmplib.org>
   12879 
   12880 	* mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue.
   12881 
   12882 	* mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old
   12883 	algorithm.
   12884 
   12885 	* config.guess, config.sub, configure.in: Support Intel Atom processor.
   12886 
   12887 2008-10-10  Torbjorn Granlund  <tege (a] gmplib.org>
   12888 
   12889 	* mpq/mul.c: Fix typo in last change.
   12890 
   12891 2008-10-09  Torbjorn Granlund  <tege (a] gmplib.org>
   12892 
   12893 	* tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug.
   12894 
   12895 2008-10-08  Torbjorn Granlund  <tege (a] gmplib.org>
   12896 
   12897 	* mpq/mul.c: Use TMP_ALLOC.  Cleanup.
   12898 	* mpq/div.c: Likewise.
   12899 
   12900 	* mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point
   12901 	addresses.
   12902 
   12903 2008-10-09  Niels Mller  <nisse (a] lysator.liu.se>
   12904 
   12905 	* mpn/x86/k7/gmp-mparam.h: Updated GCD-related values.
   12906 
   12907 2008-10-05  Torbjorn Granlund  <tege (a] gmplib.org>
   12908 
   12909 	* mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store
   12910 	mpn_fft_norm_modF return value, if (rec).
   12911 
   12912 2008-10-04  Torbjorn Granlund  <tege (a] gmplib.org>
   12913 
   12914 	* mpn/x86_64/aorsmul_1.asm: Replace with faster code.
   12915 	* mpn/x86_64/mul_1.asm: Likewise.
   12916 	* mpn/x86_64/addmul_2.asm: Likewise.
   12917 	* mpn/x86_64/mul_2.asm: Likewise.
   12918 	* mpn/x86_64/mul_basecase.asm: Likewise.
   12919 
   12920 2008-10-02  Torbjorn Granlund  <tege (a] gmplib.org>
   12921 
   12922 	* mpn/minithres/gmp-mparam.h: Update FFT values.
   12923 
   12924 2008-10-02  Niels Mller  <nisse (a] lysator.liu.se>
   12925 
   12926 	* hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug.
   12927 
   12928 2008-09-24  Torbjorn Granlund  <tege (a] gmplib.org>
   12929 
   12930 	* configure.in: Handle --enable-minithres.
   12931 	* mpn/minithres/gmp-mparam.h: Update all values.
   12932 
   12933 2008-09-22  Torbjorn Granlund  <tege (a] gmplib.org>
   12934 
   12935 	* tune/speed.c (routine): New entry for mpn_mul.
   12936 	* tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from
   12937 	SPEED_ROUTINE_MPN_MUL_BASECASE.
   12938 	(speed_mpn_mul): Renamed from speed_mpn_mul_basecase.
   12939 	(SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand.
   12940 
   12941 	* tune/common.c: Corresponding changes.
   12942 
   12943 2008-09-22  Niels Mller  <nisse (a] lysator.liu.se>
   12944 
   12945 	* mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function,
   12946 	replaces addmul2_n. Needs less copying.
   12947 	(mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface
   12948 	change in mpn_gcdext_subdiv_step
   12949 
   12950 	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use
   12951 	mpn_hgcd_mul_matrix1_vector.
   12952 	(hgcd_step): Updated for interface change in
   12953 	mpn_hgcd_mul_matrix1_inverse_vector.
   12954 
   12955 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
   12956 	interface changes in mpn_hgcd_mul_matrix1_vector,
   12957 	mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step.
   12958 
   12959 	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for
   12960 	interface change in mpn_hgcd_mul_matrix1_inverse_vector.
   12961 
   12962 	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use
   12963 	separate scratch arguments for the quotient and for the cofactor
   12964 	update.
   12965 
   12966 	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface
   12967 	change. Store first element in rp and leave ap unmodified. No
   12968 	additional scratch space or copying needed. Callers that require
   12969 	modification in place still need to copy one of the inputs.
   12970 	(mpn_hgcd_mul_matrix1_inverse_vector): Likewise.
   12971 
   12972 2008-09-22  Niels Mller <nisse (a] lysator.liu.se>  <nisse (a] king.swox.se>
   12973 
   12974 	* mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0.
   12975 	* mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise.
   12976 
   12977 	* mpn/generic/gcd.c: Use libspeed for timing measurements.
   12978 
   12979 	* gmp-impl.h: Declare mpn_addaddmul_1msb0.
   12980 	* mpn/asm-defs.m4: Added addaddmul_1msb0.
   12981 	* mpn/x86_64/addaddmul_1msb0.asm: New file.
   12982 	* configure.in (gmp_mpn_functions_optional): Added
   12983 	addaddmul_1msb0.
   12984 	(HAVE_NATIVE): List addaddmul_1msb0.
   12985 
   12986 2008-09-21  Torbjorn Granlund  <tege (a] gmplib.org>
   12987 
   12988 	* mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default.
   12989 	(GET_STR_PRECOMPUTE_THRESHOLD): Likewise.
   12990 	Misc code cleanups.
   12991 
   12992 	* gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs.
   12993 
   12994 	Revert:
   12995 	* mpn/generic/set_str.c:
   12996 	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
   12997 
   12998 2008-09-18  Torbjorn Granlund  <tege (a] gmplib.org>
   12999 
   13000 	* mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define.
   13001 
   13002 	* mpn/ia64/diveby3.asm: Remove.
   13003 	* mpn/x86/diveby3.asm: Remove.
   13004 	* mpn/x86/k6/diveby3.asm: Remove.
   13005 	* mpn/x86/k7/diveby3.asm: Remove.
   13006 	* mpn/x86/p6/diveby3.asm: Remove.
   13007 	* mpn/x86/pentium/diveby3.asm: Remove.
   13008 	* mpn/x86_64/diveby3.asm: Remove.
   13009 	* mpn/x86/pentium4/sse2/diveby3.asm: Remove.
   13010 
   13011 	* configure.in (HAVE_NATIVE): List divexact_by3c.
   13012 
   13013 	* gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition.
   13014 	(DIVEXACT_BY3_METHOD): Don't default to 0 if
   13015 	HAVE_NATIVE_mpn_divexact_by3c.
   13016 
   13017 2008-09-18  Niels Mller  <nisse (a] lysator.liu.se>
   13018 
   13019 	* mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P.
   13020 
   13021 	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are
   13022 	normalized.
   13023 
   13024 2008-09-17  Niels Mller <nisse (a] lysator.liu.se>  <nisse (a] king.swox.se>
   13025 
   13026 	* mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a
   13027 	slowdown for large inputs. As a compromise, use p = n/2 for the
   13028 	first iteration, and p = n/3 for the rest. Handle the first
   13029 	iteration specially, since the initial u0 and u1 are trivial.
   13030 
   13031 	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
   13032 	from 409 to 390.
   13033 
   13034 	* mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5.
   13035 	(mpn_gcdext): Use CHOOSE_P, and generalized the calculation of
   13036 	scratch space.
   13037 
   13038 	* tune/tuneup.c (tune_hgcd): Use default step factor.
   13039 
   13040 	* mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to
   13041 	412.
   13042 
   13043 	* mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the
   13044 	split when calling hgcd. Use p = 2n/3, as that seems better than
   13045 	the more obvious split p = n/2.
   13046 	(mpn_gcd): Use CHOOSE_P, and generalized the calculation of
   13047 	scratch space.
   13048 
   13049 2008-09-16  Torbjorn Granlund  <tege (a] gmplib.org>
   13050 
   13051 	* mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN
   13052 	functions.
   13053 
   13054 	* gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7,
   13055 	mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13,
   13056 	mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1.
   13057 
   13058 	* configure.in (gmp_mpn_functions): List bdiv_dbm1c.
   13059 	(HAVE_NATIVE): Likewise.
   13060 	* mpn/asm-defs.m4: Define bdiv_dbm1c.
   13061 	* gmp-impl.h (mpn_bdiv_dbm1c): Declare.
   13062 	(mpn_bdiv_dbm1): New macro.
   13063 	* mpn/generic/bdiv_dbm1c.c: New file.
   13064 	* mpn/alpha/bdiv_dbm1c.asm: New file.
   13065 	* mpn/ia64/bdiv_dbm1c.asm: New file.
   13066 	* mpn/powerpc32/bdiv_dbm1c.asm: New file.
   13067 	* mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file.
   13068 	* mpn/x86/bdiv_dbm1c.asm: New file.
   13069 	* mpn/x86_64/bdiv_dbm1c.asm: New file.
   13070 
   13071 	* mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function.
   13072 	Choose function depending on DIVEXACT_BY3_METHOD.
   13073 	* gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default.
   13074 
   13075 2008-09-16  Niels Mller  <nisse (a] lysator.liu.se>
   13076 
   13077 	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to
   13078 	gcdext.c, where it is used.
   13079 	* mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was
   13080 	mpn_hgcd_addmul2_n. Made static. Deleted input normalization.
   13081 	Deleted rn argument.
   13082 	(mpn_gcdext): Updated calls to addmul2_n, and added assertions.
   13083 
   13084 	* gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs.
   13085 	(MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb.
   13086 	(MPN_GCD_SUBDIV_STEP_ITCH): Likewise.
   13087 	(MPN_GCD_LEHMER_N_ITCH): Likewise.
   13088 
   13089 	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs.
   13090 	(hgcd_step): Use overlapping arguments to mpn_tdiv_qr.
   13091 	(mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds
   13092 	for the element size of the product. Needs two extra limbs of
   13093 	storage for the elements.
   13094 	(mpn_hgcd_itch): Updated storage calculation.
   13095 
   13096 	* mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use
   13097 	overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p.
   13098 
   13099 	* mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p.
   13100 
   13101 2008-09-15  Niels Mller  <nisse (a] lysator.liu.se>
   13102 
   13103 	* mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted
   13104 	tp pointer.
   13105 	(hgcd_matrix_update_q): Likewise.
   13106 	(mpn_hgcd_matrix_mul): Likewise.
   13107 	(mpn_hgcd_itch): Updated calculation of scratch space.
   13108 
   13109 	* gmp-impl.h (struct hgcd_matrix): Deleted tp pointer.
   13110 	(MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage.
   13111 	(mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations.
   13112 
   13113 2008-09-15  Niels Mller <nisse (a] lysator.liu.se>  <nisse (a] king.swox.se>
   13114 
   13115 	* mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New
   13116 	threshold.
   13117 
   13118 	* mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul.
   13119 	(mpn_hgcd_itch): Updated calculation of scratch space. Use
   13120 	count_leading_zeros to get the recursion depth.
   13121 
   13122 	* mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space,
   13123 	and use mpn_hgcd_itch.
   13124 
   13125 2008-09-15  Niels Mller  <nisse (a] lysator.liu.se>
   13126 
   13127 	* tune/tuneup.c (tune_matrix22_mul): New function.
   13128 	(all): Use it.
   13129 
   13130 	* tune/common.c (speed_mpn_matrix22_mul): New function.
   13131 
   13132 	* tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c.
   13133 
   13134 	* tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to
   13135 	select sizes for tests.
   13136 
   13137 	* gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold
   13138 
   13139 	* configure.in (gmp_mpn_functions): Added matrix22_mul.
   13140 	* gmp-impl.h: Added declarations for mpn_matrix22_mul and related
   13141 	functions.
   13142 
   13143 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
   13144 	matrix22_mul.c.
   13145 	* tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22.
   13146 
   13147 	* tests/mpn/t-matrix22.c: New file.
   13148 	* mpn/generic/matrix22_mul.c: New file.
   13149 
   13150 2008-09-11  Niels Mller  <nisse (a] king.swox.se>
   13151 
   13152 	* tune/tuneup.c: Updated tuning of gcdext.
   13153 
   13154 	* mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
   13155 	from 713 to 409.
   13156 
   13157 2008-09-11  Niels Mller  <nisse (a] lysator.liu.se>
   13158 
   13159 	* gmp-impl.h: Updated for gcdext changes.
   13160 	(GCDEXT_DC_THRESHOLD): New constant, renamed from
   13161 	GCDEXT_SCHOENHAGE_THRESHOLD.
   13162 
   13163 	* mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b
   13164 	as inputs.
   13165 	(mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd
   13166 	interface.
   13167 
   13168 	* mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n
   13169 	and made non-static. Changed interface to take non-normalized
   13170 	inputs, and only two size arguments.
   13171 	(mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n.
   13172 
   13173 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted
   13174 	function.
   13175 	(mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes
   13176 	inputs of equal size. Moved the code for the division step to a
   13177 	separate function...
   13178 	* mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New
   13179 	file, new function.
   13180 
   13181 	* configure.in (gmp_mpn_functions): Added gcdext_subdiv_step.
   13182 
   13183 2008-09-10  Torbjorn Granlund  <tege (a] gmplib.org>
   13184 
   13185 	* tests/devel/anymul_1.c: Include <string.h>.
   13186 
   13187 	* gmp-h.in: Unconditionally include <cstdio>.
   13188 
   13189 2008-09-10  Niels Mller  <nisse (a] lysator.liu.se>
   13190 
   13191 	* tune/common.c: #if:ed out speed_mpn_gcd_binary and
   13192 	speed_mpn_gcd_accel.
   13193 	* tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel
   13194 	and find_a.
   13195 	* tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c
   13196 	gcd_accel.c gcd_finda_gen.c.
   13197 	* tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD.
   13198 
   13199 	* mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses
   13200 	the new mpn_hgcd interface.
   13201 
   13202 	* */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to
   13203 	GCD_DC_THRESHOLD.
   13204 
   13205 	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was
   13206 	mpn_gcd_lehmer). Now takes inputs of equal size.
   13207 
   13208 	* mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2,
   13209 	to get better performance for small inputs.
   13210 
   13211 	* mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD.
   13212 	* mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to
   13213 	120.
   13214 	* */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to
   13215 	HGCD_THRESHOLD.
   13216 
   13217 2008-09-09  Torbjorn Granlund  <tege (a] gmplib.org>
   13218 
   13219 	* doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs.
   13220 
   13221 2008-09-09  Niels Mller  <nisse (a] lysator.liu.se>
   13222 
   13223 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted
   13224 	to new hgcd interface.
   13225 
   13226 	* gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro.
   13227 
   13228 	* hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made
   13229 	non-static.
   13230 
   13231 	* gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2.
   13232 
   13233 	* gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for
   13234 	division step. Added proper book-keeping of swaps, which affect
   13235 	the sign of the returned cofactor.
   13236 
   13237 	* tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext
   13238 	fails.
   13239 
   13240 	* gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle
   13241 	the special case n == 1 correctly.
   13242 
   13243 	* gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function.
   13244 	The special cancellation logic is not needed here.
   13245 
   13246 2008-09-08  Torbjorn Granlund  <tege (a] gmplib.org>
   13247 
   13248 	* mpn/generic/invert.c: Add working but slow code.
   13249 
   13250 	* mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros.
   13251 
   13252 	* mpn/ia64/submul_1.asm: Move some labels for broader assembler
   13253 	compatibility.
   13254 
   13255 	* gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare.
   13256 	* tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare.
   13257 	* tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4.
   13258 	(choice_array): Likewise.
   13259 	(call): Likewise.
   13260 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES):
   13261 	Add mul_3.c and mul_4.
   13262 	* mpn/asm-defs.m4: Define mul_3 and mul_4.
   13263 	* tests/refmpn.c (refmpn_mul_N): New function.
   13264 	(refmpn_mul_2): Remove old definition, call refmpn_mul_N.
   13265 	(refmpn_mul_3, refmpn_mul_4): New functions.
   13266 	* tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions.
   13267 	* tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare.
   13268 	* tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3.
   13269 
   13270 	* ltmain.sh: Update to libtool 1.5.24.
   13271 
   13272 	* mpn/generic/mul_toom22.c: Compute s and t more cleverly.
   13273 
   13274 2008-09-08  Niels Mller  <nisse (a] lysator.liu.se>
   13275 
   13276 	* tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref.
   13277 
   13278 	* mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function.
   13279 	(mpn_gcdext_lehmer): Various bugfixes.
   13280 
   13281 	* gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer.
   13282 
   13283 	* mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd.
   13284 	(mpn_gcd_lehmer): Added tp argument, for scratch space. Make both
   13285 	arguments odd before calling gcd_2.
   13286 
   13287 	* mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2,
   13288 	and return 0 immediately.
   13289 
   13290 	* gmp-impl.h (MPN_EXTRACT_NUMB): New macro.
   13291 
   13292 	* configure.in (gmp_mpn_functions): Added gcdext_lehmer.
   13293 
   13294 2008-09-05  Torbjorn Granlund  <tege (a] gmplib.org>
   13295 
   13296 	* mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of
   13297 	divexact_odd.
   13298 
   13299 	* doc/texinfo.tex: Update to 2007-06-29.13.
   13300 
   13301 	* doc/gmp.texi: Update GMP site URL.  Fix some typos.
   13302 
   13303 	* demos/pexpr.c (main): Allow bases up to 62.
   13304 
   13305 	* gmp-impl.h: Remove formal parameter names from function prototypes.
   13306 
   13307 	* config.guess: Recognize recent AMD and Itanium CPUs.
   13308 	Default X86 CPU recognition to configfsf.guess' value.
   13309 
   13310 	* configure.in: Handle core2 separately from athlon64.
   13311 
   13312 2008-09-05  Niels Mller  <nisse (a] lysator.liu.se>
   13313 
   13314 	* */Makefile.in, configure, aclocal.m4, config.in: Removed files
   13315 	from repository. They're instead generated by automake and
   13316 	autoconf before distribution.
   13317 
   13318 2008-08-25  Torbjorn Granlund  <tege (a] gmplib.org>
   13319 
   13320 	* mpf/set_str.c: Allocate mantissa space based on mantissa size,
   13321 	not on destination variable space.
   13322 	* mpf/set_str.c: Accept unary plus before exponent.
   13323 
   13324 2008-08-06  Torbjorn Granlund  <tege (a] gmplib.org>
   13325 
   13326 	* mpn/generic/mul_toom22.c: Add statistics gathering functionality,
   13327 	triggered by cpp predef STAT.
   13328 
   13329 	From David Harvey:
   13330 	* mpn/generic/mul_toom22.c: Decrease scratch space usage.
   13331 
   13332 2008-08-02  Torbjorn Granlund  <tege (a] gmplib.org>
   13333 
   13334 	* tests/misc/t-scanf.c: Avoid negative arguments to _ui functions.
   13335 	* tests/misc/t-printf.c: Likewise.
   13336 
   13337 	* acinclude.m4 (X86_PATTERN): Add geode.
   13338 
   13339 	* acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep.
   13340 
   13341 2008-08-01  Torbjorn Granlund  <tege (a] gmplib.org>
   13342 
   13343 	* acinclude.m4 (CL_AS_NOEXECSTACK): New.
   13344 	* configure.in: Use CL_AS_NOEXECSTACK.
   13345 	* mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK).
   13346 
   13347 	* gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of
   13348 	std::numeric_limits<double>::max_exponent for better portability.
   13349 
   13350 2008-07-29  Torbjorn Granlund  <tege (a] gmplib.org>
   13351 
   13352 	* gmpxx.h (__GMP_DBL_LIMBS): New #define.
   13353 	(__GMP_ULI_LIMBS): New #define.
   13354 	(__GMPXX_TMP_UI): New macro.
   13355 	(__GMPXX_TMP_SI): New macro.
   13356 	(__GMPXX_TMP_D): New macro.
   13357 	(struct __gmp_binary_and): Rewrite, using the new macros.
   13358 	(struct __gmp_binary_ior): Likewise.
   13359 	(struct __gmp_binary_xor): Likewise.
   13360 
   13361 2008-07-28  Torbjorn Granlund  <tege (a] gmplib.org>
   13362 
   13363 	* tests/cxx/t-binary.cc: Add some tests for logical operations.
   13364 
   13365 2008-07-24  Torbjorn Granlund  <tege (a] gmplib.org>
   13366 
   13367 	* gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove
   13368 	__GMPZZ_*.
   13369 	Remove repeated #undefs.
   13370 	(__gmp_alloc_cstring): Declare freefunc as extern "C".
   13371 
   13372 2008-07-23  Torbjorn Granlund  <tege (a] gmplib.org>
   13373 
   13374 	* gmp-h.in (__GMP_CC): New define, undocumented for now.
   13375 	(__GMP_CFLAGS): Likewise.
   13376 
   13377 2008-07-21  Torbjorn Granlund  <tege (a] gmplib.org>
   13378 
   13379 	* tests/amd64check.c: Fix a printf type clash.
   13380 
   13381 	* mpz/realloc.c: Amend last fix.
   13382 
   13383 	* gmp-h.in: Include <cstdlib> for C++.
   13384 	* gmp-h.in: Handle new gcc 4.3 inline semantics defaults.
   13385 
   13386 	* configfsf.guess: Update to version of 2008-04-14.
   13387 	* configfsf.sub: Update to version of 2008-06-16.
   13388 
   13389 	* configure.in: Separate core2 and athlon64 flags handling.
   13390 
   13391 2008-06-19  Torbjorn Granlund  <tege (a] gmplib.org>
   13392 
   13393 	* config.guess: Recognize pentiumm and AMD geode.
   13394 	* config.sub: Likewise.
   13395 	* configure.in: Likewise.
   13396 
   13397 2008-06-02  Torbjorn Granlund  <tege (a] gmplib.org>
   13398 
   13399 	* configure.in: Disallow odd nails sizes.
   13400 	* configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere.
   13401 
   13402 2008-05-23  Torbjorn Granlund  <tege (a] gmplib.org>
   13403 
   13404 	* mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t
   13405 	overflow.
   13406 	* mpz/realloc2.c: Likewise.
   13407 	* mpz/realloc.c: Detect mpz_t overflow.
   13408 
   13409 2008-05-22  Torbjorn Granlund  <tege (a] gmplib.org>
   13410 
   13411 	* configure.in (sparc): Remove -fast, it causes documented
   13412 	miscompilation.
   13413 
   13414 	* config.guess: Properly handle the "extended" variants of x86 cpuid.
   13415 
   13416 2008-05-09  Torbjorn Granlund  <tege (a] gmplib.org>
   13417 
   13418 	* gmp-impl.h (mpn_mul_fft): Now void.
   13419 	(udiv_qrnnd_preinv3): Special case for constant (nl).
   13420 
   13421 2008-05-08  Torbjorn Granlund  <tege (a] gmplib.org>
   13422 
   13423 	* mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)).
   13424 	(TRACE): Redefine to allow command line control.
   13425 	(mpn_mul_fft_internal): Now void, remove return value.
   13426 	(mpn_mul_fft): Likewise.
   13427 	(MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512.
   13428 	(mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice,
   13429 	then add/subtract result.  Get rid of temp allocation as a result.
   13430 	Remove some redundant CNST_LIMB.
   13431 	(mpn_fft_fftinv): Analogous changes.
   13432 	(mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and
   13433 	mpn_fft_fftinv.
   13434 
   13435 2008-03-10  Torbjorn Granlund  <tege (a] gmplib.org>
   13436 
   13437 	* tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed
   13438 	power-of-2 of test operands.
   13439 
   13440 2008-02-28  Torbjorn Granlund  <tege (a] gmplib.org>
   13441 
   13442 	* tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right
   13443 	shift.
   13444 
   13445 2008-02-27  Torbjorn Granlund  <tege (a] gmplib.org>
   13446 
   13447 	* mpz/mul_i.h: Check sml's size (not the signed small_mult).
   13448 
   13449 	* longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh
   13450 	when possible.
   13451 
   13452 	* longlong.h (count_trailing_zeros): Force destination register mode.
   13453 
   13454 	* gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not
   13455 	truncation.
   13456 
   13457 	* gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor):
   13458 	Add variants with unsigned long int argument.
   13459 
   13460 	* config.sub: Recog geode.
   13461 	* config.guess: Likewise.
   13462 	* acinclude.m4 (X86_PATTERN): Likewise.
   13463 
   13464 2008-02-10  Torbjorn Granlund  <tege (a] gmplib.org>
   13465 
   13466 	* mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug.
   13467 	* mpn/x86/x86-defs.m4 (Zdisp): Add more instructions.
   13468 
   13469 2008-02-08  Torbjorn Granlund  <tege (a] gmplib.org>
   13470 
   13471 	* mpn/x86_64/aors_n.asm: New file.
   13472 	* mpn/x86_64/add_n.asm: Delete.
   13473 	* mpn/x86_64/sub_n.asm: Delete.
   13474 
   13475 2008-02-07  Torbjorn Granlund  <tege (a] gmplib.org>
   13476 
   13477 	* mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change.
   13478 
   13479 2007-12-10  Torbjorn Granlund  <tege (a] swox.com>
   13480 
   13481 	* mpf/set_str.c (mpf_set_str): Write own code for converting the
   13482 	exponent, avoids strtol base < 36 limitation.
   13483 
   13484 2007-10-28  Torbjorn Granlund  <tege (a] swox.com>
   13485 
   13486 	* gmp-impl.h (mpn_dc_get_str_itch): New macro.
   13487 	(mpn_dc_get_str_powtab_alloc): New macro.
   13488 	(struct powers): Add field "shift".
   13489 
   13490 	* mpn/generic/get_str.c: Compute powers without low zero limbs; all
   13491 	functions modified.  Correct temporary allocation.  Misc cleanups.
   13492 
   13493 	* mpn/generic/set_str.c: Compute powers without low zero limbs; all
   13494 	functions modified.
   13495 	(mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
   13496 
   13497 2007-10-26  Torbjorn Granlund  <tege (a] swox.com>
   13498 
   13499 	* mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h.
   13500 	(mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm.
   13501 
   13502 2007-10-22  Torbjorn Granlund  <tege (a] swox.com>
   13503 
   13504 	* gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE.
   13505 	(mpn_sub_nc): Likewise.
   13506 
   13507 2007-10-17  Torbjorn Granlund  <tege (a] swox.com>
   13508 
   13509 	* tests/misc/t-printf.c: Fix a printf type clash.
   13510 	* tests/mpq/t-get_str.c: Likewise.
   13511 	* tests/mpz/t-import.c: Likewise.
   13512 
   13513 	* acinclude.m4: Conditionally disable some tests when compiled by a C++
   13514 	compiler.
   13515 
   13516 	* gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable.
   13517 
   13518 	* mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings.
   13519 
   13520 2007-10-08  Torbjorn Granlund  <tege (a] swox.com>
   13521 
   13522 	* mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA.
   13523 	* mpn/powerpc32/darwin.m4 (LEAL): Likewise.
   13524 	* mpn/powerpc64/aix.m4: Likewise.
   13525 
   13526 	* mpn/powerpc64/vmx/popcount.asm: Use LEAL.
   13527 
   13528 	* mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only
   13529 	usable for local symbols.
   13530 	(LEA): Replace with code for external references.
   13531 
   13532 	* mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL.
   13533 
   13534 2007-10-07  Torbjorn Granlund  <tege (a] swox.com>
   13535 
   13536 	* mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*.
   13537 	* mpn/x86/k6/mode1o.asm: Likewise.
   13538 	* mpn/x86/k6/mmx/dive_1.asm: Likewise.
   13539 	* mpn/x86/k7/dive_1.asm: Likewise.
   13540 	* mpn/x86/k7/mode1o.asm: Likewise.
   13541 	* mpn/x86/p6/dive_1.asm: Likewise.
   13542 	* mpn/x86/p6/mode1o.asm: Likewise.
   13543 	* mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
   13544 	* mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
   13545 	* mpn/x86/pentium4/sse2/popcount.asm: Likewise.
   13546 
   13547 	* mpn/x86/p6/aors_n.asm: Table cycle counts.
   13548 
   13549 	* mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims.
   13550 
   13551 	* mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's.
   13552 
   13553 	* mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu.
   13554 	Expect target register to have prepended %.
   13555 
   13556 	* mpn/x86_64/add_n.asm: Use L() for labels.
   13557 	* mpn/x86_64/addlsh1_n.asm: Likewise.
   13558 	* mpn/x86_64/addmul_2.asm: Likewise.
   13559 	* mpn/x86_64/aorrlsh_n.asm: Likewise.
   13560 	* mpn/x86_64/aorsmul_1.asm: Likewise.
   13561 	* mpn/x86_64/com_n.asm: Likewise.
   13562 	* mpn/x86_64/copyd.asm: Likewise.
   13563 	* mpn/x86_64/copyi.asm: Likewise.
   13564 	* mpn/x86_64/diveby3.asm: Likewise.
   13565 	* mpn/x86_64/logops_n.asm: Likewise.
   13566 	* mpn/x86_64/lshsub_n.asm: Likewise.
   13567 	* mpn/x86_64/mul_1.asm: Likewise.
   13568 	* mpn/x86_64/mul_2.asm: Likewise.
   13569 	* mpn/x86_64/mul_basecase.asm: Likewise.
   13570 	* mpn/x86_64/popham.asm: Likewise.
   13571 	* mpn/x86_64/redc_1.asm: Likewise.
   13572 	* mpn/x86_64/rsh1add_n.asm: Likewise.
   13573 	* mpn/x86_64/rsh1sub_n.asm: Likewise.
   13574 	* mpn/x86_64/rshift.asm: Likewise.
   13575 	* mpn/x86_64/sub_n.asm: Likewise.
   13576 	* mpn/x86_64/sublsh1_n.asm Likewise.
   13577 	* mpn/x86_64/pentium4/aors_n.asm: Likewise.
   13578 	* mpn/x86_64/pentium4/lshift.asm: Likewise.
   13579 	* mpn/x86_64/pentium4/rshift.asm: Likewise.
   13580 
   13581 	* mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and
   13582 	END_OBJECT.
   13583 
   13584 	* mpn/generic/mul.c: Put TMP_DECL as last decl.
   13585 
   13586 2007-10-06  Torbjorn Granlund  <tege (a] swox.com>
   13587 
   13588 	* mpn/x86/pentium4/sse2/popcount.asm: New file.
   13589 
   13590 2007-09-26  Torbjorn Granlund  <tege (a] swox.com>
   13591 
   13592 	* mpz/get_str.c: Cast a char index to int to shut up compilers.
   13593 
   13594 	* mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert.
   13595 	* mpn/generic/dc_divappr_q.c: Likewise.
   13596 	* mpn/generic/mu_div_qr.c: Likewise.
   13597 	* mpn/generic/mu_divappr_q.c: Likewise.
   13598 	* mpn/generic/mu_div_q.c: Likewise.
   13599 	* mpn/generic/divexact.c: Likewise.
   13600 
   13601 	* mpn/generic/invert.c: New file, placeholder for now.
   13602 
   13603 2007-09-24  Torbjorn Granlund  <tege (a] swox.com>
   13604 
   13605 	* mpn/generic/toom_interpolate_5pts.c: New file, contents from
   13606 	mpn/generic/mul_n.c
   13607 	* mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed.
   13608 
   13609 	* mpn/generic/toom_interpolate_7pts.c: New file.
   13610 
   13611 	* mpn/x86/k7/mmx/popham.asm: Table cycle counts.
   13612 
   13613 	* mpn/x86/k6/README: Update URLs.
   13614 
   13615 	* mpn/powerpc32/README: Update URL's, company names.
   13616 
   13617 	* mpn/generic/get_d.c: Complete rewrite.
   13618 
   13619 	* mpn/generic/mul_toom33.c: New file.
   13620 
   13621 	* mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files.
   13622 	* mpn/generic/mul_toom32.c: Likewise.
   13623 	* mpn/generic/mul_toom42.c: Likewise.
   13624 
   13625 	* mpn/alpha/invert_limb.asm: Update cycle counts.  Fix a comment typo.
   13626 
   13627 	* mpf/get_str.c: Include stdlib.h, not stdio.h for NULL.
   13628 
   13629 	* doc/gmp.texi: Fix a typo.
   13630 
   13631 	* memory.c (__gmp_default_allocate, __gmp_default_reallocate):
   13632 	Cast size operands in error fprintf's.
   13633 
   13634 	* longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant
   13635 	args.
   13636 
   13637 	* gmp-impl.h (udiv_qrnnd_preinv3): New define.
   13638 	* gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from
   13639 	ia64 asm.
   13640 
   13641 	* gmp-h.in (mpn_neg_n): New function.
   13642 
   13643 2007-09-18  Torbjorn Granlund  <tege (a] swox.com>
   13644 
   13645 	* demos/pexpr.c (main): Add -v option.
   13646 	(enum op_t): New tag TIMING.
   13647 	(mpz_eval_expr): Execute TIMING.
   13648 	(fns): Add TIMING entry.
   13649 
   13650 	* gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication
   13651 	functions and division functions.
   13652 
   13653 2007-09-10  Torbjorn Granlund  <tege (a] swox.com>
   13654 
   13655 	* mpn/powerpc32/addlsh1_n.asm: Use L() for labels.
   13656 	* mpn/powerpc32/sublsh1_n.asm: Likewise.
   13657 
   13658 2007-09-09  Torbjorn Granlund  <tege (a] swox.com>
   13659 
   13660 	* mpn/x86/x86-defs.m4 (LEA): New define.
   13661 	* mpn/x86/darwin.m4: New file, for now just defining LEA.
   13662 	* configure.in: Pick up x86/darwin.m4.
   13663 	* mpn/x86/*: Use LEA for PIC references.
   13664 
   13665 	* configure.in: For X86/32, treat core2 like pentium3.
   13666 
   13667 2007-09-06  Torbjorn Granlund  <tege (a] swox.com>
   13668 
   13669 	* tests/amd64check.c (calling_conventions_values): Put constants,
   13670 	dynamic values in this array (was in scalars).
   13671 	(calling_conventions_check): Corresponding changes.
   13672 	* tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's
   13673 	array.
   13674 
   13675 2007-09-04  Torbjorn Granlund  <tege (a] swox.com>
   13676 
   13677 	* mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups.
   13678 	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
   13679 
   13680 	* mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size.
   13681 
   13682 	* tests/amd64call.asm: Remove bogus no-op moves.
   13683 
   13684 2007-09-03  Torbjorn Granlund  <tege (a] swox.com>
   13685 
   13686 	From Richard Guenther:
   13687 	* gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on
   13688 	__GNUC_STDC_INLINE__.
   13689 
   13690 	* tests/cxx/t-locale.cc: #include <cstdlib>, for abort.
   13691 
   13692 	* mpn/x86_64/core2/popcount.asm: New file.
   13693 	* mpn/x86_64/pentium4/popcount.asm: New file.
   13694 
   13695 	* mpn/x86_64/addmul_2.asm: New file.
   13696 	* mpn/x86_64/mul_2.asm: New file.
   13697 
   13698 	* mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers
   13699 	(saves space).
   13700 
   13701 2007-09-01  Torbjorn Granlund  <tege (a] swox.com>
   13702 
   13703 	* configure.in: Handle athlon64, core2, and pentium4 separately for
   13704 	64-bit ABI.
   13705 
   13706 	* config.sub: Recog athlon64, core2, and opteron.
   13707 
   13708 	* config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI.
   13709 	Return "athlon64" and "core2", not x86_64.
   13710 
   13711 2007-08-31  Torbjorn Granlund  <tege (a] swox.com>
   13712 
   13713 	From Patrick Pelissier:
   13714 	* gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE.
   13715 
   13716 2007-08-30  Torbjorn Granlund  <tege (a] swox.com>
   13717 
   13718 	* demos/isprime.c: Include string.h for strcmp.
   13719 
   13720 	* demos/factorize.c (main): Declare to int.
   13721 
   13722 2007-06-22  Torbjorn Granlund  <tege (a] swox.com>
   13723 
   13724 	* mpn/x86_64/pentium4/lshift.asm: Minor tuning.
   13725 	* mpn/x86_64/pentium4/rshift.asm: Likewise.
   13726 
   13727 2007-05-30  Torbjorn Granlund  <tege (a] swox.com>
   13728 
   13729 	* mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points.
   13730 
   13731 2007-05-22  Torbjorn Granlund  <tege (a] swox.com>
   13732 
   13733 	* tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops.
   13734 
   13735 2007-05-16  Torbjorn Granlund  <tege (a] swox.com>
   13736 
   13737 	* tests/mpz/convert.c: Tweak operand sizes for best coverage.
   13738 
   13739 	* tests/memory.c: Add red zones around allocations.
   13740 
   13741 2007-05-15  Torbjorn Granlund  <tege (a] swox.com>
   13742 
   13743 	* mpn/ia64/mul_1.asm: Make mul_1c entry point actually work.
   13744 
   13745 	* mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when
   13746 	ln == 0.
   13747 
   13748 	* tests/mpz/convert.c (string_urandomb): New function.
   13749 	(main): Use it by enabling ifdef'ed out code.
   13750 
   13751 2007-04-30  Torbjorn Granlund  <tege (a] swox.com>
   13752 
   13753 	* mpn/x86_64/mul_basecase.asm: Complete rewrite.
   13754 
   13755 	* mpn/x86_64/copyi.asm: Use short shift-by-one form.  Misc cleanups.
   13756 	* mpn/x86_64/copyi.asm: Likewise.
   13757 	* mpn/x86_64/popham.asm: Likewise.
   13758 
   13759 	* mpn/x86_64/aorsmul_1.asm: Cleanup formatting.
   13760 
   13761 2007-04-25  Torbjorn Granlund  <tege (a] swox.com>
   13762 
   13763 	* mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults.
   13764 
   13765 2007-02-24  Torbjorn Granlund  <tege (a] swox.com>
   13766 
   13767 	* doc/gmp.texi (Toom 3-Way Multiplication): Fix typo.
   13768 	(mpz_scan0, mpz_scan1): Fix typos.
   13769 	(Float Internals): Rewrite paragraph about struct types.
   13770 
   13771 2007-02-12  Torbjorn Granlund  <tege (a] swox.com>
   13772 
   13773 	* mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except
   13774 	diagonal code).
   13775 
   13776 2007-02-05  Torbjorn Granlund  <tege (a] swox.com>
   13777 
   13778 	* mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr,
   13779 	old mpn_fft_fft removed.
   13780 	(mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand.
   13781 	(mpn_fft_add_modF): Rewrite to avoid random branches.
   13782 	(mpn_fft_sub_modF): Likewise.
   13783 
   13784 	* mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite.
   13785 	* mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite.
   13786 	* mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on
   13787 	new addmul and mul code.
   13788 
   13789 2007-01-31  Torbjorn Granlund  <tege (a] swox.com>
   13790 
   13791 	* mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac
   13792 	development right.
   13793 
   13794 	* mpn/powerpc32/vmx/mod_34lsub1.asm: New file.
   13795 
   13796 	* mpn/powerpc32/aors_n.asm: New file, complete rewrite.
   13797 	* mpn/powerpc32/add_n.asm: Remove.
   13798 	* mpn/powerpc32/sub_n.asm: Remove.
   13799 
   13800 2007-01-25  Torbjorn Granlund  <tege (a] swox.com>
   13801 
   13802 	* mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups.
   13803 
   13804 	* mpn/x86_64/core2/lshift.asm: Rewrite.
   13805 	* mpn/x86_64/core2/rshift.asm: Rewrite.
   13806 
   13807 	* mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small
   13808 	speedup.
   13809 	* mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm.
   13810 
   13811 	* mpn/x86_64/pentium4/gmp-mparam.h: New file.
   13812 
   13813 	* mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract
   13814 	code.
   13815 	* mpn/x86_64/pentium4/add_n.asm: Remove.
   13816 	* mpn/x86_64/pentium4/sub_n.asm: Remove.
   13817 
   13818 2007-01-20  Torbjorn Granlund  <tege (a] swox.com>
   13819 
   13820 	* mpn/x86_64/lshift.asm: Add special case for cnt=1.
   13821 
   13822 2007-01-19  Torbjorn Granlund  <tege (a] swox.com>
   13823 
   13824 	* mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at
   13825 	3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5).
   13826 	* mpn/x86_64/addmul_1.asm: Remove.
   13827 	* mpn/x86_64/submul_1.asm: Remove.
   13828 
   13829 2006-12-29  Torbjorn Granlund  <tege (a] swox.com>
   13830 
   13831 	* randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in
   13832 	__gmp_randinit_mt_noseed.
   13833 	(__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions
   13834 	look similar.
   13835 	(__gmp_randclear_mt): Pass actually allocated size.
   13836 
   13837 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c,
   13838 	mul_toom32.c, mul_toom42.c.
   13839 
   13840 	* configure.in: Recognize athlon64 and core2 as alternatives to x86_64.
   13841 	Provide special settings for core2.
   13842 
   13843 	* configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32,
   13844 	mul_toom42.
   13845 
   13846 	* mpn/generic/mul_toom22.c: New file.
   13847 	* mpn/generic/mul.c: Use mpn_mul_toom22.  Trim cutoff points between
   13848 	the mpn_mul_toomN2 functions.  Handle balanced operands at function
   13849 	entry.
   13850 
   13851 2006-12-29  Marco Bodrato  <bodrato (a] mail.dm.unipi.it>
   13852 
   13853 	* mpn/generic/mul_n.c: Rewrite interpolation code.
   13854 
   13855 2006-12-28  Torbjorn Granlund  <tege (a] swox.com>
   13856 
   13857 	* mpn/generic/mul_toom32.c: New file.
   13858 	* mpn/generic/mul_toom42.c: New file.
   13859 	* mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for
   13860 	unbalanced operands.
   13861 
   13862 2006-12-17  Torbjorn Granlund  <tege (a] swox.com>
   13863 
   13864 	* mpn/x86_64/aorrlsh_n.asm: New file.
   13865 	* mpn/x86_64/lshsub_n.asm: New file.
   13866 
   13867 	* mpn/x86_64/core2/aors_n.asm: New file.
   13868 	* mpn/x86_64/core2/lshift.asm: New file.
   13869 	* mpn/x86_64/core2/rshift.asm: New file.
   13870 
   13871 	* mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific
   13872 	code.
   13873 
   13874 	* mpn/x86/p6/lshsub_n.asm: New file.
   13875 
   13876 2006-11-23  Torbjorn Granlund  <tege (a] swox.com>
   13877 
   13878 	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp
   13879 	locally, s->xp might be insufficient.
   13880 
   13881 2006-11-22  Torbjorn Granlund  <tege (a] swox.com>
   13882 
   13883 	* randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result
   13884 	param.
   13885 
   13886 2006-11-06  Torbjorn Granlund  <tege (a] swox.com>
   13887 
   13888 	* tune/set_strp.c: New file.
   13889 
   13890 2006-11-04  Torbjorn Granlund  <tege (a] swox.com>
   13891 
   13892 	* extract-dbl.c: Rewrite to handle nails better, and for general
   13893 	optimization.
   13894 
   13895 	* mpz/bin_uiui.c: Simplify.
   13896 
   13897 	* longlong.h (umul_ppmm) [mmix]: New.
   13898 
   13899 	* tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h,
   13900 	tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements
   13901 	of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD.
   13902 	Add tuning and speed measurement of mpn_addsub_n.
   13903 
   13904 2006-10-31  Torbjorn Granlund  <tege (a] swox.com>
   13905 
   13906 	* gmpxx.h: Remove ternary stuff, it is hardly an optimization and it
   13907 	writes to destination before reading all source operands.
   13908 
   13909 2006-10-25  Torbjorn Granlund  <tege (a] swox.com>
   13910 
   13911 	* mpn/generic/set_str.c: Complete rewrite.
   13912 	* mpn/generic/get_str.c: Likewise.
   13913 
   13914 	* gmp-impl.h (struct powers, powers_t): New types.
   13915 	Restructure GET_STR_* and SET_STR_* thresholds.
   13916 
   13917 2006-09-21  Torbjorn Granlund  <tege (a] swox.com>
   13918 
   13919 	* mpn/generic/rootrem.c: Remove some redundant casts.
   13920 
   13921 2006-07-12  Torbjorn Granlund  <tege (a] swox.com>
   13922 
   13923 	* mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed.
   13924 	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
   13925 
   13926 	* mpf/get_str.c: Avoid copying result when not needed.  Misc cleanups.
   13927 
   13928 	* tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris.
   13929 
   13930 2006-06-30  Torbjorn Granlund  <tege (a] swox.com>
   13931 
   13932 	* configure.in (powerpc-*): Remove repeated path component.
   13933 
   13934 2006-06-15  Torbjorn Granlund  <tege (a] swox.com>
   13935 
   13936 	* configure.in: (ia64-*-linux*): Don't use -O3.
   13937 
   13938 2006-06-14  Torbjorn Granlund  <tege (a] swox.com>
   13939 
   13940 	* mpq/get_str.c: Fix upper base limit boundary in an ASSERT.
   13941 
   13942 	* tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back.
   13943 
   13944 2006-05-31  Torbjorn Granlund  <tege (a] swox.com>
   13945 
   13946 	* tests/mpz/t-set_d.c (check_data): Add more data points.
   13947 
   13948 	* mpz/set_d.c: Handle negative return values from __gmp_extract_double.
   13949 
   13950 2006-05-17  Torbjorn Granlund  <tege (a] swox.com>
   13951 
   13952 	* configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat
   13953 	build.
   13954 
   13955 2006-05-16  Torbjorn Granlund  <tege (a] swox.com>
   13956 
   13957 	* demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10.
   13958 
   13959 	* mpn/generic/addsub_n.c: Fix criteria for when to call _nc functions.
   13960 
   13961 2006-05-12  Torbjorn Granlund  <tege (a] swox.com>
   13962 
   13963 	* config.guess: Recognize more ppc processor types.
   13964 
   13965 2006-05-11  Torbjorn Granlund  <tege (a] swox.com>
   13966 
   13967 	* tune/speed.c (usage): Update URL for gnuplot and quickplot.
   13968 
   13969 2006-05-10  Torbjorn Granlund  <tege (a] swox.com>
   13970 
   13971 	* configure.in (powerpc-*-*): Pass -maltivec to assembler for
   13972 	appropriate CPUs.
   13973 
   13974 2006-05-08  Torbjorn Granlund  <tege (a] swox.com>
   13975 
   13976 	* mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute.
   13977 
   13978 2006-05-03  Torbjorn Granlund  <tege (a] swox.com>
   13979 
   13980 	* mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.
   13981 
   13982 2006-04-27  Torbjorn Granlund  <tege (a] swox.com>
   13983 
   13984 	* mpz/divexact.c: Call mpz_tdiv_q for large operands.
   13985 
   13986 	* configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.
   13987 
   13988 2006-04-26  Torbjorn Granlund  <tege (a] swox.com>
   13989 
   13990 	* config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
   13991 	* config.sub: Handle ultrasparct1.
   13992 
   13993 2006-04-25  Torbjorn Granlund  <tege (a] swox.com>
   13994 
   13995 	* mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
   13996 	non-GNUC data.
   13997 
   13998 2006-04-20  Torbjorn Granlund  <tege (a] swox.com>
   13999 
   14000 	* tests/mpz/convert.c: Increase operands range.
   14001 
   14002 2006-04-19  Torbjorn Granlund  <tege (a] swox.com>
   14003 
   14004 	* configure.in: Support powerpc eABI.
   14005 	* mpn/powerpc32/eabi.m4: New file.
   14006 
   14007 	* configure.in: Support powerpc *bsd.
   14008 	* mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4.
   14009 	* mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4.
   14010 
   14011 	* mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY.
   14012 
   14013 2006-04-18  Torbjorn Granlund  <tege (a] swox.com>
   14014 
   14015 	* configure.in (gmp_mpn_functions_optional): Add lshiftc.
   14016 	(HAVE_NATIVE): Add lshiftc.
   14017 
   14018 	* mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM.
   14019 	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
   14020 	* mpn/powerpc64/mode64/dive_1.asm: Likewise.
   14021 
   14022 	* mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty.
   14023 	* mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise.
   14024 	* mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise.
   14025 
   14026 	* mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4.
   14027 	* mpn/powerpc32/mode1o.asm: Use EXTERN.
   14028 	* mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition.
   14029 	* mpn/powerpc32/darwin.m4 (EXTERN): Likewise.
   14030 
   14031 2006-04-13  Torbjorn Granlund  <tege (a] swox.com>
   14032 
   14033 	* mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2
   14034 	is defined.
   14035 	(mpn_lshiftc): New name for mpn_lshift_com (for consistency with some
   14036 	stuff already in 4.1.4.
   14037 	(mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid
   14038 	divisions.
   14039 
   14040 	* tests/devel/try.c (choice_array): Add mpn_addsub_n[c].
   14041 
   14042 2006-04-11  Torbjorn Granlund  <tege (a] swox.com>
   14043 
   14044 	* aclocal.m4: Regenerate with patched libtool.
   14045 
   14046 	* mpn/asm-defs.m4 (ASM_END): Provide (empty) default.
   14047 
   14048 2006-04-08  Torbjorn Granlund  <tege (a] swox.com>
   14049 
   14050 	* configure.in (gmp_mpn_functions_optional): Add addsub.
   14051 
   14052 	* gmpxx.h: Remove missed MPFR references.
   14053 
   14054 	* gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic.
   14055 
   14056 	* gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
   14057 	define TMP_SALLOC and TMP_BALLOC.
   14058 
   14059 	* mpn/minithres/gmp-mparam.h: New file.
   14060 
   14061 	* tests/mpz/t-io_raw.c: Fix printf type/arg mismatches.
   14062 	* tests/mpz/t-export.c: Likewise.
   14063 	* tests/mpz/io.c: Likewise.
   14064 	* tests/t-constants.c: Likewise.
   14065 
   14066 	* mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to
   14067 	placate icc.
   14068 	* mpn/ia64/hamdist.asm: Likewise.
   14069 	* mpn/ia64/lorrshift.asm: Likewise.
   14070 	* mpn/ia64/dive_1.asm: Likewise.
   14071 
   14072 2006-04-05  Torbjorn Granlund  <tege (a] swox.com>
   14073 
   14074 	* tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
   14075 	(__gmp_tmp_free): Likewise.
   14076 
   14077 	* mpn/generic/mul_fft.c: Optimize many scalar divisions and mod
   14078 	operations into masks and shifts.
   14079 	(mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY.
   14080 
   14081 2006-03-26  Torbjorn Granlund  <tege (a] swox.com>
   14082 
   14083 	* Version 4.2 released.
   14084 
   14085 	* mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM.
   14086 	* mpn/powerpc64/darwin.m4: Likewise.
   14087 	* mpn/powerpc64/linux64.m4: Likewise.
   14088 	* mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM.
   14089 
   14090 2006-03-23  Torbjorn Granlund  <tege (a] swox.com>
   14091 
   14092 	* gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::.
   14093 
   14094 	* gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now.
   14095 	(struct __gmp_ternary_addmul2): Likewise.
   14096 	(struct __gmp_ternary_submul2): Likewise.
   14097 
   14098 	* gmpxx.h: #include <cstring>.
   14099 	(struct __gmp_alloc_cstring): Prefix strlen with std::.
   14100 
   14101 	* mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN.
   14102 	* mpn/x86/pentium/copyi.asm: Likewise.
   14103 	* mpn/x86/pentium/copyd.asm: Likewise.
   14104 
   14105 2006-03-22  Torbjorn Granlund  <tege (a] swox.com>
   14106 
   14107 	* gmp-h.in: Add a "using std::FILE" for C++.
   14108 	(_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H.
   14109 
   14110 	* gmpxx.h: Remove mpfr code.
   14111 	* tests/cxx: Likewise.
   14112 
   14113 	* gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with
   14114 	GNU/Linux public include file.
   14115 
   14116 	* configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype.
   14117 	Grab powerpc32/darwin.m4 for ABI=mode32.
   14118 
   14119 	* configure.in: Use host_cpu whenever just the cpu type is needed.
   14120 
   14121 2006-03-08  Torbjorn Granlund  <tege (a] swox.com>
   14122 
   14123 	* mpz/get_si.c: Fix a typo.
   14124 
   14125 	* tests/mpq/t-get_d.c (check_random): Improve random generation for
   14126 	nails.
   14127 
   14128 2006-02-28  Torbjorn Granlund  <tege (a] swox.com>
   14129 
   14130 	* tests/mpq/t-get_d.c (check_random): New function.
   14131 	(main): Call check_random.
   14132 
   14133 	* mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not
   14134 	BITS_PER_MP_LIMB.  Make it work for LIMBS_PER_DOUBLE == 4.
   14135 	Use MPZ_REALLOC.
   14136 
   14137 	* mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4.
   14138 
   14139 	* extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3.
   14140 
   14141 2006-02-27  Torbjorn Granlund  <tege (a] swox.com>
   14142 
   14143 	* mpz/cmp_d.c: Declare `i'.
   14144 	* mpz/cmpabs_d.c: Likewise.
   14145 
   14146 2006-02-23  Torbjorn Granlund  <tege (a] swox.com>
   14147 
   14148 	* mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
   14149 	* mpn/powerpc32/vmx/copyi.asm: Likewise.
   14150 
   14151 2006-02-22  Torbjorn Granlund  <tege (a] swox.com>
   14152 
   14153 	* mpn/powerpc32/vmx/logops_n.asm: New file.
   14154 
   14155 	* mpn/powerpc32/diveby3.asm: Rewrite.
   14156 
   14157 2006-02-21  Torbjorn Granlund  <tege (a] swox.com>
   14158 
   14159 	* mpn/powerpc32/vmx/copyi.asm: New file.
   14160 	* mpn/powerpc32/vmx/copyd.asm: New file.
   14161 
   14162 2006-02-17  Torbjorn Granlund  <tege (a] swox.com>
   14163 
   14164 	* mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
   14165 	deleted mpn_sub_n.
   14166 
   14167 2006-02-16  Torbjorn Granlund  <tege (a] swox.com>
   14168 
   14169 	* mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.
   14170 
   14171 2006-02-15  Torbjorn Granlund  <tege (a] swox.com>
   14172 
   14173 	* tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c.
   14174 
   14175 	* tests/devel/addmul_N.c: New file.
   14176 	* tests/devel/mul_N.c: New file.
   14177 
   14178 	* mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte
   14179 	boundary.
   14180 
   14181 	* mpn/alpha/ev6/nails/aors_n.asm: New file.
   14182 	* mpn/alpha/ev6/nails/add_n.asm: Remove.
   14183 	* mpn/alpha/ev6/nails/sub_n.asm: Remove.
   14184 
   14185 	* mpn/alpha/ev6/nails/addmul_1.asm: Rewrite.
   14186 	* mpn/alpha/ev6/nails/submul_1.asm: Likewise.
   14187 	* mpn/alpha/ev6/nails/mul_1.asm: Likewise.
   14188 
   14189 	* mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels.
   14190 	* mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels.
   14191 	* mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels.
   14192 
   14193 2006-02-13  Torbjorn Granlund  <tege (a] swox.com>
   14194 
   14195 	* mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
   14196 	1 c/l.
   14197 
   14198 	* mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC.
   14199 
   14200 	* mpn/x86_64/rsh1add_n.asm: Replace high register with rbx.
   14201 	* mpn/x86_64/rsh1sub_n.asm: Likewise.
   14202 
   14203 2006-02-10  Torbjorn Granlund  <tege (a] swox.com>
   14204 
   14205 	* mpn/powerpc64/sqr_diagonal.asm: Software pipeline.
   14206 
   14207 	* mpn/powerpc64/vmx/popcount.asm: Add prefetching.
   14208 
   14209 2006-02-07  Torbjorn Granlund  <tege (a] swox.com>
   14210 
   14211 	* mpn/powerpc64/mode64/diveby3.asm: Rewrite.
   14212 
   14213 2006-02-04  Torbjorn Granlund  <tege (a] swox.com>
   14214 
   14215 	* mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code.
   14216 	Move compare for huge n so that it is always executed.
   14217 
   14218 2006-02-03  Torbjorn Granlund  <tege (a] swox.com>
   14219 
   14220 	* mpn/powerpc32/linux.m4 (LEA): Add support for PIC.
   14221 
   14222 	* configure.in (powerpc): New optional, gcc_cflags_subtype.
   14223 
   14224 	* mpn/x86_64/pentium4/add_n.asm: New file.
   14225 	* mpn/x86_64/pentium4/sub_n.asm: New file.
   14226 	* mpn/x86_64/pentium4/lshift.asm: New file.
   14227 
   14228 	* mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to
   14229 	16-multiple.
   14230 	* mpn/powerpc64/aix.m4: Likewise.
   14231 	* mpn/powerpc64/darwin.m4: Likewise.
   14232 
   14233 	* mpn/powerpc64/copyi.asm: Align loop to 16-multiple.
   14234 	* mpn/powerpc64/copyd.asm: Likewise
   14235 
   14236 	* configure.in (powerpc): Add vmx to relevant paths.
   14237 
   14238 	* mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for
   14239 	alignment.
   14240 	* mpn/powerpc64/aix.m4: Likewise.
   14241 	* mpn/powerpc64/darwin.m4: Likewise.
   14242 
   14243 	* mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros,
   14244 	inherited from powerpc64 versions.
   14245 	* mpn/powerpc32/aix.m4: Likewise.
   14246 	* mpn/powerpc32/darwin.m4: Likewise.
   14247 
   14248 	* mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64.
   14249 	* mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file.
   14250 
   14251 2006-01-22  Torbjorn Granlund  <tege (a] swox.com>
   14252 
   14253 	* configure.in: Generalize OS-dependent patterns for powerpcs.
   14254 
   14255 2006-01-20  Torbjorn Granlund  <tege (a] swox.com>
   14256 
   14257 	* mpn/x86_64/popham.asm: Optimize.
   14258 
   14259 	* config.guess: Recognize power4 and up under linux-gnu.
   14260 	* config.sub: Generalize power recognition code.
   14261 	* acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors.
   14262 	* configure.in: Recognize powerpc processors masquerading as power
   14263 	processors.
   14264 
   14265 2006-01-19  Torbjorn Granlund  <tege (a] swox.com>
   14266 
   14267 	* mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller
   14268 	code.
   14269 	* mpn/x86_64/com_n.asm: Likewise.
   14270 
   14271 2006-01-18  Torbjorn Granlund  <tege (a] swox.com>
   14272 
   14273 	* mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing.
   14274 	* mpn/x86_64/sublsh1_n.asm: Likewise.
   14275 
   14276 2006-01-17  Torbjorn Granlund  <tege (a] swox.com>
   14277 
   14278 	* mpn/generic/diveby3.c: Use GMP standard parameter names.  Nailify
   14279 	alternative code.  Use restrict for params.
   14280 
   14281 	* configure.in: Recognize andn_n as not needing nailification.
   14282 
   14283 	* tests/mpq/t-equal.c (check_various): Disable a test that gives common
   14284 	factors for GMP_NUMB_BITS == 62.
   14285 
   14286 2006-01-16  Torbjorn Granlund  <tege (a] swox.com>
   14287 
   14288 	* mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
   14289 	was inaccurate for nails.
   14290 
   14291 2006-01-15  Torbjorn Granlund  <tege (a] swox.com>
   14292 
   14293 	* mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.
   14294 
   14295 2006-01-08  Torbjorn Granlund  <tege (a] swox.com>
   14296 
   14297 	* mpn/alpha/ev6/sqr_diagonal.asm: New file.
   14298 
   14299 2006-01-06  Torbjorn Granlund  <tege (a] swox.com>
   14300 
   14301 	* mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l.
   14302 
   14303 	* mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
   14304 	(mpn_mullow_n): Use it.
   14305 
   14306 	* mpn/powerpc64/mode64/dive_1.asm: Use EXTERN.
   14307 	* mpn/powerpc64/mode64/mode1o.asm: Likewise.
   14308 
   14309 	* mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol.
   14310 	(LDSYM): Remove [RW] attribute.
   14311 	* mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition.
   14312 	* mpn/powerpc64/darwin.m4 (EXTERN): Likewise.
   14313 
   14314 2006-01-05  Torbjorn Granlund  <tege (a] swox.com>
   14315 
   14316 	* mpn/powerpc64/mode64/mode1o.asm: New file.
   14317 
   14318 	* mpn/powerpc64/mode64/dive_1.asm: Use L() for labels.  Invoke ASM_END.
   14319 
   14320 	* mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END.
   14321 
   14322 	* mpn/powerpc64/linux64.m4: Move toc entry generation from direct at
   14323 	DEF_OBJECT to delayed via LDSYM, define ASM_END to output it.
   14324 	* mpn/powerpc64/aix.m4: Likewise.
   14325 	* mpn/powerpc64/darwin.m4: Define a dummy ASM_END.
   14326 
   14327 	* mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings.
   14328 	* mpn/powerpc64/mode64/mul_1.asm: Likewise.
   14329 
   14330 	* mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5.
   14331 
   14332 2006-01-04  Torbjorn Granlund  <tege (a] swox.com>
   14333 
   14334 	* mpn/powerpc64/mode64/dive_1.asm: New file.
   14335 
   14336 	* mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START.
   14337 
   14338 	* mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo.
   14339 
   14340 	* mpn/x86_64/diveby3.asm: Rewrite.
   14341 
   14342 2006-01-03  Torbjorn Granlund  <tege (a] swox.com>
   14343 
   14344 	* configure.in: Update bugs reporting address.
   14345 
   14346 	* mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing.
   14347 	Misc cleanup.
   14348 
   14349 2006-01-02  Torbjorn Granlund  <tege (a] swox.com>
   14350 
   14351 	* mpn/powerpc64/linux64.m4 (CALL): New macro.
   14352 	* mpn/powerpc64/aix.m4: Likewise.
   14353 	* mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".
   14354 
   14355 2005-12-28  Torbjorn Granlund  <tege (a] swox.com>
   14356 
   14357 	* mpn/powerpc64/mode64/mod_34lsub1.asm: New file.
   14358 
   14359 2005-12-26  Torbjorn Granlund  <tege (a] swox.com>
   14360 
   14361 	* mpn/x86_64/mod_34lsub1.asm: New file.
   14362 
   14363 2005-12-20  Torbjorn Granlund  <tege (a] swox.com>
   14364 
   14365 	* mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12.
   14366 	Use addq instead of leaq for pointer updates; schedule them.  (These
   14367 	changes shaves one cycle of overhead and 0.25 c/l.)
   14368 
   14369 2005-12-18  Torbjorn Granlund  <tege (a] swox.com>
   14370 
   14371 	* mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
   14372 	* mpf/set_q.c: Likewise.
   14373 
   14374 2005-12-16  Torbjorn Granlund  <tege (a] swox.com>
   14375 
   14376 	* mpn/generic/tdiv_qr.c: Remove statement with no effect.
   14377 	Rename dead variable to `dummy'.
   14378 
   14379 2005-12-15  Torbjorn Granlund  <tege (a] swox.com>
   14380 
   14381 	* demos/pexpr.c (setup_error_handler): Add a missing ";".
   14382 
   14383 2005-11-27  Torbjorn Granlund  <tege (a] swox.com>
   14384 
   14385 	* mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking
   14386 	for unbalanced operands.
   14387 
   14388 	* mpn/generic/mul_fft.c: Remove many scalar divisions.
   14389 	(mpn_mul_fft_lcm): Simplify.
   14390 	(mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced
   14391 	operands.
   14392 
   14393 2005-11-22  Torbjorn Granlund  <tege (a] swox.com>
   14394 
   14395 	* configure.in: Properly recognize all 32-bit Solaris releases.
   14396 
   14397 2005-11-10  Torbjorn Granlund  <tege (a] swox.com>
   14398 
   14399 	* mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
   14400 	mpn_fft_add_modF and mpn_fft_normalize.
   14401 
   14402 2005-11-02  Torbjorn Granlund  <tege (a] swox.com>
   14403 
   14404 	* tests/mpz/reuse.c: Increase operand size, decrease # of reps.
   14405 
   14406 	* mpz/rootrem.c: Adapt to new mpn_rootrem.
   14407 	* mpz/root.c: Likewise.
   14408 
   14409 	* tests/mpz/reuse.c: Test mpz_rootrem.
   14410 
   14411 	With Paul Zimmermann:
   14412 	* mpn/generic/rootrem.c: Complete rewrite.
   14413 
   14414 2005-10-31  Torbjorn Granlund  <tege (a] swox.com>
   14415 
   14416 	* mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial
   14417 	dividing.
   14418 
   14419 	* mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead
   14420 	of mpz_tdiv_ui.
   14421 
   14422 	* mpz/divegcd.c: Correct probability number for GCD == 1.
   14423 
   14424 	* mpn/x86_64/mul_basecase.asm: Remove an obsolete comment.
   14425 
   14426 	* mpn/x86: Add cycle counts for array of x86 processors.
   14427 
   14428 	* mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp.
   14429 
   14430 	* mpn/powerpc32: Add POWER5 timings.
   14431 
   14432 	* mpn/powerpc32/README: Describe global reference variations.
   14433 
   14434 	* mpn/ia64/divrem_2.asm: Add some comments.
   14435 
   14436 	* mpn/ia64/divrem_1.asm: Reformat.
   14437 
   14438 	* mpn/ia64/addmul_2.asm: Correct a comment on slotting.
   14439 	* mpn/ia64/logops_n.asm: Likewise.
   14440 
   14441 	* mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl.
   14442 
   14443 	* mpn/generic/dive_1.c: Whitespace cleanup.
   14444 
   14445 	* mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting.
   14446 	* mpn/alpha/ev6/nails/addmul_2.asm: Likewise.
   14447 	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
   14448 
   14449 	* mpf/out_str.c: List some allocation improvement ideas.
   14450 
   14451 	* doc/gmp.texi: Update many URLs and email addresses.
   14452 
   14453 	* gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED.
   14454 
   14455 2005-10-26  Torbjorn Granlund  <tege (a] swox.com>
   14456 
   14457 	* tune/tuneup.c (tune_mullow): Update param.max_size for each threshold
   14458 	measurement.
   14459 
   14460 	* configure.in (POWERPC64_PATTERN/*-*-darwin*): Set
   14461 	SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64.
   14462 	(POWERPC64_PATTERN/*-*-linux*): Likewise.
   14463 
   14464 2005-10-03  Torbjorn Granlund  <tege (a] swox.com>
   14465 
   14466 	* demos/factorize.c (factor_using_division_2kp): Honor verbose flag.
   14467 	(factor_using_pollard_rho): Divide out new factor before it's
   14468 	clobbered.  Don't stop factoring after a composite factor was found.
   14469 
   14470 2005-09-17  Torbjorn Granlund  <tege (a] swox.com>
   14471 
   14472 	* demos/pexpr.c (fns): Add factorial keywords.
   14473 
   14474 2005-08-16  Torbjorn Granlund  <tege (a] swox.com>
   14475 
   14476 	* tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
   14477 	* mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".
   14478 
   14479 2005-08-15  Torbjorn Granlund  <tege (a] swox.com>
   14480 
   14481 	* configure.in: Change "amd64" => "x86_64".
   14482 
   14483 2005-06-13  Torbjorn Granlund  <tege (a] swox.com>
   14484 
   14485 	* mpn/generic/pre_mod_1.c: Canonicalize variable names.
   14486 
   14487 	* mpn/generic/divrem.c: Rate qxn test as UNLIKELY.
   14488 
   14489 	* mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK.
   14490 
   14491 	* tune/tuneup.c (tune_mullow): Fix all max_size fields.
   14492 
   14493 	* gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define.
   14494 	* tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT.
   14495 	(sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT.
   14496 
   14497 	* mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT.
   14498 
   14499 	* gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n):
   14500 	Handle nails.
   14501 
   14502 2005-06-13  Niels Mller  <nisse (a] lysator.liu.se>
   14503 
   14504 	* mpn/generic/gcdext.c (gcdext_schoenhage): Check for the
   14505 	(unlikely) case that one of the hgcd/euclid steps results in two
   14506 	remainders of one limb each. Then use gcdext_1.
   14507 
   14508 2005-06-12  Torbjorn Granlund  <tege (a] swox.com>
   14509 
   14510 	* mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.
   14511 
   14512 2005-06-11  Torbjorn Granlund  <tege (a] swox.com>
   14513 
   14514 	* mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later.
   14515 	Add mpn_add_nc entry.
   14516 
   14517 	* mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads.
   14518 
   14519 2005-06-09  Torbjorn Granlund  <tege (a] swox.com>
   14520 
   14521 	* mpn/ia64/dive_1.asm: Fix issues with HP-UX.
   14522 
   14523 2005-06-08  Torbjorn Granlund  <tege (a] swox.com>
   14524 
   14525 	* mpn/ia64/diveby3.asm: Update TODO list.
   14526 
   14527 	* mpn/ia64/mode1o.asm: Fix comment typos.
   14528 
   14529 	* mpn/ia64/dive_1.asm: New file.
   14530 
   14531 2005-06-07  Torbjorn Granlund  <tege (a] swox.com>
   14532 
   14533 	* mpn/ia64/mode1o.asm: Add prefetching.
   14534 
   14535 	* mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.
   14536 
   14537 2005-06-06  Torbjorn Granlund  <tege (a] swox.com>
   14538 
   14539 	* mpn/ia64/hamdist.asm: Complete rewrite.
   14540 	* mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in.
   14541 
   14542 	* mpn/ia64/aors_n.asm: Rewrite feed-in code.
   14543 	* mpn/ia64/rsh1aors_n.asm: Likewise.
   14544 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   14545 	* mpn/ia64/lorrshift.asm: Likewise.
   14546 
   14547 2005-06-04  Torbjorn Granlund  <tege (a] swox.com>
   14548 
   14549 	* tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless
   14550 	USE_PREINV_MOD_1.
   14551 	(choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD
   14552 	is zero.
   14553 
   14554 2005-06-03  Torbjorn Granlund  <tege (a] swox.com>
   14555 
   14556 	* mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
   14557 	* mpn/alpha/ev6/mul_1.asm: Likewise.
   14558 
   14559 2005-06-02  Torbjorn Granlund  <tege (a] swox.com>
   14560 
   14561 	* tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround
   14562 	to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI.
   14563 
   14564 2005-06-01  Torbjorn Granlund  <tege (a] swox.com>
   14565 
   14566 	* tests/devel/try.c (main): Fix a typo.
   14567 
   14568 2005-05-31  Torbjorn Granlund  <tege (a] swox.com>
   14569 
   14570 	* mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.
   14571 
   14572 2005-05-30  Torbjorn Granlund  <tege (a] swox.com>
   14573 
   14574 	* tests/misc.c (tests_rand_start): Mask random seed to 32 bits.
   14575 
   14576 2005-05-29  Torbjorn Granlund  <tege (a] swox.com>
   14577 
   14578 	* mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM.
   14579 	* mpn/powerpc64/mode32/addmul_1.asm: Likewise.
   14580 	* mpn/powerpc64/mode32/submul_1.asm: Likewise.
   14581 
   14582 	* mpn/powerpc32/mode1o.asm: Rewrite to actually work.
   14583 
   14584 	* mpn/powerpc32/aix.m4 (LEA): New macro.
   14585 	(ASM_END): New macro.
   14586 
   14587 	* mpn/powerpc32/linux.m4: New file.
   14588 	* mpn/powerpc32/darwin.m4: New file.
   14589 	* configure.in: Use linux.m4 and darwin.m4.
   14590 	(powerpc64-linux-gnu): Add support for mode32.
   14591 
   14592 2005-05-25  Torbjorn Granlund  <tege (a] swox.com>
   14593 
   14594 	* mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw.
   14595 
   14596 	* tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo.
   14597 
   14598 	* demos/isprime.c: #include stdlib.h.
   14599 	* tests/rand/t-urbui.c: Likewise.
   14600 	* tests/rand/t-urmui.c: Likewise.
   14601 
   14602 	* tests/mpz/t-popcount.c (check_random): Remove spurious printf arg.
   14603 
   14604 	* mpn/ia64/lorrshift.asm: Cleanup code layout.
   14605 	* mpn/ia64/popcount.asm: Likewise.
   14606 
   14607 2005-05-24  Torbjorn Granlund  <tege (a] swox.com>
   14608 
   14609 	* tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field.
   14610 	(compare): Handle SIZE_GET_STR as SIZE_RETVAL.
   14611 
   14612 	* tests/refmpn.c (refmpn_get_str): Rewrite to make it work.
   14613 
   14614 2005-05-23  Torbjorn Granlund  <tege (a] swox.com>
   14615 
   14616 	* mpn/amd64/add_n.asm: Add mpn_add_nc entry point.
   14617 	* mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point.
   14618 
   14619 	* longlong.h (many places): Remove lvalue casts.
   14620 
   14621 	* gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow
   14622 	for > 4G digits.
   14623 
   14624 	* mpn/alpha/ev6/add_n.asm: Prefetch using ldl.
   14625 	* mpn/alpha/ev6/sub_n.asm: Likewise.
   14626 
   14627 	* mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl.
   14628 
   14629 	* mpn/ia64/aors_n.asm: Prefetch using lfetch.
   14630 	* mpn/ia64/lorrshift.asm: Likewise.
   14631 	* mpn/ia64/popcount.asm: Likewise.
   14632 	* mpn/ia64/diveby3.asm: Likewise.
   14633 
   14634 2005-05-22  Torbjorn Granlund  <tege (a] swox.com>
   14635 
   14636 	* mpn/alpha/ev67/popcount.asm: Prefetch.
   14637 	* mpn/alpha/ev67/hamdist.asm: Prefetch.
   14638 
   14639 	* longlong.h (add_ssaaaa) [x86]: Remove lvalue casts.
   14640 	(sub_ddmmss) [x86]: Likewise.
   14641 
   14642 	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD.
   14643 	(param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD.
   14644 	(param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB.
   14645 
   14646 2005-05-21  Torbjorn Granlund  <tege (a] swox.com>
   14647 
   14648 	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor
   14649 	field according to UDIV_NEEDS_NORMALIZATION.
   14650 
   14651 	* mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments.
   14652 
   14653 2005-05-20  Torbjorn Granlund  <tege (a] swox.com>
   14654 
   14655 	* mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in
   14656 	proper register.
   14657 
   14658 	* mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version):
   14659 	Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code.
   14660 
   14661 2005-05-19  Torbjorn Granlund  <tege (a] swox.com>
   14662 
   14663 	* mpn/alpha/diveby3.asm: Make it actually work.
   14664 
   14665 	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define.
   14666 	* mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest
   14667 	operands; use TMP_S* allocation for medium operands.
   14668 
   14669 	* gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test.
   14670 
   14671 2005-05-18  Torbjorn Granlund  <tege (a] swox.com>
   14672 
   14673 	* mpn/generic/mul_n.c: Make squaring and multiplication code more
   14674 	similar.  Use TMP_S* functions.
   14675 
   14676 	* gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument.
   14677 	(TMP_SALLOC): New macro for "small" allocations.
   14678 	(TMP_BALLOC): New macro for "big" allocations.
   14679 	(TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use
   14680 	just TMP_SALLOC.
   14681 	(WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant
   14682 	functions, depending on size.
   14683 
   14684 	* *.c: Remove TMP_XXXX marker arguments.
   14685 
   14686 	* acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case.
   14687 
   14688 2005-05-16  Torbjorn Granlund  <tege (a] swox.com>
   14689 
   14690 	* mpn/ia64/gmp-mparam.h: Further extend FFT tables.
   14691 
   14692 2005-05-15  Torbjorn Granlund  <tege (a] swox.com>
   14693 
   14694 	* gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
   14695 	(udiv_qrnnd_preinv2gen): Likewise.
   14696 
   14697 2005-05-14  Torbjorn Granlund  <tege (a] swox.com>
   14698 
   14699 	* longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
   14700 	operands.
   14701 	* (sub_ddmmss) [x86_64]: Likewise.
   14702 
   14703 2005-05-02  Torbjorn Granlund  <tege (a] swox.com>
   14704 
   14705 	* acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle
   14706 	version numbers like B.11.X.32509-32512.GP.
   14707 
   14708 	* mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE.
   14709 
   14710 	* mpn/powerpc64/mode64/aors_n.asm: Add a MULFUNC_PROLOGUE.
   14711 
   14712 	* mpf/inp_str.c: Use plain int for mpf_set_str return value (works
   14713 	around gcc 4 bug).
   14714 
   14715 	* acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly
   14716 	syntax.
   14717 	(long long reliability test 1): New GMP_PROG_CC_WORKS_PART test.
   14718 	(long long reliability test 2): New GMP_PROG_CC_WORKS_PART test.
   14719 
   14720 	* configure.in: Add mode64 support for darwin.  Use darwin.m4.
   14721 	Add cflags_opt flags for mode32 darwin.
   14722 
   14723 	* mpn/powerpc64: Use L() for all asm files.
   14724 
   14725 	* mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes".
   14726 
   14727 	* mpn/powerpc64/darwin.m4: New file.
   14728 
   14729 	* mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM.
   14730 	Rework DEF_OBJECT to need just one argument.
   14731 	* mpn/powerpc64/aix.m4: Likewise.
   14732 
   14733 	* mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with
   14734 	LDSYM.  Optimize somewhat.  Remove 2nd DEF_OBJECT operand.
   14735 
   14736 2005-05-01  Torbjorn Granlund  <tege (a] swox.com>
   14737 
   14738 	* mpn/generic/popham.c: Compute final summation differently for 64-bit.
   14739 
   14740 	* tests/mpz/t-popcount.c (check_random): New function.
   14741 	(main): Call it.
   14742 
   14743 2005-04-28  Torbjorn Granlund  <tege (a] swox.com>
   14744 
   14745 	* mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop.
   14746 	* mpn/amd64/sub_n.asm: Likewise.
   14747 
   14748 2005-04-09  Torbjorn Granlund  <tege (a] swox.com>
   14749 
   14750 	* mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of
   14751 	mp_size_t argument.
   14752 	* mpn/powerpc64/copyd.asm: Likewise.
   14753 	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
   14754 	* mpn/powerpc64/lshift.asm: Likewise.
   14755 	* mpn/powerpc64/rshift.asm: Likewise.
   14756 	* mpn/powerpc64/logops_n.asm: Likewise.
   14757 	* mpn/powerpc64/com_n.asm: Likewise.
   14758 
   14759 2005-04-08  Torbjorn Granlund  <tege (a] swox.com>
   14760 
   14761 	* mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.
   14762 
   14763 2005-04-07  Torbjorn Granlund  <tege (a] swox.com>
   14764 
   14765 	* mpn/powerpc32/add_n.asm: Add nc entry point.
   14766 	* mpn/powerpc32/sub_n.asm: Likewise.
   14767 
   14768 	* mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers.
   14769 
   14770 	* mpn/alpha/add_n.asm: Add correct cycle/limb numbers.
   14771 	* mpn/alpha/sub_n.asm: Likewise.
   14772 	* mpn/alpha/ev5/add_n.asm: Likewise.
   14773 	* mpn/alpha/ev5/sub_n.asm: Likewise.
   14774 
   14775 2005-03-31  Torbjorn Granlund  <tege (a] swox.com>
   14776 
   14777 	* mpn/x86/k7/gmp-mparam.h: Fix typo in last change.
   14778 
   14779 2005-03-19  Torbjorn Granlund  <tege (a] swox.com>
   14780 
   14781 	* mpn/amd64/gmp-mparam.h: Update.
   14782 
   14783 	* mpn/alpha/gmp-mparam.h: Update.
   14784 	* mpn/alpha/ev5/gmp-mparam.h: Update.
   14785 	* mpn/alpha/ev6/gmp-mparam.h: Update.
   14786 
   14787 	* mpn/ia64/gmp-mparam.h: Update.
   14788 
   14789 	* mpn/x86/p6/mmx/gmp-mparam.h: Update.
   14790 	* mpn/x86/pentium4/sse2/gmp-mparam.h: Update.
   14791 	* mpn/x86/k7/gmp-mparam.h: Update.
   14792 
   14793 	* tests/mpz/t-gcd.c (main): Honor command line reps argument.
   14794 
   14795 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code
   14796 	for generating test operands.
   14797 
   14798 2005-03-17  Niels Mller  <nisse (a] lysator.liu.se>
   14799 
   14800 	* mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much
   14801 	to adjust the top quotient.
   14802 	(hgcd_adjust): The quotient can be off by either 1 or 2.
   14803 
   14804 2005-03-16  Torbjorn Granlund  <tege (a] swox.com>
   14805 
   14806 	* tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of
   14807 	gcd,gcdext thresholds.
   14808 
   14809 2005-03-15  Niels Mller  <nisse (a] lysator.liu.se>
   14810 
   14811 	* mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer,
   14812 	reuse all temporary limb storage, including the storage used for the
   14813 	qstack.
   14814 
   14815 2005-03-09  Torbjorn Granlund  <tege (a] swox.com>
   14816 
   14817 	* mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE.
   14818 
   14819 2005-03-05  Torbjorn Granlund  <tege (a] swox.com>
   14820 
   14821 	* mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE.
   14822 	* mpn/ia64/gmp-mparam.h: Likewise.
   14823 
   14824 2005-02-17  Torbjorn Granlund  <tege (a] swox.com>
   14825 
   14826 	* mpn/ia64/divrem_1.asm: Add preinv entry point.
   14827 
   14828 2005-01-13  Torbjorn Granlund  <tege (a] swox.com>
   14829 
   14830 	* gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
   14831 	(MPN_SIZEINBASE_16): Likewise.
   14832 
   14833 2004-12-17  Torbjorn Granlund  <tege (a] swox.com>
   14834 
   14835 	* tune/speed.c (run_gnuplot): Use lines, not linespoints.
   14836 	Output a reset gnuplot command initially.
   14837 
   14838 2004-12-04  Torbjorn Granlund  <tege (a] swox.com>
   14839 
   14840 	* mpn/generic/random2.c (gmp_rrandomb): Rework again.
   14841 	* mpz/rrandomb.c (gmp_rrandomb): Likewise.
   14842 
   14843 	* mpn/amd64/redc_1.asm: Call via PLT when PIC.
   14844 
   14845 2004-11-29  Torbjorn Granlund  <tege (a] swox.com>
   14846 
   14847 	* mpn/amd64/divrem_1.asm: Add preinv entry point.
   14848 	* mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1.
   14849 
   14850 2004-11-24  Torbjorn Granlund  <tege (a] swox.com>
   14851 
   14852 	* mpn/alpha/diveby3.asm: Use correct prefetch instruction.
   14853 
   14854 2004-11-19  Torbjorn Granlund  <tege (a] swox.com>
   14855 
   14856 	* mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
   14857 	Add r31 dummy operand to `br' instruction.
   14858 
   14859 2004-11-17  Torbjorn Granlund  <tege (a] swox.com>
   14860 
   14861 	* mpn/powerpc64/mode64/addmul_1.asm: Rewrite.
   14862 	* mpn/powerpc64/mode64/mul_1.asm: Rewrite.
   14863 
   14864 	* configure.in: Invoke AC_C_RESTRICT.
   14865 
   14866 2004-11-16  Torbjorn Granlund  <tege (a] swox.com>
   14867 
   14868 	* mpn/alpha/diveby3.asm: New file.
   14869 
   14870 2004-11-13  Torbjorn Granlund  <tege (a] swox.com>
   14871 
   14872 	* mpn/amd64/popham.asm: New file.
   14873 
   14874 2004-11-12  Torbjorn Granlund  <tege (a] swox.com>
   14875 
   14876 	* mpn/amd64/add_n.asm: Correct cycle count.
   14877 	* mpn/amd64/sub_n.asm: Likewise.
   14878 
   14879 	* mpn/amd64/dive_1.asm: Speed divisors with many factors of 2.
   14880 
   14881 2004-11-11  Torbjorn Granlund  <tege (a] swox.com>
   14882 
   14883 	* mpn/amd64/dive_1.asm: New file.
   14884 
   14885 2004-11-10  Torbjorn Granlund  <tege (a] swox.com>
   14886 
   14887 	* mpn/generic/popham.c: Add comment.
   14888 
   14889 2004-11-09  Torbjorn Granlund  <tege (a] swox.com>
   14890 
   14891 	* mpn/amd64/com_n.asm: New file.
   14892 
   14893 	* mpn/amd64/logops_n.asm: New file.
   14894 
   14895 2004-11-08  Torbjorn Granlund  <tege (a] swox.com>
   14896 
   14897 	* mpn/powerpc64/com_n.asm: New file.
   14898 
   14899 2004-11-05  Torbjorn Granlund  <tege (a] swox.com>
   14900 
   14901 	* mpn/amd64/diveby3.asm: New file.
   14902 
   14903 	* config.guess: Strip any PPC string in /proc/cpuinfo.
   14904 	Recognize 970 in that code.
   14905 
   14906 2004-11-01  Torbjorn Granlund  <tege (a] swox.com>
   14907 
   14908 	* mpn/amd64/mul_basecase.asm: New file.
   14909 
   14910 	* mpn/amd64/redc_1.asm: New file.
   14911 
   14912 2004-10-25  Torbjorn Granlund  <tege (a] swox.com>
   14913 
   14914 	* mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts.
   14915 
   14916 	* mpn/powerpc64/README: Update POWER5/PPC970 pipeline information.
   14917 
   14918 	* mpn/generic/mul_basecase.c (MAX_LEFT): Add comment.
   14919 
   14920 	* doc/gmp.texi: Consistently use "x86" denotation.
   14921 	(Assembler SIMD Instructions): Mention SSE2 usage.
   14922 
   14923 	* demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call.
   14924 
   14925 2004-10-18  Torbjorn Granlund  <tege (a] swox.com>
   14926 
   14927 	* mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry
   14928 	inversion trick.
   14929 
   14930 2004-10-16  Torbjorn Granlund  <tege (a] swox.com>
   14931 
   14932 	* configure.in: Support icc under x86.
   14933 	(ia64-*-linux*): Pass -no-gcc to icc.
   14934 
   14935 2004-10-15  Torbjorn Granlund  <tege (a] swox.com>
   14936 
   14937 	* longlong.h (ia64 umul_ppmm): Add version for icc.
   14938 
   14939 	* configure.in: Support icc under ia64-*-linux*.
   14940 
   14941 	* acinclude.m4: New "compiler works" test for icc 8.1 bug.
   14942 	(GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC.
   14943 
   14944 2004-10-14  Torbjorn Granlund  <tege (a] swox.com>
   14945 
   14946 	* mpn/generic/gcdext.c: Add a few missing TMP_MARK.
   14947 
   14948 2004-10-14  Torbjorn Granlund  <tege (a] swox.com>
   14949 
   14950 	* acinclude.m4 (GMP_ASM_W32): Try also "data4".
   14951 
   14952 	* mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel
   14953 	assembler.
   14954 	* mpn/ia64/aors_n.asm: Likewise.
   14955 
   14956 	* mpn/ia64/divrem_2.asm: Add ".prologue".
   14957 
   14958 	* mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the
   14959 	Intel assembler.
   14960 
   14961 	* longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
   14962 	* gmp-impl.h: Likewise.
   14963 
   14964 2004-10-12  Torbjorn Granlund  <tege (a] swox.com>
   14965 
   14966 	* mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for
   14967 	n=2.
   14968 	* mpn/ia64/addmul_2.asm: Likewise.
   14969 
   14970 	* tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2.
   14971 
   14972 	* tune/speed.c (routine): Make R parameter optional for mpn_mul_2.
   14973 
   14974 2004-10-11  Torbjorn Granlund  <tege (a] swox.com>
   14975 
   14976 	* mpn/sparc64/addmul_1.asm: Update a comment.
   14977 
   14978 	* tests/devel/aors_n.c: #include tests.h.
   14979 	* tests/devel/anymul_1.c: Likewise.
   14980 	* tests/devel/shift.c: Likewise.
   14981 	* tests/devel/copy.c: Likewise.
   14982 
   14983 	* tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n,
   14984 	mpn_rsh1add_n, and mpn_rsh1sub_n.
   14985 
   14986 	* mpn/ia64/submul_1.asm: Add TODO item.
   14987 
   14988 	* mpn/ia64/aors_n.asm: Rewrite function entry code (again).
   14989 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   14990 	* mpn/ia64/logops_n.asm: Likewise.
   14991 
   14992 	* mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code.
   14993 	* mpn/ia64/lorrshift.asm: Likewise.  Remove several spurious loads.
   14994 
   14995 	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
   14996 	file removals and additions.
   14997 
   14998 2004-10-10  Torbjorn Granlund  <tege (a] swox.com>
   14999 
   15000 	* mpn/ia64/copyi.asm: Tune function entry code.
   15001 	* mpn/ia64/copyd.asm: Likewise.
   15002 
   15003 	* mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed
   15004 	and size.
   15005 	* mpn/ia64/aors_n.asm: Likewise.
   15006 
   15007 	* mpn/powerpc64/logops_n.asm: Correct cycles counts.
   15008 	* mpn/powerpc64/mode64/aors_n.asm: Likewise.
   15009 
   15010 	* tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR.
   15011 
   15012 	* tests/devel/logops_n.c: New file, handle all logical operations.
   15013 
   15014 	* tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and
   15015 	mpn_submul_1
   15016 	* tests/devel/mul_1.c: Remove.
   15017 	* tests/devel/addmul_1.c: Remove.
   15018 	* tests/devel/submul_1.c: Remove.
   15019 
   15020 	* tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift.
   15021 	* tests/devel/lshift.c: Remove.
   15022 	* tests/devel/rshift.c: Remove.
   15023 
   15024 	* tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n.
   15025 	* tests/devel/add_n.c: Remove.
   15026 	* tests/devel/sub_n.c: Remove.
   15027 
   15028 2004-10-09  Torbjorn Granlund  <tege (a] swox.com>
   15029 
   15030 	* mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
   15031 	* mpn/powerpc64/aix.m4: Likewise.
   15032 	* mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and
   15033 	TOCREF for approx_tab.
   15034 
   15035 	* mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point.
   15036 
   15037 2004-10-08  Torbjorn Granlund  <tege (a] swox.com>
   15038 
   15039 	* mpn/powerpc64/copyi.asm: New file.
   15040 	* mpn/powerpc64/copyd.asm: New file.
   15041 	* gmp-h.in: Remove PPC MPN_COPY variants.
   15042 	* gmp-impl.h: Likewise.
   15043 
   15044 	* mpn/powerpc64/logops_n.asm: New file.
   15045 
   15046 	* mpn/powerpc64/mode64/invert_limb.asm: New file.
   15047 
   15048 2004-10-07  Torbjorn Granlund  <tege (a] swox.com>
   15049 
   15050 	* mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and
   15051 	its derivatives.
   15052 	* mpn/powerpc64/mode64/add_n.asm: Delete.
   15053 	* mpn/powerpc64/mode64/sub_n.asm: Delete.
   15054 
   15055 	* configfsf.guess: Patch HP-UX code to accommodate HP compiler's new
   15056 	inability to read from stdin.
   15057 
   15058 	* mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.
   15059 
   15060 2004-10-02  Torbjorn Granlund  <tege (a] swox.com>
   15061 
   15062 	* mpn/amd64/README: Update for new developments, fix typos.
   15063 
   15064 	* mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb).
   15065 
   15066 	* mpn/amd64/addmul_1.asm: Remove unreachable code block.
   15067 
   15068 2004-09-30  Torbjorn Granlund  <tege (a] swox.com>
   15069 
   15070 	* mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb.
   15071 
   15072 	* mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code
   15073 	density.
   15074 	* mpn/ia64/mul_1.asm: Analogous changes.
   15075 
   15076 2004-09-29  Torbjorn Granlund  <tege (a] swox.com>
   15077 
   15078 	* gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
   15079 	flag.
   15080 
   15081 2004-09-28  Torbjorn Granlund  <tege (a] swox.com>
   15082 
   15083 	* mpn/ia64/divrem_1.asm: Add cycle counts to loop.
   15084 
   15085 	* mpn/ia64/divrem_2.asm: New file.
   15086 
   15087 2004-09-28  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   15088 
   15089 	* mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
   15090 	recursive fft parameters.
   15091 
   15092 2004-09-20  Torbjorn Granlund  <tege (a] swox.com>
   15093 
   15094 	* tests/misc.c (tests_rand_start): Default to strtoul for re-seeding.
   15095 
   15096 	* tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3.
   15097 
   15098 2004-09-19  Torbjorn Granlund  <tege (a] swox.com>
   15099 
   15100 	* tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.
   15101 
   15102 2004-09-18  Torbjorn Granlund  <tege (a] swox.com>
   15103 
   15104 	* tests/misc.c (tests_rand_start): Invoke fflush after printing seed.
   15105 
   15106 	* tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run
   15107 	extra FFT tests if set.
   15108 	(ref_mpn_mul): Use library code for kara and toom, but skewded so that
   15109 	we never use the same algorithm that we're testing.
   15110 	(mul_kara): Delete.
   15111 	(debug_mp): Print just one line of large numbers.
   15112 	(ref_mpn_mul): Rework usage of tp temporary space.
   15113 
   15114 2004-09-15  Torbjorn Granlund  <tege (a] swox.com>
   15115 
   15116 	* mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp.
   15117 	* mpn/ia64/addmul_2.asm: Likewise.
   15118 
   15119 2004-09-13  Torbjorn Granlund  <tege (a] swox.com>
   15120 
   15121 	* mpn/ia64/invert_limb.asm: Rewrite.
   15122 
   15123 	* mpn/ia64/logops_n.asm: Insert some more stops.
   15124 
   15125 2004-09-12  Torbjorn Granlund  <tege (a] swox.com>
   15126 
   15127 	* mpn/ia64/gmp-mparam.h: Update.
   15128 	* mpn/amd64/gmp-mparam.h: Update.
   15129 
   15130 	* mpn/ia64/sqr_diagonal.asm: Shave off a few cycles.
   15131 
   15132 2004-09-11  Torbjorn Granlund  <tege (a] swox.com>
   15133 
   15134 	* mpn/ia64/mul_2.asm: New file.
   15135 	* mpn/ia64/addmul_2.asm: New file.
   15136 
   15137 	* mpn/ia64/addmul_1.asm: Tune a cycle from prologue.
   15138 
   15139 	* mpn/ia64/lorrshift.asm: Insert stops after several branches.
   15140 	* mpn/ia64/aorslsh1_n.asm: Likewise.
   15141 	* mpn/ia64/rsh1aors_n.asm: Likewise.
   15142 
   15143 	* mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
   15144 	accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.
   15145 
   15146 2004-09-07  Torbjorn Granlund  <tege (a] swox.com>
   15147 
   15148 	* mpn/ia64/submul_1.asm: Rewrite.
   15149 
   15150 	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
   15151 	* mpn/ia64/mul_1.asm: Likewise.
   15152 
   15153 2004-09-02  Torbjorn Granlund  <tege (a] swox.com>
   15154 
   15155 	* mpn/ia64/mul_1.asm: Optimize feed-in code.
   15156 	* mpn/ia64/addmul_1.asm: Rewrite feed-in code.
   15157 
   15158 2004-08-29  Torbjorn Granlund  <tege (a] swox.com>
   15159 
   15160 	* tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.
   15161 
   15162 2004-07-16  Torbjorn Granlund  <tege (a] swox.com>
   15163 
   15164 	* mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
   15165 
   15166 2004-06-17  Kevin Ryde  <kevin (a] swox.se>
   15167 
   15168 	* doc/gmp.texi: Use @. when sentence ends with a capital, for good
   15169 	spacing in tex.
   15170 	(Language Bindings): Add gmp-d, reported by Ben Hinkle.  Update SWI
   15171 	Prolog URL, reported by Jan Wielemaker.
   15172 
   15173 2004-06-09  Torbjorn Granlund  <tege (a] swox.com>
   15174 
   15175 	* configure.in: Handle --enable-fat.  Use that to enable x86 fat
   15176 	builds, remove magic meaning of i386-*-*.
   15177 
   15178 2004-06-03  Kevin Ryde  <kevin (a] swox.se>
   15179 
   15180 	* gmp-impl.h (memset): Use a local char* pointer, in case parameter is
   15181 	something else (eg. tune/common.c).  Reported by Emmanuel Thom.
   15182 
   15183 2004-06-01  Kevin Ryde  <kevin (a] swox.se>
   15184 
   15185 	* config.guess (i?86-*-*): Avoid "Illegal instruction" message which
   15186 	goes to stdout on 80386 freebsd4.9.
   15187 
   15188 2004-05-23  Niels Mller  <nisse (a] lysator.liu.se>
   15189 
   15190 	* mpn/generic/gcdext.c (gcdext_1_u): New function.
   15191 	(mpn_gcdext): Use it.
   15192 
   15193 2004-05-23  Torbjorn Granlund  <tege (a] swox.com>
   15194 
   15195 	* mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.
   15196 
   15197 2004-05-22  Torbjorn Granlund  <tege (a] swox.com>
   15198 
   15199 	* mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.
   15200 
   15201 	* mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code.
   15202 
   15203 	* mpn/powerpc32/lshift.asm: Add more cycle numbers.
   15204 	* mpn/powerpc32/rshift.asm: Likewise.
   15205 
   15206 	* mpn/ia64/addmul_1.asm: Reformat.
   15207 
   15208 2004-05-21  Torbjorn Granlund  <tege (a] swox.com>
   15209 
   15210 	* gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare.
   15211 
   15212 	* tune/Makefile.am: Compile gcdext.c.
   15213 
   15214 	* gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150.
   15215 	(GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default.  Override when
   15216 	TUNE_PROGRAM_BUILD.
   15217 	(GCDEXT_THRESHOLD): Remove.
   15218 
   15219 	* tune/tuneup.c (gcdext_schoenhage_threshold): New variable.
   15220 	(gcdext_threshold): Remove variable.
   15221 	(tune_gcd_schoenhage): Lower step_factor to 0.1.
   15222 	(tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage.
   15223 	(tune_gcdext): Remove function.
   15224 	(all): Corresponding changes.
   15225 
   15226 2004-05-21  Niels Mller  <nisse (a] lysator.liu.se>
   15227 
   15228 	* mpn/generic/gcdext.c: Complete rewrite.  Uses fast Lehmer code for
   15229 	small operands, and Schoenhage code for large operands.
   15230 
   15231 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
   15232 	not smaller than 2nd operand.
   15233 
   15234 2004-05-17  Kevin Ryde  <kevin (a] swox.se>
   15235 
   15236 	* gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails
   15237 	use ?: same as normal case, to avoid warnings from Borland C++ 6.0.
   15238 	Reported by delta trinity.
   15239 
   15240 2004-05-15  Kevin Ryde  <kevin (a] swox.se>
   15241 
   15242 	* tune/time.c (getrusage_backwards_p): New function
   15243 	(speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage.
   15244 	* configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage
   15245 	doesn't exist.
   15246 	* tune/README (NetBSD 1.4.1 m68k): Update notes.
   15247 
   15248 	* configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and
   15249 	cc_n32_ldflags, libtool knows to put the linker in n32 mode.
   15250 
   15251 2004-05-15  Torbjorn Granlund  <tege (a] swox.com>
   15252 
   15253 	* config.guess (powerpc*-*-*): Add more processor types to mfpvr code.
   15254 	* configure.in: Generalize powerpc subtype matching code.
   15255 
   15256 	* mpz/fac_ui.c: Misc cleanups, spelling corrections.
   15257 
   15258 2004-05-14  Kevin Ryde  <kevin (a] swox.se>
   15259 
   15260 	* mpf/sub.c: When one operand cancels high limbs of the other, strip
   15261 	high zeros on the balance before truncating to destination precision.
   15262 	Truncating first loses accuracy and can lead to a result 0 despite
   15263 	operands being not equal.  Reported by John Abbott.
   15264 	Also, ensure exponent is zero when result is zero, for instance if
   15265 	operands are exactly equal.
   15266 	* tests/mpf/t-sub.c (check_data): New function, exercising these.
   15267 
   15268 2004-05-12  Kevin Ryde  <kevin (a] swox.se>
   15269 
   15270 	* configure.in (AC_PROG_RANLIB): New macro, supposedly required by
   15271 	automake, though it doesn't complain.
   15272 
   15273 	* demos/expr/Makefile.am (ARFLAGS): Add a default setting, to
   15274 	workaround an automake bug.
   15275 
   15276 2004-05-10  Kevin Ryde  <kevin (a] swox.se>
   15277 
   15278 	* */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4.
   15279 
   15280 	* doc/gmp.texi (Demonstration Programs): Add a remark about expression
   15281 	evaluation in the main gmp library.
   15282 
   15283 	* demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use
   15284 	mpf_init2 to follow requested precision.
   15285 	* demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init,
   15286 	to make parameters match.
   15287 
   15288 	* demos/expr/run-expr.c: Don't use getopt, to avoid needing configury
   15289 	for optarg declaration.  Remove TRY macro, rename foo and bar to var_a
   15290 	and var_b, for clarity.
   15291 	* demos/expr/expr-impl.h: Don't use expr-config.h.
   15292 	* configure.in (demos/expr/expr-config.h): Remove.
   15293 	* demos/expr/expr-config.in: Remove file.
   15294 
   15295 2004-05-08  Kevin Ryde  <kevin (a] swox.se>
   15296 
   15297 	* doc/configuration (Configure): Update for current automake not
   15298 	copying acinclude.m4 into aclocal.m4.
   15299 
   15300 	* configure.in, Makefile.am, doc/gmp.texi, doc/configuration,
   15301 	tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README,
   15302 	demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in,
   15303 	demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c:
   15304 	MPFR now published separately, remove various bits.
   15305 	* mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c,
   15306 	demos/expr/exprfra.c: Remove.
   15307 
   15308 2004-05-07  Kevin Ryde  <kevin (a] swox.se>
   15309 
   15310 	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library
   15311 	path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands
   15312 	"set -e", so we need an "|| true" in case there's nothing to copy (for
   15313 	instance in a static build).
   15314 
   15315 2004-05-06  Kevin Ryde  <kevin (a] swox.se>
   15316 
   15317 	* mpn/alpha/mode1o.c: Remove, in favour of ...
   15318 	* mpn/alpha/mode1o.asm: New file.
   15319 	* mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro.
   15320 
   15321 	* tune/amd64.asm: Save rbx in r10 rather than on the stack.
   15322 
   15323 	* configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case
   15324 	we're in ABI=32 on an old OS not supporting xmm regs.
   15325 	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under
   15326 	-march=k8 too, and not under ABI=64.
   15327 
   15328 	* doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation
   15329 	and overflows.  For mpz_get_d_2exp note truncation, note result if
   15330 	OP==0, and cross reference libc frexp.
   15331 	(Rational Conversions): For mpq_get_d, note truncation and overflows.
   15332 	(Converting Floats): For mpf_get_d, note truncation and overflows.
   15333 	For mpf_get_d_2exp, note truncation, note result if OP==0.
   15334 	(Assembler Code Organisation): Note nails subdirectories.
   15335 	Clarification of get_d_2exp OP==0 reported by Sylvain Pion.
   15336 
   15337 2004-05-05  Torbjorn Granlund  <tege (a] swox.com>
   15338 
   15339 	* mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files
   15340 	(mainly by Niels Mller).
   15341 	* configure.in, mpn/Makefile.am: Add them.
   15342 
   15343 	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD,
   15344 	MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD.
   15345 
   15346 	* tune/Makefile.am: Compile mullow_n.c.
   15347 	* tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase):
   15348 	New functions.
   15349 	* tune/speed.c (routine): Add entries for mpn_mullow_n and
   15350 	mpn_mullow_basecase.
   15351 	* tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL,
   15352 	SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines.
   15353 	* tune/tuneup.c (tune_mullow): New function.
   15354 
   15355 	* gmp-impl.h (invert_limb): Compute branch-freely.
   15356 
   15357 2004-05-02  Kevin Ryde  <kevin (a] swox.se>
   15358 
   15359 	* mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC.
   15360 	Use 32-bit insns to save code bytes, and to save a couple of cycles on
   15361 	the initial setup multiplies.
   15362 
   15363 2004-05-01  Kevin Ryde  <kevin (a] swox.se>
   15364 
   15365 	* doc/gmp.texi (References): Update gcc online docs url to
   15366 	gcc.gnu.org.
   15367 
   15368 	* configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this
   15369 	pattern.  (Believe the mips64*-*-* part also used picks up all current
   15370 	irix6 tuples anyway.)  Reported by Rainer Orth.
   15371 
   15372 2004-04-30  Kevin Ryde  <kevin (a] swox.se>
   15373 
   15374 	* acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED,
   15375 	GMP_ASM_X86_GOT_EAX_OK): New macros.
   15376 	(GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by
   15377 	recent gcc.  Reported by David Newman.
   15378 
   15379 	* doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an
   15380 	alternative to gmp_randinit.
   15381 
   15382 2004-04-29  Torbjorn Granlund  <tege (a] swox.com>
   15383 
   15384 	* configfsf.guess: Update to 2004-03-12.
   15385 	* configfsf.sub: Likewise.
   15386 
   15387 2004-04-27  Torbjorn Granlund  <tege (a] swox.com>
   15388 
   15389 	* mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation
   15390 	and to generate even numbers.
   15391 	* mpn/generic/random2.c (gmp_rrandomb): Likewise.
   15392 
   15393 2004-04-25  Kevin Ryde  <kevin (a] swox.se>
   15394 
   15395 	* gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint
   15396 	on a memory output, apparently not supported and provokes a warning
   15397 	from gcc 3.4.
   15398 
   15399 2004-04-24  Kevin Ryde  <kevin (a] swox.se>
   15400 
   15401 	* longlong.h (count_leading_zeros_gcc_clz,
   15402 	count_trailing_zeros_gcc_ctz): New macros.
   15403 	(count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc
   15404 	3.4.
   15405 
   15406 	* configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of
   15407 	each option list, for use by gcc 3.4 to avoid deprecation warnings
   15408 	about -mcpu.
   15409 
   15410 	* mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c,
   15411 	mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR()
   15412 	on function definition too, as demanded by gcc 3.4.
   15413 
   15414 2004-04-22  Kevin Ryde  <kevin (a] swox.se>
   15415 
   15416 	* tests/rand/t-lc2exp.c (check_bigc1): New test.
   15417 
   15418 	* doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our
   15419 	preference for this in an @appendix, and because texi2pdf doesn't
   15420 	support @appendixsubsec directly within an @appendix.
   15421 
   15422 2004-04-20  Kevin Ryde  <kevin (a] swox.se>
   15423 
   15424 	* doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7.
   15425 	* doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in
   15426 	@ref within @copying, recent texinfo.tex doesn't like that.
   15427 
   15428 	* demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw
   15429 	DLLs.
   15430 
   15431 	* */Makefile.in, install-sh: Update to automake 1.8.3.
   15432 	* ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6.
   15433 
   15434 	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant
   15435 	expression, rather than a configure test.
   15436 	* acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer
   15437 	needed.
   15438 	* tests/t-hightomask.c: New file.
   15439 	* tests/Makefile.am (check_PROGRAMS): Add it.
   15440 
   15441 	* macos/configure (parse_top_configure): Look for PACKAGE_NAME and
   15442 	PACKAGE_VERSION now used by autoconf.
   15443 	(what_objects): Only demand 9 object files, as for instance occurs in
   15444 	the scanf directory.
   15445 	(asm files): Transform labels L(foo) -> Lfoo.  Take func name from
   15446 	PROLOGUE to support empty "EPILOGUE()".  Recognise and substitute
   15447 	register name "define()"s.
   15448 	* macos/Makefile.in (CmnObjs): Add tal-notreent.o.
   15449 
   15450 2004-04-19  Torbjorn Granlund  <tege (a] swox.com>
   15451 
   15452 	* tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define.
   15453 	(speed_mpn_rootrem): Declare.
   15454 	* tune/common.c (speed_mpn_rootrem): New function.
   15455 	* tune/speed.c (routine): Add entry for mpn_rootrem.
   15456 
   15457 2004-04-16  Kevin Ryde  <kevin (a] swox.se>
   15458 
   15459 	* doc/fdl.texi: Update from FSF, just fixing a couple of typos.
   15460 
   15461 	* macos/configure, macos/Makefile.in: Add printf and scanf directories.
   15462 
   15463 	* tests/mpz/t-gcd.c (check_data): New function, exercising K6
   15464 	gcd_finda bug.
   15465 
   15466 2004-04-14  Kevin Ryde  <kevin (a] swox.se>
   15467 
   15468 	* doc/gmp.texi (Reentrancy, Random State Initialization): Note
   15469 	gmp_randinit use of gmp_errno is not thread safe.  Reported by Vincent
   15470 	Lefvre.
   15471 
   15472 	* doc/gmp.texi (Random State Initialization): Add index entries for
   15473 	gmp_errno and constants.
   15474 
   15475 	* mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB.
   15476 
   15477 	* configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg.
   15478 
   15479 2004-04-12  Kevin Ryde  <kevin (a] swox.se>
   15480 
   15481 	* demos/perl/GMP.xs (static_functable): New macro, use it for all
   15482 	function tables, to support mingw DLL builds.
   15483 	* demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on
   15484 	DLLs, should be ok now.
   15485 
   15486 	* demos/perl/sample.pl: Print the module and library versions in use.
   15487 
   15488 	* demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'.
   15489 	* demos/perl/GMP.pm (COPYRIGHT): New in the doc section.
   15490 
   15491 	* Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy.
   15492 
   15493 	* tal-debug.c: Add <stdlib.h> for abort.
   15494 
   15495 2004-04-07  Torbjorn Granlund  <tege (a] swox.com>
   15496 
   15497 	* tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.
   15498 
   15499 	* mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).
   15500 
   15501 2004-04-07  Kevin Ryde  <kevin (a] swox.se>
   15502 
   15503 	* mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups.
   15504 	Zero flag is wrong here, it relects only the high limb of the compare,
   15505 	leading to n1>=n2 not satisfied and wrong results.  cp[1]==0x7FFFFFFF
   15506 	with cp[0]>=0x80000001 provokes this.
   15507 
   15508 	* doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under
   15509 	the pow function description too.
   15510 	(Language Bindings): Add XEmacs (betas at this stage).  Reported by
   15511 	Jerry James.
   15512 
   15513 	* tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed.
   15514 
   15515 	* gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R.
   15516 	* gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout
   15517 	instead of 0, in case a K&R treats int and FILE* params differently.
   15518 
   15519 2004-04-04  Kevin Ryde  <kevin (a] swox.se>
   15520 
   15521 	* gmp-impl.h (BSWAP_LIMB) [amd64]: New macro.
   15522 	(FORCE_DOUBLE): Use this for amd64 too.
   15523 
   15524 	* tests/amd64check.c, tests/amd64call.asm: New files, derived in part
   15525 	from x86check.c and x86call.asm.
   15526 	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them.
   15527 	* configure.in (x86_64-*-* ABI=64): Use them.
   15528 
   15529 2004-04-03  Kevin Ryde  <kevin (a] swox.se>
   15530 
   15531 	* mpn/amd64/mode1o.asm: New file.
   15532 	* mpn/amd64/amd64-defs.m4 (ASSERT): New macro.
   15533 
   15534 	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add
   15535 	note on how "dr" part of algorithm is handled.
   15536 
   15537 	* mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm,
   15538 	mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds.
   15539 
   15540 2004-03-31  Kevin Ryde  <kevin (a] swox.se>
   15541 
   15542 	* doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix.
   15543 
   15544 	* mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY.
   15545 
   15546 2004-03-28  Torbjorn Granlund  <tege (a] swox.com>
   15547 
   15548 	* mpn/amd64/divrem_1.asm: Trim a few cycles.
   15549 
   15550 2004-03-27  Torbjorn Granlund  <tege (a] swox.com>
   15551 
   15552 	* mpn/amd64/sublsh1_n.asm: Fix typo.
   15553 
   15554 	* mpn/generic/divrem_1.c: Fix typo.
   15555 
   15556 	* mpn/generic/sqr_basecase.c: Fix typo.
   15557 
   15558 	* mpn/amd64/divrem_1.asm: New file.
   15559 
   15560 2004-03-20  Kevin Ryde  <kevin (a] swox.se>
   15561 
   15562 	* longlong.h (power, powerpc): Add comments on how we select this code.
   15563 
   15564 	* gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the
   15565 	two identically but ?: is a bit clearer.
   15566 
   15567 	* insert-dbl.c: Remove file, no longer used, scaling is now integrated
   15568 	in mpn_get_d.
   15569 	* Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c.
   15570 	* gmp-impl.h (__gmp_scale2): Remove prototype.
   15571 
   15572 2004-03-17  Kevin Ryde  <kevin (a] swox.se>
   15573 
   15574 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64.
   15575 
   15576 	* mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form.
   15577 
   15578 2004-03-16  Torbjorn Granlund  <tege (a] swox.com>
   15579 
   15580 	* mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
   15581 	mpn_addmul_2s.
   15582 
   15583 2004-03-14  Kevin Ryde  <kevin (a] swox.se>
   15584 
   15585 	* mpf/mul_ui.c: Incorporate carry from low limbs, for exactness.
   15586 	* tests/mpf/t-mul_ui.c: New file.
   15587 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15588 
   15589 	* mpf/div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
   15590 	divisor, since truncating can lose accuracy.
   15591 	* tests/mpf/t-div.c: New file.
   15592 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15593 
   15594 	* tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend
   15595 	bogus 99/4 test.
   15596 	* tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap.
   15597 
   15598 	* tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function.
   15599 
   15600 	* mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for
   15601 	when vval=-0x800..00 and limb==longlong.
   15602 
   15603 	* mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when
   15604 	uexp==2 but value bigger than an mp_limb_t.
   15605 	* tests/mpf/t-cmp_si.c (check_data): Add test cases.
   15606 
   15607 	* tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for
   15608 	negative bases used for upper case hex in integer traces.
   15609 
   15610 2004-03-12  Torbjorn Granlund  <tege (a] swox.com>
   15611 
   15612 	* mpn/generic/sb_divrem_mn.c: Correct header comment.
   15613 
   15614 2004-03-11  Kevin Ryde  <kevin (a] swox.se>
   15615 
   15616 	* aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version
   15617 	1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for
   15618 	development when changing contents or with duplicate named files like
   15619 	we have.
   15620 
   15621 	Revert this, ie restore AR_FLAGS=cq:
   15622 	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
   15623 	does this itself on detecting duplicate object filenames in piecewise
   15624 	linking mode.
   15625 
   15626 	* randbui.c, randmui.c [longlong+nails]: Correction to conditionals
   15627 	for second limb.
   15628 
   15629 	* mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c,
   15630 	mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c,
   15631 	mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c,
   15632 	mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c,
   15633 	mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c
   15634 	[longlong+nails]: Amend #if to avoid warnings about shift amount.
   15635 
   15636 2004-03-07  Kevin Ryde  <kevin (a] swox.se>
   15637 
   15638 	* mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate
   15639 	result.  Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter
   15640 	UNLIKELY.
   15641 
   15642 	* mpf/ui_div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
   15643 	divisor, since truncating can lose accuracy.
   15644 	* tests/mpf/t-ui_div.c: New file.
   15645 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15646 
   15647 	* mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer
   15648 	and avoid 1 limb alloc when not wanted.
   15649 
   15650 	* gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined.
   15651 	(TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less
   15652 	preprocessor conditionals.
   15653 
   15654 	* mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments.
   15655 
   15656 	* tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify.
   15657 
   15658 2004-03-04  Kevin Ryde  <kevin (a] swox.se>
   15659 
   15660 	* gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit
   15661 	of K&R.
   15662 	* tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R.
   15663 
   15664 	* doc/configuration (Configure): Remove mkinstalldirs, no longer used.
   15665 
   15666 	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
   15667 	does this itself on detecting duplicate object filenames in piecewise
   15668 	linking mode.
   15669 
   15670 	* configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify
   15671 	ABI=2.0n versus ABI=2.0w.  In particular this lets CC=cc_bundled
   15672 	correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64
   15673 	to that compiler, currently).
   15674 
   15675 	* doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using
   15676 	global default precision.
   15677 	(Random State Miscellaneous): Describe gmp_urandomb_ui as giving N
   15678 	bits.
   15679 	(C++ Interface Floats): Describe operator= copying the value, not the
   15680 	precision, and what this can mean about copy constructor versus
   15681 	default constructor plus assignment.
   15682 
   15683 	* mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting.
   15684 	Don't truncate the divisor, it can make the result inaccurate.
   15685 	* tests/mpf/t-set_q.c: New file.
   15686 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15687 
   15688 	* mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1.
   15689 	No actual bug here, because MPN_COPY has thusfar been an alias for
   15690 	MPN_COPY_INCR, only an ASSERT failure.
   15691 	* tests/mpf/t-set.c: New file.
   15692 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15693 
   15694 	* mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call.
   15695 
   15696 	* mpf/set_d.c: Rate d==0 as UNLIKELY.  Store size before extract call,
   15697 	to shorten lifespan of "negative".
   15698 
   15699 	* mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c,
   15700 	mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one
   15701 	less live quantity across that call.
   15702 	* mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before
   15703 	alloc call, to overlap with other operations.
   15704 
   15705 	* tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize,
   15706 	refmpf_validate, refmpf_validate_division): New functions.
   15707 
   15708 	* tests/refmpn.c, tests/tests.h (refmpn_copy_extend,
   15709 	refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions.
   15710 
   15711 	* tal-debug.c: Add <string.h> for strcmp.
   15712 
   15713 	* tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t
   15714 	for loop index, to quieten g++ warning.
   15715 
   15716 2004-03-02  Kevin Ryde  <kevin (a] swox.se>
   15717 
   15718 	* tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes.
   15719 
   15720 2004-03-01  Torbjorn Granlund  <tege (a] swox.com>
   15721 
   15722 	With Karl Hasselstrm:
   15723 	* mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with
   15724 	meat from old mpn_dc_divrem_n.  Accept scratch parameter.  Rewrite to
   15725 	avoid a recursive call.
   15726 	(mpn_dc_div_3_by_2): New function, with meat from old
   15727 	mpn_dc_div_3_halves_by_2.  Accept scratch parameter.
   15728 	(mpn_dc_divrem_n): Now just allocate scratch space and call new
   15729 	mpn_dc_div_2_by_1.
   15730 
   15731 2004-02-29  Kevin Ryde  <kevin (a] swox.se>
   15732 
   15733 	* longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining
   15734 	mpn/alpha/cntlz.asm cmpbge technique.
   15735 
   15736 	* aclocal.m4, configure, install-sh, missing, ltmain.sh,
   15737 	*/Makefile.in: Update to automake 1.8.2 and libtool 1.5.2.
   15738 
   15739 	* doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows
   15740 	C99 / and %.
   15741 	(Exact Remainder): Index entries for divisibility testing algorithm.
   15742 
   15743 	* tune/time.c (speed_endtime): Return 0.0 for negative time measured.
   15744 	Revise usage comments for clarity.
   15745 	* tune/common.c (speed_measure): Recognise speed_endtime 0.0 for
   15746 	failed measurement.
   15747 
   15748 	* tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup.
   15749 
   15750 2004-02-27  Torbjorn Granlund  <tege (a] swox.com>
   15751 
   15752 	* tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor.
   15753 
   15754 	* tests/mpz/t-gcd.c: Decrease # of tests to 50.
   15755 
   15756 2004-02-27  Kevin Ryde  <kevin (a] swox.se>
   15757 
   15758 	* tests/devel/try.c: Add a comment that this is not for Cray systems.
   15759 
   15760 	* mpf/set_q.c: Don't support den(q)<0, demand canonical form in the
   15761 	usual way.
   15762 
   15763 2004-02-24  Torbjorn Granlund  <tege (a] swox.com>
   15764 
   15765 	From Kevin:
   15766 	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
   15767 	criterion met.
   15768 
   15769 2004-02-22  Kevin Ryde  <kevin (a] swox.se>
   15770 
   15771 	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS):
   15772 	Remove files that might look like compiler output, so our "||"
   15773 	alternatives are not fooled.
   15774 
   15775 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code
   15776 	mis-compiled by certain IA-64 HP cc at +O3.
   15777 
   15778 	* gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for
   15779 	the benefit of freebsd where .mcount clobbers registers.  Spotted by
   15780 	Torbjorn.
   15781 	* configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New
   15782 	AC_DEFINEs.
   15783 
   15784 2004-02-21  Kevin Ryde  <kevin (a] swox.se>
   15785 
   15786 	* configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's
   15787 	not used in ABI=64 on the BSD systems.
   15788 
   15789 2004-02-18  Niels Mller  <nisse (a] lysator.liu.se>
   15790 
   15791 	* tests/mpz/t-gcd.c (gcdext_valid_p): New function.
   15792 	(ref_mpz_gcd): Deleted function.
   15793 	(one_test): Rearranged to call mpz_gcdext first, so that the
   15794 	returned value can be validated.
   15795 	(main): Don't use ref_mpz_gcd.
   15796 
   15797 2004-02-18  Torbjorn Granlund  <tege (a] swox.com>
   15798 
   15799 	* gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section.
   15800 
   15801 	* tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT.
   15802 
   15803 	* mpz/rrandomb.c (gmp_rrandomb): Rewrite.
   15804 
   15805 	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5.
   15806 
   15807 2004-02-18  Kevin Ryde  <kevin (a] swox.se>
   15808 
   15809 	* mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]:
   15810 	Always store second limb, to avoid a conditional.
   15811 
   15812 	* tests/mpf/t-get_ui.c: New file.
   15813 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15814 	* tests/mpf/t-get_si.c (check_limbdata): Further tests.
   15815 	* gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines.
   15816 
   15817 	* mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by
   15818 	other conditions.  Attempt greater clarity by expressing conditions as
   15819 	based on available data range.
   15820 	* mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size,
   15821 	since may still have second limb above radix point available.
   15822 	* mpf/get_ui.c: Nailify.
   15823 
   15824 2004-02-16  Kevin Ryde  <kevin (a] swox.se>
   15825 
   15826 	* mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of
   15827 	count_leading_zeros on limb&-limb.
   15828 
   15829 	* mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on
   15830 	">>" of negatives.  Correction to comment, exp is rounded upwards.
   15831 	SIZ(r) always prec now, no need for tsize expression.  Store EXP(r)
   15832 	and SIZ(r) where calculated to reduce variable lifespans.  Make tsize
   15833 	mp_size_t not mp_exp_t, though of course those are currently the same.
   15834 
   15835 	* gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING,
   15836 	GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we
   15837 	don't want to use globals for communicating error information.
   15838 
   15839 	* mpz/gcd_ui.c [nails]: Correction, actually return a value.
   15840 
   15841 	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code.
   15842 
   15843 2004-02-15  Kevin Ryde  <kevin (a] swox.se>
   15844 
   15845 	* tests/mpz/t-jac.c (check_data): Remove unnecessary variable
   15846 	"answer".
   15847 
   15848 2004-02-14  Torbjorn Granlund  <tege (a] swox.com>
   15849 
   15850 	* mpn/ia64/aors_n.asm: Break a group with a RAW conflict.
   15851 
   15852 2004-02-14  Kevin Ryde  <kevin (a] swox.se>
   15853 
   15854 	* acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're
   15855 	concerned about.
   15856 
   15857 	* mpn/generic/mul_n.c: Add some remarks about toom3 high zero
   15858 	stripping.
   15859 
   15860 	* mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue
   15861 	remarks.  What to do about going outside `up' space is a problem, but
   15862 	anything to address it would be an incompatible change.
   15863 
   15864 2004-02-12  Torbjorn Granlund  <tege (a] swox.com>
   15865 
   15866 	* tests/mpn/t-hgcd.c: Remove unused variables.
   15867 
   15868 	* mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX
   15869 	assembler.  Misc HP-UX changes.
   15870 	* mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler.
   15871 
   15872 2004-02-11  Kevin Ryde  <kevin (a] swox.se>
   15873 
   15874 	* longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and
   15875 	HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines.
   15876 
   15877 	* gmp-impl.h: Add remarks about limits.h and Cray etc.
   15878 
   15879 	* mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines,
   15880 	hpux 11.23 assembler doesn't like that.
   15881 	* mpn/ia64/README: Add a note on this.
   15882 
   15883 	* dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used.  Reported
   15884 	by Jason Moxham.
   15885 
   15886 	* mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections.
   15887 
   15888 2004-02-10  Torbjorn Granlund  <tege (a] swox.com>
   15889 
   15890 	* tests/mpz/t-gcd.c: Decrease # of tests run.
   15891 
   15892 	* mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.
   15893 
   15894 2004-02-01  Torbjorn Granlund  <tege (a] swox.com>
   15895 
   15896 	From Kevin:
   15897 	* config.guess: Recognize AMD's hammer processors, return x86_64.
   15898 
   15899 2004-01-31  Niels Mller  <nisse (a] lysator.liu.se>
   15900 
   15901 	* mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static.
   15902 
   15903 2004-01-25  Niels Mller  <nisse (a] lysator.liu.se>
   15904 
   15905 	* tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd.
   15906 
   15907 	* mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3.
   15908 	(mpn_cmp_sum3): New function.
   15909 	(mpn_diff_smaller_p): Remove.
   15910 	(hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step):
   15911 	Remove tp,talloc arguments.  Callers changed.
   15912 
   15913 2004-01-25  Torbjorn Granlund  <tege (a] swox.com>
   15914 
   15915 	* tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and
   15916 	tune_hgcd.
   15917 
   15918 	* mpn/generic/gcd.c: Reenable Schoenhage code.
   15919 
   15920 	With Niels Mller:
   15921 	* mpn/generic/hgcd.c: Add const and inline to several functions.
   15922 	(qstack_push_start qstack_push_end qstack_push_quotient): Remove.
   15923 	(euclid_step): Insert removed functions here.
   15924 	(hgcd_adjust): Simplify, don't handle d != 1.
   15925 	(qstack_adjust): Corresponding changes.
   15926 	(mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero.
   15927 	(hgcd_start_row_p): Tweak.
   15928 	(hgcd_final): Shorten life of ralloc.
   15929 
   15930 2004-01-24  Kevin Ryde  <kevin (a] swox.se>
   15931 
   15932 	* tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts.
   15933 
   15934 	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN.
   15935 	(mpn_dc_sqrtrem): Add casts for K&R.
   15936 
   15937 	* mpf/sqrt_ui.c: Nailify.
   15938 
   15939 	* mpf/set_z.c: Do MPN_COPY last, for possible tail call.
   15940 
   15941 	* doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note
   15942 	exponent is in limbs.
   15943 
   15944 	* mpn/ia64/README: Add remark about concentrating on itanium-2.
   15945 
   15946 2004-01-22  Kevin Ryde  <kevin (a] swox.se>
   15947 
   15948 	* mpf/sqrt.c: Change tsize calculation to get prec limbs result
   15949 	always, previously got prec+1 when exp was odd.
   15950 	* tests/mpf/t-sqrt.c (check_rand1): New function, code from main.
   15951 	(check_rand2): New function.
   15952 
   15953 	* mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result,
   15954 	previously got prec+1.
   15955 	* tests/mpf/t-sqrt_ui.c: New file.
   15956 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   15957 
   15958 	* tests/refmpf.c, tests/tests.h (refmpf_add_ulp,
   15959 	refmpf_set_prec_limbs): New functions.
   15960 
   15961 	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double,
   15962 	mpn_get_d now does this.  Remove res==1.0 check for round upwards,
   15963 	mpn_get_d now rounds towards zero.  Move exp store to make mpn_get_d a
   15964 	tail call.
   15965 
   15966 	* configure.in (x86-*-*): Use ABI=32 rather than ABI=standard.
   15967 	Use gcc -m32 when available, to force mode on bi-arch amd64 gcc.
   15968 	* configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups
   15969 	as ABI=64.  Support ABI=32, using athlon code.  Use gcc -mcpu=k8,
   15970 	-march=k8.
   15971 	(amd64-*-*): Remove pattern, config.sub only gives x86_64.
   15972 	* doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs.
   15973 
   15974 	* mpn/amd64/README: Add reference to ABI spec.
   15975 
   15976 2004-01-17  Niels Mller  <nisse (a] lysator.liu.se>
   15977 
   15978 	* mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n
   15979 	change for now.
   15980 
   15981 	* mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n.
   15982 
   15983 2004-01-17  Kevin Ryde  <kevin (a] swox.se>
   15984 
   15985 	* tune/README: Remove open/mpn versions of toom3, no longer exist.
   15986 	* tune/powerpc64.asm: Remove unused L(again).
   15987 	* tune/time.c (mftb): Note single mftb possible for powerpc64.
   15988 
   15989 	* mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last
   15990 	step, for better parallelism.
   15991 
   15992 	* mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from
   15993 	previous mpz_get_d code.
   15994 
   15995 	* tune/freq.c: Add some comments about systems not covered.
   15996 
   15997 	* gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks.
   15998 	Reported by Tomas Zahradnicky.
   15999 
   16000 2004-01-16  Niels Mller  <nisse (a] lysator.liu.se>
   16001 
   16002 	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U.
   16003 	(hgcd_adjust): Use mpn_addlsh1_n when available.
   16004 
   16005 2004-01-16  Kevin Ryde  <kevin (a] swox.se>
   16006 
   16007 	* configure.in (powerpc64-*-linux*): Try gcc64.  Try -m64 with
   16008 	"cflags_maybe" to get it used in all probing.  Add sizeof-long-8 test
   16009 	to check the mode is right if -m64 is not applicable.
   16010 
   16011 2004-01-15  Kevin Ryde  <kevin (a] swox.se>
   16012 
   16013 	* configure.in (--with-readline=detect): Check for readline/readline.h
   16014 	and readline/history.h.  Report result of detection.
   16015 
   16016 2004-01-14  Niels Mller  <nisse (a] lysator.liu.se>
   16017 
   16018 	* tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer.
   16019 	* tune/common.c (speed_mpn_hgcd_lehmer): Disabled function.
   16020 
   16021 	* mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer)
   16022 	(mpn_hgcd_equal): Deleted functions.
   16023 
   16024 	* mpn/generic/gcd.c (hgcd_start_row_p): Deleted function.
   16025 	(gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer.
   16026 
   16027 	* mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos.
   16028 	(mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly,
   16029 	not mpn_hgcd_lehmer.
   16030 
   16031 	* mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to
   16032 	mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled).
   16033 
   16034 	* gmp-impl.h (mpn_hgcd_fix): Updated prototype.
   16035 
   16036 	* mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments
   16037 	by a pointer const struct hgcd_row *s. Updated callers.
   16038 
   16039 	* mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input.
   16040 	Moved function definition before hgcd_jebelean.
   16041 	(hgcd_jebelean): Interface change, analogous to hgcd2.
   16042 	(mpn_hgcd_fix): Normalize v. Require that v > 0.
   16043 	(hgcd_adjust): Fix bug in carry update.
   16044 	(mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean
   16045 	now sometimes returning 1. Reintroduced hgcd_adjust.
   16046 
   16047 	* mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first
   16048 	hgcd2 call.
   16049 
   16050 	* mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1
   16051 	instead of 2, in the no progress case r0=A, r1=B.
   16052 
   16053 	* mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return
   16054 	value. Now takes a struct hgcd_row * and the uv size, and returns
   16055 	updated uvsize.
   16056 	(hgcd_final): Special handling of the case hgcd2 returning 1. Now
   16057 	uses hgcd_adjust, instead of a full Euclid division.
   16058 
   16059 2004-01-13  Niels Mller  <nisse (a] lysator.liu.se>
   16060 
   16061 	* mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a
   16062 	single function euclid_step.
   16063 	(mpn_hgcd): Reorganized the logic for the second recursive call.
   16064 	Avoid unnecessary Euclid steps.
   16065 
   16066 	* tests/mpn/t-hgcd.c (hgcd_values): One more test value.
   16067 
   16068 	* tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the
   16069 	hgcd_jebelean bug.
   16070 
   16071 	* mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error.
   16072 	(mpn_hgcd): Simplified the logic for the first recursive call. Now
   16073 	it uses only the correct values from the recursive call, and
   16074 	doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be
   16075 	reintroduced later, though).
   16076 
   16077 	* tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal)
   16078 	(hgcd_ref_init, hgcd_ref_clear): New functions.
   16079 	(hgcd_ref): Reference implementation of hgcd, using mpz.
   16080 	(one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer.
   16081 	(main): Skip one_step if both input values are zero.
   16082 
   16083 2004-01-12  Niels Mller  <nisse (a] lysator.liu.se>
   16084 
   16085 	* mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer
   16086 	steps instead of a division loop.
   16087 	(mpn_hgcd_lehmer): Deleted old Lehmer code, instead just
   16088 	initialize and then call hgcd_final.
   16089 
   16090 	* tests/tests.h: Added refmpn_free_limbs prototype.
   16091 	* tests/refmpn.c (refmpn_free_limbs): New function.
   16092 
   16093 	* tests/mpn/t-hgcd.c: Try the same kind of random inputs as for
   16094 	mpz/t-gcd.
   16095 
   16096 2004-01-11  Niels Mller  <nisse (a] lysator.liu.se>
   16097 
   16098 	* mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more
   16099 	analysis of the size reduction for one Lehmer step.
   16100 
   16101 	* tests/mpn/t-hgcd.c: New file.
   16102 
   16103 2004-01-11  Torbjorn Granlund  <tege (a] swox.com>
   16104 
   16105 	With Niels Mller:
   16106 	* mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs.
   16107 	(hgcd_mul): Normalize R[1].uvp[1].  Add some more ASSERTs.
   16108 	(hgcd_update_uv): Streamline.  ASSERT that input and output is
   16109 	normalized.
   16110 
   16111 2004-01-11  Kevin Ryde  <kevin (a] swox.se>
   16112 
   16113 	* mpn/alpha/ev6/slot.pl: New file, derived in part from
   16114 	mpn/x86/k6/cross.pl.
   16115 
   16116 	* mpn/alpha/alpha-defs.m4 (ASSERT): New macro.
   16117 
   16118 	* mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug.
   16119 	(m4_assert_defined): Use it.
   16120 
   16121 	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro.
   16122 	* mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr.
   16123 
   16124 	* configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with
   16125 	readline, when available.
   16126 
   16127 	* longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather
   16128 	than __x>al, since the former can be done without waiting for __x,
   16129 	helping superscalar chips, in particular alpha ev5 and ev6.
   16130 
   16131 	* longlong.h (sub_ddmmss) [ia64]: New macro.
   16132 
   16133 	* tests/t-sub.c: New file.
   16134 	* tests/Makefile.am (check_PROGRAMS): Add it.
   16135 	* tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function.
   16136 
   16137 2004-01-09  Kevin Ryde  <kevin (a] swox.se>
   16138 
   16139 	* mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from
   16140 	mpn/x86/mod_34lsub1.asm.
   16141 
   16142 	* configure.in (IA64_PATTERN): Use -mtune on gcc 3.4.
   16143 
   16144 2004-01-07  Kevin Ryde  <kevin (a] swox.se>
   16145 
   16146 	* gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to
   16147 	keep in our namespace.  (Not actually used anywhere currently.)
   16148 	Reported by Patrick Pelissier.
   16149 
   16150 	* mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style
   16151 	as gmp-h.in (though mp-h.in is not actually used during configure).
   16152 
   16153 	* mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
   16154 	Use __dllexport__ and __dllimport__ to keep out of application
   16155 	namespace.  Same previously done in gmp-h.in.
   16156 
   16157 2004-01-06  Kevin Ryde  <kevin (a] swox.se>
   16158 
   16159 	* configfsf.sub, configfsf.guess: Update to 2004-01-05.
   16160 	* configure.in (amd64-*-* | x86_64-*-*): Update comments on what
   16161 	configfsf.sub does.
   16162 
   16163 2004-01-04  Kevin Ryde  <kevin (a] swox.se>
   16164 
   16165 	* mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
   16166 	(ASSEMBLY RULES): Note what gcc says about !literal! etc.
   16167 
   16168 2004-01-03  Kevin Ryde  <kevin (a] swox.se>
   16169 
   16170 	* mpn/alpha/ev67/gcd_1.asm: New file.
   16171 
   16172 	* mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from
   16173 	mpn/x86/pentium4/sse2/addlsh1_n.asm.
   16174 
   16175 	* mpn/x86/p6/p3mmx/popham.asm: Note measured speeds.
   16176 
   16177 	* mpn/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes
   16178 	no difference to the generated code).  Corrections to a couple of
   16179 	comments.
   16180 
   16181 	* mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not
   16182 	used, no such parameter.
   16183 
   16184 	* mpn/generic/gcd.c: Use <stdio.h> for NULL.
   16185 
   16186 	* doc/gmp.texi (Single Limb Division): Correction to tex expression
   16187 	for (1/2)x1.  And minor wording tweaks elsewhere.
   16188 
   16189 	* gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments
   16190 	about how carries returned.
   16191 
   16192 	* longlong.h (umul_ppmm) [generic]: Add comments about squaring
   16193 	(dropped from tasks list)
   16194 
   16195 2003-12-31  Kevin Ryde  <kevin (a] swox.se>
   16196 
   16197 	* demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found.
   16198 	* demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX
   16199 	being the same as ~0 (which is not true in old perl).
   16200 	* demos/perl/test.pl: Update tests.
   16201 	* demos/perl/typemap (gmp_UV): New type.
   16202 
   16203 	* demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't
   16204 	necessarily exceed a long.
   16205 
   16206 	* demos/perl/GMP.pm: Add a remark about get_str to the bugs section.
   16207 
   16208 	* mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts
   16209 	for K&R.
   16210 	* tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how
   16211 	they're used, for the benefit of K&R calling.
   16212 
   16213 	* doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm.
   16214 	And add further index entries in various places.
   16215 
   16216 	* mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available.
   16217 
   16218 	* gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n,
   16219 	mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with
   16220 	the prototypes, for ease of locating.
   16221 
   16222 2003-12-30  Torbjorn Granlund  <tege (a] swox.com>
   16223 
   16224 	* tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and
   16225 	tune_hgcd for now.
   16226 
   16227 2003-12-29  Torbjorn Granlund  <tege (a] swox.com>
   16228 
   16229 	* tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.
   16230 
   16231 	* mpn/ia64/mul_1.asm: Amend TODO list.
   16232 
   16233 	* mpn/sparc64/README: Remove mpn_Xmul_2, done.
   16234 	Add blurb about L1 cache conflicts.
   16235 
   16236 	* mpn/generic/gcd.c: Disable Schoenhage code for now.
   16237 
   16238 2003-12-29  Kevin Ryde  <kevin (a] swox.se>
   16239 
   16240 	* mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.
   16241 
   16242 2003-12-27  Kevin Ryde  <kevin (a] swox.se>
   16243 
   16244 	* tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.
   16245 
   16246 	* mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT),
   16247 	mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2,
   16248 	HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an
   16249 	ANSI-ism, avoid.
   16250 
   16251 	* Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on
   16252 	ansi2knr to avoid a circular build rule.
   16253 	* configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am.
   16254 
   16255 	* configure.in (cflags_maybe): Don't loop adding cflags_maybe if the
   16256 	user has set CFLAGS.
   16257 
   16258 2003-12-24  Torbjorn Granlund  <tege (a] swox.com>
   16259 
   16260 	* mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+".
   16261 	(mpn_gcd): Allocate scratch space on heap for gcd_schoenhage.
   16262 	(mpn_gcd): Don't invoke MPN_NORMALIZE on input operands.
   16263 
   16264 2003-12-23  Kevin Ryde  <kevin (a] swox.se>
   16265 
   16266 	* configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to
   16267 	get the right mode when the user sets the CFLAGS.
   16268 	(testlist): Introduce "any_<abi>_testlist" to apply to all compilers.
   16269 
   16270 	* demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove
   16271 	output rules, these are only meant for inputs.
   16272 	(MPZ_MUTATE): Remove, not used since changes for magic.
   16273 
   16274 	* demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New
   16275 	variables, initialized in BOOT.
   16276 	* demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit
   16277 	sv_bless, to save a gv_stashpv for every new object.
   16278 
   16279 2003-12-22  Kevin Ryde  <kevin (a] swox.se>
   16280 
   16281 	* mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and
   16282 	ev5/dive_1.c, these are good for ev4, and would like them in a generic
   16283 	alpha build.
   16284 
   16285 2003-12-21  Kevin Ryde  <kevin (a] swox.se>
   16286 
   16287 	* doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in
   16288 	mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means
   16289 	by "logical".  Reported by Rdiger Schtz.
   16290 
   16291 	* gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good.
   16292 
   16293 2003-12-20  Torbjorn Granlund  <tege (a] swox.com>
   16294 
   16295 	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of
   16296 	mpn_sub_n where possible.  Use mp_size_t for relevant variables.
   16297 
   16298 2003-12-20  Kevin Ryde  <kevin (a] swox.se>
   16299 
   16300 	* tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change,
   16301 	don't want "- 1" on the TMP_ALLOC_LIMBS.
   16302 
   16303 	* demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is
   16304 	included, not GMP_RNDZ which is now an enum.
   16305 
   16306 	* demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and
   16307 	mpfr_fits_ulong_p.
   16308 	(e_mpfr_get_ui_fits): Use mpfr_get_ui.
   16309 
   16310 	* mpfr/*: Update to mpfr cvs head 2003-12-20.
   16311 
   16312 	* configure, config.in: Update to autoconf 2.59.
   16313 	* */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh,
   16314 	doc/mdate-sh: Update to automake 1.8.
   16315 
   16316 	* mkinstalldirs: Remove, not required by automake 1.8.
   16317 	* doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8.
   16318 
   16319 	* configure.in (AC_PREREQ): Require autoconf 2.59.
   16320 	(AM_INIT_AUTOMAKE): Require automake 1.8.
   16321 	(AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef
   16322 	__cplusplus we want.
   16323 	(gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code,
   16324 	autoconf now ok.
   16325 
   16326 	* acinclude.m4 (GMP_C_INLINE): Remove.
   16327 	(GMP_H_EXTERN_INLINE): Use AC_C_INLINE.
   16328 	(GMP_PROG_AR): Comment on automake $ARFLAGS.
   16329 
   16330 2003-12-19  Niels Mller  <nisse (a] lysator.liu.se>
   16331 
   16332 	* mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried
   16333 	to explain how it works.
   16334 	(slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use
   16335 	CPP to wrap assertion checks around all calls to
   16336 	mpn_diff_smaller_p.
   16337 
   16338 	* mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling.
   16339 
   16340 	* mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use
   16341 	GMP_NUMB_MAX, not MP_LIMB_T_MAX.
   16342 	(mpn_hgcd_itch): Improved size calculation.
   16343 	(mpn_hgcd_max_recursion): Moved function from qstack.c. Should to
   16344 	be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned.
   16345 
   16346 	* mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from
   16347 	here.
   16348 
   16349 2003-12-19  Torbjorn Granlund  <tege (a] swox.com>
   16350 
   16351 	* tests/mpf/t-get_d.c: Print message before aborting.
   16352 
   16353 	* mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable
   16354 	with 0.  Remove bogus comment.
   16355 
   16356 	* mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.
   16357 
   16358 2003-12-18  Niels Mller  <niels (a] lysator.liu.se>
   16359 
   16360 	* mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is
   16361 	smaller than the input r1.
   16362 
   16363 2003-12-18  Torbjorn Granlund  <tege (a] swox.com>
   16364 
   16365 	* mpz/get_d.c: Don't include longlong.h.
   16366 
   16367 	* tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid
   16368 	a dummy r/w outside of allocated area.
   16369 
   16370 2003-12-18  Kevin Ryde  <kevin (a] swox.se>
   16371 
   16372 	* mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does.
   16373 
   16374 	* configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure
   16375 	include() from automake 1.8 aclocal.
   16376 	* acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal.
   16377 
   16378 2003-12-17  Niels Mller  <nisse (a] lysator.liu.se>
   16379 
   16380 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]:
   16381 	Enabled code also for GMP_NAIL_BITS > 0.
   16382 	* tune/speed.c [nails]: Enable speed_mpn_hgcd and
   16383 	speed_mpn_hgcd_lehmer.
   16384 	* tune/tuneup.c (tune_hgcd) [nails]: Likewise.
   16385 
   16386 	* mpn/generic/gcd.c [nails]: Use Schnhage's algorithm also for
   16387 	GMP_NAIL_BITS > 0.
   16388 
   16389 	* mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0.
   16390 	(MPN_EXTRACT_LIMB) [nails]: Handle nails.
   16391 	(__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the
   16392 	stack. Also check that r[i] >= r[i+1].
   16393 	(mpn_hgcd2_lehmer_step) [nails]: Handle nails.
   16394 	(mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid
   16395 	trigging that assert in __gmpn_hgcd_sanity.
   16396 	(mpn_hgcd): Likewise.
   16397 
   16398 	* mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware
   16399 	version.
   16400 	(SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the
   16401 	non-nail case.
   16402 	(HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version
   16403 	for K&R compilers.
   16404 	(mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware
   16405 	code for checking Jebelean's condition.
   16406 
   16407 2003-12-13  Kevin Ryde  <kevin (a] swox.se>
   16408 
   16409 	* mpq/get_d.c: Amend comments per mpn_get_d change.
   16410 	(limb2dbl): Remove, no longer used.
   16411 
   16412 	* gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to
   16413 	comments, MP_SIZE_T_MAX means preinv never.
   16414 
   16415 	* gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]:
   16416 	Remove overrides, divexact_1 and modexact_1 have been nailified.
   16417 
   16418 	* mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value
   16419 	requirement.
   16420 
   16421 	* tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around
   16422 	GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall.
   16423 	* tests/t-constants.c (main), tests/t-count_zeros.c (check_clz),
   16424 	tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi),
   16425 	tests/mpq/t-get_d.c (check_onebit): : Correction to printfs.
   16426 	* tests/mpn/t-fat.c: Add <string.h> for memcpy.
   16427 	* tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned".
   16428 	* tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit".
   16429 	* tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for
   16430 	initializers.
   16431 	* tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun):
   16432 	Correction to return values.
   16433 
   16434 	* doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase
   16435 	can be used to locate the most significant bit.  Reword a bit for
   16436 	clarity.
   16437 
   16438 2003-12-12  Niels Mller  <niels (a] lysator.liu.se>
   16439 
   16440 	* mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer
   16441 	overrun.
   16442 	* mpn/generic/hgcd.c: Improved comments.
   16443 
   16444 2003-12-11  Torbjorn Granlund  <tege (a] swox.com>
   16445 
   16446 	* gmp-impl.h: Change asm => __asm__, tabify.
   16447 	* mpz/get_d_2exp.c: Likewise.
   16448 	* mpf/get_d_2exp.c: Likewise.
   16449 
   16450 	* tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities.
   16451 
   16452 2003-12-10  Torbjorn Granlund  <tege (a] swox.com>
   16453 
   16454 	* tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
   16455 	progression, to allow for larger operands and less varying timing.
   16456 
   16457 	* tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor.
   16458 	(tune_hgcd): Likewise.
   16459 
   16460 2003-12-10  Kevin Ryde  <kevin (a] swox.se>
   16461 
   16462 	* demos/perl/test.pl: Should be $] for perl version in old perl.
   16463 
   16464 	* configure.in (sparc64-*-*): Single block of gcc configs for all
   16465 	systems, on unknown systems try both ABI 32 and 64.
   16466 
   16467 	* configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with
   16468 	options to generate .def files with windows DLLs.
   16469 	* Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them.
   16470 
   16471 	* mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow
   16472 	convention and cooperate with tune/tuneup.c.
   16473 
   16474 	* tune/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side
   16475 	default 1000 is approx the crossover point on athlon.
   16476 
   16477 	* tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c,
   16478 	tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter
   16479 	rather than returning a value, avoids alloca in a function call.
   16480 	* tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now
   16481 	inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment
   16482 	extraction.
   16483 
   16484 	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal,
   16485 	__gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater,
   16486 	__gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and
   16487 	mpfr_cmp_d.
   16488 	* tests/cxx/t-ops.cc: Exercise this.
   16489 
   16490 	* demos/perl/Makefile.PL: Don't install sample.pl and test2.pl.
   16491 
   16492 	* demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any
   16493 	rounding.
   16494 	* demos/perl/test.pl: Exercise this.
   16495 
   16496 	* demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
   16497 	* demos/perl/test.pl: Exercise this.
   16498 
   16499 2003-12-08  Kevin Ryde  <kevin (a] swox.se>
   16500 
   16501 	* demos/perl/GMP.pm: Correction to canonicalize example.
   16502 
   16503 	* demos/perl/GMP.xs: New type check scheme, support magic scalars,
   16504 	support UV when available.  Remove some unused local variables.
   16505 	(coerce_long): Check range of double.
   16506 	(get_d_2exp): Remove stray printf.
   16507 
   16508 	* demos/perl/test.pl: Exercise magic, rearrange to make it clearer
   16509 	what's being tested.
   16510 
   16511 2003-12-07  Kevin Ryde  <kevin (a] swox.se>
   16512 
   16513 	* mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the
   16514 	convention of N<THRESH for the lower algorithm, not <=.  Fixes
   16515 	algorithm selection in tuneup.c.
   16516 
   16517 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Use intended
   16518 	align_xp, align_yp.
   16519 
   16520 	* tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT,
   16521 	for the benefit of ASSERT in mpn_mul_n.
   16522 
   16523 	* tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should
   16524 	use MPN_TOOM3_MUL_N_MINSIZE.
   16525 
   16526 	* tune/speed.c (check_align_option): Correction to printf format.
   16527 	* tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable.
   16528 
   16529 	* scanf/doscan.c: Correction to a couple of trace printfs.
   16530 	Add <stdlib.h> for strtol.
   16531 
   16532 	* tests/misc/t-scanf.c (test_sscanf_eof_ok): New function.
   16533 	(check_misc): Use it to suppress tests broken by libc.
   16534 	And should be EOF rather than -1 in various places.
   16535 
   16536 2003-12-06  Torbjorn Granlund  <tege (a] swox.com>
   16537 
   16538 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
   16539 	Move SPEED_TMP_ALLOC_LIMBS invocations out from calls.
   16540 
   16541 	* mpn/generic/get_str.c (mpn_get_str, POW2_P case):
   16542 	Don't append extra '\0' byte.
   16543 
   16544 2003-12-05  Niels Mller  <niels (a] lysator.liu.se>
   16545 
   16546 	* tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd):
   16547 	Updated for the renaming hgcd_sanity -> ASSERT_HGCD.
   16548 
   16549 	* mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final
   16550 	declaration in the declaration section of a block.
   16551 
   16552 	* tune/speed.h (mpn_gcd_accel): Added prototype.
   16553 
   16554 2003-12-05  Torbjorn Granlund  <tege (a] swox.com>
   16555 
   16556 	* randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
   16557 	inside "!=".
   16558 
   16559 	* mpf/get_str.c: Remove unused variable "fracn".
   16560 
   16561 2003-12-03  Kevin Ryde  <kevin (a] swox.se>
   16562 
   16563 	* configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New
   16564 	AC_SUBSTs, use them to create .def files with Windows DLLs.
   16565 	* doc/gmp.texi (Notes for Particular Systems): Update notes on mingw
   16566 	DLL with MS C.
   16567 
   16568 	* mpz/export.c: Allow NULL for countp.
   16569 	* doc/gmp.texi (Integer Import and Export): Describe this.
   16570 	Suggested by Jack Lloyd.
   16571 
   16572 	* mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code.
   16573 	Superiority of this reported by Patrick Pelissier.
   16574 
   16575 2003-11-30  Kevin Ryde  <kevin (a] swox.se>
   16576 
   16577 	* mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files.
   16578 
   16579 	* mpn/alpha/ev67: New directory.
   16580 	* configure.in (alphaev67, alphaev68, alphaev7*): Use it.
   16581 
   16582 	* doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and
   16583 	pxref, remove macros.
   16584 	(GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop
   16585 	and GMPpxreftop.
   16586 	(Debugging): Remove debauch, seems to have disappeared.
   16587 	(Language Bindings): Corrections to URLs for CLN, Omni F77, Pike.
   16588 
   16589 2003-11-29  Kevin Ryde  <kevin (a] swox.se>
   16590 
   16591 	* demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings
   16592 	about $#.
   16593 
   16594 	* demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible
   16595 	rounding of 0x7F..FF in a double on 64-bit systems.
   16596 
   16597 	* configure.in (ppc601-*-*): Remove this case, it never matched
   16598 	anything, the name adopted is powerpc601.
   16599 	(powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601.
   16600 
   16601 	* configure.in: Introduce ${cc}_cflags_maybe, used if they work.
   16602 	(*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode.
   16603 
   16604 	* doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list.
   16605 	(Build Options): Add cpu types alphaev7 and amd64.  Update texinfo
   16606 	html cross reference.
   16607 
   16608 2003-11-28  Niels Mller  <nisse (a] lysator.liu.se>
   16609 
   16610 	* tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0.
   16611 	* tune/speed.c (routine): Likewise.
   16612 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise.
   16613 
   16614 	* mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c
   16615 	[GMP_NAIL_BITS]: Disabled new code if we have nails.
   16616 
   16617 	* mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
   16618 	for compilation with --enable-assert).
   16619 
   16620 	* tune/tuneup.c (hgcd_schoenhage_threshold,
   16621 	gcd_schoenhage_threshold): New variables.
   16622 	(tune_hgcd, tune_gcd_schoenhage): New functions.
   16623 	(all): Call tune_hgcd and tune_gcd_schoenhage.
   16624 
   16625 	* tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer)
   16626 	(speed_mpn_gcd_accel): New functions.
   16627 	* tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and
   16628 	mpn_gcd _accel.
   16629 	* tune/speed.h: Added corresponding prototypes.
   16630 
   16631 	* tune/gcd_accel.c: New file.
   16632 
   16633 	* tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX.
   16634 
   16635 	* tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c.
   16636 	(TUNE_MPN_SRCS_BASIC): Added hgcd.c.
   16637 
   16638 	* mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD)
   16639 	(GCD_SCHOENHAGE_THRESHOLD): Tuned values.
   16640 
   16641 	* mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the
   16642 	old mpn_gcd function (which implements accelerated binary gcd) to
   16643 	gcd_binary_odd.
   16644 	(gcd_binary): New function, with the additional book keeping
   16645 	needed when using gcd_binary_odd to compute the gcd of non-odd
   16646 	numbers.
   16647 	(hgcd_tdiv): New function.
   16648 	(gcd_lehmer): New function, currently #if:ed out.
   16649 	(hgcd_start_row_p): New function, duplicated from hgcd.c.
   16650 	(gcd_schoenhage_itch): New function.
   16651 	(gcd_schoenhage): New function.
   16652 	(mpn_gcd): New advertised gcd function, which calls
   16653 	mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of
   16654 	the input.
   16655 
   16656 	* mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function
   16657 	(was lehmer_step), and made non-static. Updated callers.
   16658 
   16659 	* gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro.
   16660 	(mpn_hgcd2_lehmer_step): Added prototype.
   16661 
   16662 2003-11-27  Niels Mller  <nisse (a] lysator.liu.se>
   16663 
   16664 	* tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
   16665 	don't need to forward declare the array.
   16666 
   16667 2003-11-26  Niels Mller  <nisse (a] lysator.liu.se>
   16668 
   16669 	* mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition
   16670 	(the function belongs to hgcd2.c).
   16671 
   16672 2003-11-26  Torbjorn Granlund  <tege (a] swox.com>
   16673 
   16674 	* tests/mpz/t-gcd.c: Generate random operands up to 32767 bits;
   16675 	decrease # of test to 1000.
   16676 	(gcd_values): Remove oversize test case.
   16677 
   16678 2003-11-26  Niels Mller  <niels (a] lysator.liu.se>
   16679 
   16680 	* gmp-impl.h: Added name mangling for hgcd-related functions. Also
   16681 	use __GMP_PROTO.
   16682 	(MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c.
   16683 	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
   16684 	Adapted to name changes.
   16685 
   16686 	* tests/mpz/t-gcd.c (main): Added some tests with non-random
   16687 	input.
   16688 
   16689 2003-11-25  Niels Mller  <nisse (a] lysator.liu.se>
   16690 
   16691 	* gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.
   16692 	(struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row)
   16693 	(struct hgcd): New structs. Also added prototypes for new hgcd,
   16694 	hgcd2, qstack and gcd functions.
   16695 
   16696 	* configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack.
   16697 
   16698 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c,
   16699 	hgcd.c and qstack.c.
   16700 
   16701 	* mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
   16702 	New files, needed for the sub-quadratic gcd.
   16703 
   16704 2003-11-25  Kevin Ryde  <kevin (a] swox.se>
   16705 
   16706 	* doc/gmp.texi (Language Bindings): Add Axiom.
   16707 
   16708 2003-11-22  Kevin Ryde  <kevin (a] swox.se>
   16709 
   16710 	* mpn/alpha/README: More notes on assembler syntax variations.
   16711 
   16712 	* mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u
   16713 	not bis, and move to alpha-defs.m4 since it can be happily used
   16714 	everywhere.
   16715 
   16716 	* mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4
   16717 	(bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or
   16718 	HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness.
   16719 
   16720 	* mpn/alpha/alpha-defs.m4: New file.
   16721 	* configure.in (alpha*-*-*): Use it.
   16722 
   16723 2003-11-21  Kevin Ryde  <kevin (a] swox.se>
   16724 
   16725 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21.
   16726 
   16727 	* mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not"
   16728 	isn't recognised by on Cray Unicos.  Add missing "gp" to PROLOGUE.
   16729 	* mpn/alpha/README: Add a note on "not".
   16730 
   16731 2003-11-19  Torbjorn Granlund  <tege (a] swox.com>
   16732 
   16733 	* mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding
   16734 	spurious reads beyond operand limits.
   16735 
   16736 	* mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END.
   16737 
   16738 	* mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function.
   16739 	(mpn_lshift_com): Make static, nailify properly.
   16740 
   16741 2003-11-19  Kevin Ryde  <kevin (a] swox.se>
   16742 
   16743 	* mpn/generic/diveby3.c: Use a "q" variable to make it clearer what
   16744 	the code is doing.
   16745 
   16746 	* mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New
   16747 	files.
   16748 
   16749 	* mpn/alpha/ev5/com_n.asm: New file.
   16750 
   16751 	* doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide):
   16752 	New sections by Torbjorn, tweaked by me.
   16753 
   16754 2003-11-17  Torbjorn Granlund  <tege (a] swox.com>
   16755 
   16756 	* mpn/powerpc32: Add power4/powerpc970 cycle counts.
   16757 	Use cmpwi instead of cmpi to placate darwin.
   16758 
   16759 2003-11-15  Kevin Ryde  <kevin (a] swox.se>
   16760 
   16761 	* config.guess: Add comments on MacOS "machine" command.
   16762 
   16763 	* tests/devel/try.c (main): Use gmp_randinit_default explicitly on
   16764 	__gmp_rands, since RANDS doesn't allow seeding.
   16765 
   16766 	* doc/gmp.texi (Assigning Integers): Remove notes on possible change
   16767 	to disallow whitespace, this would be an incompatible change and
   16768 	really can't be made.
   16769 	(Toom 3-Way Multiplication): Updates for Paul's new code.
   16770 
   16771 	* mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put
   16772 	if/else braces around whole of #if code, for readability.
   16773 
   16774 	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
   16775 	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps
   16776 	etc.
   16777 
   16778 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15.
   16779 
   16780 2003-11-14  Torbjorn Granlund  <tege (a] swox.com>
   16781 
   16782 	* mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".
   16783 
   16784 2003-11-13  Torbjorn Granlund  <tege (a] swox.com>
   16785 
   16786 	* mpn/alpha/aorslsh1_n.asm: New file.
   16787 
   16788 2003-11-12  Kevin Ryde  <kevin (a] swox.se>
   16789 
   16790 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2
   16791 	assembler, test code by Torbjorn.
   16792 	* configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback.
   16793 
   16794 	* tune/speed.c (main): Use gmp_randinit_default explicitly on
   16795 	__gmp_rands, since RANDS doesn't allow seeding.
   16796 
   16797 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12.
   16798 
   16799 	* gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to
   16800 	gmp-impl.h, for use by RANDS.
   16801 
   16802 	* mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake.
   16803 	(.obj): Use test -f and $(CYGPATH_W) as per automake.
   16804 
   16805 2003-11-11  Kevin Ryde  <kevin (a] swox.se>
   16806 
   16807 	* configure.in: Make umul and udiv standard-optional objects, rather
   16808 	than under various extra_functions.
   16809 
   16810 	* mpn/pa32/hppa1_1/pa7100/add_n.asm,
   16811 	mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
   16812 	mpn/pa32/hppa1_1/pa7100/lshift.asm,
   16813 	mpn/pa32/hppa1_1/pa7100/rshift.asm,
   16814 	mpn/pa32/hppa1_1/pa7100/sub_n.asm,
   16815 	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels.
   16816 
   16817 	* mpf/set_str.c: Don't use memcmp for decimal point testing, just a
   16818 	loop is enough and avoids any chance of memcmp reading past the end of
   16819 	the given string.
   16820 
   16821 	* randmts.c, randmt.h: New files.
   16822 	* Makefile.am (libgmp_la_SOURCES): Add them.
   16823 	* randmt.c: Move seeding to randmts.c, common defines in randmt.h.
   16824 	* gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed.
   16825 	* tests/misc.c (tests_rand_start): Use gmp_randinit_default
   16826 	explicitly, not RANDS.
   16827 
   16828 	* mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the
   16829 	benefit of itanium 2.
   16830 	* mpn/ia64/gcd_1.asm: Remove own .align 32.
   16831 
   16832 	* mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK.
   16833 	* mpn/ia64/hamdist.asm: Use ALIGN instead of .align.
   16834 
   16835 	* acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro.
   16836 	* configure.in (IA64_PATTERN): Use it.
   16837 	* mpn/ia64/README: Add notes on gas big endian align problem.
   16838 
   16839 2003-11-10  Torbjorn Granlund  <tege (a] swox.com>
   16840 
   16841 	* mpn/ia64/mul_1.asm: Rewrite.
   16842 
   16843 2003-11-08  Torbjorn Granlund  <tege (a] swox.com>
   16844 
   16845 	* mpn/x86/aors_n.asm: Align loop to a multiple of 16.  Also align
   16846 	M4_function_n to a multiple of 16, to minimize alignment padding.
   16847 	Update P6 cycle counts reflecting improvements with new alignment.
   16848 
   16849 2003-11-07  Kevin Ryde  <kevin (a] swox.se>
   16850 
   16851 	* gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define.
   16852 	(ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68.
   16853 	* longlong.h (count_leading_zeros, count_trailing_zeros): Ditto.
   16854 
   16855 	* doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI
   16856 	system packaging.
   16857 	(ABI and ISA): Add GNU/Linux ABI=64.
   16858 	(Binary GCD): Add notes on 1x1 GCD algorithms.
   16859 
   16860 	* mpn/alpha/README: Add some literature references.
   16861 
   16862 	* mpn/ia64/mode1o.asm: Various corrections to initial checkin.
   16863 	* mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting.
   16864 
   16865 2003-11-05  Torbjorn Granlund  <tege (a] swox.com>
   16866 
   16867 	* mpn/powerpc64/linux64.m4: New file.
   16868 	* configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
   16869 	Use linux64.m4.
   16870 
   16871 	* mpn/ia64/logops_n.asm: New file.
   16872 
   16873 2003-11-05  Kevin Ryde  <kevin (a] swox.se>
   16874 
   16875 	* tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz",
   16876 	for the benefit of sparc cypress under netbsd 1.6.1.
   16877 
   16878 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05.
   16879 
   16880 	* mpn/alpha/ev5/dive_1.c: New file.
   16881 
   16882 	* configure.in (x86_64-*-*): Accept together with amd64-*-*.
   16883 
   16884 	* tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers.
   16885 	* tune/speed.h (CACHE_LINE_SIZE): Amend comments.
   16886 
   16887 2003-11-04  Torbjorn Granlund  <tege (a] swox.com>
   16888 
   16889 	* tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.
   16890 
   16891 2003-11-03  Kevin Ryde  <kevin (a] swox.se>
   16892 
   16893 	* mpn/ia64/hamdist.asm: New file.
   16894 	* mpn/ia64/mode1o.asm: New file.
   16895 	* mpn/ia64/ia64-defs.m4 (ASSERT): New macro.
   16896 
   16897 	* tests/mpz/t-set_d.c (check_2n_plus_1): New test.
   16898 
   16899 2003-11-01  Kevin Ryde  <kevin (a] swox.se>
   16900 
   16901 	* mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it
   16902 	provokes code gen problems on HP cc.
   16903 	(BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with
   16904 	BITREV_ULONG.
   16905 	Fix by Jason Moxham.
   16906 
   16907 	* mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to
   16908 	truncate divisor.  Amend stated 750/7400 speeds, and note operands
   16909 	that give the extremes.
   16910 
   16911 	* mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc
   16912 	3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong.
   16913 
   16914 	* mpn/generic/diveby3.c: Show a better style carry handling in the
   16915 	alternative pipelined sample code.
   16916 
   16917 	Revert this, the longlong.h macros need -mpowerpc64:
   16918 	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
   16919 	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
   16920 	when bad.
   16921 
   16922 2003-10-31  Torbjorn Granlund  <tege (a] swox.com>
   16923 
   16924 	* mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a
   16925 	cycle on POWER4.
   16926 
   16927 	* mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems
   16928 	revealed on Mac OS X.
   16929 
   16930 	* mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4.
   16931 
   16932 	* mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4.
   16933 
   16934 2003-10-31  Kevin Ryde  <kevin (a] swox.se>
   16935 
   16936 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31.
   16937 
   16938 	* mpn/powerpc64/README: Add subdirectory organisation notes.
   16939 
   16940 	* tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc
   16941 	2.95 with -mcpu=ultrasparc.
   16942 
   16943 	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
   16944 	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
   16945 	when bad.
   16946 
   16947 	* configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags.
   16948 
   16949 	* mpn/ia64/divrem_1.asm, mpn/ia64/gcd_1.asm: Use "C" for comments.
   16950 	* mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this.
   16951 
   16952 	* mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files.
   16953 	* configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN.
   16954 
   16955 	* doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes
   16956 	for -mshort and PalmOS, now works.
   16957 	(References): Correction, GMP Square Root proof already there, just
   16958 	wanting URL from RRRR 4475.
   16959 
   16960 2003-10-29  Kevin Ryde  <kevin (a] swox.se>
   16961 
   16962 	* configure.in (sparc*-*-*): Use gcc -m32 when that option works, to
   16963 	force 32-bit mode on dual 32/64 configurations like GNU/Linux.
   16964 	(sparc64-*-linux*): Add support for ABI=64.
   16965 
   16966 	* mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with
   16967 	udiv_qrnnd_preinv to avoid warning about shift > type.
   16968 
   16969 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29.
   16970 
   16971 	* tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't
   16972 	update that, avoids certain g++ 2.96 problems.
   16973 
   16974 	* tests/mpn/t-fat.c: New file.
   16975 	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
   16976 
   16977 	* configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros
   16978 	for fat.h.
   16979 	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead
   16980 	of memcpy.  Correction to location of "initialized" set.  Improve
   16981 	various comments.
   16982 
   16983 2003-10-27  Torbjorn Granlund  <tege (a] swox.com>
   16984 
   16985 	* mpn/sparc64/mul_1.asm: Change addcc => add in a few places.
   16986 	* mpn/sparc64/addmul_1.asm: Likewise.
   16987 
   16988 	* mpn/sparc32/v9/mul_1.asm: Apply cross-jumping.
   16989 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   16990 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   16991 	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise.
   16992 
   16993 2003-10-27  Kevin Ryde  <kevin (a] swox.se>
   16994 
   16995 	* tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0)
   16996 	-mcpu=ultrasparc LONG_MIN is wrong and kills the compile.
   16997 
   16998 	* tests/cxx/t-istream.cc: Correction to tellg tests, don't assume
   16999 	streampos is zero based.
   17000 
   17001 	* configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h.
   17002 	* mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround,
   17003 	since Cray cc doesn't define __alpha.
   17004 
   17005 	* mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility
   17006 	attribute.
   17007 
   17008 2003-10-25  Kevin Ryde  <kevin (a] swox.se>
   17009 
   17010 	* mpn/ia64/gcd_1.asm: New file.
   17011 
   17012 	* tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha.
   17013 
   17014 	* doc/gmp.texi (C++ Formatted Input): Describe base indicator handling.
   17015 
   17016 	* tests/cxx/t-istream.cc: New file.
   17017 	* tests/cxx/Makefile.am: Add it.
   17018 
   17019 	* cxx/ismpznw.cc: New file, integer input without whitespace ...
   17020 	* cxx/ismpz.cc: ... from here.
   17021 	* gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype.
   17022 	* cxx/ismpq.cc: Rewrite using mpz input routines.  Change to accept a
   17023 	separate base indicator on numerator and denominator.  Fix base
   17024 	indicator case where "123/0456" would stop at "123/0".
   17025 	* Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc.
   17026 
   17027 	* tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c
   17028 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   17029 
   17030 	* mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and
   17031 	stack alignment.
   17032 	* mpn/m68k/README: Add notes on this.
   17033 	* configure.in (SIZEOF_UNSIGNED): New define in config.m4.
   17034 	* mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew.
   17035 	Reported by Patrick Pelissier.
   17036 
   17037 	* mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid
   17038 	deprecation warnings from perl 5.8.
   17039 
   17040 	* configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6.
   17041 	If gcc is to be believed the old C3s don't have cmov.
   17042 
   17043 	* Makefile.am: Amend comments about not building from libtool
   17044 	convenience libraries.
   17045 
   17046 	* mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename
   17047 	in missing EPILOGUE error messages.
   17048 	(m4_file_seen): Amend comments about where used.
   17049 
   17050 	* Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to
   17051 	ansi2knr rules.
   17052 
   17053 	* gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in
   17054 	applications using g++ -Wold-style-cast.
   17055 
   17056 	* mpn/z8000/README: New file.
   17057 
   17058 2003-10-22  Kevin Ryde  <kevin (a] swox.se>
   17059 
   17060 	* mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023,
   17061 	CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism,
   17062 	and use on Cray Unicos alpha too, which has the same problem.
   17063 
   17064 	* configure.in (powerpc64-*-darwin*): Make ABI=32 available as the
   17065 	final fallback, remove mode64 until we know how it will work.
   17066 
   17067 	* doc/gmp.texi (Build Options): Add powerpc970 to available CPUs.
   17068 	(ABI and ISA): Add mode32 for Darwin.
   17069 
   17070 	* configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid
   17071 	known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on
   17072 	HP-UX.
   17073 
   17074 	* configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for
   17075 	the default 32-bit ABI.  Fixes powerpc64-*-aix* which is documented as
   17076 	choices "aix64 32" but had "aix64 standard".
   17077 
   17078 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22.
   17079 
   17080 	* doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort
   17081 	and PalmOS calling conventions not supported.  Reported by Patrick
   17082 	Pelissier.
   17083 	(References): Add Paul Zimmermann's Inria 4475 paper.
   17084 
   17085 2003-10-21  Torbjorn Granlund  <tege (a] swox.com>
   17086 
   17087 	* mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate
   17088 	Itanium 2 getf.sig latency.
   17089 
   17090 2003-10-21  Kevin Ryde  <kevin (a] swox.se>
   17091 
   17092 	* tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n,
   17093 	mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n.  Typo in mpn_preinv_divrem_1
   17094 	conditional.
   17095 
   17096 2003-10-20  Torbjorn Granlund  <tege (a] swox.com>
   17097 
   17098 	* mpn/powerpc64/mode32/add_n.asm: New file.
   17099 	* mpn/powerpc64/mode32/sub_n.asm: New file.
   17100 	* mpn/powerpc64/mode32/mul_1.asm: New file.
   17101 	* mpn/powerpc64/mode32/addmul_1.asm: New file.
   17102 	* mpn/powerpc64/mode32/submul_1.asm: New file.
   17103 
   17104 2003-10-19  Torbjorn Granlund  <tege (a] swox.com>
   17105 
   17106 	* longlong.h (AMD64): __x86_64__ => __amd64__.
   17107 	(64-bit powerpc): Only define carry-dependent macros if
   17108 	!_LONG_LONG_LIMB.
   17109 
   17110 	* acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*.
   17111 
   17112 	* configure.in (POWERPC64_PATTERN): Handle *-*-darwin*.
   17113 	(POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64.
   17114 
   17115 	* mpn/powerpc64/mode64/mul_1.asm: Change cal => addi.
   17116 	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
   17117 	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
   17118 	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
   17119 
   17120 	* mpn/powerpc64/mode64/mul_1.asm: Move from "..".
   17121 	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
   17122 	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
   17123 	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
   17124 	* mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise.
   17125 	* mpn/powerpc64/mode64/add_n.asm: Likewise.
   17126 	* mpn/powerpc64/mode64/addsub_n.asm: Likewise.
   17127 	* mpn/powerpc64/mode64/sub_n.asm: Likewise.
   17128 	* mpn/powerpc64/mode64/addlsh1_n.asm: Likewise.
   17129 	* mpn/powerpc64/mode64/diveby3.asm: Likewise.
   17130 	* mpn/powerpc64/mode64/rsh1add_n.asm: Likewise.
   17131 	* mpn/powerpc64/mode64/sublsh1_n.asm: Likewise.
   17132 
   17133 	* mpn/powerpc64/lshift.asm: Handle mode32 ABI.
   17134 	* mpn/powerpc64/rshift.asm: Likewise.
   17135 	* mpn/powerpc64/umul.asm: Likewise.
   17136 
   17137 	* tune/powerpc64.asm: Make it actually work.
   17138 
   17139 2003-10-19  Kevin Ryde  <kevin (a] swox.se>
   17140 
   17141 	* mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant
   17142 	comparison bug.
   17143 
   17144 	* gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw
   17145 	std::length_error if size is too big.
   17146 	* tests/cxx/t-rand.cc (check_randinit): Exercise this.
   17147 
   17148 	* mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from
   17149 	mpn/x86/pentium4/sse2/add_n.asm.
   17150 
   17151 	* doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++
   17152 	Interface Floats): Note std::invalid_argument exception for invalid
   17153 	strings to constructors and operator=.
   17154 	(C++ Interface Random Numbers): Note std::length_error exception for
   17155 	size too big in gmp_randinit_lc_2exp_size.
   17156 
   17157 2003-10-18  Kevin Ryde  <kevin (a] swox.se>
   17158 
   17159 	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18.
   17160 
   17161 	* gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors
   17162 	and operator= taking string or char*): Throw std::invalid_argument if
   17163 	string cannot be converted.
   17164 	* tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this.
   17165 
   17166 	* cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale
   17167 	ctype facet for isspace when available.  Only accept space at the
   17168 	start of the input, same as g++ libstdc++.  Use ASSERT_NOCARRY to
   17169 	check result of mpz_set_str etc.
   17170 	* cxx/ismpf.cc: Don't accept "@" for exponent indicator.
   17171 
   17172 	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove
   17173 	_open and _mpn variants of mpn_toom3_mul_n, only one style now.
   17174 	* tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files.
   17175 
   17176 	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
   17177 	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
   17178 
   17179 	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character
   17180 	constants, hex is an ANSI-ism.
   17181 
   17182 	* mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per
   17183 	mpn/generic/mode1o.c.
   17184 
   17185 	* mpn/generic/diveby3.c: Add commented out alternative code and notes
   17186 	for taking the multiply off the dependent chain.  Amend/clarify some
   17187 	of the other comments.
   17188 
   17189 	* configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available.
   17190 	(powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not
   17191 	available.
   17192 
   17193 	* doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not
   17194 	supported.
   17195 	(C++ Formatted Input, C++ Formatted Output): Cross reference class
   17196 	interface on overloading.
   17197 
   17198 	* mpn/m68k/README: Add various ideas from doc/tasks.html.
   17199 
   17200 	* mpn/m88k/README: New file.
   17201 
   17202 2003-10-16  Torbjorn Granlund  <tege (a] swox.com>
   17203 
   17204 	* config.sub: Recognize powerpc970.
   17205 
   17206 2003-10-15  Torbjorn Granlund  <tege (a] swox.com>
   17207 
   17208 	* config.guess: Recognize powerpc970 under MacOS.
   17209 
   17210 2003-10-15  Kevin Ryde  <kevin (a] swox.se>
   17211 
   17212 	* configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test.
   17213 	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
   17214 	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
   17215 
   17216 	* mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE.
   17217 	* configure.in (amd64-*-*): Use it.
   17218 	* mpn/amd64/addlsh1_n.asm: Add ALIGN(16).
   17219 
   17220 	* mpfr/*: Update to mpfr cvs 2003-10-15.
   17221 
   17222 	* mpn/generic/get_d.c: Rewrite, simplifying and truncating towards
   17223 	zero unconditionally.
   17224 	* tests/mpn/t-get_d.c: Add various further tests.
   17225 	* gmp-impl.h (FORCE_DOUBLE): New macro.
   17226 
   17227 	* gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into
   17228 	C++ mangled function names.
   17229 
   17230 	* doc/gmp.texi (Build Options): Update notes for new doc subdir.
   17231 	(Low-level Functions): Note mpn functions don't check for zero limbs
   17232 	etc, it's up to an application to strip.
   17233 
   17234 	* doc/configuration (Configure): mdate-sh now in doc subdir, add
   17235 	generated fat.h.
   17236 
   17237 2003-10-14  Torbjorn Granlund  <tege (a] swox.com>
   17238 
   17239 	* mpn/ia64/lorrshift.asm: Rewrite.
   17240 
   17241 	* mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints.
   17242 
   17243 2003-10-13  Torbjorn Granlund  <tege (a] swox.com>
   17244 
   17245 	* mpn/ia64/diveby3.asm: New file.
   17246 
   17247 2003-10-13  Kevin Ryde  <kevin (a] swox.se>
   17248 
   17249 	* mpn/powerpc32/mod_34lsub1.asm: New file.
   17250 
   17251 	* mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in
   17252 	second operand of mullw, to allow possible early-out, which the
   17253 	0xAA..AB inverse cannot give.  This improvement noticed by Torbjorn.
   17254 
   17255 	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether
   17256 	local label is purely temporary or appears in object files, for
   17257 	development purposes.
   17258 
   17259 	* doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved
   17260 	from top-level.
   17261 	* doc/Makefile.am: New file.
   17262 	* configure.in (AC_OUTPUT): Add doc/Makefile.
   17263 	* Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST.
   17264 	(info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am.
   17265 	* mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir.
   17266 	(TEXINFO_TEX): texinfo.tex now in doc subdir.
   17267 	(AM_MAKEINFOFLAGS): Set -I to doc subdir.
   17268 
   17269 	* mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as
   17270 	UNLIKELY.
   17271 
   17272 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test
   17273 	for high zero limbs.
   17274 
   17275 2003-10-12  Torbjorn Granlund  <tege (a] swox.com>
   17276 
   17277 	* mpn/powerpc64/diveby3.asm: New file (trivial edits of
   17278 	powerpc32/diveby3.asm).
   17279 
   17280 	* mpn/powerpc32/diveby3.asm: Update cycle counts with more processors.
   17281 	* mpn/powerpc32/sqr_diagonal.asm: Likewise.
   17282 
   17283 	* mpn/pa64/add_n.asm: Correct PA8500 cycle counts.
   17284 	* mpn/pa64/sub_n.asm: Likewise.
   17285 
   17286 	* mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo.
   17287 	* mpn/m68k/lshift.asm: Likewise.
   17288 	* mpn/m68k/rshift.asm: Likewise.
   17289 
   17290 	* mpn/m68k/README: Correct an URL; add some STATUS comments.
   17291 
   17292 	* mpn/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well.
   17293 
   17294 	* mpn/powerpc32/addlsh1_n.asm: New file.
   17295 	* mpn/powerpc32/sublsh1_n.asm: New file.
   17296 
   17297 2003-10-12  Kevin Ryde  <kevin (a] swox.se>
   17298 
   17299 	* mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files.
   17300 	* mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32,
   17301 	invert_half_limb, udiv_qrnnd_half_preinv): New macros.
   17302 
   17303 	* gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit,
   17304 	so as not to depend on signed right shifts being arithmetic.
   17305 
   17306 	* mpn/powerpc32/diveby3.asm: New file.
   17307 
   17308 	* mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from
   17309 	udiv_qrnnd_preinv about shift count when int<long.  Do the same with
   17310 	udiv_qrnnd, for consistency.
   17311 
   17312 	* Makefile.am (install-data-hook): Print a warning recommending "make
   17313 	check" to watch out for compiler bugs.  Proposed by Torbjorn.
   17314 
   17315 	* mpn/ia64/README (mpn_lshift, mpn_rshift): Amend prospective itanium2
   17316 	speed, 0.75 c/l with shrp plus shl/shr.
   17317 
   17318 	* mpn/ia64/popcount.asm: Add comment on optimality.
   17319 
   17320 2003-10-11  Torbjorn Granlund  <tege (a] swox.com>
   17321 
   17322 	* mpn/ia64/rsh1aors_n.asm: New file.
   17323 
   17324 	* mpn/asm-defs.m4: Handle rsh1aors_n.
   17325 
   17326 	* configure.in (tmp_mulfunc): Handle rsh1aors_n.
   17327 
   17328 2003-10-11  Kevin Ryde  <kevin (a] swox.se>
   17329 
   17330 	* mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory
   17331 	access for 0xAAAAAAAB constant.
   17332 
   17333 	* gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm
   17334 	versions using ctpop.
   17335 
   17336 	* mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description
   17337 	and M4_desc_retval used only in comments.
   17338 
   17339 	* mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1.
   17340 
   17341 2003-10-09  Torbjorn Granlund  <tege (a] swox.com>
   17342 
   17343 	* mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed.
   17344 	* mpn/powerpc64/sublsh1_n.asm: Likewise.
   17345 
   17346 2003-10-09  Kevin Ryde  <kevin (a] swox.se>
   17347 
   17348 	* mpfr/*: Update to mpfr cvs 2003-10-09.
   17349 
   17350 	* tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on
   17351 	systems which use that, eg. hpux 9.
   17352 
   17353 2003-10-07  Kevin Ryde  <kevin (a] swox.se>
   17354 
   17355 	* tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf change.
   17356 
   17357 	* configure.in: Check for psp_iticksperclktick in struct pst_processor.
   17358 	* tune/freq.c (freq_pstat_getprocessor): Use this.
   17359 
   17360 	* tests/devel/try.c (divisor_array): Add a couple of half-limb values.
   17361 
   17362 	* acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to
   17363 	set result "yes" when cross compiling.
   17364 
   17365 2003-10-06  Torbjorn Granlund  <tege (a] swox.com>
   17366 
   17367 	* mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of
   17368 	mpn_add_1 and mpn_sub_1.
   17369 
   17370 	* mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code.
   17371 
   17372 2003-10-05  Torbjorn Granlund  <tege (a] swox.com>
   17373 
   17374 	* mpn/pa64/mul_1.asm: Misc comment cleanups.
   17375 	* mpn/pa64/addmul_1.asm: Likewise.
   17376 	* mpn/pa64/submul_1.asm: Likewise.
   17377 
   17378 	* mpn/pa64/README: Correct cycle counts.
   17379 
   17380 	* mpn/pa64/aorslsh1_n.asm: New file.
   17381 
   17382 2003-10-04  Kevin Ryde  <kevin (a] swox.se>
   17383 
   17384 	* tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo,
   17385 	freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of
   17386 	MHz etc at end of sscanf format string.  In particular need this for
   17387 	freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used
   17388 	for the frequency.
   17389 
   17390 	* tests/misc.c, tests/tests.h (tests_setjmp_sigfpe,
   17391 	tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target,
   17392 	tests_dbl_mant_bits): New.
   17393 
   17394 	* configure.in (viac3*-*-*): Add gcc VIA c3 options.
   17395 
   17396 	* mpfr/*: Update to mpfr cvs 2003-10-04.
   17397 
   17398 	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
   17399 	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps.
   17400 	* tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
   17401 	refmpn_rsh1sub_n): Add prototypes.
   17402 
   17403 	* tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n,
   17404 	mpn_rsh1add_n, mpn_rsh1sub_n.
   17405 
   17406 2003-10-03  Torbjorn Granlund  <tege (a] swox.com>
   17407 
   17408 	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
   17409 	refmpn_rsh1sub_n): New functions.
   17410 
   17411 2003-10-03  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   17412 
   17413 	* mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1
   17414 	instead of MPN_INCR_/MPN_DECR_U.
   17415 
   17416 2003-10-02  Torbjorn Granlund  <tege (a] swox.com>
   17417 
   17418 	* configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.
   17419 
   17420 2003-10-02  Kevin Ryde  <kevin (a] swox.se>
   17421 
   17422 	* configure.in (ia64*-*-hpux*): For cc, let +O optimization level
   17423 	fallback if +O3 doesn't work.
   17424 
   17425 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca
   17426 	when available, to pick up Itanium HP-UX cc internal errors in +O2.
   17427 	Provoking code by Torbjorn.
   17428 
   17429 2003-10-01  Torbjorn Granlund  <tege (a] swox.com>
   17430 
   17431 	* mpn/ia64/gmp-mparam.h: Retune.
   17432 
   17433 	* mpn/asm-defs.m4: Handle aorslsh1_n.
   17434 
   17435 	* configure.in (tmp_mulfunc): Handle aorslsh1_n.
   17436 
   17437 	* mpn/ia64/aorslsh1_n.asm: New file.
   17438 
   17439 	* mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and
   17440 	mpn_sub_n.
   17441 	* mpn/ia64/add_n.asm: Replace by aors_n.asm.
   17442 	* mpn/ia64/sub_n.asm: Replace by aors_n.asm.
   17443 
   17444 2003-10-01  Kevin Ryde  <kevin (a] swox.se>
   17445 
   17446 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a
   17447 	separate case and consider it non-IEEE, since it looks like this is
   17448 	due to some sort of restricted or incorrect software floats.
   17449 
   17450 	* demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in
   17451 	separate objdir now.
   17452 
   17453 	* cxx/dummy.cc: Moved from top-level dummy.cc.
   17454 	* Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc,
   17455 	correction to comment about this.
   17456 
   17457 2003-09-30  Torbjorn Granlund  <tege (a] swox.com>
   17458 
   17459 	* demos/pexpr.c: Correct documentation of -split.
   17460 	(TIME): Remove cast of result to double.
   17461 	(main): Change timing variables to int.
   17462 	(main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than
   17463 	100000 digits.
   17464 
   17465 2003-09-28  Torbjorn Granlund  <tege (a] swox.com>
   17466 
   17467 	* mpn/*/*.asm: Clean up spacing, tabify.
   17468 
   17469 	* mpn/alpha/rshift.asm: Table cycle counts.
   17470 	* mpn/alpha/lshift.asm: Likewise.
   17471 	* mpn/alpha/ev5/rshift.asm: Likewise.
   17472 	* mpn/alpha/ev5/lshift.asm: Likewise.
   17473 	* mpn/alpha/ev6/add_n.asm: Likewise.
   17474 	* mpn/alpha/ev6/sub_n.asm: Likewise.
   17475 
   17476 	* mpn/ia64/lorrshift.asm: Amend comments about performance.
   17477 
   17478 	* mpn/pa64/mul_1.asm: Fix comment typo.
   17479 	* mpn/pa64/addmul_1.asm: Likewise.
   17480 	* mpn/pa64/submul_1.asm: Likewise.
   17481 
   17482 	* mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break
   17483 	recurrency.  Add remarks about possible further speedup.
   17484 	* mpn/amd64/sublsh1_n.asm: Likewise.
   17485 
   17486 	* mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup.
   17487 	* mpn/amd64/rsh1sub_n.asm: Likewise.
   17488 
   17489 2003-09-27  Torbjorn Granlund  <tege (a] swox.com>
   17490 
   17491 	* mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.
   17492 
   17493 	* mpn/powerpc64/rsh1add_n.asm: New file.
   17494 	* mpn/powerpc64/rsh1sub_n.asm: New file.
   17495 	* mpn/powerpc64/rshift.asm: Rewrite.
   17496 	* mpn/powerpc64/lshift.asm: Rewrite.
   17497 
   17498 2003-09-26  Torbjorn Granlund  <tege (a] swox.com>
   17499 
   17500 	* mpn/powerpc64/addlsh1_n.asm: New file.
   17501 	* mpn/powerpc64/sublsh1_n.asm: New file.
   17502 
   17503 2003-09-25  Torbjorn Granlund  <tege (a] swox.com>
   17504 
   17505 	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
   17506 	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on
   17507 	corresponding HAVE_NATIVE_*.
   17508 
   17509 2003-09-25  Kevin Ryde  <kevin (a] swox.se>
   17510 
   17511 	* mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB.
   17512 
   17513 	* demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and
   17514 	mpfr_number_p merely returning non-zero, rather than 1 or 0.
   17515 
   17516 	* demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta.
   17517 
   17518 	* demos/expr/Makefile.am (LDADD): Update comments on $(LIBM).
   17519 
   17520 2003-09-24  Torbjorn Granlund  <tege (a] swox.com>
   17521 
   17522 	* tune/speed.c (routine): Add entries for mpn_addlsh1_n, mpn_sublsh1_n,
   17523 	mpn_rsh1add_n, and mpn_rsh1sub_n.
   17524 
   17525 	* tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
   17526 	speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n.
   17527 
   17528 	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
   17529 	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions.
   17530 
   17531 	* gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and
   17532 	mpn_rsh1sub_n.
   17533 
   17534 	* mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n,
   17535 	rsh1add_n, and rsh1sub_n.
   17536 
   17537 	* mpn/powerpc64/*.asm: Add cycle counts in consistent style.  Misc
   17538 	styling edits.
   17539 
   17540 	* mpn/amd64/gmp-mparam.h: Retune.
   17541 
   17542 	* configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n,
   17543 	HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n,
   17544 	HAVE_NATIVE_mpn_rsh1sub_n.
   17545 	(gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n,
   17546 	and rsh1sub_n.
   17547 
   17548 	* mpn/amd64/addlsh1_n.asm: New file.
   17549 	* mpn/amd64/sublsh1_n.asm: New file.
   17550 	* mpn/amd64/rsh1add_n.asm: New file.
   17551 	* mpn/amd64/rsh1sub_n.asm: New file.
   17552 
   17553 2003-09-24  Kevin Ryde  <kevin (a] swox.se>
   17554 
   17555 	* mpfr/*: Update to mpfr cvs 2003-09-24.
   17556 
   17557 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.
   17558 
   17559 2003-09-23  Torbjorn Granlund  <tege (a] swox.com>
   17560 
   17561 	* gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.
   17562 
   17563 2003-09-23  Kevin Ryde  <kevin (a] swox.se>
   17564 
   17565 	* gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.
   17566 
   17567 2003-09-22  Torbjorn Granlund  <tege (a] swox.com>
   17568 
   17569 	* tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define.
   17570 	* tune/mul_n_open.c (__gmpn_sqr_n): New #define.
   17571 
   17572 	* mpn/generic/mul.c (mpn_sqr_n): Move from here...
   17573 	* mpn/generic/mul_n.c (mpn_sqr_n): ...to here.
   17574 	(mpn_sqr_n): Allocate workspace for toom3 using TMP_* mechanism except
   17575 	for very large operands when !WANT_FFT.
   17576 
   17577 	* mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes.
   17578 
   17579 	* mpn/generic/mul.c: Remove spurious #include <stdio.h>.
   17580 
   17581 	* mpn/x86/k7/gmp-mparam.h: Retune.
   17582 
   17583 	* mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using
   17584 	TMP_* mechanism except for very large operands when !WANT_FFT.
   17585 
   17586 	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE):
   17587 	Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n.
   17588 	(MPN_TOOM3_MAX_N): New #define.
   17589 
   17590 	* mpn/amd64/gmp-mparam.h: Retune.
   17591 
   17592 	* mpn/Makefile.am (TARG_DIST): Add amd64.
   17593 
   17594 	* mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available.
   17595 
   17596 	* mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros.
   17597 
   17598 2003-09-22  Kevin Ryde  <kevin (a] swox.se>
   17599 
   17600 	* mpfr/*: Update to mpfr cvs 2003-09-22.
   17601 
   17602 2003-09-21  Kevin Ryde  <kevin (a] swox.se>
   17603 
   17604 	* mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1,
   17605 	USE_PREINV_MOD_1): Set to 1 for new asm versions.
   17606 
   17607 	* mpfr/*: Update to mpfr cvs 2003-09-21.
   17608 
   17609 2003-09-21  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   17610 
   17611 	* mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use
   17612 	mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to
   17613 	mpn_addlsh1_n.  Avoid all copying, at the expense of some additional
   17614 	workspace.
   17615 
   17616 	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accommodate
   17617 	latest toom3 code.
   17618 
   17619 2003-09-19  Kevin Ryde  <kevin (a] swox.se>
   17620 
   17621 	* mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
   17622 	New files.
   17623 
   17624 2003-09-16  Kevin Ryde  <kevin (a] swox.se>
   17625 
   17626 	* tune/speed.c (run_one): Don't scale the -1.0 not-available return.
   17627 	Print "n/a" for times not-available.
   17628 
   17629 2003-09-13  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   17630 
   17631 	* mpn/generic/mul_n.c (toom3_interpolate): New function.
   17632 	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate.
   17633 
   17634 2003-09-12  Torbjorn Granlund  <tege (a] swox.com>
   17635 
   17636 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused
   17637 	variables.
   17638 	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last
   17639 	MPN_DECR_U calls.
   17640 
   17641 2003-09-12  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   17642 
   17643 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.
   17644 
   17645 2003-09-12  Torbjorn Granlund  <tege (a] swox.com>
   17646 
   17647 	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate
   17648 	to use the same form as MPN_TOOM3_MUL_N_TSIZE.
   17649 	(MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3
   17650 	code requirements.
   17651 	* mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove.
   17652 	(USE_MORE_MPN): Remove.
   17653 
   17654 2003-08-31  Kevin Ryde  <kevin (a] swox.se>
   17655 
   17656 	* mpfr/*: Update to mpfr cvs 2003-08-31.
   17657 
   17658 2003-08-30  Kevin Ryde  <kevin (a] swox.se>
   17659 
   17660 	* mpfr/*: Update to mpfr cvs 2003-08-30.
   17661 
   17662 2003-08-29  Torbjorn Granlund  <tege (a] swox.com>
   17663 
   17664 	* mpn/amd64/copyi.asm: New file.
   17665 	* mpn/amd64/copyd.asm: New file.
   17666 	* mpn/amd64/README: New file.
   17667 
   17668 2003-08-28  Torbjorn Granlund  <tege (a] swox.com>
   17669 
   17670 	* mpn/amd64/lshift.asm: New file.
   17671 	* mpn/amd64/rshift.asm: New file.
   17672 	* mpn/amd64/gmp-mparam.h: Retune.
   17673 
   17674 2003-08-23  Kevin Ryde  <kevin (a] swox.se>
   17675 
   17676 	* tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value
   17677 	established.
   17678 
   17679 	* mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return
   17680 	exactness indication, can get that from testing the remainder.
   17681 
   17682 	* mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments
   17683 	about loads and stores and what speed should be possible.
   17684 
   17685 2003-08-22  Torbjorn Granlund  <tege (a] swox.com>
   17686 
   17687 	* mpn/amd64/add_n.asm: New file.
   17688 	* mpn/amd64/sub_n.asm: New file.
   17689 	* mpn/amd64/mul_1.asm: New file.
   17690 	* mpn/amd64/addmul_1.asm: New file.
   17691 	* mpn/amd64/submul_1.asm: New file.
   17692 
   17693 2003-08-19  Kevin Ryde  <kevin (a] swox.se>
   17694 
   17695 	* longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main
   17696 	__GNUC__ block.  Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since
   17697 	these forms are only for ABI=2.0w.
   17698 
   17699 	* longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to
   17700 	avoid bfffo on GCC 3.4 in CPU32 mode.  Reported by Bernardo Innocenti.
   17701 
   17702 	* longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force
   17703 	64-bit register destination.  Pointed out by Torbjorn.
   17704 
   17705 	* mpz/combit.c: Correction to carry handling when extending a
   17706 	negative, and use __GMPN_ADD_1.  Correction to complement limb for a
   17707 	negative when there's a non-zero low limb.
   17708 	* tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these.
   17709 
   17710 	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add
   17711 	get_d_2exp.
   17712 	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm,
   17713 	demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui.
   17714 	(GMP::Rand::randstate): Accept a randstate object to copy.
   17715 	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm,
   17716 	demos/perl/test.pl: Add combit, rootrem.
   17717 
   17718 2003-08-19  Torbjorn Granlund  <tege (a] swox.com>
   17719 
   17720 	* tune/Makefile.am (EXTRA_DIST): Add amd64.asm.
   17721 
   17722 2003-08-17  Kevin Ryde  <kevin (a] swox.se>
   17723 
   17724 	* gmpxx.h [__MPFR_H]: Include full <iostream> for inlines.
   17725 	* tests/cxx/t-headfr.cc: New file, exercising this.
   17726 	* tests/cxx/Makefile.am: Add it.
   17727 
   17728 	* tests/cxx/t-constr.cc: Include config.h for WANT_MPFR.
   17729 
   17730 	* gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment.
   17731 	Reported by Derrick Bass.
   17732 	* tests/cxx/t-assign.cc (check_mpfr): Exercise this.
   17733 
   17734 	* configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of
   17735 	tests/cxx/t-*.cc.  (Was always meant to have been defined.)
   17736 	* tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr.
   17737 
   17738 	* gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode
   17739 	(struct __gmp_hypot_function): Correction to mpfr_hypot addition.
   17740 	* tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long
   17741 	tests.
   17742 
   17743 2003-08-16  Torbjorn Granlund  <tege (a] swox.com>
   17744 
   17745 	* configure.in (amd64): New.
   17746 
   17747 	* mpn/amd64/gmp-mparam.h: New file.
   17748 
   17749 	* tune/amd64.asm: New file, derived in part from tune/pentium.asm.
   17750 
   17751 2003-08-15  Kevin Ryde  <kevin (a] swox.se>
   17752 
   17753 	* tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2.
   17754 	(freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too.
   17755 
   17756 2003-08-14  Kevin Ryde  <kevin (a] swox.se>
   17757 
   17758 	* mpq/get_d.c: Use mpn_get_d.
   17759 	* tests/mpq/t-get_d.c (check_onebit): New test.
   17760 
   17761 	* gmp.texi (Notes for Particular Systems): Under x86 cpu types, note
   17762 	i386 is a fat binary, remove pentium4 recommendation since i386 is now
   17763 	quite reasonable for p4.
   17764 	(Notes for Particular Systems): Under Windows DLLs, remove caveat
   17765 	about --enable-cxx now ok, update .lib creation for new libtool,
   17766 	remove .exp not needed for MS C.
   17767 	(Notes for Package Builds): i386 is a fat binary.
   17768 	(Reentrancy): Remove SCO ctype.h note, don't want to list every system
   17769 	misfeature, and was quite possibly for non-threading mode anyway.
   17770 	(Autoconf): Remove notes on gmp 2 detection, too old to want to
   17771 	encourage anyone to use.
   17772 	(Karatsuba Multiplication): Correction to threshold increase/decrease
   17773 	for a and b terms.  Reported by Richard Brent and Paul Zimmermann.
   17774 	Also add various further index entries.
   17775 
   17776 	* tune/freq.c (freq_attr_get_invent): New function.
   17777 	(freq_irix_hinv): Remove, in favour or freq_attr_get_invent.
   17778 	* configure.in (AC_CHECK_FUNCS): Add attr_get.
   17779 	(AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h.
   17780 
   17781 2003-08-03  Kevin Ryde  <kevin (a] swox.se>
   17782 
   17783 	* tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.
   17784 
   17785 2003-08-02  Kevin Ryde  <kevin (a] swox.se>
   17786 
   17787 	* mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF
   17788 	problem systems.
   17789 
   17790 	* configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no,
   17791 	since libtool no longer uses it.  This was a workaround fixing ctype.h
   17792 	in SCO 5 shared libraries; not sure if libtool now gets it right on
   17793 	its own, let's hope so.
   17794 
   17795 	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no
   17796 	longer demands HOST_CC.
   17797 
   17798 	* configure.in: When C or C++ compiler not found, refer user to
   17799 	config.log.
   17800 
   17801 	* configure.in (i386-*-*): Turn i386 into a fat binary build.
   17802 	* mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm,
   17803 	mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c:
   17804 	New files.
   17805 	* gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure.
   17806 	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define.
   17807 	* mpn/asm-defs.m4 (foreach): New macro.
   17808 	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define.
   17809 	* mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat
   17810 	binaries.
   17811 	* mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments
   17812 	about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx.
   17813 
   17814 	* configure.in: Add various supports for fat binaries, via fat_path,
   17815 	fat_functions and fat_thresholds variables.
   17816 	* acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too.
   17817 	(GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros.
   17818 	* gmp-impl.h: Add various supports for fat binaries.
   17819 	(DECL_add_n etc): New macros.
   17820 	(mpn_mul_basecase etc): Define only if not already defined.
   17821 	* mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary.
   17822 	(MPN): Use m4_unquote, for the benefit of fat binary name expansion.
   17823 	* doc/configuration: Notes on fat binaries.
   17824 	* gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always.
   17825 	(MUL_KARATSUBA_THRESHOLD_LIMIT): New define.
   17826 	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use these.
   17827 	* tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c,
   17828 	tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to
   17829 	tell fat.h what's being done.
   17830 
   17831 	* config.guess (alpha-*-*): Update comments on what configfsf.guess
   17832 	does and doesn't do for us.
   17833 
   17834 2003-07-31  Kevin Ryde  <kevin (a] swox.se>
   17835 
   17836 	* config.guess: Remove $dummy.o files everywhere, in case vendor
   17837 	compilers produce that even when not asked.
   17838 
   17839 	* demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to
   17840 	avoid C++ keyword.
   17841 	(coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining
   17842 	about uninitialized variables.
   17843 
   17844 	* demos/perl/INSTALL: Add notes on building with a DLL.
   17845 
   17846 	* longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination
   17847 	is a 64-bit register.  Diagnosed by Francois G. Dorais.
   17848 
   17849 2003-07-31  Torbjorn Granlund  <tege (a] swox.com>
   17850 
   17851 	* longlong.h [ppc]: Remove nested test for vxworks.
   17852 
   17853 2003-07-24  Kevin Ryde  <kevin (a] swox.se>
   17854 
   17855 	* gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for
   17856 	mpz*long and long*mpz.
   17857 	* tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong.
   17858 
   17859 	* cxx/ismpf.cc: Use std::locale decimal point when available.  Expect
   17860 	localeconv available always.
   17861 	* tests/cxx/t-locale.cc: Enable check_input tests.
   17862 
   17863 	* gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot.
   17864 	* tests/cxx/t-misc.cc (check_mpfr_hypot): New tests.
   17865 
   17866 	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc,
   17867 	tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc:
   17868 	Include config.h for WANT_MPFR.
   17869 
   17870 	* tests/mpz/bit.c (check_single): Correction to a diagnostic print.
   17871 
   17872 2003-07-24  Niels Mller  <nisse (a] lysator.liu.se>
   17873 
   17874 	* mpz/combit.c: New file.
   17875 	* Makefile.am, mpz/Makefile.am: Add it.
   17876 	* gmp-h.in (mpz_combit): Add prototype.
   17877 	* tests/mpz/bit.c (check_single): Exercise mpz_combit.
   17878 
   17879 2003-07-16  Kevin Ryde  <kevin (a] swox.se>
   17880 
   17881 	* mpn/generic/get_d.c: Correction to infinity handling for large exp.
   17882 
   17883 2003-07-14  Kevin Ryde  <kevin (a] swox.se>
   17884 
   17885 	* mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use
   17886 	mpn_get_d.
   17887 
   17888 	* mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c.
   17889 	* configure.in, mpn/Makefile.am: Add it.
   17890 	* gmp-impl.h (mpn_get_d): Add prototype.
   17891 
   17892 	* tests/mpn/t-get_d.c: New file.
   17893 	* tests/mpn/Makefile.am: Add it.
   17894 
   17895 	* tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives.
   17896 	(check_onebit): Add a few more bit sizes.
   17897 
   17898 	* tests/misc.c, tests/tests.h (tests_isinf): New function.
   17899 
   17900 2003-07-12  Kevin Ryde  <kevin (a] swox.se>
   17901 
   17902 	* configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as
   17903 	automake does in the actual build.
   17904 
   17905 	* acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare
   17906 	namespace before trying to use.  In std iostream test, provoke a
   17907 	failure from Compaq C++ in pre-standard mode.
   17908 
   17909 2003-07-08  Kevin Ryde  <kevin (a] swox.se>
   17910 
   17911 	* acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various
   17912 	known problems, and indicate to the user the reason for rejecting.
   17913 	(GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each
   17914 	compiled program.
   17915 
   17916 2003-07-05  Kevin Ryde  <kevin (a] swox.se>
   17917 
   17918 	* config.sub: Add comments to our alias transformations.
   17919 
   17920 	* configfsf.sub, configfsf.guess: Update to 2003-07-04.
   17921 
   17922 	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show
   17923 	failing program in config.log, per other autoconf tests.
   17924 
   17925 	* configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub.
   17926 
   17927 2003-06-28  Kevin Ryde  <kevin (a] swox.se>
   17928 
   17929 	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round
   17930 	upwards.
   17931 
   17932 	* tests/mpz/t-get_d_2exp.c: New file.
   17933 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   17934 	* tests/mpf/t-get_d_2exp.c: New file.
   17935 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   17936 	* tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New
   17937 	functions.
   17938 	* tests/misc.c, tests/tests.h (tests_hardware_getround,
   17939 	tests_hardware_setround): New functions.
   17940 
   17941 2003-06-25  Kevin Ryde  <kevin (a] swox.se>
   17942 
   17943 	* mpn/sparc64/dive_1.c: New file.
   17944 
   17945 	* mpn/sparc64/sparc64.h: New file.
   17946 	* mpn/sparc64/mode1o.c: Remove things now in sparc64.h.
   17947 
   17948 	* mpfr/*: Update to mpfr cvs 2003-06-25.
   17949 
   17950 	* acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro
   17951 	gcc, don't use ANSI style function definition.
   17952 
   17953 2003-06-22  Kevin Ryde  <kevin (a] swox.se>
   17954 
   17955 	* mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend,
   17956 	handled by PROLOGUE and EPILOGUE.  Comment out .callinfo, per other
   17957 	asm files.
   17958 
   17959 	* gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix
   17960 	long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN.
   17961 	(mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend.
   17962 	* tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging
   17963 	operator/ and operator% sections for clarity.
   17964 
   17965 2003-06-21  Kevin Ryde  <kevin (a] swox.se>
   17966 
   17967 	* mpfr/*: Update to mpfr cvs 2003-06-21.
   17968 
   17969 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an
   17970 	ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6.
   17971 	* configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for
   17972 	this compiler.
   17973 
   17974 	* gmpxx.h (get_d): Remove comments about long double, double is
   17975 	correct for get_d, a future long double form would be get_ld.
   17976 
   17977 2003-06-19  Kevin Ryde  <kevin (a] swox.se>
   17978 
   17979 	* mpfr/*: Update to mpfr cvs 2003-06-19.
   17980 
   17981 	* mpn/generic/dive_1.c: Share src[0] fetch among all cases.  No need
   17982 	for separate final umul_ppmm in even case, make it part of the loop.
   17983 
   17984 	* mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify.
   17985 
   17986 	* mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this
   17987 	nailifies it.
   17988 	* tests/mpf/t-set_si.c: Nailify tests.
   17989 
   17990 	* mpf/iset_ui.c: Nailify, as per mpf/set_ui.c
   17991 	* tests/mpf/t-set_ui.c: New file.
   17992 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   17993 
   17994 2003-06-15  Kevin Ryde  <kevin (a] swox.se>
   17995 
   17996 	* mpfr/*: Update to mpfr cvs 2003-06-15.
   17997 
   17998 	* mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.
   17999 
   18000 2003-06-12  Kevin Ryde  <kevin (a] swox.se>
   18001 
   18002 	* configure.in (--enable-assert): Emit WANT_ASSERT to config.m4.
   18003 	* mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check
   18004 	WANT_ASSERT is defined.
   18005 
   18006 	* mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9.
   18007 
   18008 	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack,
   18009 	discard error messages from cp, for the benefit of --disable-shared or
   18010 	systems not using names libgmp.so.*.
   18011 
   18012 	* tests/devel/try.c (try_one): When overlapping, copy source data
   18013 	after filling dst.  Previously probably used only DEADVAL in
   18014 	overlapping cases.
   18015 
   18016 2003-06-11  Torbjorn Granlund  <tege (a] swox.com>
   18017 
   18018 	* mpf/random2.c: Rewrite.  Ignore sign of exp parameter.
   18019 
   18020 2003-06-10  Kevin Ryde  <kevin (a] swox.se>
   18021 
   18022 	* mpn/sparc64/mode1o.c: New file.
   18023 
   18024 2003-06-09  Torbjorn Granlund  <tege (a] swox.com>
   18025 
   18026 	* mpn/powerpc32/lshift.asm: Add more cycle counts.
   18027 	* mpn/powerpc32/rshift.asm: Add more cycle counts.
   18028 
   18029 	* mpn/ia64/addmul_1.asm: Reformat comments for 80 columns.
   18030 
   18031 	* gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv.
   18032 	(udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm.
   18033 	(udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2
   18034 	the default.
   18035 	* tune/speed.c: Corresponding changes.
   18036 	* tune/speed.h: Likewise.
   18037 	* tune/common.c: Likewise.
   18038 
   18039 	* mpf/get_str.c: Simplify `off' computation.
   18040 
   18041 	* longlong.h: Tabify.
   18042 
   18043 2003-06-09  Kevin Ryde  <kevin (a] swox.se>
   18044 
   18045 	* gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to
   18046 	cover all flavours.
   18047 	* configure.in: Ditto in some comments.
   18048 
   18049 	* mpfr/*: Update to mpfr cvs 2003-06-09.
   18050 
   18051 	* tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for
   18052 	the benefit of gcc 3.2 on itanium2-hp-hpux11.22.
   18053 
   18054 	* tune/many.pl (mul_2): Add speed routine settings.
   18055 	(MAKEFILE): Close when done, for the benefit of development hackery.
   18056 
   18057 2003-06-08  Kevin Ryde  <kevin (a] swox.se>
   18058 
   18059 	* mpfr/*: Update to mpfr cvs 2003-06-08.
   18060 
   18061 	* mpn/x86/x86-defs.m4 (femms): Remove fallback to emms.
   18062 	(cmovCC, psadbw): Remove simulated versions.
   18063 	(cmov_available_p, psadbw_available_p): Remove.
   18064 	This trickery was only ever for development purposes on machines
   18065 	without those instructions.  Removing it simplifies gmp and in
   18066 	particular avoids complications for fat binary builds.  Development
   18067 	can be done with a wrapper around "as" if really needed.
   18068 
   18069 	* mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own
   18070 	mpn/x86/k6/divrem_1.asm.  Amend K6 comments now moved to there.
   18071 	* mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used.
   18072 
   18073 	* mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm.
   18074 
   18075 	* mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm.
   18076 
   18077 	* mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch
   18078 	prediction.  Put done_zero at end for less wastage in alignment.  Use
   18079 	decl+jnz unconditionally since in fact it's ok on k6.  Amend comments.
   18080 
   18081 2003-06-07  Kevin Ryde  <kevin (a] swox.se>
   18082 
   18083 	* mpn/generic/mode1o.c: Fix ASSERTs on return value.
   18084 
   18085 	* gmp.texi (Build Options): Add viac3 and viac32 cpu types.
   18086 	(ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed.  More indexing.
   18087 
   18088 	* configfsf.guess, configfsf.sub: Update to 2003-06-06.
   18089 	* config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed
   18090 	by new configfsf.guess.
   18091 
   18092 2003-06-06  Torbjorn Granlund  <tege (a] swox.com>
   18093 
   18094 	* mpn/ia64/submul_1.asm: Add branch over .align block.
   18095 
   18096 2003-06-05  Torbjorn Granlund  <tege (a] swox.com>
   18097 
   18098 	* longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0.
   18099 	Allow more immediate operands.
   18100 	(sub_ddmmss) [pa64]: Likewise.
   18101 	(add_ssaaaa) [pa32]: Likewise.
   18102 	(sub_ddmmss) [pa32]: Likewise.
   18103 
   18104 	* mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please
   18105 	picky GNU assembler.
   18106 
   18107 2003-06-05  Kevin Ryde  <kevin (a] swox.se>
   18108 
   18109 	* gmp.texi (Integer Special Functions): In mpz_array_init, fix type
   18110 	shown for integer_array and give an example use.
   18111 
   18112 2003-06-04  Torbjorn Granlund  <tege (a] swox.com>
   18113 
   18114 	* mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
   18115 	alpha.
   18116 
   18117 2003-06-03  Kevin Ryde  <kevin (a] swox.se>
   18118 
   18119 	* mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings.
   18120 
   18121 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test
   18122 	program, hex is not supported by K&R.
   18123 
   18124 2003-06-02  Torbjorn Granlund  <tege (a] swox.com>
   18125 
   18126 	* mpn/mips64/divrem_1.asm: New file.
   18127 
   18128 2003-06-01  Torbjorn Granlund  <tege (a] swox.com>
   18129 
   18130 	* mpn/powerpc32/lshift.asm: Reformat code.
   18131 	* mpn/powerpc32/rshift.asm: Reformat code.
   18132 
   18133 2003-05-30  Kevin Ryde  <kevin (a] swox.se>
   18134 
   18135 	* tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to
   18136 	avoid any chance of losing output on segv etc.
   18137 
   18138 2003-05-28  Torbjorn Granlund  <tege (a] swox.com>
   18139 
   18140 	* mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
   18141 	Remove redundant variable prec.
   18142 
   18143 2003-05-26  Torbjorn Granlund  <tege (a] swox.com>
   18144 
   18145 	* tests/mpz/convert.c: Test bases up to 62.
   18146 
   18147 	* tests/mpf/t-conv.c: Test bases up to 62.
   18148 
   18149 	* demos/pexpr.c: Don't iterate to get accurate timing.
   18150 
   18151 	* mpf/set_str.c (mpn_pow_1_highpart): Cleanup.
   18152 
   18153 	* mp_dv_tab.c: Fix typo.
   18154 
   18155 	* mpf/get_str.c: Rewrite (now sub-quadratic).
   18156 
   18157 2003-05-22  Kevin Ryde  <kevin (a] swox.se>
   18158 
   18159 	* tests/mpn/t-divrem_1.c: New file.
   18160 	* tests/mpn/Makefile.am: Add it.
   18161 
   18162 2003-05-22  Torbjorn Granlund  <tege (a] swox.com>
   18163 
   18164 	* config.sub: Recognize viac3* processors.
   18165 
   18166 2003-05-20  Torbjorn Granlund  <tege (a] swox.com>
   18167 
   18168 	* mpn/sparc64/addmul_2.asm: New file.
   18169 
   18170 2003-05-19  Torbjorn Granlund  <tege (a] swox.com>
   18171 
   18172 	* configure.in: Recognize alphaev7* as alphaev67.
   18173 
   18174 	* config.guess: Recognize viac3* processors.
   18175 	* configure.in: Set up path for viac3* processors.
   18176 	* acinclude.m4 (X86_PATTERN): Include viac3* processors.
   18177 
   18178 2003-05-19  Kevin Ryde  <kevin (a] swox.se>
   18179 
   18180 	* tune/freq.c (freq_pstat_getprocessor): New function.
   18181 	(freq_all): Use it.
   18182 	* configure.in (AC_CHECK_HEADERS): Add sys/pstat.h.
   18183 	(AC_CHECK_FUNCS): Add pstat_getprocessor.
   18184 
   18185 2003-05-15  Kevin Ryde  <kevin (a] swox.se>
   18186 
   18187 	* mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline",
   18188 	since the code is a bit too big.  gcc doesn't actually inline when
   18189 	alloca (TMP_ALLOC) is used anyway.
   18190 
   18191 2003-05-13  Kevin Ryde  <kevin (a] swox.se>
   18192 
   18193 	* gmp.texi (Notes for Particular Systems): Libtool directory is .libs
   18194 	not _libs for mingw dll.  Reported by Andreas Fabri.
   18195 
   18196 2003-05-07  Kevin Ryde  <kevin (a] swox.se>
   18197 
   18198 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code
   18199 	from gcc -march=pentium4, to check the assembler supports that.
   18200 	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros.
   18201 	* configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4
   18202 	(with sse2) is ok.
   18203 
   18204 2003-05-06  Kevin Ryde  <kevin (a] swox.se>
   18205 
   18206 	* mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1.
   18207 
   18208 	* tune/freq.c (<sys/sysinfo.h>): Include only when needed for
   18209 	getsysinfo(), to avoid a problem with this file on AIX 5.1.
   18210 
   18211 2003-05-03  Torbjorn Granlund  <tege (a] swox.com>
   18212 
   18213 	* mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
   18214 	reverting last change).
   18215 
   18216 2003-05-03  Kevin Ryde  <kevin (a] swox.se>
   18217 
   18218 	* gmp.texi: Use @code for files in @cindex entries, it looks nicer
   18219 	than @file.
   18220 
   18221 	* Makefile.am: Note gmp 4.1.1 and 4.1.2 version info.
   18222 
   18223 	* configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray
   18224 	system setups, letting AC_REQUIRE do its job instead of a hard coded
   18225 	AC_PROG_EGREP.
   18226 
   18227 	* config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which
   18228 	segfaults on Debian "ash" 0.4.16.
   18229 
   18230 2003-05-01  Kevin Ryde  <kevin (a] swox.se>
   18231 
   18232 	* configure.in (AC_CHECK_FUNCS): Add getsysinfo.
   18233 	(AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h.
   18234 	* tune/freq.c (freq_getsysinfo): New function.
   18235 	(freq_all): Use it.
   18236 	(freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq,
   18237 	freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set
   18238 	speed_cycletime before trying to print it, when verbose.
   18239 
   18240 2003-04-28  Torbjorn Granlund  <tege (a] swox.com>
   18241 
   18242 	* mpf/set_str.c: Major overhaul.
   18243 	(mpn_pow_1_highpart): New helper function, meat extracted from
   18244 	mpf_set_str.
   18245 
   18246 2003-04-24  Kevin Ryde  <kevin (a] swox.se>
   18247 
   18248 	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4.
   18249 
   18250 	* configure, ltmain.sh, aclocal.m4: Update to libtool 1.5.
   18251 
   18252 	* longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each,
   18253 	since gcc only supports one per asm.
   18254 
   18255 	* printf/doprnt.c: Add M for mp_limb_t.
   18256 	* tests/misc/t-printf.c: Exercise this.
   18257 
   18258 	* tests/mpz/t-cmp_d.c: Test infinities.
   18259 	* tests/mpf/t-cmp_d.c: New file.
   18260 	* tests/mpf/Makefile.am: Add it.
   18261 
   18262 	* mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger
   18263 	than any value.
   18264 	* mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid.
   18265 
   18266 	* configure.in (AC_CHECK_FUNCS): Add raise.
   18267 	* invalid.c: New file.
   18268 	* Makefile.am: Add it.
   18269 	* gmp-impl.h (__gmp_invalid_operation): Add prototype.
   18270 	(DOUBLE_NAN_INF_ACTION): New macro.
   18271 
   18272 	* tests/trace.c, tests/tests.h (d_trace): New function.
   18273 	* tests/misc.c, tests/tests.h (tests_infinity_d): New function.
   18274 	* tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui.
   18275 
   18276 	* tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various
   18277 	mp_size_t values for printf %ld in case mp_size_t==int.  Use
   18278 	gmp_printf for mp_limb_t values.
   18279 
   18280 	* gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t,
   18281 	gmp_randstate_t.  Note ulong for bit counts and size_t for byte
   18282 	counts.  Don't bother with @noindent.
   18283 	(Debugging): New valgrind is getting MMX/SSE.
   18284 	(Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs.
   18285 	(Float Comparison): mpf_cmp_d behaviour on NaNs and Infs.
   18286 	(Low-level Functions): Note with mpn_hamdist what hamming distance is.
   18287 	(Formatted Output Strings): Add type M.
   18288 	(Internals): Remove remarks on ulong bits and size_t bytes.  Move int
   18289 	field remarks to ...
   18290 	(Integer Internals, Float Internals): ... here.
   18291 
   18292 2003-04-19  Kevin Ryde  <kevin (a] swox.se>
   18293 
   18294 	* configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.
   18295 
   18296 	* mpn/x86/p6/mul_basecase.asm: New file.
   18297 
   18298 2003-04-18  Kevin Ryde  <kevin (a] swox.se>
   18299 
   18300 	* configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not
   18301 	available, and don't use mpn/m68k/mc68020 asm routines.  (Avoids 32x32
   18302 	mul and 64/32 div which trap to the kernel on 68060.  Advice by
   18303 	Richard Zidlicky.)
   18304 	* mpn/m68k/README: Update notes on directory usage.
   18305 
   18306 	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the
   18307 	test programs run with a shared libgmpxx on openbsd 3.2.
   18308 
   18309 	* gmp.texi (Language Bindings): Add Guile.
   18310 
   18311 2003-04-12  Kevin Ryde  <kevin (a] swox.se>
   18312 
   18313 	* configure.in (cygwin*, mingw*, pw32*, os2*): Add
   18314 	-Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in
   18315 	latest mingw and libtool.
   18316 
   18317 	* acinclude.m4 (GMP_ASM_COFF_TYPE): New macro.
   18318 	* configure.in (x86s): Use it.
   18319 	* mpn/x86/x86-defs.m4 (COFF_TYPE): New macro.
   18320 	(PROLOGUE_cpu): Use it, for the benefit of mingw DLLs.
   18321 
   18322 	* gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC.
   18323 
   18324 	* gmp.texi (Known Build Problems): Remove windows test program .exe
   18325 	repeated built, fixed by new libtool.  Remove MacOS C++ shared library
   18326 	creation, fixed by new libtool.
   18327 	(Notes for Package Builds, Known Build Problems): Remove DESTDIR notes
   18328 	on libgmpxx, fixed in new libtool.
   18329 
   18330 2003-04-10  Torbjorn Granlund  <tege (a] swox.com>
   18331 
   18332 	* configure.in: Match turbosparc.
   18333 	* config.guess: Recognize turbosparc (just for *bsd for now).
   18334 
   18335 2003-04-09  Kevin Ryde  <kevin (a] swox.se>
   18336 
   18337 	* mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX.
   18338 
   18339 	* tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via
   18340 	MP_SIZE_T_MAX, eg. for nails.
   18341 
   18342 	* tests/cxx/t-ternary.cc: Split up tests to help compile speed and
   18343 	memory usage.
   18344 
   18345 	* tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong
   18346 	for seed not uint.
   18347 
   18348 	* gmp.texi: Add @: after various abbreviations, more index entries.
   18349 	(leftarrow): New macro, for non-tex.
   18350 	(Random State Initialization): Remove commented gmp_randinit_lc, not
   18351 	going to be implemented.
   18352 	(Random Number Algorithms): New section.
   18353 	(References): Add Matsumoto and Nishimura on Mersenne Twister, add
   18354 	Bertot, Magaud and Zimmermann on GMP Square Root.
   18355 
   18356 2003-04-06  Kevin Ryde  <kevin (a] swox.se>
   18357 
   18358 	* tests/mpz/t-gcd_ui.c: New file.
   18359 	* tests/mpz/Makefile.am: Add it.
   18360 
   18361 	* mpz/gcd_ui.c: Correction to return value on longlong limb systems,
   18362 	limb might not fit a ulong.
   18363 
   18364 2003-04-04  Kevin Ryde  <kevin (a] swox.se>
   18365 
   18366 	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
   18367 	2003-04-02.
   18368 
   18369 2003-04-02  Kevin Ryde  <kevin (a] swox.se>
   18370 
   18371 	* configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len,
   18372 	libtool has addressed this now.
   18373 	(AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK
   18374 	no longer needs it.
   18375 
   18376 	* acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and
   18377 	ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by
   18378 	libtool's call to AC_CHECK_TOOL.
   18379 
   18380 2003-04-01  Kevin Ryde  <kevin (a] swox.se>
   18381 
   18382 	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
   18383 	2003-03-31.
   18384 
   18385 	* configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool
   18386 	running F77 probes.
   18387 
   18388 	* randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is
   18389 	in each field.
   18390 	(randseed_lc): Rename seedp to seedz to avoid confusion with seedp in
   18391 	the lc function.  Suggested by Pedro Gimeno.
   18392 	(gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE.  No need for
   18393 	"+1" in mpz_init2 of _mp_seed.  Don't bother with mpz_init2 for _mp_a.
   18394 
   18395 2003-03-29  Kevin Ryde  <kevin (a] swox.se>
   18396 
   18397 	* configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O.
   18398 	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro.
   18399 
   18400 	* configure.in (AC_CHECK_TYPES): Add notes on why tested.
   18401 
   18402 	* gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros,
   18403 	use them for all external references to get URLs into HTML output.
   18404 	(Random State Initialization): Add gmp_randinit_set.
   18405 	(Random State Miscellaneous): New section.
   18406 
   18407 2003-03-29  Kevin Ryde  <kevin (a] swox.se>
   18408 
   18409 	* randbui.c, randmui.c: New files.
   18410 	* Makefile.am: Add them.
   18411 	* gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes.
   18412 	* tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files.
   18413 	* tests/rand/Makefile.am: Add them.
   18414 
   18415 	* gmp-impl.h (gmp_randstate_srcptr): New typedef.
   18416 	(gmp_randfnptr_t): Add randiset_fn.
   18417 	* randiset.c: New file.
   18418 	* Makefile.am: Add it.
   18419 	* gmp-h.in (gmp_randinit_set): Add prototype.
   18420 	* randlc2x.c, randmt.c: Add gmp_randinit_set support.
   18421 	* tests/rand/t-iset.c: New file.
   18422 	* tests/rand/Makefile.am: Add it.
   18423 
   18424 	* tests/misc.c, tests/tests.h (call_rand_algs): New function.
   18425 
   18426 2003-03-27  Kevin Ryde  <kevin (a] swox.se>
   18427 
   18428 	* mpz/bin_uiui.c: Use plain "*" for kacc products rather than
   18429 	umul_ppmm since high not needed, except for an ASSERT now amended.
   18430 
   18431 2003-03-26  Kevin Ryde  <kevin (a] swox.se>
   18432 
   18433 	* demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove,
   18434 	nextbelow, nexttoward): New functions.
   18435 	* demos/expr/t-expr.c: Exercise these.
   18436 
   18437 	* mpfr/*: Update to mpfr cvs 2003-03-26.
   18438 
   18439 	* gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc.
   18440 
   18441 	* tune/time.c (cycles_works_p): Scope variables down to relevant part
   18442 	to avoid warnings about unused.
   18443 
   18444 	* configfsf.guess, configfsf.sub: Update to 2003-02-22.
   18445 	* config.guess: Fake a $RANDOM variable when running configfsf.guess,
   18446 	to workaround a problem on m68k NetBSD 1.4.1.
   18447 
   18448 	* mpz/fac_ui.c: Remove unused variable "z1".
   18449 
   18450 	* tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5.
   18451 
   18452 2003-03-24  Torbjorn Granlund  <tege (a] swox.com>
   18453 
   18454 	* randlc2x.c (randget_lc): Remove write-only variable rn.
   18455 	* mpf/eq.c: Remove write-only variable usign.
   18456 	* gen-psqr.c (main): Remove write-only variable numb_bits.
   18457 
   18458 2003-03-17  Torbjorn Granlund  <tege (a] swox.com>
   18459 
   18460 	* Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c.
   18461 	(libmp_la_SOURCES): Add mp_dv_tab.c.
   18462 
   18463 	* mpn/alpha/invert_limb.asm: Add a few comments.
   18464 
   18465 	* mp_dv_tab.c: New file, defining __gmp_digit_value_tab.
   18466 
   18467 	* mpz/set_str.c: Get rid of function digit_value_in_base and use table
   18468 	__gmp_digit_value_tab instead.
   18469 	* mpz/inp_str.c: Likewise.
   18470 	* mpf/set_str.c: Likewise.
   18471 	* mpbsd/min.c: Likewise.
   18472 	* mpbsd/xtom.c: Likewise.
   18473 
   18474 	* mpz/set_str.c: Allow bases <= 62.  Return error for invalid bases.
   18475 	* mpz/inp_str.c: Likewise.
   18476 	* mpf/set_str.c: Likewise.
   18477 	* mpz/out_str.c: Likewise.
   18478 	* mpz/get_str.c: Likewise.
   18479 	* mpf/get_str.c: Likewise.
   18480 
   18481 	* mpz/inp_str.c: Restructure to allocate more string space just
   18482 	before needed.
   18483 	* mpbsd/min.c: Likewise.
   18484 
   18485 	* longlong.h (__udiv_qrnnd_c): Remove redundant casts.
   18486 	(32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various
   18487 	sparc_v8 spellings.
   18488 
   18489 2003-03-17  Kevin Ryde  <kevin (a] swox.se>
   18490 
   18491 	* mpfr/*: Update to mpfr cvs 2003-03-17.
   18492 
   18493 2003-03-15  Kevin Ryde  <kevin (a] swox.se>
   18494 
   18495 	* Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
   18496 	sources, instead of a libdummy.la.
   18497 
   18498 2003-03-16  Torbjorn Granlund  <tege (a] swox.com>
   18499 
   18500 	* config.guess: Recognize supersparc and microsparc for *BSD systems.
   18501 	Generalize some superscalar recognition patterns.
   18502 
   18503 2003-03-14  Torbjorn Granlund  <tege (a] swox.com>
   18504 
   18505 	* mpn/sparc64/udiv.asm: New file.
   18506 
   18507 2003-03-13  Torbjorn Granlund  <tege (a] swox.com>
   18508 
   18509 	* mpn/sparc64: Table cycle counts.  Update some comments.
   18510 
   18511 	* mpn/powerpc64/divrem_1.asm: New file.
   18512 
   18513 2003-03-10  Torbjorn Granlund  <tege (a] swox.com>
   18514 
   18515 	* mpn/generic/mul.c (mpn_mul): Don't blindly expect
   18516 	MUL_KARATSUBA_THRESHOLD to be a constant.
   18517 
   18518 2003-03-07  Torbjorn Granlund  <tege (a] swox.com>
   18519 
   18520 	* mpn/generic/mul.c (mpn_mul): New operand splitting code for
   18521 	avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn.
   18522 	(MUL_BASECASE_MAX_UN): New #define, default to 500 for now.
   18523 
   18524 2003-03-07  Kevin Ryde  <kevin (a] swox.se>
   18525 
   18526 	* Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include.
   18527 	* gmp.texi (Build Options): Add notes on this.
   18528 	Reported by Vincent Lefvre.
   18529 
   18530 2003-03-06  Kevin Ryde  <kevin (a] swox.se>
   18531 
   18532 	* configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu,
   18533 	for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which
   18534 	doesn't otherwise put the assembler in the right mode for -mcpu=ev6.
   18535 
   18536 2003-03-05  Torbjorn Granlund  <tege (a] swox.com>
   18537 
   18538 	* mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers.
   18539 
   18540 	* mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations,
   18541 	accumulate carries and add at the end.
   18542 	(mpz_powm): Trim tp allocation, now as redc doesn't need carry guard.
   18543 
   18544 2003-02-25  Torbjorn Granlund  <tege (a] swox.com>
   18545 
   18546 	* mpn/x86/pentium4/copyd.asm: Correct header comment.
   18547 
   18548 	* mpn/arm/addmul_1.asm: Correct cycle counts.
   18549 	* mpn/arm/submul_1.asm: Likewise.
   18550 
   18551 2003-02-20  Kevin Ryde  <kevin (a] swox.se>
   18552 
   18553 	* demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid
   18554 	infinite loop if k=0 and gcd!=1 reveals a factor.  Reported by John
   18555 	Pongsajapan.
   18556 
   18557 	* gmp.texi, fdl.texi: Update to FDL version 1.2.
   18558 
   18559 2003-02-18  Torbjorn Granlund  <tege (a] swox.com>
   18560 
   18561 	* mpn/arm/mul_1.asm: Fix typo introduced in last change.
   18562 
   18563 2003-02-17  Torbjorn Granlund  <tege (a] swox.com>
   18564 
   18565 	* mpn/ia64/gmp-mparam.h: Retune.
   18566 
   18567 	* mpn/sparc64/copyi.asm: Add some header comments.
   18568 	* mpn/sparc64/copyd.asm: Likewise.
   18569 
   18570 	* mpn/arm/mul_1.asm: Put vl operand last for umull/umlal.
   18571 	Add some header comments.
   18572 	* mpn/arm/addmul_1.asm: Rewrite.
   18573 	* mpn/arm/submul_1.asm: Rewrite.
   18574 	* mpn/arm/gmp-mparam.h: Retune.
   18575 
   18576 2003-02-16  Torbjorn Granlund  <tege (a] swox.com>
   18577 
   18578 	* mpn/arm/copyi.asm: New file.
   18579 	* mpn/arm/copyd.asm: New file.
   18580 
   18581 2003-02-16  Kevin Ryde  <kevin (a] swox.se>
   18582 
   18583 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
   18584 	byte seen on an arm system.
   18585 
   18586 2003-02-15  Torbjorn Granlund  <tege (a] swox.com>
   18587 
   18588 	* mpn/arm/gmp-mparam.h: Retune.
   18589 
   18590 2003-02-13  Torbjorn Granlund  <tege (a] swox.com>
   18591 
   18592 	* mpn/powerpc32/750/com_n.asm: Add more cycle counts.
   18593 
   18594 2003-02-13  Kevin Ryde  <kevin (a] swox.se>
   18595 
   18596 	* configure.in (AC_PREREQ): Bump to 2.57.
   18597 
   18598 	* configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying
   18599 	-Wa,-oldas only when necessary.
   18600 
   18601 	* configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it
   18602 	overrides options recent gcc adds for -mcpu, making generated code
   18603 	fail to assemble.
   18604 
   18605 	* tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c.
   18606 
   18607 2003-02-12  Torbjorn Granlund  <tege (a] swox.com>
   18608 
   18609 	* mpn/x86/pentium4/sse2/gmp-mparam.h: Retune.
   18610 	* mpn/x86/k7/gmp-mparam.h: Retune.
   18611 	* mpn/x86/k6/gmp-mparam.h: Retune.
   18612 	* mpn/x86/p6/gmp-mparam.h: Retune.
   18613 	* mpn/x86/p6/mmx/gmp-mparam.h: Retune.
   18614 
   18615 	* tests/mpz/t-mul.c (main): Rewrite FFT testing code.
   18616 
   18617 2003-02-10  Torbjorn Granlund  <tege (a] swox.com>
   18618 
   18619 	* config.guess: Recognize "power2" systems.
   18620 
   18621 	* mpn/powerpc64/gmp-mparam.h: Fix indentation.
   18622 	* mpn/power/gmp-mparam.h: Retune.
   18623 	* mpn/alpha/ev6/nails/gmp-mparam.h: Retune.
   18624 	* mpn/sparc64/gmp-mparam.h: Retune.
   18625 	* mpn/pa64/gmp-mparam.h: Retune.
   18626 	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
   18627 	* mpn/sparc32/v8/gmp-mparam.h: Retune.
   18628 	* mpn/mips64/gmp-mparam.h: Retune.
   18629 	* mpn/alpha/ev6/gmp-mparam.h: Retune.
   18630 	* mpn/powerpc32/gmp-mparam.h: Retune.
   18631 	* mpn/powerpc32/750/gmp-mparam.h: Retune.
   18632 	* mpn/alpha/ev5/gmp-mparam.h: Retune.
   18633 	* mpn/m68k/gmp-mparam.h: Retune.
   18634 	* mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD.
   18635 
   18636 	* configure.in: Undo this, problem doesn't happen any more:
   18637 	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
   18638 
   18639 2003-02-03  Kevin Ryde  <kevin (a] swox.se>
   18640 
   18641 	* gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
   18642 	around macro parameters.  Reported by Jason Moxham.
   18643 
   18644 2003-02-01  Kevin Ryde  <kevin (a] swox.se>
   18645 
   18646 	* gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n.
   18647 	Reported by Jason Moxham.
   18648 	(Formatted Input Strings): Correction to strtoul cross reference
   18649 	formatting.
   18650 	(BSD Compatible Functions): Add index entry for MINT.
   18651 
   18652 2003-01-29  Torbjorn Granlund  <tege (a] swox.com>
   18653 
   18654 	* gmp-impl.h (mpn_mul_fft): Now returns int.
   18655 
   18656 2003-01-29  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   18657 
   18658 	* mpn/generic/mul_fft.c: Major rewrite.
   18659 
   18660 2003-01-25  Kevin Ryde  <kevin (a] swox.se>
   18661 
   18662 	* config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr
   18663 	fails on NetBSD.
   18664 	(trap): Remove $dummy.core on abnormal termination too.
   18665 
   18666 	* mpfr/*: Update to mpfr cvs 2003-01-25.
   18667 
   18668 2003-01-24  Torbjorn Granlund  <tege (a] swox.com>
   18669 
   18670 	* mpn/ia64/README: Update cycle counts to match current code.
   18671 
   18672 2003-01-18  Kevin Ryde  <kevin (a] swox.se>
   18673 
   18674 	* mpfr/*: Update to mpfr cvs 2003-01-18.
   18675 
   18676 2003-01-17  Torbjorn Granlund  <tege (a] swox.com>
   18677 
   18678 	* gmp.texi: Canonicalize URLs.
   18679 
   18680 2003-01-15  Kevin Ryde  <kevin (a] swox.se>
   18681 
   18682 	* gmp.texi (Notes for Particular Systems): Add hardware floating point
   18683 	precision mode.
   18684 
   18685 	* mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs
   18686 	2003-01-15.
   18687 
   18688 2003-01-11  Kevin Ryde  <kevin (a] swox.se>
   18689 
   18690 	* mpfr/*: Update to mpfr cvs 2003-01-11.
   18691 
   18692 2003-01-09  Kevin Ryde  <kevin (a] swox.se>
   18693 
   18694 	* mpfr/get_str.c: Update to mpfr cvs 2003-01-09.
   18695 
   18696 	* doc/configuration: Various updates.
   18697 
   18698 2003-01-06  Torbjorn Granlund  <tege (a] swox.com>
   18699 
   18700 	* mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
   18701 	* mpn/alpha/copyd.asm: Likewise.
   18702 
   18703 2003-01-05  Kevin Ryde  <kevin (a] swox.se>
   18704 
   18705 	* demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return
   18706 	value.
   18707 
   18708 	* configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with
   18709 	libtool patch to avoid bash printf option problem when building shared
   18710 	libraries with cxx.
   18711 
   18712 	* configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since
   18713 	sse2 causes buggy code from gcc 3.2.1 and is only supported on new
   18714 	enough kernels.
   18715 
   18716 	* acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per
   18717 	report by Krzysztof Kozminski.
   18718 
   18719 	* gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r".
   18720 
   18721 	* gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast.
   18722 	(GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3,
   18723 	mpn_divmod): Use it.  Reported by Krzysztof Kozminski.
   18724 	(mpz_odd_p): No need for the outermost cast to "int".
   18725 	* tests/cxx/t-cast.cc: New file.
   18726 	* tests/cxx/Makefile.am: Add it.
   18727 
   18728 2003-01-04  Kevin Ryde  <kevin (a] swox.se>
   18729 
   18730 	* mpfr/set_str.c: Update to mpfr cvs 2003-01-04.
   18731 
   18732 	* demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str
   18733 	returning count of characters accepted.
   18734 
   18735 2003-01-03  Torbjorn Granlund  <tege (a] swox.com>
   18736 
   18737 	* mpn/alpha/copyi.asm: New file.
   18738 	* mpn/alpha/copyd.asm: New file.
   18739 
   18740 2003-01-03  Kevin Ryde  <kevin (a] swox.se>
   18741 
   18742 	* demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have
   18743 	changed.
   18744 
   18745 	* mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs
   18746 	2003-01-03.
   18747 
   18748 	* gmp.texi (Introduction to GMP): Mention release announcements
   18749 	mailing list, and put home page and ftp before mailing lists.
   18750 
   18751 2002-12-28  Torbjorn Granlund  <tege (a] swox.com>
   18752 
   18753 	* mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.
   18754 
   18755 2002-12-28  Kevin Ryde  <kevin (a] swox.se>
   18756 
   18757 	* acinclude.m4 (M68K_PATTERN): New macro.
   18758 	(GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends.
   18759 	* configure.in: Ditto.
   18760 
   18761 	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid
   18762 	warnings about char overflows.
   18763 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto.
   18764 
   18765 2002-12-28  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   18766 
   18767 	* randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding.
   18768 	(randseed_mt): Add ASSERT checking result of mpz_export.
   18769 
   18770 2002-12-24  Kevin Ryde  <kevin (a] swox.se>
   18771 
   18772 	* gmp.texi (Integer Import and Export): Clarify treatment of signs,
   18773 	reported by Kent Boortz.
   18774 
   18775 	* randmt.c: Use gmp_uint_least32_t.
   18776 	(randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits.
   18777 
   18778 	* gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32.
   18779 	* configure.in (AC_CHECK_TYPES): Add uint_least32_t.
   18780 	(AC_CHECK_SIZEOF): Add unsigned short.
   18781 
   18782 2002-12-22  Kevin Ryde  <kevin (a] swox.se>
   18783 
   18784 	* gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit.
   18785 	(ULONG_PARITY) [_CRAY, __ia64]: New macros.
   18786 	* tests/t-parity.c: New test.
   18787 	* tests/Makefile.am (check_PROGRAMS): Add it.
   18788 
   18789 	* longlong.h (count_trailing_zeros) [ia64]: New macro.
   18790 
   18791 	* tests/t-count_zeros.c (check_various): Remove unused variable "n".
   18792 
   18793 	* mpn/x86/README: Revise notes on PIC, PLT and GOT.
   18794 
   18795 	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt"
   18796 	to GMP::Rand::randstate.
   18797 
   18798 2002-12-22  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   18799 
   18800 	* randmt.c (randseed_mt): Fix bug that might cause the generator to
   18801 	return all zeros with certain seeds.  Fix WARM_UP==0 case.
   18802 	(gmp_randinit_mt): Initialize to a known state by default.
   18803 	(randget_mt): Remove check for uninitialized buffer: no longer needed.
   18804 	(recalc_buffer): Use ?: instead of two-element array.
   18805 
   18806 	* tests/rand/t-mt.c: New test.
   18807 	* tests/rand/Makefile.am (check_PROGRAMS): Add it.
   18808 
   18809 2002-12-21  Kevin Ryde  <kevin (a] swox.se>
   18810 
   18811 	* cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h>
   18812 	and <string.h>.  No need for <stdio.h>.
   18813 
   18814 	* demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c,
   18815 	demos/expr/exprza.c: Use mp_get_memory_functions, not
   18816 	__gmp_allocate_func etc.
   18817 	* demos/expr/t-expr.c: Don't use gmp-impl.h.
   18818 	(numberof): New macro.
   18819 
   18820 	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
   18821 	__gmp_free_func): Move declarations to gmp-impl.h
   18822 
   18823 	* mp_get_fns.c: New file.
   18824 	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
   18825 	* gmp-h.in (mp_get_memory_functions): Add prototype.
   18826 	* gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to
   18827 	"free" not "deallocate" function.
   18828 	* gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions,
   18829 	not __gmp_free_func.
   18830 
   18831 	* gmp-impl.h [__cplusplus]: Add <cstring> for strlen.
   18832 	(gmp_allocated_string): Hold length in a field.
   18833 	* cxx/osdoprnti.cc, cxx/osmpf.cc: Use this.
   18834 
   18835 2002-12-20  Torbjorn Granlund  <tege (a] swox.com>
   18836 
   18837 	* tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon
   18838 	failure.
   18839 
   18840 	* mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero.
   18841 
   18842 2002-12-19  Torbjorn Granlund  <tege (a] swox.com>
   18843 
   18844 	* mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space
   18845 	for pp temporary to allow for worst case overestimate of root.
   18846 	Add some asserts.
   18847 
   18848 	* tests/mpz/t-root.c: Generalize and speed up.
   18849 
   18850 2002-12-19  Kevin Ryde  <kevin (a] swox.se>
   18851 
   18852 	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test.
   18853 
   18854 	* gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard
   18855 	I/O mode.
   18856 	* gmp.texi (Notes for Particular Systems): Compaq C++ must be used in
   18857 	"standard" iostream mode.
   18858 
   18859 2002-12-18  Torbjorn Granlund  <tege (a] swox.com>
   18860 
   18861 	* mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing
   18862 	little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined.
   18863 
   18864 2002-12-18  Kevin Ryde  <kevin (a] swox.se>
   18865 
   18866 	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New
   18867 	defines in config.m4.
   18868 
   18869 2002-12-17  Torbjorn Granlund  <tege (a] swox.com>
   18870 
   18871 	* printf/printffuns.c (gmp_fprintf_reps): Make it actually work
   18872 	for padding > 256.
   18873 
   18874 2002-12-17  Kevin Ryde  <kevin (a] swox.se>
   18875 
   18876 	* tune/freq.c: Add <string.h> for memcmp.
   18877 
   18878 	* mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD.
   18879 
   18880 	* gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc.
   18881 	(Formatted Input Strings): Type "l" is for double too.  Hex floats are
   18882 	accepted for mpf_t.
   18883 	(Formatted Input Functions): Describe tightened parse rule, clarify
   18884 	return value a bit.
   18885 
   18886 	* scanf/doscan.c: Add hex floats, tighten matching to follow C99, for
   18887 	instance "0x" is no longer acceptable to "%Zi".
   18888 	Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't
   18889 	like them the same.
   18890 	* tests/misc/t-scanf.c: Update tests.
   18891 	* tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake
   18892 	decimal point.
   18893 
   18894 	* config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise
   18895 	ultrasparcs.
   18896 
   18897 	* mpfr/tests/dummy.c: New file.
   18898 	* mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it.
   18899 
   18900 2002-12-14  Kevin Ryde  <kevin (a] swox.se>
   18901 
   18902 	* mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz
   18903 	sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the
   18904 	ansi2knr setups right for sources in other directories.
   18905 
   18906 	* mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr.
   18907 
   18908 2002-12-13  Kevin Ryde  <kevin (a] swox.se>
   18909 
   18910 	* mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for
   18911 	fdl.texi in recent mpfr.
   18912 
   18913 	* configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray
   18914 	conditional AC_EGREP_CPP.
   18915 
   18916 	* configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid
   18917 	problems with new compaq "as" on OSF 5.1.
   18918 
   18919 	* mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does
   18920 	it automatically.
   18921 
   18922 	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by
   18923 	autoconf 2.57.
   18924 
   18925 	* configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of
   18926 	new mpfr using LIBOBJ.
   18927 
   18928 	* configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies
   18929 	$(top_builddir)/ansi2knr".
   18930 	* */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in.
   18931 
   18932 	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.57.
   18933 	* */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs:
   18934 	Update to automake 1.7.2.
   18935 
   18936 	* gmp.texi (Build Options): Add hppa64 to cpu types.
   18937 	(ABI and ISA): Add gcc to hppa 2.0.
   18938 	(Debugging): Add maximum debuggability config options.
   18939 	(Language Bindings): Add Arithmos, reported by Johan Vervloet.
   18940 	(Formatted Output Strings): 128 bits is about 40 digits, ll is only
   18941 	for long long not long double.
   18942 	(Formatted Input Strings): ll is only for long long not long double.
   18943 
   18944 	* mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0,
   18945 	under the rule n==c mod d iff exists q satisfying n=c+q*d.
   18946 	* gmp.texi (Integer Division): Describe this.
   18947 	Suggested by Jason Moxham.
   18948 
   18949 2002-12-13  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   18950 
   18951 	* randlc2x.c (lc): Remove check for seedn < an, which is now
   18952 	superfluous.  Add ASSERT to ensure it's correct.  Add ASSERT to check
   18953 	precondition of __GMPN_ADD.
   18954 	(gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit
   18955 	for both seed and a.  Simplify seedn < p->_cn case.
   18956 
   18957 	* tests/rand/t-lc2exp.c (check_bigs): Test negative seeds.
   18958 
   18959 2002-12-12  Torbjorn Granlund  <tege (a] swox.com>
   18960 
   18961 	* mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'.
   18962 	Add empty `.callinfo'.
   18963 
   18964 2002-12-11  Torbjorn Granlund  <tege (a] swox.com>
   18965 
   18966 	* mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a
   18967 	label.
   18968 
   18969 2002-12-11  Kevin Ryde  <kevin (a] swox.se>
   18970 
   18971 	* configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0.
   18972 
   18973 	* mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend.
   18974 	* configure.in (hppa*-*-*): Use it.
   18975 
   18976 	* printf/doprnt.c: Comments on "ll" versus "L".
   18977 
   18978 	* tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones.
   18979 
   18980 2002-12-11  Torbjorn Granlund  <tege (a] swox.com>
   18981 
   18982 	* mpz/get_d.c (limb2dbl): New macro for conversion to `double'.
   18983 	Define it to something non-trivial for 64-bit hppa.
   18984 	* mpq/get_d.c: Likewise.
   18985 	* mpf/get_d.c: Likewise.
   18986 
   18987 	* mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l.
   18988 
   18989 2002-12-09  Kevin Ryde  <kevin (a] swox.se>
   18990 
   18991 	* tune/Makefile.am: Don't use -static under --disable-static, it tends
   18992 	not to work.
   18993 	* configure.in (ENABLE_STATIC): New AM_CONDITIONAL.
   18994 
   18995 	* gmp-h.in: Use <iostream> instead of <iosfwd> with Compaq C++ in
   18996 	pre-standard I/O mode.
   18997 
   18998 	* tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests.
   18999 
   19000 2002-12-08  Kevin Ryde  <kevin (a] swox.se>
   19001 
   19002 	* configure.in (*-*-ultrix*): Remove forcible --disable-shared,
   19003 	believe this was a generic problem with libtool, now gone.
   19004 
   19005 2002-12-08  Torbjorn Granlund  <tege (a] swox.com>
   19006 
   19007 	* gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation.
   19008 
   19009 2002-12-07  Torbjorn Granlund  <tege (a] swox.com>
   19010 
   19011 	* tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in
   19012 	mpq_cmp_ui calls.
   19013 
   19014 	* configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around
   19015 	compiler bug with mpfr/tests/tdiv.
   19016 
   19017 2002-12-07  Kevin Ryde  <kevin (a] swox.se>
   19018 
   19019 	* configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional.
   19020 	New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler
   19021 	support for 2.0n.
   19022 	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error
   19023 	from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions.
   19024 	(GMP_HPPA_LEVEL_20): New macro.
   19025 
   19026 2002-12-07  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   19027 
   19028 	* gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void.
   19029 	(LIMBS_PER_ULONG, MPN_SET_UI): New macros.
   19030 	(MPZ_FAKE_UI): Rename couple of parameters.
   19031 
   19032 	* randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced
   19033 	with mpn style _cp and _cn.  All callers changed.
   19034 	(randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case.
   19035 	Remove return value.
   19036 	(gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation.
   19037 
   19038 	* randmt.c (mangle_seed): New function by Kevin.
   19039 	(randseed_mt): Use it instead of mpz_powm, for performance.  Remove
   19040 	return value.  Remove commented out code (an inferior alternative to
   19041 	mpz_export).
   19042 
   19043 	* randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI.
   19044 
   19045 	* tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests.
   19046 	* tests/rand/t-urndmm.c: Add L to constants in calls, for K&R.
   19047 
   19048 2002-12-06  Torbjorn Granlund  <tege (a] swox.com>
   19049 
   19050 	* configure.in: Remove -g.
   19051 	(hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0.
   19052 
   19053 2002-12-05  Torbjorn Granlund  <tege (a] swox.com>
   19054 
   19055 	* mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend.
   19056 	* mpn/pa64/udiv.asm: Likewise.
   19057 
   19058 2002-12-05  Kevin Ryde  <kevin (a] swox.se>
   19059 
   19060 	* mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to.
   19061 	* mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas
   19062 	doesn't like ".level 2.0N".
   19063 
   19064 	* configure.in (hppa*-*-*): Group path and flags choices, for clarity.
   19065 	(hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available.
   19066 	(hppa2.0*-*-*): Ditto -mpa-risc-2-0.
   19067 	(*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than
   19068 	the converse of allowing it for hpux1[1-9]; ie. list the bad systems
   19069 	rather than try to guess the good systems.
   19070 	(hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers.
   19071 	(hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or
   19072 	64-bit build of the compiler.
   19073 	(hppa64-*-*): Add this as equivalent to hppa2.0-*-*.
   19074 	* acinclude.m4 (GMP_C_TEST_SIZEOF): New macro.
   19075 
   19076 	* tests/tests.h (ostringstream::str): Must null-terminate
   19077 	ostrstream::str() for the string constructor.
   19078 
   19079 2002-12-04  Torbjorn Granlund  <tege (a] swox.com>
   19080 
   19081 	* mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff.
   19082 
   19083 	* longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo.
   19084 
   19085 	* mpn/powerpc32/powerpc-defs.m4: Define float registers with `f'
   19086 	prefix.
   19087 
   19088 2002-12-04  Kevin Ryde  <kevin (a] swox.se>
   19089 
   19090 	* gmp.texi (Floating-point Functions): Note the mantissa is binary and
   19091 	decimal fractions cannot be represented exactly.  Suggested by Serge
   19092 	Winitzki.
   19093 	(Known Build Problems): Note libtool stripping options when linking.
   19094 	Reported by Vincent Lefevre.
   19095 
   19096 	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a
   19097 	failure, that's a valid result.
   19098 	(GMP_ASM_GLOBL): Establish this from the host cpu type.
   19099 	(IA64_PATTERN): New macro.
   19100 	(GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI,
   19101 	GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created.
   19102 	* configure.in: Use IA64_PATTERN.
   19103 
   19104 2002-12-03  Torbjorn Granlund  <tege (a] swox.com>
   19105 
   19106 	* tune/hppa.asm: Use config.m4.
   19107 	* tune/hppa2.asm: Likewise.
   19108 	* tune/hppa2w.asm: Likewise.
   19109 
   19110 	* mpn/pa64: Use LDEF.
   19111 
   19112 2002-12-03  Kevin Ryde  <kevin (a] swox.se>
   19113 
   19114 	* INSTALL: Use return rather than exit in the example programs.
   19115 	Suggested by Richard Dawe.
   19116 
   19117 	* gmp.texi (Build Options): Move non-unix notes to ...
   19118 	(Notes for Particular Systems): ... here.  Mention MS Interix,
   19119 	reported by Paul Leyland.
   19120 	(C++ Interface Random Numbers): Add gmp_randinit_mt to examples.
   19121 
   19122 	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first,
   19123 	for the benefit of hppa hp-ux.
   19124 	(GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to
   19125 	construct an asm file, and in case of failure fallback on no
   19126 	underscore and a warning.
   19127 
   19128 	* longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]:
   19129 	Restrict __asm__ ctlz and cttz to __GNUC__.
   19130 
   19131 	* gen-psqr.c (HAVE_CONST, const): New macros.
   19132 
   19133 	* tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt.
   19134 
   19135 2002-12-02  Torbjorn Granlund  <tege (a] swox.com>
   19136 
   19137 	* gmp-impl.h: Split popc_limb again, combined version gives too many
   19138 	compiler warnings.
   19139 
   19140 2002-12-01  Torbjorn Granlund  <tege (a] swox.com>
   19141 
   19142 	* mpn/generic/gcdext.c (div1): Disable unused function.
   19143 
   19144 	* mpz/root.c: Don't include stdlib.h or longlong.h.
   19145 	* mpz/rootrem.c: Likewise.
   19146 
   19147 	* extract-dbl.c: abort => ASSERT_ALWAYS.
   19148 	* mpz/set_d.c: Likewise.
   19149 	* mpn/generic/tdiv_qr.c: Likewise.
   19150 
   19151 	* gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to
   19152 	`const void *', to match qsort spec.
   19153 
   19154 2002-12-01  Kevin Ryde  <kevin (a] swox.se>
   19155 
   19156 	* gmp.texi (Integer Division): Fix a couple of @math's for tex.
   19157 	Use @dots in more places.
   19158 
   19159 	* tests/cxx/t-locale.cc: Test non std::locale systems too.
   19160 	* tests/cxx/clocale.c: New file, reinstating what was localeconv.c,
   19161 	and subverting nl_langinfo too.
   19162 	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
   19163 
   19164 	* tests/tests.h (ostringstream, istringstream): Provide fakes of these
   19165 	if <sstream> not available.
   19166 	* tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove <sstream>.
   19167 	* configure.in (AC_CHECK_HEADERS) [C++]: Add <sstream>.
   19168 
   19169 2002-11-30  Torbjorn Granlund  <tege (a] swox.com>
   19170 
   19171 	* printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up
   19172 	compiler warnings.
   19173 
   19174 	* mpn/ia64/invert_limb.asm: Add `many' hints to return insns.
   19175 
   19176 	* mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in
   19177 	one of them.
   19178 
   19179 	* mpn/ia64/popcount.asm: Properly restore register ar.lc.
   19180 
   19181 	* longlong.h (umul_ppmm) [ia64]: Form both product parts in asm.
   19182 
   19183 	* mpz/bin_uiui.c: Cast umul_ppmm operands.
   19184 
   19185 	* scanf/doscan.c (gmpscan): Remove unused label store_get_digits.
   19186 
   19187 	* gmp-impl.h: #undef MIN and MAX before #defining.
   19188 
   19189 	* mpn/ia64/copyi.asm: Add `;' after bundle declarators.
   19190 	* mpn/ia64/copyd.asm: Likewise.
   19191 
   19192 	* mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler.
   19193 
   19194 2002-11-30  Kevin Ryde  <kevin (a] swox.se>
   19195 
   19196 	* configure.in (AC_CHECK_HEADERS): Add nl_types.h.
   19197 	* tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1.
   19198 
   19199 2002-11-29  Torbjorn Granlund  <tege (a] swox.com>
   19200 
   19201 	* tests/devel/addmul_1.c: Provide prototype for mpn_print.
   19202 	(OPS): Account for function overhead.
   19203 	* tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise.
   19204 
   19205 	* mpn/ia64/addmul_1.asm: Rewrite.
   19206 
   19207 2002-11-28  Torbjorn Granlund  <tege (a] swox.com>
   19208 
   19209 	* mpn/ia64/sqr_diagonal.asm: Don't allocate any registers.
   19210 
   19211 	* mpn/ia64/submul_1.asm: Adapt to Itanium 2.
   19212 
   19213 	* mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code.
   19214 
   19215 	* mpn/ia64/add_n.asm: Rewrite.
   19216 	* mpn/ia64/sub_n.asm: Rewrite.
   19217 
   19218 2002-11-28  Kevin Ryde  <kevin (a] swox.se>
   19219 
   19220 	* mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather
   19221 	than libdummy.
   19222 	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for
   19223 	x86call.asm and x86check.c rather than libdummy.
   19224 
   19225 2002-11-27  Torbjorn Granlund  <tege (a] swox.com>
   19226 
   19227 	* tests/mpz/t-mul.c: Implement reference Karatsuba multiplication.
   19228 	Rewrite testing scheme to run fewer really huge tests.
   19229 
   19230 2002-11-26  Torbjorn Granlund  <tege (a] swox.com>
   19231 
   19232 	* tests: Decrease repetition count for some of the slowest tests.
   19233 
   19234 	* mpn/ia64/divrem_1.asm: New file.
   19235 
   19236 2002-11-25  Torbjorn Granlund  <tege (a] swox.com>
   19237 
   19238 	* mpfr/tests/tdiv.c: Decrease number of performed tests.
   19239 
   19240 2002-11-23  Torbjorn Granlund  <tege (a] swox.com>
   19241 
   19242 	* mpn/ia64/mul_1.asm: Rewrite.
   19243 
   19244 2002-11-23  Kevin Ryde  <kevin (a] swox.se>
   19245 
   19246 	* mpn/ia64/README: Add some references.
   19247 
   19248 	* gmp.texi (Build Options): Add itanium and itanium2, mention DocBook
   19249 	and XML from makeinfo, add texinfo top level cross reference.
   19250 	(Integer Division): Try to clarify 2exp functions a bit.
   19251 	(C++ Interface Floats): Giving bad string to constructor is undefined.
   19252 	(C++ Interface Integers, C++ Interface Rationals): Ditto, and show
   19253 	default base in prototype, not the description.
   19254 
   19255 	* config.sub, config.guess, configure.in (itanium, itanium2): New cpu
   19256 	types.
   19257 
   19258 	* tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress
   19259 	%zd test on glibc prior to 2.1, it's not supported.
   19260 
   19261 2002-11-22  Torbjorn Granlund  <tege (a] swox.com>
   19262 
   19263 	* mpn/ia64/copyi.asm: Optimize for Itanium 2.
   19264 	* mpn/ia64/copyd.asm: Likewise.
   19265 
   19266 2002-11-20  Torbjorn Granlund  <tege (a] swox.com>
   19267 
   19268 	* mpn/ia64/sqr_diagonal.asm: New file.
   19269 
   19270 	* mpn/ia64/submul_1.asm: Handle vl == 0 specially.
   19271 
   19272 2002-11-20  Kevin Ryde  <kevin (a] swox.se>
   19273 
   19274 	* tests/cxx/t-locale.cc: Test with locales imbued into stream, use
   19275 	<sstream>, eliminated some C-isms.  istream tests disabled, not yet
   19276 	locale-ized.
   19277 	* tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c.
   19278 	* tests/cxx/localeconv.c: Remove file.
   19279 
   19280 	* configure.in (AC_CHECK_TYPES) [C++]: Add std::locale.
   19281 	* printf/doprntf.c: Add decimal point parameter, remove localeconv use.
   19282 	* gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to
   19283 	__gmp_doprnt_mpf2 to protect old libgmpxx.
   19284 	* cxx/osmpf.cc: Use this with ostream locale decimal_point facet.
   19285 	* printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT.
   19286 
   19287 	* gmp-h.in: More comments on __declspec for windows DLLs.
   19288 
   19289 	* mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for
   19290 	decimal point string, same as input chars.
   19291 
   19292 	* configure.in (AC_CHECK_HEADERS): Add langinfo.h.
   19293 	(AC_CHECK_FUNCS): Add nl_langinfo.
   19294 	* gmp-impl.h (GMP_DECIMAL_POINT): New macro.
   19295 	* mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't
   19296 	bother with special code for non-locale systems.
   19297 	* tests/misc/t-locale.c: Subvert nl_langinfo too.
   19298 
   19299 	* configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro.
   19300 	* mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting
   19301 	extra underscore for OpenBSD.
   19302 	* mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes.
   19303 	Reported by Christian Weisgerber.
   19304 
   19305 	* tests/cxx/t-rand.cc (check_randinit): New function, collecting up
   19306 	constructor tests.
   19307 
   19308 	* tests/cxx/t-ostream.cc: Use <sstream> instead of <strstream>, use
   19309 	compare instead of strcmp.
   19310 
   19311 	* gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int.
   19312 
   19313 2002-11-18  Kevin Ryde  <kevin (a] swox.se>
   19314 
   19315 	* tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by
   19316 	Torbjorn.
   19317 
   19318 2002-11-19  Torbjorn Granlund  <tege (a] swox.com>
   19319 
   19320 	* mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code.
   19321 	Streamline prologue.
   19322 	* mpn/ia64/addmul_1.asm: Likewise.
   19323 	* mpn/ia64/submul_1.asm: New file.
   19324 	* mpn/ia64/submul_1.c: Remove.
   19325 
   19326 2002-11-17  Torbjorn Granlund  <tege (a] swox.com>
   19327 
   19328 	* mpn/generic/popham.c: New file, using new faster algorithm.
   19329 	* mpn/generic/popcount.c: Remove.
   19330 	* mpn/generic/hamdist.c: Remove.
   19331 
   19332 	* mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16.
   19333 	* mpn/ia64/mul_1.asm: Likewise.
   19334 
   19335 	* mpn/ia64/addmul_1.asm: Add pred.rel declarations.  Resolve RAW
   19336 	hazards for condition code registers, duplicating code as needed.  Add
   19337 	prediction to all branches.
   19338 	* mpn/ia64/mul_1.asm: Likewise.
   19339 	* mpn/ia64/add_n.asm: Likewise.
   19340 	* mpn/ia64/sub_n.asm: Likewise.
   19341 	* mpn/ia64/copyi.asm: Likewise.
   19342 	* mpn/ia64/copyd.asm: Likewise.
   19343 
   19344 	* mpn/generic/random2.c: Add a cast to silence some compilers.
   19345 
   19346 2002-11-16  Torbjorn Granlund  <tege (a] swox.com>
   19347 
   19348 	* mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed
   19349 	values).
   19350 
   19351 2002-11-16  Kevin Ryde  <kevin (a] swox.se>
   19352 
   19353 	* configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and
   19354 	is unlikely to ever do so.
   19355 	* configure.in: Allow ABI=32 for powerpc64.
   19356 	Reported by David Edelsohn.
   19357 
   19358 2002-11-14  Kevin Ryde  <kevin (a] swox.se>
   19359 
   19360 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c
   19361 	addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c.
   19362 
   19363 	* gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
   19364 	Use __dllexport__ and __dllimport__ to keep out of application
   19365 	namespace.
   19366 
   19367 2002-11-14  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   19368 
   19369 	* gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t,
   19370 	__gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for
   19371 	the benefit of g++ prior to 3.2.
   19372 
   19373 2002-11-12  Kevin Ryde  <kevin (a] swox.se>
   19374 
   19375 	* gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to
   19376 	use extern "C" on C function pointer arguments.
   19377 
   19378 2002-11-09  Kevin Ryde  <kevin (a] swox.se>
   19379 
   19380 	* configure.in, Makefile.am, printf/Makefile.am,
   19381 	printf/repl-vsnprintf.c: Handle vsnprintf replacement with C
   19382 	conditionals.
   19383 
   19384 	* acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent
   19385 	HP cc +O3 causes for AC_CHECK_FUNCS.
   19386 
   19387 	* gmp.texi (Notes for Particular Systems): Add Sparc app regs.
   19388 	(Debugging): Note gcc -fstack options to detect overflow.
   19389 	(Formatted Output Strings, Formatted Input Strings): Format strings
   19390 	are not multibyte.
   19391 
   19392 2002-11-06  Torbjorn Granlund  <tege (a] swox.com>
   19393 
   19394 	* mpn/generic/tdiv_qr.c: Remove a bogus assert.
   19395 
   19396 2002-11-05  Torbjorn Granlund  <tege (a] swox.com>
   19397 
   19398 	* mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls.
   19399 
   19400 2002-11-04  Kevin Ryde  <kevin (a] swox.se>
   19401 
   19402 	* acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++.
   19403 
   19404 	* demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h.
   19405 
   19406 	* mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c,
   19407 	scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c,
   19408 	demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c,
   19409 	demos/expr/exprz.c, demos/expr/exprza.c: Add <string.h> for strlen and
   19410 	memcpy.
   19411 
   19412 2002-11-02  Kevin Ryde  <kevin (a] swox.se>
   19413 
   19414 	* longlong.h: Test __x86_64__ not __x86_64.  Reported by Andreas
   19415 	Jaeger.
   19416 
   19417 	* mpz/import.c, mpz/export.c: Use char* subtract from NULL to get
   19418 	pointer alignment, for the benefit of Cray vector systems.
   19419 
   19420 	* cxx/ismpf.cc: Use <clocale>.
   19421 	* tests/cxx/t-locale.cc: No need to conditionalize <clocale>.
   19422 
   19423 	* scanf/doscan.c: Don't use isascii, rely on C99 ctype.h.
   19424 
   19425 	* gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference
   19426 	texinfo manual.
   19427 	(ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD
   19428 	and OpenBSD sparc64.
   19429 	(Notes for Package Builds): Cross reference libtool manual.
   19430 	(Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas.
   19431 	(Known Build Problems): Add MacOS X C++ shared libraries.
   19432 
   19433 2002-10-31  Kevin Ryde  <kevin (a] swox.se>
   19434 
   19435 	* gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
   19436 	tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5,
   19437 	mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring.
   19438 	* configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5,
   19439 	HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7,
   19440 	HAVE_NATIVE_mpn_addmul_8.
   19441 	(gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8.
   19442 
   19443 	* tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h
   19444 	(try_one): Do dest setups after sources, for benefit of
   19445 	dst0_from_src1.
   19446 
   19447 2002-11-01  Torbjorn Granlund  <tege (a] swox.com>
   19448 
   19449 	* mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for
   19450 	sub-division when numerator is more than twice the size of the
   19451 	denominator.  Simplify loop logic for the same case.  Clean up a
   19452 	few comments.
   19453 
   19454 2002-10-29  Torbjorn Granlund  <tege (a] swox.com>
   19455 
   19456 	* configure.in (*-cray-unicos*): Pass -hnofastmd again.
   19457 
   19458 2002-10-25  Torbjorn Granlund  <tege (a] swox.com>
   19459 
   19460 	* tests/tadd.c: Disable test of denorms.
   19461 
   19462 2002-10-23  Linus Nordberg  <linus (a] swox.se>
   19463 
   19464 	* gmp.texi (Introduction to GMP): Update section about mailing
   19465 	lists.
   19466 
   19467 2002-10-23  Kevin Ryde  <kevin (a] swox.se>
   19468 
   19469 	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when
   19470 	__GMP_NO_ATTRIBUTE_CONST_PURE is defined.
   19471 	* gmp-impl.h (ATTRIBUTE_CONST): Ditto.
   19472 	* tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE.
   19473 
   19474 	* tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes.
   19475 	* tune/speed.h: Remove various "dummy" variables attempting to keep
   19476 	"pure" calls live, no longer necessary.  They weren't sufficient for
   19477 	recent MacOS cc anyway.
   19478 
   19479 2002-10-21  Torbjorn Granlund  <tege (a] swox.com>
   19480 
   19481 	* mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c.
   19482 	* mpn/cray/ieee/submul_1.c: Likewise.
   19483 
   19484 2002-10-19  Kevin Ryde  <kevin (a] swox.se>
   19485 
   19486 	* configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and
   19487 	OpenBSD sparc64.  Reported by Christian Weisgerber.
   19488 	(AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD.
   19489 
   19490 	* demos/calc/calc.y: Change ={ to {, needed for bison 1.50.
   19491 
   19492 	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]:
   19493 	Should be UDItype.
   19494 
   19495 	* mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast
   19496 	chars through "unsigned char" to zero extend, required by C99 ctype.h.
   19497 
   19498 2002-10-18  Torbjorn Granlund  <tege (a] swox.com>
   19499 
   19500 	* tests/mpz/t-root.c: Test also mpz_rootrem.
   19501 
   19502 	* mpn/generic/rootrem.c: Avoid overflow problem when n is huge.
   19503 
   19504 	* mpz/root.c: Avoid overflow problems in allocation computation; also
   19505 	simplify it.  Misc cleanups.
   19506 
   19507 	* mpz/rootrem.c: New file.
   19508 	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
   19509 
   19510 2002-10-17  Torbjorn Granlund  <tege (a] swox.com>
   19511 
   19512 	* gmp-impl.h (popc_limb): Combine variants.
   19513 
   19514 2002-10-14  Kevin Ryde  <kevin (a] swox.se>
   19515 
   19516 	* configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h
   19517 	test, needed by SunOS, and next autoconf will insist headers actually
   19518 	compile.
   19519 
   19520 2002-10-08  Kevin Ryde  <kevin (a] swox.se>
   19521 
   19522 	* tune/time.c (speed_time_init): Allow for Cray times() apparently
   19523 	being a cycle counter.
   19524 
   19525 	* dumbmp.c (mpz_get_str): Fix buf size allocation.
   19526 
   19527 	* tests/trace.c, tests/tests.h (mp_limb_trace): New function.
   19528 
   19529 	* tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO.
   19530 	* tests/devel/try.c (malloc_region): Add a cast for SunOS cc.
   19531 
   19532 	* configure.in (AC_CHECK_FUNCS): Add strerror.
   19533 	(AC_CHECK_DECLS): Add sys_errlist, sys_nerr.
   19534 	* tune/time.c, tests/devel/try.c: Use them.
   19535 
   19536 2002-10-05  Kevin Ryde  <kevin (a] swox.se>
   19537 
   19538 	* configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc.
   19539 	* printf/repl-vsnprintf.c: Use this.
   19540 
   19541 	* configure.in (*sparc*-*-*): Collect up various options for clarity,
   19542 	use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use
   19543 	-xtarget=native, use cc configs with acc, merge SunOS bundled cc and
   19544 	SunPRO cc configs.
   19545 
   19546 	* gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO.
   19547 	(MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the
   19548 	benefit of SunOS cc which requires pointers of the same type on the
   19549 	two legs of a ?:.
   19550 
   19551 	* dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc.
   19552 
   19553 	* acinclude.m4: Allow for i960 b.out default cc output.
   19554 
   19555 	* gmp.texi (Random State Initialization): Add gmp_randinit_mt.
   19556 	(Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use.
   19557 	(Factorial Algorithm): Describe Jason's new code.
   19558 	(Binomial Coefficients Algorithm): Ideas about improvements
   19559 	moved to doc/projects.html.
   19560 	(Contributors): Add Jason Moxham and Pedro Gimeno.
   19561 
   19562 2002-10-03  Kevin Ryde  <kevin (a] swox.se>
   19563 
   19564 	* gen-psqr.c: New file.
   19565 	* Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h.
   19566 	* mpn/generic/perfsqr.c: Use generated data, put mod 256 data into
   19567 	limbs to save space, use mpn_mod_34lsub1 when good.
   19568 	* tests/mpn/t-perfsqr.c: New file.
   19569 	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
   19570 	* tests/mpz/t-perfsqr.c (check_modulo): New test.
   19571 	(check_sqrt): New function holding current tests.
   19572 
   19573 	* configure.in (AC_INIT): Modernize to package name and version here
   19574 	rather than AM_INIT_AUTOMAKE, add bug report email.
   19575 	(AC_CONFIG_SRCDIR): New macro.
   19576 
   19577 	* gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not
   19578 	normal in current uses), clarify the comments a bit.
   19579 
   19580 2002-09-30  Kevin Ryde  <kevin (a] swox.se>
   19581 
   19582 	* mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC,
   19583 	same as .S.lo and .asm.lo.
   19584 
   19585 	* Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in
   19586 	test -f stuff to avoid Sun make rewriting them.
   19587 
   19588 2002-09-28  Kevin Ryde  <kevin (a] swox.se>
   19589 
   19590 	* tests/devel/try.c, tune/speed.c: Avoid strings longer than C99
   19591 	guarantees.
   19592 
   19593 	* tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize,
   19594 	refmpn_sqrtrem): New functions.
   19595 	* tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem.
   19596 	(compare): Correction to tr->dst_size subscripting.
   19597 
   19598 	* dumbmp.c: Add several new functions, allow for initial n<d in
   19599 	mpz_tdiv_q (now in mpz_tdiv_qr actually).
   19600 
   19601 	* gen-bases.c (chars_per_limb): Get GMP_NUMB_BITS for base==2,
   19602 	similarly other powers of 2, which this was in the past.
   19603 	* tests/refmpn.c (refmpn_chars_per_limb): Ditto.
   19604 	* tests/mpn/t-mp_bases.c: Test chars_per_limb for power-of-2 bases too.
   19605 
   19606 	* Makefile.am, mpz/Makefile.am: Setups for gen-fac_ui.c generating
   19607 	mpz/fac_ui.h.
   19608 
   19609 2002-09-28  Jason Moxham <J.L.Moxham (a] maths.soton.ac.uk>
   19610 
   19611 	* dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions.
   19612 	* gen-fac_ui.c: New file.
   19613 	* mpz/fac_ui.c: Rewrite.
   19614 
   19615 2002-09-26  Kevin Ryde  <kevin (a] swox.se>
   19616 
   19617 	* tests/cxx/localeconv.c: New file, split from t-locale.cc.
   19618 	* tests/cxx/t-locale.cc: Use it.
   19619 	* tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
   19620 
   19621 	* tests/cxx/Makefile.am: Updates for Gerardo's new test programs.
   19622 
   19623 2002-09-26  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   19624 
   19625 	* gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and
   19626 	double/mpfr comparisons.
   19627 
   19628 	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc,
   19629 	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various
   19630 	tests, including some for mpfr, some split from t-expr.cc.
   19631 	* tests/cxx/t-locale.cc: Modernize include files.
   19632 	* tests/cxx/t-ostream.cc: Modernize include files, use cout rather
   19633 	than printf for diagnostics.
   19634 	* tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from
   19635 	t-allfuns.cc.
   19636 	* tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc.
   19637 	* tests/cxx/t-prec.cc: New file.
   19638 	* tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files.
   19639 
   19640 2002-09-25  Torbjorn Granlund  <tege (a] swox.com>
   19641 
   19642 	* configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much
   19643 	performance loss.  Let's trust Cray to fix their compilers.
   19644 
   19645 2002-09-24  Torbjorn Granlund  <tege (a] swox.com>
   19646 
   19647 	* mpn/powerpc32/add_n.asm: Rewrite.
   19648 	* mpn/powerpc32/sub_n.asm: Rewrite.
   19649 
   19650 2002-09-24  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   19651 
   19652 	* randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t,
   19653 	make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons
   19654 	for mpn_mul.
   19655 	* gmp-impl.h (MPZ_FAKE_UI): New macro.
   19656 
   19657 	* randmt.c: Some constants made long for K&R compliance; remove UL at
   19658 	the end of other constants; use mp_size_t where appropriate; use
   19659 	mpz_export to split the seed.
   19660 
   19661 	* gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow
   19662 	them to be used as lvalues.
   19663 	* randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed.
   19664 
   19665 	* mpz/urandomm.c: Replace mpn_cmp with MPN_CMP.
   19666 
   19667 	* tests/rand/gen.c: Get rid of gmp_errno.
   19668 
   19669 2002-09-24  Kevin Ryde  <kevin (a] swox.se>
   19670 
   19671 	* gmp.texi (Custom Allocation): Keep allocate_function etc out of the
   19672 	function index by using @deftypevr.
   19673 	More index entries.
   19674 
   19675 2002-09-24  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   19676 
   19677 	* gmpxx.h (mpfr_class constructors from strings): Precision was set
   19678 	incorrectly, fixed.
   19679 
   19680 2002-09-23  Torbjorn Granlund  <tege (a] swox.com>
   19681 
   19682 	* mpf/urandomb.c: Don't crash for overlarge nbits argument.
   19683 	Let nbits==0 mean to fill number with random bits.
   19684 
   19685 2002-09-21  Torbjorn Granlund  <tege (a] swox.com>
   19686 
   19687 	* mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction.
   19688 
   19689 2002-09-20  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   19690 
   19691 	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken
   19692 	mpq/double functions.
   19693 
   19694 2002-09-18  Torbjorn Granlund  <tege (a] swox.com>
   19695 
   19696 	* randmt.c (randget_mt): Fix typo.
   19697 
   19698 2002-09-18  Kevin Ryde  <kevin (a] swox.se>
   19699 
   19700 	* gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for
   19701 	the benefit places calling it with RANDS.
   19702 
   19703 	* randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety.
   19704 
   19705 	* tune/tuneup.c (sqr_karatsuba_threshold): Initialize to
   19706 	TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization.
   19707 
   19708 	* gmp.texi (Integer Comparisons): Remove mention of non-existent
   19709 	mpz_cmpabs_si, reported by Conrad Curry.
   19710 
   19711 	* tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed,
   19712 	gmp_randseed_ui and mpz_urandomb.
   19713 
   19714 2002-09-18  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   19715 
   19716 	* tests/rand/gen.c: Add mt, remove lc and bbs.
   19717 
   19718 	* Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and
   19719 	randraw.c.
   19720 
   19721 	* randmt.c: New file.
   19722 	* gmp-h.in (gmp_randinit_mt): Add prototype.
   19723 	* randdef.c: Use gmp_randinit_mt.
   19724 
   19725 	* gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros.
   19726 	(gmp_randfnptr_t): New structure.
   19727 	(_gmp_rand): Now a macro not a function.
   19728 	* gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c.
   19729 	(__gmp_randstate_struct): Revise comments on field usage.
   19730 	* randsd.c, randclr.c: Use function pointer scheme.
   19731 	* randsdui.c: Use gmp_randseed.
   19732 	* randraw.c: Remove file.
   19733 	* randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c
   19734 	and randraw.c, use function pointer scheme, integrate seed==0/a==0
   19735 	into main case and fix case where bits(a) < m2exp.
   19736 
   19737 	* randlc.c: Remove file, never documented and never worked.
   19738 	* gmp-h.in (gmp_randinit_lc): Remove prototype.
   19739 
   19740 2002-09-16  Torbjorn Granlund  <tege (a] swox.com>
   19741 
   19742 	* mpn/alpha/mod_34lsub1.asm: New file.
   19743 
   19744 2002-09-16  Kevin Ryde  <kevin (a] swox.se>
   19745 
   19746 	* configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not
   19747 	currently used, and #define restrict upsets Microsoft C headers on
   19748 	win64.  Reported by David Librik.
   19749 
   19750 	* configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some
   19751 	unnecessary -march=i486 fallbacks.
   19752 
   19753 	* gmp.texi (Notes for Particular Systems): Note cl /MD is required for
   19754 	Microsoft C and MINGW to cooperate on I/O.  Explained by David Librik.
   19755 	(Language Bindings): Add linbox.
   19756 	* gmp.texi (Language Bindings):
   19757 
   19758 2002-09-12  Kevin Ryde  <kevin (a] swox.se>
   19759 
   19760 	* mpz/aorsmul_i.c: Allow for w==x overlap with nails.  Test
   19761 	BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0.
   19762 	* tests/mpz/t-aorsmul.c: Test this.
   19763 
   19764 	* tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0
   19765 	* tune/speed.c: Add mpn_mod_34lsub1.
   19766 
   19767 2002-09-10  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   19768 
   19769 	* rand.c: Remove old disabled BBS code.
   19770 	* mpf/urandomb.c: Use BITS_TO_LIMBS.
   19771 
   19772 2002-09-10  Kevin Ryde  <kevin (a] swox.se>
   19773 
   19774 	* gmp.texi (Multiplication Algorithms): FFT is now enabled by default.
   19775 
   19776 2002-09-10  Pedro Gimeno  <pggimeno (a] wanadoo.es>
   19777 
   19778 	* mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if
   19779 	_gmp_rand forever returns all "1" bits.
   19780 	* tests/rand/t-urndmm.c: New file
   19781 	* tests/rand/Makefile.am (check_PROGRAMS): Add it.
   19782 
   19783 	* gmp-impl.h (BITS_TO_LIMBS): New macro.
   19784 	* mpz/urandomb.c: Use it, and use MPZ_REALLOC.
   19785 
   19786 2002-09-08  Kevin Ryde  <kevin (a] swox.se>
   19787 
   19788 	* acinclude.m4 (GMP_GCC_WA_MCPU): New macro.
   19789 	* configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't
   19790 	new enough to know ev67.  Reported by David Bremner.
   19791 
   19792 2002-07-30  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   19793 
   19794 	* gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead.
   19795 	(__gmp_expr): Reorganise specializations, use __gmp_expr<T,T> not
   19796 	mpz_class etc.
   19797 	(mpfr evals): Remove mode parameter, was always
   19798 	__gmp_default_rounding_mode anyway.
   19799 
   19800 2002-09-07  Kevin Ryde  <kevin (a] swox.se>
   19801 
   19802 	* gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of
   19803 	applications using gcc -Wundef.
   19804 
   19805 	* longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas,
   19806 	since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67
   19807 	and ev68 which don't need it.  Reported by David Bremner.
   19808 
   19809 	* gmp.texi (Demonstration Programs): New section, expanding on what
   19810 	was under "Build Options".
   19811 	(Converting Floats): Don't need \ for _ in @var within @math.
   19812 	Add and amend various index entries.
   19813 
   19814 	* demos/qcn.c: Add -p prime limit option.
   19815 
   19816 2002-08-30  Kevin Ryde  <kevin (a] swox.se>
   19817 
   19818 	* mpz/pprime_p.c: Handle small negatives with isprime, in particular
   19819 	must do so for n==-2.
   19820 	* tests/mpz/t-pprime_p.c: New file.
   19821 	* tests/mpz/Makefile.am: Add it.
   19822 
   19823 2002-08-26  Torbjorn Granlund  <tege (a] swox.com>
   19824 
   19825 	* gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs,
   19826 	reported by Paul Zimmermann.
   19827 
   19828 2002-08-26  Kevin Ryde  <kevin (a] swox.se>
   19829 
   19830 	* configure.in: Echo the ABI being tried for the compilers.
   19831 	(powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too.
   19832 	(AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c.
   19833 
   19834 2002-08-24  Kevin Ryde  <kevin (a] swox.se>
   19835 
   19836 	* configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_):
   19837 	Setup templates for these using AH_VERBATIM rather than acconfig.h,
   19838 	preferred by latest autoconf.  Prune lists to just things used.
   19839 	* acconfig.h: Remove file.
   19840 
   19841 	* mpn/powerpc32/mode1o.asm: Forgot ASM_START.
   19842 
   19843 	* tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid
   19844 	confusion with autoconf outputs, and turn it into a "const" variable.
   19845 
   19846 2002-08-23  Torbjorn Granlund  <tege (a] swox.com>
   19847 
   19848 	* configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on
   19849 	ABI, not configuration triple.
   19850 
   19851 	* mpz/pprime_p.c: Partially undo last change--handle small and
   19852 	negative numbers in the same test.
   19853 
   19854 2002-08-22  Kevin Ryde  <kevin (a] swox.se>
   19855 
   19856 	* gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note
   19857 	mpn/generic/mul_fft.c is not nails-capable, and don't bother setting
   19858 	other FFT data for nails.
   19859 
   19860 	* configfsf.guess: Update to 2002-08-19.
   19861 	* configfsf.sub: Update to 2002-08-20.
   19862 
   19863 	* config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL
   19864 	message on AIX.
   19865 
   19866 2002-08-20  Kevin Ryde  <kevin (a] swox.se>
   19867 
   19868 	* gmp.texi (Build Options): Add ia64 under cpu types.
   19869 	(ABI and ISA): Describe IRIX 6 ABI=o32.
   19870 	(Notes for Particular Systems): Remove -march=pentiumpro, now ok.
   19871 	(Known Build Problems): Binutils 2.12 is ok for libgmp.a.
   19872 	(Emacs): New section.
   19873 	(Language Bindings): Update MLton URL, reported by Stephen Weeks.
   19874 	(Prime Testing Algorithm): New section.
   19875 	Don't put a blank line after @item in @table since it can make a page
   19876 	break between the heading and the entry.
   19877 	Misc tweaks elsewhere, in particular more index entries.
   19878 
   19879 	* mpz/millerrabin.c: Need x to be size+1 for change to urandomm.
   19880 
   19881 	* gmp-impl.h: Comments on the use of __GMP_DECLSPEC.
   19882 
   19883 	* tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the
   19884 	benefit of mingw.
   19885 
   19886 	* tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb):
   19887 	Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB.
   19888 
   19889 2002-08-17  Kevin Ryde  <kevin (a] swox.se>
   19890 
   19891 	* mpn/powerpc32/mode1o.asm: New file.
   19892 	* configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro.
   19893 	* mpn/asm-defs.m4: Use it to help setting up PIC.
   19894 
   19895 	* configure.in (AC_PREREQ): Bump to 2.53.
   19896 
   19897 	* mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro.
   19898 	(PROLOGUE_cpu): New macro, giving ALIGN(4) not 8.
   19899 
   19900 2002-08-16  Torbjorn Granlund  <tege (a] swox.com>
   19901 
   19902 	* mpn/m68k/lshift.asm: Fix typo in !scale_available_p code.
   19903 	* mpn/m68k/rshift.asm: Likewise.
   19904 
   19905 2002-08-16  Kevin Ryde  <kevin (a] swox.se>
   19906 
   19907 	* configure.in (--enable-profiling=instrument): New option.
   19908 	* gmp.texi (Profiling): Describe it.
   19909 	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal):
   19910 	Add support.
   19911 	(call_mcount): Share PIC setups with call_instrument.
   19912 	* mpn/x86/*.asm: Use ret_internal.
   19913 	* mpn/asm-defs.m4 (m4_unquote): New macro.
   19914 	* tests/mpn/t-instrument.c: New file.
   19915 	* tests/mpn/Makefile.am: Add it.
   19916 
   19917 	* mpn/alpha/umul.asm: Add ASM_END.
   19918 
   19919 2002-08-12  Kevin Ryde  <kevin (a] swox.se>
   19920 
   19921 	* mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than
   19922 	using mpz_init etc.
   19923 
   19924 	* mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x,
   19925 	reported by Jason Moxham.  Exclude x==n-1, ie. -1 mod n.  Use
   19926 	gmp_randinit_default.
   19927 
   19928 	* mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos.
   19929 
   19930 	* tests/devel/try.c: Add mpn_copyi and mpn_copyd.
   19931 
   19932 2002-08-09  Kevin Ryde  <kevin (a] swox.se>
   19933 
   19934 	* Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp
   19935 	from MOSTLYCLEANFILES, automake does these itself now.
   19936 
   19937 	* */Makefile.in, aclocal.m4, configure, install-sh, missing,
   19938 	mkinstalldirs: Update to automake 1.6.3.
   19939 
   19940 	* mpn/ia64/README: Some notes on assembler syntax.
   19941 
   19942 	* mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body.
   19943 	* mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm,
   19944 	mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant
   19945 	instruction.
   19946 	* mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr.
   19947 	* mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position.
   19948 	* mpn/ia64/lorrshift.asm: Add .prologue stuff.
   19949 
   19950 	* configure.in (*-*-unicos*): Remove forcible --disable-shared,
   19951 	libtool gets this right itself now.
   19952 
   19953 2002-08-07  Kevin Ryde  <kevin (a] swox.se>
   19954 
   19955 	* mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from
   19956 	mpn/x86/pentium/mmx/popham.asm.
   19957 	* mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain
   19958 	mpn/x86/pentium/popcount.asm for the popcount.
   19959 
   19960 	* mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm.
   19961 	* configure.in (alpha*-*-*): Add umul to extra_functions.
   19962 
   19963 	* mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO.
   19964 
   19965 2002-08-05  Torbjorn Granlund  <tege (a] swox.com>
   19966 
   19967 	* acconfig.h: Remove spurious undefs for mpn_divrem_newton and
   19968 	mpn_divrem_classic.
   19969 
   19970 2002-08-05  Kevin Ryde  <kevin (a] swox.se>
   19971 
   19972 	* tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c,
   19973 	tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c,
   19974 	tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c,
   19975 	tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More
   19976 	care with long and mp_size_t parameters, for the benefit of K&R.
   19977 
   19978 	* demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm,
   19979 	demos/perl/test.pl: Add mpz_import and mpz_export.
   19980 	* demos/perl/GMP.pm: Remove "preliminary" warning.
   19981 
   19982 	* mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to
   19983 	pick up m4 defines etc.
   19984 
   19985 	* Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here,
   19986 	not libgmpxx_la_LIBADD, for the benefit of "make -j2".
   19987 
   19988 	* mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not
   19989 	optimal and might not be sufficient, but seems to work.
   19990 
   19991 2002-08-03  Kevin Ryde  <kevin (a] swox.se>
   19992 
   19993 	* gmp.texi (Profiling): Use a table and expand for clarity.
   19994 	(Integer Special Functions): New section for mpz_array_init,
   19995 	_mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use.
   19996 
   19997 	* configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared,
   19998 	libtool gets this right itself now.
   19999 
   20000 2002-07-30  Kevin Ryde  <kevin (a] swox.se>
   20001 
   20002 	* mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr,
   20003 	and make final stwu into an stw.
   20004 
   20005 	* gmp.texi (Known Build Problems): An easier workaround for DESTDIR,
   20006 	using LD_LIBRARY_PATH.
   20007 	(C++ Interface MPFR): Remove mpfrxx.h.
   20008 
   20009 	* mpfrxx.h: Remove file.
   20010 	* Makefile.am: Remove mpfrxx.h.
   20011 	* tests/cxx/Makefile.am: Add Gerardo's new test programs.
   20012 
   20013 2002-07-30  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   20014 
   20015 	* gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc.  Reorganise some
   20016 	macros for maintainability.  Merge mpfrxx.h.
   20017 	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates.
   20018 	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc,
   20019 	tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files.
   20020 
   20021 2002-07-27  Kevin Ryde  <kevin (a] swox.se>
   20022 
   20023 	* longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use
   20024 	__builtin_ffs for now, doesn't seem to work.
   20025 
   20026 	* configure.in: Establish CONFIG_SHELL to avoid a problem with
   20027 	AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*.
   20028 
   20029 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to
   20030 	mpn_gcd_finda go dead.
   20031 
   20032 	* mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs.
   20033 
   20034 2002-07-24  Kevin Ryde  <kevin (a] swox.se>
   20035 
   20036 	* demos/primes.c: Use __GMP_PROTO and don't use signed, for the
   20037 	benefit of K&R.
   20038 
   20039 	* demos/calc/calclex.l: Add <string.h> for strcmp.
   20040 
   20041 	* mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux*
   20042 	and should be standard, rather than worrying about RODATA.
   20043 
   20044 	* gmp.texi (Function Classes): Add cross references.
   20045 	(Integer Import and Export): Fix return value grouping.
   20046 
   20047 	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for
   20048 	ia64.  Add notes on what the various styles are for.
   20049 
   20050 	* mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not
   20051 	to kill text on the same line.
   20052 	(EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro
   20053 	expansion in the rest of the EPILOGUE line.
   20054 
   20055 2002-07-21  Kevin Ryde  <kevin (a] swox.se>
   20056 
   20057 	* tune/speed.h: Fix some missing _PROTOs.
   20058 
   20059 	* Makefile.am (DISTCLEANFILES): Add configure.lineno.
   20060 
   20061 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define
   20062 	HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in
   20063 	config.m4 too.
   20064 	* mpn/ia64/invert_limb.asm: Add big-endian data.
   20065 
   20066 	* tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type.
   20067 
   20068 2002-07-20  Kevin Ryde  <kevin (a] swox.se>
   20069 
   20070 	* mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c:
   20071 	More care with long and mp_size_t parameters, for the benefit of K&R.
   20072 
   20073 	* gmp-impl.h (invert_limb): Use parens around macro arguments.
   20074 	(mpn_invert_limb): Give prototype and define unconditionally.
   20075 
   20076 	* gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New
   20077 	macros.
   20078 	* mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go
   20079 	dead when not wanted.
   20080 
   20081 2002-07-17  Kevin Ryde  <kevin (a] swox.se>
   20082 
   20083 	* tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are
   20084 	that type, for the benefit of hpux ia64 bundled cc ABI=64.
   20085 
   20086 	* configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get
   20087 	the right headers for ansi2knr.
   20088 
   20089 	* acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS
   20090 	with $CCAS and when linking, as done by the makefiles.
   20091 	(GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics.
   20092 
   20093 	* gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*.
   20094 	(GMP_UINT32): New define, 32 bit type for ieee_double_extract.
   20095 	* configure.in: Add AC_CHECK_SIZEOF unsigned.
   20096 	* configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove.
   20097 	(GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here.
   20098 
   20099 	* configure.in, acinclude.m4 (GMP_C_SIZES): Remove.
   20100 	* acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this
   20101 	scheme, not required.
   20102 	* configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for
   20103 	these unconditionally, check mp_limb_t against gmp-mparam.h values.
   20104 	* gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on
   20105 	SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h.
   20106 	(BITS_PER_ULONG): Define here now.
   20107 
   20108 	* gmp.texi (ABI and ISA): Add HP-UX IA-64 choices.
   20109 	(Random State Initialization): Typo in m2exp described for
   20110 	gmp_randinit_lc_2exp_size.
   20111 	(Formatted Output Functions): Clarify gmp_obstack_printf a bit.
   20112 	(Formatted Input Strings): Typo in %n summary.
   20113 
   20114 	* mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since
   20115 	endianness detection is now cross-compile friendly.
   20116 	* mpz/out_raw.c (HTON_LIMB_STORE): Ditto.
   20117 
   20118 	* mpz/fib_ui.c: Nailify.
   20119 	* mpz/random.c: Nailify.
   20120 
   20121 	* mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent
   20122 	float rounding gremlin on powerpc.
   20123 
   20124 2002-07-15  Kevin Ryde  <kevin (a] swox.se>
   20125 
   20126 	* Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64
   20127 	make doesn't like that.
   20128 
   20129 	* mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after
   20130 	.mib etc, for the benefit of hpux.
   20131 
   20132 	* configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for
   20133 	consistency.
   20134 
   20135 	* gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1.
   20136 	Reported by nix (a] esperi.demon.co.uk.
   20137 	* mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto.
   20138 
   20139 2002-07-13  Kevin Ryde  <kevin (a] swox.se>
   20140 
   20141 	* mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm.
   20142 
   20143 	* tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD):
   20144 	Always zero for native mpn_divexact_1, mpn_modexact_1_odd.
   20145 
   20146 	* gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure,
   20147 	ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines.
   20148 	* acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes.
   20149 
   20150 	* gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3,
   20151 	mpn_addmul_4): Add prototypes and defines.
   20152 
   20153 	* gmp.texi (Number Theoretic Functions): Clarify return value.
   20154 	Reported by Peter Keller.
   20155 
   20156 2002-07-10  Kevin Ryde  <kevin (a] swox.se>
   20157 
   20158 	* configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of
   20159 	AM_PROG_LEX, now ok when lex is missing.
   20160 
   20161 	* longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab
   20162 	variant under LONGLONG_STANDALONE.
   20163 	(count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs.
   20164 
   20165 	* gmp-impl.h (popc_limb): Add an ia64 asm version.
   20166 	(DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG
   20167 	which is in gcc but means something unrelated in MS Visual C 7.0.
   20168 	Reported by David Librik.
   20169 
   20170 	* mpz/divexact.c: Add an ASSERT that den divides num.
   20171 
   20172 	* mpn/asm-defs.m4 (LDEF): New macro.
   20173 	(INT32, INT64): Use it.
   20174 	* mpn/pa32/*.asm: Use it.
   20175 	* mpn/pa32/README: Update notes on labels.
   20176 
   20177 	* tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb):
   20178 	Renamed from refmpn_bswap_limb.
   20179 	* tests/t-bswap.c: Add tests_start/tests_end for randomization.
   20180 
   20181 	* tests/refmpn.c, tests/tests.h (ref_popc_limb): New function.
   20182 	* tests/t-popc.c: New file.
   20183 	* tests/Makefile.am: Add it.
   20184 
   20185 	* mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not
   20186 	accepted by ia64-*-hpux*.
   20187 
   20188 	* acinclude.m4 (GMP_ASM_BYTE): New macro.
   20189 	(GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it.
   20190 	(GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host.
   20191 	(GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*.
   20192 	(GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host.
   20193 	(GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to
   20194 	test program, required by ia64-*-hpux*.
   20195 	(GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:",
   20196 	the former being how it's currently being used in fact.
   20197 
   20198 	* configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro.
   20199 	* configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes.
   20200 
   20201 2002-07-06  Kevin Ryde  <kevin (a] swox.se>
   20202 
   20203 	* tests/cxx/t-allfuns.cc: New file.
   20204 	* tests/cxx/Makefile.am: Add it.
   20205 
   20206 	* mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes
   20207 	to zero.  Use _mpz_realloc return value.
   20208 
   20209 	* gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input):
   20210 	Cross reference to Headers and Libraries for libgmpxx stuff.
   20211 	(Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS.
   20212 	mpn_set_str takes "unsigned char *", reported by Mark Sofroniou.
   20213 	(C++ Interface General): Describe linking with libgmpxx and libgmp.
   20214 
   20215 2002-07-01  Kevin Ryde  <kevin (a] swox.se>
   20216 
   20217 	* tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in
   20218 	one(), tune just one at a time and let the callers hand dependencies.
   20219 	Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD
   20220 	oddities in tune_sqr() instead.
   20221 
   20222 	* mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h,
   20223 	longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
   20224 	tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r
   20225 	rather than having variant parameter order for mpn_umul_ppmm and
   20226 	mpn_udiv_qrnnd on pa64.
   20227 
   20228 	* gmp-h.in (mpz_export): Remove a spurious parameter name.
   20229 	* gmp-impl.h (mpn_rootrem): Use __MPN.
   20230 
   20231 2002-06-29  Kevin Ryde  <kevin (a] swox.se>
   20232 
   20233 	* longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the
   20234 	general mechanism for that suffices.
   20235 
   20236 	* mpf/inp_str.c: Fix returned count of chars read, reported by Paul
   20237 	Zimmermann.  Also fix a memory leak for invalid input.
   20238 	* tests/mpf/t-inp_str.c: New file.
   20239 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   20240 
   20241 	* tests/devel/try.c (mpn_mod_34lsub1): Only exists for
   20242 	GMP_NUMB_BITS%4==0.
   20243 	(SIZE2_FIRST): Respect option_firstsize2 for "fraction" case.
   20244 
   20245 	* mpn/generic/diveby3.c: Further nailifications.
   20246 	* gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd.
   20247 	(GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants.
   20248 	* tests/t-constants.c: Check them.
   20249 
   20250 	* gmp-h.in (__GMP_CRAY_Pragma): New macro.
   20251 	(__GMPN_COPY_REST): Use it.
   20252 	* gmp-impl.h (CRAY_Pragma): Use it.
   20253 
   20254 2002-06-25  Kevin Ryde  <kevin (a] swox.se>
   20255 
   20256 	* mpz/import.c, mpz/export.c: Cast data pointer through "char *" in
   20257 	alignment tests, for the benefit of Cray vector systems.
   20258 
   20259 	* configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok
   20260 	with current code.
   20261 	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove
   20262 	macros, no longer needed
   20263 
   20264 	* acinclude.m4 (GMP_ASM_RODATA): Remove temporary files.
   20265 
   20266 	* configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication
   20267 	through AC_REQUIRE.
   20268 
   20269 2002-06-23  Kevin Ryde  <kevin (a] swox.se>
   20270 
   20271 	* tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just
   20272 	that they're non-zero.
   20273 
   20274 	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output
   20275 	exactly, rather than parsing it with GMP_GCC_VERSION_GE.
   20276 	(GMP_ASM_UNDERSCORE): Use GLOBL_ATTR.
   20277 
   20278 	* mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm:
   20279 	Renamed from udiv_qrnnd.asm, for consistency with other udiv's.
   20280 	* mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise.
   20281 	* configure.in (hppa*-*-*): Update extra_functions.
   20282 	(NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from
   20283 	nails-neutral list, no longer needed.
   20284 
   20285 	* gmp-h.in (__DECC): Add notes on testing this for ANSI-ness.
   20286 	(__GMP_EXTERN_INLINE): Add static __inline for DEC C.
   20287 	(mpz_mod_ui): Move up to main section, it's still documented.
   20288 
   20289 2002-06-22  Kevin Ryde  <kevin (a] swox.se>
   20290 
   20291 	* mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c,
   20292 	mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups.
   20293 	* gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro.
   20294 
   20295 	* mpn/generic/mod_34lsub1.c: Nailify.
   20296 	* tests/devel/try.c (CNST_34LSUB1): Nailify.
   20297 	* gmp-impl.h (ADDC_LIMB): New macro.
   20298 
   20299 	* gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default
   20300 	base=10 and ndigits=0.
   20301 	(mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add
   20302 	versions accepting "const char *".
   20303 	* mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and
   20304 	uncommenting set_str and operator=.
   20305 	* gmp.texi (C++ Interface Integers, C++ Interface Rationals)
   20306 	(C++ Interface Floats): Update.
   20307 
   20308 	* gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions.
   20309 	(const, signed): Move to near top of file, fixes --enable-alloca=debug
   20310 	on K&R.
   20311 
   20312 	* gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c.
   20313 	* dumbmp.c (mpz_init_set_ui): New function.
   20314 	* Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c.
   20315 	* gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table
   20316 	(for the benefit of tests/mpz/t-fib_ui.c).
   20317 	* mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code.
   20318 
   20319 	* Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES,
   20320 	use += more.
   20321 
   20322 	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES):
   20323 	Don't let "unknown" get into the cache variables.
   20324 	(GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix.
   20325 	(GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs.
   20326 	(GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct
   20327 	result if CPP_FOR_BUILD overrides the cache variable.
   20328 	(GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from
   20329 	GMP_PROG_CC_FOR_BUILD.  Allow for "conftest" default compiler output.
   20330 	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this,
   20331 	separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD.
   20332 
   20333 	* configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ...
   20334 	* Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange
   20335 	MPN_OBJECTS to be common between libgmp and libmp.
   20336 
   20337 2002-06-20  Torbjorn Granlund  <tege (a] swox.com>
   20338 
   20339 	* mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if
   20340 	basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times
   20341 	the corresponding *_THRESHOLD.
   20342 
   20343 2002-06-20  Kevin Ryde  <kevin (a] swox.se>
   20344 
   20345 	* mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE.
   20346 	Reported by Paul Zimmermann.
   20347 
   20348 	* configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define
   20349 	to 1", for clarity as per autoconf.
   20350 	* acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates.
   20351 
   20352 2002-06-20  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   20353 
   20354 	* gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and
   20355 	mpq_class::get_den return mpz_class& as per the documentation.
   20356 	Reported by Roberto Bagnara.
   20357 
   20358 2002-06-18  Kevin Ryde  <kevin (a] swox.se>
   20359 
   20360 	* tests/rand/t-lc2exp.c: New file.
   20361 	* tests/rand/Makefile.am: Add it, and use tests/libtests.la.
   20362 
   20363 	* randraw.c (lc): Pad seed==0 case with zero limbs, return same
   20364 	(m2exp+1)/2 bits as normal, right shift "c" result as normal.
   20365 
   20366 	* configure.in: Don't bother with line numbers in some diagnostics.
   20367 	(*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity.
   20368 
   20369 	* tests/mpz/Makefile.am, tests/mpq/Makefile.am,
   20370 	tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program
   20371 	temporaries, to get t-scanf.tmp and reduce future maintenance.
   20372 
   20373 2002-06-16  Torbjorn Granlund  <tege (a] swox.com>
   20374 
   20375 	* mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in
   20376 	new `tmp' parameter.  Trim allocation needs by reusing input parameter.
   20377 
   20378 2002-06-15  Torbjorn Granlund  <tege (a] swox.com>
   20379 
   20380 	* mpn/sparc32/v9/udiv.asm: New file.
   20381 
   20382 2002-06-15  Kevin Ryde  <kevin (a] swox.se>
   20383 
   20384 	* acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw
   20385 	gcc 3.1 version number.  Reported by Jim Fougeron.
   20386 
   20387 	* configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make
   20388 	AC_LIBTOOL_WIN32_DLL work with autoconf 2.53.
   20389 
   20390 	* acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value,
   20391 	not an expression, for the benefit of the gen-bases invocation.
   20392 
   20393 	* config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess.
   20394 
   20395 2002-06-15  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   20396 
   20397 	* mpfr/set_q.c: Allow for 1 bit numerator or denominator.
   20398 
   20399 2002-06-14  Kevin Ryde  <kevin (a] swox.se>
   20400 
   20401 	* configure.in (AC_C_BIGENDIAN): Use new style action parameters.
   20402 
   20403 	* randlc2x.c: Allow for a<0, allow for c>=2^m2exp.
   20404 	* randraw.c (lc): Allow for a==0.
   20405 
   20406 	* mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm.  Don't know if float
   20407 	is the best way for v7, but it's what configure has chosen since gmp 3.
   20408 	* configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all,
   20409 	in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than
   20410 	udiv_fp previously used for v9 chips.
   20411 
   20412 	* gen-bases.c: New file, derived from mpn/mp_bases.c.
   20413 	* dumbmp.c: New file, mostly by Torbjorn, some by me.
   20414 	* configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD,
   20415 	GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD,
   20416 	GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros.
   20417 	(GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD.
   20418 	* Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c.
   20419 	* gmp-impl.h: Use mp_bases.h.
   20420 	* mpn/mp_bases.c: Remove file.
   20421 	* mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES.
   20422 
   20423 	* tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to
   20424 	double, fixes gcc 3.1 with -O4.  Reported by Michael Lee.
   20425 	* configure.in (AC_C_VOLATILE): New macro.
   20426 
   20427 	* tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end.
   20428 	Don't mix varargs and fixed args functions, not good on x86_64.
   20429 	Reported by Marcus Meissner.
   20430 
   20431 	* Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in
   20432 
   20433 	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.53.
   20434 	* */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure:
   20435 	Update to automake 1.6.1.
   20436 	* configfsf.guess, configfsf.sub: Update to 2002-05-29.
   20437 
   20438 2002-06-12  Kevin Ryde  <kevin (a] swox.se>
   20439 
   20440 	* acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version.
   20441 	(GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf.
   20442 	(GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe.
   20443 
   20444 2002-06-09  Torbjorn Granlund  <tege (a] swox.com>
   20445 
   20446 	* randraw.c (lc): Remove broken ASSERT_ALWAYS.
   20447 
   20448 	* mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD
   20449 	values.
   20450 	* mpn/x86/p6/mmx/gmp-mparam.h: New file.
   20451 
   20452 2002-06-09  Kevin Ryde  <kevin (a] swox.se>
   20453 
   20454 	* mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings.
   20455 
   20456 	* acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template.
   20457 
   20458 	* tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb,
   20459 	refmpn_big_base): New functions.
   20460 	* tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted
   20461 	unless it's being used.
   20462 
   20463 	* gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs.
   20464 	(Known Build Problems): Notes on MacOS and GCC.
   20465 	(Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong.
   20466 	(Low-level Functions): mpn_get_str accepts base==256.
   20467 	(Formatted Output Functions): Note output is not atomic.
   20468 	(Internals): Note mp_size_t for limb counts.
   20469 
   20470 	* mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove
   20471 	these types from mp.h, not needed.
   20472 
   20473 	* mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the
   20474 	parameter order to make sparc gcc 2.95.2 happy.
   20475 
   20476 	* doc/configuration: Notes on bootstrapping.
   20477 
   20478 2002-06-08  Kevin Ryde  <kevin (a] swox.se>
   20479 
   20480 	* mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is
   20481 	not affected by mpfr_set_machine_rnd_mode.
   20482 
   20483 	* mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32.
   20484 
   20485 	* configure.in (alphev56): Fix to use ev5 path.
   20486 
   20487 2002-06-06  Kevin Ryde  <kevin (a] swox.se>
   20488 
   20489 	* gmp-h.in: Use __gmp_const not const, in a number of places.
   20490 
   20491 	* configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and
   20492 	v8, for consistency with v9 choices.
   20493 	(sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64.
   20494 	(x86): Move MMX $path munging to before printout.
   20495 	(CCAS): Move upward to support this.
   20496 
   20497 	* gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes,
   20498 	add a version for arbitrary limb size, use GMP_NUMB_BITS.
   20499 	(modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS.
   20500 
   20501 	* gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros.
   20502 	(mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the
   20503 	fetch or mpn call likely, unconditionally calculate the alternative so
   20504 	as to avoid an "else" clause.
   20505 	* gmp-impl.h (LIKELY, UNLIKELY): Aliases.
   20506 
   20507 	* configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for
   20508 	MPFR_CONFIGS so it detects fesetround, and let it go through to
   20509 	$MPFR_LIBS.
   20510 	* mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND.
   20511 
   20512 	* tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer
   20513 	setups are bogus and have been seen failing on hppa.
   20514 
   20515 	* tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c:
   20516 	Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c.
   20517 
   20518 2002-06-05  Torbjorn Granlund  <tege (a] swox.com>
   20519 
   20520 	* tests/mpz/t-powm_ui.c Print proper routine name in error message.
   20521 
   20522 2002-06-03  Kevin Ryde  <kevin (a] swox.se>
   20523 
   20524 	* tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support.
   20525 	(FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor.
   20526 	(freq_measure): Use for mftb measuring too.
   20527 	* tune/powerpc.asm, tune/powerpc64.asm: New files.
   20528 	* configure.in, tune/Makefile.am: Add them.
   20529 
   20530 	* gmp-impl.h (popc_limb): Add versions for Cray and fallback for
   20531 	arbitrary limb size.
   20532 
   20533 	* mpn/sparc32/sparc-defs.m4: New file.
   20534 	* configure.in (sparc*-*-*): Use it.
   20535 	* acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro.
   20536 	* configure.in (sparc64): Use it.  Also, use -Wc,-m64 for linking.
   20537 	* mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm,
   20538 	mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm,
   20539 	mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm,
   20540 	mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm,
   20541 	mpn/sparc64/submul_1.asm: Use REGISTER for .register.
   20542 
   20543 2002-06-01  Kevin Ryde  <kevin (a] swox.se>
   20544 
   20545 	* mpz/powm_ui.c: Fix for result range in certain circumstances.
   20546 
   20547 	* mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1.
   20548 	Anomaly pointed out by Alexander Kruppa.
   20549 
   20550 2002-05-31  Torbjorn Granlund  <tege (a] swox.com>
   20551 
   20552 	* mpz/export.c: Cast pointer via `unsigned long' when checking
   20553 	alignment to avoid compiler warnings.
   20554 
   20555 2002-05-29  Kevin Ryde  <kevin (a] swox.se>
   20556 
   20557 	* gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary
   20558 	limb size.
   20559 	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define.
   20560 
   20561 2002-05-27  Torbjorn Granlund  <tege (a] swox.com>
   20562 
   20563 	* mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning
   20564 	when possible.  Add code for mpn_addmul_5 and mpn_addmul_6.
   20565 
   20566 2002-05-25  Kevin Ryde  <kevin (a] swox.se>
   20567 
   20568 	* tune/tuneup.c: Misc nailifications, and disable preinv thresholds
   20569 	with nails.
   20570 	* tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and
   20571 	mpn_divrem_2.
   20572 	* mpz/powm.c (redc): Nailify q.
   20573 
   20574 	* tests/mpn/t-scan.c: Reduce the amount of testing, to go faster.
   20575 
   20576 2002-05-23  Torbjorn Granlund  <tege (a] swox.com>
   20577 
   20578 	* Version 4.1 released.
   20579 
   20580 	* mpn/alpha/ev6/nails/gmp-mparam.h: New file.
   20581 
   20582 	* tests/devel/add_n.c (refmpn_add_n): Nailify.
   20583 	* tests/devel/sub_n.c (refmpn_sub_n): Nailify.
   20584 	* tests/devel/addmul_1.c (refmpn_addmul_1): Nailify.
   20585 	* tests/devel/submul_1.c (refmpn_submul_1): Nailify.
   20586 
   20587 	* mpn/alpha/ev6/nails/add_n.asm: New file.
   20588 	* mpn/alpha/ev6/nails/sub_n.asm: New file.
   20589 	* mpn/alpha/ev6/nails/mul_1.asm: New file.
   20590 	* mpn/alpha/ev6/nails/submul_1.asm: New file.
   20591 
   20592 2002-05-22  Torbjorn Granlund  <tege (a] swox.com>
   20593 
   20594 	* mpn/alpha/ev6/nails/addmul_1.asm: New file.
   20595 
   20596 	* mpz/inp_str.c (mpz_inp_str_nowhite): Nailify.
   20597 
   20598 	* mpn/generic/mul_basecase.c: Update pointers before conditional
   20599 	MAX_LEFT break statements.
   20600 
   20601 2002-05-21  Torbjorn Granlund  <tege (a] swox.com>
   20602 
   20603 	* tests/mpz/t-gcd.c: Test mpz_gcd_ui.
   20604 
   20605 	* mpz/lcm_ui.c: Nailify.
   20606 
   20607 	* mpz/gcd_ui.c: Nailify.  Make it work as documented, allowing
   20608 	NULL to be passed for result parameter.  Fix gcd(0,0) case.
   20609 
   20610 	* mpz/set_str.c: Nailify.
   20611 
   20612 	* randlc2x.c (gmp_randinit_lc_2exp): Nailify.
   20613 
   20614 	From Jakub Jelinek:
   20615 	* longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]:
   20616 	Make it actually work.
   20617 
   20618 2002-05-18  Torbjorn Granlund  <tege (a] swox.com>
   20619 
   20620 	* mpf/ui_div.c: Shut up compiler warning.
   20621 
   20622 	* mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and
   20623 	mpn_addmul_4, as available.
   20624 
   20625 	* mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls.
   20626 	* mpn/alpha/ev6/nails/addmul_3.asm: Likewise
   20627 	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
   20628 
   20629 	* configure.in (*-cray-unicos*): Back again to -hscalar0.
   20630 	(gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3,
   20631 	and addmul_4.
   20632 	* acconfig.h: Add #undefs for new optional mpn functions.
   20633 
   20634 2002-05-18  Kevin Ryde  <kevin (a] swox.se>
   20635 
   20636 	* gmp.texi (Integer Import and Export): Mention Cray unfilled words.
   20637 
   20638 	* mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of
   20639 	__gmp_extract_double.  Reported by Henrik Johansson.
   20640 
   20641 2002-05-17  Torbjorn Granlund  <tege (a] swox.com>
   20642 
   20643 	* mpn/alpha/ev6/nails/addmul_2.asm: New file.
   20644 	* mpn/alpha/ev6/nails/addmul_3.asm: New file.
   20645 	* mpn/alpha/ev6/nails/addmul_4.asm: New file.
   20646 
   20647 	* mpn/generic/dump.c: Rewrite and nailify.
   20648 
   20649 2002-05-16  Kevin Ryde  <kevin (a] swox.se>
   20650 
   20651 	* mpfr/Makefile.am (EXTRA_DIST): Add BUGS file.
   20652 
   20653 2002-05-15  Torbjorn Granlund  <tege (a] swox.com>
   20654 
   20655 	* configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd
   20656 	as workaround for compiler bug.
   20657 	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
   20658 
   20659 2002-05-14  Torbjorn Granlund  <tege (a] swox.com>
   20660 
   20661 	* configure.in (*-cray-unicos*): Pass -hscalar0 to work around
   20662 	compiler bug for mpz/import.c.
   20663 
   20664 2002-05-11  Torbjorn Granlund  <tege (a] swox.com>
   20665 
   20666 	* mpz/import.c: Cast pointer via `unsigned long' when checking
   20667 	alignment to avoid compiler warnings.
   20668 
   20669 	* mpn/generic/rootrem.c: Adjust allocation of qp temporary area.
   20670 
   20671 2002-05-09  Kevin Ryde  <kevin (a] swox.se>
   20672 
   20673 	* mpz/import.c: Corrections to size store, special case tests, and
   20674 	general case ACCUMULATE.
   20675 	* tests/mpz/t-import.c, tests/mpz/t-export.c: More test data.
   20676 
   20677 2002-05-09  Torbjorn Granlund  <tege (a] swox.com>
   20678 
   20679 	* mpn/generic/rootrem.c: Use temp space for root, copy value in place
   20680 	before returning.
   20681 	* mpz/root.c: Don't allocate extra limb for root value.
   20682 	* mpz/perfpow.c: Undo last change.
   20683 
   20684 2002-05-08  Torbjorn Granlund  <tege (a] swox.com>
   20685 
   20686 	* gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make
   20687 	it not clash with caller.
   20688 
   20689 	* mpn/generic/rootrem.c: New file.
   20690 	* configure.in (gmp_mpn_functions): Add rootrem and pow_1.
   20691 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and
   20692 	pow_1.c
   20693 	* gmp-impl.h (mpn_rootrem): Add declaration.
   20694 	* mpz/perfpow.c: Amend allocations for mpn_rootrem requirements.
   20695 	* mpz/root.c: Rewrite to use mpn_rootrem.
   20696 
   20697 2002-05-08  Kevin Ryde  <kevin (a] swox.se>
   20698 
   20699 	* gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values.
   20700 
   20701 	* mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction
   20702 	part, making the code match the documentation.
   20703 
   20704 	* gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub.
   20705 
   20706 2002-05-07  Kevin Ryde  <kevin (a] swox.se>
   20707 
   20708 	* mpn/powerpc32/README: New file.
   20709 
   20710 	* mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t.
   20711 
   20712 	* tune/README: Misc updates including sparc32/v9 smoothness, low res
   20713 	timebase, and mpn_add_n operand overlaps.
   20714 	* tune/many.pl: Add udiv.asm support.
   20715 
   20716 	* gmp.texi (Build Options): A couple of --build better as --host.
   20717 	(Known Build Problems, Notes for Package Builds): Add DESTDIR problem.
   20718 	(Compatibility with older versions): Compatible with 4.x versions.
   20719 	(Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose.
   20720 	(Integer Import and Export): New section.
   20721 	(Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1
   20722 	for operand of 0.
   20723 	(Language Bindings): Add GNU Pascal.
   20724 	(Low-level Functions): Add GMP_NUMB_MAX.
   20725 
   20726 	* tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c:
   20727 	New tests.
   20728 	* tests/mpz/Makefile.am: Add them.
   20729 
   20730 	* mpz/import.c, mpz/export.c: New files.
   20731 	* Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
   20732 
   20733 	* gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h.
   20734 	* gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned.
   20735 	(CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE,
   20736 	ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros.
   20737 	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN.
   20738 
   20739 2002-05-07  Torbjorn Granlund  <tege (a] swox.com>
   20740 
   20741 	* mpz/aors_ui.h: Nailify.
   20742 
   20743 	* tests/mpz/t-addsub.c: New file.
   20744 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub.
   20745 
   20746 	* mpz/ui_sub.c: New file.
   20747 	* mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c.
   20748 	* Makefile.am (MPZ_OBJECTS): Ditto.
   20749 	* gmp-h.in (mpz_ui_sub): Add declaration.
   20750 
   20751 	* gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc
   20752 	return value.
   20753 
   20754 	* gmp-h.in (mpn_pow_1): Add declaration.
   20755 
   20756 	* mpn/generic/pow_1.c: Handle exp <= 1.  Reverse rp/tp parity scheme
   20757 	for bn == 1 arm.
   20758 
   20759 	* Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT.
   20760 
   20761 2002-05-06  Torbjorn Granlund  <tege (a] swox.com>
   20762 
   20763 	* demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base.
   20764 
   20765 	* randraw.c (lc): Remove an unused variable.
   20766 
   20767 	* mpn/generic/get_str.c: Clarify an algorithm description.
   20768 
   20769 	* tests/mpf/t-trunc.c: Nailify.
   20770 	* tests/mpf/t-set_si.c: Disable for nails.
   20771 
   20772 	* mpf/cmp_si.c: Nailify.
   20773 	* mpf/cmp_ui.c: Nailify.
   20774 	* mpf/div.c: Nailify.
   20775 	* mpf/div_2exp.c: Nailify.
   20776 	* mpf/div_ui.c: Nailify.
   20777 	* mpf/eq.c: Nailify.
   20778 	* mpf/get_d.c: Nailify.
   20779 	* mpf/get_d_2exp.c: Nailify.
   20780 	* mpf/get_si.c: Nailify.
   20781 	* mpf/get_str.c: Nailify.
   20782 	* mpf/get_ui.c: Nailify.
   20783 	* mpf/mul_2exp.c: Nailify.
   20784 	* mpf/random2.c: Nailify.
   20785 	* mpf/set_q.c: Nailify.
   20786 	* mpf/set_si.c: Nailify.
   20787 	* mpf/set_str.c: Nailify.
   20788 	* mpf/set_ui.c: Nailify.
   20789 	* mpf/sub.c: Nailify.
   20790 	* mpf/ui_div.c: Nailify.
   20791 	* mpf/ui_sub.c: Nailify.
   20792 	* mpf/urandomb.c: Nailify.
   20793 
   20794 	* gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify.
   20795 
   20796 	* mpz/get_si.c: Misc variable name changes.
   20797 
   20798 	* mpf/fits_u.h: Rewrite - nailify.
   20799 	* mpf/fits_s.h: Likewise.
   20800 
   20801 	* mpz/mod.c: Disambiguate if-statement with extra {}.
   20802 
   20803 	* mpf/int_p.c: Fix type of size variables.
   20804 	* mpf/get_ui: Likewise.
   20805 	* mpf/get_si: Likewise.
   20806 	* mpq/equal.c: Likewise.
   20807 	* mpq/get_d.c: Likewise.
   20808 	* mpz/cmp_d.c: Likewise.
   20809 	* mpz/cmpabs_d.c: Likewise.
   20810 	* mpz/divis_2exp.c: Likewise.
   20811 	* mpz/kronuz.c: Likewise.
   20812 	* mpz/kronzu.c: Likewise.
   20813 	* mpz/kronzs.c: Likewise.
   20814 	* mpz/kronsz.c: Likewise.
   20815 	* mpz/scan0.c: Likewise.
   20816 	* mpz/scan1.c: Likewise.
   20817 	* mpz/tstbit.c: Likewise.
   20818 	* mpz/cong_2exp.c: Likewise.
   20819 	* mpz/divis.c: Likewise.
   20820 
   20821 2002-05-04  Torbjorn Granlund  <tege (a] swox.com>
   20822 
   20823 	* mpn/generic/gcd.c: Additional nailify changes.
   20824 
   20825 2002-05-04  Kevin Ryde  <kevin (a] swox.se>
   20826 
   20827 	* gmp-h.in (__GNU_MP_VERSION): Set to 4.1.
   20828 	* Makefile.am (-version-info): Bump for new release.
   20829 
   20830 2002-04-30  Torbjorn Granlund  <tege (a] swox.com>
   20831 
   20832 	* mpn/generic/divrem_1.c: Additional nailify changes.
   20833 	* mpn/generic/mod_1.c: Likewise.
   20834 
   20835 	* tests/mpq/t-get_d.c: Print floats with all 16 digits.
   20836 
   20837 	* mpq/get_d.c: Nailify.
   20838 
   20839 	* tests/mpq/t-set_f.c: Disable for nails.
   20840 
   20841 	* mpz/get_d.c: Nailify.
   20842 
   20843 	* gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify.
   20844 
   20845 	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it.
   20846 
   20847 	* extract-dbl.c: Nailify.
   20848 
   20849 2002-04-29  Torbjorn Granlund  <tege (a] swox.com>
   20850 
   20851 	* mpq/md_2exp.c (mord_2exp): Nailify.
   20852 
   20853 	* mpq/cmp_ui.c: Nailify.
   20854 
   20855 	* mpq/cmp.c (mpq_cmp): Nailify.
   20856 
   20857 	* mpn/generic/gcd.c: Nailify.  GNUify code layout.
   20858 
   20859 	* mpn/generic/gcdext.c: Nailify.  Misc changes.
   20860 
   20861 	* tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions.
   20862 	* tests/mpz/t-gcd.c: Likewise.
   20863 
   20864 	* mpz/gcd.c: Nailify.
   20865 
   20866 	* mpn/generic/random.c: Nailify.
   20867 
   20868 	* gmp-impl.h (modlimb_invert): Nailify.
   20869 
   20870 2002-04-27  Torbjorn Granlund  <tege (a] swox.com>
   20871 
   20872 	* mpn/generic/gcdext.c (div2): Remove qh parameter.
   20873 	(mpn_gcdext): Streamline double-limb code.
   20874 	Move GCDEXT_THRESHOLD check to after initial division.
   20875 
   20876 2002-04-27  Kevin Ryde  <kevin (a] swox.se>
   20877 
   20878 	* gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd
   20879 	GMP_NUMB_BITS.
   20880 
   20881 	* tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix
   20882 	SGI_CYCLECNTR_SIZE handling.
   20883 
   20884 	* demos/expr/exprfr.c: Add nan and inf constants.
   20885 	* demos/expr/t-expr.c: Exercise them.
   20886 
   20887 2002-04-26  Torbjorn Granlund  <tege (a] swox.com>
   20888 
   20889 	* mpz/cmp_ui.c: Fix overflow conditions for nails.
   20890 
   20891 	* gmp-h.in (mpz_get_ui): Fix typo from last change.
   20892 
   20893 	* mpz/n_pow_ui.c: Adjust allocation for nails.
   20894 	(GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX.
   20895 	Fix umul_ppmm invocation for for nails.
   20896 
   20897 2002-04-24  Torbjorn Granlund  <tege (a] swox.com>
   20898 
   20899 	* mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of
   20900 	mpn_divmod.
   20901 
   20902 2002-04-24  Kevin Ryde  <kevin (a] swox.se>
   20903 
   20904 	* configure.in (*-*-cygwin*): Give a sensible default command line
   20905 	limit, to avoid blowups reported by Jim Fougeron on windows 9x.
   20906 	(--enable-nails): Make the default 2, since mp_bases has data for that.
   20907 
   20908 	* mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to
   20909 	avoid a mis-conversion on alpha gcc 3.0.2.
   20910 	(_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa.
   20911 
   20912 2002-04-23  Torbjorn Granlund  <tege (a] swox.com>
   20913 
   20914 	* mpz/dive_ui.c: Fix typo.
   20915 
   20916 	* mpz/fits_s.h: Rewrite.
   20917 
   20918 	* mpz/jacobi.c: Nailify.
   20919 	* mpz/kronuz.c: Additional nailify changes.
   20920 	* mpz/kronsz.c: Likewise.
   20921 
   20922 2002-04-23  Kevin Ryde  <kevin (a] swox.se>
   20923 
   20924 	* demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr.
   20925 
   20926 	* mpz/divis_ui.c, mpz/cong_ui.c: Nailify.
   20927 	* mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify.
   20928 	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c,
   20929 	mpn/generic/divrem_2.c: Nailify ASSERTs.
   20930 	* mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify.
   20931 	* mpz/inp_raw.c, mpz/out_raw.c: Nailify.
   20932 	* mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify.
   20933 	* mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify.
   20934 	* gmp-impl.h (NEG_MOD): Nailify.
   20935 
   20936 	* gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data.
   20937 
   20938 	* mpfr/get_d.c: Patch from Paul to avoid problem with constant folding
   20939 	in gcc on OSF.
   20940 
   20941 	* mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro.
   20942 
   20943 2002-04-22  Torbjorn Granlund  <tege (a] swox.com>
   20944 
   20945 	* demos/pexpr.c: Handle "binomial" operator.
   20946 
   20947 	* mpz/cmp_ui.c: Move assignments of `up' out of conditionals.
   20948 
   20949 	* mpn/generic/gcdext.c: Fix fencepost error in STAT code.
   20950 
   20951 	* gmp-impl.h (mpn_com_n): Nailify.
   20952 
   20953 	* tests/mpz/t-cdiv_ui.c: New file.
   20954 	* tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui.
   20955 	* mpz/cdiv_qr_ui.c: Nailify.
   20956 	* mpz/cdiv_q_ui.c: Nailify.
   20957 	* mpz/cdiv_r_ui.c: Nailify.
   20958 	* mpz/cdiv_ui.c: Nailify.
   20959 
   20960 	* tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an
   20961 	unsigned type.
   20962 	* tests/misc/t-scanf.c: Likewise.
   20963 
   20964 	* mpz/mul_i.h: Rework nails code to handle parameter overlap.
   20965 
   20966 	* tests/mpz/t-set_f.c: Disable for nails.
   20967 
   20968 2002-04-21  Torbjorn Granlund  <tege (a] swox.com>
   20969 
   20970 	* mpz/set_si.c: Add cast to support LONG_LONG_LIMB.
   20971 	* mpz/iset_si.c: Likewise.
   20972 
   20973 	* mpz/bin_ui.c: Nailify.
   20974 	* mpz/bin_uiui.c: Nailify.
   20975 
   20976 	* mpz/cmpabs_ui.c: Nailify.
   20977 
   20978 	* tests/mpz/t-aorsmul.c: Nailify.
   20979 	* mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better.
   20980 
   20981 2002-04-20  Torbjorn Granlund  <tege (a] swox.com>
   20982 
   20983 	* tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui.
   20984 	* tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui.
   20985 
   20986 	* mpz/tdiv_ui.c: Rewrite nails code.
   20987 	* mpz/fdiv_ui.c: Nailify.
   20988 
   20989 	* tests/mpz/t-tdiv_ui.c: Check returned remainders.
   20990 	* tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes.
   20991 
   20992 	* mpz/tdiv_q_ui.c: Remove spurious TMP_* calls.
   20993 
   20994 	* mpz/fdiv_qr_ui.c: Nailify.
   20995 	* mpz/fdiv_q_ui.c: Nailify.
   20996 	* mpz/fdiv_r_ui.c: Nailify.
   20997 
   20998 	* mpz/get_si.c: Misc nailify changes to shut up compiler warnings.
   20999 
   21000 	* mpz/ui_pow_ui.c: Fix typo in last change.
   21001 
   21002 2002-04-20  Kevin Ryde  <kevin (a] swox.se>
   21003 
   21004 	* tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types.
   21005 
   21006 	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm
   21007 	(mpn_preinv_divrem_1): New entrypoint.
   21008 	(mpn_divrem_1): Avoid a branch when testing high<divisor.
   21009 	* mpn/asm-defs.m4: Add define_mpn(preinv_divrem_1).
   21010 	* configure.in: Allow divrem_1.asm to provide mpn_preinv_divrem_1.
   21011 
   21012 	* gmp-impl.h [nails]: Add #undefs of MUL_KARATSUBA_THRESHOLD etc, to
   21013 	override CPU gmp-mparam.h.  Remove JACOBI_BASE_METHOD override since
   21014 	it's nails-neutral.
   21015 
   21016 	* tests/mpn/t-mp_bases.c: New file.
   21017 	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
   21018 	* tests/t-constants.c: Move MP_BASES constants checks to it.
   21019 
   21020 	* mpn/mp_bases.c: Fix big_base_inverted values for nails.
   21021 	* gmp-impl.h (MP_BASES_BIG_BASE_INVERTED_10,
   21022 	MP_BASES_NORMALIZATION_STEPS_10): Fix nails values.
   21023 	(MP_BASES_*): Remove GMP_NUMB_BITS == 30 data.
   21024 
   21025 	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm: Add
   21026 	NAILS_SUPPORT indicators.
   21027 
   21028 	* configure.in: Grep for NAILS_SUPPORT in cpu-specific code, and look
   21029 	in "nails" subdirectories, print path used.
   21030 	* mpn/asm-defs.m4 (NAILS_SUPPORT): New macro.
   21031 
   21032 	* mpfr/mpfr-test.h: Include config.h, for the benefit of test programs
   21033 	not using gmp-impl.h.
   21034 
   21035 2002-04-19  Torbjorn Granlund  <tege (a] swox.com>
   21036 
   21037 	* tests/mpz/t-scan.c: Nailify.
   21038 
   21039 	* mpz/tdiv_qr_ui.c: Nailify.
   21040 	* mpz/tdiv_q_ui.c: Nailify.
   21041 	* mpz/tdiv_r_ui.c: Nailify.
   21042 	* mpz/tdiv_ui.c: Nailify.
   21043 
   21044 	* mpz/cmp_ui.c: Nailify.
   21045 
   21046 	* mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings.
   21047 
   21048 	* mpz/scan0.c: Nailify.
   21049 	* mpz/scan1.c: Nailify.
   21050 
   21051 	* tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify.
   21052 
   21053 2002-04-18  Torbjorn Granlund  <tege (a] swox.com>
   21054 
   21055 	* mpz/aorsmul_i.c: Nailify.
   21056 
   21057 	* mpz/cmp_si.c: Nailify (botched).
   21058 
   21059 	* mpz/ui_pow_ui.c: Nailify.
   21060 
   21061 	* gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify.
   21062 
   21063 	* mpz/fits_s.h: Nailify.
   21064 
   21065 	* tests/mpz/bit.c (check_tstbit): Nailify.
   21066 
   21067 	From Paul Zimmermann:
   21068 	* mpn/generic/sqrtrem.c: Nailify.
   21069 
   21070 	* mpz/n_pow_ui.c: Nailify.
   21071 
   21072 	* mpz/cfdiv_r_2exp.c: Nailify.
   21073 
   21074 	* randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid
   21075 	extra MPN_COPY.
   21076 
   21077 2002-04-17  Torbjorn Granlund  <tege (a] swox.com>
   21078 
   21079 	* mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition.
   21080 
   21081 	* mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4.
   21082 
   21083 	* gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast
   21084 	division.
   21085 
   21086 	* mpn/generic/random2.c: Nailify.
   21087 
   21088 	* mpz/fac_ui.c: Nailify.
   21089 
   21090 	* mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings.
   21091 
   21092 	* mpn/generic/sqrtrem.c: Adopt to GNU coding standards.
   21093 	(mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem.
   21094 	Partial nailification.
   21095 
   21096 	* configure.in: As a temporary hack, clear extra_functions for nails
   21097 	builds.
   21098 
   21099 	* gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc
   21100 	warnings.
   21101 
   21102 2002-04-17  Kevin Ryde  <kevin (a] swox.se>
   21103 
   21104 	* texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2.
   21105 	* gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out
   21106 	in one run).
   21107 
   21108 	* mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify.
   21109 
   21110 	* tests/mpn/t-scan.c: New file.
   21111 	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
   21112 
   21113 	* tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for
   21114 	bit index.
   21115 	(refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New
   21116 	functions.
   21117 
   21118 	* mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case.
   21119 
   21120 2002-04-17  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   21121 
   21122 	* gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove
   21123 	mpfr_class::get_str2, use mp_rnd_t for rounding modes, use
   21124 	8*sizeof(double) for mpfr_t's holding doubles.
   21125 
   21126 2002-04-17  Torbjorn Granlund  <tege (a] swox.com>
   21127 
   21128 	* mpz/powm.c: Nailify.
   21129 	* mpz/powm_ui.c: Nailify.
   21130 
   21131 2002-04-16  Torbjorn Granlund  <tege (a] swox.com>
   21132 
   21133 	* mpz/hamdist.c: Nailify.
   21134 	* tests/misc.c (urandom): Nailify.
   21135 
   21136 	* mpz/get_si.c: Nailify.
   21137 	* gmp-h.in (mpz_get_ui): Nailify.  Streamline (and probably upset
   21138 	memory checkers).
   21139 
   21140 	* gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS
   21141 	being 28, 60, and 63.
   21142 	* mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63.
   21143 
   21144 	* mpz/iset_si.c: Nailify.
   21145 	* mpz/iset_ui.c: Nailify
   21146 
   21147 	* tests/mpz/convert.c (main): Print test number in error message.
   21148 
   21149 	* mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails
   21150 	field after bignum division.
   21151 
   21152 2002-04-16  Kevin Ryde  <kevin (a] swox.se>
   21153 
   21154 	* gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h.
   21155 
   21156 	* gmp.texi: Use @documentdescription and @copying, per texinfo 4.2.
   21157 	(Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite
   21158 	mpn_set_str description, add nails section.
   21159 	(C++ Interface General): Remove bool from types that mix with classes.
   21160 	(Language Bindings): Add STklos, GNU Smalltalk, Regina.
   21161 	(Binary to Radix, Radix to Binary): Describe new code.
   21162 	(Assembler Cache Handling): More notes, mostly by Torbjorn.
   21163 
   21164 	* macos/configure (%vars): Remove __GMP from substitutions, per change
   21165 	to main configure.
   21166 
   21167 	* mpn/generic/dive_1.c: Nailify.
   21168 	* mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out
   21169 	alternate implementation.
   21170 	* gmp-impl.h (SUBC_LIMB): New macro.
   21171 
   21172 	* tests/devel/try.c (validate_divexact_1): Correction to compare.
   21173 	(udiv_qrnnd): New testing.
   21174 	(SHIFT_LIMIT): Nailify.
   21175 	(-b): New option, remove spurious "H" from getopt string.
   21176 
   21177 	* mpz/clrbit.c: Nailify.
   21178 	* tests/mpz/t-hamdist.c: Nailify.
   21179 	* gmp-impl.h (MPN_FIB2_SIZE): Nailify.
   21180 	(PP): Nailify conditionals.
   21181 	* tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify.
   21182 
   21183 	* configure.in, acinclude.m4: Establish GMP_NAIL_BITS and
   21184 	GMP_LIMB_BITS for gmp-h.in configure tests.
   21185 
   21186 	* mpfr/*, configure.in: Update to final mpfr 2.0.1.
   21187 	* mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff.
   21188 	* mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests.
   21189 
   21190 2002-04-15  Torbjorn Granlund  <tege (a] swox.com>
   21191 
   21192 	* mpn/generic/divrem_1.c (EXTRACT): Remove.
   21193 
   21194 	* tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string.
   21195 
   21196 	* mpz/rrandomb.c: Nailify.  Needs further work.
   21197 
   21198 	* mpn/generic/mod_1.c: Nailify.
   21199 
   21200 	* gmp-impl.h: Set various *_THRESHOLD values to be used for nails to
   21201 	avoid not yet qualified algorithms.
   21202 	(MPZ_CHECK_FORMAT): Check that nail part is zero.
   21203 
   21204 	* tests/mpz/t-mul.c (main): Test squaring even for huge operands.
   21205 	(base_mul): Nailify.
   21206 	(dump_abort): Accept argument for error string.  Print product
   21207 	difference.
   21208 
   21209 	* mpn/generic/set_str.c: Nailify.
   21210 
   21211 	* gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify.
   21212 
   21213 2002-04-14  Torbjorn Granlund  <tege (a] swox.com>
   21214 
   21215 	* randraw.c (lc): Return non-nonsense return value for seed=0 case.
   21216 	Check for m2exp being non-zero early; remove all other tests of m2exp.
   21217 	Remove redundant MPN_ZERO call.
   21218 	Let mpn_rshift put result in place to avoid extra MPN_COPY.
   21219 	Remove confusing comment before function `lc' describing BBS algorithm.
   21220 	Misc simplification and cleanups.
   21221 	Nailify.  Needs further work.
   21222 
   21223 	* mpz/set_si.c: Nailify.
   21224 	* mpz/set_ui.c: Nailify.
   21225 	* mpz/mul_i.h: Nailify.
   21226 
   21227 	* tests/mpz/t-mul_i.c: Actually test _ui routines.  Add some more test
   21228 	values.
   21229 
   21230 	* mpn/generic/mul_n.c: Finish nailifying toom3 code.
   21231 
   21232 2002-04-13  Kevin Ryde  <kevin (a] swox.se>
   21233 
   21234 	* mpfr/*: Update to another new mpfr 2.0.1.
   21235 	* configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am:
   21236 	Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build.
   21237 
   21238 	* mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a.
   21239 
   21240 2002-04-11  Kevin Ryde  <kevin (a] swox.se>
   21241 
   21242 	* mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine.
   21243 
   21244 	* mpfr/*, configure.in: Update to new mpfr 2.0.1.
   21245 
   21246 	* tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround):
   21247 	Fixes for nails.
   21248 
   21249 	* tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests.
   21250 	(MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only
   21251 	check these under USE_PREINV_DIVREM_1.
   21252 	* tests/t-modlinv.c: Nailify tests.
   21253 
   21254 2002-04-11  Gerardo Ballabio <gerardo.ballabio (a] unimib.it>
   21255 
   21256 	* gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only
   21257 	need <iosfwd> now.
   21258 
   21259 2002-04-11  Torbjorn Granlund  <tege (a] swox.com>
   21260 
   21261 	* mpn/generic/diveby3.c: Nailify.
   21262 	* gmp-impl.h (MODLIMB_INVERSE_3): Nailify.
   21263 
   21264 	* mpn/generic/mul_n.c: Nailify Toom3 code.
   21265 
   21266 2002-04-10  Kevin Ryde  <kevin (a] swox.se>
   21267 
   21268 	* gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to
   21269 	3, as needed by nails case.
   21270 
   21271 	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl
   21272 	assert, add rp,n and up,n asserts.
   21273 
   21274 	* mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h.
   21275 
   21276 2002-04-10  Torbjorn Granlund  <tege (a] swox.com>
   21277 
   21278 	* mpn/generic/divrem_1.c: Nailify.  Update mp_size_t variables to use
   21279 	`n' suffix instead of `size' suffix.
   21280 	* mpn/generic/divrem_2.c: Likewise.
   21281 	* mpn/generic/sb_divrem_mn.c: Nailify.
   21282 	* mpn/generic/tdiv_qr.c: Nailify.
   21283 	(SHL): Remove silly macro.
   21284 
   21285 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by
   21286 	mpn_incr_u call.  Handle nails in ws[n] increment.
   21287 	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise.
   21288 
   21289 	* gmp-h.in (GMP_NUMB_MASK): New #define.
   21290 	(__GMPN_AORS_1): Add version for nails.
   21291 
   21292 	* gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h.
   21293 	(mpn_incr_u): Don't assume `incr' is non-zero.
   21294 	(mpn_decr_u): Similarly.
   21295 
   21296 2002-04-09  Kevin Ryde  <kevin (a] swox.se>
   21297 
   21298 	* mpfr/*, configure.in: Update to mpfr 2.0.1.
   21299 
   21300 	* tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails.
   21301 	* tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function.
   21302 
   21303 	* mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert.
   21304 
   21305 	* mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
   21306 	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid
   21307 	ELF .size directive.  Reported by LaMont Jones.
   21308 
   21309 	* tests/mpz/t-set_si.c: Add nails support.
   21310 
   21311 2002-04-05  Torbjorn Granlund  <tege (a] swox.com>
   21312 
   21313 	* gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions.
   21314 	(mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB.
   21315 	Add GMP_NUMB_BITS == 30 version.
   21316 	(__gmp_doprnt, etc): Remove parameter names.
   21317 
   21318 	* mpn/generic/mul_n.c: Nailify Karatsuba code.
   21319 	* mpn/generic/get_str.c: Nailify.
   21320 	* mpn/generic/sqr_basecase.c: Nailify.
   21321 	* mpn/generic/lshift.c: Nailify.
   21322 	* mpn/generic/rshift.c: Likewise.
   21323 	* mpn/generic/add_n.c: Nailify.  Revamp non-nail code.
   21324 	* mpn/generic/sub_n.c: Likewise.
   21325 	* mpn/generic/mul_1.c: Likewise.
   21326 	* mpn/generic/addmul_1.c: Likewise.
   21327 	* mpn/generic/submul_1.c: Likewise.
   21328 
   21329 2002-04-02  Kevin Ryde  <kevin (a] swox.se>
   21330 
   21331 	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]:
   21332 	Corrections to constraints, and restrict to bigendian.
   21333 
   21334 2002-03-31  Kevin Ryde  <kevin (a] swox.se>
   21335 
   21336 	* tests/mpz/dive.c: Better diagnostics.
   21337 
   21338 	* tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests.
   21339 
   21340 	* tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest):
   21341 	New functions.
   21342 
   21343 	* tests/t-bswap.c: New file.
   21344 	* tests/Makefile.am (check_PROGRAMS): Add it.
   21345 
   21346 	* tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support.
   21347 
   21348 	* gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord,
   21349 	rename "n" to incr per generic versions, restrict to nails==0.
   21350 	(mpn_incr_u, mpn_decr_u): Add nails support.
   21351 	(GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros.
   21352 
   21353 	* tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New
   21354 	functions.
   21355 	* tests/trace.c: Handle NULL operands.
   21356 
   21357 	* tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary
   21358 	nail support.
   21359 
   21360 	* tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail,
   21361 	refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str,
   21362 	refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb):
   21363 	New functions.
   21364 
   21365 	* gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from
   21366 	ASSERT_MP_LIMB_T.
   21367 
   21368 	* mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put
   21369 	speeds after the copyright notice, so as to keep that clear.
   21370 
   21371 2002-03-29  Kevin Ryde  <kevin (a] swox.se>
   21372 
   21373 	* configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection,
   21374 	for 32-bit mode.
   21375 
   21376 2002-03-28  Torbjorn Granlund  <tege (a] swox.com>
   21377 
   21378 	* mpn: Fix spacing in many files.
   21379 
   21380 	* mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c.
   21381 	* mpn/generic/aors_n.c: Split into add_n.c and sub_n.c.
   21382 
   21383 	* mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb.  Fix a comment.
   21384 	* mpn/pa64/sub_n.asm: Likewise.
   21385 
   21386 	* mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb.
   21387 	* mpn/pa64/addmul_1.asm: Likewise.
   21388 	* mpn/pa64/submul_1.asm: Likewise.
   21389 
   21390 2002-03-28  Kevin Ryde  <kevin (a] swox.se>
   21391 
   21392 	* gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp,
   21393 	reported by epl (a] unimelb.edu.au.
   21394 	(References): Update Burnikel and Ziegler URL, reported by Keith
   21395 	Briggs.
   21396 
   21397 	* gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from
   21398 	AC_SUBSTs, since autoconf says leading "_" in makefile variables is
   21399 	not portable.
   21400 
   21401 	* demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary.
   21402 	* configure.in, demos/expr/expr-config-h.in: Configs for this.
   21403 
   21404 2002-03-27  Torbjorn Granlund  <tege (a] swox.com>
   21405 
   21406 	* mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32.
   21407 
   21408 	* configure.in (path_20w): Remove pa64w.
   21409 
   21410 	* mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to
   21411 	that on PA8500.
   21412 
   21413 2002-03-26  Torbjorn Granlund  <tege (a] swox.com>
   21414 
   21415 	* mpn/pa32: New name for mpn/hppa.
   21416 	* configure.in: Corresponding changes.
   21417 
   21418 	* mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W.
   21419 	* mpn/pa64/umul_ppmm.S: Remove.
   21420 
   21421 	* mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W.
   21422 	* mpn/pa64w/udiv_qrnnd.asm: Remove.
   21423 
   21424 2002-03-26  Kevin Ryde  <kevin (a] swox.se>
   21425 
   21426 	* mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf
   21427 	handling in "double", for the benefit of alpha.
   21428 
   21429 	* configure (hppa2.0w): Set path to "pa64w pa64".
   21430 
   21431 	* acinclude.m4, configure.in (GMP_C_INLINE): New macro.
   21432 	* acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling.
   21433 
   21434 2002-03-25  Torbjorn Granlund  <tege (a] swox.com>
   21435 
   21436 	* mpn/pa64w/add_n.s: Remove.
   21437 	* mpn/pa64w/sub_n.s: Remove.
   21438 	* mpn/pa64w/lshift.s: Remove.
   21439 	* mpn/pa64w/rshift.s: Remove.
   21440 	* mpn/pa64w/mul_1.S: Remove.
   21441 	* mpn/pa64w/addmul_1.S: Remove.
   21442 	* mpn/pa64w/submul_1.S: Remove.
   21443 	* mpn/pa64w/sqr_diagonal.asm: Remove.
   21444 
   21445 	* mpn/pa64/mul_1.asm: New file with twice faster code; generalized
   21446 	for both 2.0N and 2.0W.
   21447 	* mpn/pa64/submul_1.asm: Likewise.
   21448 	* mpn/pa64/mul_1.S: Remove.
   21449 	* mpn/pa64/submul_1.S: Remove.
   21450 
   21451 	* mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W.
   21452 
   21453 	* mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W.
   21454 	* mpn/pa64/sub_n.asm: Likewise.
   21455 	* mpn/pa64/lshift.asm: Likewise.
   21456 	* mpn/pa64/rshift.asm: Likewise.
   21457 	* mpn/pa64/add_n.s: Remove.
   21458 	* mpn/pa64/sub_n.s: Remove.
   21459 	* mpn/pa64/lshift.s: Remove.
   21460 	* mpn/pa64/rshift.s: Remove.
   21461 
   21462 2002-03-24  Kevin Ryde  <kevin (a] swox.se>
   21463 
   21464 	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros.
   21465 	* mpz/inp_raw.c, mpz/out_raw.c: Use them.
   21466 	* acconfig.h (HAVE_HOST_CPU): Add some powerpc types.
   21467 
   21468 	* mpn/powerpc32/750/com_n.asm: New file.
   21469 
   21470 	* mpfr/tests/tout_str.c: Disable random tests, since they fail on
   21471 	alphaev56-unknown-freebsd4.1 and do nothing by default.
   21472 
   21473 	* mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for
   21474 	the benefit of alpha.
   21475 	* mpfr/sqrt.c: Clear nan flag on -0.
   21476 
   21477 	* demos/factorize.c: Use mpn_random() instead of random(), to avoid
   21478 	portability problems.
   21479 
   21480 	* demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid
   21481 	warnings.
   21482 
   21483 	* demos/pexpr.c (setup_error_handler): Corrections to sigstack code.
   21484 
   21485 	* demos/calc/calc.y: Add some `;'s to make bison 1.34 happy.
   21486 
   21487 2002-03-23  Torbjorn Granlund  <tege (a] swox.com>
   21488 
   21489 	* mpn/pa64/addmul_1.asm: New file with twice faster code; generalized
   21490 	for both 2.0N and 2.0W.
   21491 
   21492 2002-03-22  Kevin Ryde  <kevin (a] swox.se>
   21493 
   21494 	* tune/time.c: Add SGI hardware counter measuring method, change some
   21495 	abort()s into ASSERT_FAIL()s.
   21496 
   21497 	* configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h.
   21498 	(AC_CHECK_FUNCS): Add syssgi.
   21499 
   21500 	* configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use
   21501 	-mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so
   21502 	denorms work.
   21503 
   21504 	* mpfr/isinteger.c: Fix a memory leak.
   21505 
   21506 2002-03-21  Torbjorn Granlund  <tege (a] swox.com>
   21507 
   21508 	* tune/speed.c (struct choice_t): Make `r' an mp_limb_t.
   21509 
   21510 2002-03-21  Kevin Ryde  <kevin (a] swox.se>
   21511 
   21512 	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an
   21513 	AH_VERBATIM and better explanation.
   21514 	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE
   21515 	constants.
   21516 
   21517 	* gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned
   21518 	by mpz_gcdext.
   21519 
   21520 	* demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an
   21521 	autoconf test for stack_t.
   21522 
   21523 	* configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c,
   21524 	tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec,
   21525 	don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and
   21526 	__GMP_LIBGMP_STATIC.
   21527 
   21528 	* gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of
   21529 	tests/t-constants.c.
   21530 
   21531 	* tune/many.pl, tune/speed.h: Remove suffix hack for back.asm.
   21532 
   21533 2002-03-21  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   21534 
   21535 	* mpfr/sin_cos.c (mpfr_sin_cos): New file.
   21536 	* mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it.
   21537 	* mpfr/tan.c: Fix sign in 2nd and 4th quadrants.
   21538 
   21539 	* mpfr/log10.c: Fix hangs on certain inputs.
   21540 
   21541 2002-03-20  Torbjorn Granlund  <tege (a] swox.com>
   21542 
   21543 	* demos/pexpr.c (setup_error_handler): Declare `s', the first
   21544 	sigaltstack parameter, using `stack_t' just on AIX.
   21545 
   21546 2002-03-19  Torbjorn Granlund  <tege (a] swox.com>
   21547 
   21548 	* mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead
   21549 	of the callee-saves r30 and r31.
   21550 
   21551 2002-03-19  Kevin Ryde  <kevin (a] swox.se>
   21552 
   21553 	* tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where
   21554 	previously got the wrong result from "bogomips".
   21555 
   21556 	* mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on
   21557 	750, and smaller too.
   21558 	* mpn/powerpc32/*.asm: Use L(), add some measured speeds.
   21559 
   21560 	* longlong.h (count_trailing_zeros) [vax]: Add a version using ffs,
   21561 	but commented out.
   21562 
   21563 2002-03-17  Kevin Ryde  <kevin (a] swox.se>
   21564 
   21565 	* tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional
   21566 	".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops.
   21567 	Remove mpn_add_n_inplace and mpn_add_n_self.
   21568 	* tune/many.pl: Fix MULFUNC_PROLOGUE parsing.
   21569 
   21570 	* gmp.texi (Known Build Problems): Note `make' problem with long
   21571 	libgmp.la dependencies list.
   21572 
   21573 	* printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent
   21574 	HAVE_SIZE_T, just use size_t unconditionally.
   21575 	* printf/doprnt.c (%zd etc): Fix 'z' type parsing.
   21576 	* tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests.
   21577 
   21578 	* configure.in: Use AC_COPYRIGHT.
   21579 	Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST).
   21580 
   21581 	* tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already
   21582 	gets an ansi2knr rule from nodist_tuneup_SOURCES.
   21583 
   21584 	* longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test
   21585 	HAVE_HOST_CPU_i686 too.
   21586 
   21587 	* mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if.
   21588 
   21589 2002-03-14  Kevin Ryde  <kevin (a] swox.se>
   21590 
   21591 	* mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm,
   21592 	mpn/x86/k6/mmx/com_n.asm: Add nails support.
   21593 
   21594 	* texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1).
   21595 	* gmp.texi (@ma): Remove, @math does this now.
   21596 
   21597 	* mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective
   21598 	outer loops.
   21599 
   21600 	* configure.in (--enable-cxx): Correction to the default stated in the
   21601 	help string.
   21602 	(power*-*-aix*, not powerpc): Use aix.m4, don't run
   21603 	GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4.
   21604 
   21605 2002-03-13  Torbjorn Granlund  <tege (a] swox.com>
   21606 
   21607 	* mpn/sparc32/gmp-mparam.h: New file.
   21608 
   21609 2002-03-13  Kevin Ryde  <kevin (a] swox.se>
   21610 
   21611 	* demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos,
   21612 	sin, rename log2 constant to loge2 to make room for log2 function.
   21613 	* demos/expr/t-expr.c: More tests.
   21614 
   21615 	* mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+".
   21616 
   21617 	* mpfr/acos.c: Avoid a memory leak for certain operands.
   21618 
   21619 	* acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro.
   21620 
   21621 	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
   21622 	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
   21623 	Change ac_objext to OBJEXT, which is the documented variable.
   21624 
   21625 	* config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc
   21626 	in the AIX test, since old versions don't have them all.
   21627 
   21628 2002-03-11  Kevin Ryde  <kevin (a] swox.se>
   21629 
   21630 	* configure.in (LIBC211): New AC_DEFINE, for mpfr.
   21631 
   21632 	* configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2
   21633 	to fall back on it, but detect it doesn't work with gcc 2.95.  Use
   21634 	single mips-defs.m4 for both mips32 and mips64.
   21635 	* acinclude.m4 (GMP_GCC_MIPS_O32): New macro.
   21636 	* mpn/mips32/mips-defs.m4: Renamed from mips.m4.
   21637 	* mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4).
   21638 
   21639 	* mpn/powerpc32/750: New directory.
   21640 	* configure.in (powerpc740, powerpc750, powerpc7400): Use it.
   21641 	* mpn/powerpc32/750/gmp-mparam.h: New file.
   21642 
   21643 	* config.sub, gmp.texi (ultrasparc1): Remove this, just use plain
   21644 	"ultrasparc".
   21645 
   21646 2002-03-10  Kevin Ryde  <kevin (a] swox.se>
   21647 
   21648 	* mpfr: Update to 20020301, except internal_ceil_exp2.c,
   21649 	internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c,
   21650 	i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3.  And sqrtrem.c
   21651 	removed since no longer required.
   21652 	* mpfr/mpfr.texi: Fix some formatting.
   21653 	* mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling.
   21654 	* mpfr/sinh.c: Patch by Paul to fix err calculation when t==0.
   21655 	* mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be
   21656 	sorted out.
   21657 
   21658 	* configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups
   21659 	for clarity.
   21660 
   21661 	* longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New
   21662 	macros.
   21663 
   21664 2002-03-07  Kevin Ryde  <kevin (a] swox.se>
   21665 
   21666 	* gmp.texi (Build Options): Note all the ultrasparcs accepted.
   21667 	(Language Bindings): Add Math::BigInt::GMP.
   21668 
   21669 	* config.sub (ultrasparc2i): New cpu type.
   21670 	* config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection.
   21671 
   21672 2002-03-05  Kevin Ryde  <kevin (a] swox.se>
   21673 
   21674 	* longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67,
   21675 	alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h).
   21676 	(count_leading_zeros) [sparclite]: Fix parameter order (as per gcc
   21677 	longlong.h).
   21678 	* acconfig.h (HAVE_HOST_CPU_alphaev68): New define.
   21679 
   21680 	* config.guess [i?86-*-*]: Suppress error messages if compiler not
   21681 	found or test program won't run.
   21682 	[rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test.
   21683 
   21684 2002-03-04  Torbjorn Granlund  <tege (a] swox.com>
   21685 
   21686 	* mpn/generic/pow_1.c: New file.
   21687 
   21688 2002-03-03  Kevin Ryde  <kevin (a] swox.se>
   21689 
   21690 	* gmp.texi (Build Options): Note compiler must be able to fully link,
   21691 	add alphapca57 and alphaev68, give a clearer example of MPN_PATH
   21692 	(Debugging): Add notes on valgrind.
   21693 	(C++ Formatted Output): Clarify mpf showbase handling, in particular
   21694 	note "00.4" in octal.
   21695 
   21696 	* printf/doprntf.c: Do a showbase on octal float fractions, for
   21697 	instance "00.4" where previously it gave "0.4".
   21698 	* tests/cxx/t-ostream.cc: Update.
   21699 
   21700 	* gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test
   21701 	__WIN32__ for Borland C, reported by "delta trinity".
   21702 
   21703 	* gmp-h.in, mp-h.in: Use <cstddef> for size_t under C++, suggested by
   21704 	Hans Aberg some time ago.
   21705 	* gmp-h.in (<iosfwd>): Move to top of file for clarity.
   21706 
   21707 	* Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++.
   21708 	(CXX_OBJECTS): Add osfuns$U.lo.
   21709 	* dummy.cc: New file.
   21710 	* cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX.
   21711 	(libcxx_la_SOURCES): Add osfuns.cc.
   21712 	* gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs.
   21713 	* gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx.
   21714 
   21715 	* longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used.
   21716 
   21717 	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to
   21718 	__totbits for nails.
   21719 
   21720 	* gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind.
   21721 	(JACOBI_0LS): Ditto, and fix parens around arguments.
   21722 
   21723 	* mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels
   21724 	unique, since simplified L() scheme no longer gives that effect.
   21725 	(notl_or_xorl_GMP_NUMB_MASK): New macro.
   21726 	Add m4_assert_numargs in a few places.
   21727 
   21728 	* configure.in (*sparc*): Fix cycle counter setups for ABI=64.
   21729 
   21730 2002-02-28  Torbjorn Granlund  <tege (a] swox.com>
   21731 
   21732 	* mpn/vax/gmp-mparam.h: New file.
   21733 
   21734 2002-02-28  Kevin Ryde  <kevin (a] swox.se>
   21735 
   21736 	* gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block,
   21737 	reported by librik (a] panix.com.
   21738 
   21739 	* gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT):
   21740 	Use __declspec(dllexport) and __declspec(dllimport) on Borland.
   21741 	* gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland.
   21742 	Reported by "delta trinity".
   21743 
   21744 	* gmp-impl.h (va_copy): Fall back on memcpy, not "=".
   21745 
   21746 	* mpn/generic/pre_mod_1.c: Add a comment about obsolescence.
   21747 
   21748 	* tune/time.c (MICROSECONDS_P): Don't trust time differences of 1
   21749 	microsecond.
   21750 
   21751 	* tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for
   21752 	test data strings, avoids warnings on Sun CC.
   21753 
   21754 2002-02-27  Torbjorn Granlund  <tege (a] swox.com>
   21755 
   21756 	* configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to
   21757 	disable some crazy -fast optimizations.
   21758 
   21759 2002-02-25  Torbjorn Granlund  <tege (a] swox.com>
   21760 
   21761 	* configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable
   21762 	denorm handling under -fast.
   21763 
   21764 2002-02-25  Kevin Ryde  <kevin (a] swox.se>
   21765 
   21766 	* configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc,
   21767 	provide an ev67 -> ev6 fallback.  Fix -arch,-tune selection for DEC C.
   21768 	Allow ~ for space in optional options lists.
   21769 
   21770 	* tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler
   21771 	mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div.
   21772 	(tune_preinv_mod_1): Ditto with mpn_mod_1.
   21773 
   21774 	* tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type"
   21775 	parameter, try to make the code a bit clearer.
   21776 
   21777 	* tune/freq.c: Reduce the period measured for cycles versus
   21778 	gettimeofday, add cycles versus microsecond getrusage.
   21779 
   21780 	* mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong.
   21781 
   21782 2002-02-24  Torbjorn Granlund  <tege (a] swox.com>
   21783 
   21784 	* configure.in: For sparc under solaris2.[7-9], pass -fast instead of
   21785 	other optimization options.
   21786 
   21787 2002-02-23  Kevin Ryde  <kevin (a] swox.se>
   21788 
   21789 	* mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro.
   21790 	(PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl
   21791 	when GSYM_PREFIX non-empty.
   21792 
   21793 	* tune/time.c, tune/speed.h (speed_time_init): Include clock tick
   21794 	period in speed_time_string.
   21795 	* tune/time.c, configure.in (clock_gettime): New measuring method.
   21796 
   21797 	* tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid
   21798 	conflicts with a macro version in gmp-impl.h, eg. mpn_com_n.
   21799 
   21800 2002-02-22  Torbjorn Granlund  <tege (a] swox.com>
   21801 
   21802 	* demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte.
   21803 
   21804 2002-02-22  Kevin Ryde  <kevin (a] swox.se>
   21805 
   21806 	* tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic.
   21807 
   21808 2002-02-20  Torbjorn Granlund  <tege (a] swox.com>
   21809 
   21810 	* configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not
   21811 	`extra_functions'.
   21812 
   21813 	* printf/doprnt.c: Conditionally include inttypes.h.
   21814 	* printf/repl-vsnprintf.c: Likewise.
   21815 	* scanf/doscan.c: Likewise.
   21816 
   21817 2002-02-20  Kevin Ryde  <kevin (a] swox.se>
   21818 
   21819 	* mpn/x86/k7/mmx/com_n.asm: New file.
   21820 
   21821 	* mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc,
   21822 	to ensure they needn't live past the initial allocs in a normal build.
   21823 
   21824 	* mpn/generic/mod_34lsub1.c: Note this is for internal use.
   21825 
   21826 2002-02-19  Torbjorn Granlund  <tege (a] swox.com>
   21827 
   21828 	* Clean up *_THRESHOLD names.  Many files affected.
   21829 
   21830 	* mpn/mips32: Asm-ify 32-bit mips code.
   21831 	Move files from `mips2' to `mips32' directory.
   21832 	* mpn/mips64: Move files from `mips3' to `mips64' directory.
   21833 	* configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'.
   21834 
   21835 2002-02-19  Kevin Ryde  <kevin (a] swox.se>
   21836 
   21837 	* acinclude.m4, configure.in (GMP_PROG_LEX): New macro.
   21838 
   21839 	* tune/tuneup.c (one): Start next threshold at a max of previous ones,
   21840 	in order to get a good starting point for TOOM3_SQR_THRESHOLD if
   21841 	KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only).
   21842 
   21843 	* configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE
   21844 	replacing GMP_MPARAM_H_FILENAME.  Suggest a new file in a cpu specific
   21845 	subdirectory rather than mpn/generic.
   21846 
   21847 	* acinclude.m4 (POWERPC64_PATTERN): New macro.
   21848 	* configure.in (powerpc*-*-*): Use it.
   21849 	(powerpc*-*-*): Use umul in 32L and aix64.
   21850 	(mips*-*-*): Use umul, 32 and 64 bit versions.
   21851 
   21852 2002-02-18  Torbjorn Granlund  <tege (a] swox.com>
   21853 
   21854 	* longlong.h: Add basic x86-64 support.
   21855 
   21856 2002-02-17  Torbjorn Granlund  <tege (a] swox.com>
   21857 
   21858 	* demos/pexpr.c: Support `-X' for upper case hex, make `-x' output
   21859 	lower case hex.
   21860 
   21861 	* mpn/mips2/umul.s: Make it actually work.
   21862 	* mpn/mips3/umul.asm: New file.
   21863 
   21864 	* mpn/mips2/gmp-mparam.h: New file.
   21865 
   21866 2002-02-16  Torbjorn Granlund  <tege (a] swox.com>
   21867 
   21868 	* mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after
   21869 	umul_ppmm calls.
   21870 
   21871 2002-02-16  Kevin Ryde  <kevin (a] swox.se>
   21872 
   21873 	* config.guess (alpha-*-*): Do alpha exact cpu probes on any system,
   21874 	and only if configfsf.guess gives a plain "alpha".
   21875 
   21876 	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64
   21877 	linker invocation problem.
   21878 
   21879 2002-02-15  Torbjorn Granlund  <tege (a] swox.com>
   21880 
   21881 	* mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial
   21882 	digits using umul_ppmm, then switch to plain multiplication.
   21883 
   21884 	* config.guess: Rewrite Alpha subtype detection code for *bsd systems.
   21885 
   21886 2002-02-15  Kevin Ryde  <kevin (a] swox.se>
   21887 
   21888 	* gmp.texi (Build Options): Note powerpc exact cpu types.
   21889 	(Debugging): Advertise DEBUG in memory.c.
   21890 
   21891 	* config.sub, config.guess: Add some powerpc exact cpus.
   21892 	* configure.in: Add configs for them.
   21893 
   21894 	* memory.c [__NeXT__]: Remove unused #define of "static".
   21895 	(__gmp_default_allocate, __gmp_default_reallocate): Print size if
   21896 	allocation fails, don't use perror.
   21897 
   21898 	* gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes.
   21899 
   21900 2002-02-14  Torbjorn Granlund  <tege (a] swox.com>
   21901 
   21902 	* mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems.
   21903 
   21904 2002-02-14  Kevin Ryde  <kevin (a] swox.se>
   21905 
   21906 	* tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of
   21907 	alpha.
   21908 
   21909 	* macos/README: Bug reports to bug-gmp (a] gnu.org, clarify MacOS X a bit.
   21910 
   21911 	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE.
   21912 
   21913 	* tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in
   21914 	some diagnostic printouts.
   21915 	* tune/time.c (speed_cycletime): Note can be 0.0.
   21916 
   21917 2002-02-12  Torbjorn Granlund  <tege (a] swox.com>
   21918 
   21919 	* mpn/alpha/mul_1.asm: Add mpn_mul_1c entry.
   21920 
   21921 	* mpn/pa64w/sqr_diagonal.asm: Use L() for labels.
   21922 
   21923 2002-02-11  Torbjorn Granlund  <tege (a] swox.com>
   21924 
   21925 	* mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to
   21926 	accommodate tuneup compiles.
   21927 
   21928 2002-02-11  Kevin Ryde  <kevin (a] swox.se>
   21929 
   21930 	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add
   21931 	noalign option.
   21932 	* mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align".
   21933 
   21934 	* gmp.texi (Debugging): Notes on Checker.
   21935 	(Other Multiplication): Move note on float FFTs to here.
   21936 	(Assembler Floating Point): New text and revisions by Torbjorn,
   21937 	picture formatting by me.
   21938 	Simplify tex pictures elsewhere a bit, share heights, eliminate some
   21939 	gaps at line joins.
   21940 
   21941 2002-02-11  Torbjorn Granlund  <tege (a] swox.com>
   21942 
   21943 	* mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction
   21944 	limbs and use multiplication for digit development.  Trim allocation of
   21945 	buf.  Get rid of code for !USE_MULTILIMB.
   21946 
   21947 2002-02-10  Torbjorn Granlund  <tege (a] swox.com>
   21948 
   21949 	* mpn/generic/set_str.c (mpn_set_str): Undo this:
   21950 	Change invocations of mpn_add_1 to instead use mpn_incr_u.
   21951 
   21952 	* tests/mpz/convert.c: Free str only after it is used in error message.
   21953 
   21954 	* mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10
   21955 	and generic bases.
   21956 
   21957 	* mpn/mp_bases.c: Add entries for base 256.  Remove __ prefix from
   21958 	table name.
   21959 	* gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making
   21960 	it __gmpn_bases instead of __gmpn_mp_bases.
   21961 	(mp_bases): New #define.
   21962 	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256.
   21963 	(SPEED_ROUTINE_MPN_GET_STR): Likewise.
   21964 
   21965 2002-02-09  Torbjorn Granlund  <tege (a] swox.com>
   21966 
   21967 	* mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available.
   21968 	Change invocations of mpn_add_1 to instead use mpn_incr_u.
   21969 
   21970 2002-02-09  Kevin Ryde  <kevin (a] swox.se>
   21971 
   21972 	* mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c,
   21973 	mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c,
   21974 	mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c,
   21975 	mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c,
   21976 	mpz/urandomb.c: Use GMP_NUMB_BITS.
   21977 
   21978 	* mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to
   21979 	stop it appearing uninitialized.
   21980 
   21981 	* gmp-h.in (__GMP_NOTHROW): New macro.
   21982 	(mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs,
   21983 	mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p,
   21984 	mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p,
   21985 	mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui,
   21986 	mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1,
   21987 	mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap,
   21988 	mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p,
   21989 	mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p,
   21990 	mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si,
   21991 	mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw,
   21992 	mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount,
   21993 	mpn_sub_1): Use it.
   21994 
   21995 	* gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from
   21996 	mpn_sizeinbase, and use GMP_NUMB_BITS.
   21997 	* mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use
   21998 	MPN_SIZEINBASE.
   21999 	* mpbsd/mtox.c: Use MPN_SIZEINBASE_16.
   22000 
   22001 	* configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove.
   22002 	* mpn/generic/sizeinbase.c: Remove file.
   22003 
   22004 	* gmp-impl.h (MPN_GET_STR_SIZE): Remove.
   22005 	* tests/mpn/t-g_str_size.c: Remove file.
   22006 	* tests/mpn/Makefile.am: Update.
   22007 
   22008 	* Makefile.am (dist-hook): Don't distribute cvs merge ".#" files.
   22009 
   22010 2002-02-08  Torbjorn Granlund  <tege (a] swox.com>
   22011 
   22012 	* configure.in: Override extra_functions for all sparcv8 systems, not
   22013 	just supersparc.
   22014 
   22015 2002-02-06  Kevin Ryde  <kevin (a] swox.se>
   22016 
   22017 	* tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned.
   22018 	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in
   22019 	destination cache priming.
   22020 
   22021 	* printf/doprnt.c: Fix parsing of %s and %p conversions.
   22022 	* tests/misc/t-printf.c (check_misc): Add some tests.
   22023 
   22024 2002-02-03  Torbjorn Granlund  <tege (a] swox.com>
   22025 
   22026 	* mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc.
   22027 
   22028 	* mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb.
   22029 	Remove redundant chars_per_limb.  Reverse 4 loops in basecase code for
   22030 	speed.  Use MP_BASES_CHARS_PER_LIMB_10.
   22031 
   22032 2002-02-03  Kevin Ryde  <kevin (a] swox.se>
   22033 
   22034 	* acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a
   22035 	cross compile with the native nm, helps OSF for instance.
   22036 	(GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6,
   22037 	allow "N" from nm for OSF, allow for "t" for other systems, but prefer
   22038 	no mention of the symbol at all.
   22039 
   22040 	* tune/tuneup.c (print_define_remark): New function.
   22041 	Turn some "#if"s into plain "if"s.
   22042 
   22043 	* tune/tuneup.c, gmp-impl.h, tune/Makefile.am
   22044 	(GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these.
   22045 	* mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant
   22046 	GET_STR_PRECOMPUTE_THRESHOLD.
   22047 
   22048 2002-02-02  Torbjorn Granlund  <tege (a] swox.com>
   22049 
   22050 	* mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration.
   22051 
   22052 2002-02-02  Kevin Ryde  <kevin (a] swox.se>
   22053 
   22054 	* mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO
   22055 	to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check.
   22056 
   22057 	* tune/set_strb.c, tune/set_strs.c: New files.
   22058 	* tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them.
   22059 	* tune/tuneup.c: Tune SET_STR_THRESHOLD.
   22060 	(DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[].
   22061 
   22062 2002-02-01  Torbjorn Granlund  <tege (a] swox.com>
   22063 
   22064 	* tests/mpz/convert.c: Increase operand size.  Add (yet disabled) code
   22065 	for testing with random strings.
   22066 
   22067 	* mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic.
   22068 	(mpn_dc_get_str, mpn_sb_get_str): New functions.
   22069 
   22070 2002-01-31  Kevin Ryde  <kevin (a] swox.se>
   22071 
   22072 	* gmpxx.h (cmp): Renamed from "compare".
   22073 
   22074 	* configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling.
   22075 	(PROLOGUE): Allow new style optional second parameter when grepping.
   22076 
   22077 	* acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
   22078 	GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
   22079 	Use $ac_objext for object filenames.
   22080 	(GMP_ASM_UNDERSCORE): Use CCAS to assemble.
   22081 
   22082 	* demos/pexpr-config-h.in: New file.
   22083 	* configure.in: Generate demos/pexpr-config.h.
   22084 	(AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction,
   22085 	sigaltstack, sigstack.
   22086 	* acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New
   22087 	macros.
   22088 	* demos/pexpr.c: Use pexpr-config.h, not various #ifdefs.
   22089 	(setup_error_handler): Use signal if sigaction not available, allow
   22090 	for SIGBUS missing on mingw.
   22091 	(main): Use time() for random seed if gettimeofday not available.
   22092 	(cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE.
   22093 
   22094 2002-01-30  Torbjorn Granlund  <tege (a] swox.com>
   22095 
   22096 	* mpn/generic/set_str.c: Rewrite to become sub-quadratic.
   22097 	(convert_blocks): New function.
   22098 
   22099 2002-01-30  Kevin Ryde  <kevin (a] swox.se>
   22100 
   22101 	* gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT,
   22102 	ASSERT_MPN, ASSERT_MP_LIMB_T): New macros.
   22103 
   22104 	* mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data
   22105 	generator program, share __gmp_fib_table initializers between bit
   22106 	sizes, cope with bit sizes other than those specifically setup.
   22107 	* gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding
   22108 	rearrangement of conditionals.
   22109 	* tests/mpz/t-fib_ui.c (check_fib_table): New test.
   22110 
   22111 2002-01-28  Kevin Ryde  <kevin (a] swox.se>
   22112 
   22113 	* mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use
   22114 	an expression for _mp_size.
   22115 
   22116 	* mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store
   22117 	dummy values to low limbs to stop them appearing uninitialized.
   22118 
   22119 2002-01-26  Kevin Ryde  <kevin (a] swox.se>
   22120 
   22121 	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and
   22122 	Vincent.
   22123 
   22124 2002-01-24  Kevin Ryde  <kevin (a] swox.se>
   22125 
   22126 	* configure.in: Extra quoting to get argument help messages right.
   22127 
   22128 	* gmp.texi (Efficiency): Suggest hex or octal for input and output.
   22129 	(Formatted Output Strings): Mention "*" for width and precision.
   22130 
   22131 	* mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c.
   22132 	Use POW2_P, use __mp_bases[base].big_base for log2(base).
   22133 	* configure.in, mpn/Makefile.am: Add it.
   22134 	* gmp-impl.h: Add prototype.
   22135 	* mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c,
   22136 	mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it.
   22137 	* mpz/get_str.c: Write directly to user buffer, skip at most one
   22138 	leading zero, eliminate special case for x==0.
   22139 	* mpbsd/mtox.c: Allocate exact result space at the start, eliminate
   22140 	special case for x==0.
   22141 	* mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase.
   22142 
   22143 	* configure.in (--enable-nails): New option.
   22144 	(GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h
   22145 	and config.m4.
   22146 	* gmp-h.in: Add templates.
   22147 
   22148 	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine
   22149 	error on AIX xlc.
   22150 
   22151 2002-01-23  Torbjorn Granlund  <tege (a] swox.com>
   22152 
   22153 	* mpn/generic/get_str.c: Correct type of `out_len'.
   22154 
   22155 2002-01-22  Kevin Ryde  <kevin (a] swox.se>
   22156 
   22157 	* mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs.
   22158 
   22159 	* mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift.
   22160 
   22161 	* mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0.
   22162 
   22163 2002-01-21  Torbjorn Granlund  <tege (a] swox.com>
   22164 
   22165 	* longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative
   22166 	declaration.
   22167 	(64-bit powerpc add_ssaaaa): Likewise.
   22168 
   22169 2002-01-20  Kevin Ryde  <kevin (a] swox.se>
   22170 
   22171 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc
   22172 	solaris 2.7 problems.
   22173 
   22174 2002-01-19  Torbjorn Granlund  <tege (a] swox.com>
   22175 
   22176 	* demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1.
   22177 	(cleanup_and_exit): Improve error message wording.
   22178 
   22179 2002-01-19  Kevin Ryde  <kevin (a] swox.se>
   22180 
   22181 	* mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with
   22182 	gmp-impl.h.
   22183 
   22184 2002-01-17  Torbjorn Granlund  <tege (a] swox.com>
   22185 
   22186 	* mpfr/mpfr-test.h: Test "__hpux", not "hpux".  Mask off mrand48
   22187 	return value to 31 bits to work around sloppy mpfr #include practices.
   22188 
   22189 	* mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h.
   22190 	Make sure to #include mpfr-test.h from all files that use random().
   22191 
   22192 2002-01-17  Kevin Ryde  <kevin (a] swox.se>
   22193 
   22194 	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro.
   22195 	* gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c,
   22196 	mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c,
   22197 	printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c,
   22198 	mpbsd/mtox.c: Some fixes to compile as C++.
   22199 
   22200 	* mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter,
   22201 	replacing COUNT_TRAILING_ZEROS_TIME test.  Add a third method too.
   22202 	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
   22203 	measuring of mpn_jacobi_base methods.
   22204 	* tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files.
   22205 	* tune/tuneup.c (JACOBI_BASE_METHOD): Tune this.
   22206 	* mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro.
   22207 
   22208 	* gmp-h.in: Use __gmp prefix on variables in inlines.
   22209 
   22210 	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused.
   22211 
   22212 	* mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB.
   22213 	Use CNST_LIMB for some constants.
   22214 
   22215 2002-01-15  Kevin Ryde  <kevin (a] swox.se>
   22216 
   22217 	* tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la.
   22218 
   22219 	* printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES.
   22220 
   22221 	* mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and
   22222 	mpf_get_str give the same for ndigits==0.
   22223 
   22224 	* mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a
   22225 	powerpc64 gcc 3.0 -O2 bug.
   22226 
   22227 	* tests/memory.c, tests/tests.h (tests_memory_validate): New function.
   22228 
   22229 2002-01-14  Kevin Ryde  <kevin (a] swox.se>
   22230 
   22231 	* mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c,
   22232 	mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and
   22233 	UDIV_TIME, just default to preinv.
   22234 	* gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto.
   22235 	(DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME
   22236 	and UDIV_TIME, make default thresholds 0.
   22237 	(UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros.
   22238 	* mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME,
   22239 	UDIV_NORM_PREINV_TIME): Remove macros.
   22240 
   22241 	* gmp.texi (Headers and Libraries): New section, being the header
   22242 	notes from "GMP Basics" and some new stuff.
   22243 	(Parameter Conventions): Notes on "const" parameters.
   22244 	(Formatted Output Strings): Add type N, tweak some wording.
   22245 
   22246 	* tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0.
   22247 
   22248 2002-01-12  Kevin Ryde  <kevin (a] swox.se>
   22249 
   22250 	* mpz/root.c: Add <stdlib.h>, for abort().
   22251 
   22252 	* mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
   22253 	* mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c,
   22254 	tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c,
   22255 	tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c,
   22256 	trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c,
   22257 	tui_div.c: Fixes for K&R.
   22258 
   22259 	* tests/misc/t-scanf.c (check_misc, check_misc):
   22260 
   22261 	* tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c:
   22262 	Avoid strings in ASSERT, not enjoyed by K&R.
   22263 	* gmp-impl.h (ASSERT): Note this.
   22264 
   22265 	* tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO.
   22266 
   22267 	* mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and
   22268 	sources in a different directory.
   22269 
   22270 	* printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double.
   22271 
   22272 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c,
   22273 	mul_2.c, pre_divrem_1.c.
   22274 
   22275 	* gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n,
   22276 	mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c,
   22277 	mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc,
   22278 	mpn_submul_1c): Move to gmp-impl.h, since they're undocumented.
   22279 
   22280 	* gmp-impl.h (mpn_reciprocal): Remove, unused.
   22281 
   22282 	* tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS.
   22283 
   22284 2002-01-11  Kevin Ryde  <kevin (a] swox.se>
   22285 
   22286 	* mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L().
   22287 
   22288 2002-01-08  Kevin Ryde  <kevin (a] swox.se>
   22289 
   22290 	* mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function
   22291 	name to EPILOGUE, check for missing or wrong function name EPILOGUE.
   22292 	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4,
   22293 	mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4,
   22294 	mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a
   22295 	few more asserts.
   22296 	* mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm,
   22297 	mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp"
   22298 	parameter on plain PROLOGUE.
   22299 
   22300 	* gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra
   22301 	limb, and doesn't clobber at all for power of 2 bases.
   22302 	(Language Bindings): Add python gmpy.
   22303 
   22304 	* mpz/get_str.c: Determine realloc size arithmetically.
   22305 
   22306 	* mpbsd/mtox.c: Size memory block returned to actual space needed.
   22307 	* gmp.texi (BSD Compatible Functions): Describe this.
   22308 
   22309 	* mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases.
   22310 	* mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a
   22311 	missing TMP_FREE.
   22312 
   22313 	* mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for
   22314 	mpn_get_str clobber.
   22315 
   22316 	* gmp-impl.h (MPN_GET_STR_SIZE): New macro.
   22317 	* mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c,
   22318 	tune/speed.h: Use it.
   22319 	* tests/mpn/t-g_str_size.c: New test.
   22320 	* tests/mpn/Makefile.am: Add it.
   22321 
   22322 	* gmp-impl.h (POW2_P): New macro.
   22323 	* mpn/generic/get_str.c, tests/misc.c: Use it.
   22324 
   22325 	* printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z.
   22326 	* tests/misc/t-printf.c: Add tests.
   22327 	* gmp-impl.h (ASSERT_CODE): New macro.
   22328 
   22329 	* tests/mpbsd/t-mtox.c: New test.
   22330 	* tests/mpbsd/Makefile.am: Add it.
   22331 	(allfuns_LDADD): Don't link against libgmp when testing everything in
   22332 	libmp can link.
   22333 
   22334 2002-01-07  Torbjorn Granlund  <tege (a] swox.com>
   22335 
   22336 	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions.
   22337 
   22338 2002-01-06  Kevin Ryde  <kevin (a] swox.se>
   22339 
   22340 	* mpn/generic/pre_divrem_1.c: Don't support size==0.
   22341 	* tests/devel/try.c: Update.
   22342 
   22343 	* mpn/generic/get_str.c: Add special case for base==10.
   22344 	* gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10,
   22345 	MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New
   22346 	constants.
   22347 	* tests/t-constants.c: Add checks.
   22348 	* mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print
   22349 	all standard bits-per-limb by default.
   22350 
   22351 	* demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use
   22352 	__GMP_PROTO.
   22353 
   22354 	* gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to
   22355 	keep out of application namespace.
   22356 
   22357 2002-01-04  Torbjorn Granlund  <tege (a] swox.com>
   22358 
   22359 	* gmp-impl.h: Move _PROTO declaration to before its first usages.
   22360 
   22361 2002-01-04  Kevin Ryde  <kevin (a] swox.se>
   22362 
   22363 	* gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and
   22364 	don't use #ifndef just define it ourselves.
   22365 	* gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big
   22366 	edits internally, for the moment.
   22367 
   22368 2002-01-03  Torbjorn Granlund  <tege (a] swox.com>
   22369 
   22370 	* tune/speed.c (usage): Insert "\n\" into a string.
   22371 
   22372 2001-12-30  Torbjorn Granlund  <tege (a] swox.com>
   22373 
   22374 	* mpn/pa64/udiv_qrnnd.c: Remove file.
   22375 	* mpn/pa64w/udiv_qrnnd.c: Remove file.
   22376 
   22377 	* gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns
   22378 	indented by tab).
   22379 	(MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz".
   22380 
   22381 	* gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss,
   22382 	in one more case.
   22383 
   22384 2001-12-30  Kevin Ryde  <kevin (a] swox.se>
   22385 
   22386 	* mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro.
   22387 	Use "do while" for dig_per_u loop since it's non-zero.
   22388 	* acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates.
   22389 
   22390 	* mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c,
   22391 	mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h,
   22392 	tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c,
   22393 	tune/many.pl (mpn_mul_2): New parameter style.
   22394 	* gmp-impl.h (mpn_mul_2): Add prototype.
   22395 	* configure.in (gmp_mpn_functions_optional): Add mul_2.
   22396 
   22397 	* longlong.h (__vxworks__): Remove from powerpc tests, not correct,
   22398 	not on its own at least.
   22399 
   22400 	* tune/speed.c: Add "aas" to specify 0xAA..AA data.
   22401 
   22402 	* tune/tuneup.c (print_define_end): Indicate "never" and "always".
   22403 
   22404 2001-12-29  Torbjorn Granlund  <tege (a] swox.com>
   22405 
   22406 	* mpq/set_d.c: ANSI-fy.
   22407 	* mpz/invert.c: Use PTR and SIZ (cosmetic change).
   22408 
   22409 	* mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word.
   22410 
   22411 2001-12-28  Torbjorn Granlund  <tege (a] swox.com>
   22412 
   22413 	* mpn/sparc64/sqr_diagonal.asm: New file.
   22414 
   22415 2001-12-28  Kevin Ryde  <kevin (a] swox.se>
   22416 
   22417 	* mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop
   22418 	only until msize==1.
   22419 
   22420 	* tune/tuneup.c: Break up all() for clarity.
   22421 	(USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain
   22422 	division udiv_qrnnd, not the tuned and possibly preinv version.
   22423 
   22424 	* tune/freq.c: Split sysctl and sysctlbyname probes into separate
   22425 	functions, shorten some identifiers, put descriptions inside
   22426 	functions, define functions unconditionally and do nothing if
   22427 	requisites not available.
   22428 
   22429 	* mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX.
   22430 
   22431 	* acinclude.m4, configure.in (GMP_C_RESTRICT): New macro.
   22432 
   22433 	* mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2).
   22434 
   22435 	* demos/calc/calc.y: Improve some error messages.
   22436 
   22437 2001-12-28  Torbjorn Granlund  <tege (a] swox.com>
   22438 
   22439 	* mpn/sparc64/mul_1.asm: Rename r72 -> r80.
   22440 	* mpn/sparc64/addmul_1.asm: Likewise.
   22441 
   22442 2001-12-27  Torbjorn Granlund  <tege (a] swox.com>
   22443 
   22444 	* mpn/generic/tdiv_qr.c: Misc formatting cleanups.
   22445 	For switch case 2, replace `dn' with its value (2).
   22446 
   22447 2001-12-25  Torbjorn Granlund  <tege (a] swox.com>
   22448 
   22449 	* tests/devel/mul_1.c: Add FIXED_XLIMB.
   22450 	* tests/devel/addmul_1.c: Likewise.
   22451 	* tests/devel/submul_1.c: Likewise.
   22452 
   22453 	* tests/devel/add_n.c: Improve error message.
   22454 	Accept command line argument for # of tests.
   22455 	* tests/devel/sub_n.c: Likewise.
   22456 
   22457 	* tests/devel/: Remove CLOCK settings.
   22458 
   22459 	* mpn/sparc32/v9/mul_1.asm: Rewrite.
   22460 	* mpn/sparc32/v9/addmul_1.asm: Rewrite.
   22461 	* mpn/sparc32/v9/submul_1.asm: Rewrite.
   22462 
   22463 2001-12-24  Torbjorn Granlund  <tege (a] swox.com>
   22464 
   22465 	* mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)).
   22466 	* mpn/sparc64/addmul_1.asm: Likewise.
   22467 
   22468 2001-12-23  Torbjorn Granlund  <tege (a] swox.com>
   22469 
   22470 	* mpn/generic/get_str.c: Move final ASSERT to just before zero fill
   22471 	loop.
   22472 
   22473 2001-12-22  Torbjorn Granlund  <tege (a] swox.com>
   22474 
   22475 	* mpn/generic/get_str.c: Move ASSERTs out of loops.  Split digit
   22476 	generation code into two loops, saving a test of msize in the loop.
   22477 
   22478 2001-12-22  Kevin Ryde  <kevin (a] swox.se>
   22479 
   22480 	* mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting
   22481 	function name in local labels.
   22482 
   22483 	* mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of
   22484 	ASSERTs.
   22485 
   22486 	* mpn/generic/pre_divrem_1.c: New file.
   22487 	* configure.in (gmp_mpn_functions): Add it.
   22488 	* gmp-impl.h (mpn_preinv_divrem_1): Add prototype.
   22489 	(USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros.
   22490 	* tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c,
   22491 	tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and
   22492 	measuring.
   22493 	* tune/tuneup.c: Determine USE_PREINV_DIVREM_1.
   22494 	* tune/pre_divrem_1.c: New file.
   22495 	* tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function.
   22496 
   22497 	* tests/mpz/t-io_raw.c: New file.
   22498 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   22499 
   22500 	* mpz/inp_raw.c, mpz/out_raw.c: Rewrite.
   22501 	* acinclude.m4, configure.in (AC_C_BIGENDIAN): New test.
   22502 	* gmp-impl.h (BSWAP_LIMB): New macro.
   22503 
   22504 	* acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand
   22505 	executables will run, per AC_PROG_CC.  This detects ABI=64 is unusable
   22506 	in a native sparc solaris 7 build with the kernel in 32-bit mode.
   22507 	* gmp.texi (ABI and ISA): Add notes on this, add an example configure
   22508 	setting an ABI.
   22509 
   22510 	* tune/tuneup.c, configure.in: Print the gmp-mparam.h filename.
   22511 	* tune/tuneup.c: Print the CPU frequency.
   22512 
   22513 	* tune/time.c, tune/speed.h: Add s390 "stck" method, flatten
   22514 	conditionals in speed_time_init a bit, use have_* variables to let
   22515 	some code go dead in speed_starttime and speed_endtime.
   22516 
   22517 	* tune/freq.c (speed_cpu_frequency_irix_hinv): New function.
   22518 
   22519 	* Makefile.am, configure.in: Restore mpfr.
   22520 
   22521 	* configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX.
   22522 	* demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add
   22523 	lucnum function.
   22524 	* demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC),
   22525 	$(LEX) and $(LEXLIB).
   22526 	* demos/calc/calcread.c, demos/calc/calc-common.h,
   22527 	demos/calc/calc-config-h.in, demos/calc/README: New files.
   22528 
   22529 	* configure.in: Put demos/expr configs in expr-config.h.
   22530 	* demos/expr/expr-config-h.in: New file.
   22531 	* demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs
   22532 	from expr-config.h.
   22533 	* demos/expr/Makefile.am: Update.
   22534 
   22535 	* demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious
   22536 	returns.
   22537 
   22538 2001-12-20  Torbjorn Granlund  <tege (a] swox.com>
   22539 
   22540 	* mpn/sparc64/mul_1.asm: Trim an instruction.
   22541 	* mpn/sparc64/addmul_1.asm: Likewise.
   22542 
   22543 	* mpn/ia64/add_n.asm: Rewrite.
   22544 	* mpn/ia64/sub_n.asm: Rewrite.
   22545 
   22546 2001-12-19  Torbjorn Granlund  <tege (a] swox.com>
   22547 
   22548 	* mpn/ia64/mul_1.asm: Rewrite.
   22549 	* mpn/ia64/addmul_1.asm: Rewrite.
   22550 	* mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS.
   22551 
   22552 	* tests/devel/mul_1.c: Improve error message.
   22553 	Accept command line argument for # of tests.
   22554 	* tests/devel/addmul_1.c: Likewise.
   22555 	* tests/devel/submul_1.c: Likewise.
   22556 
   22557 2001-12-18  Torbjorn Granlund  <tege (a] swox.com>
   22558 
   22559 	* mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000.
   22560 
   22561 2001-12-18  Kevin Ryde  <kevin (a] swox.se>
   22562 
   22563 	* gmpxx.h (gmp_randclass): Don't allow copy constructors or "=",
   22564 	implementation by Gerardo.
   22565 
   22566 	* gmp-h.in (operator<<, operator>>): Remove parameter names from
   22567 	prototypes, to keep out of user namespace.
   22568 
   22569 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++.
   22570 
   22571 2001-12-16  Torbjorn Granlund  <tege (a] swox.com>
   22572 
   22573 	* mpn/sparc64/mul_1.asm: Rewrite.
   22574 	* mpn/sparc64/addmul_1.asm: Rewrite.
   22575 	* mpn/sparc64/submul_1.asm: Rewrite.
   22576 
   22577 	* mpn/sparc64/addmul1h.asm: Remove.
   22578 	* mpn/sparc64/submul1h.asm: Remove.
   22579 	* mpn/sparc64/mul1h.asm: Remove.
   22580 
   22581 2001-12-15  Kevin Ryde  <kevin (a] swox.se>
   22582 
   22583 	* gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow
   22584 	__GMP_INLINE_PROTOTYPES for whether to give prototype with inline.
   22585 
   22586 	* configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*,
   22587 	athlon-*-*, pentium4-*-*): Fall back on -march=pentium if
   22588 	-march=pentiumpro or higher is not good (eg. solaris cmov).
   22589 
   22590 2001-12-12  Torbjorn Granlund  <tege (a] swox.com>
   22591 
   22592 	* gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to
   22593 	powerpc version.
   22594 
   22595 2001-12-12  Kevin Ryde  <kevin (a] swox.se>
   22596 
   22597 	* acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc
   22598 	-march=pentiumpro on solaris 2.8.
   22599 
   22600 	* tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros
   22601 	and count_trailing_zeros macros.
   22602 
   22603 	* demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c.
   22604 
   22605 	* tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c.
   22606 
   22607 2001-12-10  Torbjorn Granlund  <tege (a] swox.com>
   22608 
   22609 	* mpn/s390/addmul_1.asm: New file.
   22610 	* mpn/s390/submul_1.asm: New file.
   22611 	* mpn/s390/mul_1.asm: New file.
   22612 	* mpn/s390/gmp-mparam.h: Update.
   22613 
   22614 2001-12-07  Kevin Ryde  <kevin (a] swox.se>
   22615 
   22616 	* gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of
   22617 	prototypes, for the benefit of Microsoft C.
   22618 
   22619 	* gmp.texi (Introduction to GMP): Mention ABI and ISA section.
   22620 	(Known Build Problems): Recommend GNU sed on solaris 2.6.
   22621 	(Assigning Integers): Direct feedback to bug-gmp.
   22622 	(References): Typo Knuth vol 2 is from 1998.
   22623 
   22624 	* gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default
   22625 	and gmp_randinit_lc_2exp_size.
   22626 	gmp.texi (C++ Interface Random Numbers): Describe them.
   22627 
   22628 	* tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is
   22629 	done when the localconv override doesn't work.  Reported by Mike
   22630 	Jetzer.
   22631 
   22632 	* printf/doprnti.c: Don't showbase on a zero mpq denominator.
   22633 	* tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases.
   22634 
   22635 2001-12-04  Kevin Ryde  <kevin (a] swox.se>
   22636 
   22637 	* gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size
   22638 	for the sparc solaris 2.7 problem.
   22639 	(Reentrancy): SCO ctype.h affects all text-based input functions.
   22640 	(Formatted Output Strings): Correction to the mpf example.
   22641 	(Single Limb Division): Correction, should be q-1 not q+1.
   22642 	(Extended GCD): Clarify why single-limb is inferior.
   22643 	(Raw Output Internals): Clarify size is twos complement, note limb
   22644 	order means _mp_d doesn't get directly read or written.
   22645 	(Contributors): Clarify mpz_jacobi.
   22646 	And a couple of formatting tweaks elsewhere.
   22647 
   22648 	* tests/cxx/t-headers.cc: New file.
   22649 	* tests/cxx/Makefile.am: Add it.
   22650 
   22651 	* gmpxx.h: Add <strstream>, needed by mpf_class::get_str2.
   22652 
   22653 	* gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC.
   22654 
   22655 2001-12-01  Torbjorn Granlund  <tege (a] swox.com>
   22656 
   22657 	* Version 4.0 released.
   22658 
   22659 	* mpfr/README: Replace contents with explanation of why mpfr is gone.
   22660 
   22661 2001-12-01  Kevin Ryde  <kevin (a] swox.se>
   22662 
   22663 	* Makefile.am, configure.in: Temporarily remove mpfr, just leave a
   22664 	README.
   22665 
   22666 	* mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am.
   22667 
   22668 2001-11-30  Gerardo Ballabio  <ballabio (a] sissa.it>
   22669 
   22670 	* tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files.
   22671 	* tests/cxx/Makefile.am (check_PROGRAMS): Add them.
   22672 
   22673 2001-11-30  Kevin Ryde  <kevin (a] swox.se>
   22674 
   22675 	* mpfr: Update to 2001-11-16.  Patch TMP handling of agm.c and sqrt.c,
   22676 	use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil,
   22677 	disable an expression style assert in add1.c.
   22678 
   22679 	* mpn/s370: Rename to s390.
   22680 	* configure.in (s3[6-9]0*-*-*): Update.
   22681 	* mpn/Makefile.am (TARG_DIST): Add s390.
   22682 
   22683 	* mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since
   22684 	change to .h style.
   22685 
   22686 2001-11-29  Torbjorn Granlund  <tege (a] swox.com>
   22687 
   22688 	* gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp.
   22689 	* Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo.
   22690 	* mpf/Makefile.am: Add get_d_2exp.c.
   22691 	* mpz/Makefile.am: Add get_d_2exp.c.
   22692 
   22693 2001-11-29  Kevin Ryde  <kevin (a] swox.se>
   22694 
   22695 	* mpn/*/gmp-mparam.h: Update measured thresholds.
   22696 	* mpn/s370/gmp-mparam.h: New file.
   22697 
   22698 	* mpz/millerrabin.c: Mark for internal use only, for now.
   22699 	* gmp.texi (Number Theoretic Functions): Remove documentation.
   22700 
   22701 2001-11-28  Torbjorn Granlund  <tege (a] swox.com>
   22702 
   22703 	* mpf/get_d_2exp.c: New file.
   22704 	* mpz/get_d_2exp.c: New file.
   22705 
   22706 	* mpz/realloc2.c: Fix typo.  Make more similar to mpz_realloc.
   22707 	* mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS.
   22708 
   22709 2001-11-27  Gerardo Ballabio  <ballabio (a] sissa.it>
   22710 
   22711 	* gmpxx.h, mpfrxx.h: Various updates and improvements.
   22712 
   22713 2001-11-27  Kevin Ryde  <kevin (a] swox.se>
   22714 
   22715 	* gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex
   22716 	for mp_bits_per_limb.
   22717 
   22718 	* demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's.
   22719 	* demos/perl/test.pl: Update for this, and for mpz_perfect_power_p
   22720 	handling of 0 and 1.
   22721 
   22722 2001-11-26  Torbjorn Granlund  <tege (a] swox.com>
   22723 
   22724 	* mpz/realloc.c: Clear variable when decreasing allocation to less than
   22725 	needed.  Misc updates.
   22726 
   22727 2001-11-25  Kevin Ryde  <kevin (a] swox.se>
   22728 
   22729 	* tests/misc/t-locale.c: Avoid printf in the normal case, since the
   22730 	replacement localeconv breaks it on SunOS 4.
   22731 
   22732 	* gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx
   22733 	depends on libgmp from same GMP version.
   22734 
   22735 	* acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New
   22736 	test.
   22737 	* scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is
   22738 	writable, if necessary.
   22739 
   22740 	* tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always.
   22741 	* configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required.
   22742 
   22743 	* configure.in (none-*-*): Fix default CFLAGS setups.
   22744 
   22745 	* doc/configuration: Misc updates.
   22746 
   22747 2001-11-23  Kevin Ryde  <kevin (a] swox.se>
   22748 
   22749 	* mpz/init2.c, mpz/realloc2.c: New files.
   22750 	* Makefile.am, mpz/Makefile.am: Add them.
   22751 	* gmp-h.in: Add prototypes.
   22752 	* gmp.texi (Efficiency): Mention these instead of _mpz_realloc.
   22753 	(Initializing Integers): Add documentation, reword other parts.
   22754 
   22755 2001-11-22  Torbjorn Granlund  <tege (a] swox.com>
   22756 
   22757 	* mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop.
   22758 	* mpn/cray/ieee/submul_1.c: Likewise.
   22759 
   22760 2001-11-20  Kevin Ryde  <kevin (a] swox.se>
   22761 
   22762 	* gmp.texi (Known Build Problems): Note an out of memory on DJGPP.
   22763 	(Function Classes): Update function counts.
   22764 	Misc tweaks elsewhere.
   22765 
   22766 	* configure.in (AC_CHECK_DECLS): Add sscanf.
   22767 	* tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4.
   22768 
   22769 	* tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE
   22770 	consistency.
   22771 
   22772 	* mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake
   22773 	default, necessary for powerpc64 ABI=aix64.
   22774 
   22775 2001-11-18  Torbjorn Granlund  <tege (a] swox.com>
   22776 
   22777 	* mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs.
   22778 
   22779 2001-11-18  Kevin Ryde  <kevin (a] swox.se>
   22780 
   22781 	* configure.in (--enable-fft): Make this the default.
   22782 	* gmp.texi (Build Options): Update.
   22783 
   22784 	* Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by
   22785 	new mpz/powm.c.
   22786 
   22787 	* gmp.texi (Random State Initialization): Add gmp_randinit_default and
   22788 	gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete.
   22789 	(Random State Seeding): New section, taken from "Random State
   22790 	Initialization" and "Random Number Functions".
   22791 
   22792 	* configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc.
   22793 	* scanf/fscanffuns.c: Use these, for the benefit of SunOS 4.
   22794 
   22795 	* gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to
   22796 	gmp-impl.h now not required for inlined mpf.
   22797 
   22798 	* randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC
   22799 	selection from rand.c.
   22800 	* rand.c (gmp_randinit): Use it.
   22801 	* randdef.c (gmp_randinit_default): New file.
   22802 	* gmp-impl.h (RANDS): Use it.
   22803 	(ASSERT_CARRY): New macro.
   22804 	* gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add
   22805 	prototypes.
   22806 	* Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c.
   22807 
   22808 	* printf/asprntffuns.c: Include config.h before using its defines.
   22809 
   22810 	* gmp-impl.h: Move C++ <string> to top of file to avoid the memset
   22811 	redefine upsetting configure tests.  Remove <iostream> since <iosfwd>
   22812 	in gmp.h suffices.
   22813 
   22814 2001-11-16  Kevin Ryde  <kevin (a] swox.se>
   22815 
   22816 	* gmp.texi (Integer Exponentiation): mpz_powm supports negative
   22817 	exponents.
   22818 	(Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted
   22819 	Input): Decimal point follows locale.
   22820 	(Formatted Output Strings): %n accepts any type.
   22821 	(Formatted Input Strings): New section.
   22822 	(Formatted Input Functions): New section.
   22823 	(C++ Class Interface): Corrections and clarifications suggested by
   22824 	Gerardo.
   22825 
   22826 	* scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c,
   22827 	scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c,
   22828 	scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files.
   22829 	* gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent
   22830 	additions.
   22831 
   22832 	* tests/misc: New directory.
   22833 	* tests/misc/Makefile.am: New file.
   22834 	* tests/misc/t-locale.c: New file.
   22835 	* tests/misc/t-printf.c: Moved from tests/printf.
   22836 	* tests/printf: Remove directory.
   22837 	* configure.in, tests/Makefile.am: Update.
   22838 
   22839 	* tests/cxx/t-locale.cc: New file.
   22840 	* tests/cxx/Makefile.am: Add it.
   22841 
   22842 	* mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point.
   22843 
   22844 	* acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic
   22845 	for current libtool, recognise non-PIC style mcount in windows DLLs.
   22846 
   22847 	* gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype.
   22848 
   22849 	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized,
   22850 	modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test
   22851 	programs using them from a windows DLL.
   22852 	* longlong.h (__clz_tab): Ditto.
   22853 
   22854 	* mpn/x86/t-zdisp2.pl: New file.
   22855 
   22856 	* mpn/x86/pentium4/README: New file.
   22857 
   22858 2001-11-15  Torbjorn Granlund  <tege (a] swox.com>
   22859 
   22860 	* mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1.
   22861 	* tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm
   22862 	cases.
   22863 
   22864 2001-11-14  Torbjorn Granlund  <tege (a] swox.com>
   22865 
   22866 	* mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no
   22867 	redc).
   22868 	* mpz/powm.c: Adjust for negative b, after exponentiation done.  Add
   22869 	(still disabled) code for handling negative exponents.  Misc cleanups.
   22870 
   22871 2001-11-14  Kevin Ryde  <kevin (a] swox.se>
   22872 
   22873 	* mpf/out_str.c: Use localeconv for the decimal point.
   22874 
   22875 	* tests/misc.c (tests_rand_end): Use time() if gettimeofday() not
   22876 	available (eg. on mingw).
   22877 
   22878 2001-11-11  Kevin Ryde  <kevin (a] swox.se>
   22879 
   22880 	* gmp-h.in: Remove parameter names from prototypes, to keep out of
   22881 	application namespace.
   22882 
   22883 2001-11-08  Kevin Ryde  <kevin (a] swox.se>
   22884 
   22885 	* acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on
   22886 	Solaris 8.
   22887 
   22888 	* printf/doprnt.c: Support %n of all types, per glibc.
   22889 
   22890 	* gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c,
   22891 	mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c,
   22892 	mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order
   22893 	to leave open the possibility of keeping binary compatibility if mpf
   22894 	becomes mpfr.
   22895 
   22896 	* mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to
   22897 	force code size for computed jumps.
   22898 	* mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp
   22899 	to force good code alignment.
   22900 	* mpn/x86/x86-defs.m4 (Zdisp): More instructions.
   22901 
   22902 	* mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm,
   22903 	mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets.
   22904 
   22905 	* mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0.
   22906 
   22907 2001-11-07  Torbjorn Granlund  <tege (a] swox.com>
   22908 
   22909 	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug.
   22910 
   22911 	* mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good
   22912 	idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm).
   22913 
   22914 2001-11-06  Torbjorn Granlund  <tege (a] swox.com>
   22915 
   22916 	* gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'.
   22917 	(MPN_COPY_DECR): Likewise.
   22918 
   22919 2001-11-05  Torbjorn Granlund  <tege (a] swox.com>
   22920 
   22921 	* mpz/powm.c: Call mpn functions, not mpz functions, for computation
   22922 	mod m.  Streamline allocations to use a mixture of stack allocation and
   22923 	heap allocation.  Add currently disabled phi(m) exponent reduction
   22924 	code.  Misc optimizations and cleanups.
   22925 
   22926 2001-11-05  Kevin Ryde  <kevin (a] swox.se>
   22927 
   22928 	* mpq/inp_str.c: Remove unused variable "ret".
   22929 
   22930 	* mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the
   22931 	computed jumps hit the right spot on old gas.
   22932 
   22933 	* mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero.
   22934 
   22935 	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way
   22936 	the first \( \) pair is setup.
   22937 	(gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc.
   22938 	Misc tweaks to some comments.
   22939 
   22940 2001-11-03  Torbjorn Granlund  <tege (a] swox.com>
   22941 
   22942 	* tests/refmpn.c (refmpn_overlap_p): Reverse return values.
   22943 
   22944 2001-11-02  Kevin Ryde  <kevin (a] swox.se>
   22945 
   22946 	* tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no
   22947 	longer done by configure.
   22948 
   22949 	* mpn/x86/pentium4/mmx/popham.asm: New file.
   22950 
   22951 	* mpn/x86/x86-defs.m4 (psadbw): New macro.
   22952 	* mpn/x86/k7/mmx/popham.asm: Use it.
   22953 
   22954 	* tests/refmpn.c (refmpn_overlap_p): New function, independent of
   22955 	MPN_OVERLAP_P.
   22956 
   22957 2001-10-31  Torbjorn Granlund  <tege (a] swox.com>
   22958 
   22959 	* tests/mpz/t-powm.c: Print proper error message when finding
   22960 	discrepancy.
   22961 
   22962 2001-10-31  Kevin Ryde  <kevin (a] swox.se>
   22963 
   22964 	* mpn/x86/pentium/mod_34lsub1.asm: New file.
   22965 	* mpn/x86/k7/mod_34lsub1.asm: New file.
   22966 	* mpn/x86/mod_34lsub1.asm: New file.
   22967 
   22968 2001-10-30  Kevin Ryde  <kevin (a] swox.se>
   22969 
   22970 	* tests/printf/t-printf.c (check_misc): Add checks from the glibc docs.
   22971 	(check_vasprintf, check_vsnprintf): Run these unconditionally.
   22972 
   22973 	* gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro.
   22974 	* mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for
   22975 	canonical inputs, where correctness depends on it.
   22976 
   22977 	* mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl".
   22978 
   22979 2001-10-27  Torbjorn Granlund  <tege (a] swox.com>
   22980 
   22981 	* demos/pexpr.c: Remove some unused variables.
   22982 	(main): Allocate more buffer space to accommodate minus sign.
   22983 
   22984 2001-10-27  Kevin Ryde  <kevin (a] swox.se>
   22985 
   22986 	* gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h,
   22987 	tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add
   22988 	mpn_mod_34lsub1.
   22989 	* tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function.
   22990 
   22991 	* mpn/generic/mod_34lsub1.c: New file.
   22992 	* mpn/x86/k6/mod_34lsub1.asm: New file.
   22993 	* mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file.
   22994 	* mpn/x86/x86-defs.m4 (Zdisp): Add another instruction.
   22995 
   22996 	* gmp-h.in, gmpxx.h: Use <iosfwd> not whole <iostream>.
   22997 
   22998 	* gmp.texi (Known Build Problems): Add note on test programs with
   22999 	Windows DLLs.
   23000 
   23001 2001-10-26  Kevin Ryde  <kevin (a] swox.se>
   23002 
   23003 	* tests/mpq/t-get_d.c: Limit the size of "eps" for vax.
   23004 
   23005 	* gmp.texi (maybepagebreak): New macro, use it in a few places.
   23006 	(Notes for Particular Systems): C++ Windows DLLs are not supported.
   23007 	(Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared
   23008 	library problems.
   23009 	(Autoconf): Tweak version numbers shown.
   23010 	(Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider
   23011 	0 and 1 perfect powers, mpz_perfect_power_p accepts negatives.
   23012 	(Number Theoretic Functions): Add mpz_millerrabin, combined with a
   23013 	reworded mpz_probab_prime_p.
   23014 	(Formatted Output Strings): Misc clarifications.
   23015 	(Formatted Output Functions): gmp_asprintf, gmp_vasprintf,
   23016 	gmp_snprintf, gmp_vsnprintf always available.
   23017 	(C++ Formatted Output): Misc rewordings.
   23018 	(Formatted Input): New chapter.
   23019 	(C++ Class Interface): New chapter, by Gerardo and me.
   23020 	(Language Bindings): Update GMP++ now in GMP.
   23021 	(C++ Interface Internals): New section, by Gerardo and me.
   23022 
   23023 	* printf/repl-vsnprintf.c: New file.
   23024 	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it
   23025 	if libc vsnprintf missing or bad.
   23026 	* configure.in (AC_CHECK_FUNCS): Add strnlen.
   23027 
   23028 	* printf/snprntffuns.c, printf/vasprintf.c: Use
   23029 	__gmp_replacement_vsnprintf if libc vsnprintf not available.
   23030 	* printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c,
   23031 	printf/vsnprintf.c: Provide these functions unconditionally.
   23032 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions
   23033 	when vsnprintf not available.
   23034 
   23035 2001-10-24  Kevin Ryde  <kevin (a] swox.se>
   23036 
   23037 	* configure, aclocal.m4: Regenerate with a libtool patch for a stray
   23038 	quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin.
   23039 
   23040 	* gmp-impl.h (modlimb_invert): More comments.
   23041 
   23042 	* printf/doprnt.c, printf/doprnti.c: Use the precision field to print
   23043 	leading zeros.
   23044 	* tests/printf/t-printf.c: Test this.
   23045 	* cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<.
   23046 
   23047 	* tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace.
   23048 
   23049 2001-10-23  Torbjorn Granlund  <tege (a] swox.com>
   23050 
   23051 	* mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant.
   23052 
   23053 	* mpz/millerrabin.c: New file with code from pprime.c.
   23054 	* mpz/Makefile.am: Compile millerrabin.c.
   23055 	* Makefile.am (MPZ_OBJECTS): Ditto.
   23056 	* gmp-h.in: Declare mpz_millerrabin.
   23057 
   23058 2001-10-22  Torbjorn Granlund  <tege (a] swox.com>
   23059 
   23060 	* tests/mpz/t-perfsqr.c: New file.
   23061 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   23062 
   23063 	* demos/factorize.c (factor): Check for number to factor == 0.
   23064 	(main): When invoked without arguments, read from stdin.
   23065 
   23066 	* mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd).
   23067 	Treat 0 and 1 as perfect powers.
   23068 
   23069 	* mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align.
   23070 
   23071 2001-10-21  Torbjorn Granlund  <tege (a] swox.com>
   23072 
   23073 	* mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'.
   23074 	(mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test.
   23075 	(mpn_perfect_square_p, O(n) test): Improve comments.  Combine remainder
   23076 	tests for some small primes.  Don't share code for different limb
   23077 	sizes.  Use single `if' with many `||' for better code density.
   23078 
   23079 2001-10-22  Kevin Ryde  <kevin (a] swox.se>
   23080 
   23081 	* demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static".
   23082 
   23083 	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm
   23084 	(mpn_popcount_table): Use GSYM_PREFIX.
   23085 
   23086 2001-10-19  Kevin Ryde  <kevin (a] swox.se>
   23087 
   23088 	* mpn/x86/*.asm: Add some measured speeds on various x86s.
   23089 
   23090 	* tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a
   23091 	windows DLL, because certain global variable usages won't compile.
   23092 
   23093 	* configure.in (AC_CHECK_FUNCS): Add alarm.
   23094 	* tests/spinner.c: Conditionalize alarm and SIGALRM availability, for
   23095 	the benefit of mingw32.
   23096 
   23097 	* acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size
   23098 	on COFF.
   23099 
   23100 	* acinclude.m4 (GMP_PROG_HOST_CC): New macro.
   23101 	* configure.in: Use it for windows DLL cross-compiles.
   23102 	* aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC
   23103 	in the generated libtool script.
   23104 
   23105 	* aclocal.m4, configure: Regenerate with libtool patch to suppress
   23106 	warnings when probing command line limit on FreeBSD.
   23107 
   23108 	* demos/qcn.c (M_PI): Define if not already provided, helps mingw32.
   23109 
   23110 2001-10-17  Kevin Ryde  <kevin (a] swox.se>
   23111 
   23112 	* printf/doprnt.c: Use <stdint.h> for intmax_t.
   23113 
   23114 	* longlong.h: Recognise __sparcv8 for gcc on Solaris.  Reported by
   23115 	Mark Mentovai <mark (a] mentovai.com>.
   23116 
   23117 	* gmp-impl.h (gmp_allocated_string): No need for inline on member funs.
   23118 
   23119 2001-10-16  Kevin Ryde  <kevin (a] swox.se>
   23120 
   23121 	* gmp.texi (Debugging): Add mpatrol.
   23122 	(Integer Comparisons, Comparing Rationals, Float Comparison): Index
   23123 	entries for sign tests.
   23124 	(I/O of Floats): Clarify mpf_out_str exponent is in decimal.
   23125 	(C++ Formatted Output): mpf_t operator<< exponent now in decimal.
   23126 	(FFT Multiplication): Use an ascii art sigma.
   23127 	(Contributors): Add Gerardo Ballabio.
   23128 
   23129 	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t
   23130 	exponent in decimal, irrespective of ios::hex or ios::oct.
   23131 	* tests/cxx/t-ostream.cc (check_mpf): Update.
   23132 
   23133 	* printf/doprnt.c: Support %lln and %hhn.
   23134 
   23135 	* mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the
   23136 	initial carry (helps the submul_1c case), and improve the comments.
   23137 
   23138 2001-10-11  Kevin Ryde  <kevin (a] swox.se>
   23139 
   23140 	* acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro.
   23141 
   23142 	* ltmain.sh: Send some rm errors to /dev/null, helps during compiles
   23143 	on Solaris 2.7 and HP-UX 10.
   23144 
   23145 	* tal-notreent.c: Renamed from stack-alloc.c.
   23146 	* Makefile.am, acinclude.m4, gmp-impl.h: Update.
   23147 
   23148 	* gmp-h.in: Don't give both prototypes and inlines, except on gcc.
   23149 
   23150 	* gmp-h.in, gmp-impl.h: Use #includes to get necessary standard
   23151 	classes, add std:: to prototypes.
   23152 	* cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std".
   23153 	* acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto.
   23154 
   23155 	* tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with
   23156 	automake patch to avoid Ultrix problem with empty $(TESTS).
   23157 
   23158 	* */Makefile.in: Regenerate with automake patch to only rm *_.c in
   23159 	"make clean" when ansi2knr actually in use, helps DOS 8.3.
   23160 
   23161 	* Makefile.in: Regenerate with automake patch to fix stamp-h
   23162 	numbering, avoiding an unnecessary config.status run.
   23163 
   23164 2001-10-09  Torbjorn Granlund  <tege (a] swox.com>
   23165 
   23166 	* mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels.
   23167 	Quote L reloc operator.
   23168 
   23169 	* gmp-impl.h: Declare class string.
   23170 
   23171 	* mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further
   23172 	expansion.
   23173 
   23174 	* mpn/alpha/ev6/mul_1.asm: New file.
   23175 
   23176 2001-10-09  Kevin Ryde  <kevin (a] swox.se>
   23177 
   23178 	* gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs.
   23179 	(Build Options): Note macos directory.
   23180 	(Notes for Package Builds): GMP 4 series binary compatible with 3.
   23181 	(Known Build Problems): Remove $* and ansi2knr note, now fixed, except
   23182 	possibly under --host=none.
   23183 	(Formatted Output Strings): Remove -1 prec for all digits.
   23184 
   23185 	* mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos).
   23186 	* mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz.
   23187 
   23188 	* printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe
   23189 	prec -1 meaning all digits.
   23190 
   23191 	* acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq".
   23192 	(GMP_HPC_HPPA_2_0): Print version string to config.log.
   23193 
   23194 	* Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice
   23195 	in NEWS file is too big).
   23196 	(dist-hook): Don't distribute numbered or unnumbered emacs backups.
   23197 
   23198 	* Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff.
   23199 
   23200 2001-10-09  Gerardo Ballabio  <ballabio (a] sissa.it>
   23201 
   23202 	* cxx/isfuns.cc: New file.
   23203 	* gmp-impl.h: Add prototypes.
   23204 	* cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files.
   23205 	* gmp-h.in: Add prototypes.
   23206 	* gmpxx.h, mpfrxx.h: New files.
   23207 
   23208 2001-10-08  Kevin Ryde  <kevin (a] swox.se>
   23209 
   23210 	* configure.in (with_tags): Establish a default based on --enable-cxx.
   23211 
   23212 	* aclocal.m4: Regenerate with libtool patches for sed char range to
   23213 	help Cray, LTCC quotes and +Z warnings grep to help HP-UX.
   23214 
   23215 	* gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t,
   23216 	doprnt_final_t): Use _PROTO.
   23217 
   23218 2001-10-05  Torbjorn Granlund  <tege (a] swox.com>
   23219 
   23220 	* mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX.
   23221 
   23222 	* mpn/hppa: Convert files to `.asm'.
   23223 
   23224 2001-10-05  Kevin Ryde  <kevin (a] swox.se>
   23225 
   23226 	* mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use
   23227 	cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS.
   23228 	* mpn/cpp-ccas: New file.
   23229 	* mpn/Makefile.am (EXTRA_DIST): Add it.
   23230 
   23231 	* tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses
   23232 	to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES.  Avoids
   23233 	macro expansion problems on Cray.
   23234 
   23235 	* configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier.
   23236 
   23237 2001-10-04  Torbjorn Granlund  <tege (a] swox.com>
   23238 
   23239 	* mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was
   23240 	1-based); shift 2 (was 1) when making bit mask.  These two changes
   23241 	avoid undefined shift counts.
   23242 	(gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values.
   23243 
   23244 	* mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c.
   23245 
   23246 2001-10-04  Kevin Ryde  <kevin (a] swox.se>
   23247 
   23248 	* gmp.texi (Build Options): Add --enable-cxx.
   23249 	(Notes for Particular Systems): Mention pentium4 performance and SSE2.
   23250 	(Known Build Problems): Remove vax jsobgtr note, no longer needed.
   23251 	(Converting Floats): Tweak mpf_get_str description.
   23252 	(Low-level Functions): Correction to mpn_gcdext destination space
   23253 	requirements.
   23254 	(C++ Formatted Output): New section.
   23255 	(Language Bindings): Add ALP
   23256 	(Contributors): Add Paul Zimmermann's square root, update my things.
   23257 
   23258 	* acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler
   23259 	errors to config.log.
   23260 
   23261 	* mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed.
   23262 
   23263 	* mpn/x86/*.asm: Change references to old README.family to just README.
   23264 
   23265 	* mpz/README: Remove file, now adequately covered in the manual.
   23266 
   23267 2001-10-03  Torbjorn Granlund  <tege (a] swox.com>
   23268 
   23269 	* mpn/x86/pentium4/copyi.asm: New file.
   23270 	* mpn/x86/pentium4/copyd.asm: New file.
   23271 
   23272 	* gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR
   23273 	macros for CRAY systems.
   23274 	(CRAY _MPN_COPY): Delete.
   23275 
   23276 2001-10-02  Kevin Ryde  <kevin (a] swox.se>
   23277 
   23278 	* tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to
   23279 	avoid compiler warnings on sco.
   23280 
   23281 	* mpbsd/Makefile.am: Compile mpz files directly, no copying.
   23282 	Use mpz/add.c and mpz/sub.c rather than mpz/aors.c.
   23283 	(INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz).
   23284 
   23285 	* mpz/aors.h: Renamed from mpz/aors.c.
   23286 	* mpz/add.c, mpz/sub.c: New files, using mpz/aors.h.
   23287 	* mpz/aors_ui.h: Renamed from mpz/aors_ui.c.
   23288 	* mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h.
   23289 	* mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c.
   23290 	* mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files.
   23291 	* mpz/mul_i.h: Renamed from mpz/mul_siui.c.
   23292 	* mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h.
   23293 	* mpz/Makefile.am: Consequent updates.
   23294 	(INCLUDES): Remove -DOPERATION_$*.
   23295 
   23296 	* mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c.
   23297 	* mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files.
   23298 	* mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c.
   23299 	* mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files.
   23300 	* mpf/Makefile.am: Consequent updates.
   23301 	(INCLUDES): Remove -DOPERATION_$*.
   23302 
   23303 	* cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc
   23304 	as cases in a switch, they're not constant in g++ 3.0.
   23305 
   23306 	* mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj):
   23307 	Locate source file with test -f the same as automake.
   23308 	(.S): Let CCAS do the preprocessing, and run libtool for .S.lo.
   23309 	(.asm.lo): Run libtool via m4-ccas to get new style foo.lo right.
   23310 	(COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake.
   23311 	* mpn/m4-ccas: New file.
   23312 	* mpn/Makefile.am (EXTRA_DIST): Add it.
   23313 	* mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT').
   23314 	* mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set.
   23315 	* configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed.
   23316 
   23317 	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when
   23318 	vsnprintf not available.
   23319 
   23320 	* mpn/underscore.h: Remove file, not used since m68k converted to asm.
   23321 	* mpn/Makefile.am (EXTRA_DIST): Remove it.
   23322 
   23323 	* tests/refmpz.c: Add <stdlib.h>, for free().
   23324 
   23325 2001-10-01  Torbjorn Granlund  <tege (a] swox.com>
   23326 
   23327 	* mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic
   23328 	simplifications.
   23329 	* mpn/x86/pentium4/sse2/addmul_1.asm: Comment.
   23330 
   23331 2001-10-01  Kevin Ryde  <kevin (a] swox.se>
   23332 
   23333 	* configure.in (--enable-cxx): New option for C++ support.
   23334 	Add cxx and tests/cxx subdirectories.
   23335 	* ltmain.sh, aclocal.m4: Update to libtool 2001-09-30.
   23336 
   23337 	* cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc,
   23338 	cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files.
   23339 	* Makefile.am: Add them, in new libgmpxx.
   23340 	* gmp-h.in, gmp-impl.h: Prototypes and support.
   23341 	* tests/cxx/Makefile.am, tests/cxx/Makefile.in,
   23342 	tests/cxx/t-ostream.cc: New files.
   23343 
   23344 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL,
   23345 	SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for
   23346 	destinations.  Found by Torbjorn.
   23347 
   23348 	* gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0.
   23349 	* mp-h.in (__GNU_MP__): Ditto.
   23350 	* gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0.
   23351 
   23352 	* acinclude.m4 (GMP_PROG_CXX_WORKS): New macro.
   23353 	(GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out.
   23354 
   23355 	* gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c.
   23356 	(GMP_ASPRINTF_T_INIT): New macro.
   23357 	(GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED().
   23358 	* printf/vasprintf.c: Use these.
   23359 
   23360 	* printf/asprntffuns.c: New file.
   23361 	* printf/Makefile.am, Makefile.am: Add it.
   23362 	* printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h
   23363 	(__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final):
   23364 	Move to asprntffuns.c, rename to __gmp and make global, remove
   23365 	spurious formal parameters from __gmp_asprintf_final.
   23366 
   23367 	* configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path.
   23368 	(*-*-mingw*): Don't assemble with -DPIC (as per cygwin).
   23369 
   23370 	* printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal
   23371 	parameters.
   23372 
   23373 	* tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help
   23374 	Cray vector systems.
   23375 
   23376 	* tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to
   23377 	facilitate cut and paste when re-running.
   23378 	* tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints.
   23379 
   23380 2001-09-30  Kent Boortz  <kent (a] swox.com>
   23381 
   23382 	* macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4.
   23383 	* gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW.
   23384 
   23385 2001-09-30  Torbjorn Granlund  <tege (a] swox.com>
   23386 
   23387 	* mpn/cray/ieee/submul_1.c: Rewrite.  Streamline multiplications;
   23388 	use `majority' logic.
   23389 
   23390 2001-09-27  Torbjorn Granlund  <tege (a] swox.com>
   23391 
   23392 	* gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug.
   23393 
   23394 2001-09-26  Torbjorn Granlund  <tege (a] swox.com>
   23395 
   23396 	* mpn/x86/pentium4/sse2/gmp-mparam.h: New file.
   23397 
   23398 2001-09-26  Kevin Ryde  <kevin (a] swox.se>
   23399 
   23400 	* mpn/x86/pentium4/sse2/dive_1.asm: New file.
   23401 	* mpn/x86/pentium4/sse2/submul_1.asm: New file.
   23402 	* mpn/x86/pentium4/sse2/sqr_basecase.asm: New file.
   23403 
   23404 	* mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn.
   23405 	* mpn/x86/pentium/copyi.asm: New file, ditto.
   23406 	* mpn/x86/pentium/com_n.asm: Rewrite, ditto.
   23407 
   23408 	* printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case
   23409 	vsnprintf trashes it.
   23410 	* printf/vasprintf.c (gmp_asprintf_format): Ditto.
   23411 	* gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h.
   23412 
   23413 	* tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax
   23414 	limited float range.
   23415 
   23416 2001-09-23  Torbjorn Granlund  <tege (a] swox.com>
   23417 
   23418 	* mpn/vax/lshift.s: Change `jsob*' to `sob*'.
   23419 	* mpn/vax/rshift.s: Likewise.
   23420 
   23421 2001-09-23  Kevin Ryde  <kevin (a] swox.se>
   23422 
   23423 	* mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code.
   23424 
   23425 	* printf/doprnt.c: Use va_copy for va_list variables, copy function
   23426 	parameter in case it's call-by-reference.
   23427 
   23428 	* tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function.
   23429 	(speed_cpu_frequency_table): Use it.
   23430 
   23431 	* tune/many.pl (popcount, hamdist): Fix declared return value.
   23432 	(sb_divrem_mn): Remove a spurious duplicate entry.
   23433 	(CLEAN): Add tmp-$objbase.c when using that for .h files.
   23434 	(macro_speed): Give a default for .h files.
   23435 	Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate.
   23436 
   23437 	* tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL,
   23438 	SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT,
   23439 	SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N,
   23440 	SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return
   23441 	values so gcc 3 won't discard calls to pure or const functions.
   23442 	(mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE.
   23443 
   23444 2001-09-22  Torbjorn Granlund  <tege (a] swox.com>
   23445 
   23446 	* mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder
   23447 	for real code, hiding the default x86 mul_basecase.asm.
   23448 
   23449 2001-09-22  Kevin Ryde  <kevin (a] swox.se>
   23450 
   23451 	* configure.in (AC_PREREQ): Bump to 2.52.
   23452 	(m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_.
   23453 	(AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf.
   23454 	* acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro.
   23455 
   23456 	* tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0.
   23457 	(malloc_region): Need fd=-1 for mmap MAP_ANON on BSD.
   23458 
   23459 2001-09-20  Torbjorn Granlund  <tege (a] swox.com>
   23460 
   23461 	* mpz/cong.c (mpz_congruent_p): Fix one-limb c<d test.
   23462 
   23463 	* longlong.h: Rewrite __i370__ smul_ppmm; enable also for __s390__.
   23464 
   23465 	* configure.in: Add support for IBM 360, 370, 390 families.
   23466 
   23467 2001-09-20  Kevin Ryde  <kevin (a] swox.se>
   23468 
   23469 	* mpn/x86/pentium4/sse2/diveby3.asm: New file.
   23470 	* mpn/x86/pentium4/sse2/mode1o.asm: New file.
   23471 
   23472 2001-09-16  Kevin Ryde  <kevin (a] swox.se>
   23473 
   23474 	* printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g.
   23475 	* tests/printf/t-printf.c (check_f): More test cases.
   23476 
   23477 2001-09-15  Torbjorn Granlund  <tege (a] swox.com>
   23478 
   23479 	* gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB.
   23480 	Postpone zeroing of (cout).
   23481 	(__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes.
   23482 
   23483 2001-09-14  Kevin Ryde  <kevin (a] swox.se>
   23484 
   23485 	* ChangeLog: Merge in tests/rand/ChangeLog.
   23486 	* tests/rand/ChangeLog: Remove file.
   23487 
   23488 	* printf/doprnt.c: Fix handling of a plain format after a GMP one; no
   23489 	need to protect against negative precision internally.
   23490 	* tests/printf/t-printf.c (check_misc): More checks.
   23491 
   23492 2001-09-12  Torbjorn Granlund  <tege (a] swox.com>
   23493 
   23494 	* mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have
   23495 	HAVE_NATIVE_... defined.
   23496 
   23497 2001-09-11  Kevin Ryde  <kevin (a] swox.se>
   23498 
   23499 	* configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power,
   23500 	__GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs.
   23501 	* gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc
   23502 	code, rather than preprocessor defines.
   23503 
   23504 	* acinclude.m4, configure.in (GMP_H_ANSI): New macro.
   23505 
   23506 	* gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc.
   23507 
   23508 	* gmp-h.in, version.c (gmp_version): Make the pointer "const" as well
   23509 	as the string.
   23510 
   23511 	* acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when
   23512 	invoked under another name (cc, xlc128, etc).
   23513 	* acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised.
   23514 
   23515 2001-09-11  Torbjorn Granlund  <tege (a] swox.com>
   23516 
   23517 	* gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc.
   23518 	* mp-h.in: Likewise.
   23519 
   23520 2001-09-10  Torbjorn Granlund  <tege (a] swox.com>
   23521 
   23522 	* mpn/x86/pentium4/mmx/lshift.asm: New file.
   23523 	* mpn/x86/pentium4/mmx/rshift.asm: New file.
   23524 
   23525 	* tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug.
   23526 	(check_decr_data): Likewise.
   23527 
   23528 2001-09-08  Kevin Ryde  <kevin (a] swox.se>
   23529 
   23530 	* gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist
   23531 	behaviour, clarify mpz_popcount a touch.
   23532 	(Language Bindings): Add mlton, fix alphabetical order.
   23533 	(Single Limb Division): Describe 2 or 1/2 limbs at a time style.
   23534 
   23535 	* configure.in (AC_CHECK_FUNCS): Add mmap.
   23536 	* tests/devel/try.c (malloc_region): Use mmap if available.
   23537 
   23538 	* tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function.
   23539 	* tests/mpz/t-hamdist.c: New file.
   23540 	* tests/mpz/Makefile.am: Add it.
   23541 
   23542 	* mpz/hamdist.c: Support neg/neg operands.
   23543 
   23544 	* macos/Makefile.in: Remove dual compile of mpq/aors.c and
   23545 	mpn/generic/popham.c.
   23546 
   23547 	* gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c.
   23548 	For 64-bits reuse 0x33...33 constant.
   23549 	* mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c,
   23550 	use popc_limb macro, remove unused "i", don't bother with "register"
   23551 	qualifiers.
   23552 	* mpn/generic/popham.c: Remove file.
   23553 
   23554 	* ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one
   23555 	ltdll.c generation patch.
   23556 	* doc/configuration: Misc updates, note libtool patch used.
   23557 
   23558 	* mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed
   23559 	addressing, to get 4.0 c/l flat.
   23560 
   23561 	* tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators.
   23562 
   23563 	* tests/misc.c (mpz_negrandom): Use given rstate, not RANDS.
   23564 
   23565 2001-09-07  Torbjorn Granlund  <tege (a] swox.com>
   23566 
   23567 	* mpn/x86/pentium4/sse2/addmul_1.asm: New file.
   23568 
   23569 2001-09-04  Kevin Ryde  <kevin (a] swox.se>
   23570 
   23571 	* tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to
   23572 	avoid duplicating conditionals.
   23573 	(speed_cpu_frequency_sco_etchw): New function.
   23574 	(speed_cpu_frequency_table): Use it.
   23575 	* tune/README: Mention SCO openunix 8 /etc/hw.
   23576 
   23577 	* mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64.
   23578 	Store back a carry for limb<long.
   23579 
   23580 	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/k7/mmx/mod_1.asm,
   23581 	mpn/x86/p6/mmx/divrem_1.asm: Fix a couple of comments.
   23582 
   23583 	* config.guess: Give m68020 for 68020 or better, not m68k.
   23584 	* configfsf.guess: Update to 2001-09-04.
   23585 
   23586 2001-09-02  Kevin Ryde  <kevin (a] swox.se>
   23587 
   23588 	* configure.in (m68k-*-*): Let m68k mean 68000, not 68020.
   23589 	* gmp.texi (Notes for Particular Systems): Update.
   23590 
   23591 	* gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int
   23592 	might be only 16 bits.
   23593 
   23594 	* tests/mpq/t-aors.c: New file.
   23595 	* tests/mpq/Makefile.am: Add it.
   23596 
   23597 	* tests/refmpq.c: New file.
   23598 	* tests/Makefile.am: Add it.
   23599 	* tests/tests.h: Add prototypes.
   23600 
   23601 	* mpq/aors.c: Share object code for mpq_add and mpq_sub.
   23602 	* Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now.
   23603 
   23604 	* tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine.
   23605 
   23606 2001-08-30  Kevin Ryde  <kevin (a] swox.se>
   23607 
   23608 	* mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4.
   23609 
   23610 	* gmp-h.in: Put #define renamings with prototypes.
   23611 	Remove commented out #defines of gmp-impl.h things.
   23612 	(mpn_invert_limb): Remove #define, already in gmp-impl.h.
   23613 	(mpn_lshiftc, mpn_rshiftc): Remove #defines, unused.
   23614 	(mpn_addsub_nc): Add prototype to #define.
   23615 
   23616 2001-08-28  Kevin Ryde  <kevin (a] swox.se>
   23617 
   23618 	* gmp.texi: Switch to GFDL.
   23619 	(Top): Arrange copyright and conditions to appear here too.  For
   23620 	clarity have all this before the miscellaneous macro definitions.
   23621 	(Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo
   23622 	programs.
   23623 	(Contributors, References): Use @appendix rather than @unnumbered.
   23624 	(GNU Free Documentation License): New appendix.
   23625 	(@contents): Move to start of document, use only for tex (not html).
   23626 	(Debugging): Add leakbug.
   23627 	(Build Options): Add pentium4.
   23628 	(I/O of Rationals): Add mpq_inp_str.
   23629 
   23630 	* fdl.texi: New file, with two @appendix directive tweaks.
   23631 	* Makefile.am (gmp_TEXINFOS): Add it.
   23632 
   23633 	* tests/mpz/io.c: Check mpz_inp_str return against ftell, send error
   23634 	messages just to stdout.
   23635 
   23636 	* mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function,
   23637 	and share a __gmp_free_func call.
   23638 	* mpq/inp_str.c: New file.
   23639 	* Makefile.am, mpq/Makefile.am: Add it.
   23640 	* tests/mpq/t-inp_str.c: New file.
   23641 	* tests/mpq/Makefile.am (check_PROGRAMS): Add it.
   23642 
   23643 	* configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power,
   23644 	HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs
   23645 	for processor families.
   23646 	* gmp-impl.h: Use them, rather than cpp defines.
   23647 
   23648 	* demos/Makefile.am (primes_LDADD): Use $(LIBM), for log().
   23649 
   23650 	* tune/many.pl, tune/Makefile.am: Fix some from clean and distclean.
   23651 
   23652 2001-08-26  Kevin Ryde  <kevin (a] swox.se>
   23653 
   23654 	* tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs.
   23655 	(TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code.
   23656 
   23657 	* tests/printf/t-printf.c (check_plain): Don't compare "all digits"
   23658 	precision against plain printf.
   23659 
   23660 	* tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS.
   23661 
   23662 	* configure, config.in, INSTALL.autoconf: Update to autoconf 2.52.
   23663 	* */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to
   23664 	automake 1.5.
   23665 	* configfsf.guess, configfsf.sub: Update to 2001-08-23.
   23666 
   23667 2001-08-24  Torbjorn Granlund  <tege (a] swox.com>
   23668 
   23669 	* demos/primes.c: Complete rewrite.
   23670 
   23671 2001-08-24  Kevin Ryde  <kevin (a] swox.se>
   23672 
   23673 	* longlong.h: Test __ppc__ for apple darwin cc, reported by Jon
   23674 	Becker.  Also test __POWERPC__, PPC and __vxworks__.
   23675 
   23676 	* tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC.
   23677 
   23678 2001-08-22  Kevin Ryde  <kevin (a] swox.se>
   23679 
   23680 	* configure.in (x86 mmx): Correction to mmx path stripping.
   23681 
   23682 2001-08-17  Kevin Ryde  <kevin (a] swox.se>
   23683 
   23684 	* configure.in, acinclude.m4, Makefile.am, printf/Makefile.am,
   23685 	tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++
   23686 	support, for the time being.
   23687 	* printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc,
   23688 	osmpz.cc, tests/printf/t-ostream.cc: Remove files.
   23689 
   23690 	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single
   23691 	__gmp_doprnt_mpf, rather than a separate ndigits calculation.
   23692 	* printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi,
   23693 	tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf.
   23694 	* printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let
   23695 	negative "*" style width mean left justify.
   23696 
   23697 	* gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro,
   23698 	extracted from mpf/get_str.c.
   23699 
   23700 	* libmp.sym: New file.
   23701 	* Makefile.am (libmp_la_LDFLAGS): Use it.
   23702 	(DISTCLEANFILES): Remove asm-syntax.h, no longer generated.
   23703 	Remove some comments about "make check".
   23704 
   23705 	* demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf,
   23706 	change get_str to string/exponent for floats, remove separate
   23707 	mpf_get_str.
   23708 	* demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g").
   23709 	* demos/perl/typemap: Fix some duplicate string entries.
   23710 	* demos/perl/test.pl: Update tests, split overloaded constants into ...
   23711 	* demos/perl/test2.pl: ... this new file.
   23712 	* demos/perl/Makefile.PL (clean): Add test.tmp.
   23713 
   23714 2001-08-16  Kevin Ryde  <kevin (a] swox.se>
   23715 
   23716 	* printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1
   23717 	return value handling.
   23718 
   23719 	* demos/calc/calc.y: Reposition "%{" so copyright notice gets into
   23720 	generated files.
   23721 
   23722 	* INSTALL: Use gmp_printf.
   23723 
   23724 2001-08-14  Kevin Ryde  <kevin (a] swox.se>
   23725 
   23726 	* mpz/inp_str.c: Fix return value (was 1 too big).
   23727 	* tests/mpz/t-inp_str.c: New file.
   23728 	* tests/mpz/Makefile.am: Add it.
   23729 
   23730 	* mpn/x86/pentium4/sse2/add_n.asm: New file.
   23731 	* mpn/x86/pentium4/sse2/sub_n.asm: New file.
   23732 	* mpn/x86/pentium4/sse2/mul_1.asm: New file.
   23733 
   23734 2001-08-12  Kevin Ryde  <kevin (a] swox.se>
   23735 
   23736 	* printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return
   23737 	value (it's a pointer on SunOS 4).
   23738 
   23739 	* acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros.
   23740 	* configure.in: Add pentium4 support.
   23741 	* mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New
   23742 	directories.
   23743 	* mpn/x86/README: Update.
   23744 
   23745 2001-08-10  Torbjorn Granlund  <tege (a] swox.com>
   23746 
   23747 	* demos/pexpr.c (setup_error_handler): Catch also SIGABRT.
   23748 
   23749 2001-07-31  Kevin Ryde  <kevin (a] swox.se>
   23750 
   23751 	* tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps.
   23752 
   23753 	* gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h.
   23754 
   23755 	* tune/Makefile.am (EXTRA_DIST): Add many.pl.
   23756 
   23757 2001-07-28  Kevin Ryde  <kevin (a] swox.se>
   23758 
   23759 	* gmp.texi (Random Number Functions): Old rand functions no longer use
   23760 	the C library.
   23761 
   23762 	* configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro.
   23763 
   23764 	* mpn/generic/get_str.c: Add an ASSERT for high limb non-zero.
   23765 
   23766 2001-07-24  Kevin Ryde  <kevin (a] swox.se>
   23767 
   23768 	* gmp.texi (Build Options): Add --enable-cxx.
   23769 	(Converting Floats): Note mpf_get_str only generates accurately
   23770 	representable digits.
   23771 	(Low-level Functions): Note mpn_get_str requires non-zero high limb.
   23772 	(Formatted Output): New chapter.
   23773 	(Multiplication Algorithms): Use @quotation with @multitable.
   23774 	(Toom-Cook 3-Way Multiplication): Ditto.
   23775 
   23776 	* tests/memory.c (tests_free_nosize): New function.
   23777 	* tests/tests.h (tests_allocate etc): Add prototypes.
   23778 
   23779 	* tests/printf: New directory.
   23780 	* tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files.
   23781 	* configure.in, tests/Makefile.am: Add them.
   23782 
   23783 	* configure.in, acinclude.m4 (GMP_PROG_CXX): New macro.
   23784 	* configure.in (--enable-cxx): New option.
   23785 	(AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h.
   23786 	(AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t,
   23787 	quad_t.
   23788 	(AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf,
   23789 	strchr, vsnprintf.
   23790 	(AC_CHECK_DECLS): Add vfprintf.
   23791 
   23792 	* gmp-h.in, gmp-impl.h: Additions for gmp_printf etc.
   23793 
   23794 	* printf: New directory.
   23795 	* printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc,
   23796 	doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c,
   23797 	obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c,
   23798 	printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c,
   23799 	vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New
   23800 	files.
   23801 	* configure.in, Makefile.am: Add them.
   23802 
   23803 	* configure.in (HAVE_INLINE): Remove AC_DEFINE, unused.
   23804 	(AC_CHECK_TYPES): Don't test for void, assume it always exists.
   23805 
   23806 	* gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro.
   23807 	* mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it.
   23808 
   23809 	* gmp-impl.h (mpn_fib2_ui): Use __MPN.
   23810 	(MPN_COPY_DECR): Fix an ASSERT.
   23811 	(CAST_TO_VOID): Remove macro.
   23812 
   23813 	* gmp-h.in (mpq_out_str): Give #define even without prototype.
   23814 	(mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines.
   23815 
   23816 	* tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID.
   23817 
   23818 2001-07-23  Torbjorn Granlund  <tege (a] swox.com>
   23819 
   23820 	* config.guess: Recognize pentium4.
   23821 	* config.sub: Recognize pentium4.
   23822 
   23823 2001-07-17  Kevin Ryde  <kevin (a] swox.se>
   23824 
   23825 	* gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just
   23826 	one version.
   23827 	(__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub.
   23828 	(mpn_add, mpn_sub): Use them.
   23829 	(__GMPN_COPY_REST): New macro.
   23830 
   23831 	* gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and
   23832 	__GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of
   23833 	LSYM_PREFIX.
   23834 
   23835 2001-07-11  Kevin Ryde  <kevin (a] swox.se>
   23836 
   23837 	* gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91.
   23838 
   23839 	* mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c.
   23840 	* mpz/fits_u.c: Remove file.
   23841 	* mpz/Makefile.am, macos/Makefile.in: Update.
   23842 
   23843 	* tests/refmpn.c,tests.h (refmpn_copy): New function.
   23844 	* tests/devel/try.c (TYPE_ZERO): No return value from call.
   23845 	(TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with
   23846 	TYPE_MOD_1 and TYPE_MOD_1C.
   23847 	(MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing.
   23848 
   23849 2001-07-10  Kevin Ryde  <kevin (a] swox.se>
   23850 
   23851 	* gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc.
   23852 	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto.
   23853 	* mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files.
   23854 
   23855 	* mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on
   23856 	i386 gcc 2.95.x), remove a bogus comment about quotient.
   23857 
   23858 	* errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero,
   23859 	__gmp_sqrt_of_negative): New functions.
   23860 	* gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them.
   23861 
   23862 	* randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms.
   23863 
   23864 2001-07-07  Kevin Ryde  <kevin (a] swox.se>
   23865 
   23866 	* configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin.
   23867 
   23868 	* tests/mpbsd/t-itom.c: Renamed from t-misc.c.
   23869 	* tests/mpbsd/t-misc.c: Remove file.
   23870 	* tests/mpbsd/Makefile.am: Update.
   23871 
   23872 	* tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c.
   23873 	* tests/mpf/t-misc.c: Remove file.
   23874 	* tests/mpf/Makefile.am: Update.
   23875 
   23876 	* tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c.
   23877 	* tests/mpz/t-misc.c: Remove file.
   23878 	* tests/mpz/Makefile.am: Update.
   23879 
   23880 	* stack-alloc.c: Add some alignment ASSERTs.
   23881 
   23882 	* gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow.
   23883 
   23884 	* tests/devel/try.c (MPN_ZERO): Add testing.
   23885 	* tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring.
   23886 
   23887 	* mpn/x86/divrem_1.asm: Update a remark about gcc and "loop".
   23888 
   23889 	* tests/mpq/t-cmp_si.c: New file.
   23890 	* tests/mpq/Makefile.am: Add it.
   23891 
   23892 	* tests/misc.c,tests.h (mpq_set_str_or_abort): New function.
   23893 
   23894 	* mpq/cmp_si.c: New file.
   23895 	* Makefile.am, mpq/Makefile.am: Add it.
   23896 	* gmp-h.in (mpq_cmp_si): Add prototype.
   23897 	* gmp.texi (Comparing Rationals): Add doco.
   23898 
   23899 	* gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add
   23900 	notes on what symbols are for what systems.
   23901 
   23902 2001-07-06  Torbjorn Granlund  <tege (a] swox.com>
   23903 
   23904 	* longlong.h (ibm032 umul_ppmm): Fix typo.
   23905 	* longlong.h (sparclite sdiv_qrnnd): Fix typo.
   23906 
   23907 2001-07-03  Kevin Ryde  <kevin (a] swox.se>
   23908 
   23909 	* mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1.
   23910 	* mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and
   23911 	pointer.
   23912 
   23913 	* acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h
   23914 	is wanted at configure time.
   23915 	* acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE):
   23916 	New macros.
   23917 
   23918 	* gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++.
   23919 	(mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE.
   23920 	* gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused.
   23921 	* mpn/generic/add.c, mpn/generic/sub.c: New files.
   23922 	* mpn/generic/inlines.c: Remove file.
   23923 	* configure.in, mpn/Makefile.am: Update.
   23924 
   23925 	* gmp.texi (GMP Basics): Note the need for stdio.h to get FILE
   23926 	prototypes.
   23927 
   23928 2001-07-01  Kevin Ryde  <kevin (a] swox.se>
   23929 
   23930 	* gmp.texi (Build Options, Reentrancy): Updates for new
   23931 	--enable-alloca behaviour.
   23932 	(Debugging): Describe --enable-alloca=debug.
   23933 	(Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs.
   23934 	(Low-level Functions): Give a formula for mpn_gcdext cofactor.
   23935 	(Factorial Algorithm): New section.
   23936 	(Binomial Coefficients Algorithm): New section.
   23937 	Misc tweaks elsewhere.
   23938 
   23939 	* mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups,
   23940 	no functional changes.
   23941 
   23942 	* mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values.
   23943 	* gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when
   23944 	2*UMUL_TIME < UDIV_TIME.
   23945 
   23946 	* mpn/x86/p6/dive_1.asm: New file.
   23947 
   23948 	* mpn/x86/dive_1.asm: New file.
   23949 	* mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always.
   23950 
   23951 	* tests/refmpn.c, tests.h (refmpn_zero): New function.
   23952 	* tests/devel/try.c: Use it.
   23953 
   23954 	* tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp.
   23955 
   23956 	* tests/mpf/t-get_d.c (main): Use || not |.
   23957 
   23958 	* tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c,
   23959 	tests/mpf/reuse.c: Add string.h.
   23960 
   23961 2001-06-29  Kevin Ryde  <kevin (a] swox.se>
   23962 
   23963 	* tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI,
   23964 	SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling.
   23965 
   23966 	* gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE):
   23967 	Corrections to these to account for adding tD into E.
   23968 	(MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size
   23969 	assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them.
   23970 	(MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder.
   23971 
   23972 	* assert.c: Add stdlib.h for abort prototype.
   23973 	* tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c,
   23974 	t-gmpmax.c, t-modlinv.c: Ditto.
   23975 	* tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c,
   23976 	t-set_str.c, t-sizeinbase.c: Ditto.
   23977 	* tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto.
   23978 	* tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c,
   23979 	t-trunc.c: Ditto.
   23980 	* tests/mpbsd/allfuns.c, t-misc.c: Ditto.
   23981 
   23982 	* mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than
   23983 	mpn_incr_u.
   23984 
   23985 	* tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method.
   23986 
   23987 	* mpn/x86/k6/cross.pl: More insn exceptions.
   23988 
   23989 2001-06-23  Kevin Ryde  <kevin (a] swox.se>
   23990 
   23991 	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output
   23992 	constraints.
   23993 
   23994 	* gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant
   23995 	fits a signed byte.
   23996 
   23997 	* tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient
   23998 	with garbage.
   23999 
   24000 2001-06-20  Kevin Ryde  <kevin (a] swox.se>
   24001 
   24002 	* config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error
   24003 	messages if $CC_FOR_BUILD or program don't work.
   24004 
   24005 	* mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0).
   24006 	* tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0).
   24007 
   24008 	* tests/mpn/t-aors_1.c: New file.
   24009 	* tests/mpn/Makefile.am: Add it.
   24010 
   24011 	* gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of
   24012 	mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1,
   24013 	separate versions for gcc x86, gcc generic, and non-gcc.
   24014 	(mpn_add_1, mpn_sub_1): Use them.
   24015 	(mpn_add, mpn_sub): Ditto, to get inlines on all compilers.
   24016 	(extern "C") [__cplusplus]: Let this encompass the extern inlines too.
   24017 	* mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h.
   24018 	* configure.in, mpn/Makefile.am: Add them.
   24019 
   24020 	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX
   24021 	rather than AC_DEFINE LSYM_PREFIX.
   24022 	* gmp-h.in (__GMP_LSYM_PREFIX): New substitution.
   24023 	(__GMP_ASM_L): New macro.
   24024 	* gmp-impl.h (ASM_L): Use it.
   24025 
   24026 	* acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro.
   24027 	* gmp-impl.h: Use it for all the malloc based TMP_ALLOCs.
   24028 
   24029 	* stack-alloc.h: Remove file.
   24030 	* tal-reent.c: New file.
   24031 	* Makefile.am: Update.
   24032 
   24033 	* acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add
   24034 	malloc-reentrant method, use stack-alloc.c as malloc-notreentrant,
   24035 	make "reentrant" the default.
   24036 	* gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to
   24037 	determine the value, and demand only 4 bytes align on 32-bit systems.
   24038 	* gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of
   24039 	stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC.
   24040 	* gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations.
   24041 	* stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to
   24042 	here, use gmp-impl.h.
   24043 
   24044 	* gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro.
   24045 	* mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it.
   24046 
   24047 	* mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop.
   24048 	* mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by
   24049 	Paul, tweaked by me.
   24050 	* mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2).
   24051 
   24052 	* gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE.
   24053 
   24054 	* INSTALL: Clarify "make install", tweak formatting a bit.
   24055 
   24056 2001-06-17  Kevin Ryde  <kevin (a] swox.se>
   24057 
   24058 	* configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC,
   24059 	selected with --enable-alloca=debug.
   24060 	* tal-debug.c: New file.
   24061 	* configure.in, Makefile.am: Compile stack-alloc.c only for
   24062 	--disable-alloca.
   24063 	* assert.c (__gmp_assert_header): New function, split from
   24064 	__gmp_assert_fail.
   24065 
   24066 	* mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary
   24067 	_mpz_realloc prototype.
   24068 
   24069 	* mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3
   24070 	temporary workspace.
   24071 
   24072 2001-06-15  Kevin Ryde  <kevin (a] swox.se>
   24073 
   24074 	* tests/mpz/t-set_f.c: New file.
   24075 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   24076 
   24077 	* mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0
   24078 	test earlier, store SIZ(w) earlier.
   24079 
   24080 	* tests/t-count_zeros.c: New file.
   24081 	* tests/t-gmpmax.c: New file.
   24082 	* tests/Makefile.am (check_PROGRAMS): Add them.
   24083 
   24084 	* mp_clz_tab.c: Compile the table only if longlong.h says it's needed;
   24085 	add an internal-use-only comment.
   24086 	* tune/common.c: Force a __clz_tab for convenience when testing.
   24087 
   24088 	* mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add
   24089 	COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm.
   24090 
   24091 	* longlong.h (count_leading_zeros) [pentium]: Decide to go with float
   24092 	method for p54.
   24093 	(count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB.
   24094 	(__clz_tab): Provide a prototype only if it's needed.
   24095 
   24096 	* tests/trace.c (mpz_trace): Don't use = on structures.
   24097 	(mpn_trace): Set _mp_alloc when creating mpz.
   24098 
   24099 2001-06-12  Kevin Ryde  <kevin (a] swox.se>
   24100 
   24101 	* mpn/x86/divrem_1.asm: Amend some comments about P5 speed.
   24102 
   24103 	* tune/README: Clarify reconfigure on gmp-mparam.h update.
   24104 
   24105 	* mpn/x86/p6/copyd.asm: New file.
   24106 	* mpn/x86/p6/README: Update copyd and mod_1.
   24107 	* mpn/x86/copyd.asm: Amend some comments.
   24108 
   24109 	* gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc.
   24110 	(mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the
   24111 	generic code on gcc.
   24112 
   24113 	* gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros.
   24114 	* mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them.
   24115 	* mpz/get_d.c: Add a private mpn_zero_p.
   24116 	* mpfr/trunc.c: Use own mpn_zero_p.
   24117 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p.
   24118 	* gmp-impl.h (mpn_zero_p): Remove, no longer needed.
   24119 
   24120 	* gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an
   24121 	MPN_CMP alias in gmp-impl.h.
   24122 	* gmp-h.in (mpn_cmp): Add an inline version.
   24123 	* mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h.
   24124 
   24125 	* acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro.
   24126 	* configure.in: Call it.
   24127 	* gmp-impl.h (SItype etc): Use it.
   24128 
   24129 	* randraw.c (lc): Change mpn_mul_basecase->mpn_mul,
   24130 	mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0).
   24131 
   24132 	* longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial
   24133 	register stall on gcc < 3.
   24134 
   24135 	* gmp.texi (Introduction to GMP): Add IA-64.
   24136 	(Notes for Particular Systems): i386 means generic x86.
   24137 
   24138 	* tests/t-modlinv.c: Use tests_start and tests_end.
   24139 
   24140 2001-06-10  Kevin Ryde  <kevin (a] swox.se>
   24141 
   24142 	* gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b
   24143 	odd.  Separate the jacobi/legendre/kronecker descriptions.
   24144 	(Low-level Functions): Document mpn_mul_1 "incr" overlaps.
   24145 	(Language Bindings): New chapter.
   24146 
   24147 	* mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b
   24148 	(it wasn't documented in 3.1.1).
   24149 	* mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove
   24150 	separate entrypoints, just #define to mpz_jacobi.
   24151 	* compat.c (__gmpz_legendre): Add compatibility entrypoint.
   24152 
   24153 	* mpn/generic/mul_1.c: Allow "incr" style overlaps.
   24154 	* tests/devel/try.c (param_init): Test this.
   24155 
   24156 	* mpf/mul_ui.c: Do size==0 test earlier.
   24157 
   24158 2001-06-08  Kevin Ryde  <kevin (a] swox.se>
   24159 
   24160 	* gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast
   24161 	ULONG_MAX etc to unsigned long etc before attempting to right shift.
   24162 
   24163 	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX.
   24164 	* gmp-impl.h (ASM_L): New macro.
   24165 	(mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized
   24166 	versions.
   24167 
   24168 	* mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa
   24169 	GNU/Linux too, reported by LaMont Jones <lamont (a] smallone.fc.hp.com>.
   24170 	* mpn/hppa/README: Add some notes on this.
   24171 	* acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto.
   24172 
   24173 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c,
   24174 	fib2_ui.c.
   24175 
   24176 	* tests/mpn/t-iord_u.c: New file.
   24177 	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.
   24178 
   24179 	* configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same
   24180 	as in gmp 3.1.
   24181 	* gmp.texi (ABI and ISA): Update.
   24182 
   24183 	* gmp.texi (Build Options): Misc tweaks.
   24184 	(Notes for Particular Systems): Describe windows DLL handling.
   24185 	(Known Build Problems): DJGPP needs bash 2.04.
   24186 	(Number Theoretic Functions): mpz_invert returns 0<=r<modulus; add
   24187 	mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui.
   24188 	(Fibonacci Numbers Algorithm): Update for new formulas used.
   24189 	(Lucas Numbers Algorithm): New section.
   24190 
   24191 	* tune/speed.c,speed.h,common.c,many.pl: Add mpn_fib2_ui, mpz_fib2_ui,
   24192 	mpz_lucnum_ui, mpz_lucnum2_ui.
   24193 	* demos/expr/exprz.c,README: Add lucnum.
   24194 	* demos/perl/GMP.pm,GMP.xs,GMP/Mpz.pm,test.pl: Add fib2, lucnum,
   24195 	lucnum2.
   24196 
   24197 	* tests/mpz/t-lucnum_ui.c: New file.
   24198 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   24199 	* tests/mpz/t-fib_ui.c: Check mpz_fib2_ui too, updates for new style
   24200 	MPN_FIB2_SIZE.
   24201 
   24202 	* tune/tuneup.c, tune/Makefile.am, gmp-impl.h, mpn/*/gmp-mparam.h:
   24203 	Remove FIB_THRESHOLD, no longer required.
   24204 
   24205 	* mpz/fib2_ui.c, mpz/lucnum_ui.c mpz/lucnum2_ui.c: New files.
   24206 	* Makefile.am, mpz/Makefile.am: Add them.
   24207 	* gmp-h.in (mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui): Add
   24208 	prototypes.
   24209 
   24210 	* mpn/generic/fib2_ui.c: New file.
   24211 	* configure.in (gmp_mpn_functions): Add it.
   24212 	* gmp-impl.h (mpn_fib2_ui, FIB_TABLE, etc): Add these.
   24213 	* mpz/fib_ui.c: Rewrite.
   24214 
   24215 	* acinclude.m4 (GMP_C_SIZES): Fix _LONG_LONG_LIMB define for mp_limb_t
   24216 	size test.
   24217 	(GMP_FUNC_ALLOCA): Add dummy __GMP_BITS_PER_MP_LIMB for gmp-h.in work.
   24218 
   24219 	* configure.in (CPPFLAGS): Remove -D__GMP_WITHIN_GMP, don't want it
   24220 	everywhere.
   24221 	* Makefile.am, mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am,
   24222 	mpf/Makefile.am, mpbsd/Makefile.am (INCLUDES): Set -D__GMP_WITHIN_GMP.
   24223 
   24224 	* configure.in (*-*-msdosdjgpp*): Forcibly disable shared libraries,
   24225 	to make libtests.la work.
   24226 
   24227 	* acconfig.h (_LONG_LONG_LIMB, HAVE_MPFR): Remove dummy defines, no
   24228 	longer needed.
   24229 
   24230 	* mpz/set_ui.c: Store to _mp_d[0] unconditionally.
   24231 
   24232 2001-05-27  Kevin Ryde  <kevin (a] swox.se>
   24233 
   24234 	* configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs.
   24235 
   24236 2001-05-26  Kevin Ryde  <kevin (a] swox.se>
   24237 
   24238 	* gmp.texi (ABI and ISA, Reentrancy): Minor tweaks
   24239 	(Notes for Package Builds): Note gmp.h is a generated file.
   24240 	(Notes for Particular Systems): -march=pentiumpro is used for gcc
   24241 	2.95.4 and up.
   24242 	(Assembler Loop Unrolling): Mention non power-of-2 unrolling.
   24243 	(Internals): New chapter.
   24244 	* mpf/README: Remove file.
   24245 
   24246 	* demos/expr/README: Miscellaneous rewordings.
   24247 
   24248 	* demos/perl: New directory.
   24249 	* demos/Makefile.am: Add it.
   24250 	* demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap,
   24251 	GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl:
   24252 	New files.
   24253 
   24254 	* configure, aclocal.m4: Update to autoconf 2.50.
   24255 
   24256 	* configure, aclocal.m4, ltmain.sh: Update to libtool 1.4.
   24257 
   24258 	* configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to
   24259 	automake 1.4f.
   24260 	* Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info.
   24261 	* mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling.
   24262 	* mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c
   24263 	in libmpn_la_SOURCES.
   24264 	* tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to
   24265 	libtests_la_SOURCES.
   24266 	* ltconfig: Remove file, no longer needed.
   24267 
   24268 	* Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from
   24269 	EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS.
   24270 	* tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES
   24271 	similarly.
   24272 
   24273 	* config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments.
   24274 
   24275 	* mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note
   24276 	non-free programs must be able to be re-linked.
   24277 
   24278 2001-05-20  Kevin Ryde  <kevin (a] swox.se>
   24279 
   24280 	* mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm,
   24281 	mpn/powerpc64/submul_1.asm: Add carry-in entrypoints.
   24282 
   24283 2001-05-17  Kevin Ryde  <kevin (a] swox.se>
   24284 
   24285 	* gmp.texi (ge): Fix definition for info.
   24286 	(Notes for Particular Systems): Mention 68k dragonball and cpu32.
   24287 	(Efficiency): Add static linking, more about in-place operations,
   24288 	describe mpq+/-integer using addmul.
   24289 	(Reporting Bugs): A couple of words about self-contained reports.
   24290 	(Floating-point Functions): Note exponent limitations of mpf_get_str
   24291 	and mpf_set_str.
   24292 	(Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and
   24293 	mpf_set_prec_raw a bit.
   24294 	(Float Comparison): Note current mpf_eq deficiencies.
   24295 
   24296 	* gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES,
   24297 	__GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers.
   24298 	* demos/expr/expr-impl-h.in: Ditto.
   24299 
   24300 	* gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if
   24301 	not already in gmp-mparam.h.
   24302 	* tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB):
   24303 	Check these are the same.
   24304 
   24305 	* gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec,
   24306 	mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the
   24307 	macros.
   24308 	* mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c,
   24309 	mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE.
   24310 
   24311 	* gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from
   24312 	gmp-impl.h to gmp-h.in.
   24313 	(__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF
   24314 	prefix and add a couple of casts.
   24315 	* gmp-h.in (__GMP_MAX): New macro.
   24316 	* mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix.
   24317 
   24318 	* gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define.
   24319 	* acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB,
   24320 	remove AC_DEFINE BITS_PER_MP_LIMB.
   24321 
   24322 2001-05-13  Kevin Ryde  <kevin (a] swox.se>
   24323 
   24324 	* gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c:
   24325 	Remove mpz_si_pow_ui, pending full si support.
   24326 	* mpz/si_pow_ui.c: Remove file.
   24327 
   24328 2001-05-11  Kevin Ryde  <kevin (a] swox.se>
   24329 
   24330 	* mpn/x86/pentium/dive_1.asm: New file.
   24331 
   24332 	* mpn/powerpc32/umul.asm: Use r on registers.
   24333 	* mpn/powerpc64/umul.asm: New file.
   24334 	* configure.in (powerpc*-*-*): Enable umul in extra_functions.
   24335 
   24336 	* tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments
   24337 	as normal mpn_umul_ppmm.
   24338 	(refmpn_mul_1c): Update.
   24339 	* tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support.
   24340 
   24341 	* mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support
   24342 	size==0.
   24343 	* mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto,
   24344 	and shave a couple of cycles from the PIC entry code.
   24345 
   24346 	* mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available)
   24347 	for size==2, to avoid copying; do vsize==0 test earlier.
   24348 
   24349 	* mpf/sub.c: Test r!=u before calling mpf_set.
   24350 	* mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0.
   24351 
   24352 	* mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c,
   24353 	mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for
   24354 	count_leading_zeros zero.
   24355 
   24356 	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra
   24357 	flags are added.
   24358 
   24359 	* tests/mpz/t-mul_i.c: New file.
   24360 	* tests/mpz/Makefile.am: Add it.
   24361 
   24362 	* mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb.
   24363 
   24364 	* gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0
   24365 	when n==0.
   24366 	* mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0.
   24367 	* gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0.
   24368 
   24369 2001-05-07  Kevin Ryde  <kevin (a] swox.se>
   24370 
   24371 	* gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0
   24372 	when n==0 (use 1 unconditionally).
   24373 	* tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of
   24374 	_mp_exp when _mp_size is zero.
   24375 
   24376 	* mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem.
   24377 
   24378 	* gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p):
   24379 	Provide these as "extern inline"s.
   24380 	(__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros.
   24381 	(mpz_popcount): Use __GMP_ULONG_MAX.
   24382 	* gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if
   24383 	not already defined.
   24384 	* mpz/fits_u.c: Use the code from gmp.h.
   24385 
   24386 2001-05-06  Kevin Ryde  <kevin (a] swox.se>
   24387 
   24388 	* mpn/x86/k7/dive_1.asm: New file.
   24389 	* mpn/x86/k7/gcd_1.asm: New file.
   24390 	* mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro.
   24391 
   24392 	* gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p,
   24393 	mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide
   24394 	these as "extern inlines".
   24395 	Use just one big extern "C" block.
   24396 	* mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c
   24397 	mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use
   24398 	__GMP_FORCE to get code from gmp.h.
   24399 
   24400 2001-05-03  Kevin Ryde  <kevin (a] swox.se>
   24401 
   24402 	* extract-dbl.c: Add ASSERT d>=0.
   24403 
   24404 	* gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add
   24405 	mpz_neg etc in-place.
   24406 	(Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui.
   24407 	(Initializing Rationals): Add mpq_set_str.
   24408 	(Low-level Functions): mpn_set_str requires strsize >= 1.
   24409 
   24410 	* gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros.
   24411 	(mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline
   24412 	versions.
   24413 	* mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c:
   24414 	Add suitable __GMP_FORCE to turn off inline versions.
   24415 
   24416 	* tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files.
   24417 	* tests/mpz/Makefile.am: Add them.
   24418 
   24419 	* mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c.  Add
   24420 	mpz_submul_ui entrypoint, share more code between some of the
   24421 	conditionals, use mpn_mul_1c if available.
   24422 	* mpz/addmul_ui.c: Remove file.
   24423 	* mpz/aorsmul.c: New file.
   24424 	* Makefile.am, mpz/Makefile.am: Update.
   24425 	* gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes.
   24426 	* gmp-impl.h (mpz_aorsmul_1): Add prototype.
   24427 
   24428 	* tests/mpq/t-set_str.c: New file.
   24429 	* tests/mpq/Makefile.am: Add it.
   24430 
   24431 	* mpq/set_str.c: New file.
   24432 	* Makefile.am, mpq/Makefile.am: Add it.
   24433 	* gmp-h.in (mpq_set_str): Add prototype.
   24434 
   24435 	* mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ".
   24436 	* mpn/generic/set_str.c: Add ASSERT str_len >= 1.
   24437 
   24438 	* gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h.
   24439 	* gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros.
   24440 
   24441 2001-04-30  Kevin Ryde  <kevin (a] swox.se>
   24442 
   24443 	* tests/mpz/t-lcm.c: New file.
   24444 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   24445 
   24446 	* mpz/lcm.c: Add one limb special case.
   24447 
   24448 	* mpz/lcm_ui.c: New file.
   24449 	* Makefile.am, mpz/Makefile.am: Add it.
   24450 	* gmp-h.in (mpz_lcm_ui): Add prototype.
   24451 	* gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm
   24452 	now always positive.
   24453 
   24454 	* mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in.
   24455 
   24456 	* gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R
   24457 	function defines (ansi2knr will handle mpn/inline.c, and just ansi is
   24458 	enough for gcc extern inline).
   24459 
   24460 	* gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro.
   24461 	(__MPN): Use it.
   24462 	* gmp-impl.h (CNST_LIMB): Ditto.
   24463 
   24464 	* gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use
   24465 	ANSI forms on Microsoft C.
   24466 	(__GMP_HAVE_CONST): New define.
   24467 	* gmp-impl.h (const, signed): Use it.
   24468 
   24469 	* demos/expr/expr-impl-h.in (<stdarg.h>): Use this with Microsoft C.
   24470 	(HAVE_STDARG): New define.
   24471 	* demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it.
   24472 
   24473 	* acinclude.m4 (GMP_C_STDARG): New macro.
   24474 	* configure.in: Call it.
   24475 	* rand.c: Use it.
   24476 
   24477 	* configure.in (AC_PROG_CC_STDC): New test.
   24478 
   24479 2001-04-25  Kevin Ryde  <kevin (a] swox.se>
   24480 
   24481 	* mpn/x86/k6/mmx/dive_1.asm: New file.
   24482 	* mpn/x86/x86-defs.m4 (Zdisp): Two more insns.
   24483 
   24484 	* mpn/x86/pentium/mul_2.asm: New file.
   24485 	* mpn/asm-defs.m4: Add define_mpn(mul_2).
   24486 	* acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates.
   24487 
   24488 	* configure.in (ABI): Use AC_ARG_VAR.
   24489 
   24490 	* tests/devel/try.c: Run reference function when validate fails.
   24491 
   24492 	* mpq/get_str.c: Fixes for negative bases.
   24493 	* tests/mpq/t-get_str.c: Check negative bases.
   24494 	* tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New
   24495 	functions.
   24496 
   24497 2001-04-24  Torbjorn Granlund  <tege (a] swox.com>
   24498 
   24499 	* mpz/lcm.c (mpz_lcm): Make result always positive.
   24500 
   24501 	* gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations.
   24502 
   24503 2001-04-22  Kevin Ryde  <kevin (a] swox.se>
   24504 
   24505 	* mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4.
   24506 
   24507 	* mpz/cmp_d.c, mpz/cmpabs_d.c: New files.
   24508 	* Makefile.am, mpz/Makefile.am: Add them.
   24509 	* mpf/cmp_d.c, mpf/get_dfl_prec.c: New files.
   24510 	* Makefile.am, mpf/Makefile.am: Add them.
   24511 	* gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec):
   24512 	Add prototypes.
   24513 	* gmp.texi: Add documentation.
   24514 
   24515 	* mpf/set_prc.c: Avoid a realloc call if already the right precision.
   24516 
   24517 	* gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros.
   24518 	* mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c:
   24519 	Use them.
   24520 
   24521 2001-04-20  Kevin Ryde  <kevin (a] swox.se>
   24522 
   24523 	* tests/devel/try.c: Don't test size==0 on mpn_popcount and
   24524 	mpn_hamdist; add testing for mpn_divexact_1; print some limb values
   24525 	with mpn_trace not printf.
   24526 
   24527 	* mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount
   24528 	and mpn_hamdist.
   24529 	* mpn/generic/popham.c: Don't support size==0.
   24530 
   24531 	* config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32,
   24532 	cleanup the nesting a bit.
   24533 
   24534 	* gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type.
   24535 	(Integer Division): Add mpz_divexact_ui.
   24536 	(Number Theoretic Functions): Fix mpz_nextprime return type.
   24537 	(Exact Remainder): Divisibility tests now implemented.
   24538 	And more index entries in a few places.
   24539 
   24540 	* tests/mpz/dive_ui.c: New file.
   24541 	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
   24542 
   24543 	* mpz/dive_ui.c: New file.
   24544 	* Makefile.am, mpz/Makefile.am: Add it.
   24545 	* gmp-h.in (mpz_divexact_ui): Add prototype.
   24546 
   24547 	* tune/many.pl, tune/speed.h: Add special mpn_back_to_back for
   24548 	development.
   24549 
   24550 	* gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro.
   24551 	* mpz/divexact.c: Use it.
   24552 
   24553 	* gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold.
   24554 	* tune/tuneup.c: Tune it.
   24555 
   24556 	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
   24557 	mpn_divexact_1, mpn_copyi, mpn_copyd.
   24558 
   24559 	* mpn/generic/dive_1.c: New file.
   24560 	* configure.in (gmp_mpn_functions): Add it.
   24561 	* gmp-impl.h (mpn_divexact_1): Add prototype.
   24562 	* mpn/asm-defs.m4: Add define_mpn(divexact_1).
   24563 
   24564 	* tests/mpn: New directory.
   24565 	* tests/Makefile.am: Add it.
   24566 	* tests/mpn/Makefile.am: New file.
   24567 	* configure.in (AC_OUTPUT): Add it.
   24568 	* tests/mpn/t-asmtype.c: New file.
   24569 
   24570 	* configure, config.in: Update to autoconf 2.49d.
   24571 
   24572 	* configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert
   24573 	to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST.
   24574 
   24575 	* configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32.
   24576 	* mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto.
   24577 
   24578 	* configure.in (underscore, asm_align): Remove these variables, unused.
   24579 	(GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication.
   24580 	* acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support
   24581 	for actions, no longer needed.
   24582 
   24583 2001-04-17  Kevin Ryde  <kevin (a] swox.se>
   24584 
   24585 	* config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo.
   24586 
   24587 	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is
   24588 	fixed in 2.95.4, so test for that.
   24589 	(GMP_ASM_TYPE): Amend some comments.
   24590 
   24591 	* tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused
   24592 	variables on GNU/Linux.
   24593 
   24594 	* mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if
   24595 	the name of the file is a macro.
   24596 
   24597 2001-04-15  Kevin Ryde  <kevin (a] swox.se>
   24598 
   24599 	* mpn/powerpc64/*.asm: Add speeds on ppc630.
   24600 
   24601 	* acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR.
   24602 	* configure.in: Ensure config.in is the last AM_CONFIG_HEADER,
   24603 	which autoheader requires.
   24604 
   24605 	* mpn/x86/pentium/popcount.asm: New file.
   24606 	* mpn/x86/pentium/hamdist.asm: New file.
   24607 
   24608 	* mpn/asm-defs.m4: (m4_popcount): New macro.
   24609 	Amend a few comments elsewhere.
   24610 
   24611 	* acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for
   24612 	the right directive.
   24613 
   24614 	* tune/speed.c: Print clock speed in MHz, not cycle time.
   24615 
   24616 	* configure.in (AC_CHECK_HEADERS): Check for sys/processor.h.
   24617 	* tune/freq.c (speed_cpu_frequency_processor_info): Require
   24618 	<sys/processor.h> to exist, to differentiate the different
   24619 	processor_info on Darwin.
   24620 	(speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in
   24621 	speed_cpu_frequency_sysctl.
   24622 	(speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin.
   24623 
   24624 	* gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a
   24625 	single expression argument for the different operations, necessary for
   24626 	the Darwin "smart" preprocessor.
   24627 
   24628 	* mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and
   24629 	m4_defbranch.
   24630 
   24631 	* tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am,
   24632 	avoid a possibly undefined array in a diagnostic, add more renaming to
   24633 	hamdist.
   24634 
   24635 2001-04-13  Kevin Ryde  <kevin (a] swox.se>
   24636 
   24637 	* ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d.
   24638 	* configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and
   24639 	lt_cv_proc_cc_pic.
   24640 
   24641 	* config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model,
   24642 	detect 68000/68010 with trapf, detect 68302 with bfffo.
   24643 
   24644 2001-04-11  Kevin Ryde  <kevin (a] swox.se>
   24645 
   24646 	* acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING,
   24647 	GMP_ASM_M68K_BRANCHES): New macros.
   24648 	* configure.in: Use them, remove old 68k configs, use mc68020 udiv and
   24649 	umul.
   24650 
   24651 	* mpn/m68k/m68k-defs.m4: New file.
   24652 	* mpn/m68k/t-m68k-defs.pl: New file.
   24653 	* mpn/m68k/*.asm: New files, converted from .S.  Merge add_n and sub_n
   24654 	to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1.  No
   24655 	object code changes (except .type and .size now used on NetBSD 1.4).
   24656 	* mpn/m68k/README: New file.
   24657 	* mpn/m68k/*.S, */*.S, syntax.h: Remove files.
   24658 
   24659 	* configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist.
   24660 	* tune/README: Update.
   24661 
   24662 	* configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc
   24663 	to cclist, make gcc_cflags -Wa,-mppc optional.
   24664 
   24665 2001-04-06  Kevin Ryde  <kevin (a] swox.se>
   24666 
   24667 	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k.
   24668 	(gmpasm-mode-syntax-table): Add to comments.
   24669 
   24670 	* tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp.
   24671 
   24672 2001-04-04  Kevin Ryde  <kevin (a] swox.se>
   24673 
   24674 	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually
   24675 	detect the problem, add notes on m68k netbsd 1.4.1.
   24676 
   24677 	* gmp.texi (Compatibility with older versions): Note libmp
   24678 	compatibility.
   24679 
   24680 2001-04-03  Kevin Ryde  <kevin (a] swox.se>
   24681 
   24682 	* tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp.
   24683 
   24684 	* tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with
   24685 	refmpn_mul_2.
   24686 
   24687 	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n
   24688 	and mpn_mul_2.
   24689 	* tests/devel/try.c: Add testing of mpn_mul_2, and a
   24690 	DATA_MULTIPLE_DIVISOR attribute.
   24691 
   24692 	* gmp.texi (Build Options): List more m68k's.
   24693 	(Build Options): Add cross reference to tex2html.
   24694 	(Notes for Particular Systems): Add m68k means 68020 or up.
   24695 	(Rational Conversions): New section, with mpq_get_d, mpq_set_d and
   24696 	mpq_set_f from Miscellaneous, and new mpq_set_str.
   24697 	(Applying Integer Functions): Move mpq_get_num, mpq_get_den,
   24698 	mpq_set_num and mpq_set_den from Misc.
   24699 	(Miscellaneous Rational Functions): Remove section.
   24700 	(Custom Allocation): Partial rewrite for various clarifications.
   24701 	(References): Improve line breaks near URLs.
   24702 
   24703 	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro.
   24704 	* configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2.
   24705 	(m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options.
   24706 
   24707 	* tests/mpz/t-cmp.c: New file.
   24708 	* tests/mpz/t-sizeinbase.c: New file.
   24709 	* tests/mpz/Makefile.am: Add them.
   24710 
   24711 	* gmp-impl.h (MPN_CMP): New macro.
   24712 	* mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too.
   24713 
   24714 	* tests/mpq/t-equal.c: New file.
   24715 	* tests/mpq/t-get_str.c: New file.
   24716 	* tests/mpq/Makefile.am: Add them.
   24717 
   24718 	* mpq/get_str.c: New file.
   24719 	* Makefile.am, mpq/Makefile.am: Add it.
   24720 	* gmp-h.in (mpq_get_str): Add prototype.
   24721 
   24722 	* mpq/equal.c: Rewrite using inline compare loops.
   24723 
   24724 	* tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order.
   24725 	* mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order.
   24726 
   24727 2001-03-29  Kevin Ryde  <kevin (a] swox.se>
   24728 
   24729 	* tests/mpf/t-trunc.c: New file.
   24730 	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
   24731 	* gmp-impl.h (MPF_CHECK_FORMAT): New macro.
   24732 
   24733 	* mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in
   24734 	copy, don't copy if unnecessary.
   24735 	* mpf/ceilfloor.c: New file likewise, and use common subroutine for
   24736 	ceil and floor.
   24737 	* mpf/integer.c: Remove file.
   24738 	* Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update.
   24739 
   24740 	* acinclude.m4 (GMP_GCC_VERSION_GE): New macro.
   24741 	(GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't
   24742 	bother checking it's gcc).
   24743 	(GMP_GCC_ARM_UMODSI): New macro.
   24744 	* configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters.
   24745 	(arm*-*-*): Use GMP_GCC_ARM_UMODSI.
   24746 	* gmp.texi (Notes for Particular Systems): Add arm gcc requirements.
   24747 
   24748 2001-03-28  Kevin Ryde  <kevin (a] swox.se>
   24749 
   24750 	* gmp.texi (Converting Integers): Document mpz_getlimbn using absolute
   24751 	value and giving zero for N out of range, move to end of section.
   24752 
   24753 	* tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than
   24754 	refmpn_divrem_1.
   24755 	* tests/tests.h: Add some prototypes that were missing.
   24756 
   24757 	* mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui.
   24758 
   24759 2001-03-26  Torbjorn Granlund  <tege (a] swox.com>
   24760 
   24761 	* mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code
   24762 	in both arms.  Partially combine multiply arms.
   24763 
   24764 2001-03-24  Kevin Ryde  <kevin (a] swox.se>
   24765 
   24766 	* longlong.h: Add comments to P5 count_leading_zeros.
   24767 
   24768 	* demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p.
   24769 
   24770 2001-03-23  Kevin Ryde  <kevin (a] swox.se>
   24771 
   24772 	* gmp.texi (GMPceil, GMPfloor, ge, le): New macros.
   24773 	(Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them.
   24774 	(mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and
   24775 	improve formatting a bit.
   24776 	(mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n}
   24777 	for the destination.
   24778 	Miscellaneous minor rewordings in a few places.
   24779 
   24780 	* mpn/arm/arm-defs.m4: New file.
   24781 	* configure.in (arm*-*-*): Use it.
   24782 	* mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L()
   24783 	for local labels.
   24784 
   24785 	* mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed).
   24786 
   24787 	* gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application
   24788 	namespace.
   24789 
   24790 	* gmp-impl.h (ABS): Add parens around argument.
   24791 
   24792 2001-03-20  Kevin Ryde  <kevin (a] swox.se>
   24793 
   24794 	* acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4.
   24795 
   24796 	* acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro.
   24797 	* configure.in: Use it.
   24798 	* mpn/asm-defs.m4: Ditto.
   24799 
   24800 2001-03-18  Kevin Ryde  <kevin (a] swox.se>
   24801 
   24802 	* mpn/x86/pentium/logops_n.asm: New file.
   24803 
   24804 	* mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on
   24805 	small sizes, slower on big sizes (about half the time).
   24806 	* mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86.
   24807 	* mpn/x86/copyi.asm: Add some comments.
   24808 	* mpn/x86/k6/README: Update.
   24809 
   24810 	* mpn/x86/k6/gcd_1.asm: New file.
   24811 
   24812 	* gmp-impl.h (NEG_MOD): Fix type of __dnorm.
   24813 
   24814 	* acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE.
   24815 
   24816 2001-03-15  Kevin Ryde  <kevin (a] swox.se>
   24817 
   24818 	* gmp.texi (GMPabs): New macro.
   24819 	(Float Comparison - mpf_reldiff): Use it.
   24820 	(Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info.
   24821 	(Reentrancy): Update notes on old random functions.
   24822 	(Karatsuba Multiplication): Better characterize the effect of basecase
   24823 	speedups on the thresholds, pointed out by Torbjorn.
   24824 
   24825 	* tune/README: Notes on the 1x1 div threshold for mpn_gcd_1.
   24826 
   24827 	* tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb,
   24828 	mpz_errandomb_nonzero, mpz_negrandom): New functions.
   24829 	(mpz_erandomb, mpz_erandomb_nonzero): Use urandom().
   24830 	* tests/spinner.c (spinner_wanted, spinner_tick): Make global.
   24831 	* tests/tests.h: Update prototypes.
   24832 
   24833 	* tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files.
   24834 	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.
   24835 
   24836 	* mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files.
   24837 	* Makefile.am, mpz/Makefile.am: Add them.
   24838 	* gmp-impl.h (NEG_MOD): New macro.
   24839 	* gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p,
   24840 	mpz_congruent_ui_p): Add prototypes.
   24841 	* gmp.texi (Integer Division, Efficiency): Add documentation.
   24842 
   24843 	* mpq/aors.c: No need for ABS on denominator sizes.
   24844 
   24845 	* gmp-impl.h (mpn_divisible_p): Use __MPN.
   24846 
   24847 	* gmp-impl.h (LOW_ZEROS_MASK): New macro.
   24848 	* mpz/divis_ui.c, mpn/generic/divis.c: Use it.
   24849 
   24850 	* mpz/setbit.c: Fix normalization for case of a negative ending up
   24851 	with a zero high limb.
   24852 	* tests/mpz/bit.c (check_single): New test for this problem.
   24853 
   24854 	* configure.in (none-*-*): Fix cclist for default ABI=long.
   24855 
   24856 2001-03-10  Kevin Ryde  <kevin (a] swox.se>
   24857 
   24858 	* mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't
   24859 	matter to the rounding.
   24860 
   24861 	* mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come
   24862 	out branch-free.
   24863 
   24864 2001-03-08  Kevin Ryde  <kevin (a] swox.se>
   24865 
   24866 	* tests/devel/try.c (param_init): Fix reference functions for and_n
   24867 	and nand_n.
   24868 
   24869 	* tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc.
   24870 	* configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom.
   24871 	* macos/configure (coptions): Remove random/srandom, now unnecessary.
   24872 
   24873 	* configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using
   24874 	AM_CONFIG_HEADER.
   24875 	(_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs.
   24876 	* gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's.
   24877 	* acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h.
   24878 	* Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done
   24879 	automatically.
   24880 	* acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use
   24881 	__GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST.
   24882 
   24883 	* mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the
   24884 	exponent, ensures full range of values too.
   24885 
   24886 	* tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but
   24887 	don't let it go negative.
   24888 
   24889 	* tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to
   24890 	TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c.
   24891 	Use a -1 with this too, so size<LIMIT not <=.
   24892 
   24893 2001-03-07  Torbjorn Granlund  <tege (a] swox.com>
   24894 
   24895 	* mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0.
   24896 	* mpn/cray/cfp/addmul_1.c: Likewise.
   24897 	* mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0.
   24898 
   24899 	* tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0
   24900 	(avoid problems with Cray compilers).
   24901 
   24902 2001-03-06  Torbjorn Granlund  <tege (a] swox.com>
   24903 
   24904 	* mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0.
   24905 
   24906 	* mpn/cray/ieee/mul_basecase.c: New file.
   24907 	* mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c.
   24908 
   24909 2001-03-06  Kevin Ryde  <kevin (a] swox.se>
   24910 
   24911 	* tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for
   24912 	the benefit of mpn_tdiv_qr.
   24913 
   24914 	* tune/tuneup.c (all): Start karatsuba probing at size==4, for the
   24915 	benefit of cray t90 ieee which has speed oddities at size==2.
   24916 
   24917 	* gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ.
   24918 	Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places.
   24919 
   24920 	* gmp-h.in (__GMP_GNUC_PREREQ) New macro.
   24921 	(__GMP_ATTRIBUTE_PURE): New macro, use it in many places.
   24922 
   24923 	* gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to
   24924 	gmp-impl.h, use ATTRIBUTE_CONST.
   24925 
   24926 	* tune/speed.h (speed_cyclecounter): Inline asm version for i386.
   24927 
   24928 	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second
   24929 	realloc, first is under w!=u.
   24930 
   24931 2001-03-05  Torbjorn Granlund  <tege (a] swox.com>
   24932 
   24933 	* mpn/cray/sub_n.c: Rewrite using `majority' logic.
   24934 
   24935 	* mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w.
   24936 
   24937 	* mpn/cray/ieee/mul_1.c: Rewrite.  Streamline multiplications;
   24938 	use `majority' logic.
   24939 	* mpn/cray/ieee/addmul_1.c: Likewise.
   24940 
   24941 	* mpn/cray/add_n.c: Rewrite using `majority' logic.
   24942 
   24943 2001-03-04  Torbjorn Granlund  <tege (a] swox.com>
   24944 
   24945 	* longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP.
   24946 	(64-bit hppa add_ssaaaa): New.
   24947 	(64-bit hppa sub_ddmmss): New.
   24948 
   24949 	* mpn/cray/ieee/invert_limb.c: New file.
   24950 
   24951 	* gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers.
   24952 
   24953 2001-03-03  Kevin Ryde  <kevin (a] swox.se>
   24954 
   24955 	* mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h.
   24956 	* gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic
   24957 	form by Torbjorn.
   24958 
   24959 	* tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c.
   24960 	* tests/mpz/t-2exp.c: Remove file.
   24961 	* tests/mpz/Makefile.am (check_PROGRAMS): Update.
   24962 
   24963 	* gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes.
   24964 	* gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp.
   24965 
   24966 	* mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add
   24967 	mpz_cdiv_q_2exp entrypoint.
   24968 	* mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn,
   24969 	add mpz_cdiv_r_2exp entrypoint.
   24970 	* mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files.
   24971 	* mpz/Makefile.am (libmpz_la_SOURCES): Update.
   24972 	* Makefile.am (MPZ_OBJECTS): Ditto.
   24973 
   24974 	* gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h
   24975 	(REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros.
   24976 	* mpz/jacobi.c (jac_or_kron): Use them.
   24977 
   24978 	* configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with
   24979 	dots changed to underscores (necessary for hppa).
   24980 
   24981 	* tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files.
   24982 	* tests/mpz/Makefile.am (check_PROGRAMS): Add them.
   24983 
   24984 	* gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p,
   24985 	mpz_divisible_2exp_p): Add prototypes.
   24986 	* gmp.texi (Integer Division): Add mpz_divisible_p.
   24987 	(Efficiency): Add remarks about divisibility testing.
   24988 
   24989 	* mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files.
   24990 	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
   24991 	* Makefile.am (MPZ_OBJECTS): Ditto.
   24992 
   24993 	* mpn/generic/divis.c: New file.
   24994 	* configure.in (gmp_mpn_functions): Add it.
   24995 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto.
   24996 	* gmp-impl.h (mpn_divisible_p): Add prototype.
   24997 
   24998 	* urandom.h: Remove file.
   24999 	* Makefile.am (EXTRA_DIST): Remove it.
   25000 
   25001 	* tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c,
   25002 	t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c,
   25003 	t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c,
   25004 	t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start.
   25005 
   25006 	* tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some
   25007 	further tests added.
   25008 	* tests/mpz/t-pow_ui.c: Remove file.
   25009 	* tests/mpz/Makefile.am (check_PROGRAMS): Update.
   25010 
   25011 	* tests/t-modlinv.c: Don't use urandom.h.
   25012 	* tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto.
   25013 	* tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto.
   25014 	* tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c,
   25015 	t-sqrt.c, t-sub.c: Ditto.
   25016 
   25017 	* tests/misc.c (tests_rand_start, tests_rand_end): New functions.
   25018 	(tests_start, tests_end): Use them.
   25019 	(urandom): New function.
   25020 	* tests/tests.h: Add prototypes.
   25021 
   25022 	* mpz/random.c: Rewrite using mpz_urandomb and RANDS.
   25023 	* mpn/generic/random.c: Rewrite using _gmp_rand and RANDS.
   25024 	* mpn/generic/random2.c: Use RANDS not random() etc.
   25025 
   25026 	* gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs.
   25027 	(gmp_randstate_ptr): New typedef.
   25028 	(RANDS, RANDS_CLEAR): New macros.
   25029 
   25030 	* rands.c: New file.
   25031 	* Makefile.am (libgmp_la_SOURCES): Add it.
   25032 
   25033 	* configure.in (mpn_objs_in_libmp): New AC_SUBST.
   25034 	* Makefile.am (libmp_la_DEPENDENCIES): Use it.
   25035 
   25036 2001-03-02  Torbjorn Granlund  <tege (a] swox.com>
   25037 
   25038 	* mpn/pa64/udiv_qrnnd.asm: New file.
   25039 
   25040 2001-03-01  Kevin Ryde  <kevin (a] swox.se>
   25041 
   25042 	* mpbsd/rpow.c: New file.
   25043 	* mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it
   25044 	(nodist_libmpbsd_la_SOURCES): Remove pow_ui.c.
   25045 	* Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo.
   25046 	(libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo.
   25047 
   25048 	* mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui.
   25049 	* mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd.
   25050 
   25051 	* mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c.  Use
   25052 	less temporary memory, strip factors of 2 from the base, use mpn_mul_2
   25053 	if available.
   25054 	* mpz/si_pow_ui.c: New file.
   25055 	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
   25056 	* Makefile.am (MPZ_OBJECTS): Ditto.
   25057 	* gmp-impl.h (mpz_n_pow_ui): Add prototype.
   25058 	* gmp-h.in (mpz_si_pow_ui): Add prototype.
   25059 	* gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui.
   25060 
   25061 	* acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG.
   25062 	Correction to mp_limb_t working check.
   25063 	* configure.in (limb_chosen): New variable.
   25064 	* tests/t-constants.c (BITS_PER_ULONG): Check this value.
   25065 	Add some reminders about tests that fail on Cray.
   25066 
   25067 	* tests/refmpn.c (refmpn_mul_2): New function.
   25068 	* tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c
   25069 	* tests/tests.h: Add prototypes.
   25070 
   25071 	* configure.in (none-*-*): Add ABI=longlong.
   25072 	* doc/configuration (Long long limb testing): Describe it.
   25073 
   25074 	* gmp.texi (Low-level Functions): Move some commented out remarks ...
   25075 	* mpn/generic/mul_basecase.c: ... to here.
   25076 
   25077 	* mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__.
   25078 
   25079 	* tests/trace.c (mp_trace_start): Print "bin" for binary.
   25080 
   25081 	* mpn/generic/dump.c: Add a couple of casts to keep gcc quiet.
   25082 
   25083 	* gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments.
   25084 
   25085 	* mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable.
   25086 
   25087 	* mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs.
   25088 
   25089 2001-02-28  Torbjorn Granlund  <tege (a] swox.com>
   25090 
   25091 	* mpn/pa64w/udiv_qrnnd.asm: Tune.
   25092 
   25093 2001-02-27  Torbjorn Granlund  <tege (a] swox.com>
   25094 
   25095 	* mpn/pa64w/udiv_qrnnd.asm: New file.
   25096 
   25097 2001-02-26  Torbjorn Granlund  <tege (a] swox.com>
   25098 
   25099 	* longlong.h (arm): Optimize sub_ddmmss by testing for constant
   25100 	operands.
   25101 	* mpn/arm/invert_limb.asm: New file.
   25102 
   25103 2001-02-24  Torbjorn Granlund  <tege (a] swox.com>
   25104 
   25105 	* mpn/generic/lshift.c: Rewrite.
   25106 	* mpn/generic/rshift.c: Rewrite.
   25107 
   25108 	* longlong.h: Use UWtype for external interfaces that expect mp_limb_t.
   25109 
   25110 	* longlong.h (arm): #define invert_limb.
   25111 
   25112 	* mpn/arm: Make labels have local scope.
   25113 
   25114 	* configure.in (arm*-*-*): Set extra_functions.
   25115 	* longlong.h (arm): #define udiv_qrnnd.
   25116 	* mpn/arm/udiv.asm: New file.
   25117 
   25118 2001-02-24  Kevin Ryde  <kevin (a] swox.se>
   25119 
   25120 	* tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros
   25121 	and mpn_invert_limb.  Add count_leading_zeros, count_trailing_zeros
   25122 	from a .h file.  Correction to modexact_1_odd prototype.  Support
   25123 	ansi2knr.
   25124 	* tune/speed.h, tune/common.c: Consequent changes.
   25125 
   25126 	* demos/expr/*: Make a few more functions available in expressions,
   25127 	create only libexpr.a, misc minor updates.
   25128 
   25129 	* mpn/Makeasm.am: Add some comments about suffix ordering.
   25130 
   25131 	* tests/refmpn.c (rshift_make, lshift_make): No need to compare
   25132 	unsigned to zero.
   25133 
   25134 	* mpq/mul.c: Detect and optimize squaring.
   25135 
   25136 2001-02-23  Torbjorn Granlund  <tege (a] swox.com>
   25137 
   25138 	* mpn/mips3: Convert files to `.asm'.
   25139 
   25140 	* mpn/arm: Convert files to `.asm'.  Misc cleanups.
   25141 	* mpn/arm/submul_1.asm: New file.
   25142 
   25143 2001-02-21  Kevin Ryde  <kevin (a] swox.se>
   25144 
   25145 	* tune/tuneup.c (all): Only one compiler print should match, no need
   25146 	for #undef PRINTED_COMPILER.
   25147 
   25148 	* mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul).
   25149 
   25150 	* mpz/fib_ui.c: Update some remarks about alternative algorithms.
   25151 	* gmp.texi (Fibonacci Numbers Algorithm): Ditto.
   25152 	(Assigning Floats): Clarify mpf_swap swaps the precisions too.
   25153 	(Low-level Functions): Try to be clearer about negative cofactors.
   25154 
   25155 2001-02-21  Torbjorn Granlund  <tege (a] swox.com>
   25156 
   25157 	* mpn/sparc64/copyi.asm: Streamline for small operands.
   25158 	* mpn/sparc64/add_n.asm: Likewise.
   25159 	* mpn/sparc64/sub_n.asm: Likewise.
   25160 
   25161 	* mpn/sparc64/copyd.asm: New file.
   25162 
   25163 2001-02-20  Torbjorn Granlund  <tege (a] swox.com>
   25164 
   25165 	* mpn/sparc64/lshift.asm: Rewrite.
   25166 	* mpn/sparc64/rshift.asm: Rewrite.
   25167 
   25168 2001-02-19  Torbjorn Granlund  <tege (a] swox.com>
   25169 
   25170 	* mpn/sparc64/add_n.asm: Rewrite using `majority' logic.
   25171 	* mpn/sparc64/sub_n.asm: Likewise.
   25172 
   25173 	* tune/tuneup.c (all): Recognise DECC and MIPSpro compilers.
   25174 
   25175 	* mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE.
   25176 	* mpn/pa642/sqr_diagonal.asm: Likewise.
   25177 
   25178 	* configure.in (HAVE_ABI_$abi): Disable for now.
   25179 
   25180 	* mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX.
   25181 
   25182 	* acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities.
   25183 
   25184 2001-02-18  Torbjorn Granlund  <tege (a] swox.com>
   25185 
   25186 	* mpn/hppa/hppa1_1/gmp-mparam.h: New file.
   25187 	* mpn/hppa/hppa2_0/gmp-mparam.h: New file.
   25188 
   25189 	* mpn/pa64/sqr_diagonal.asm: New file.
   25190 	* mpn/pa64w/sqr_diagonal.asm: New file.
   25191 	* mpn/hppa/hppa1_1/sqr_diagonal.asm: New file.
   25192 	* mpn/hppa/hppa2_0/sqr_diagonal.asm: New file.
   25193 
   25194 	* mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy
   25195 	FA-pipeline insns.
   25196 	* mpn/sparc32/v9/sub_n.asm: Likewise.
   25197 
   25198 2001-02-18  Kevin Ryde  <kevin (a] swox.se>
   25199 
   25200 	* gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc
   25201 	tweaks elsewhere.
   25202 	(Low-level Functions): Use {} notation in mpn_sqrtrem.
   25203 	(Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD.
   25204 
   25205 	* mpfr/isnan.c (mpfr_number_p): Infinity is not a number.
   25206 	* mpfr/out_str.c: Pass strlen+1 for the block size to free.
   25207 	* mpfr/get_str.c: Correction for realloc to strlen+1.
   25208 
   25209 	* acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't
   25210 	seem to work for some reason.
   25211 
   25212 2001-02-16  Torbjorn Granlund  <tege (a] swox.com>
   25213 
   25214 	* mpn/sparc32/v9/gmp-mparam.h: Retune.
   25215 
   25216 	* mpn/sparc32/v9/add_n.asm: New file.
   25217 	* mpn/sparc32/v9/sub_n.asm: New file.
   25218 
   25219 	* mpn/sparc32/v9/mul_1.asm: Tune function entry.
   25220 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   25221 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   25222 
   25223 	* mpn/sparc32/v9/sqr_diagonal.asm: New file.
   25224 
   25225 2001-02-16  Kevin Ryde  <kevin (a] swox.se>
   25226 
   25227 	* configure.in: Fix flags selection when $CC is a compiler known to us.
   25228 
   25229 	* demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now
   25230 	allows NULL for one parameter.
   25231 
   25232 	* mpfr/*: Update to 20010215.
   25233 	* mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p.
   25234 	* mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new.
   25235 	* mpfr/sqrtrem.c: Remove file.
   25236 	* mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c,
   25237 	remove sqrtrem.c and srandom.h.
   25238 
   25239 	* configfsf.guess: Update to 2001-02-13.
   25240 	* configfsf.sub: Update to 2001-02-16.
   25241 	* config.sub (j90, t90): Remove special handing, configfsf.sub now ok.
   25242 
   25243 	* Makefile.am (MPF_OBJECTS): Add a couple of missing $U's.
   25244 
   25245 	* tune/tuneup.c: Identify compiler used (GCC and Sun C so far).
   25246 
   25247 2001-02-15  Torbjorn Granlund  <tege (a] swox.com>
   25248 
   25249 	* mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'.
   25250 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   25251 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   25252 
   25253 2001-02-14  Torbjorn Granlund  <tege (a] swox.com>
   25254 
   25255 	* mpn/mips3/mips.m4: New file.
   25256 	* configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4.
   25257 
   25258 	* mpn/powerpc64/sqr_diagonal.asm: New file.
   25259 
   25260 	* mpn/mips3/sqr_diagonal.asm: New file.
   25261 
   25262 2001-02-12  Torbjorn Granlund  <tege (a] swox.com>
   25263 
   25264 	* mpn/powerpc32/sqr_diagonal.asm: New file.
   25265 
   25266 	* mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal.
   25267 	Fix typo in header comment.
   25268 
   25269 2001-02-12  Kevin Ryde  <kevin (a] swox.se>
   25270 
   25271 	* mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use
   25272 	mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD.
   25273 	* tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD.
   25274 
   25275 	* Makefile.am (libgmp.la, libmp.la): Revert change to build from
   25276 	mpn/libmpn.la etc, go back to explicitly listed objects.
   25277 
   25278 	* configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*.
   25279 
   25280 2001-02-11  Torbjorn Granlund  <tege (a] swox.com>
   25281 
   25282 	* mpn/asm-defs.m4 (sqr_diagonal): New define_mpn.
   25283 
   25284 	* mpn/alpha/sqr_diagonal.asm: New file.
   25285 
   25286 2001-02-11  Kevin Ryde  <kevin (a] swox.se>
   25287 
   25288 	* gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input
   25289 	plus 1 extra limb.
   25290 
   25291 	* mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c,
   25292 	set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R.
   25293 	* tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c,
   25294 	demos/expr/t-expr.c: Ditto.
   25295 
   25296 	* configure.in (HAVE_ABI_$abi): New define in config.m4.
   25297 
   25298 	* gmp-impl.h (mpn_sqr_diagonal): Add prototype and define.
   25299 	* tune/speed.c,speed.h,common.c,many.pl: Add measuring of
   25300 	mpn_sqr_diagonal.
   25301 
   25302 	* gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg
   25303 	movq bug the same as 2.6.
   25304 
   25305 	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h.
   25306 
   25307 	* mpn/x86/README: Merge contents of README.family.
   25308 	* mpn/x86/README.family: Remove file.
   25309 
   25310 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda,
   25311 	invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically.
   25312 
   25313 2001-02-10  Torbjorn Granlund  <tege (a] swox.com>
   25314 
   25315 	* configure.in (gmp_mpn_functions_optional): List sqr_diagonal.
   25316 
   25317 	* mpn/powerpc32/aix.m4: Use unnamed csects.
   25318 	* mpn/powerpc64/aix.m4: Likewise.
   25319 
   25320 	* acconfig.h: Add #undef of mpn_sqr_diagonal.
   25321 	Remove lots of spacing.
   25322 
   25323 	* configure.in (syntax testing section): Match power* instead of
   25324 	powerpc*.
   25325 	* mpn/power: Convert files to `.asm'.
   25326 	Prefix umul_ppmm and sdiv_qrnnd.
   25327 	Update some comments.
   25328 
   25329 2001-02-09  Kevin Ryde  <kevin (a] swox.se>
   25330 
   25331 	* acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and
   25332 	HAVE_NATIVE_mpn_modexact_1c_odd.
   25333 
   25334 	* configure.in (CCAS): Don't override a user selection.
   25335 
   25336 	* mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0.
   25337 
   25338 2001-02-08  Torbjorn Granlund  <tege (a] swox.com>
   25339 
   25340 	* mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate.
   25341 
   25342 2001-02-07  Kevin Ryde  <kevin (a] swox.se>
   25343 
   25344 	* gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented.
   25345 
   25346 	* mpn/generic/random2.c (myrandom): Use rand() on mingw.
   25347 
   25348 	* mpn/alpha/gmp-mparam.h: Update tuned parameters.
   25349 
   25350 2001-02-05  Torbjorn Granlund  <tege (a] swox.com>
   25351 
   25352 	* mpn/alpha/ev6/gmp-mparam.h: Retune.
   25353 
   25354 2001-02-05  Kevin Ryde  <kevin (a] swox.se>
   25355 
   25356 	* Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather
   25357 	than explicitly listed objects.
   25358 
   25359 	* urandom.h: Use rand() on mingw.
   25360 
   25361 	* mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1.
   25362 
   25363 2001-02-04  Torbjorn Granlund  <tege (a] swox.com>
   25364 
   25365 	* mpn/ia64/copyi.asm: New file.
   25366 	* mpn/ia64/copyd.asm: New file.
   25367 
   25368 2001-02-04  Kevin Ryde  <kevin (a] swox.se>
   25369 
   25370 	* mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h,
   25371 	mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h,
   25372 	mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h:
   25373 	Update tuned parameters.
   25374 
   25375 	* mpn/x86/i486: New directory.
   25376 	* configure.in (i486-*-*): Use it.
   25377 	* mpn/x86/i486/gmp-mparam.h: New file.
   25378 
   25379 	* mpn/x86/pentium/mode1o.asm: New file.
   25380 	* mpn/x86/p6/mode1o.asm: New file.
   25381 
   25382 	* tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC).
   25383 
   25384 	* gmp.texi (Integer Division): Another rewording of 2exp divisions.
   25385 
   25386 2001-02-03  Torbjorn Granlund  <tege (a] swox.com>
   25387 
   25388 	* mpn/arm/gmp-mparam.h: Tune.
   25389 
   25390 	* mpn/ia64/popcount.asm: Put a `;;' break at end of main loop.
   25391 
   25392 	* configure.in (arm*-*-*): Set gcc_cflags in order to pass
   25393 	$fomit_frame_pointer.
   25394 
   25395 	* tests/mpz/t-mul.c (base_mul): Remove an unused variable.
   25396 
   25397 2001-02-02  Torbjorn Granlund  <tege (a] swox.com>
   25398 
   25399 	* demos/pexpr.c (TIME): New macro.
   25400 	(main): Use TIME--print timing more accurately.
   25401 	(setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte.
   25402 
   25403 	* longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss.
   25404 
   25405 2001-02-02  Kevin Ryde  <kevin (a] swox.se>
   25406 
   25407 	* configure.in: Don't remove gmp-mparam.h and mpn source links under
   25408 	--no-create since in that case they're not re-created.
   25409 
   25410 	* demos/expr: New directory.
   25411 	* Makefile.am (SUBDIRS, allprogs): Add it.
   25412 	* demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c,
   25413 	exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h,
   25414 	expr-impl-h.in, run-expr.c, t-expr.c: New files.
   25415 	* configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h.
   25416 
   25417 	* Makefile.am: Remove mpfr from main libgmp.
   25418 	* mpfr/Makefile.am: Build and install separate libmpfr.a.
   25419 	* mpfr/*: Update to mpfr 2001.
   25420 
   25421 	* gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2.
   25422 	* Makefile.am (libtool -version-info): Bump appropriately.
   25423 	* NEWS: Updates.
   25424 
   25425 	* tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c,
   25426 	tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c,
   25427 	divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames.
   25428 	* tune/Makefile.am (libspeed_la_SOURCES): Update.
   25429 
   25430 	* mpn/x86/*/README, mpn/x86/README.family: Misc updates.
   25431 	* tune/README: Misc updates.
   25432 	* doc/configuration: Misc updates.
   25433 
   25434 	* mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to
   25435 	UDIV_NORM_PREINV_TIME.
   25436 
   25437 	* mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort.
   25438 
   25439 	* rand.c (__gmp_rand_lc_scheme): Add "const".
   25440 	(struct __gmp_rand_lc_scheme_struct): Make astr "const char *".
   25441 
   25442 	* demos/calc/calc.y, demos/calc/calclex.l: Add kron function.
   25443 
   25444 	* tests/devel/try.c: Partial rewrite, new scheme of function types,
   25445 	allow result validation functions, add sqrtrem and jacobi testing.
   25446 	* tune/many.pl: Corresponding updates.
   25447 	* tests/devel/Makefile.am: Add a convenience rule for libtests.la.
   25448 
   25449 	* tests/refmpz.c: New file.
   25450 	* tests/Makefile.am: Add it.
   25451 	* tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions.
   25452 	* tests/tests.h: Add prototypes.
   25453 
   25454 	* mpn/x86/k6/cross.pl: Add a couple more exceptions.
   25455 
   25456 	* gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex.
   25457 	(Introduction to GMP): Mention Cray vector systems.
   25458 	(Build Options): Describe --enable-mpfr, refer to its manual.  Add
   25459 	Crays under supported CPUs.
   25460 	(Debugging): Add notes on source file paths.
   25461 	(Autoconf): New section.
   25462 	(Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and
   25463 	mpz_set_f.
   25464 	(Converting Integers): Note the size mpz_get_str allocates.
   25465 	(Floating-point Functions): Rewrite introduction, clarifying some
   25466 	points about precision handling.
   25467 	(Converting Floats): Note the size mpf_get_str allocates, and that it
   25468 	gives an empty string for zero.  Add mpf_get_si and mpf_get_ui.
   25469 	(Float Comparison): Give the formula mpf_reldiff calculates.
   25470 	(Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p.
   25471 	(Random Number Functions): Misc rewordings for clarity.
   25472 	(Random State Initialization): Ditto.
   25473 	(Custom Allocation): Remove note on deallocate_function called with 0,
   25474 	misc rewording and clarifications.
   25475 	(Exact Remainder): New section.
   25476 	(Binary GCD): A few words on initial reduction using division.
   25477 	(Accelerated GCD): Refer to exact remainder section.
   25478 	(Extended GCD): Extra remarks on single versus double selection.
   25479 	(Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd.
   25480 	(Modular Powering Algorithm): Refer to exact remainder section.
   25481 	(Assembler SIMD Instructions): Update remarks on MMX.
   25482 	(Contributors): Amend to "Divide and Conquer" division.
   25483 	(References): Tweak some formatting.  Add "Proof of GMP Fast Division
   25484 	and Square Root Implementations" by Paul Zimmermann.
   25485 
   25486 2001-01-31  Torbjorn Granlund  <tege (a] swox.com>
   25487 
   25488 	* configure.in: Don't ever pass -mips3; let ABI flags imply ISA.
   25489 
   25490 2001-01-31  Kevin Ryde  <kevin (a] swox.se>
   25491 
   25492 	* tune/time.c: Remove unnecessary longlong.h.
   25493 	(speed_endtime): Add some extra diagnostics.
   25494 
   25495 	* tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for
   25496 	the divisor, not mp_limb_t.
   25497 	* tests/mpz/t-jac.c (try_base): Use %llu for long long limb.
   25498 	* tests/trace.c: Add <string.h> for strlen.
   25499 
   25500 	* tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle
   25501 	frequency" of 0, allow "BogoMIPS" as well as "bogomips".
   25502 
   25503 	* macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects.
   25504 
   25505 2001-01-30  Torbjorn Granlund  <tege (a] swox.com>
   25506 
   25507 	* longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc.
   25508 
   25509 2001-01-29  Torbjorn Granlund  <tege (a] swox.com>
   25510 
   25511 	* mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'.
   25512 	* mpn/powerpc64/submul_1.asm: Likewise.
   25513 	* mpn/powerpc64/mul_1.asm: Likewise.
   25514 
   25515 	* configure.in (alpha*-*-*): Amend last change to handle pca*.
   25516 
   25517 2001-01-29  Kevin Ryde  <kevin (a] swox.se>
   25518 
   25519 	* tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the
   25520 	compiler optimize everything away.
   25521 
   25522 	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure
   25523 	operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv,
   25524 	mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv,
   25525 	mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv.
   25526 	* tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c,
   25527 	tune/sb_inv.c: New files.
   25528 
   25529 	* tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c,
   25530 	tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD.
   25531 
   25532 	* mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD.
   25533 	* mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD.
   25534 
   25535 	* mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files,
   25536 	just m4 include()ing the P55 code.
   25537 	* configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path.
   25538 
   25539 2001-01-27  Kevin Ryde  <kevin (a] swox.se>
   25540 
   25541 	* configure.in (AC_CHECK_FUNCS): Add srand48.
   25542 	* tune/speed.c: Use this test.
   25543 
   25544 	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc
   25545 	--version, warn if the format is unrecognised.
   25546 	(GMP_COMPARE_GE): Guard against empty $1 not only on last arg.
   25547 	(GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal
   25548 	"dnl"s since autoconf thinks they indicate faulty macros.
   25549 
   25550 	* mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly
   25551 	strlen(str)+1 bytes.
   25552 	* mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when
   25553 	freeing.
   25554 	* tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised.
   25555 
   25556 	* tests/mpz/t-fits.c: New file.
   25557 	* tests/mpz/Makefile.am: Add it.
   25558 
   25559 	* tests/mpf/t-fits.c: New file.
   25560 	* tests/mpf/t-get_si.c: New file.
   25561 	* tests/mpf/t-int.c: New file.
   25562 	* tests/mpf/Makefile.am: Add them.
   25563 
   25564 	* mpf/fits_s.c: New file.
   25565 	* mpf/fits_u.c: New file.
   25566 	* mpf/get_si.c: New file.
   25567 	* mpf/get_ui.c: New file.
   25568 	* mpf/int_p.c: New file.
   25569 	* Makefile.am, mpf/Makefile.am: Add them.
   25570 	* gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add
   25571 	prototypes.
   25572 
   25573 	* tests/memory.c (tests_allocate, tests_reallocate): Guard against
   25574 	size==0.
   25575 
   25576 	* tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and
   25577 	tests_end.
   25578 
   25579 	* gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals.
   25580 
   25581 2001-01-23  Kevin Ryde  <kevin (a] swox.se>
   25582 
   25583 	* configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution,
   25584 	allowing -DPIC to be suppressed on cygwin.
   25585 	(CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather
   25586 	than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8.
   25587 
   25588 	* mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary
   25589 	+[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3.
   25590 	* mpn/x86/README.family: Add notes on the problem.
   25591 
   25592 2001-01-20  Torbjorn Granlund  <tege (a] swox.com>
   25593 
   25594 	* configure.in (alpha*-*-*): Default `flavour' to ev4.
   25595 
   25596 2001-01-19  Kevin Ryde  <kevin (a] swox.se>
   25597 
   25598 	* assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to
   25599 	void, since it's no longer used in expressions.
   25600 
   25601 	* mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets
   25602 	tune/many.pl.
   25603 
   25604 	* mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and
   25605 	negative denominators; merge mpz_jacobi and mpz_legendre, add
   25606 	mpz_kronecker; use mpn directly, add special cases for size==1.
   25607 	* gmp.texi (Number Theoretic Functions): Update.
   25608 	* gmp-h.in (mpz_kronecker): Add prototype.
   25609 	* gmp-impl.h (USE_LEADING_REGPARM): New macro.
   25610 	* tests/mpz/t-jac.c: Test mpz_kronecker.
   25611 	* mpz/legendre.c: Remove file.
   25612 	* Makefile.am, mpz/Makefile.am: Update.
   25613 
   25614 	* longlong.h (alpha count_leading_zeros): Use __attribute__ ((const))
   25615 	when possible, add parameter to prototype.
   25616 	(ia64 udiv_qrnnd): Use for all compilers, not just gcc.
   25617 	(pentium count_trailing_zeros): Use count_leading_zeros.
   25618 
   25619 	* acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New
   25620 	macros.
   25621 	* configure.in: Use them.
   25622 	* gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros.
   25623 	(mpn_invert_limb): Add ATTRIBUTE_CONST.
   25624 	(__gmp_assert_fail): Add ATTRIBUTE_NORETURN.
   25625 
   25626 2001-01-18  Kevin Ryde  <kevin (a] swox.se>
   25627 
   25628 	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
   25629 	__gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the
   25630 	benefit of gmp++.h.
   25631 
   25632 	* gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT
   25633 	and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and
   25634 	mpf_set_str_or_abort in libtests.
   25635 	* tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c,
   25636 	tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c,
   25637 	tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update.
   25638 
   25639 	* mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL).
   25640 
   25641 	* tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors.
   25642 
   25643 2001-01-18  Torbjorn Granlund  <tege (a] swox.com>
   25644 
   25645 	* demos/pexpr.c (main): Accept -vml option.
   25646 	(fns): List `hamdist', `pow', `nextprime'.
   25647 	(mpz_eval_expr): Return -1 for `popc' of negative.
   25648 	(mpz_eval_expr): Handle `hamdist', `pow', `nextprime'.
   25649 
   25650 2001-01-15  Kevin Ryde  <kevin (a] swox.se>
   25651 
   25652 	* mpn/alpha/ev5/mode1o.c: New file.
   25653 
   25654 	* tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p
   25655 	before running speed_cyclecounter.
   25656 	* tune/speed.h (cycles_works_p): Add prototype.
   25657 
   25658 2001-01-13  Torbjorn Granlund  <tege (a] swox.com>
   25659 
   25660 	* tests/rand/t-rand.c (farr): Fix typo.
   25661 	(zarr): Fix typo.
   25662 
   25663 2001-01-12  Kevin Ryde  <kevin (a] swox.se>
   25664 
   25665 	* mpz/kronsz.c: Don't depend on right shifting a negative.
   25666 
   25667 	* mpn/x86/gmp-mparam.h: New file.
   25668 
   25669 	* mpn/x86/pentium/mmx/mul_1.asm: New file.
   25670 
   25671 2001-01-11  Torbjorn Granlund  <tege (a] swox.com>
   25672 
   25673 	* mpz/kronsz.c: Temporary workaround for Cray right shift oddities.
   25674 	Explicitly compare against zero in tests.
   25675 
   25676 2001-01-10  Kevin Ryde  <kevin (a] swox.se>
   25677 
   25678 	* mpz/kronzs.c: Don't depend on right shifting a negative.
   25679 
   25680 2001-01-09  Torbjorn Granlund  <tege (a] swox.com>
   25681 
   25682 	* tests/t-constants.c: Disable some undefined tests.
   25683 	(CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added.
   25684 
   25685 2001-01-09  Kevin Ryde  <kevin (a] swox.se>
   25686 
   25687 	* tests/t-constants.c: Add more diagnostics.
   25688 	(CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64.
   25689 
   25690 	* mpn/x86/k6/mode1o.asm: New file.
   25691 	* mpn/x86/k7/mode1o.asm: New file.
   25692 
   25693 	* mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's.
   25694 	(__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for
   25695 	GSYM_PREFIX.
   25696 	* mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl.
   25697 
   25698 	* tests/mpz/t-jac.c (check_a_zero): New test.
   25699 	(check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last
   25700 	change avoiding a,b=0, both are fine.
   25701 	(try_2den): Don't use mpz_kronecker_ui for the expected answer.
   25702 	(try_*): Call abort rather than exit.
   25703 
   25704 	* mpz/kronzu.c, mpz/kronzs.c: Fix for a=0.
   25705 
   25706 	* tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R.
   25707 
   25708 2001-01-08  Torbjorn Granlund  <tege (a] swox.com>
   25709 
   25710 	* urandom.h: Amend 2000-11-21 change to also handle cygwin.
   25711 
   25712 2001-01-08  Kevin Ryde  <kevin (a] swox.se>
   25713 
   25714 	* tune/many.pl: Updates for move to tests/devel, add modexact_1_odd,
   25715 	don't assume C files can't have carry-in entrypoints, remove
   25716 	$(TRY_TESTS_OBJS) now in libtests.
   25717 
   25718 	* tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove
   25719 	mpn_mod_1_rshift testing.
   25720 
   25721 	* tune/tuneup.c (fft_step_size): Test for overflow using the actual
   25722 	mp_size_t, don't use BITS_PER_INT.
   25723 
   25724 	* tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and
   25725 	change LONG_ONES to LIMB_ONES.
   25726 	* tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT.
   25727 
   25728 	* extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not
   25729 	BITS_PER_LONGINT.
   25730 
   25731 	* mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR.
   25732 	* mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT.
   25733 	* tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX
   25734 	tests with some explicit code.
   25735 
   25736 	* mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c
   25737 	(BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR):
   25738 	Remove defines, remove probings, remove tests.
   25739 
   25740 	* tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning.
   25741 
   25742 	* tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd,
   25743 	mpn_gcd_finda, and an "N" form for mpn_gcd_1.
   25744 
   25745 	* tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0.
   25746 
   25747 2001-01-07  Kevin Ryde  <kevin (a] swox.se>
   25748 
   25749 	* configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs.
   25750 
   25751 	* mpn/generic/mod_1_rs.c: Remove file, no longer needed.
   25752 	* gmp-h.in (mpn_mod_1_rshift): Remove prototype and define.
   25753 
   25754 	* mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO.
   25755 
   25756 	* mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use
   25757 	mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new
   25758 	JACOBI macros.  Various rearrangements supporting all this.
   25759 
   25760 	* mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much
   25761 	bigger than v when size==1, some rearrangements supporting this.
   25762 
   25763 	* gmp-impl.h (JACOBI_*): More macros, add some casts to "int".
   25764 	(MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter.
   25765 	(mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines.
   25766 	(MODEXACT_1_ODD_THRESHOLD): New threshold.
   25767 	(MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros.
   25768 
   25769 	* mpn/generic/mode1o.c: New file.
   25770 
   25771 	* tests/mpz/reuse.c: Add testing of mpz_divexact_gcd.
   25772 	* tests/mpz/t-fac_ui.c: Use libtests for memory leak checking.
   25773 	* tests/mpz/t-fib_ui.c: Add a usage comment.
   25774 
   25775 	* tests/mpz/bit.c: Use libtests.
   25776 	* tests/mpz/t-scan.c: Remove unused subroutines.
   25777 	* tests/devel/try.c: Use libtests, define PROT_NONE if the system
   25778 	doesn't.
   25779 
   25780 	* tests/spinner.c, tests/x86check.c: Use tests.h.
   25781 	* tests/trace.c: Use tests.h, add mpf_trace.
   25782 	* tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned,
   25783 	refmpn_tstbit, refmpn_neg.
   25784 
   25785 	* tune/common.c, tune/speed.h: Update for functions moved to
   25786 	tests/misc.c.
   25787 
   25788 	* tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am,
   25789 	tests/mpf/Makefile.am: Use tests/libtests.la.
   25790 
   25791 	* configure.in (AC_OUTPUT): Update for new directories.
   25792 	(x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow
   25793 	ansi2knr on x86check.c.
   25794 
   25795 	* tests/Makefile.am: Establish new libtests.la convenience library,
   25796 	add mpz, mpq, mpf, mpbsd subdirectories.
   25797 	* tests/tests.h: New file.
   25798 	* mpn/tests/ref.h,try.h: Remove files, now in tests.h.
   25799 
   25800 	* tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf.
   25801 	* tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests.
   25802 	* tests/mpf/Makefile.am: Update.
   25803 
   25804 	* tests/memory.c: New file.
   25805 	* tests/misc.c: New file, a few subroutines from the test programs.
   25806 
   25807 	* mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to
   25808 	tests/mpz etc.
   25809 	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am
   25810 	(SUBDIRS): Remove.
   25811 
   25812 	* tests/devel: New directory.
   25813 	* mpn/tests/*.c: Move programs to tests/devel.
   25814 	* mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update.
   25815 
   25816 	* mpn/tests/ref.c: Move to tests/refmpn.c.
   25817 	* mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests
   25818 	directory.
   25819 
   25820 	* tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants,
   25821 	simplify ANSI vs K&R stringizing, use correct printf format types, do
   25822 	all tests before aborting.
   25823 
   25824 2001-01-05  Torbjorn Granlund  <tege (a] swox.com>
   25825 
   25826 	* mpn/cray/ieee/gmp-mparam.h: Retune.
   25827 
   25828 2001-01-05  Kevin Ryde  <kevin (a] swox.se>
   25829 
   25830 	* configure.in (mp.h): Only create this under --enable-mpbsd.
   25831 
   25832 	* demos/calc: New subdirectory, move demos/calc* to it.
   25833 	* demos/calc/Makefile.am: New file, split from demos/Makefile.am.
   25834 	* demos/Makefile.am: Update.
   25835 	* configure.in (AC_OUTPUT): Add demos/calc/Makefile.
   25836 
   25837 	* tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test
   25838 	for how many bits work in a give type, don't assume bits==8*sizeof.
   25839 
   25840 2001-01-04  Kevin Ryde  <kevin (a] swox.se>
   25841 
   25842 	* mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain
   25843 	UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc.
   25844 	* mpz/fits.c: Remove file.
   25845 	* mpz/Makefile.am, macos/Makefile.in: Update.
   25846 
   25847 	* gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms.
   25848 	(MPZ_FITS_[SU]TYPE_SDT): Remove these.
   25849 	(UINT_MAX etc): Provide a full set of defaults.
   25850 	* gmp-h.in (__GMP_MP_SIZE_T_INT): New define.
   25851 
   25852 	* mpz/tests/t-scan.c: New file.
   25853 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
   25854 
   25855 	* mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated
   25856 	memory, support negatives, return ULONG_MAX for no bit found.
   25857 	* gmp.texi (Integer Logic and Bit Fiddling): Update.
   25858 
   25859 2001-01-03  Torbjorn Granlund  <tege (a] swox.com>
   25860 
   25861 	* mpz/tests/dive.c: Generate test operands using new random functions.
   25862 	* mpz/tests/io.c: Likewise.
   25863 	* mpz/tests/logic.c: Likewise.
   25864 	* mpz/tests/t-2exp.c: Likewise.
   25865 
   25866 	* stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment.
   25867 
   25868 	* stack-alloc.h (__TMP_ALIGN): Append `L'.
   25869 
   25870 	* gmp-impl.h: For Cray, #include limits.h.
   25871 	(LONG_MIN): New #define.
   25872 	(ULONG_HIGHBIT): #define in terms of ULONG_MAX.
   25873 	(LONG_HIGHBIT): #define as LONG_MIN.
   25874 	(USHRT_MAX): New name for USHORT_MAX.
   25875 	(SHRT_MAX): New name for SHORT_MAX.
   25876 	(SHRT_MIN): New #define.
   25877 	(USHORT_HIGHBIT,SHORT_HIGHBIT): Removed.
   25878 
   25879 	* mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*;
   25880 	remove code disabling a test for Cray.
   25881 
   25882 	* tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long.
   25883 
   25884 	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'.
   25885 	(mpn_kara_mul_n): Likewise.
   25886 
   25887 	* mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'.
   25888 
   25889 	* mpz/tests/t-jac.c
   25890 	(main, check_squares_zi): Generate test operands using new random
   25891 	functions.
   25892 
   25893 	All changes below on this date for enabling `make; make check'
   25894 	with C++ compilers:
   25895 
   25896 	* mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes.
   25897 
   25898 	* mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul):
   25899 	Provide prototypes.
   25900 	(dump_abort): Provide prototype and declare properly for C++.
   25901 
   25902 	* mpz/tests/t-jac.c: #include stdlib.h and sys/time.h.
   25903 
   25904 	* mpz/tests/t-fdiv.c
   25905 	(dump_abort): Provide prototype and declare properly for C++.
   25906 	(debug_mp): Provide prototype.
   25907 	* mpz/tests/t-fdiv_ui.c: Likewise.
   25908 	* mpz/tests/t-gcd.c: Likewise.
   25909 	* mpz/tests/t-powm.c: Likewise.
   25910 	* mpz/tests/t-powm_ui.c: Likewise.
   25911 	* mpz/tests/t-sqrtrem.c: Likewise.
   25912 	* mpz/tests/t-tdiv_ui.c: Likewise.
   25913 	* mpz/tests/t-tdiv.c: Likewise.
   25914 
   25915 	* mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h.
   25916 	Remove #include of longlong.h.
   25917 
   25918 	* mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and
   25919 	conditionally unistd.h.
   25920 
   25921 	* mpz/tests/dive.c: #include stdlib.h and sys/time.h.
   25922 	(dump_abort): Provide prototype and declare properly for C++.
   25923 	(debug_mp): Provide prototype.
   25924 	* mpz/tests/logic.c: Likewise.
   25925 
   25926 	* mpz/tests/convert.c (debug_mp): Provide prototype.
   25927 	* mpz/tests/t-root.c (debug_mp): Likewise.
   25928 
   25929 	* mpz/tests/bit.c: #include stdlib.h and sys/time.h.
   25930 
   25931 	* mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h.
   25932 	(dump): Provide prototype and declare properly for C++.
   25933 
   25934 	* mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h.
   25935 	(ref_mpq_cmp_ui): Declare properly for C++.
   25936 
   25937 	* mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h.
   25938 	(ref_mpq_cmp): Declare properly for C++.
   25939 	(dump): Delete unused function.
   25940 
   25941 	* mpf/random2.c (myrandom): New function.
   25942 	(mpf_random2): Use it.
   25943 
   25944 	* mpn/generic/random2.c: #include stdlib.h (for random/mrand48).
   25945 	(myrandom): New function.
   25946 	(mpn_random2): Use it.
   25947 
   25948 	* mpf/tests/t-add.c: #include stdlib.h and sys/time.h.
   25949 	(oo): Remove unused function.
   25950 	* mpf/tests/t-conv.c: Likewise.
   25951 	* mpf/tests/t-sub.c: Likewise.
   25952 	* mpf/tests/t-dm2exp.c: Likewise.
   25953 	* mpf/tests/t-muldiv.c: Likewise.
   25954 	* mpf/tests/t-sqrt.c: Likewise.
   25955 
   25956 	* mpf/tests/reuse.c: #include stdlib.h and sys/time.h.
   25957 	Use PROTO on some typedefs.
   25958 	(oo): Remove function.
   25959 	(dump_abort): Call mpf_dump instead of oo.
   25960 
   25961 	* mpf/set_str.c: #include stdlib.h (for strtol).
   25962 
   25963 	* mpf/random2.c: #include stdlib.h (for random/mrand48).
   25964 	* mpn/alpha/udiv_arnnd: File deleted.
   25965 
   25966 	* Remove K&R function headers.
   25967 
   25968 2001-01-02  Torbjorn Granlund  <tege (a] swox.com>
   25969 
   25970 	* mpn/generic/mul.c: Clean up spacing and indentation.
   25971 
   25972 	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u.
   25973 	Clean up spacing and indentation.
   25974 
   25975 	* extract-dbl.c: Generalize to handle smaller limb sizes.
   25976 
   25977 2001-01-01  Torbjorn Granlund  <tege (a] swox.com>
   25978 
   25979 	* mpbsd/mout.c: Output newline after "0".
   25980 
   25981 2000-12-31  Torbjorn Granlund  <tege (a] swox.com>
   25982 
   25983 	* ltmain.sh: Remove space between `#!' and `$SHELL' when generating
   25984 	`libtool'.
   25985 
   25986 	* mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray
   25987 	vector systems.  Correct comment.
   25988 
   25989 2000-12-31  Kevin Ryde  <kevin (a] swox.se>
   25990 
   25991 	* gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc
   25992 	2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus.
   25993 
   25994 	* configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified
   25995 	MPN_PATH, amend test program indenting.
   25996 	(none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in
   25997 	generic C.
   25998 
   25999 	* config.sub (j90, t90): Preserve these, don't let configfsf.sub turn
   26000 	them into c90.
   26001 
   26002 	* config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform
   26003 	m68k to m68020, since m68k is already interpreted as 68020.
   26004 
   26005 2000-12-30  Kevin Ryde  <kevin (a] swox.se>
   26006 
   26007 	* mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary.
   26008 
   26009 	* mpz/tstbit.c: Rewrite, slightly simplified.
   26010 	* mpz/tests/bit.c (check_tstbit): New test, and add a couple more
   26011 	diagnostics elsewhere.
   26012 
   26013 	* configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2.
   26014 	(ccbase): Only use a known compiler in eval statements (avoids
   26015 	problems with non-symbol characters).
   26016 	(ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a
   26017 	different name.
   26018 	(cclist): Use same style $abi as other variables.
   26019 
   26020 	* acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro.
   26021 	(GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc.
   26022 	(GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed.
   26023 	(GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last
   26024 	line of a file doesn't leave a tab and no newline.
   26025 	(GMP_ASM_UNDERSCORE): Add a prototype for C++.
   26026 
   26027 	* configure.in (sys/mman.h, mprotect): New tests.
   26028 	* mpn/tests/try.c: Use them, and HAVE_UNISTD_H too.
   26029 
   26030 	* configure.in (getopt.h): Remove test.
   26031 	* tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since
   26032 	plain getopt() is in <unistd.h>.
   26033 
   26034 	* configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong
   26035 	rather than using _ABIN32.
   26036 
   26037 2000-12-29  Torbjorn Granlund  <tege (a] swox.com>
   26038 
   26039 	* mpz/tests/reuse.c: Rename dump_abort => dump.
   26040 	* mpz/tests/reuse.c: Generate operands using gmp_rand*.
   26041 	* mpz/tests/convert.c: Likewise.
   26042 
   26043 	* configure.in: Detect T90-ieee systems; move Cray path
   26044 	selection to after AC_PROG_CC.  Invoke AC_PROG_CPP.
   26045 	* mpn/cray/cfp: New directory.  Move cfp specific files here.
   26046 	* mpn/cray/cfp/mulwwc90.s: New file.
   26047 	* mpn/cray/cfp/mulwwj90.s: New file.
   26048 	* mpn/cray/mulww.s: Delete.
   26049 
   26050 2000-12-27  Torbjorn Granlund  <tege (a] swox.com>
   26051 
   26052 	* mpn/cray/ieee/mul_1.c: New file.
   26053 	* mpn/cray/ieee/addmul_1.c: New file.
   26054 	* mpn/cray/ieee/submul_1.c: New file.
   26055 	* mpn/cray/ieee/gmp-mparam.h: New file.
   26056 
   26057 	* mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME.
   26058 
   26059 	* mpn/cray/hamdist.c: New file.
   26060 	* mpn/cray/popcount.c: New file.
   26061 	* mpn/cray/rshift.c: New file.
   26062 	* mpn/cray/lshift.c: New file.
   26063 
   26064 	* longlong.h: Add count_leading_zeros for _CRAY.
   26065 	Reorganize _CRAY stuff.
   26066 
   26067 2000-12-24  Kevin Ryde  <kevin (a] swox.se>
   26068 
   26069 	* configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ,
   26070 	as tune/alpha.asm doesn't suit.
   26071 
   26072 	* mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c,
   26073 	mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n.
   26074 
   26075 2000-12-23  Torbjorn Granlund  <tege (a] swox.com>
   26076 
   26077 	* mpn/generic/mul_fft.c: Reformat.
   26078 	(mpn_fft_neg_modF): Remove.
   26079 	(mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF.
   26080 
   26081 	* mpn/cray/gmp-mparam.h: Retune.
   26082 
   26083 	* configure.in (*-cray-unicos*): Pass `-O3 -htask0'.
   26084 	(vax*-*-*): Fix typo.
   26085 
   26086 	* mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*.
   26087 	* mpn/cray/addmul_1.c: Likewise.
   26088 	* mpn/cray/submul_1.c: Likewise.
   26089 	* mpn/cray/add_n.c: Likewise.
   26090 	* mpn/cray/sub_n.c: Likewise.
   26091 
   26092 	* configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O.
   26093 	(mips*-*-irix[6789]*]): Remove -g from cc_*_cflags.
   26094 
   26095 2000-12-22  Torbjorn Granlund  <tege (a] swox.com>
   26096 
   26097 	* mpn/generic/mul_n.c: Delete K&R function headers.
   26098 
   26099 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion
   26100 	between mp_limb_t and mp_size_t.
   26101 	(mpn_kara_sqr_n): Likewise.
   26102 
   26103 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u.
   26104 	(mpn_kara_sqr_n): Likewise.
   26105 
   26106 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign'
   26107 	to work around GCC 2.8.1 MIPS bug.
   26108 
   26109 	* configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags.
   26110 
   26111 2000-12-21  Torbjorn Granlund  <tege (a] swox.com>
   26112 
   26113 	* mpn/alpha/invert_limb.asm: Simplify a bit.
   26114 	Add handling of bigend systems.
   26115 	* mpn/alpha/unicos.m4: Define `bigend'.
   26116 	* mpn/alpha/default.m4: Define `bigend' (to expand to nothing).
   26117 
   26118 	* tests/t-constants.c (CHECK_CONSTANT): Print using %lx.
   26119 
   26120 	* mpn/alpha/gmp-mparam.h: Remove sizes for plain C types.
   26121 	* mpn/alpha/ev5/gmp-mparam.h: Likewise.
   26122 	* mpn/alpha/ev6/gmp-mparam.h: Likewise.
   26123 
   26124 	* mpn/alpha/unicos.m4: Define LEA.
   26125 	* mpn/alpha/default.m4: Likewise.
   26126 	* mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses.
   26127 	* mpn/alpha/cntlz.asm: Likewise.
   26128 
   26129 	* mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower
   26130 	`ldq_u' + `extbl' instead.
   26131 
   26132 	* mpn/alpha/unicos.m4: Define EXTERN.
   26133 	* mpn/alpha/default.m4: Define EXTERN (to expand to nothing).
   26134 	* mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the
   26135 	benefit of Unicos).
   26136 
   26137 2000-12-21  Kevin Ryde  <kevin (a] swox.se>
   26138 
   26139 	* mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of
   26140 	__clz_tab.
   26141 
   26142 2000-12-20  Torbjorn Granlund  <tege (a] swox.com>
   26143 
   26144 	* longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP
   26145 	systems.
   26146 
   26147 2000-12-19  Torbjorn Granlund  <tege (a] swox.com>
   26148 
   26149 	* configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags.
   26150 
   26151 	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from
   26152 	`size' values.
   26153 
   26154 	* configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags.
   26155 
   26156 	* demos/pexpr.c (rstate): New variable.
   26157 	(main): Initialize rstate.
   26158 	(enum op_t): Add RANDOM.
   26159 	(fns): Add field for RANDOM.
   26160 	(mpz_eval_expr): Handle RANDOM.
   26161 
   26162 2000-12-19  Kevin Ryde  <kevin (a] swox.se>
   26163 
   26164 	* mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his
   26165 	Karatsuba Square Root algorithm.
   26166 	* gmp.texi (Square Root Algorithm): Update.
   26167 
   26168 	* tune/many.pl: New file.
   26169 
   26170 	* mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn,
   26171 	mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n,
   26172 	mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing.
   26173 	* mpn/tests/ref.c: Cast some "0"s in function calls.
   26174 
   26175 	* mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra
   26176 	variable for loop termination.
   26177 
   26178 	* mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following.
   26179 	* mpn/x86/p6/mod_1.asm: New file.
   26180 
   26181 	* mpn/x86/pentium/mod_1.asm: New file.
   26182 
   26183 2000-12-18  Torbjorn Granlund  <tege (a] swox.com>
   26184 
   26185 	* configure.in (mips*-*-irix[6789]*): Pass options to compiler using
   26186 	`-Wc'.
   26187 
   26188 2000-12-18  Kevin Ryde  <kevin (a] swox.se>
   26189 
   26190 	* mpn/x86/k6/pre_mod_1.asm: New file.
   26191 
   26192 	* tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1
   26193 	and mpn_mod_1 handling in support of it.
   26194 	* tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c.
   26195 
   26196 	* gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros.
   26197 	* mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1.
   26198 
   26199 	* configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint.
   26200 
   26201 	* mpn/alpha/default.m4: Remove some newlines, add some asserts.
   26202 	(r0 etc, f0 etc): Use defreg and deflit.
   26203 	(PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX.
   26204 	* mpn/alpha/unicos.m4: Remove some newlines, add some asserts.
   26205 	* mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter.
   26206 	* mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab.
   26207 
   26208 	* mpn/asm-defs.m4 (changecom): Comments on portability.
   26209 	(__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h.
   26210 	(count_leading_zeros, count_trailing_zeros): New define_mpn's.
   26211 	(PROLOGUE etc): Comments on usage, add some asserts.
   26212 	(OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of
   26213 	lorrshift multifunc.
   26214 
   26215 	* mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s
   26216 	removal, for development purposes.
   26217 
   26218 	* mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not
   26219 	mpz_mul_ui, and note some possible enhancements.
   26220 
   26221 	* mpz/tests/t-fac_ui.c: New test.
   26222 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
   26223 	* macos/Makefile.in: Ditto, and add t-fib_ui too.
   26224 
   26225 	* mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered
   26226 	by new parameter ASSERTs.
   26227 
   26228 	* longlong.h (count_trailing_zeros): Assert x!=0.
   26229 
   26230 	* doc/configuration: Updates for new configure things, add some notes
   26231 	on test setups.
   26232 
   26233 2000-12-16  Torbjorn Granlund  <tege (a] swox.com>
   26234 
   26235 	* configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit
   26236 	compiles.
   26237 	* configure.in: Disable shared libs for *-*-ultrix*.
   26238 
   26239 2000-12-15  Torbjorn Granlund  <tege (a] swox.com>
   26240 
   26241 	* configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc.
   26242 
   26243 	* gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other
   26244 	compilers.
   26245 
   26246 	* gmp-h.in (__gmp_inline): Remove.
   26247 	* mp-h.in: Likewise.
   26248 	* mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'.
   26249 
   26250 	* configure.in (mips*-*-irix[6789]*): Define *_ldflags.
   26251 
   26252 2000-12-14  Torbjorn Granlund  <tege (a] swox.com>
   26253 
   26254 	* mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd
   26255 	parameter `dummy'.
   26256 
   26257 	* mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement.
   26258 	* mpn/generic/mod_1.c: Likewise.
   26259 
   26260 2000-12-14  Kevin Ryde  <kevin (a] swox.se>
   26261 
   26262 	* config.guess (mips-*-irix[6789]*): Transform to mips64.
   26263 	(m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020.
   26264 
   26265 2000-12-13  Torbjorn Granlund  <tege (a] swox.com>
   26266 
   26267 	* tests/t-constants.c (main): Conditionalize use of PP_INVERTED.
   26268 
   26269 	* mpn/mp_bases.c: Handle 4-bit limbs.
   26270 	(main): Add code for generating tables.
   26271 
   26272 	* mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16.
   26273 	Suffix all 32-bit constant with `L'.
   26274 	Use CNST_LIMB for 64-bit constants.
   26275 
   26276 2000-12-13  Kevin Ryde  <kevin (a] swox.se>
   26277 
   26278 	* gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and
   26279 	an arbitrary fallback default.
   26280 	(modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb.
   26281 
   26282 	* configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit
   26283 	limb) on IRIX 6.
   26284 
   26285 	* Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is
   26286 	run first, to pick up any limb size mismatch.
   26287 
   26288 	* tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1.
   26289 
   26290 	* mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb.
   26291 
   26292 2000-12-12  Torbjorn Granlund  <tege (a] swox.com>
   26293 
   26294 	* gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize.
   26295 
   26296 2000-12-11  Torbjorn Granlund  <tege (a] swox.com>
   26297 
   26298 	* mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs.
   26299 	Round existing `double' values properly.
   26300 
   26301 	* gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_
   26302 	to keep out of user name space.
   26303 	(__gmp_randata_lc): Likewise.
   26304 	* randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c:
   26305 	Corresponding changes.
   26306 
   26307 	* gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB
   26308 	of 2, 4, 8, and 16.
   26309 	(PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB.
   26310 	(PP_MASK): Remove.
   26311 	(PP_MAXPRIME): Remove.
   26312 
   26313 	* mpn/generic/perfsqr.c: Generalize PP handling for machines with
   26314 	limbs of < 32 bits.  Allow PP_INVERTED to be undefined.
   26315 	* mpz/pprime_p.c: Likewise.
   26316 
   26317 2000-12-10  Torbjorn Granlund  <tege (a] swox.com>
   26318 
   26319 	* mpn/generic/mul_1.c: Declare parameters in C89 style.
   26320 
   26321 2000-12-10  Kevin Ryde  <kevin (a] swox.se>
   26322 
   26323 	* tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS):
   26324 	Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like
   26325 	it.
   26326 
   26327 	* configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and
   26328 	ABI=o32.
   26329 	* mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let
   26330 	configure determine it, since it varies with ABI=64 or ABI=n32.
   26331 	* gmp.texi (ABI and ISA): Update.
   26332 	(mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui.
   26333 	(mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even.
   26334 
   26335 	* mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix
   26336 	results in certain cases of recursing into a further FFT.
   26337 
   26338 2000-12-09  Torbjorn Granlund  <tege (a] swox.com>
   26339 
   26340 	* mpz/cmpabs.c: Remove unused variable.
   26341 	* mpz/rrandomb.c: Likewise.
   26342 	* mpz/xor.c: Likewise.
   26343 
   26344 2000-12-07  Torbjorn Granlund  <tege (a] swox.com>
   26345 
   26346 	* mpn/generic/gcdext.c: Handle double carry when computing s1.
   26347 	Merge two code blocks for computing s0 and s1.
   26348 
   26349 2000-12-07  Kevin Ryde  <kevin (a] swox.se>
   26350 
   26351 	* configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from
   26352 	cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae,
   26353 	whichever works.
   26354 
   26355 	* configure.in (*-*-aix[34]*): Disable shared by default, but let
   26356 	the user override that, if desired.
   26357 	* gmp.texi (Notes for Particular Systems): Update.
   26358 
   26359 2000-12-06  Torbjorn Granlund  <tege (a] swox.com>
   26360 
   26361 	* mpq/cmp_ui.c: Streamline.
   26362 
   26363 2000-12-06  Kevin Ryde  <kevin (a] swox.se>
   26364 
   26365 	* tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c,
   26366 	gcdext_double.c: New files for measuring.
   26367 	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
   26368 	* tune/speed.c,speed.h,common.c: Add measuring of them.
   26369 	(mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring.
   26370 
   26371 	* speed.c (getopt_long): Don't use this, just plain getopt.
   26372 	* configure.in (getopt_long): Remove test.
   26373 
   26374 	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE,
   26375 	MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and
   26376 	assume toom3 square tsize was meant to be the same as the mul (both
   26377 	are overestimates).
   26378 	* tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them.
   26379 	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use
   26380 	TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might
   26381 	be more realistic size checks.
   26382 	* tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize.
   26383 
   26384 	* mpn/generic/divrem_1.c: Partial rewrite, merge fractional part
   26385 	calculation, skip a divide step in more cases, introduce
   26386 	DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD.
   26387 	* mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more
   26388 	cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD.
   26389 	* longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
   26390 	* tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD,
   26391 	MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these.
   26392 	* gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this.
   26393 	* tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c.
   26394 
   26395 	* gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME.
   26396 	* mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c,
   26397 	mpn/x86/*/gmp-mparam.h: Ditto.
   26398 	* gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define.
   26399 
   26400 	* configure.in (AC_C_INLINE, HAVE_INLINE): New test and define.
   26401 	* gmp-impl.h (inline): Remove, use config.h.
   26402 	(_EXTERN_INLINE): Redefine based on HAVE_INLINE.
   26403 	(mpn_zero_p): Use HAVE_INLINE.
   26404 
   26405 	* acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user
   26406 	selected $AR or $NM.
   26407 
   26408 	* tune/tuneup.c (all): Print how long the tuning took.
   26409 
   26410 	* configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR.
   26411 	* acinclude.m4 (GMP_ANSI2KNR): Remove.
   26412 
   26413 	* Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES.
   26414 
   26415 	* gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some
   26416 	zeros, for the benefit of K&R if long!=int.
   26417 
   26418 	* mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for
   26419 	the benefit of cray.
   26420 
   26421 	* compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be
   26422 	mp_limb_t, not int, and need an actual "return".
   26423 
   26424 2000-12-05  Torbjorn Granlund  <tege (a] swox.com>
   26425 
   26426 	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
   26427 	* mpn/alpha/gmp-mparam.h: Tune for 21064.
   26428 
   26429 	* longlong.h: Reformat to avoid newlines within strings.
   26430 
   26431 	* gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__.
   26432 
   26433 	* configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c.
   26434 
   26435 	* Makefile.am: Treat mp.h analogously to gmp.h.
   26436 
   26437 	configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc.
   26438 
   26439 	* mp-h.in: Renamed from mp.h.
   26440 	Add #define for _LONG_LONG_LIMB.
   26441 	Move some other fixes from gmp-h.in.
   26442 	* mp.h: Removed.
   26443 	* configure.in: Generate mp.h from mp-h.in like we handle
   26444 	gmp-h.in/gmp.h.
   26445 
   26446 2000-12-04  Torbjorn Granlund  <tege (a] swox.com>
   26447 
   26448 	* acinclude.m4: Fix typo testing for bad HP compiler.
   26449 
   26450 2000-12-03  Torbjorn Granlund  <tege (a] swox.com>
   26451 
   26452 	* mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray
   26453 	CFP systems.
   26454 
   26455 	* longlong.h (CRAYIEEE umul_ppmm): New.
   26456 
   26457 	* mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64.
   26458 	(*_THRESHOLD): Tune.
   26459 
   26460 	* configure.in: Disable shared libs for *-*-unicos*.
   26461 
   26462 2000-12-03  Kevin Ryde  <kevin (a] swox.se>
   26463 
   26464 	* configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during
   26465 	configure, and use it unconditionally in $(nodist_tuneup_SOURCES).
   26466 	Fixes a problem with sqr_basecase.lo under --disable-static.
   26467 
   26468 2000-12-01  Torbjorn Granlund  <tege (a] swox.com>
   26469 
   26470 	* mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE
   26471 	Cray systems.
   26472 
   26473 	* gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE.
   26474 
   26475 2000-11-30  Torbjorn Granlund  <tege (a] swox.com>
   26476 
   26477 	* mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro
   26478 	invocations.
   26479 	(ref_mpz_mul): New name from mpz_refmul.  Make static.
   26480 	(base_mul): New name for _mpn_mul_classic.
   26481 
   26482 2000-11-30  Kevin Ryde  <kevin (a] swox.se>
   26483 
   26484 	* configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a
   26485 	notion of ABI, merge compiler and mpn path selection, add flags
   26486 	selection for AR and NM, let CC without CFLAGS work.
   26487 	(AC_PROG_CC): Use this, not GMP_SELECT_CC.
   26488 	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine
   26489 	cc/cflags parameter.
   26490 	(GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove.
   26491 	* gmp.texi (Installing GMP): Updates for new scheme.
   26492 
   26493 	* configure.in (AC_CANONICAL_HOST): Use this and $host, not $target.
   26494 	* acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4,
   26495 	mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to
   26496 	HAVE_HOST_CPU.
   26497 	* gmp.texi (Build Options, and elsewhere): Update.
   26498 
   26499 	* acinclude.m4 (GMP_COMPARE_GE): New macro.
   26500 	(GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC.
   26501 	(GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT.
   26502 
   26503 	* acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding
   26504 	GMP flags.
   26505 	* configure.in: Use it
   26506 
   26507 	* gmp-h.in: Renamed from gmp.h.
   26508 	(@define_LONG_LONG_LIMB@): Placeholder for instantiation.
   26509 	(__GNU_MP__): Bump to 3.
   26510 	* acinclude.m4 (GMP_VERSION): Get version from gmp-h.in.
   26511 	* configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB.
   26512 	* gmp.texi.h (ABI and ISA): Mention this.
   26513 	* acconfig.h (_LONG_LONG_LIMB): Remove undef.
   26514 	* Makefile.am: Distribute gmp-h.in, not gmp.h.
   26515 
   26516 	* configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove,
   26517 	dragged in by other macros.
   26518 	(gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing.
   26519 	(AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool.
   26520 	* configure.in, acinclude.m4: Remove "" from "`foo`", being
   26521 	unnecessary and not portable.
   26522 
   26523 	* configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link.
   26524 	(powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation,
   26525 	but can't build shared and static at the same time.
   26526 	* Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use
   26527 	$(GMP_LDFLAGS).
   26528 	* gmp.texi (Notes for Particular Systems): Update AIX problem
   26529 
   26530 	* configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links.
   26531 	(gmp_srclinks): Build up as needed, not via gmp_links.
   26532 
   26533 	* acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here.
   26534 	* configure.in (asm-defs.m4): Consequent changes.
   26535 
   26536 	* acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing
   26537 	GMP_INCLUDE and GMP_SINCLUDE.
   26538 	* configure.in (gmp_m4postinc): Remove this scheme, use
   26539 	GMP_INCLUDE_MPN instead.
   26540 
   26541 	* configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no,
   26542 	until libtool does this itself.
   26543 	* gmp.texi (Known Build Problems): Remove SCO -lc problem.
   26544 
   26545 	* configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29.
   26546 	* acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF.
   26547 	* gmp.texi (Known Build Problems): Remove version.c sed/config.h
   26548 	problem, fixed.
   26549 
   26550 	* ltmain.sh, aclocal.m4: Update to libtool 2000-11-25.
   26551 	* ltconfig: No longer required, but leave an empty dummy for automake.
   26552 	* gmp.texi (Known Build Problems): Remove SunOS native ar ranlib
   26553 	problem, fixed.
   26554 
   26555 	* */Makefile.in, aclocal.m4: Update to automake 2000-11-25.
   26556 	* mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS):
   26557 	Remove dummy, no longer required.
   26558 	* mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files.
   26559 	* depcomp: Remove file, no longer required (with no-dependencies).
   26560 
   26561 	* texinfo.tex: Update to 2000-11-09.
   26562 	* gmp.texi (Build Options): Mention PDF from gmp.texi.
   26563 	* Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex.
   26564 
   26565 	* gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67,
   26566 	hppa2.0n and power among supported CPUs.
   26567 
   26568 2000-11-30  Torbjorn Granlund  <tege (a] swox.com>
   26569 
   26570 	* mpz/tests/t-mul.c: Increase max operand size from 2^17 bits
   26571 	to 2^19 bits.  Misc cleanups.
   26572 
   26573 2000-11-26  Kevin Ryde  <kevin (a] swox.se>
   26574 
   26575 	* tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of
   26576 	odd and even sizes.
   26577 
   26578 	* longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all
   26579 	compilers, not just gcc.
   26580 
   26581 	* pre_mod_1.c: Use conditional subtract to always skip a division.
   26582 	(UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h.
   26583 
   26584 2000-11-22  Torbjorn Granlund  <tege (a] swox.com>
   26585 
   26586 	* mpn/pa64w/gmp-mparam.h: Retune.
   26587 	* mpn/pa64/gmp-mparam.h: Retune.
   26588 	* mpn/sparc64/gmp-mparam.h: Retune.
   26589 
   26590 2000-11-22  Kevin Ryde  <kevin (a] swox.se>
   26591 
   26592 	* gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros.
   26593 	* mpn/generic/gcdext.c: Use them.
   26594 
   26595 	* mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step.
   26596 	* tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single
   26597 	and double.
   26598 	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
   26599 	(TUNE_MPN_SRCS): Remove gcdext.c.
   26600 	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring.
   26601 	* tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb
   26602 	is ever better.  Should be more accurate, and hopefully faster.
   26603 
   26604 	* tune/gcdext_single.c: New file, gcdext forced to single limbs.
   26605 	* tune/Makefile.am: Add it.
   26606 	* tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of
   26607 	invert_limb.
   26608 
   26609 	* tune/speed.h (speed_params r): Use mp_limb_t, not long.
   26610 	* tune/speed.h, tune/common.c: Don't "switch" on "r".
   26611 	* tune/speed.c (r_string): Accept limb sized constants.
   26612 	(choice scale): Add a scale factor (eg. "2.33*mpn_add_n").
   26613 	* tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to
   26614 	__mp_bases[10].big_base, being a full limb value.
   26615 
   26616 	* configure.in (alphapca56*-*-*): Use ev5 mpn path.
   26617 	(am29000*-*-*): Remove this, leave the canonical a29k.
   26618 	(z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical.
   26619 	(gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64.
   26620 
   26621 	* configure.in (alloca): Accept yes/no/detect, generate an error if
   26622 	"yes" but not available.
   26623 	* gmp.texi (Build Options): Update.
   26624 
   26625 	* acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available.
   26626 	(GMP_ASM_ALIGN_FILL_0x90): Use it.
   26627 
   26628 	* acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris
   26629 	2.6 "as" movq bug.
   26630 	* gmp.texi (Notes for Particular Systems): Update x86 MMX note.
   26631 
   26632 2000-11-21  Torbjorn Granlund  <tege (a] swox.com>
   26633 
   26634 	* tune/Makefile.am (EXTRA_DIST): List hppa2w.asm.
   26635 
   26636 	* tune/hppa2.asm: Change level directive to "2.0n".
   26637 	* tune/hppa2w.asm: New file.
   26638 	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w.
   26639 
   26640 	* mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32.
   26641 
   26642 2000-11-21  Kevin Ryde  <kevin (a] swox.se>
   26643 
   26644 	* urandom.h (random): No prototype if glibc stdlib.h has already
   26645 	provided it (avoids an int32_t/long conflict).
   26646 
   26647 	* tune/Makefile.am (LDFLAGS): Use -all-static.
   26648 	(speed-dynamic): Dynamic linked version of speed.c.
   26649 	* tune/README: Update.
   26650 
   26651 	* mpn/generic/gcd.c (find_a): Use native version if available.
   26652 	* acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef.
   26653 	* gmp-impl.h (mpn_gcd_finda): Add prototype and define.
   26654 	* mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn.
   26655 	* tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda.
   26656 	* configure.in (gmp_mpn_functions_optional): Add gcd_finda.
   26657 	* mpn/x86/k6/gcd_finda.asm: New file.
   26658 
   26659 	* tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps.
   26660 
   26661 	* gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion.
   26662 	* tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after
   26663 	gmp-impl.h to force thresholds.
   26664 	* tune/tuneup.c (print_define, fft): No need for #ifndefs on
   26665 	thresholds any more.
   26666 
   26667 2000-11-20  Torbjorn Granlund  <tege (a] swox.com>
   26668 
   26669 	* mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c.
   26670 	* mpz/tests/t-powm_ui.c: Likewise.
   26671 	* mpz/tests/t-pow_ui.c: Likewise.
   26672 	* mpz/tests/t-root.c: Likewise.
   26673 
   26674 	* configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for
   26675 	all hppa versions.
   26676 
   26677 	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative
   26678 	addressing (was r19 relative addressing).
   26679 
   26680 2000-11-18  Torbjorn Granlund  <tege (a] swox.com>
   26681 
   26682 	* rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal.
   26683 	(gmp_randinit): Expect strings in hexadecimal.
   26684 
   26685 2000-11-18  Kevin Ryde  <kevin (a] swox.se>
   26686 
   26687 	* configfsf.guess, configfsf.sub: Update to 2000-11-16.
   26688 	* config.guess (alpha*-*-openbsd*): Do exact cpu detection.
   26689 
   26690 2000-11-14  Torbjorn Granlund  <tege (a] swox.com>
   26691 
   26692 	* mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c.
   26693 	* mpz/tests/t-tdiv_ui.c: Likewise.
   26694 	* mpz/tests/t-fdiv_ui.c: Likewise.
   26695 	* mpz/tests/t-sqrtrem.c: Likewise.
   26696 	* mpz/tests/t-gcd.c: Likewise.
   26697 
   26698 2000-11-13  Kevin Ryde  <kevin (a] swox.se>
   26699 
   26700 	* mpn/Makeasm.am: New file, splitting out assembler rules.
   26701 	* mpn/Makefile.am, tune/Makefile.am: Use it.
   26702 
   26703 	* mpn/Makefile.am (@CPP@): Remove this, automake already gives it.
   26704 
   26705 	* configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it.
   26706 	* Makefile.am (MPFR_LIBADD_OPTION): Use it.
   26707 	* demos/Makefile.am (qcn_LDADD): Ditto.
   26708 	* tune/Makefile.am (libspeed_la_LIBADD): Ditto.
   26709 	* tests/rand/Makefile.am (libstat_la_LIBADD): Ditto.
   26710 
   26711 	* tune/time.c (timeval_diff_secs): Better calculation.
   26712 	(read_real_time): New measuring method for AIX power/powerpc.
   26713 	(speed_endtime): Protect against negative times.
   26714 	* tune/common.c (speed_measure): Protect against big reps.
   26715 	* tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff.
   26716 	* tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros.
   26717 	* configure.in: (sys/systemcfg.h, read_real_time): New tests.
   26718 
   26719 2000-11-13  Torbjorn Granlund  <tege (a] swox.com>
   26720 
   26721 	* mpz/tests/t-mul.c: Remove #include urandom.h.
   26722 	* mpz/tests/t-tdiv.c: Likewise.
   26723 
   26724 	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]:
   26725 	Declare hppa.asm as just 32 bits (cyclecounter_size=1).
   26726 
   26727 2000-11-12  Torbjorn Granlund  <tege (a] swox.com>
   26728 
   26729 	* mpz/tests/t-mul.c
   26730 	(main): Generate random numbers using gmp_rand* functions.
   26731 	(main): Distribute random numbers non-uniformly.
   26732 	(main): Seed by current time if GMP_CHECK_RANDOMIZE is set.
   26733 	(_mpn_mul_classic): Streamline.
   26734 	* mpz/tests/t-tdiv.c: Analogous changes.
   26735 
   26736 	* demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS.
   26737 	Also test for __hpux.
   26738 
   26739 2000-11-11  Torbjorn Granlund  <tege (a] swox.com>
   26740 
   26741 	* mpn/alpha/ev5/gmp-mparam.h: Retune.
   26742 
   26743 	* mpn/alpha/ev6/gmp-mparam.h: Retune.
   26744 
   26745 	* mpn/alpha/ev6/add_n.asm: Misc cleanups.
   26746 
   26747 	* mpn/alpha/ev6/sub_n.asm: New file.
   26748 
   26749 2000-11-10  Torbjorn Granlund  <tege (a] swox.com>
   26750 
   26751 	* configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path.
   26752 
   26753 	* mpn/alpha/ev6/add_n.asm: New file.
   26754 
   26755 2000-11-10  Kevin Ryde  <kevin (a] swox.se>
   26756 
   26757 	* mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL.
   26758 	* tune/powm_mod.c, tune/powm_redc.c: New files.
   26759 	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
   26760 	* tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc.
   26761 
   26762 	* tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod.
   26763 	* tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm.
   26764 
   26765 2000-11-10  Torbjorn Granlund  <tege (a] swox.com>
   26766 
   26767 	* mpn/mips3/gmp-mparam.h: Retune.
   26768 
   26769 	* configure.in (os_64bit): Rename to check_64bit_compiler.
   26770 
   26771 2000-11-09  Torbjorn Granlund  <tege (a] swox.com>
   26772 
   26773 	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code
   26774 	depending on $CC64.
   26775 
   26776 2000-11-09  Kevin Ryde  <kevin (a] swox.se>
   26777 
   26778 	* mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1.
   26779 	Add 1c entrypoint.
   26780 	* mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple
   26781 	of cycles at entry and exit.
   26782 
   26783 	* configure.in (power1,2,2sc): Support these as synonyms for plain
   26784 	power.
   26785 
   26786 	* acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here.
   26787 	(GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names.
   26788 	* configure.in: Consequent changes.
   26789 
   26790 	* gmp.texi (Notes for Particular Systems): Remarks about power/powerpc.
   26791 	(Reentrancy): Remarks about simultaneous writing.
   26792 	(Reporting Bugs): Ask for configfsf.guess.
   26793 
   26794 2000-11-08  Kevin Ryde  <kevin (a] swox.se>
   26795 
   26796 	* acinclude.m4 (GMP_FUNC_ALLOCA): New macro.
   26797 	* configure.in: Use it.
   26798 	* gmp-impl.h (alloca): Conditionals and setups as per autoconf
   26799 	(should make alloca available on more non-gcc compilers).
   26800 
   26801 	* acinclude.m4: Misc reformatting, simplify some quoting.
   26802 	(GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS.
   26803 	(GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put
   26804 	AC_REQUIREs outside AC_CACHE_CHECK.
   26805 	(GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS.
   26806 	(GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm
   26807 	conftes1* conftes2*.
   26808 	(GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*.
   26809 	(GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*.
   26810 	* configure.in: Use GMP_PROG_NM.
   26811 
   26812 	* mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE.
   26813 	(spinner_init): Force output to unbuffered.
   26814 
   26815 	* mpn/x86/README.family: Notes about GOT table and imul, misc updates.
   26816 	* mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul.
   26817 	* mpn/x86/k6/diveby3.asm: Ditto.
   26818 
   26819 2000-11-06  Torbjorn Granlund  <tege (a] swox.com>
   26820 
   26821 	* urandom.h: Simplify and make it work properly for 64-bit
   26822 	machines also in environments without `random'.
   26823 
   26824 2000-11-04  Torbjorn Granlund  <tege (a] swox.com>
   26825 
   26826 	* configure.in [path switch]: Don't match rs6000-*-*, in
   26827 	particular don't assume POWER.
   26828 
   26829 	* tune/tuneup.c (fft): Remove usleep calls.
   26830 
   26831 	* config.guess: Don't pass "$@" when it is known to be empty.
   26832 
   26833 	* Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub.
   26834 
   26835 2000-11-04  Kevin Ryde  <kevin (a] swox.se>
   26836 
   26837 	* configfsf.guess, configfsf.sub: Moved from config.guess and
   26838 	config.sub.
   26839 	* config.guess, config.sub: New files, wrappers around around
   26840 	configfsf versions.
   26841 	* configfsf.guess: Update to FSF 2000-10-23.
   26842 	* configfsf.sub: Update to FSF 2000-10-25.
   26843 
   26844 	* acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro.
   26845 	* mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros
   26846 	conditionalized by GMP_ASM_POWERPC_R_REGISTERS.
   26847 	* mpn/powerpc32/regmap.m4: Remove file.
   26848 	* configure.in (powerpc*-*-*): Use all this.
   26849 
   26850 	* mpz/divegcd.c: New file, providing mpz_divexact_gcd.
   26851 	* Makefile.am, mpz/Makefile.am: Add it.
   26852 	* gmp-impl.h (mpz_divexact_gcd): Add prototype.
   26853 	* mpq/aors.c,canonicalize.c,div.c,mul.c: Use it.
   26854 
   26855 	* longlong.h [pentium] (count_leading_zeros): New macro.
   26856 	(__clz_tab): Always provide prototype.
   26857 	* acconfig.h (HAVE_TARGET_CPU_): Add x86s.
   26858 
   26859 	* tune/speed.[ch],common.c (count_leading_zeros,
   26860 	count_trailing_zeros, __udiv_qrnnd_c): Add measuring.
   26861 
   26862 	* configure.in (X86_PATTERN): Move from here ...
   26863 	* acinclude.m4 (X86_PATTERN): ... to here.
   26864 	(GMP_ASM_RODATA): Use it.
   26865 
   26866 	* configure.in (srandom): New test.
   26867 	* mpn/tests/try.c: Use it.
   26868 	* tune/speed.c: Ditto, and conditionalize getrusage and headers.
   26869 
   26870 2000-11-02  Kevin Ryde  <kevin (a] swox.se>
   26871 
   26872 	* mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c
   26873 	and udiv_w_sdiv.c.
   26874 
   26875 	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate
   26876 	subtract at the evaluate stage.
   26877 
   26878 2000-11-01  Torbjorn Granlund  <tege (a] swox.com>
   26879 
   26880 	* configure.in [compiler switch] (sparc64-*-linux*): Spell
   26881 	gmp_xoptcflags_gcc properly, and pass same options as for other
   26882 	sparcv9 configs.
   26883 
   26884 	* tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize.
   26885 
   26886 2000-10-31  Torbjorn Granlund  <tege (a] swox.com>
   26887 
   26888 	* configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis
   26889 	from gmp_xoptflags_gcc, this might not be an ultrasparc.
   26890 	Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus.
   26891 
   26892 2000-10-29  Torbjorn Granlund  <tege (a] swox.com>
   26893 
   26894 	* mpn/ia64/lorrshift.asm: New file.
   26895 
   26896 	* configure.in: New mulfunc `lorrshift' for lshift and rshift.
   26897 
   26898 2000-10-29  Kevin Ryde  <kevin (a] swox.se>
   26899 
   26900 	* mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing
   26901 	superfluous mpn_sub_n calls.
   26902 
   26903 	* configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ,
   26904 	for the benefit of targets whose only .asm is a cycle counter.
   26905 
   26906 	* tune/tuneup.c (fft): Remove bogus usleep calls.
   26907 
   26908 2000-10-28  Torbjorn Granlund  <tege (a] swox.com>
   26909 
   26910 	* mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right.
   26911 
   26912 	* tune/Makefile.am (EXTRA_DIST): Add ia64.asm.
   26913 
   26914 	* tune/ia64.asm: Fix typo.
   26915 
   26916 	* add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm:
   26917 	Preserve ar.lc as required by ABI.
   26918 	* longlong.h (ia64 udiv_qrnnd): New.
   26919 
   26920 	* configure.in [path switch] (ia64*-*-*): Set extra_functions.
   26921 	* mpn/ia64/invert_limb.asm: New file.
   26922 
   26923 2000-10-27  Torbjorn Granlund  <tege (a] swox.com>
   26924 
   26925 	* configure.in [compiler switch]:
   26926 	Get rid of c89 for all hppa flavours--it is an evil compiler!
   26927 
   26928 	* tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp.
   26929 	(SPEED_ROUTINE_MPN_GET_STR): Fix type of wp.
   26930 
   26931 2000-10-27  Kevin Ryde  <kevin (a] swox.se>
   26932 
   26933 	* gmp.texi (Fibonacci Number Algorithm): New section.
   26934 
   26935 	* mpz/tests/t-fib_ui.c: New file.
   26936 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
   26937 
   26938 	* mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and
   26939 	some lookup tables, much faster at small to moderate sizes.
   26940 	* gmp-impl.h (MPZ_FIB_SIZE): New macro.
   26941 	(FIB_THRESHOLD): Establish default here.
   26942 	* tune/tuneup.c (FIB_THRESHOLD): Start search after the new table
   26943 	data.
   26944 
   26945 	* mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx,
   26946 	and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_.
   26947 
   26948 	* tune/freq.c (speed_cpu_frequency_measure): New test comparing
   26949 	gettimeofday and speed_cyclecounter, should cover many systems.
   26950 
   26951 2000-10-27  Torbjorn Granlund  <tege (a] swox.com>
   26952 
   26953 	* mpn/ia64/gmp-mparam.h: Retune.
   26954 
   26955 2000-10-26  Torbjorn Granlund  <tege (a] swox.com>
   26956 
   26957 	* longlong.h (ia64): Set UMUL_TIME and UDIV_TIME.
   26958 
   26959 	* mpn/ia64/submul_1.c: Fix typo.
   26960 
   26961 2000-10-25  Kevin Ryde  <kevin (a] swox.se>
   26962 
   26963 	* tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting
   26964 	hw.model for BSD flavours.
   26965 	* configure.in (sysctl, sys/param.h): New tests.
   26966 
   26967 2000-10-24  Torbjorn Granlund  <tege (a] swox.com>
   26968 
   26969 	* tune/freq.c: Explicitly #include config.h before other include files.
   26970 
   26971 	* mpz/tests/reuse.c (FAIL2): New #define.
   26972 	(main): Use FAIL2.  Now this test properly returns non-zero exit
   26973 	status when it fails.
   26974 
   26975 	* mpn/powerpc32/gmp-mparam.h: Retune.
   26976 	* mpn/powerpc64/gmp-mparam.h: Retune.
   26977 
   26978 2000-10-24  Kevin Ryde  <kevin (a] swox.se>
   26979 
   26980 	* mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment.
   26981 
   26982 	* mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if
   26983 	gcd gives 1, which should be 60% of the time.
   26984 	* gmp-impl.h (MPZ_EQUAL_1_P): New macro.
   26985 	* mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET.
   26986 
   26987 	* tune/tuneup.c (xp_block, yp_block): Initialize these with random
   26988 	data.  Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM.
   26989 
   26990 2000-10-23  Torbjorn Granlund  <tege (a] swox.com>
   26991 
   26992 	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case.
   26993 
   26994 	* mpn/ia64/gmp-mparam.h: Fill in some parameters.
   26995 
   26996 	* mpn/ia64/submul_1.c: New file.
   26997 
   26998 	* tune/ia64.asm: New file.
   26999 
   27000 	* gmp-impl.h (union ieee_double_extract): Handle ia64.
   27001 
   27002 	* mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to
   27003 	work around buggy ia64-linux.
   27004 
   27005 	* longlong.h (ia64 umul_ppmm): Update register flags to match new GCC.
   27006 
   27007 2000-10-22  Torbjorn Granlund  <tege (a] swox.com>
   27008 
   27009 	* mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update.
   27010 	* mpn/alpha/ev6/submul_1.asm: New file.
   27011 
   27012 2000-10-22  Kevin Ryde  <kevin (a] swox.se>
   27013 
   27014 	* tune/gcd_bin.c: New file.
   27015 	* tune/gcd_finda_gen.c: New file.
   27016 	* tune/Makefile.am (libspeed_la_SOURCES): Add them.
   27017 	* tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring.
   27018 
   27019 	* * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc.
   27020 	(__gmp_default_allocate etc): Rename from _mp_default_allocate etc.
   27021 	* gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE,
   27022 	__GMP_REALLOCATE_FUNC_LIMBS): New macros.
   27023 
   27024 	* gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA
   27025 	since that's the measured average.
   27026 	* mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD):
   27027 	Remove default.
   27028 
   27029 2000-10-21  Torbjorn Granlund  <tege (a] swox.com>
   27030 
   27031 	* mpn/Makefile.am (TARG_DIST): Add ia64.
   27032 
   27033 2000-10-21  Kevin Ryde  <kevin (a] swox.se>
   27034 
   27035 	* *: Change BZ -> DC.
   27036 	* mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c.
   27037 
   27038 	* doc/multiplication: Remove file, now in the manual.
   27039 	* doc/assembly_code: Ditto.
   27040 	* tune/README: Remove some parts now in the manual.
   27041 
   27042 	* gmp.texi (@m etc): Add and use some new macros.
   27043 	(Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity
   27044 	and to emphasise similarities.
   27045 	(Low-Level Functions - mpn_[lr]shift): Specify count as 1 to
   27046 	mp_bits_per_limb-1.
   27047 	(Algorithms): New chapter.
   27048 	(References): Add some papers.
   27049 
   27050 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some
   27051 	unused variables.
   27052 	* mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto.
   27053 
   27054 	* tune/freq.c: New file, split from time.c.
   27055 	* tune/time.c: Rewrite, now more automated.
   27056 	* configure.in, tune/*: Consequent changes.
   27057 
   27058 2000-10-20  Torbjorn Granlund  <tege (a] swox.com>
   27059 
   27060 	* mpn/ia64/default.m4: New file.
   27061 	* configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4.
   27062 
   27063 	* mpn/ia64/mul_1.asm: New file.
   27064 	* mpn/ia64/addmul_1.asm: New file.
   27065 	* mpn/ia64/add_n.asm: New file.
   27066 	* mpn/ia64/sub_n.asm: New file.
   27067 	* mpn/ia64/popcount.asm: New file.
   27068 	* mpn/ia64/README: New file.
   27069 
   27070 	* mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START.
   27071 
   27072 	* configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0
   27073 	by sed'ing the period into `_'.
   27074 
   27075 	* acconfig.h: Add #undefs for hppa targets.
   27076 
   27077 	* longlong.h (udiv_qrnnd): Fix typo in last change.
   27078 
   27079 	* mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug).
   27080 
   27081 	* configure.in [path switch]:
   27082 	(hppa2.0*-*-*): For non-CC64 case, update path.
   27083 
   27084 	* configure.in [compiler switch]:
   27085 	(hppa2.0w-*-*): Match with same regexp in both places.
   27086 	(hppa*-*-*): New case.
   27087 	(all hppa alternatives): Don't inherit default gmp_cflags_cc,
   27088 	gmp_cflags_c89.
   27089 
   27090 2000-10-18  Torbjorn Granlund  <tege (a] swox.com>
   27091 
   27092 	* configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for
   27093 	alpha*-*-osf*.
   27094 
   27095 	* longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C
   27096 	stringification.
   27097 
   27098 2000-10-15  Kevin Ryde  <kevin (a] swox.se>
   27099 
   27100 	* doc/configuration: Updates.
   27101 
   27102 	* demos/calc.y: Remove some comments.
   27103 
   27104 2000-10-14  Kevin Ryde  <kevin (a] swox.se>
   27105 
   27106 	* gmp.texi (Parameter Conventions, Memory Management): New sections
   27107 	split from "Variable Conventions".
   27108 	(Efficiency, Debugging, Profiling): New sections in "GMP Basics".
   27109 	(Reentrancy): Some rewording, add note on standard I/O.
   27110 	(Build options): Add --enable-assert and --enable-profiling.
   27111 
   27112 	* configure.in (--enable-profiling): New option.
   27113 	* acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile.
   27114 	* mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support.
   27115 
   27116 	* acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*,
   27117 	to follow autoconf conventions.
   27118 
   27119 	* configure.in: Run GMP_CHECK_ASM tests only if needed.
   27120 	* acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT.
   27121 
   27122 	* mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code.
   27123 
   27124 2000-10-13  Kevin Ryde  <kevin (a] swox.se>
   27125 
   27126 	* mpq/md_2exp.c: New file.
   27127 	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
   27128 	* Makefile.am (MPQ_OBJECTS): Ditto.
   27129 	* gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes.
   27130 	* gmp.texi (Rational Arithmetic): Add documentation.
   27131 
   27132 	* mpq/tests/t-md_2exp.c: New file.
   27133 	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.
   27134 
   27135 	* mpn/generic/perfsqr.c: Add/amend some comments.
   27136 
   27137 	* gmp.texi (Known Build Problems): Note VERSION problem with old
   27138 	sed, do some minor rewording.
   27139 	(Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf,
   27140 	mention HTML.
   27141 	(Getting the Latest Version of GMP): Move this ...
   27142 	(Introduction to GMP): ... to here.
   27143 	(Compatibility with older versions): Just refer to 2.x and 3.x, not
   27144 	every minor version.
   27145 	(Initializing Integers): Note restrictions on mpz_array_init'ed
   27146 	variables.
   27147 	(Integer Logic and Bit Fiddling): Note bits are numbered from 0.
   27148 
   27149 	* INSTALL.autoconf: New file.
   27150 	* Makefile.am (EXTRA_DIST): Add it.
   27151 
   27152 	* tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New
   27153 	scheme for recompiled objects used by tune program.  Don't use
   27154 	libgmptune.a, make better use of libtool, work with ansi2knr.
   27155 
   27156 	* tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and
   27157 	s->xp_block, make exponent a fixed size.
   27158 
   27159 2000-10-07  Torbjorn Granlund  <tege (a] swox.com>
   27160 
   27161 	* mpn/mips3/gmp-mparam.h: Retune.
   27162 
   27163 	* mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change.
   27164 
   27165 2000-10-06  Torbjorn Granlund  <tege (a] swox.com>
   27166 
   27167 	* mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles.
   27168 	* mpn/mips3/sub_n.s: Likewise.
   27169 
   27170 2000-10-04  Torbjorn Granlund  <tege (a] swox.com>
   27171 
   27172 	* configure.in (sparc64-*-linux*): Set path according to CC64.
   27173 
   27174 2000-10-04  Kevin Ryde  <kevin (a] swox.se>
   27175 
   27176 	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a
   27177 	hard-coded ":".
   27178 
   27179 	* config.sub: Don't demand "86" in CPU name for SCO.
   27180 
   27181 	* configure.in (supersparc-*-*): Remove -DSUPERSPARC.
   27182 	* longlong.h: Use HAVE_TARGET_CPU_supersparc.
   27183 
   27184 	* configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu.
   27185 	* acconfig.h: Add #undefs, but only for targets of interest.
   27186 
   27187 2000-10-03  Torbjorn Granlund  <tege (a] swox.com>
   27188 
   27189 	* mpn/alpha/cntlz.asm: Rewrite.
   27190 
   27191 	* mp_clz_tab.c (__clz_tab): Half table size to 128 entires.
   27192 	* longlong.h (count_leading_zeros): Demand just 128 entries from
   27193 	__clz_tab.
   27194 
   27195 	* configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options
   27196 	for n32 ABI.
   27197 
   27198 	* longlong.h: Move NO_ASM test around all assembly code.
   27199 	From gcc:
   27200 	* longlong.h (count_leading_zeros): Sparclite scan instruction was
   27201 	being invoked incorrectly.
   27202 	Replace __mc68332__ with __mcpu32__.
   27203 	Add ARC support.
   27204 
   27205 2000-10-02  Torbjorn Granlund  <tege (a] swox.com>
   27206 
   27207 	* mpn/mips3/gmp-mparam.h: Retune for both gcc and cc.
   27208 
   27209 	* mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips.
   27210 	(interpolate3): Cast mp_limb_t variables to mp_limb_signed_t
   27211 	when testing sign bit.
   27212 
   27213 	* mpn/alpha/ev6/gmp-mparam.h: Retune.
   27214 	* mpn/powerpc32/gmp-mparam.h: Retune.
   27215 	* mpn/powerpc64/gmp-mparam.h: Retune.
   27216 	* mpn/x86/pentium/gmp-mparam.h: Retune.
   27217 	* mpn/x86/pentium/mmx/gmp-mparam.h: Retune.
   27218 	* mpn/sparc32/v9/gmp-mparam.h: Retune.
   27219 	* mpn/x86/k6/gmp-mparam.h: Retune.
   27220 	* mpn/x86/p6/gmp-mparam.h: Retune.
   27221 	* mpn/x86/k7/gmp-mparam.h: Retune.
   27222 	* mpn/sparc64/gmp-mparam.h: Retune.
   27223 
   27224 	* mpn/m68k/gmp-mparam.h: New file.
   27225 	* mpn/alpha/ev5/gmp-mparam.h: New file.
   27226 
   27227 	* gmp-impl.h (default MPN_COPY): Remove final `;'.
   27228 
   27229 	* tune/time.c (speed_endtime): Rewrite.
   27230 
   27231 	* tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value,
   27232 	not 2.
   27233 
   27234 	* demos/pexpr.c (setup_error_handler): Fix typo.
   27235 
   27236 	* mpz/powm.c (redc): New function, based on old mpz_redc.  Don't
   27237 	multiply here.
   27238 	(mpz_redc): Remove.
   27239 	(mpz_powm): Major changes, partially reverting to mpn calls.
   27240 	Multiply before calling redc.
   27241 	(mpz_powm): Use TMP_ allocation.
   27242 	(mpz_powm): Refine calculation of k (width of exponent window).
   27243 	(mpz_powm): Cast constants to mp_limb_t before left shifting.
   27244 
   27245 	* longlong.h: Use ia64 count_leading_zeros just when __GNUC__.
   27246 
   27247 2000-09-29  Kevin Ryde  <kevin (a] swox.se>
   27248 
   27249 	* acinclude.m4 (GMP_C_SIZES): New macro.
   27250 	* configure.in: Use it.
   27251 	* acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs.
   27252 	* mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines.
   27253 	* gmp.texi (Known Build Problems): Remove 64-bit generic C
   27254 	gmp-mparam.h problem, now fixed.
   27255 
   27256 	* configure.in: Only run GMP_PROG_M4 if it's actually needed.
   27257 
   27258 2000-09-27  Torbjorn Granlund  <tege (a] swox.com>
   27259 
   27260 	* demos/pexpr.c: Clean up code for systems not supporting
   27261 	sigaltstack.  Handle old Linux without sigaltstack.  Properly
   27262 	disable all stuff related to sigaltstack under Unicos.
   27263 
   27264 	* mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and
   27265 	store insns.  Helps old gas.
   27266 
   27267 	* longlong.h (count_leading_zeros): Define for ia64.
   27268 
   27269 2000-09-27  Paul Zimmermann  <Paul.Zimmermann (a] loria.fr>
   27270 
   27271 	* mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify.
   27272 
   27273 2000-09-27  Kevin Ryde  <kevin (a] swox.se>
   27274 
   27275 	* mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to
   27276 	get .s before .c, which is needed to override ansi2knr .c rules.
   27277 
   27278 	* gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description
   27279 	to match the code (change by Torbjorn).
   27280 	(mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most
   27281 	significant limbs must be non-zero.
   27282 	(mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size
   27283 	requirements.
   27284 	(mpn_gcd_1): Clarify value must be non-zero, not just size.
   27285 
   27286 	* gmp-impl.h (mpn_zero_p): New inline function.
   27287 	* mpn/generic/inlines.c: Add gmp-impl.h.
   27288 	* mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it.
   27289 
   27290 	* mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY.
   27291 	* mpf/add_ui.c: Ditto.
   27292 	* mpf/add.c: Ditto, and fix test to skip copy.
   27293 
   27294 2000-09-26  Kevin Ryde  <kevin (a] swox.se>
   27295 
   27296 	* gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various
   27297 	parameter restrictions.
   27298 
   27299 	* gmp-impl.h (UDIV_PREINV_TIME): New macro.
   27300 	* mpn/generic/sb_divrem_mn.c: Use it.
   27301 	* mpn/generic/perfsqr.c: Ditto.
   27302 	* mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values.
   27303 
   27304 	* macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c,
   27305 	and new multi-function mpz and mpq files.
   27306 
   27307 2000-09-25  Kevin Ryde  <kevin (a] swox.se>
   27308 
   27309 	* randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c:
   27310 	Use mpz_ptr and mpz_srcptr for parameters.
   27311 	* gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed,
   27312 	mpz_urandomb, mpz_urandomm): Corresponding change to prototypes.
   27313 	* randsdui.c: Remove wrong K&R parameters part.
   27314 
   27315 2000-09-12  Kevin Ryde  <kevin (a] swox.se>
   27316 
   27317 	* gmp-impl.h (mpn_tdiv_qr): Move prototype from here ...
   27318 	* gmp.h (mpn_tdiv_qr): ... to here.
   27319 
   27320 	* gmp.texi (Miscellaneous Rational Functions): Comment-out and
   27321 	move version 1 compatibility note to "Compatibility" section.
   27322 	(Rational Number Functions): Ditto for canonicalization note.
   27323 
   27324 2000-09-10  Kevin Ryde  <kevin (a] swox.se>
   27325 
   27326 	* mpn/x86/pentium/com_n.asm: New file.
   27327 
   27328 	* gmp.texi (Rational Arithmetic): Add mpq_abs.
   27329 	(Miscellaneous Rational Functions): Merge and simplify descriptions of
   27330 	mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den.
   27331 
   27332 	* mpq/abs.c: New file.
   27333 	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
   27334 	* Makefile.am (MPQ_OBJECTS): Add it.
   27335 	* gmp.h (mpq_abs): Add prototype.
   27336 
   27337 	* mpq/set_den.c: Don't discard sign when copying, this makes the
   27338 	code match the manual.
   27339 
   27340 2000-09-07  Torbjorn Granlund  <tege (a] swox.com>
   27341 
   27342 	* tune/alpha.asm: Rewrite to actually work right.
   27343 
   27344 2000-09-07  Kevin Ryde  <kevin (a] swox.se>
   27345 
   27346 	* tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem,
   27347 	mpn_get_str, mpn_set_str.
   27348 	* tune/README: Various updates.
   27349 
   27350 2000-09-06  Torbjorn Granlund  <tege (a] swox.com>
   27351 
   27352 	* mpz/fits.c: Correct type of `data'.
   27353 
   27354 2000-09-06  Kevin Ryde  <kevin (a] swox.se>
   27355 
   27356 	* gmp.texi (Build Options): Clarify where to find CFLAGS.
   27357 	(Known Build Problems): Note SCO -lc problem.
   27358 
   27359 	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs.
   27360 
   27361 	* doc/multiplication: Corrections and additions suggested by Paul.
   27362 
   27363 	* tune/modlinv.c: New file with alternate modlimb_inverts.
   27364 	* tune/Makefile.am, tune/speed.[ch]: Add measuring of them.
   27365 	* tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui,
   27366 	mpz_fib_ui, mpz_fac_ui.
   27367 
   27368 	* mpn/x86/t-zdisp.sh: New file.
   27369 
   27370 	* tests/t-modlinv.c: New file.
   27371 	* tests/Makefile.am (check_PROGRAMS): Add it.
   27372 
   27373 	* mpq/tests/t-set_f.c: New file.
   27374 	* mpq/tests/Makefile.am (check_PROGRAMS): Add it.
   27375 
   27376 	* gmp-impl.h (MPQ_CHECK_FORMAT): New macro.
   27377 	* mpq/tests/t-get_d.c: Use it.
   27378 
   27379 	* mpq/set_f.c: New file.
   27380 	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
   27381 	* Makefile.am (MPQ_OBJECTS): Ditto.
   27382 	* gmp.h: Add prototype.
   27383 	* gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f,
   27384 	correct return type of mpq_set_d.
   27385 
   27386 2000-09-03  Kevin Ryde  <kevin (a] swox.se>
   27387 
   27388 	* mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object
   27389 	code changes.
   27390 	* mpz/add_ui.c, mpz/sub_ui.c: Remove files.
   27391 	* mpz/Makefile.am: Update.
   27392 
   27393 	* gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros.
   27394 	* mpz/fits.c: New file merging six separate fits*.c.
   27395 	* mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c,
   27396 	fits_uint_p.c, fits_ulong_p.c: Remove files
   27397 	* mpz/Makefile.am: Use new fits.c, change object names from
   27398 	fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings.
   27399 	* Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo.
   27400 
   27401 	* acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA.
   27402 	* configure.in: Use it.
   27403 	* mpn/x86/k[67]/mmx/popham.asm: Use it.
   27404 
   27405 	* mpn/x86/*/*.asm: Use "TEXT" not ".text".
   27406 
   27407 2000-09-02  Kevin Ryde  <kevin (a] swox.se>
   27408 
   27409 	* mpq/aors.c: New file merging add.c and sub.c, no object code changes.
   27410 	* mpq/add.c, mpq/sub.c: Remove files.
   27411 	* mpq/Makefile.am: Update.
   27412 
   27413 	* mpz/aors.c: New file merging add.c and sub.c, no object code changes.
   27414 	* mpz/add.c, mpz/sub.c: Remove files.
   27415 	* mpz/Makefile.am, mpbsd/Makefile.am: Update.
   27416 
   27417 	* configure.in: Re-apply "PROLOGUE.*" regexp change for the
   27418 	benefit of alpha PROLOGUE_GP, lost in path search reorganisation.
   27419 
   27420 	* mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT,
   27421 	movl_text_address): Don't use "1:" style labels.
   27422 	(Zdisp): Rearrange a bit, switch to all hex.
   27423 	* mpn/x86/README.family: Note SCO "as" doesn't support "1:" style
   27424 	local labels, misc rewordings.
   27425 
   27426 2000-08-29  Torbjorn Granlund  <tege (a] swox.com>
   27427 
   27428 	* demos/primes.c: Include string.h.
   27429 
   27430 	* config.guess (x86 variant recog code): Remove dummy*.o files
   27431 	generated by some compilers.
   27432 
   27433 2000-08-28  Kevin Ryde  <kevin (a] swox.se>
   27434 
   27435 	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8
   27436 	warning message suppression, add notes about SCO.
   27437 
   27438 	* Makefile.am (MPZ_OBJECTS etc): Move some comments.
   27439 
   27440 2000-08-25  Kevin Ryde  <kevin (a] swox.se>
   27441 
   27442 	* mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE.
   27443 
   27444 	* gmp.texi (Copying): Refer to Lesser not Library GPL.
   27445 	(GMP and Reentrancy): Note stack-alloc.c is not reentrant, and
   27446 	that SCO <ctype.h> is potentially not reentrant.
   27447 
   27448 	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to
   27449 	link with or without an underscore.
   27450 	* gmp.texi (Known Build Problems): Remove SunOS 4 native grep
   27451 	GSYM_PREFIX problem, now fixed.
   27452 
   27453 	* gmp-impl.h (MODLIMB_INVERSE_3): New constant.
   27454 	* mpn/generic/diveby3.c: Use it instead of own INVERSE_3.
   27455 	* mpn/generic/mul_n.c: Ditto.
   27456 	* tests/t-constants.c: Check it, and PP_INVERTED too.
   27457 
   27458 	* acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro.
   27459 	* configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to
   27460 	possibly add -march=pentiumpro.
   27461 
   27462 	* gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros.
   27463 	* mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c,
   27464 	mpz/tests/t-misc.c: Use them.
   27465 	* mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto.
   27466 	* mpz/tests/convert.c: Ditto and amend diagnostics slightly.
   27467 	* mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init.
   27468 	* mpz/tests/io.c: Differentiate between I/O and data conversion errors.
   27469 
   27470 	* mpn/generic/aors_n.c: New file merging add_n and sub_n, no
   27471 	object code changes.
   27472 	* mpn/generic/add_n.c: Remove file.
   27473 	* mpn/generic/sub_n.c: Remove file.
   27474 
   27475 	* mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1,
   27476 	no object code changes.
   27477 	* mpn/generic/addmul_1.c: Remove file.
   27478 	* mpn/generic/submul_1.c: Remove file.
   27479 
   27480 	* mpn/generic/popham.c: New file merging popcount and hamdist, no
   27481 	object code changes.
   27482 	* mpn/generic/popcount.c: Remove file.
   27483 	* mpn/generic/hamdist.c: Remove file.
   27484 
   27485 2000-08-24  Torbjorn Granlund  <tege (a] swox.com>
   27486 
   27487 	* gmp-impl.h (mpn_com_n): Fix typo.
   27488 
   27489 2000-08-23  Torbjorn Granlund  <tege (a] swox.com>
   27490 
   27491 	* demos/primes.c (main): Don't call mpz_probab_prime_p for numbers
   27492 	that are known to be prime after sieving.
   27493 	(main): Declare and initialize max_s_prime_squared.
   27494 	(MAX_S_PRIME): Increase.
   27495 	(ST_SIZE): Increase.
   27496 
   27497 2000-08-23  Kevin Ryde  <kevin (a] swox.se>
   27498 
   27499 	* gmp-impl.h (ASSERT_ALWAYS): Change to statement style.
   27500 	(JACOBI_TWO_U_BIT1): Remove ASSERT.
   27501 	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement.
   27502 
   27503 2000-08-21  Torbjorn Granlund  <tege (a] swox.com>
   27504 
   27505 	* gmp-impl.h (ASSERT): Use do..while for dummy version.
   27506 
   27507 	* mpf/get_str.c: Don't set n_digits from digits_computed_so_far
   27508 	when the converted operand becomes zero.  Misc cleanups.
   27509 
   27510 2000-08-21  Kevin Ryde  <kevin (a] swox.se>
   27511 
   27512 	* mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing
   27513 	TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c.
   27514 
   27515 2000-08-20  Kevin Ryde  <kevin (a] swox.se>
   27516 
   27517 	* mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as
   27518 	"move" for libmp.
   27519 	* mpbsd/Makefile.am: Use mpz/set.c, not move.c.
   27520 	* Makefile.am (MPBSD_OBJECTS): Corresponding change.
   27521 	* mpbsd/move.c: Remove file.
   27522 
   27523 	* mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am,
   27524 	mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr
   27525 	"foo_" objects.  Do this with the makefiles to keep the sources
   27526 	cleaner.
   27527 	* mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms.
   27528 
   27529 	* mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from
   27530 	gmpasm-delete-from-list, because it's non-destructive.
   27531 	(gmpasm-font-lock-keywords): Add some more keywords.
   27532 
   27533 2000-08-16  Kevin Ryde  <kevin (a] swox.se>
   27534 
   27535 	* tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced
   27536 	open-coded and mpn #includes of mpn/generic/mul_n.c.
   27537 	* tune/*: Add measuring of them.
   27538 	* tune/speed.c: Print command line into *.gnuplot file.
   27539 
   27540 	* mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for
   27541 	using the value, add #ifndef for providing the default.
   27542 	* mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef.
   27543 
   27544 	* tests/t-constants.c: New file.
   27545 	* tests/Makefile.am (check_PROGRAMS): Add it.
   27546 
   27547 	* mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result
   27548 	doesn't depend on limb size when outside the range of a long
   27549 	(though such results are not actually documented).
   27550 	* mpz/tests/t-get_si.c: New file.
   27551 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
   27552 
   27553 	* mpn/tests/try.c (call): Cast popcount and hamdist calls,
   27554 	for the benefit of long long limb.
   27555 
   27556 2000-08-15  Kevin Ryde  <kevin (a] swox.se>
   27557 
   27558 	* mp.h (mp_set_memory_functions): Add missing #define.
   27559 	* mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its
   27560 	existence.
   27561 
   27562 	* mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying
   27563 	reverted behaviour of mpf_get_prec.
   27564 
   27565 	* mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not
   27566 	MPN_COPY_INCR.
   27567 
   27568 	* mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms
   27569 	produced under ansi2knr.
   27570 
   27571 	* configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c
   27572 	objects when ansi2knr in use.
   27573 
   27574 	* mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
   27575 	(libdummy.la): Add this, not built, to create ansi2knr style rules
   27576 	for all potential .c files.
   27577 	* mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am,
   27578 	mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am
   27579 	(AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere).
   27580 	* Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS,
   27581 	MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames.
   27582 
   27583 2000-08-03  Torbjorn Granlund  <tege (a] swox.com>
   27584 
   27585 	* mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28.
   27586 
   27587 2000-08-02  Torbjorn Granlund  <tege (a] swox.com>
   27588 
   27589 	* Version 3.1 released.
   27590 
   27591 	* gmp.texi: Rephrase mpf_urandomb documentation.
   27592 
   27593 	* mpn/alpha/ev6: New directory with ev6/21264 optimized code.
   27594 	* mpn/alpha/ev6/addmul_1.asm: New file.
   27595 	* mpn/alpha/ev6/gmp-mparam.h: New file.
   27596 
   27597 2000-08-02  Kevin Ryde  <kevin (a] swox.se>
   27598 
   27599 	* demos/factorize.c (random): Don't use "inline".
   27600 
   27601 	* mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c:
   27602 	Corrections to K&R parts.
   27603 
   27604 	* Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION).
   27605 	* mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h.
   27606 
   27607 	* gmp.texi (Known Build Problems): Note problem stripping libgmp.a.
   27608 
   27609 2000-08-02  Kent Boortz  <kent (a] swox.com>
   27610 
   27611 	* mpfr: Integrated experimental version of mpfr-0.4.
   27612 	* configure.in: Changes for option --enable-mpfr.
   27613 	* Makefile.am: Changes for option --enable-mpfr.
   27614 
   27615 2000-08-01  Torbjorn Granlund  <tege (a] swox.com>
   27616 
   27617 	* mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern.
   27618 	* mpn/generic/hamdist.c: Likewise.
   27619 
   27620 2000-08-01  Kevin Ryde  <kevin (a] swox.se>
   27621 
   27622 	* mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing
   27623 	source and dest regions.
   27624 
   27625 2000-07-31  Torbjorn Granlund  <tege (a] swox.com>
   27626 
   27627 	* mpf/get_str.c: Develop three extra digits, not just one.
   27628 
   27629 2000-07-31  Kevin Ryde  <kevin (a] swox.se>
   27630 
   27631 	* gmp.texi (References): Add URL for invariant division.
   27632 
   27633 2000-07-30  Kevin Ryde  <kevin (a] swox.se>
   27634 
   27635 	* tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for
   27636 	alpha linux "cycle frequency".
   27637 
   27638 	* mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds.
   27639 
   27640 2000-07-29  Kevin Ryde  <kevin (a] swox.se>
   27641 
   27642 	* gmp.texi (ABI and ISA): Add sparc64-*-linux*.
   27643 	* configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags
   27644 	as under solaris.
   27645 
   27646 	* configure.in (--enable-fft): New option, default "no".
   27647 	* gmp.texi (Build Options): Describe it.
   27648 	* mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it.
   27649 	* tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled.
   27650 	* NEWS: Multiplication optionally using FFT.
   27651 
   27652 	* tune/README: Notes on FFT and GCD thresholds, other minor updates.
   27653 
   27654 	* Makefile.am: Expunge the macos generated files update stuff.
   27655 
   27656 2000-07-28  Kevin Ryde  <kevin (a] swox.se>
   27657 
   27658 	* mpn/x86/*/gmp-mparam.h: Add some FFT thresholds.
   27659 
   27660 2000-07-28  Kent Boortz  <kent (a] swox.se>
   27661 
   27662 	* macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories.
   27663 	* macos/Makefile: Delete file.
   27664 	* macos/Makefile.cw: Delete file.
   27665 	* macos/config.h: Delete file.
   27666 	* macos/Asm/*.s: Delete files.
   27667 	* macos/configure: Create target directories. Don't transform
   27668 	'(C)' to '(;)' in a 'dnl' line comment in .asm file.
   27669 	* Makefile.am: Delete macos targets.
   27670 	* macos/README: Reflect that we reverted back to a build
   27671 	process that require ""macos/configure" to run on MacOS.
   27672 	This imply that MacPerl is needed for a build in MacOS.
   27673 
   27674 2000-07-27  Kevin Ryde  <kevin (a] swox.se>
   27675 
   27676 	* mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods
   27677 	applied.
   27678 	* configure.in (gmp_mpn_functions): Add it.
   27679 	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use it.
   27680 	* doc/multiplication: Describe it (briefly).
   27681 
   27682 	* gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds.
   27683 	(mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full):
   27684 	New functions.
   27685 	(numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc,
   27686 	UNSIGNED_TYPE_MAX etc): New macros.
   27687 
   27688 	* tune/*: Add FFT threshold tuning and speed measuring.
   27689 	* tune/common.c: Avoid huge macro expansions for umul and udiv.
   27690 
   27691 	* mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c,
   27692 	mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c,
   27693 	mpn/tests/spinner.c: Use new gmp-impl.h macros.
   27694 
   27695 	* demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this.
   27696 
   27697 2000-07-27  Torbjorn Granlund  <tege (a] swox.com>
   27698 
   27699 	* mpn/ia64/gmp-mparam.h: New file.
   27700 
   27701 2000-07-26  Torbjorn Granlund  <tege (a] swox.com>
   27702 
   27703 	* demos/isprime.c: Handle any number of arguments and print
   27704 	classification for each.  Add `-q' option for old behaviour.
   27705 
   27706 2000-07-26  Kevin Ryde  <kevin (a] swox.se>
   27707 
   27708 	* gmp.texi (Build Options): Mention djgpp stack size.
   27709 	(Notes for Package Builds): New section.
   27710 	(Compatibility with older versions): Update for 3.1, add mpf_get_prec.
   27711 
   27712 	* demos/factorize.c [__GLIBC__]: Don't declare random() under glibc.
   27713 
   27714 	* gmp.h (gmp_version): Add prototype and define.
   27715 
   27716 	* Makefile.am: Keep macos directory generated files up-to-date
   27717 	during development and on a "make dist".
   27718 
   27719 2000-07-25  Torbjorn Granlund  <tege (a] swox.com>
   27720 
   27721 	* mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run.
   27722 
   27723 	* mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run.
   27724 	* mpn/pa64w/gmp-mparam.h: Likewise.
   27725 	* mpn/mips3/gmp-mparam.h: Likewise.
   27726 
   27727 	* tune/hppa2.asm: Fix typo in .level directive.
   27728 
   27729 	* configure.in: Add sparc64-*-linux* support (from Jakub Jelinek).
   27730 	* configure: Regenerate.
   27731 
   27732 	* mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area
   27733 	for return value (from Jakub Jelinek).
   27734 	* mpn/sparc64/lshift.asm: Likewise.
   27735 
   27736 	* mpf/get_prc.c: Revert Aug 8, 1996 change.
   27737 
   27738 	* version.c: No longer static.
   27739 
   27740 	* mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already
   27741 	defined.
   27742 	* mpn/pa64w/gmp-mparam.h: Likewise.
   27743 	* mpn/arm/gmp-mparam.h: Likewise.
   27744 	* mpn/mips3/gmp-mparam.h: Likewise.
   27745 
   27746 2000-07-25  Kevin Ryde  <kevin (a] swox.se>
   27747 
   27748 	* INSTALL: It's "info -f ./gmp.info" to be sure of hitting the
   27749 	gmp.info in the current directory.
   27750 
   27751 	* Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last
   27752 	mpz/powm.c fix.
   27753 
   27754 	* mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from
   27755 	addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3
   27756 	filesystem.
   27757 	* mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm,
   27758 	mpn/sparc64/mul_1.asm: Update include_mpn()s.
   27759 
   27760 2000-07-24  Torbjorn Granlund  <tege (a] swox.com>
   27761 
   27762 	* Update header of all files previously under the Library GPL
   27763 	to instead be under the Lesser GPL.
   27764 
   27765 	* COPYING.LIB: Now Lesser GPL.
   27766 	* demos/primes.c: Change license to GPL (was Library GPL).
   27767 	* demos/isprime.c: Change license to GPL (was Library GPL).
   27768 
   27769 	* gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused).
   27770 
   27771 	* mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD.
   27772 	Improve error messages.  Decrease reps.
   27773 
   27774 2000-07-22  Kevin Ryde  <kevin (a] swox.se>
   27775 
   27776 	* tune/speed.h: Decrease the amount of data used for gcd and powm
   27777 	measuring, to make the tune go a bit faster.
   27778 
   27779 2000-07-21  Kent Boortz  <kent (a] swox.se>
   27780 
   27781 	* macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created
   27782 	from configure script, now part of dist.
   27783 	* macos/Makefile
   27784 	* macos/Makefile.cw
   27785 	* macos/config.h
   27786 	* macos/Asm/*.s
   27787 	New files and directories that is the output from configure. This way
   27788 	no Perl installation is required to build on MacOS, just MPW.
   27789 	* macos/configure: Added prefix '__g' to exported assembler labels.
   27790 	Changed to handle new m4 syntax instead of the old cpp syntax in asm.
   27791 	* macos/Makefile.in: Corrected 'clean' target, added 'distclean'
   27792 	and 'maintainer_clean'. Added "mpn/mp_bases.c" to build.
   27793 	* macos/README: Reflect the new build process without configure.
   27794 	Corrected the file structure for Apple MPW installation.
   27795 
   27796 2000-07-21  Torbjorn Granlund  <tege (a] swox.com>
   27797 
   27798 	* mpf/tests/t-muldiv.c: Relax error limit.  Make precision depend
   27799 	on SIZE.  Misc changes.
   27800 
   27801 	* configure: Regenerate.
   27802 
   27803 2000-07-20  Kent Boortz  <kent (a] swox.com>
   27804 
   27805 	* macos/Makefile.in: Removed hard coded targets, added special
   27806 	targets found in Makefile.am files.
   27807 	* macos/configure: Generate targets from top configure script and
   27808 	Makefile.am files. Made script runnable from Unix for testing.
   27809 	* macos/README: Notes about search paths for includes, contributed
   27810 	by Marco Bambini.
   27811 	* configure.in: Added comment about lines that the "macos/configure"
   27812 	script depend on.
   27813 
   27814 2000-07-20  Torbjorn Granlund  <tege (a] swox.com>
   27815 
   27816 	* mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod'
   27817 	from result if it is greater than `mod'.
   27818 
   27819 2000-07-19  Torbjorn Granlund  <tege (a] swox.com>
   27820 
   27821 	* mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run.
   27822 	* mpn/alpha/gmp-mparam.h: Likewise.
   27823 	* mpn/powerpc32/gmp-mparam.h: Likewise.
   27824 
   27825 	* tune/hppa.asm: New file.
   27826 	* tune/hppa2.asm: New file.
   27827 	* configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and
   27828 	hppa*-*-*.
   27829 	* tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm.
   27830 
   27831 	* tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker';
   27832 	invoke TMP_FREE.
   27833 
   27834 	* mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for
   27835 	reloc/symbol delimiter.
   27836 
   27837 2000-07-16  Torbjorn Granlund  <tege (a] swox.com>
   27838 
   27839 	* mpn/powerpc64/gmp-mparam.h: Update with output from tune utility.
   27840 	* mpn/powerpc64/copyi.asm: New file.
   27841 	* mpn/powerpc64/copyd.asm: New file.
   27842 
   27843 2000-07-16  Kevin Ryde  <kevin (a] swox.se>
   27844 
   27845 	* tune/*: Add measuring for umul_ppmm and udiv_qrnnd.
   27846 
   27847 2000-07-14  Kevin Ryde  <kevin (a] swox.se>
   27848 
   27849 	* mpn/x86/k6/k62mmx: New directory.
   27850 	* configure.in (k6[23]*-*-*): Use it.
   27851 	* mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from
   27852 	mmx directory, improve code alignment a bit.
   27853 	* mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto,
   27854 	and improve addressing modes for pre-CXT cores.
   27855 	* mpn/x86/x86-defs.m4 (Zdisp): Add an instruction.
   27856 	* mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files,
   27857 	suiting plain K6.
   27858 	* mpn/x86/README, mpn/x86/k6/README: Updates.
   27859 	* mpn/x86/k6/mmx/*.asm: Update some comments.
   27860 
   27861 	* mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m".
   27862 	* tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for
   27863 	the benefit of djgpp.
   27864 
   27865 	* */Makefile.in: Regenerate with patched automake that adds
   27866 	$(EXEEXT) to EXTRA_PROGRAMS.
   27867 
   27868 	* mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp.
   27869 	* config.guess: Recognise pc:*:*:* as an x86, for djgpp.
   27870 
   27871 	* configure: Regenerate with patched autoconf to fix temp file
   27872 	".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two
   27873 	sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive
   27874 	spec).
   27875 
   27876 	* mpz/tests/io.c: Use one fp opened "w+", since separately opened
   27877 	input and output doesn't work on MS-DOS 6.21.
   27878 
   27879 	* tests/rand/Makefile.am (allprogs): Pseudo-target to build everything.
   27880 	(CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES.
   27881 	(manual-test, manual-bigtest): Add $(EXEEXT) to dependencies.
   27882 
   27883 	* tests/rand/*/Makefile.in: Regenerate with patched automake that adds
   27884 	$(EXEEXT) to EXTRA_PROGRAMS.
   27885 
   27886 2000-07-13  Torbjorn Granlund  <tege (a] swox.com>
   27887 
   27888 	* mpz/tests/t-root.c: Also test mpz_perfect_power_p.
   27889 	Generate `nth' so that there will be fewer trivial values.
   27890 
   27891 	* mpz/root.c: Reverse return value in tests for detecting root of +1
   27892 	and -1.
   27893 
   27894 	* mpz/perfpow.c: Use TMP_ALLOC interface.
   27895 
   27896 2000-07-12  Torbjorn Granlund  <tege (a] swox.com>
   27897 
   27898 	* mpz/perfpow.c (primes): Make it const.
   27899 
   27900 2000-07-06  Kevin Ryde  <kevin (a] swox.se>
   27901 
   27902 	* mpn/x86/k6/cross.pl: New file.
   27903 
   27904 	* mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize
   27905 	all _TIME defines.
   27906 	* mpn/x86/pentium/mmx/gmp-mparam.h: New file.
   27907 	* mpn/sparc64/gmp-mparam.h: Update thresholds.
   27908 	* mpn/sparc32/v9/gmp-mparam.h: Ditto.
   27909 
   27910 2000-07-04  Kevin Ryde  <kevin (a] swox.se>
   27911 
   27912 	* NEWS: Updates.
   27913 	* mpn/x86/*/README: Miscellaneous updates.
   27914 
   27915 	* tune/speed-ext.c: New file.
   27916 	* tune/Makefile.am: Add it.
   27917 	* tune/README: Updates.
   27918 	* tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes.
   27919 
   27920 	* demos/calc.y,calclex.l: New files.
   27921 	* demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l.
   27922 	* demos/Makefile.am: Add them.
   27923 
   27924 	* gmp.h (mpq_swap, mpf_swap): Add prototypes and defines.
   27925 
   27926 2000-07-01  Kevin Ryde  <kevin (a] swox.se>
   27927 
   27928 	* gmp.texi (ABI and ISA): New section, bringing together ABI notes.
   27929 	(Build Options): Add MPN_PATH, various updates.
   27930 	(Build Options): Add note on setting CFLAGS when setting CC.
   27931 	(Notes for Particular Systems): Add -march=pentiumpro problem.
   27932 	(Known Build Problems): Note on gmp-mparam.h for 64-bit generic C.
   27933 	(GMP Variable Conventions): Add some info on user defined functions.
   27934 	(Reporting Bugs): Minor rewording.
   27935 
   27936 	* configure.in (MPN_PATH): Renamed from mpn_path.
   27937 
   27938 	* gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines.
   27939 	* mp[zf]/tests/t-misc.c: Use them.
   27940 
   27941 	* mpbsd/tests/t-misc.c: New file.
   27942 	* mpbsd/tests/Makefile.am: Add it.
   27943 
   27944 	* Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info.
   27945 	* gmp.h (__GNU_MP_VERSION_*): Bump to 3.1.
   27946 
   27947 	* mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
   27948 
   27949 	* Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally
   27950 	omitted in gmp 3.0.x.
   27951 	* gmp.texi (Custom Allocation): Note this is available in mpbsd,
   27952 	and some minor rewording.
   27953 
   27954 2000-06-30  Torbjorn Granlund  <tege (a] swox.com>
   27955 
   27956 	* demos/factorize.c (random): New function, defined conditionally.
   27957 	(factor_using_pollard_rho): Use it, not mrand48.
   27958 
   27959 	* mpn/cray/README: New file.
   27960 
   27961 2000-06-30  Kevin Ryde  <kevin (a] swox.se>
   27962 
   27963 	* mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
   27964 
   27965 	* mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs.
   27966 
   27967 	* gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c:
   27968 	Use config.h unconditionally, not under HAVE_CONFIG_H.
   27969 
   27970 	* demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use
   27971 	setup_error_handler on djgpp.
   27972 
   27973 	* tune/*: Locate data to help direct-mapped caches, add measuring
   27974 	of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups.
   27975 	* configure.in (AC_CHECK_FUNCS): Add popen.
   27976 
   27977 2000-06-29  Torbjorn Granlund  <tege (a] swox.com>
   27978 
   27979 	* mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or
   27980 	mpn_rshift.  Increase precision when exp is a multiple of
   27981 	BITS_PER_MP_LIMB primarily to make exp==0 be a noop.
   27982 	* mpf/div_2exp.c: Analogous changes.
   27983 
   27984 	* mpf/tests/t-dm2exp.c: Set u randomly in loop.  Perform more
   27985 	mpf_mul_2exp testing.
   27986 
   27987 	* configure.in: Recognize cray vector processors with a broad `*';
   27988 	move after alpha* not to match that.
   27989 
   27990 2000-06-28  Kevin Ryde  <kevin (a] swox.se>
   27991 
   27992 	* mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr
   27993 	style, switch from MP_INT to mpz_t, add a couple of error checks.
   27994 	* mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails.
   27995 
   27996 2000-06-27  Torbjorn Granlund  <tege (a] swox.com>
   27997 
   27998 	* mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray
   27999 	floating point format.
   28000 
   28001 	* mpq/tests/t-get_d.c: Decrease default reps to 1000.
   28002 
   28003 	* mpf/tests/t-conv.c: Correct type of `bexp'.
   28004 
   28005 	* configure.in (cray vector machines): Don't inherit gmp_cflags_cc.
   28006 
   28007 	* tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm.
   28008 
   28009 	* configure.in (cray vector machines): Set extra_functions.
   28010 
   28011 	* mpn/cray/mulww.f: New file with vectorizing cray code.
   28012 	* mpn/cray/mulww.s: Generated from mulww.f.
   28013 	* mpn/cray/mul_1.c: New file.
   28014 	* mpn/cray/addmul_1.c: New file.
   28015 	* mpn/cray/submul_1.c: New file.
   28016 	* mpn/cray/add_n.c: New file.
   28017 	* mpn/cray/sub_n.c: New file.
   28018 
   28019 2000-06-26  Kevin Ryde  <kevin (a] swox.se>
   28020 
   28021 	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually
   28022 	detects solaris 2.6, and also suppress warning on solaris 2.8.
   28023 	* configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from
   28024 	sparc case.
   28025 
   28026 	* mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring.
   28027 
   28028 2000-06-21  Kevin Ryde  <kevin (a] swox.se>
   28029 
   28030 	* mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use
   28031 	mp_size_t for n2.
   28032 	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size
   28033 	parameters and "l" variables.
   28034 	* gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes.
   28035 
   28036 	* mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of
   28037 	-0x80...00 on systems with sizeof(short)==sizeof(int).
   28038 
   28039 	* mpz/tests/t-misc.c: Move "bin" test from here ...
   28040 	* mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too.
   28041 	* mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin.
   28042 
   28043 	* mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is
   28044 	a limb not a ulong.
   28045 	* mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too,
   28046 	since nacc is a limb.
   28047 
   28048 	* mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si):
   28049 	New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si.
   28050 	* mpf/tests/Makefile.am (check_PROGRAMS): Add it.
   28051 
   28052 	* mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si):
   28053 	New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si.
   28054 
   28055 	* mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix
   28056 	handling of -0x80..00.
   28057 	* mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto.
   28058 
   28059 2000-06-19  Torbjorn Granlund  <tege (a] swox.com>
   28060 
   28061 	* demos/primes.c: Properly handle arguments `m +n'.
   28062 
   28063 2000-06-17  Torbjorn Granlund  <tege (a] swox.com>
   28064 
   28065 	* config.sub: Recognize k5 and k6 with common pattern.
   28066 
   28067 	* mpq/tests/t-get_d.c: Also test mpq_set_d.  Misc improvements.
   28068 
   28069 	* mpq/set_d.c: Special case 0.0.  Don't call mpn_rshift with 0 count.
   28070 	Allocate correct amount of memory for numerator.  Delete spurious
   28071 	ASSERT_ALWAYS(1).
   28072 
   28073 2000-06-17  Kevin Ryde  <kevin (a] swox.se>
   28074 
   28075 	* mpz/perfsqr.c: Fix so that zero is considered a perfect square.
   28076 	(Was wrongly calling mpn_perfect_square_p with size==0.)
   28077 
   28078 2000-06-16  Kevin Ryde  <kevin (a] swox.se>
   28079 
   28080 	* configure.in: Set k5*-*-* to use basic i386 code until there's
   28081 	something specific.  Add path=x86 as a default for x86s.
   28082 
   28083 	* acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate
   28084 	ALIGN_LOGARITHMIC setting, not a full ALIGN definition.
   28085 	(GMP_CHECK_ASM_ALIGN_FILL_0x90): New test.
   28086 	* configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90.
   28087 	* mpn/asm-defs.m4 (ALIGN): New macro.
   28088 	* mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition.
   28089 
   28090 	* tune/*: Plain "unsigned" for speed_cyclecounter.
   28091 	* configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes.
   28092 	* tune/sparc64.asm: Remove file.
   28093 
   28094 2000-06-15  Torbjorn Granlund  <tege (a] swox.com>
   28095 
   28096 	* mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'.
   28097 	* mpn/x86/k7/mmx/copyd.asm: Likewise.
   28098 
   28099 	* mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems).
   28100 	* mpn/x86/k7/mmx/rshift.asm: Likewise.
   28101 	* mpn/x86/k6/aors_n.asm: Likewise.
   28102 	* mpn/x86/k7/aors_n.asm: Likewise.
   28103 	* mpn/x86/k7/mul_basecase.asm: Likewise.
   28104 
   28105 2000-06-13  Torbjorn Granlund  <tege (a] swox.com>
   28106 
   28107 	* tune/sparcv9.asm: Tune, deleting two instructions.
   28108 
   28109 	* tune/alpha.asm: Update to unified speed_cyclecounter.
   28110 
   28111 2000-06-11  Kevin Ryde  <kevin (a] swox.se>
   28112 
   28113 	* mpz/tests/reuse.c (FAIL): Add a K&R version.
   28114 	Use _PROTO on some typedefs.
   28115 	* mpz/tests/t-misc.c: Add gmp-impl.h for "const".
   28116 
   28117 	* configure.in: Rework mpn multi-function and optional files.
   28118 	Names standardized, no need for explicit declarations, all picked
   28119 	up in one $path traversal.
   28120 	* doc/configuration: Updates.
   28121 
   28122 	* tests/rand/t-rand.c (main): Change "usage" to work with K&R.
   28123 
   28124 2000-06-10  Kevin Ryde  <kevin (a] swox.se>
   28125 
   28126 	* mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm,
   28127 	mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add
   28128 	MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching.
   28129 
   28130 	* mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions.
   28131 	(cmov_available_p): Switch to list CPUs which do have cmov.
   28132 	* mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm,
   28133 	mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication.
   28134 	* mpn/x86/README.family: Various updates.
   28135 
   28136 2000-06-09  Kevin Ryde  <kevin (a] swox.se>
   28137 
   28138 	* mpbsd/tests/allfuns.c (main): Call exit() instead of doing return.
   28139 
   28140 	* doc/tasks.html, doc/projects.html: Moved from projects directory.
   28141 	* doc/multiplication: New file.
   28142 	* Makefile.am (EXTRA_DIST): Remove projects, add doc.
   28143 
   28144 	* Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove
   28145 	unnecessary -lm.
   28146 	* INSTALL: Remove -lm from instructions.
   28147 	* demos/Makefile.am (qcn_LDADD): Add -lm.
   28148 
   28149 	* tune/*: Add measuring for mpn_divrem_2 and modlimb_invert,
   28150 	improve addsub_n.  Switch to unified speed_cyclecounter.
   28151 	* configure.in: Update configs for speed_cyclecounter.
   28152 
   28153 	* gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros.
   28154 	* mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c,
   28155 	tune/speed.c, mpn/tests/ref.c: Use them.
   28156 
   28157 	* mpn/tests/spinner.c: Remove setitimer, just alarm is enough.
   28158 	* configure.in (AC_CHECK_FUNCS): Remove setitimer.
   28159 	* mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx.
   28160 	* mpn/tests/ref.[ch] (refmpn_addsub_nc): New function.
   28161 	* mpn/tests/try.c: Add some support for mpn_addsub_nc.
   28162 	* mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and
   28163 	addsub_n_2 which don't currently build.
   28164 	* mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy.
   28165 
   28166 	* tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on
   28167 	libgmp.la.
   28168 	(findlc_LDADD): Use libstat.la.
   28169 	(AUTOMAKE_OPTIONS): Use ansi2knr.
   28170 
   28171 2000-06-08  Torbjorn Granlund  <tege (a] swox.com>
   28172 
   28173 	* configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and
   28174 	higher.
   28175 	(alpha*-*-*): Likewise.
   28176 	(alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from
   28177 	gmp_xoptcflags_gcc.
   28178 
   28179 	* mpn/Makefile.am (TARG_DIST): Add pa64w.
   28180 
   28181 	* longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE.
   28182 
   28183 2000-06-07  Torbjorn Granlund  <tege (a] swox.com>
   28184 
   28185 	* mpz/remove.c: Fail for `src' being zero.
   28186 
   28187 	* mpz/tests/reuse.c: Test more functions.
   28188 	(FAIL): New define.
   28189 
   28190 	* mpz/tests/t-powm.c: Loop during operand generation while they
   28191 	are mathematically ill-defined (used to just skip such tests).
   28192 
   28193 	* mpz/powm.c (mpz_redc): Clean up argument declarations.
   28194 
   28195 	* configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option.
   28196 	(sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc):
   28197 	Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'.
   28198 	(ia64*-*-*): New.
   28199 
   28200 	* mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'.
   28201 
   28202 	* mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR.
   28203 
   28204 2000-06-06  Torbjorn Granlund  <tege (a] swox.com>
   28205 
   28206 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n):
   28207 	Use mpn_incr_u for final carry propagation.
   28208 
   28209 	* mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL.
   28210 
   28211 	* mpz/tests/reuse.c: Major rewrite; test many more functions.
   28212 
   28213 	* mpz/powm_ui.c: When exp is 0, change res assign order in order
   28214 	to handle argument overlap.
   28215 	* mpz/powm.c: When exp is 0, change res assign order in order
   28216 	to handle argument overlap.  Handle negative exp and mod arguments.
   28217 
   28218 	* mpz/gcdext.c: Rework code after mpn_gcdext call to handle
   28219 	argument overlap.
   28220 
   28221 	* mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr
   28222 	in order to handle argument overlap.
   28223 	* mpz/cdiv_qr.c: Likewise.
   28224 
   28225 	* mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs'
   28226 	tests.  Clean up test for mpf_ui_div.
   28227 
   28228 2000-06-06  Kevin Ryde  <kevin (a] swox.se>
   28229 
   28230 	* mpn/x86/p6/sqr_basecase.asm: New file.
   28231 	* mpn/x86/mod_1.asm: Avoid one conditional jump.
   28232 	* mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME
   28233 	and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME.
   28234 
   28235 	* mp_minv_tab.c: New file.
   28236 	* Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
   28237 	* gmp-impl.h (modlimb_invert): New macro.
   28238 	* mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead.
   28239 	* mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop.
   28240 	* mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use
   28241 	MPN_COPY_INCR not MPN_COPY in one place.
   28242 
   28243 2000-06-05  Torbjorn Granlund  <tege (a] swox.com>
   28244 
   28245 	* mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp.
   28246 	(main): Clean up test for mpf_div_ui.
   28247 
   28248 	* mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or
   28249 	mpn_rshift.  MPN_COPY => MPN_COPY_INCR.  Coerce the two assignments to
   28250 	r->_mp_size.
   28251 
   28252 	* mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap
   28253 	so requires.  MPN_COPY => MPN_COPY_INCR.
   28254 
   28255 	* mpf/tests/t-dm2exp.c: Correct type of res_prec.
   28256 
   28257 2000-06-04  Kevin Ryde  <kevin (a] swox.se>
   28258 
   28259 	* mpz/bin_uiui.c: Fix result for n==0 and n==k.
   28260 	* mpz/bin_ui.c: Fix result for k>n, add support for n<0.
   28261 	* gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to
   28262 	note n<0 is supported.
   28263 
   28264 	* mpz/tests/t-misc.c: New file.
   28265 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it.
   28266 
   28267 2000-05-31  Kevin Ryde  <kevin (a] swox.se>
   28268 
   28269 	* tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on
   28270 	mpn_gcd_1 and mpn_mul_basecase.
   28271 	* tune/README: Update.
   28272 
   28273 	* tune/alpha.asm: New file, by Torbjorn.
   28274 	* tune/Makefile.am (EXTRA_DIST): Add it.
   28275 	* configure.in (alpha*-*-*): Use it.
   28276 
   28277 2000-05-31  Linus Nordberg  <linus (a] swox.se>
   28278 
   28279 	* doc/configuration: New file.
   28280 
   28281 2000-05-30  Torbjorn Granlund  <tege (a] swox.com>
   28282 
   28283 	* mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2
   28284 	if available.  Don't include longlong.h.
   28285 
   28286 	* doc/isa_abi_headache: New file.
   28287 
   28288 2000-05-30  Linus Nordberg  <linus (a] swox.se>
   28289 
   28290 	* configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to
   28291 	find `nm'.  (AC_PROG_NM comes with Libtool and is needed to get
   28292 	the `-B' option (BSD compatible output) included in $NM.)
   28293 	(AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'.
   28294 	(Now that NM isn't a cross compilation tool, don't give the
   28295 	impression that we know how to cross compile.)
   28296 	(CCAS): Remove spurious comment.
   28297 
   28298 	* gmp.texi (Notes for Particular Systems): Remove comment about
   28299 	using GNU `nm' on AIX since system nm now works.
   28300 
   28301 2000-05-29  Torbjorn Granlund  <tege (a] swox.com>
   28302 
   28303 	* mpn/power/mul_1.s: Remove [PR] from first word in function
   28304 	descriptor.
   28305 	* mpn/power/addmul_1.s: Likewise.
   28306 	* mpn/power/submul_1.s: Likewise.
   28307 
   28308 2000-05-28  Kevin Ryde  <kevin (a] swox.se>
   28309 
   28310 	* configure.in, tune/*: Change pentium rdtsc cycle scheme to
   28311 	HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS.
   28312 	* tune/pentium.asm: Renamed and converted from rdtsc.asm.
   28313 	* tune/sparcv9.asm: New file, by Torbjorn.
   28314 	* tune/sparc64.asm: New file.
   28315 	* tune/tuneup.c: Put a limit on gcdext search.
   28316 
   28317 	* gmp.h (mp_set_memory_functions): Add extern "C".
   28318 	* mp.h (__GNU_MP__): Bump to "3".
   28319 	* mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]:
   28320 	Include mp.h for mpbsd compile.
   28321 	* mpz/gcd.c: Ditto, and remove _mpz_realloc declaration.
   28322 
   28323 	* gmp.texi (Integer Functions): Flatten @subsections into @sections.
   28324 	(Floating-point Functions): Ditto.
   28325 	(Integer Random Numbers): Split from miscellaneous as a sep section.
   28326 	(Installing GMP): Make nodes for the sections.
   28327 	Add more "@cindex"s.
   28328 	(Known Build Problems): Remove SunOS get_d problem, believed fixed.
   28329 	(Notes for Particular Systems): Remove HPPA note since now PIC.
   28330 	(References): URL for Jebelean.
   28331 
   28332 2000-05-27  Torbjorn Granlund  <tege (a] swox.com>
   28333 
   28334 	* mpn/pa64w: New directory, contents based on corresponding mpn/pa64
   28335 	files.
   28336 	* configure.in (hppa2.0w-*-*): New.
   28337 	* mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before
   28338 	including stdio.h.
   28339 	* gmp-impl.h: Always define DItype and UDItype.
   28340 
   28341 2000-05-27  Kevin Ryde  <kevin (a] swox.se>
   28342 
   28343 	* tune/common.c (speed_measure): Correction to array sorting,
   28344 	better diagnostic when measuring fails.
   28345 	* tune/time.c: Add microsecond accurate getrusage method.
   28346 
   28347 	* tune/time.c (speed_cpu_frequency_processor_info): New function.
   28348 	* configure.in (AC_CHECK_FUNCS): Add processor_info.
   28349 
   28350 2000-05-26  Linus Nordberg  <linus (a] swox.se>
   28351 
   28352 	* gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3
   28353 	if using GNU nm.
   28354 
   28355 2000-05-26  Torbjorn Granlund  <tege (a] swox.com>
   28356 
   28357 	* tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to
   28358 	avoid signed overflow.
   28359 
   28360 	* demos/pexpr.c (setup_error_handler): Don't call sigaltstack on
   28361 	Unicos.
   28362 
   28363 2000-05-25  Torbjorn Granlund  <tege (a] swox.com>
   28364 
   28365 	* insert-dbl.c: Work around GCC 2.8 bug.
   28366 	* extract-dbl.c: Likewise.
   28367 
   28368 	* config.sub: Allow i586, i686, i786 again.
   28369 
   28370 	* config.guess: Use X86CPU for lots more systems.
   28371 
   28372 2000-05-25  Linus Nordberg  <linus (a] swox.se>
   28373 
   28374 	* mpbsd/tests/dummy.c (main): Call exit() instead of doing return
   28375 	(some old SysV machines don't get this correct, I've heard.)
   28376 
   28377 2000-05-25  Kevin Ryde  <kevin (a] swox.se>
   28378 
   28379 	* mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no
   28380 	digits in string, so it's the same as a separate init and set_str.
   28381 
   28382 2000-05-24  Torbjorn Granlund  <tege (a] swox.com>
   28383 
   28384 	* mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random.
   28385 
   28386 	* mpz/divexact.c: Read pointers after reallocation.
   28387 	Compare `quot' and `den' instead of `qp' and `dp' in overlap check.
   28388 	Use MPN_COPY_INCR for copying from `np'.
   28389 
   28390 	(*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX
   28391 	versions.
   28392 	* configure.in (*-cray-unicos*): Disable asm syntax checking; set
   28393 	compiler explicitly.
   28394 	* configure.in (hppa*-*-*): Remove code disabling shared libs.
   28395 
   28396 2000-05-24  Linus Nordberg  <linus (a] swox.se>
   28397 
   28398 	* acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user
   28399 	when doing the AIX specific test to avoid "nested output".
   28400 
   28401 2000-05-22  Kevin Ryde  <kevin (a] swox.se>
   28402 
   28403 	* mp.h (_PROTO): Copy from gmp.h, use on prototypes.
   28404 	Add extern "C" too.
   28405 	* mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
   28406 	* mpbsd/tests/allfuns.c: Don't execute mout, just link to it.
   28407 	(main): ANSI style definition.
   28408 
   28409 	* gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to
   28410 	something that works on SunOS native cc.  Seems to fix the
   28411 	mp*_get_d problems.
   28412 
   28413 	* mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR.
   28414 	* mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir.
   28415 
   28416 2000-05-21  Kevin Ryde  <kevin (a] swox.se>
   28417 
   28418 	* mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code.
   28419 	* mpn/x86/k7/README: Update.
   28420 	* mpn/x86/k7/gmp-mparam.h: Tune thresholds.
   28421 	(COUNT_TRAILING_ZEROS_TIME): New define.
   28422 	* mpn/x86/k6/gmp-mparam.h: Ditto.
   28423 
   28424 	* mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version).
   28425 	* mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version).
   28426 	* mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version).
   28427 	* mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version).
   28428 	* configure.in (pentium3-*-*): Add p3mmx to $path.
   28429 
   28430 	* gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add
   28431 	mpz_*_kronecker_*.
   28432 	(Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p.
   28433 	(Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note
   28434 	it's now a macro.
   28435 	(References): Add Henri Cohen.
   28436 
   28437 	* gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c,
   28438 	mpn_submul_1c): Add prototypes.
   28439 	(mpz_odd_p, mpz_even_p): New macros.
   28440 
   28441 	* mpn/asm-defs.m4 (m4wrap_prepend): New macro.
   28442 	(m4_error): Use it.
   28443 	(m4_not_for_expansion): Corrections to OPERATION symbols.
   28444 	More comments about variations between m4 versions.
   28445 	* mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error
   28446 	exit under BSD m4, previously m4_error printed the message but the
   28447 	exit code was 0).
   28448 
   28449 	* gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1.
   28450 	* mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it
   28451 	static and call it __gmpn_divmod_1_internal.
   28452 	* mpn/generic/divmod_1.c: Remove file.
   28453 	* configure.in (gmp_mpn_functions): Remove divmod_1.
   28454 	* mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c.
   28455 	* compat.c (mpn_divmod_1): Add compatibility function.
   28456 	* tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1).
   28457 
   28458 	* acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in
   28459 	variants, remove divmod_1.
   28460 
   28461 	* mpn/x86/diveby3.asm: Use imul, update comments.
   28462 
   28463 	* demos/qcn.c: New file.
   28464 	* demos/Makefile.am (EXTRA_PROGRAMS): Add it.
   28465 
   28466 	* mpz/tests/t-jac.c: New file.
   28467 	* mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr.
   28468 
   28469 	* mpz/kronsz.c: New file.
   28470 	* mpz/kronuz.c: New file.
   28471 	* mpz/kronzs.c: New file.
   28472 	* mpz/kronzu.c: New file.
   28473 	* mpz/Makefile.am (libmpz_la_SOURCES): Add them.
   28474 	* Makefile.am (MPZ_OBJECTS): Add them.
   28475 	* gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros.
   28476 	* gmp.h (mpz_*_kronecker_*): New defines and prototypes.
   28477 
   28478 	* mpn/generic/jacbase.c: New file.
   28479 	* mpn/generic/mod_1_rs.c: New file.
   28480 	* configure.in (gmp_mpn_functions): Add them.
   28481 	* gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and
   28482 	prototypes.
   28483 	* longlong.h (COUNT_TRAILING_ZEROS_TIME): New define.
   28484 	* mpn/tests/ref.c (refmpn_mod_1_rshift): New function.
   28485 	* mpn/tests/try.c: Add mpn_mod_1_rshift.
   28486 	* tune/*: Add measuring for mpn_jacobi_base.
   28487 
   28488 	* acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple
   28489 	inclusion of config.m4.
   28490 	(GMP_PROG_M4): Put "good" message through to config.log.
   28491 
   28492 	* mpz/powm.c: Use a POWM_THRESHOLD for where redc stops.
   28493 	* tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD.
   28494 	* gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional
   28495 	redefinition for use when tuning.
   28496 
   28497 	* mpz/powm_ui.c: Use DIVIDE_BY_ZERO.
   28498 
   28499 	* mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in
   28500 	string; this makes it the same as a separate init and set_str.
   28501 
   28502 2000-05-20  Kevin Ryde  <kevin (a] swox.se>
   28503 
   28504 	* mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval().
   28505 	* mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s.
   28506 
   28507 	* mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms.
   28508 
   28509 2000-05-19  Linus Nordberg  <linus (a] swox.se>
   28510 
   28511 	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable
   28512 	`ac_compile' for our own compile command string since other
   28513 	Autoconf macros may depend on it.
   28514 
   28515 2000-05-19  Kevin Ryde  <kevin (a] swox.se>
   28516 
   28517 	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix
   28518 	carry propagation in final coefficient additions.
   28519 
   28520 2000-05-18  Linus Nordberg  <linus (a] swox.se>
   28521 
   28522 	* configure.in: Set NM before looking for compiler since
   28523 	GMP_CHECK_CC_64BIT needs it.
   28524 
   28525 	* acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target.
   28526 	(GMP_PROG_CC_FIND): Before checking if the compiler knows how to
   28527 	produce 64-bit code, verify that it works at all.  The background
   28528 	is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit
   28529 	mode but fails when doing final link.
   28530 	(GMP_PROG_CC_WORKS): Report to user what's happening.
   28531 
   28532 2000-05-17  Linus Nordberg  <linus (a] swox.se>
   28533 
   28534 	* config.guess: Use X86CPU for x86 Cygwin.
   28535 
   28536 2000-05-16  Kevin Ryde  <kevin (a] swox.se>
   28537 
   28538 	* mpn/x86/p6/mmx/divrem_1.asm: New file.
   28539 	* mpn/x86/p6/mmx/mod_1.asm: New file.
   28540 	* mpn/x86/p6/README: Update.
   28541 	* mpn/x86/divrem_1.asm: Update comments.
   28542 	* mpn/x86/mod_1.asm: Ditto.
   28543 
   28544 2000-05-14  Kevin Ryde  <kevin (a] swox.se>
   28545 
   28546 	* tune/speed.h: Run gcd functions on a set of data.
   28547 
   28548 	* mpn/tests/try.c: New file.
   28549 	* mpn/tests/try.h: New file.
   28550 	* mpn/tests/spinner.c: New file.
   28551 	* mpn/tests/trace.c: New file.
   28552 	* mpn/tests/x86call.asm: New file.
   28553 	* mpn/tests/x86check.c: New file.
   28554 	* mpn/tests/ref.c (refmpn_hamdist): Allow size==0.
   28555 	(refmpn_gcd): New function, and other additions supporting it.
   28556 	* mpn/tests/ref.h: More prototypes.
   28557 	* mpn/tests/Makefile.am: Add try program, use ansi2knr.
   28558 
   28559 	* mpn/x86/k7/mmx/popham.asm: New file.
   28560 	* mpn/x86/k6/mmx/popham.asm: New file.
   28561 	* mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x
   28562 	speedup above 15 limbs.
   28563 	* mpn/x86/k7/README: Update.
   28564 	* mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT
   28565 	K6-2 problems.
   28566 	* configure.in (k6*-*-*, athlon-*-*): Add popham.
   28567 
   28568 	* mpn/x86/pentium/diveby3.asm: New file.
   28569 	* mpn/x86/pentium/README: Update.
   28570 
   28571 	* gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4.
   28572 	(Reporting Bugs): Ask for config.m4 if asm file related.
   28573 	(I/O of Rationals): New section, add mpq_out_str.
   28574 	(References): Add url for on-line gcc manuals.
   28575 	A few node and menu updates.
   28576 
   28577 	* INSTALL: Better command line argument checking for test progs.
   28578 	Change MP -> GMP.
   28579 
   28580 	* configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC):
   28581 	Put descriptions here, not in acconfig.h.
   28582 	(CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try).
   28583 	(HAVE_CALLING_CONVENTIONS): New AC_DEFINE.
   28584 	(AC_CHECK_HEADERS): Add sys/time.h.
   28585 	(AC_CHECK_FUNCS): Add getpagesize, setitimer.
   28586 	(KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the
   28587 	#define when passing through to config.m4.
   28588 	* acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC,
   28589 	HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them
   28590 	from configure.in.
   28591 
   28592 	* acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4
   28593 	eval(), put messages into config.log.
   28594 	* mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4.
   28595 
   28596 	* mpq/out_str.c: New file.
   28597 	* mpq/Makefile.am (libmpq_la_SOURCES): Add it.
   28598 	* Makefile.am (MPQ_OBJECTS): Ditto.
   28599 	* gmp.h (mpq_out_str): New define and prototype.
   28600 
   28601 2000-05-12  Kevin Ryde  <kevin (a] swox.se>
   28602 
   28603 	* configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not
   28604 	$top_srcdir (which doesn't exist).
   28605 	* acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_.
   28606 	* gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do"
   28607 	(not currently used, probably no ill effect anyway).
   28608 
   28609 2000-05-11  Torbjorn Granlund  <tege (a] swox.com>
   28610 
   28611 	* randraw.c (lc): Major overhaul (pending rewrite).
   28612 	(_gmp_rand): Rewrite.
   28613 
   28614 2000-05-08  Torbjorn Granlund  <tege (a] swox.com>
   28615 
   28616 	* mpz/tests/convert.c: Call free via _mp_free_func.
   28617 	* mpf/tests/t-conv.c: Likewise.
   28618 
   28619 	* memory.c: Add code enabled for DEBUG that adds special patterns
   28620 	around allocated blocks.
   28621 
   28622 2000-05-05  Linus Nordberg  <linus (a] swox.se>
   28623 
   28624 	* gmp.texi (Miscellaneous Float Functions): Correct parameter list
   28625 	for mpf_urandomb().
   28626 
   28627 	* configure.in: Invoke AC_REVISION.
   28628 
   28629 2000-05-05  Kevin Ryde  <kevin (a] swox.se>
   28630 
   28631 	* gmp.texi: Use @dircategory and @direntry.
   28632 	(Installing GMP): Clarification for --target, updates on SunOS
   28633 	problems.
   28634 	(Integer Arithmetic): Add mpz_mul_si.
   28635 	(Initializing Rationals): Add mpq_swap.
   28636 	(Assigning Floats): Add mpf_swap.
   28637 	(Low-level Functions): Add mpn_divexact_by3c, and details of what
   28638 	the calculation actually gives.
   28639 	(Low-level Functions): Note extra space needed by mpn_gcdext,
   28640 	clarify the details a bit.
   28641 
   28642 	* compat.c: New file, entry points for upward binary compatibility.
   28643 	(mpn_divexact_by3): Compatibility function.
   28644 	* Makefile.am (libgmp_la_SOURCES): Add compat.c.
   28645 
   28646 	* mpn/tests/ref.c: Rearrange macros for ansi2knr.
   28647 	(div1): Renamed from div to avoid library function.
   28648 	(refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount,
   28649 	refmpn_hamdist): New functions.
   28650 	* mpn/tests/ref.h: Add extern "C", add new prototypes.
   28651 
   28652 	* gmp.h (gmp_randinit, etc): Add extern "C".
   28653 	(_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui.
   28654 	(mpn_divexact_by3): Now a macro calling mpn_divexact_by3c.
   28655 	(mpn_divexact_by3c): New prototype and define.
   28656 
   28657 	* mpn/x86/diveby3.asm: Change to mpn_divexact_by3c.
   28658 	* mpn/x86/k6/diveby3.asm: Ditto.
   28659 	* mpn/generic/diveby3.c: Ditto.
   28660 	* mpn/asm-defs.m4: Ditto on the define_mpn.
   28661 	* acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define.
   28662 
   28663 	* mpq/swap.c: New file, derived from mpz/swap.c.
   28664 	* mpf/swap.c: Ditto.
   28665 	* mpq/Makefile.am: Add swap.c.
   28666 	* mpf/Makefile.am: Ditto.
   28667 	* Makefile.am: Add two new "swap.lo"s.
   28668 
   28669 	* mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately
   28670 	this code hasn't been used anywhere yet).
   28671 
   28672 	* mpn/x86/k7/mmx/divrem_1.asm: New file.
   28673 	* mpn/x86/k7/mmx/mod_1.asm: New file.
   28674 	* mpn/x86/k7/diveby3.asm: New file.
   28675 	* mpn/x86/k7/README: Update.
   28676 
   28677 	* mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change.
   28678 	* mpn/x86/k7/mul_basecase.asm: Ditto.
   28679 	* mpn/x86/p6/aorsmul_1.asm: Ditto.
   28680 
   28681 	* mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument.
   28682 	(cmovCC): New macros, replacing individual cmovCC_reg_reg forms.
   28683 	(Zdisp): Recognise more instructions.
   28684 	(shldl,etc): Use m4_instruction_wrapper().
   28685 	(ASSERT, movl_text_address): New macros.
   28686 
   28687 	* mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new
   28688 	OpenBSD m4.
   28689 	(m4_assert_numargs_internal_check): Remove a spurious parameter.
   28690 	(m4_empty_if_zero): Eval the argument.
   28691 	(m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam,
   28692 	m4_instruction_wrapper): New macros.
   28693 
   28694 2000-05-04  Linus Nordberg  <linus (a] swox.se>
   28695 
   28696 	* gmp.texi (Reporting Bugs): Be explicit about output from running
   28697 	a command.
   28698 
   28699 2000-05-02  Torbjorn Granlund  <tege (a] swox.com>
   28700 
   28701 	* mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return
   28702 	from first mpn_bz_div_3_halves_by_2 call.
   28703 	(mpn_bz_divrem_aux): Likewise.
   28704 
   28705 2000-04-30  Kevin Ryde  <kevin (a] swox.se>
   28706 
   28707 	* tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these.
   28708 
   28709 	* mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD,
   28710 	use with >=, adjust default to 17 accordingly.
   28711 	Use new *_SWAP macros.
   28712 
   28713 	* mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from
   28714 	ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly.
   28715 	Use new *_SWAP macros.
   28716 
   28717 	* mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c,
   28718 	mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c,
   28719 	mpn/generic/mul.c: Use new *_SWAP macros.
   28720 
   28721 	* stack-alloc.h: Add extern "C" around prototypes.
   28722 
   28723 	* gmp-impl.h: (MP_PTR_SWAP, etc): New macros.
   28724 	(_mp_allocate_func, etc): Use _PROTO.
   28725 	[TUNE_PROGRAM_BUILD]: More changes in tune program build part.
   28726 
   28727 2000-04-28  Torbjorn Granlund  <tege (a] swox.com>
   28728 
   28729 	* mpn/pa64/add_n.s: Add `,entry' to export directive.
   28730 	* mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S,
   28731 	mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S,
   28732 	mpn/pa64/umul_ppmm.S: Likewise.
   28733 	* mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s.
   28734 	Add PIC support.
   28735 
   28736 2000-04-29  Kevin Ryde  <kevin (a] swox.se>
   28737 
   28738 	* gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New
   28739 	define.
   28740 	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use
   28741 	TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500.
   28742 
   28743 	* memory.c: Use <stdlib.h> for malloc etc, and use _PROTO.
   28744 	* stack-alloc.c: Don't use C++ reserved word "this".
   28745 	* urandom.h: Put extern "C" around prototypes.
   28746 	* mpz/powm.c: Switch a couple of parameters to "const", which they
   28747 	are, to satisfy g++.
   28748 
   28749 	* randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to
   28750 	help g++.
   28751 
   28752 	* stack-alloc.c: Provide dual ANSI/K&R function definitions.
   28753 	* mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c,
   28754 	rrandomb.c,set_str.c,ui_pow_ui.c: Ditto.
   28755 	* mpf/integer.c,set_str.c: Ditto.
   28756 	* mpbsd/min.c,xtom.c: Ditto.
   28757 	* mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c,
   28758 	popcount.c,random.c,random2.c,set_str.c: Ditto.
   28759 
   28760 	* rand.c: Use <stdio.h> for NULL.
   28761 	* mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c,
   28762 	sqrtrem.c: Ditto
   28763 	* mpf/sqrt.c,sqrt_ui.c: Ditto.
   28764 	* mpn/generic/perfsqr.c,sqrtrem.c: Ditto.
   28765 
   28766 	* gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare.
   28767 	(extern "C"): Add around function prototypes.
   28768 	(mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n):
   28769 	Add prototypes.
   28770 	[TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for
   28771 	use by tune program.
   28772 	* mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype.
   28773 
   28774 	* acinclude.m4 (GMP_C_ANSI2KNR): New macro.
   28775 	(GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use
   28776 	$gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets.
   28777 	* configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES,
   28778 	for reasons described with its definition.
   28779 
   28780 	* demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir).
   28781 
   28782 	* mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency.
   28783 	(FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value.
   28784 	(mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui.
   28785 	* tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this.
   28786 
   28787 	* configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite
   28788 	a value just stored).
   28789 
   28790 2000-04-26  Kevin Ryde  <kevin (a] swox.se>
   28791 
   28792 	* mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro.
   28793 	* mpn/sparc32/udiv_nfp.asm: Ditto.
   28794 	* mpn/sparc32/v8/supersparc/udiv.asm: Ditto.
   28795 	* mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm.
   28796 	* mpn/sparc32/v8/umul.asm: Ditto.
   28797 	* mpn/powerpc32/umul.asm: Ditto.
   28798 
   28799 	* mpn/x86/syntax.h: Remove file, since now unused.
   28800 
   28801 	* configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS
   28802 	previously used by .S files.
   28803 	(x86 extra_functions): Add udiv and umul.
   28804 	(GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...)
   28805 	(HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to
   28806 	accept PROLOGUE_GP on alpha.
   28807 
   28808 	* acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb):
   28809 	New template defines.
   28810 	* mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s.
   28811 	* longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if
   28812 	it's available and an asm macro isn't.
   28813 	* gmp-impl.h (invert_limb): Ditto.
   28814 
   28815 	* gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it.
   28816 
   28817 	* acinclude.m4 (GMP_PROG_M4): New macro.
   28818 
   28819 2000-04-25  Linus Nordberg  <linus (a] swox.se>
   28820 
   28821 	* gmp.texi (Random State Initialization): Correct arguments to
   28822 	`gmp_randinit'.
   28823 
   28824 	* acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'.  Fix
   28825 	from Kevin.
   28826 	* aclocal.m4: Regenerate.
   28827 
   28828 2000-04-25  Kevin Ryde  <kevin (a] swox.se>
   28829 
   28830 	* mpn/x86/aors_n.asm: Remove parentheses around an immediate that
   28831 	Solaris "as" doesn't like, change by Torbjorn.
   28832 
   28833 2000-04-24  Kevin Ryde  <kevin (a] swox.se>
   28834 
   28835 	* configure.in (AC_CHECK_FUNCS): Add strtoul.
   28836 
   28837 	* mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger
   28838 	array for karatsuba temporary space for tune program build.
   28839 	(mpn_toom3_sqr_n) Remove an unused variable.
   28840 
   28841 	* demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
   28842 	Add "allprogs:" pseudo-target.
   28843 	* demos/factorize.c, demos/isprime.c: Switch to ANSI functions,
   28844 	rely on ansi2knr.
   28845 
   28846 	* gmp.texi (Getting the Latest Version of GMP): Add reference to
   28847 	ftp.gnu.org mirrors list.
   28848 	* INSTALL: Add arg count check to example programs.
   28849 
   28850 	* mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to
   28851 	FORTRAN-style "C" commenting to support Solaris "as".
   28852 	* mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn.
   28853 	* mpn/asm-defs.m4 (C): Update comments.
   28854 	* mpn/x86/README.family: Add a note on commenting, remove
   28855 	description of .S files.
   28856 
   28857 	* mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use
   28858 	include_mpn().
   28859 
   28860 2000-04-23  Torbjorn Granlund  <tege (a] swox.com>
   28861 
   28862 	* config.sub: Merge with FSF version of April 23.
   28863 
   28864 	* mpn/powerpc32: Use dnl/C instead of `#' for comments.
   28865 
   28866 	* config.guess: Get "model" limit between pentium 2 and pentium3 right.
   28867 	Get rid of code determining `_' prefix; use double labels instead.
   28868 	* config.guess: Partially merge with FSF version of April 22.
   28869 	(Don't bring over NetBSD changes for now.)
   28870 
   28871 2000-04-23  Kevin Ryde  <kevin (a] swox.se>
   28872 
   28873 	* tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm,
   28874 	tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files.
   28875 	* tune/Makefile.in: New file, generated from Makefile.am.
   28876 
   28877 	* gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros.
   28878 	[TUNE_PROGRAM_BUILD] Further mods for tune program builds.
   28879 
   28880 	* mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c.
   28881 	Add rules to build mul_si and mul_ui from a common mul_siui.c.
   28882 	* mpz/mul_siui.c: New file, derived from and replacing mul_ui.c.
   28883 	* gmp.h (mpz_mul_si): New prototype and define.
   28884 
   28885 	* mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in
   28886 	CLOCK because cpp can't handle floats in #if's (TIMES is derived
   28887 	from CLOCK by default).
   28888 
   28889 	* mpn/asm-defs.m4 (include_mpn): New macro.
   28890 	(m4_assert_numargs) Changes to implementation.
   28891 
   28892 	* mpf/Makefile.am: Add -DOPERATION_$* for new integer.c.
   28893 	Remove explicit rules for floor.o etc.
   28894 	* mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc.
   28895 
   28896 	* mpn/Makefile.am: Put "tests" in SUBDIRS.
   28897 	* mpn/tests/Makefile.am: New file providing rules to build test
   28898 	programs, nothing done in a "make all" or "make check" though.
   28899 	* mpn/tests/README: New file.
   28900 
   28901 	* acconfig.h (HAVE_PENTIUM_RDTSC): New define.
   28902 
   28903 	* configure.in (x86): Rearrange target cases.
   28904 	Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s).
   28905 	Remove asm-syntax.h generation not needed.
   28906 	Remove now unused family=x86.
   28907 	(sparc) Remove unused family=sparc.
   28908 	(HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL.
   28909 	(AM_C_PROTOTYPES) New test, supporting ansi2knr.
   28910 	(AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for
   28911 	tune progs.
   28912 	(AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for
   28913 	tune progs.
   28914 	(config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR.
   28915 	(config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include().
   28916 	(gmp_m4postinc) Use include_mpn().
   28917 	(gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's.
   28918 	(MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd.
   28919 	(PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3).
   28920 	(KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4.
   28921 	(AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile.
   28922 
   28923 	* Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
   28924 	(SUBDIRS): Add tune, reorder directories.
   28925 	(MPZ_OBJECTS): Add mpz/mul_si.lo.
   28926 	(libmp_la_SOURCES): Use this for top-level objects, not .lo's.
   28927 	* ansi2knr.c, ansi2knr.1: New files, provided by automake.
   28928 
   28929 	* mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a
   28930 	multi-function aors_n.asm, no object code change.
   28931 	* mpn/x86/pentium/aors_n.asm: Ditto.
   28932 	* mpn/x86/aorsmul_1.asm: Ditto for addmul/submul.
   28933 	* mpn/x86/pentium/aorsmul_1.asm: Ditto.
   28934 
   28935 	* mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm,
   28936 	mpn/x86/rshift.asm: Convert from .S, no object code change.
   28937 	* mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm,
   28938 	mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto.
   28939 
   28940 	* gmp.texi (Reporting Bugs): Itemize the list of things to include.
   28941 	(Miscellaneous Float Functions): Correct typo in mpf_ceil etc
   28942 	argument types.
   28943 	Change @ifinfo -> @ifnottex for benefit of makeinfo --html.
   28944 	Remove unnecessary @iftex's around @tex.
   28945 
   28946 2000-04-22  Torbjorn Granlund  <tege (a] swox.com>
   28947 
   28948 	* config.guess: Generalize x86 cpu determination code.
   28949 	Now works on Solaris.
   28950 
   28951 	* mpz/nextprime.c: Rewrite still disabled code.
   28952 
   28953 	* configure.in: Specifically match freebsd[3-9].
   28954 
   28955 2000-04-21  Torbjorn Granlund  <tege (a] swox.com>
   28956 
   28957 	* rand.c: Call mpz_clear for otherwise leaking mpz_t.
   28958 
   28959 	* mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative
   28960 	n into code for handling small positive n.  Merge variables m and n.
   28961 	After dividing, simply call mpz_millerrabin.
   28962 	(isprime): Local variables now use attribute `long'.
   28963 	(mpz_millerrabin): New static function, based on code from
   28964 	mpz_probab_prime_p.
   28965 	(millerrabin): Now simple workhorse for mpz_millerrabin.
   28966 
   28967 2000-04-19  Torbjorn Granlund  <tege (a] swox.com>
   28968 
   28969 	* gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__.
   28970 
   28971 2000-04-18  Linus Nordberg  <linus (a] swox.se>
   28972 
   28973 	* NEWS: Add info about shared libraries.  Remove reference to
   28974 	gmp_randinit_lc.
   28975 
   28976 2000-04-17  Torbjorn Granlund  <tege (a] swox.com>
   28977 
   28978 	* Version 3.0 released.
   28979 
   28980 	* mpn/arm/add_n.S: New version from Robert Harley.
   28981 	* mpn/arm/addmul_1.S: Likewise.
   28982 	* mpn/arm/mul_1.S: Likewise.
   28983 	* mpn/arm/sub_n.S: Likewise.
   28984 
   28985 	* gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0.
   28986 
   28987 2000-04-17  Linus Nordberg  <linus (a] swox.se>
   28988 
   28989 	* configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode
   28990 	to avoid compiler bug.
   28991 	(ns32k*-*-*): Fix typo in path.  Change by Kevin.
   28992 	(alpha*-*-osf*): New case.  Pass assembly flags for architecture
   28993 	to gcc.
   28994 	(alpha*-*-*): Don't bother searching for cc.
   28995 	* configure: Regenerate.
   28996 
   28997 	* Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'.
   28998 	* Makefile.in: Regenerate.
   28999 	* mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'.
   29000 	* mpn/Makefile.in: Regenerate.
   29001 
   29002 2000-04-16  Kevin Ryde  <kevin (a] swox.se>
   29003 
   29004 	* README: Updates, and don't duplicate the example in INSTALL.
   29005 	* INSTALL: Minor updates.
   29006 	* gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description.
   29007 
   29008 2000-04-16  Linus Nordberg  <linus (a] swox.se>
   29009 
   29010 	* configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid
   29011 	.type/.size in PROLOGUE for ELF_SYNTAX.  Override ALIGN definition
   29012 	from x86/syntax.h.
   29013 	(gmp_xoptcflags_${CC}): New set of variables, indicating
   29014 	``exclusive optional cflags''.
   29015 	(most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to
   29016 	ensure that we pass CPU type to older gcc.
   29017 	(CFLAGS): CFLAGS on the command line was spoiled.
   29018 	* configure: Regenerate.
   29019 
   29020 2000-04-16  Linus Nordberg  <linus (a] swox.se>
   29021 
   29022 	* configure.in: Invoke AC_PROG_LIBTOOL directly.
   29023 
   29024 	* acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when
   29025 	setting CC64 and CFLAGS64.
   29026 	(GMP_PROG_CC_SELECT): Cache result.
   29027 	(GMP_PROG_LIBTOOL): Remove.
   29028 
   29029 	* aclocal.m4: Regenerate.
   29030 	* configure: Regenerate.
   29031 
   29032 2000-04-16  Linus Nordberg  <linus (a] swox.se>
   29033 
   29034 	* tests/rand/t-rand.c (main): Add non-ANSI function declaration.
   29035 	Don't use `const'.
   29036 
   29037 2000-04-16  Torbjorn Granlund  <tege (a] swox.com>
   29038 
   29039 	* mpn/generic/dump.c: Suppress output of leading zeros.
   29040 
   29041 	* mpz/inp_str.c: Fix memory leakage.
   29042 
   29043 	* mpz/tests/reuse.c (dss_func_division): Add a final 1.
   29044 
   29045 	* longlong.h (alpha count_leading_zeros): Wrap in __MPN.
   29046 	* mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN).
   29047 
   29048 	* longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN.
   29049 	* mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix.
   29050 	* mpn/hppa/udiv_qrnnd.s: Likewise.
   29051 	* mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise.
   29052 	* mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN).
   29053 	* mpn/pa64/umul_ppmm.S: Likewise.
   29054 	* mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN).
   29055 	* mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN).
   29056 	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN).
   29057 
   29058 	* mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling
   29059 	bug.
   29060 
   29061 	* mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1
   29062 	when computing appropriate quotient; mpn_divrem_1 writes too
   29063 	many quotient limbs.
   29064 
   29065 	* mpn/asm-defs.m4: invert_normalized_limb => invert_limb.
   29066 	* mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb =>
   29067 	mpn_invert_limb.
   29068 	* gmp.h: Likewise.
   29069 	* gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb;
   29070 	wrap with __MPN.
   29071 	* longlong.h (alpha udiv_qrnnd): Likewise.
   29072 
   29073 2000-04-16  Kevin Ryde  <kevin (a] swox.se>
   29074 
   29075 	* gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add
   29076 	#defines so the library symbols are __gmp_*.
   29077 	* errno.c: Include gmp.h.
   29078 	* gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*.
   29079 	(__clz_tab): New #define to __MPN(clz_tab).
   29080 	* stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*.
   29081 
   29082 	* Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed
   29083 	for new mpz_powm (pow in libmp).
   29084 	(EXTRA_DIST): Add projects directory.
   29085 
   29086 	* mpn/*: Change __mpn to __gmpn.
   29087 	* gmp.h (__MPN): Ditto.
   29088 	* stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp.
   29089 
   29090 	* mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3
   29091 	i386 register handling bug (same as previously in mpn_divrem_classic).
   29092 
   29093 	* mpn/generic/divrem.c: Now contains mpn_divrem, which is not an
   29094 	internal function, so remove warning comment.
   29095 
   29096 	* gmp.texi (Compatibility with Version 2.0.x): Source level only.
   29097 
   29098 2000-04-16  Linus Nordberg  <linus (a] swox.se>
   29099 
   29100 	* configure.in (hppa1.0*): Prefer c89 to cc.
   29101 	* configure: Regenerate.
   29102 
   29103 2000-04-15  Linus Nordberg  <linus (a] swox.se>
   29104 
   29105 	* configure.in: If `mpn_path' is set by user on configure command
   29106 	line, use that as path.
   29107 	* configure: Regenerate.
   29108 
   29109 2000-04-15  Linus Nordberg  <linus (a] swox.se>
   29110 
   29111 	* configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no
   29112 	64-bit compiler was found.
   29113 	* configure: Regenerate.
   29114 
   29115 2000-04-15  Linus Nordberg  <linus (a] swox.se>
   29116 
   29117 	* configure.in: Honor `CC' and `CFLAGS' set by user on configure
   29118 	command line.
   29119 	* acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already.
   29120 	* aclocal.m4: Regenerate.
   29121 	* configure: Regenerate.
   29122 
   29123 2000-04-15  Linus Nordberg  <linus (a] swox.se>
   29124 
   29125 	* acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output.  Remove
   29126 	commented out code.
   29127 	* aclocal.m4: Regenerate.
   29128 	* configure: Regenerate.
   29129 
   29130 	* configure.in: Make all `-mcpu' options to gcc optional.
   29131 	* configure: Regenerate.
   29132 
   29133 	* tests/rand/Makefile.am: Don't do anything for target 'all'.
   29134 	* tests/rand/Makefile.in: Regenerate.
   29135 
   29136 2000-04-15  Kevin Ryde  <kevin (a] swox.se>
   29137 
   29138 	* README: Small updates.
   29139 	* NEWS: Add some things about 3.0.
   29140 
   29141 	* mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c.
   29142 
   29143 	* Makefile.am: Use -version-info on libraries, not -release.
   29144 
   29145 	* mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP.
   29146 	* mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c.
   29147 	* Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo.
   29148 	(libmp_la_DEPENDENCIES): Add mp_clz_tab.lo.
   29149 	* mpbsd/mdiv.c: Remove file.
   29150 
   29151 	* config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr,
   29152 	mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86,
   29153 	mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix:
   29154 	Remove configure fragments not used since change to autoconf.
   29155 
   29156 	* mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that
   29157 	internal functions are changeable and shouldn't be used directly.
   29158 
   29159 2000-04-15  Linus Nordberg  <linus (a] swox.se>
   29160 
   29161 	* configure.in: Remove debug output.
   29162 	* configure: Regenerate.
   29163 
   29164 2000-04-15  Torbjorn Granlund  <tege (a] swox.com>
   29165 
   29166 	* mpn/generic/tdiv_qr.c: Don't use alloca directly.
   29167 
   29168 	* mpz/tdiv_qr.c: Fix typo.
   29169 	* mpz/tdiv_r.c: Fix typo.
   29170 	* mpz/tdiv_q.c: Fix typo.
   29171 
   29172 	* configure.in: Disable -march=pentiumpro due to apparent compiler
   29173 	problems.
   29174 
   29175 	* mpz/powm.c: Replace with new code from Paul Zimmermann.
   29176 
   29177 	* mpz/tdiv_q.c: Remove debug code.
   29178 
   29179 	* mpn/generic/divrem.c: Remove C++ style `//' commented-out code.
   29180 	* mpn/generic/sb_divrem_mn.c: Likewise.
   29181 
   29182 2000-04-14  Torbjorn Granlund  <tege (a] swox.com>
   29183 
   29184 	* mpz/cdiv_q.c: Change temp allocation for new requirements of
   29185 	mpz_tdiv_qr.
   29186 	* mpz/fdiv_q.c: Likewise.
   29187 
   29188 	* mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3.
   29189 
   29190 	* mpz/dmincl.c: Delete file.
   29191 	* mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr.
   29192 	* mpz/tdiv_r.c: Likewise.
   29193 	* mpz/tdiv_q.c: Likewise.
   29194 
   29195 	* mpn/generic/tdiv_qr.c: New file.
   29196 	* mpn/generic/bz_divrem_n.c: New file.
   29197 	* mpn/generic/sb_divrem_mn.c: New file.
   29198 
   29199 	* gmp-impl.h (MPZ_REALLOC): New macro.
   29200 	(mpn_sb_divrem_mn): Declare.
   29201 	(mpn_bz_divrem_n): Declare.
   29202 	(mpn_tdiv_qr): Declare.
   29203 
   29204 	* configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n;
   29205 	add tdiv_qr, bz_divrem_n, and sb_divrem_mn.
   29206 	* mpn/generic/divrem_newt.c: Delete file.
   29207 	* mpn/generic/divrem_1n.c: Delete file.
   29208 
   29209 	* gmp.h (mpn_divrem_newton): Remove declaration.
   29210 	(mpn_divrem_classic): Remove declaration.
   29211 
   29212 	* gmp.h (mpn_divrem): Remove function definition.
   29213 	* mpn/generic/divrem.c: Replace mpn_divrem_classic with a
   29214 	mpn_divrem wrapper.
   29215 
   29216 2000-04-14  Kevin Ryde  <kevin (a] swox.se>
   29217 
   29218 	* mpf/dump.c, mpz/dump.c, mpn/generic/dump.c,
   29219 	mpn/generic/divrem.c, mpn/generic/divrem_1n.c,
   29220 	mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c,
   29221 	mpn/generic/mul.c, mpn/generic/mul_basecase.c,
   29222 	mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c,
   29223 	mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are
   29224 	changeable and shouldn't be used directly.
   29225 
   29226 	* mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an
   29227 	exception on zero divisor).
   29228 
   29229 	* mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function
   29230 	definitions.
   29231 	* mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul.
   29232 
   29233 	* gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX
   29234 	and ranlib on native SunOS.
   29235 	Particular systems notes about AIX and HPPA shared libraries
   29236 	disabled.
   29237 	(MP Basics): Add that undocumented things shouldn't be used.
   29238 	(Introduction to MP): Add to CPUs listed.
   29239 
   29240 	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C
   29241 	having "void".
   29242 
   29243 2000-04-13  Linus Nordberg  <linus (a] swox.se>
   29244 
   29245 	* mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function
   29246 	definition.
   29247 
   29248 	* configure.in: Disable shared libraries for hppa*.
   29249 	(mips-sgi-irix6.*): Fix flags for 64-bit gcc.
   29250 	(hppa2.0*-*-*): Prefer c89 to cc.
   29251 	* configure: Regenerate.
   29252 
   29253 	* gmp.h (gmp_randalg_t): Remove comma after last element.
   29254 
   29255 	* tests/rand/t-rand.c: Add copyright notice.
   29256 
   29257 2000-04-13  Kevin Ryde  <kevin (a] swox.se>
   29258 
   29259 	* mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c,
   29260 	mpz/remove.c, mpz/root.c: Add K&R function definitions.
   29261 	* mpz/rrandomb.c: Fix typo in K&R part.
   29262 	* stack-alloc.c: Add K&R style function pointer declarations.
   29263 
   29264 	* mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives.
   29265 	Use DIVIDE_BY_ZERO on a "zero'th" root.
   29266 
   29267 	* configure: Regenerate with autoconf backpatched to fix --srcdir
   29268 	absolute path wildcards that bash doesn't like, change by Linus.
   29269 
   29270 	* gmp.texi (Integer Arithmetic): Document mpz_nextprime.
   29271 	(Miscellaneous Integer Functions): Fix mpz_fits_* formatting.
   29272 	(Installing MP): Comment-out CC and CFLAGS description.
   29273 
   29274 2000-04-13  Linus Nordberg  <linus (a] swox.se>
   29275 
   29276 	* rand.c (gmp_randinit): Don't combine va_alist with ordinary
   29277 	arguments for non STDC.
   29278 
   29279 2000-04-13  Torbjorn Granlund  <tege (a] swox.com>
   29280 
   29281 	* mpz/nextprime.c: Use proper names of new random types and functions.
   29282 
   29283 	* mpz/rrandomb.c: New file.
   29284 	* mpz/Makefile.am: List it.
   29285 	* mpz/Makefile.in: Regenerate.
   29286 	* Makefile.am: Here too.
   29287 	* Makefile.in: Regenerate.
   29288 	* gmp.h: Declare mpz_rrandomb.
   29289 
   29290 2000-04-12  Linus Nordberg  <linus (a] swox.se>
   29291 
   29292 	* Makefile.am, demos/Makefile.am, mpbsd/Makefile.am,
   29293 	mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am,
   29294 	mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am,
   29295 	mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am,
   29296 	tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
   29297 
   29298 	* Makefile.in, demos/Makefile.in, mpbsd/Makefile.in,
   29299 	mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in,
   29300 	mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in,
   29301 	mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in,
   29302 	tests/rand/Makefile.in: Regenerate.
   29303 
   29304 2000-04-12  Linus Nordberg  <linus (a] swox.se>
   29305 
   29306 	* randlc.c (gmp_randinit_lc): Disable function.
   29307 	* gmp.texi (Random State Initialization): Remove gmp_randinit_lc.
   29308 
   29309 	* acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main
   29310 	successfully with `-n32' will have to suffice on irix6.
   29311 	* aclocal.m4: Regenerate.
   29312 
   29313 	* configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler.
   29314 	(mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64'
   29315 	for 64-bit `cc'.  Add options for gcc.
   29316 	* configure: Regenerate.
   29317 
   29318 	* mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'.  If
   29319 	'nbits' doesn't make even limbs, shift up result before
   29320 	normalizing.
   29321 
   29322 	* gmp.h (mpf_urandomb): Add parameter to prototype.
   29323 
   29324 	* mpf/urandom.c: Rename file to ...
   29325 	* mpf/urandomb.c: ... this.
   29326 	* Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo.
   29327 	* Makefile.in: Regenerate.
   29328 	* mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c.
   29329 	* mpf/Makefile.in: Regenerate.
   29330 
   29331 	* config.in: Regenerate for HAVE_DECL_OPTARG.
   29332 
   29333 	* randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB.
   29334 	(lc): Change return type.
   29335 	Use one temporary storage instead of two.
   29336 	Handle seed of size 0.
   29337 	Avoid modulus operation in some cases.
   29338 	Abort if M is not a power of 2.
   29339 	Fix bug with 64-bit limbs.
   29340 	Fix bug with small seed, small A and large M.
   29341 
   29342 	* tests/rand/gen.c (main): Include gmp.h.  Remove macros MIN, MAX.  Add
   29343 	option '-q'.  Don't demand argument N.  Change parameters in call
   29344 	to mpf_urandomb.
   29345 
   29346 	* tests/rand/t-rand.c: New file for testing random number generation.
   29347 
   29348 	* tests/rand/Makefile.am: Run t-rand for 'make check'.
   29349 	(test, bigtest): Rename to manual-test, manual-bigtest.
   29350 	* tests/rand/Makefile.in: Regenerate.
   29351 
   29352 2000-04-12  Kevin Ryde  <kevin (a] swox.se>
   29353 
   29354 	* gmp-impl.h: Include config.h before TMP_ALLOC, so
   29355 	--disable-alloca works.
   29356 
   29357 	* mpbsd/Makefile.am: Don't recompile top-level sources here.
   29358 	* Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead,
   29359 	add errno.lo and stack-alloc.lo.
   29360 
   29361 	* mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4.
   29362 	* gmp.texi (Installing MP): Update note on SunOS m4 failure.
   29363 
   29364 	* acconfig.h: Add copyright notice using @TOP@.
   29365 
   29366 	* stack-alloc.c: Use _mp_allocate_func, not malloc.
   29367 	* gmp.texi (Installing MP): Note this under --disable-alloca.
   29368 
   29369 	* gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs.
   29370 	(Integer Arithmetic): mpz_prime_p not yet implemented, comment out.
   29371 	(Float Arithmetic): mpf_pow_ui now implemented, uncomment-out.
   29372 	(Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc.
   29373 	(Low-level Functions): Add mpn_random2, with mpn_random.
   29374 
   29375 	* mpn/m68k/mc68020/udiv.S: Rename from udiv.s.
   29376 	* mpn/m68k/mc68020/umul.S: Ditto.
   29377 
   29378 	* mpn/alpha/umul.asm: Rename from umul.s, remove .file and
   29379 	compiler identifiers.
   29380 
   29381 	* mpn/powerpc32/syntax.h: Removed, no longer used.
   29382 
   29383 	* mpn/a29k/udiv.s: Remove .file and compiler identifiers.
   29384 	* mpn/a29k/umul.s: Ditto.
   29385 
   29386 	* mpn/tests/ref.c: Use WANT_ASSERT.
   29387 	* mpn/tests/ref.h: Use _PROTO.
   29388 
   29389 	* mpbsd/configure.in: Removed, no longer required.
   29390 
   29391 	* mpf/div.c: Use DIVIDE_BY_ZERO.
   29392 	* mpf/div_ui.c: Ditto.
   29393 	* mpf/ui_div.c: Ditto.
   29394 	* mpq/inv.c: Ditto.
   29395 	* mpf/sqrt.c: Use SQRT_OF_NEGATIVE.
   29396 	* mpz/sqrt.c: Ditto.
   29397 	* mpz/sqrtrem.c: Ditto.
   29398 
   29399 	* gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros.
   29400 	(DIVIDE_BY_ZERO): Use GMP_ERROR.
   29401 	(__mp_bases): #define to __MPN(mp_bases).
   29402 
   29403 2000-04-11  Linus Nordberg  <linus (a] swox.se>
   29404 
   29405 	* tests/rand/stat.c (main): Initialize `l1runs' at declaration.
   29406 
   29407 2000-04-11  Kevin Ryde  <kevin (a] swox.se>
   29408 
   29409 	* mpz/fib_ui.c: Add K&R function definitions.
   29410 
   29411 	* mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a
   29412 	shell problem with an empty "for tst in $(TESTS) ; ...".
   29413 	* mpbsd/tests/dummy.c: New file.
   29414 
   29415 2000-04-10  Torbjorn Granlund  <tege (a] swox.com>
   29416 
   29417 	* mpz/bin_uiui.c: Delete several unused variables.
   29418 	Add copyright notice.
   29419 	* mpz/bin_ui.c: Add copyright notice.
   29420 
   29421 	* longlong.h: Declare __count_leading_zeros for alpha.
   29422 
   29423 2000-04-10  Linus Nordberg  <linus (a] swox.se>
   29424 
   29425 	* rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...).
   29426 	* gmp.h: Change prototype accordingly.
   29427 	* mpz/pprime_p.c (millerrabin): Change call accordingly.
   29428 
   29429 	* configure.in: Check for `optarg'.
   29430 	* configure: Regenerate.
   29431 
   29432 	* mpn/Makefile.am: Remove incorrect comment.
   29433 	* mpn/Makefile.in: Regenerate.
   29434 
   29435 	* gmp.h: Rename most of the random number functions, structs and some
   29436 	of the struct members.
   29437 	* rand.c (gmp_randinit): Likewise.
   29438 	* randclr.c (gmp_randclear): Likewise.
   29439 	* randlc.c (gmp_randinit_lc): Likewise.
   29440 	* randlc2x.c (gmp_randinit_lc_2exp): Likewise.
   29441 	* randraw.c (lc): Likewise.
   29442 	(_gmp_rand_getraw): Likewise.
   29443 	* randsd.c (gmp_randseed): Likewise.
   29444 	* randsdui.c (gmp_randseed_ui): Likewise.
   29445 	* gmp.texi: Likewise.
   29446 
   29447 	* gmp.texi: Use three hyphens for a dash.
   29448 	(Low-level Functions): Remove documentation for gmp_rand_getraw.
   29449 	(Random Number Functions): Add info on where to find documentation
   29450 	on the random number functions.
   29451 
   29452 	* tests/rand/Makefile.am (test, bigtest): Quote argument to grep.
   29453 	* tests/rand/Makefile.in: Regenerate.
   29454 
   29455 	* tests/rand/gen.c: Declare optarg, optind, opterr if not already
   29456 	declared.
   29457 	(main): Use new names for the random stuff.
   29458 	(main): Don't use strtoul() if we don't have it.  Use strtol()
   29459 	instead, if we have it.  Otherwise, use atoi().
   29460 	(main): Use srandom/srandomdev for __FreeBSD__ only.
   29461 	(main): Use new parameter order to gmp_randinit().
   29462 
   29463 	* tests/rand/stat.c: Declare optarg, optind, opterr if not already
   29464 	declared.
   29465 
   29466 2000-04-10  Torbjorn Granlund  <tege (a] swox.com>
   29467 
   29468 	* mpz/pprime_p.c: Pass 0L for mpz_scan1.  mpz_mmod => mpz_mod.
   29469 	(millerrabin): Use new random interface.
   29470 	(millerrabin): ... and don't forget to call gmp_randclear.
   29471 
   29472 	* mpz/nextprime.c: New file.
   29473 	* gmp.h: Declare mpz_nextprime.
   29474 	* mpz/Makefile.am: List nextprime.c.
   29475 	* mpz/Makefile.in: Regenerate.
   29476 	* Makefile.am: List mpz/nextprime.lo.
   29477 	* Makefile.in: Regenerate.
   29478 
   29479 2000-04-10  Kevin Ryde  <kevin (a] swox.se>
   29480 
   29481 	* move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change,
   29482 	mpf/tests/move-if-change: Remove, no longer used.
   29483 
   29484 	* Makefile.am (SUBDIRS): Add tests, demos, mpbsd.
   29485 	(libmp.la): New target, conditional on WANT_MPBSD.
   29486 	(libgmp_la_LIBADD): Add -lm.
   29487 	(AUTOMAKE_OPTIONS): Add check-news.
   29488 	(include_HEADERS): Setup to install gmp.h and possibly mp.h.
   29489 	(DISTCLEANFILES): Add generated files.
   29490 	(check): Remove explicit target (now uses check-recursive).
   29491 
   29492 	* configure.in: Use AM_CONFIG_HEADER.
   29493 	Add --enable-mpbsd setting automake conditional WANT_MPBSD.
   29494 	Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile.
   29495 
   29496 	* mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now
   29497 	using AM_CONFIG_HEADER.
   29498 	* mpq/Makefile.am: Ditto.
   29499 	* mpf/Makefile.am: Ditto, and add DISTCLEANFILES.
   29500 	* mpn/Makefile.am: Shorten INCLUDES, amend some comments.
   29501 	* mpz/tests/Makefile.am: Use TESTS and $(top_builddir).
   29502 	* mpf/tests/Makefile.am: Ditto.
   29503 	* mpq/tests/Makefile.am: Ditto.
   29504 	* demos/Makefile.am: New file.
   29505 
   29506 	* mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in.
   29507 	* mpbsd/Makefile.in: Now generated from Makefile.am.
   29508 	* mpbsd/realloc.c: Removed, use mpz/realloc.c instead.
   29509 	* mpbsd/tests/Makefile.am: New file.
   29510 	* mpbsd/tests/Makefile.in: New file, generated from Makefile.am.
   29511 	* mpbsd/tests/allfuns.c: New file.
   29512 
   29513 	* gmp.texi (Top): Use @ifnottex, to help makeinfo --html.
   29514 	(Installing MP): Describe --enable-mpbsd and demo programs.
   29515 
   29516 	* tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs.
   29517 
   29518 	* tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la).
   29519 	(EXTRA_PROGRAMS): Not noinst_PROGRAMS.
   29520 	(INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER.
   29521 
   29522 2000-04-09  Torbjorn Granlund  <tege (a] swox.com>
   29523 
   29524 	* mpz/urandomm.c: Get type of count right.
   29525 	Simplify computation of nbits.
   29526 
   29527 2000-04-08  Torbjorn Granlund  <tege (a] swox.com>
   29528 
   29529 	* mpz/urandomb.c: Fix reallocation condition.
   29530 	Simplify size computation.
   29531 
   29532 2000-04-08  Linus Nordberg  <linus (a] swox.se>
   29533 
   29534 	* acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for
   29535 	HPUX.
   29536 	(GMP_CHECK_ASM_W32): Ditto.
   29537 	* aclocal.m4: Regenerate.
   29538 
   29539 	* mpn/Makefile.am: Use $(CCAS) for assembling.
   29540 	(.asm.obj): Add rule.
   29541 	* mpn/Makefile.in: Regenerate.
   29542 
   29543 	* gmp.texi (Miscellaneous Integer Functions): Fix typos.
   29544 
   29545 	* configure.in: Never pass `-h' to grep.
   29546 	(mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler.
   29547 	(hppa1.0*-*-*): New flag for cc.
   29548 	(hppa2.0*-*-*): Try to find 64-bit compiler.  Chose path, set
   29549 	CCAS.
   29550 	* configure: Regenerate.
   29551 
   29552 2000-04-08  Torbjorn Granlund  <tege (a] swox.com>
   29553 
   29554 	* mpz/bin_ui.c: Don't depend on ANSI C features.
   29555 	* mpz/bin_uiui.c: Likewise.
   29556 
   29557 	* Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*.
   29558 	(MPQ_OBJECTS): Add mpq/set_d.lo.
   29559 	(MPZ_OBJECTS): Add mpz/fits*.lo.
   29560 	* Makefile.in: Regenerate.
   29561 
   29562 	* mpz/cmpabs.c: New name for mpz/cmp_abs.c.
   29563 	* mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c.
   29564 	* mpz/Makefile.am: Corresponding changes.
   29565 	* mpz/Makefile.in: Regenerate.
   29566 	* gmp.h: mpz_cmp_abs* => mpz_cmpabs*.
   29567 
   29568 	* mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features.
   29569 
   29570 	* mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT.
   29571 
   29572 	* gmp.h (mpq_set_d): Declare correctly.
   29573 	(mpz_root): Use _PROTO.
   29574 	(mpz_remove): Use _PROTO.
   29575 	(mpf_pow_iu): Use _PROTO.
   29576 
   29577 	* mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change.
   29578 	* gmp.h (__MPN): Revert previous change.
   29579 
   29580 	* mpz/perfpow.c: De-ANSI-fy.  Add copyright notice.
   29581 
   29582 	* mpz/set_d.c: Misc cleanups.
   29583 
   29584 	* mpq/set_d: New file.
   29585 	* gmp.h: Declare mpq_set_d.
   29586 	* mpq/Makefile.am: List set_d.c.
   29587 	* mpq/Makefile.in: Regenerate.
   29588 
   29589 2000-04-07  Torbjorn Granlund  <tege (a] swox.com>
   29590 
   29591 	* mpz/fits_sint_p.c: New file.
   29592 	* mpz/fits_slong_p.c: New file.
   29593 	* mpz/fits_sshort_p.c: New file.
   29594 	* mpz/fits_uint_p.c: New file.
   29595 	* mpz/fits_ulong_p.c: New file.
   29596 	* mpz/fits_ushort_p.c: New file.
   29597 	* gmp.h: Declare mpz_fits_*.
   29598 	* mpz/Makefile.am: List fits_* files.
   29599 	* mpz/Makefile.in: Regenerate.
   29600 
   29601 2000-04-06  Kevin Ryde  <kevin (a] swox.se>
   29602 
   29603 	* gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4
   29604 	failure.
   29605 
   29606 	* mpn/x86/pentium/gmp-mparam.h: Tune thresholds.
   29607 	* mpn/x86/p6/gmp-mparam.h: Ditto.
   29608 	* mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME.
   29609 	* mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME.
   29610 
   29611 	* mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT.
   29612 	(mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD.
   29613 	(mpn_toom3_sqr_n): Eliminate second evaluate3.
   29614 
   29615 	* gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0.
   29616 	(tune_mul_threshold,tune_sqr_threshold): Conditionalize
   29617 	declarations on TUNE_PROGRAM_BUILD.
   29618 
   29619 	* mpn/generic/sqr_basecase.c: Add an assert.
   29620 
   29621 2000-04-05  Torbjorn Granlund  <tege (a] swox.com>
   29622 
   29623 	* gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but
   29624 	leave some commented out.
   29625 
   29626 	* gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize.
   29627 	(mpn_com_n): Optimize.
   29628 
   29629 	* gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency.
   29630 	* mpn/asm-defs.m4 (MPN_PREFIX): Likewise.
   29631 
   29632 	* gmp.h (GMP_ERROR_ALLOCATE): New errcode.
   29633 
   29634 	* gmp-impl.h (MPN_MUL_N_RECURSE): Delete.
   29635 	(MPN_SQR_RECURSE): Delete.
   29636 
   29637 	* gmp-impl.h (TARGET_REGISTER_STARVED): New define.
   29638 
   29639 	* gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN.
   29640 	(mpn_toom3_sqr_n): Likewise.
   29641 	(mpn_kara_mul_n): Likewise.
   29642 	(mpn_toom3_mul_n): Likewise.
   29643 	(mpn_reciprocal): Likewise.
   29644 
   29645 	* gmp-impl.h (__gmpn_mul_n): Remove declaration.
   29646 	(__gmpn_sqr): Likewise.
   29647 	* gmp.h (mpn_sqr_n): Declare/remap.
   29648 	* mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr.
   29649 
   29650 	* gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here...
   29651 	* gmp-impl.h: ...to here.
   29652 
   29653 2000-04-05  Linus Nordberg  <linus (a] swox.se>
   29654 
   29655 	* gmp.texi (Top): Add `Random Number Functions' to menu.
   29656 	(Introduction to MP): Fix typo.
   29657 	(MP Basics): Create menu for all sections.  Move `Random Number
   29658 	Functions' to its own chapter.  Add nodes for all sections.
   29659 	(Function Classes): Mention random generation functions under
   29660 	miscellaneous.
   29661 	(Miscellaneous Integer Functions): Update mpz_urandomb,
   29662 	mpz_urandomm.
   29663 	(Low-level Functions): Remove mpn_rawrandom.
   29664 	(Random State Initialization): Update.
   29665 
   29666 	* mpf/urandom.c (mpf_urandomb): Remove SIZE parameter.  Normalize
   29667 	result correctly.
   29668 
   29669 	* gmp.h (mpf_urandomb): Remove SIZE parameter.
   29670 
   29671 	* randraw.c (gmp_rand_getraw): Handle the case where (1) the LC
   29672 	scheme doesn't generate even limbs and (2) more than one LC
   29673 	invocation is necessary to produce the requested number of bits.
   29674 
   29675 2000-04-05  Torbjorn Granlund  <tege (a] swox.com>
   29676 
   29677 	* mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for
   29678 	any BITS_PER_MP_LIMB.
   29679 	(MP_LIMB_T_MAX): New.
   29680 	(mpn_divexact3_n): Remove.
   29681 	(interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n.
   29682 
   29683 2000-04-05  Kevin Ryde  <kevin (a] swox.se>
   29684 
   29685 	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test.
   29686 	(tune_mul_threshold,tune_sqr_threshold): Add declarations, used in
   29687 	development only.
   29688 
   29689 	* mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now.
   29690 
   29691 2000-04-04  Torbjorn Granlund  <tege (a] swox.com>
   29692 
   29693 	* gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default.
   29694 	(TOOM3_SQR_THRESHOLD): Provide default.
   29695 
   29696 	* mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley).
   29697 	* mpn/generic/mul.c: Rewrite (mostly by Robert Harley).
   29698 
   29699 	* configure.in (sparcv9 64-bit OS): Set extra_functions.
   29700 
   29701 2000-04-04  Linus Nordberg  <linus (a] swox.se>
   29702 
   29703 	* mpn/generic/rawrandom.c: Remove file and replace with randraw.c
   29704 	on top level.
   29705 	(mpn_rawrandom): Rename to gmp_rand_getraw.
   29706 
   29707 	* randraw.c: New file; essentially a copy of
   29708 	mpn/generic/rawrandom.c.
   29709 	(gmp_rand_getraw): New function (formerly known as mpn_rawrandom).
   29710 
   29711 	* mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom -->
   29712 	gmp_rand_getraw.
   29713 	* mpz/urandomm.c (mpz_urandomb): Ditto.
   29714 	* mpf/urandom.c (mpf_urandomb): Ditto.
   29715 
   29716 	* gmp.h (gmp_rand_getraw): Add function prototype.
   29717 	(mpn_rawrandom): Remove function prototype.
   29718 
   29719 	* Makefile.am (libgmp_la_SOURCES): Add randraw.c.
   29720 	* Makefile.in: Regenerate.
   29721 
   29722 	* configure.in (gmp_mpn_functions): Remove rawrandom.
   29723 	* configure: Regenerate.
   29724 
   29725 2000-04-04  Linus Nordberg  <linus (a] swox.se>
   29726 
   29727 	* gmp.h (GMP_ERROR enum): Remove comma after last enumeration
   29728 	since the AIX compiler (xlc) doesn't like that.
   29729 
   29730 	* randlc.c (gmp_rand_init_lc): Allocate enough space for seed to
   29731 	hold any upcoming seed.
   29732 	* randlc2x.c (gmp_rand_init_lc_2exp): Likewise.
   29733 
   29734 	* mpn/generic/rawrandom.c: Remove debugging code.
   29735 	(mpn_lc): Don't reallocate seed.
   29736 
   29737 	* mpz/urandomm.c (mpz_urandomm): Implement function.
   29738 
   29739 	* mpz/urandomb.c (mpz_urandomb): Fix typo in function definition.
   29740 
   29741 2000-04-04  Kevin Ryde  <kevin (a] swox.se>
   29742 
   29743 	* make.bat: Removed (no longer works, no longer supported).
   29744 	* mpn/msdos/asm-syntax.h: Removed (was used only by make.bat).
   29745 
   29746 2000-04-03  Torbjorn Granlund  <tege (a] swox.com>
   29747 
   29748 	* mpn/generic/brandom.c: New file, replacing random2.
   29749 
   29750 2000-04-02  Torbjorn Granlund  <tege (a] swox.com>
   29751 
   29752 	* mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions
   29753 	into their plain counterparts.
   29754 
   29755 	* mpn/sparc64/copyi.asm: Avoid executing ALIGN.
   29756 
   29757 	* mpn/sparc64/mul_1.asm: Handle overlap of rp/sp.
   29758 	* mpn/sparc64/addmul_1.asm: Likewise.
   29759 	* mpn/sparc64/submul_1.asm: Likewise.
   29760 
   29761 2000-04-01  Linus Nordberg  <linus (a] swox.se>
   29762 
   29763 	* gmp.h: Fix function prototypes for randomization functions.
   29764 	(__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove
   29765 	unused `bits'.
   29766 	(__gmp_rand_data_lc): Add `m2exp' as another way of representing
   29767 	the modulus.
   29768 	(__gmp_rand_state_struct): Remove unused `size'.
   29769 
   29770 	* rand.c (__gmp_rand_scheme): Use better multipliers.  Remove test
   29771 	schemes.  Replace `m' with `m2exp'.
   29772 	(gmp_rand_init): Change parameters and return type.  Use `m2exp'
   29773 	instead of `m'.  Set `gmp_errno' on error.  Disable BBS algorithm.
   29774 
   29775 	* randlc.c (gmp_rand_init_lc): Don't use malloc().  Change
   29776 	parameters.
   29777 
   29778 	* randclr.c (gmp_rand_clear): Don't use free().  Disable BBS
   29779 	algorithm.  Set `gmp_errno' on error.
   29780 
   29781 	* randlc2x.c (gmp_rand_init_lc_2exp): New function.
   29782 	* randsd.c (gmp_rand_seed): New function.
   29783 	* randsdui.c (gmp_rand_seed_ui): New function.
   29784 	* randlcui.c: Remove unused file.
   29785 
   29786 	* mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite.
   29787 	(mpn_lc): New static function.
   29788 
   29789 	* mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for
   29790 	determining size of ROP.
   29791 
   29792 	* mpf/urandom.c (mpf_urandomb): Add third parameter, nbits.  (Not
   29793 	used yet!)
   29794 	Change parameter order to mpn_rawrandom().
   29795 
   29796 	* Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c,
   29797 	randsd.c, randsdui.c.  Remove randui.c.
   29798 	(MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo.  Add urandomm.lo.
   29799 	* Makefile.in: Regenerate.
   29800 
   29801 	* mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c -->
   29802 	urandomb.c.  Add urandomm.c.
   29803 	* mpz/Makefile.in: Regenerate.
   29804 
   29805 	* tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc.
   29806 	Add gen.static.
   29807 	* tests/rand/Makefile.in: Regenerate.
   29808 
   29809 	* tests/rand/gen.c (main): Add mpz_urandomm.  Add command line options
   29810 	`-C', `-m', extend `-a'.  Use *mp*_*rand*() with new parameters.  Call
   29811 	gmp_rand_seed().
   29812 
   29813 2000-04-01  Kevin Ryde  <kevin (a] swox.se>
   29814 
   29815 	* acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux.
   29816 	* configure.in (CCAS): No CFLAGS, they're added when it's used.
   29817 	(CONFIG_SRCDIR): New define for config.m4.
   29818 	* mpn/sparc64/addmul_1.asm: Use it for an include().
   29819 	* mpn/sparc64/submul_1.asm: Ditto.
   29820 	* mpn/sparc64/mul_1.asm: Ditto.
   29821 
   29822 2000-03-31  Linus Nordberg  <linus (a] swox.se>
   29823 
   29824 	* mpz/urandom.c: Rename to...
   29825 	* mpz/urandomb.c: ...this.
   29826 
   29827 	* mpz/urandomb.c (mpz_urandomb): Change operand order in call to
   29828 	mpn_rawrandom().  Use ABSIZ() instead of SIZ() when checking size
   29829 	of ROP.
   29830 
   29831 	* mpz/urandomm.c: New file.
   29832 
   29833 2000-03-31  Kevin Ryde  <kevin (a] swox.se>
   29834 
   29835 	* acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code
   29836 	will be omitted.
   29837 
   29838 2000-03-30  Torbjorn Granlund  <tege (a] swox.com>
   29839 
   29840 	* mpn/sparc64/mul_1h.asm: New file.
   29841 	* mpn/sparc64/addmul_1h.asm: New file.
   29842 	* mpn/sparc64/submul_1h.asm: New file.
   29843 	* mpn/sparc64/mul_1.asm: Rewrite.
   29844 	* mpn/sparc64/addmul_1.asm: Rewrite.
   29845 	* mpn/sparc64/submul_1.asm: Rewrite.
   29846 
   29847 2000-03-28  Torbjorn Granlund  <tege (a] swox.com>
   29848 
   29849 	* mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction.
   29850 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   29851 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   29852 
   29853 2000-03-25  Kevin Ryde  <kevin (a] swox.se>
   29854 
   29855 	* mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom,
   29856 	fontify more keywords, turn into a standalone mode.
   29857 
   29858 	* stamp-vti: New file, generated together with version.texi.
   29859 
   29860 	* acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros.
   29861 	* configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION.
   29862 
   29863 2000-03-24  Kevin Ryde  <kevin (a] swox.se>
   29864 
   29865 	* INSTALL: Updates for new configure system.
   29866 
   29867 	* configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu
   29868 	and -march.
   29869 
   29870 2000-03-23  Torbjorn Granlund  <tege (a] swox.com>
   29871 
   29872 	* demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs
   29873 	for ROOT.
   29874 
   29875 2000-03-23  Kevin Ryde  <kevin (a] swox.se>
   29876 
   29877 	* config.guess (i?86:*:*:*): Use uname -m if detection program fails.
   29878 
   29879 	* mpn/x86/README: Remove remarks on the now implemented MMX shifts.
   29880 	* mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1.
   29881 
   29882 	* gmp.texi (Installing MP): Corrections to target CPUs.
   29883 
   29884 	* version.c: Use VERSION from config.h, add copyright comment,
   29885 	restore "const" somehow lost.
   29886 
   29887 	* configure.in (a29k*-*-*): Fix directory name.
   29888 
   29889 2000-03-22  Torbjorn Granlund  <tege (a] swox.com>
   29890 
   29891 	* demos/pexpr.c (op_t): Add ROOT.
   29892 	(fns): Add ROOT.
   29893 	(mpz_eval_expr): Add ROOT.
   29894 
   29895 	* mpz/root.c: Handle roots of negative numbers.
   29896 	Fix other border cases.
   29897 	Fix rare memory leakage.
   29898 
   29899 	* errno.c: New file.
   29900 
   29901 2000-03-21  Torbjorn Granlund  <tege (a] swox.com>
   29902 
   29903 	* gmp.h (error number enum): New anonymous enum.
   29904 	(gmp_errno): New.
   29905 
   29906 	* gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0.
   29907 
   29908 2000-03-20  Torbjorn Granlund  <tege (a] swox.com>
   29909 
   29910 	* mpn/alpha/unicos.m4 (FLOAT64): New define.
   29911 	* mpn/alpha/default.m4 (FLOAT64): New define.
   29912 	* mpn/alpha/invert_limb.asm (C36): Use FLOAT64.
   29913 
   29914 2000-03-21  Kevin Ryde  <kevin (a] swox.se>
   29915 
   29916 	* mpn/x86/k6/diveby3.asm: Tiny speedup.
   29917 
   29918 	* acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro.
   29919 	* configure.in: Use it, set WANT_SHLDL_CL in config.m4.
   29920 	* mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using
   29921 	WANT_SHLDL_CL.
   29922 	* mpn/x86/k6/mmx/lshift.asm: Use shldl macro.
   29923 	* mpn/x86/k7/mmx/lshift.asm: Ditto.
   29924 	* mpn/x86/pentium/mmx/lshift.asm: Ditto.
   29925 	* mpn/x86/k6/mmx/rshift.asm: Use shrdl macro.
   29926 	* mpn/x86/k7/mmx/rshift.asm: Ditto.
   29927 	* mpn/x86/pentium/mmx/rshift.asm: Ditto.
   29928 	* mpn/x86/README.family: Add a note about this.
   29929 
   29930 2000-03-20  Linus Nordberg  <linus (a] swox.se>
   29931 
   29932 	* mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0
   29933 	correctly.
   29934 
   29935 	* configure.in: Fix detection of alpha flavour.
   29936 	Set compiler options for `sparcv8'.
   29937 	* configure: Regenerate.
   29938 
   29939 	* rand.c (__gmp_rand_scheme): Clean up some.  Use slightly better
   29940 	multipliers.
   29941 
   29942 	* configure.in (AC_OUTPUT): Add tests/Makefile and
   29943 	tests/rand/Makefile.
   29944 
   29945 	* acinclude.m4 (AC_CANONICAL_BUILD): Define to
   29946 	`_AC_CANONICAL_BUILD' to deal with incompatibilities between
   29947 	Autoconf and Libtool.
   29948 	(AC_CHECK_TOOL_PREFIX): Likewise.
   29949 
   29950 	* Makefile.am (EXTRA_DIST): Add directory `tests'.
   29951 
   29952 	* mkinstalldirs: Update (Automake 2000-03-17).
   29953 	* ltconfig: Update (Libtool 2000-03-17).
   29954 	* ltmain.sh: Ditto.
   29955 
   29956 	* configure: Regenerate with new autoconf/-make/libtool suite.
   29957 	* aclocal.m4: Ditto.
   29958 	* config.in: Ditto.
   29959 	* all Makefile.in's: Ditto.
   29960 
   29961 2000-03-20  Torbjorn Granlund  <tege (a] swox.com>
   29962 
   29963 	* demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'.
   29964 
   29965 	* mpn/alpha/unicos.m4 (cvttqc): New define.
   29966 	* mpn/alpha/invert_limb.asm: Use new define for cvttqc.
   29967 
   29968 2000-03-19  Kevin Ryde  <kevin (a] swox.se>
   29969 
   29970 	* mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case.
   29971 
   29972 	* gmp.texi: Use @include version.texi.
   29973 	Use @email and @uref.
   29974 	(Installing MP): Rewrite for new configure.
   29975 	(Low-level Functions): Add mpn_divexact_by3.
   29976 
   29977 	* configure.in (--enable-alloca): New option.
   29978 	* acconfig.h (USE_STACK_ALLOC): For --disable-alloca.
   29979 
   29980 2000-03-18  Kent Boortz  <kent (a] swox.com>
   29981 
   29982 	* macos: New directory with macos port files.
   29983 
   29984 2000-03-17  Torbjorn Granlund  <tege (a] swox.com>
   29985 
   29986 	* gmp-impl.h (union ieee_double_extract): Check _CRAYMPP.
   29987 
   29988 	* mpn/asm-defs.m4 (invert_normalized_limb): Define.
   29989 
   29990 	* mpn/alpha: Translate `.s' files to `.asm'.
   29991 
   29992 	* configure: Regenerate.
   29993 
   29994 	* mpn/alpha/invert_limb.asm: Replace dash in file name with underscore.
   29995 	* configure.in: Corresponding change.
   29996 
   29997 	* configure.in: Assign special "path" for alphaev6.
   29998 
   29999 	* mpn/alpha/unicos.m4: New file.
   30000 	* configure.in (alpha*-cray-unicos*): [This part of the change
   30001 	commited 2000-03-13 by linus]
   30002 	* mpn/alpha/default.m4: New file.
   30003 	* configure.in (alpha*-*-*): Use it.
   30004 
   30005 2000-03-17  Kevin Ryde  <kevin (a] swox.se>
   30006 
   30007 	* mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for
   30008 	shift-by-1 case, significant speedup.
   30009 	* mpn/x86/pentium/README: Add shift-by-1 speed.
   30010 
   30011 2000-03-16  Torbjorn Granlund  <tege (a] swox.com>
   30012 
   30013 	* config.guess: Handle Cray T3D/E.
   30014 
   30015 2000-03-15  Kevin Ryde  <kevin (a] swox.se>
   30016 
   30017 	* mpn/generic/diveby3.c: New file.
   30018 	* mpn/x86/diveby3.asm: New file.
   30019 	* mpn/x86/k6/diveby3.asm: New file.
   30020 	* gmp.h (mpn_divexact_by3): Prototype and define.
   30021 	* mpn/asm-defs.m4: define_mpn(divexact_by3).
   30022 	* configure.in (gmp_mpn_functions): Add diveby3.
   30023 
   30024 	* mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes.
   30025 
   30026 	* configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)).
   30027 	* gmp-impl.h (ASSERT): Use them.
   30028 
   30029 	* mpn/x86/k7/mmx/lshift.asm: New file.
   30030 	* mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value
   30031 	handling, add some pictures.
   30032 
   30033 2000-03-14  Torbjorn Granlund  <tege (a] swox.com>
   30034 
   30035 	* mpn/sparc32/v8/mul_1.asm: Make PIC actually work.
   30036 	* mpn/sparc32/v8/addmul_1.asm: Likewise.
   30037 
   30038 	* mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if.
   30039 	* mpn/sparc32/v8/addmul_1.asm: Likewise.
   30040 
   30041 	* mpn/asm-defs.m4 (C): New define for comments.
   30042 	* mpn/sparc32: Start comments with `C'.
   30043 
   30044 	* config.guess: Remove `SunOS 6' handling.
   30045 	Recognize sun4m and sun4d architectures under old SunOS.
   30046 
   30047 2000-03-14  Linus Nordberg  <linus (a] swox.se>
   30048 
   30049 	* configure.in (gmp_srclinks): Set to list of links created by
   30050 	configure.
   30051 	* configure: Regenerate.
   30052 
   30053 	* Makefile.am (libgmp_la_LDFLAGS): Set version info.
   30054 	(DISTCLEANFILES): Include @gmp_srclinks@.
   30055 	* Makefile.in: Regenerate.
   30056 
   30057 2000-03-13  Linus Nordberg  <linus (a] swox.se>
   30058 
   30059 	* configure.in: Remove some changequote's by quoting the strings
   30060 	containing `[]'.
   30061 	Add support for `alpha*-cray-unicos*'.
   30062 	AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS.
   30063 	Conditionalize the assembler syntax checks.
   30064 	* configure: Regenerate.
   30065 	* config.in: Regenerate.
   30066 
   30067 	* acinclude.m4 (GMP_PROG_CCAS): Remove macro.
   30068 	* aclocal.m4: Regenerate.
   30069 
   30070 2000-03-13  Kevin Ryde  <kevin (a] swox.se>
   30071 
   30072 	* mpn/x86/p6/README: New file.
   30073 
   30074 	* mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster.
   30075 
   30076 	* mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and
   30077 	handling.
   30078 
   30079 	* configure.in: Separate mmx directories for each x86 flavour.
   30080 	* configure: Regenerate.
   30081 
   30082 2000-03-12  Kevin Ryde  <kevin (a] swox.se>
   30083 
   30084 	* mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from
   30085 	config.m4 so as to pad with nops not zeros on old gas.
   30086 
   30087 	* mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias
   30088 	for emms now).
   30089 	* mpn/x86/k7/mmx/copyi.asm: Ditto.
   30090 	* mpn/x86/k7/mmx/rshift.asm: Ditto.
   30091 	* mpn/x86/x86-defs.m4: Amend comments.
   30092 
   30093 	* mpn/x86/mod_1.asm: Add comments on speeds.
   30094 
   30095 	* mpn/x86/pentium/mmx/lshift.asm: New file.
   30096 	* mpn/x86/pentium/mmx/rshift.asm: New file.
   30097 	* mpn/x86/pentium/README: Add speeds of various routines.
   30098 
   30099 2000-03-10  Linus Nordberg  <linus (a] swox.se>
   30100 
   30101 	* configure.in: Reorganize.
   30102 	Use AC_CHECK_TOOL to find `ar'.
   30103 	Add post-includes `regmap.m4' and `aix.m4' for AIX targets.
   30104 	asm-syntax.h is not needed for PPC or sparc anymore.
   30105 	(powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64
   30106 	-qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc.  Pass `-X
   30107 	64' to `ar' and `nm'.
   30108 	(pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if
   30109 	assembler is not MMX capable.
   30110 	(pentium[23]): Likewise.
   30111 	(athlon): Likewise.
   30112 	(k6*): Likewise.
   30113 	* configure: Regenerate.
   30114 
   30115 	* acinclude.m4 (GMP_PROG_CC_WORKS): New macro.
   30116 	(GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of
   30117 	AC_TRY_COMPILER.  Make sure that the *first* working 32-bit
   30118 	compiler is used if no 64-bit compiler is found.
   30119 	(GMP_CHECK_ASM_MMX): New macro.
   30120 	* aclocal.m4: Regenerate.
   30121 
   30122 	* Makefile.in: Regenerate.  (CC_TEST removed.)
   30123 	* mpf/Makefile.in: Likewise.
   30124 	* mpn/Makefile.in: Likewise.
   30125 	* mpq/Makefile.in: Likewise.
   30126 	* mpz/Makefile.in: Likewise.
   30127 	* mpf/tests/Makefile.in: Likewise.
   30128 	* mpq/tests/Makefile.in: Likewise.
   30129 	* mpz/tests/Makefile.in: Likewise.
   30130 
   30131 	* acconfig.h (_LONG_LONG_LIMB): Add.
   30132 
   30133 	* gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined.
   30134 
   30135 2000-03-09  Kevin Ryde  <kevin (a] swox.se>
   30136 
   30137 	* mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI.
   30138 
   30139 	* mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl.
   30140 	* mpn/x86/k7/mmx/copyi.asm: Ditto.
   30141 	* mpn/x86/k7/mul_basecase.asm: Ditto.
   30142 
   30143 2000-03-07  Torbjorn Granlund  <tege (a] swox.com>
   30144 
   30145 	* config.guess: Better recognize POWER/PowerPC processor type.
   30146 
   30147 2000-03-07  Kevin Ryde  <kevin (a] swox.se>
   30148 
   30149 	* mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h.
   30150 
   30151 	* mpn/asm-defs.m4: Add comments about SysV m4.
   30152 	(m4_log2): Don't use <<.
   30153 	(m4_lshift,m4_rshift): New macros.
   30154 
   30155 2000-03-06  Torbjorn Granlund  <tege (a] swox.com>
   30156 
   30157 	* mpn/powerpc32/regmap.m4: Map cr0 => `0', etc.
   30158 
   30159 2000-03-06  Kevin Ryde  <kevin (a] swox.se>
   30160 
   30161 	* mpn/tests/ref.c (refmpn_divexact_by3): New function.
   30162 	* mpn/tests/ref.h: Prototype.
   30163 
   30164 	* acconfig.h (WANT_ASSERT): New define.
   30165 	* configure.in (--enable-assert): Turn on WANT_ASSERT.
   30166 	* assert.c: New file.
   30167 	* Makefile.am: Add to build.
   30168 	* gmp-impl.h (ASSERT): New macro.
   30169 	(ASSERT_NOCARRY) Renamed from assert_nocarry.
   30170 	(MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS.
   30171 	* mpn/tests/ref.c: Use ASSERT.
   30172 	* mpf/get_str.c: Use ASSERT_ALWAYS.
   30173 	* mpf/set_str.c: Remove old assert macro.
   30174 
   30175 	* mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro.
   30176 	* mpn/x86/p6/aorsmul_1.asm: Use cmov.
   30177 
   30178 	* mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code
   30179 	change, testb was still getting generated.
   30180 	* mpn/x86/rshift.S: Ditto.
   30181 
   30182 2000-03-03  Torbjorn Granlund  <tege (a] swox.com>
   30183 
   30184 	* longlong.h: Add IA-64 support.
   30185 
   30186 	* mpn/powerpc32: Misc cleanups.
   30187 	* mpn/powerpc32/aix.m4: New file (mainly by Linus).
   30188 	* mpn/powerpc64/aix.m4: New file (mainly by Linus).
   30189 	* mpn/powerpc64: Translate `.S' files to `.asm'.
   30190 
   30191 	* configure.in: Fix tyops.
   30192 	* configure: Regenerate.
   30193 
   30194 2000-03-02  Torbjorn Granlund  <tege (a] swox.com>
   30195 
   30196 	* mpn/powerpc32/regmap.m4: New file.
   30197 	* mpn/powerpc32: Translate `.S' files to `.asm'.
   30198 	* configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets
   30199 	except some weird ones.
   30200 
   30201 2000-03-03  Kevin Ryde  <kevin (a] swox.se>
   30202 
   30203 	* mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in
   30204 	filladapt.
   30205 
   30206 	* mpn/x86/pentium/sqr_basecase.asm: New file.
   30207 	* mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update.
   30208 
   30209 	* configure.in: Add --enable-assert, enable k6 logops functions.
   30210 
   30211 	* mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as.
   30212 	* mpn/x86/k6/mmx/copyd.asm: Ditto.
   30213 	* mpn/x86/README.family: Add a note on this.
   30214 
   30215 2000-03-02  Kevin Ryde  <kevin (a] swox.se>
   30216 
   30217 	* mpn/x86/k6/aors_n.asm: Don't use stosl.
   30218 	* mpn/x86/copyi.asm: Use cld to clear direction flag.
   30219 	* mpn/x86/divrem_1.asm: Ditto.
   30220 	* mpn/x86/README.family: Add a note on this.
   30221 
   30222 	* mpn/x86/k6/mmx/copyi.asm: Rewrite.
   30223 	* mpn/x86/k6/mmx/copyd.asm: New file.
   30224 	* mpn/x86/k6/README: Update, and small amendments.
   30225 
   30226 	* mpn/x86/x86-defs.m4 (Zdisp): New macro.
   30227 	* mpn/asm-defs.m4 (m4_stringequal_p): New macro.
   30228 
   30229 	* mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements.
   30230 	* mpn/x86/k6/aorsmul_1.asm: Ditto.
   30231 	* mpn/x86/k6/mul_1.asm: Ditto.
   30232 	* mpn/x86/k6/mul_basecase.asm: Ditto.
   30233 	* mpn/x86/k7/aors_n.asm: Ditto.
   30234 	* mpn/x86/k7/aorsmul_1.asm: Ditto.
   30235 	* mpn/x86/k7/mul_1.asm: Ditto.
   30236 	* mpn/x86/k7/mul_basecase.asm: Ditto.
   30237 	* mpn/x86/README.family: Add a note on this.
   30238 
   30239 2000-02-27  Kevin Ryde  <kevin (a] swox.se>
   30240 
   30241 	* mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc
   30242 	2.7.2.3 i386 register handling bug.
   30243 
   30244 	* mpn/x86/k6/aors_n.asm: Rewrite.
   30245 	* mpn/x86/k6/mmx/lshift.asm: Rewrite.
   30246 	* mpn/x86/k6/mmx/rshift.asm: Rewrite.
   30247 	* mpn/x86/k6/README: Update.
   30248 
   30249 	* mpn/x86/k7/mmx/copyd.asm: Support size==0.
   30250 	* mpn/x86/k7/mmx/copyi.asm: Ditto.
   30251 	* mpn/x86/k6/mmx/copyi.asm: Ditto.
   30252 	* gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and
   30253 	MPN_COPY_DECR.
   30254 	* configure.in: Enable x86 copyi, copyd; add k6 com_n.
   30255 
   30256 2000-02-25  Torbjorn Granlund  <tege (a] swox.com>
   30257 
   30258 	* demos/pexpr.c (power): Move factorial handing code from `factor'
   30259 	to `power'.
   30260 
   30261 	* demos/factorize.c (factor_using_pollard_rho): Move resetting of `c'
   30262 	to before checking for a non-zero gcd.
   30263 
   30264 2000-02-25  Kevin Ryde  <kevin (a] swox.se>
   30265 
   30266 	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus.
   30267 	* mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE.
   30268 	* mpn/x86/k6/aorsmul_1.asm: Ditto.
   30269 	* mpn/x86/k7/aors_n.asm: Ditto.
   30270 	* mpn/x86/k7/aorsmul_1.asm: Ditto.
   30271 	* mpn/x86/p6/aorsmul_1.asm: Ditto.
   30272 
   30273 	* mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0.
   30274 
   30275 	* gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n,
   30276 	mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here
   30277 	from gmp.h.  Use HAVE_NATIVE_mpn_* to make these functions or
   30278 	inlines.
   30279 
   30280 	* gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h.
   30281 	* gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available.
   30282 	* gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available.
   30283 
   30284 	* mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory.
   30285 	* mpn/x86/k6/mmx/copyi.asm: Ditto.
   30286 	* mpn/x86/k6/mmx/lshift.asm: Ditto.
   30287 	* mpn/x86/k6/mmx/rshift.asm: Ditto.
   30288 	* mpn/x86/k7/mmx/rshift.asm: Ditto.
   30289 	* mpn/x86/k6/mmx/logops_n.asm: New file.
   30290 	* configure.in (k6*-*-*): Add logops_n.asm.
   30291 	* mpn/x86/k6/README: Update.
   30292 
   30293 	* mpn/x86/k7/mmx/copyi.asm: New file.
   30294 	* mpn/x86/k7/mmx/copyd.asm: New file.
   30295 	* mpn/x86/k7/README: Update.
   30296 
   30297 2000-02-24  Kevin Ryde  <kevin (a] swox.se>
   30298 
   30299 	* mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available.
   30300 	* mpn/x86/x86-defs.m4 (FRAME_popl): New macro.
   30301 
   30302 	* Makefile.am: Add info_TEXINFOS = gmp.texi
   30303 
   30304 	* mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0,
   30305 	conditionalize loop versus decl/jnz.
   30306 	* mpn/x86/mod_1.asm: Ditto.
   30307 	* mpn/x86/divmod_1.asm: Removed.
   30308 	* gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed.
   30309 	* mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0.
   30310 
   30311 	* mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement
   30312 	expression problem.
   30313 	* mpn/x86/k6/aorsmul_1.asm: Ditto.
   30314 	* mpn/x86/k6/mul_1.asm: Ditto.
   30315 	* mpn/x86/k6/mul_basecase.asm: Ditto
   30316 	* mpn/x86/k7/aors_n.asm: Ditto.
   30317 	* mpn/x86/k7/aorsmul_1.asm: Ditto.
   30318 	* mpn/x86/k7/mul_1.asm: Ditto.
   30319 	* mpn/x86/k7/mul_basecase.asm: Ditto.
   30320 	* mpn/x86/k7/rshift.asm: Ditto.
   30321 	* mpn/x86/p6/aorsmul_1.asm: Ditto.
   30322 	* mpn/x86/README.family: Describe problem.
   30323 
   30324 2000-02-24  Linus Nordberg  <linus (a] swox.se>
   30325 
   30326 	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to
   30327 	testcase to avoid nm failure.  Try nm before piping to grep.
   30328 
   30329 	* acconfig.h: Undef HAVE_NATIVE_func for every mpn function found
   30330 	in gmp.h.
   30331 
   30332 	* configure.in: Invoke AC_CONFIG_HEADERS.
   30333 	Don't invoke AM_CONFIG_HEADER; it makes autoconf confused.
   30334 	Dig out entry points declared in assembly code and AC_DEFINE proper
   30335 	HAVE_NATIVE_func.
   30336 
   30337 	* mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro.
   30338 
   30339 	* mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE.
   30340 	* mpn/x86/k6/aors_n.asm: Likewise.
   30341 
   30342 	* Makefile.am (EXTRA_DIST): Add config.in; needed when we don't
   30343 	use AM_CONFIG_HEADER in configure.in.
   30344 
   30345 	* mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and
   30346 	gmp-mparam.h.
   30347 	* mpf/Makefile.am: Likewise.
   30348 	* mpq/Makefile.am: Likewise.
   30349 	* mpz/Makefile.am: Likewise.
   30350 
   30351 	* mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and
   30352 	gmp-mparam.h.
   30353 	* mpq/tests/Makefile.am: Likewise.
   30354 	* mpz/tests/Makefile.am: Likewise.
   30355 
   30356 	* configure: Regenerate.
   30357 	* aclocal.m4: Regenerate.
   30358 	* config.in: Regenerate.
   30359 	* Makefile.in: Regenerate.
   30360 	* mpf/Makefile.in: Regenerate.
   30361 	* mpn/Makefile.in: Regenerate.
   30362 	* mpq/Makefile.in: Regenerate.
   30363 	* mpz/Makefile.in: Regenerate.
   30364 	* mpf/tests/Makefile.in: Regenerate.
   30365 	* mpq/tests/Makefile.in: Regenerate.
   30366 	* mpz/tests/Makefile.in: Regenerate.
   30367 
   30368 2000-02-23  Kevin Ryde  <kevin (a] swox.se>
   30369 
   30370 	* mpn/x86/addmul_1.S: Amend comments, this code no longer used by
   30371 	PentiumPro.
   30372 	* mpn/x86/submul_1.S: Ditto.
   30373 
   30374 	* mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed.
   30375 
   30376 	* mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and
   30377 	.size for ELF.  Rename #define size to n to avoid .size.
   30378 	* mpn/x86/lshift.S: Ditto.
   30379 	* mpn/x86/mul_1.S: Ditto.
   30380 	* mpn/x86/mul_basecase.S: Ditto.
   30381 	* mpn/x86/rshift.S: Ditto.
   30382 	* mpn/x86/submul_1.S: Ditto.
   30383 	* mpn/x86/udiv.S: Ditto.
   30384 	* mpn/x86/umul.S: Ditto.
   30385 	* mpn/x86/pentium/add_n.S: Ditto.
   30386 	* mpn/x86/pentium/addmul_1.S: Ditto.
   30387 	* mpn/x86/pentium/lshift.S: Ditto.
   30388 	* mpn/x86/pentium/mul_1.S: Ditto.
   30389 	* mpn/x86/pentium/mul_basecase.S: Ditto.
   30390 	* mpn/x86/pentium/rshift.S: Ditto.
   30391 	* mpn/x86/pentium/sub_n.S: Ditto.
   30392 	* mpn/x86/pentium/submul_1.S: Ditto.
   30393 
   30394 2000-02-22  Linus Nordberg  <linus (a] swox.se>
   30395 
   30396 	* acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for
   30397 	post-defines.
   30398 	(GMP_FINISH): Ditto.
   30399 	(GMP_DEFINE): Add third optional argument specifying location in
   30400 	outfile.
   30401 	(GMP_DEFINE_RAW): New macro.
   30402 	* aclocal.m4: Regenerate.
   30403 
   30404 	* configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using
   30405 	GMP_DEFINE_RAW.
   30406 	* configure: Regenerate.
   30407 
   30408 	* mpz/tests/Makefile.am: New test t-root.
   30409 	* mpz/tests/Makefile.in: Regenerate.
   30410 
   30411 2000-02-22  Torbjorn Granlund  <tege (a] swox.com>
   30412 
   30413 	* mpz/root.c: Complete rewrite; still primitive, but at least correct.
   30414 	* mpz/tests/t-root.c: New test.
   30415 
   30416 2000-02-22  Kevin Ryde  <kevin (a] swox.se>
   30417 
   30418 	* mpn/x86/k7/mul_basecase.asm: New file.
   30419 	* mpn/x86/k7/README: Add mpn_mul_basecase speed.
   30420 	* mpn/x86/k7/gmp-mparam.h: New file.
   30421 
   30422 	* mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros.
   30423 	* mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro.
   30424 
   30425 	* mpn/x86/k6/aorsmul_1.asm: New file.
   30426 	* mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version).
   30427 	* mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version).
   30428 
   30429 	* mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and
   30430 	OPERATION_submul_1.
   30431 	* mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n.
   30432 	* configure.in: Declare multi-function files for k6 and p6.
   30433 
   30434 	* configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4.
   30435 	* mpn/asm-defs.m4 (define_not_for_expansion): New macro.
   30436 
   30437 	* mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from
   30438 	mpn/generic/divrem_1.c.
   30439 	* mpn/generic/divrem_1.c: Ditto.
   30440 	* configure.in (gmp_mpn_functions): Ditto.
   30441 
   30442 2000-02-21  Torbjorn Granlund  <tege (a] swox.com>
   30443 
   30444 	* gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly
   30445 	written.
   30446 
   30447 2000-02-21  Linus Nordberg  <linus (a] swox.se>
   30448 
   30449 	* configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4.
   30450 	* configure: Regenerate.
   30451 
   30452 2000-02-21  Linus Nordberg  <linus (a] swox.se>
   30453 
   30454 	* mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL -->
   30455 	OPERATION_addmul_1.  Change OPERATION_SUBMUL -->
   30456 	OPERATION_submul_1.
   30457 
   30458 	* mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n.
   30459 	Change OPERATION_SUB --> OPERATION_sub_n.
   30460 
   30461 	* mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors.
   30462 	* mpn/Makefile.in: Regenerate.
   30463 
   30464 	* configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn.  Link
   30465 	multi-function files to mpn/<function>.asm and remove function
   30466 	name from `gmp_mpn_functions'.
   30467 	* configure: Regenerate.
   30468 
   30469 	* acinclude.m4 (GMP_FINISH): Tell user what we're doing.
   30470 	* aclocal.m4: Regenerate.
   30471 
   30472 2000-02-21  Kevin Ryde  <kevin (a] swox.se>
   30473 
   30474 	* gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and
   30475 	__gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes.
   30476 	* mpn/x86/mul_basecase.S: Ditto.
   30477 	* mpn/x86/pentium/mul_basecase.S: Ditto.
   30478 
   30479 	* configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too.
   30480 
   30481 2000-02-20  Kevin Ryde  <kevin (a] swox.se>
   30482 
   30483 	* acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus.
   30484 	* mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a
   30485 	string, change by Linus.
   30486 	* mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string.
   30487 
   30488 	* mpn/x86/k6/gmp-mparam.h: New file.
   30489 	* mpn/asm-defs.m4 (m4_warning): New macro.
   30490 
   30491 	* mpn/x86/README: Amendments per new code and directories.
   30492 	* mpn/x86/README.family: New file.
   30493 	* mpn/x86/k6/README: New file.
   30494 	* mpn/x86/k7/README: New file.
   30495 
   30496 	* mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to
   30497 	mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase.
   30498 	* mpn/generic/mul_basecase.c: Ditto.
   30499 	* mpn/generic/sqr_basecase.c: Ditto.
   30500 	* mpn/generic/mul.c: Ditto.
   30501 
   30502 2000-02-19  Linus Nordberg  <linus (a] swox.se>
   30503 
   30504 	* configure.in: Don't try to symlink more than one multi-func
   30505 	file.
   30506 	* configure: Regenerate.
   30507 
   30508 2000-02-18  Linus Nordberg  <linus (a] swox.se>
   30509 
   30510 	* acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE
   30511 	`GSYM_PREFIX'.  Run ACTIONs even when value is found in cache.
   30512 	(GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'.  Run ACTIONs even
   30513 	when value is found in cache.
   30514 	* aclocal.m4: Regenerate.
   30515 
   30516 	* configure.in: Don't define GSYM_PREFIX or ALIGN.
   30517 	Add mechanism for multi-function files.
   30518 	* configure: Regenerate.
   30519 
   30520 2000-02-18  Kevin Ryde  <kevin (a] swox.se>
   30521 
   30522 	* configure.in (gmp_m4postinc): Enable x86-defs.m4.
   30523 	* mpn/x86/k7/mul_1.asm: Fix include.
   30524 	* mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version).
   30525 	* mpn/x86/k6/mul_basecase.asm: New file.
   30526 	* mpn/x86/k6/sqr_basecase.asm: New file.
   30527 	* mpn/x86/k6/com_n.asm: New file.
   30528 	* mpn/x86/k6/copyi.asm: New file.
   30529 	* gmp.texi (Low-level Functions): Clarify mpn overlaps permitted.
   30530 	* gmp-impl.h (MPN_OVERLAP_P): New macro.
   30531 	* gmp-impl.h (assert_nocarry): New macro.
   30532 	* mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c.
   30533 	* mpn/tests/ref.h: New file.
   30534 
   30535 2000-02-17  Linus Nordberg  <linus (a] swox.se>
   30536 
   30537 	* Makefile.am (dist-hook): Don't include any emacs backup files
   30538 	(*.~*) in dist.
   30539 	* Makefile.in: Regenerate.
   30540 
   30541 2000-02-17  Torbjorn Granlund  <tege (a] swox.com>
   30542 
   30543 	* mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of
   30544 	getpc function.
   30545 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   30546 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   30547 
   30548 2000-02-17  Kevin Ryde  <kevin (a] swox.se>
   30549 
   30550 	* gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n,
   30551 	mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n,
   30552 	mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase,
   30553 	mpn_xor_n, mpn_xorn_n.
   30554 
   30555 	* mpn/asm-defs.m4: Many additions making up initial version.
   30556 	* mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX').
   30557 	* mpn/x86/x86-defs.m4: New file.
   30558 	* mpn/x86/k6/aors_n.asm: New file.
   30559 	* mpn/x86/k6/divmod_1.asm: New file.
   30560 	* mpn/x86/k6/divrem_1.asm: New file.
   30561 	* mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version).
   30562 	* mpn/x86/k6/lshift.asm: New file.
   30563 	* mpn/x86/k6/mod_1.asm: New file.
   30564 	* mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version).
   30565 	* mpn/x86/k6/mul_1.asm: New file.
   30566 	* mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version).
   30567 	* mpn/x86/k6/rshift.asm: New file.
   30568 	* mpn/x86/k7/aors_n.asm: New file.
   30569 	* mpn/x86/k7/aorsmul_1.asm: New file.
   30570 	* mpn/x86/k7/mul_1.asm: New file.
   30571 	* mpn/x86/k7/rshift.asm: New file.
   30572 	* mpn/x86/p6/aorsmul_1.asm: New file.
   30573 	* mpn/x86/copyi.asm: New file.
   30574 	* mpn/x86/copyd.asm: New file.
   30575 	* mpn/lisp/gmpasm-mode.el: New file.
   30576 
   30577 2000-02-16  Torbjorn Granlund  <tege (a] swox.com>
   30578 
   30579 	* mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC.
   30580 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   30581 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   30582 	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
   30583 	* mpn/sparc32/udiv_fp.asm: Likewise.
   30584 
   30585 2000-02-16  Linus Nordberg  <linus (a] swox.se>
   30586 
   30587 	* configure.in: Add mechanism for including target specific
   30588 	m4-files in config.m4.
   30589 	* configure: Regenerate.
   30590 
   30591 	* acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except
   30592 	labels) with a tab character.  HP-UX demands it.
   30593 	(GMP_CHECK_ASM_SIZE): Ditto.
   30594 	(GMP_CHECK_ASM_LSYM_PREFIX): Ditto.
   30595 	(GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX.
   30596 	(GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'.
   30597 	* aclocal.m4: Regenerate.
   30598 
   30599 2000-02-16  Linus Nordberg  <linus (a] swox.se>
   30600 
   30601 	* acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as
   30602 	the prefix only, no argument.
   30603 	* aclocal.m4: Regenerate.
   30604 	* configure: Regenerate.
   30605 
   30606 	* mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX.
   30607 
   30608 2000-02-15  Linus Nordberg  <linus (a] swox.se>
   30609 
   30610 	* acinclude.m4: Prefix all temporary shell variables with
   30611 	`gmp_tmp_'.
   30612 	(GMP_PROG_CC_FIND): Use defaults if no arguments are passed.
   30613 	Quote use of arguments.
   30614 	(GMP_PROG_CCAS): New macro.
   30615 	(GMP_INIT): New macro.
   30616 	(GMP_FINISH): New macro.
   30617 	(GMP_INCLUDE): New macro.
   30618 	(GMP_SINCLUDE): New macro.
   30619 	(GMP_DEFINE): New macro.
   30620 	(GMP_CHECK_ASM_LABEL_SUFFIX): New macro.
   30621 	(GMP_CHECK_ASM_TEXT): New macro.
   30622 	(GMP_CHECK_ASM_DATA): New macro.
   30623 	(GMP_CHECK_ASM_GLOBL): New macro.
   30624 	(GMP_CHECK_ASM_TYPE): New macro.
   30625 	(GMP_CHECK_ASM_SIZE): New macro.
   30626 	(GMP_CHECK_ASM_LSYM_PREFIX): New macro.
   30627 	(GMP_CHECK_ASM_W32): New macro.
   30628 	* aclocal.m4: Regenerate.
   30629 
   30630 	* configure.in: Find m4 and nm for target.
   30631 	Use new macros to create config.m4.
   30632 	Prefix all temporary shell variables with `tmp_'.
   30633 	Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler.
   30634 	* configure: Regenerate.
   30635 
   30636 	* Makefile.am (dist-hook): *Really* remove all CVS dirs in
   30637 	dist.
   30638 	* Makefile.in: Regenerate.
   30639 
   30640 	* mpn/Makefile.am: Add target for building .lo and .o from
   30641 	.asm.
   30642 	Pass -DPIC to preprocessor (CPP/m4) when building .lo.
   30643 	Build .o a second time for target .lo, without -DPIC to
   30644 	preprocessor.
   30645 	(SUFFIX): Add `.asm'.
   30646 	(EXTRA_DIST): Add asm-defs.m4.
   30647 	* mpn/Makefile.in: Regenerate.
   30648 
   30649 	* mpf/Makefile.in: Regenerate.
   30650 	* mpf/tests/Makefile.in: Regenerate.
   30651 	* mpq/Makefile.in: Regenerate.
   30652 	* mpq/tests/Makefile.in: Regenerate.
   30653 	* mpz/Makefile.in: Regenerate.
   30654 	* mpz/tests/Makefile.in: Regenerate.
   30655 
   30656 2000-02-15  Torbjorn Granlund  <tege (a] swox.com>
   30657 
   30658 	* mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'.
   30659 	* mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
   30660 	* mpn/sparc32/v9/addmul_1.asm: Likewise.
   30661 	* mpn/sparc32/v9/submul_1.asm: Likewise.
   30662 	* mpn/sparc32/v9/mul_1.asm: Likewise.
   30663 
   30664 	* mpn/sparc32/add_n.asm: Rename `size' -> `n'.
   30665 	* mpn/sparc32/sub_n.asm: Likewise.
   30666 
   30667 	* sparc32: Rename `.s' and `.S' files to `.asm'.
   30668 	* sparc64: Rename `.s' and `.S' files to `.asm'.
   30669 
   30670 2000-02-11  Torbjorn Granlund  <tege (a] swox.com>
   30671 
   30672 	* config.sub: Adopt to new config.guess sparc naming conventions.
   30673 
   30674 	* config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'.
   30675 	* config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and
   30676 	change `sparc8' to `sparcv8'.
   30677 
   30678 	* mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE.
   30679 	* mpn/x86/sub_n.S: Likewise.
   30680 
   30681 	* mpn/x86/syntax.h (PROLOGUE): New name for PROLOG.
   30682 	* mpn/x86/syntax.h (EPILOGUE): New name for EPILOG.
   30683 
   30684 2000-02-11  Linus Nordberg  <linus (a] swox.se>
   30685 
   30686 	* configure.in: Better path for 64-bit sparc without 64-bit cc.
   30687 	Change sparc8 --> sparcv8.
   30688 	Change sparc9 --> sparcv9.
   30689 	* configure: Regenerate.
   30690 
   30691 2000-02-10  Linus Nordberg  <linus (a] swox.se>
   30692 
   30693 	* configure.in: Use Autoconf.
   30694 	* Makefile.am: New file.
   30695 
   30696 	* AUTHORS: New file.
   30697 	* COPYING: New file.
   30698 	* acinclude.m4: New file.
   30699 	* acconfig.h: New file.
   30700 
   30701 	* configure: Generate.
   30702 	* Makefile.in: Generate.
   30703 	* aclocal.m4: Generate.
   30704 	* config.in: Generate.
   30705 
   30706 	* install.sh: Remove.
   30707 	* install-sh: New file from Automake.
   30708 	* missing: New file from Automake.
   30709 	* ltconfig: New file from Libtool.
   30710 	* ltmain.sh: New file from Libtool.
   30711 
   30712 	* mpf/Makefile.am: New file.
   30713 	* mpf/Makefile.in: Generate.
   30714 	* mpf/configure.in: Remove.
   30715 	* mpf/tests/Makefile.am: New file.
   30716 	* mpf/tests/Makefile.in: Generate.
   30717 	* mpf/tests/configure.in: Remove.
   30718 
   30719 	* mpn/Makefile.am: New file.
   30720 	* mpn/Makefile.in: Generate.
   30721 	* mpn/configure.in: Remove.
   30722 
   30723 	* mpq/Makefile.am: New file.
   30724 	* mpq/Makefile.in: Generate.
   30725 	* mpq/configure.in: Remove.
   30726 	* mpq/tests/Makefile.am: New file.
   30727 	* mpq/tests/Makefile.in: Generate.
   30728 	* mpq/tests/configure.in: Remove.
   30729 
   30730 	* mpz/Makefile.am: New file.
   30731 	* mpz/Makefile.in: Generate.
   30732 	* mpz/configure.in: Remove.
   30733 	* mpz/tests/Makefile.am: New file.
   30734 	* mpz/tests/Makefile.in: Generate.
   30735 	* mpz/tests/configure.in: Remove.
   30736 
   30737 2000-02-10  Torbjorn Granlund  <tege (a] swox.com>
   30738 
   30739 	* mpn/x86/add_n.S: Don't use label L0 twice.
   30740 	* mpn/x86/sub_n.S: Likewise.
   30741 
   30742 2000-01-20  Linus Nordberg  <linus (a] swox.se>
   30743 
   30744 	* demos/pexpr.c: Don't use setup_error_handler() in windoze.
   30745 
   30746 2000-01-19  Torbjorn Granlund  <tege (a] swox.com>
   30747 
   30748 	* demos/pexpr.c (sigaltstack): #define to sigstack for AIX.
   30749 	(setup_error_handler): Don't write to ss_size and ss_flags
   30750 	on AIX.
   30751 
   30752 2000-01-11  Torbjorn Granlund  <tege (a] swox.com>
   30753 
   30754 	* mpn/configure.in (hppa2.0*-*-*): Move assignment of
   30755 	target_makefile_frag to where it belongs.
   30756 
   30757 1999-12-21  Torbjorn Granlund  <tege (a] swox.com>
   30758 
   30759 	* longlong.h (v9 umul_ppmm): New #define.
   30760 	(v9 udiv_qrnnd): New #define.
   30761 
   30762 1999-12-14  Torbjorn Granlund  <tege (a] swox.com>
   30763 
   30764 	* mpn/generic/divmod_1.c: Use invert_limb.
   30765 	* mpn/generic/mod_1.c: Use invert_limb.
   30766 
   30767 	* gmp-impl.h (invert_limb): Put definition here.
   30768 	* mpn/generic/divrem.c (invert_limb): Delete definition.
   30769 	* mpn/generic/divrem_2.c (invert_limb): Delete definition.
   30770 
   30771 	* gmp.h (mpn_divrem): Inhibit for non-gcc.
   30772 	But declare (undo 1999-11-22 change).
   30773 
   30774 	* gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB.
   30775 
   30776 	* longlong.h: Move 64-bit hppa code out of __GNUC__ conditional.
   30777 
   30778 	* stack-alloc.c (HSIZ): New #define.
   30779 	(__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack).
   30780 
   30781 1999-12-10  Torbjorn Granlund  <tege (a] swox.com>
   30782 
   30783 	* config.sub: Clean up handling of x86 CPUs: Properly recognize
   30784 	Amd CPUs as unique entities.  Use manufacturer's names of
   30785 	processors ("pentium", etc); still match ambiguous names like
   30786 	"i586", "i686", "p6" but be conservative in interpreting them.
   30787 
   30788 	* configure.in: Recognize x86 CPU types known by config.guess.
   30789 	* mpn/configure.in: Likewise.  Add x86/mmx path component as
   30790 	appropriate.
   30791 	(athlon-*-*): Fix typo.
   30792 
   30793 	* config.guess: Update x86 recog code to initially match
   30794 	more than just i386.
   30795 	Call K6-2 and K6-III for "k62" and "k63" respectively.
   30796 
   30797 	* config.guess: Recognize x86 CPU types.
   30798 	Update code for FreeBSD, NetBSD, OpenBSD, Linux.
   30799 
   30800 1999-12-08  Torbjorn Granlund  <tege (a] swox.com>
   30801 
   30802 	* mpf/pow_ui.c: Avoid final squaring in loop.
   30803 
   30804 1999-12-07  Torbjorn Granlund  <tege (a] swox.com>
   30805 
   30806 	* gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'.
   30807 	(udiv_qrnnd_preinv2norm): Likewise.
   30808 	From Kevin Ryde:
   30809 	(HAVE_ALLOCA): #define also if defined (alloca).
   30810 
   30811 1999-12-04  Torbjorn Granlund  <tege (a] swox.com>
   30812 
   30813 	* mpn/tests/add_n.c: Set OPS from CLOCK.
   30814 	* mpn/tests/sub_n.c: Likewise.
   30815 	* mpn/tests/mul_1.c: Likewise.
   30816 	* mpn/tests/addmul_1.c: Likewise.
   30817 	* mpn/tests/submul_1.c: Likewise.
   30818 
   30819 	* mpn/tests/lshift.c: Update from add_n.c.
   30820 	* mpn/tests/rshift.c: Likewise.
   30821 
   30822 1999-12-03  Torbjorn Granlund  <tege (a] swox.com>
   30823 
   30824 	* mpn/powerpc64/copy.S: New file.
   30825 
   30826 1999-12-02  Torbjorn Granlund  <tege (a] swox.com>
   30827 
   30828 	* mpn/sparc64/copy.s: New file.
   30829 
   30830 	* mpn/tests/copy.c: New file.
   30831 
   30832 	* mpn/configure.in: Recognize more Amd CPUs; Set special paths for
   30833 	k7 CPU.
   30834 
   30835 	* configure.in: Recognize Amd x86 CPUs.
   30836 
   30837 	* mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before
   30838 	writing to res->_mp_size.
   30839 
   30840 	* mpn/powerpc64/*.S: Clean up assembly syntax, add function headers.
   30841 	* mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define.
   30842 	(KARATSUBA_SQR_THRESHOLD): #define.
   30843 
   30844 	* mpn/tests/add_n.c (main): Only print test number if TIMES==1
   30845 	and not printing.
   30846 	(main): Don't run reference code if NOCHECK.
   30847 	* mpn/tests/sub_n.c: Likewise.
   30848 	* mpn/tests/mul_1.c: Likewise.
   30849 	* mpn/tests/addmul_1.c: Likewise.
   30850 	* mpn/tests/submul_1.c: Likewise.
   30851 
   30852 	* mpn/tests/lshift.c: (main): Only print test number if TIMES==1
   30853 	and not printing.
   30854 	* mpn/tests/rshift.c: Likewise.
   30855 
   30856 1999-11-22  Torbjorn Granlund  <tege (a] swox.com>
   30857 
   30858 	* gmp.h (mpz_init_set_str): Declare using __gmp_const.
   30859 	(mpz_set_str): Likewise.
   30860 	(mpf_init_set_str): Likewise.
   30861 	(mpf_set_str): Likewise.
   30862 	(mpn_set_str): Likewise.
   30863 	(__gmp_0): Likewise.
   30864 	(mpn_divrem): Remove separate declaration; it's defined later in
   30865 	this file.
   30866 
   30867 	* gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in
   30868 	expressions involving more than one term, to handle Sun's compiler
   30869 	that most helpfully sets __STDC__ to 0.
   30870 	* gmp-impl.h: Likewise.
   30871 	* longlong.h: Likewise.
   30872 
   30873 1999-11-21  Torbjorn Granlund  <tege (a] swox.com>
   30874 
   30875 	* mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
   30876 	(KARATSUBA_SQR_THRESHOLD): #define.
   30877 
   30878 	* mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr.
   30879 	* mpn/sparc64/rshift.s: Likewise.
   30880 
   30881 	* mpn/sparc64/addmul_1.s: Propagate carry properly.
   30882 	* mpn/sparc64/submul_1.s: Likewise.
   30883 
   30884 	* mpn/sparc64/sub_n.s: Rewrite.
   30885 
   30886 	* mpn/sparc64/sub_n.s: Get operand order for main subcc right
   30887 	(before scrapping this code for new code).
   30888 
   30889 1999-11-20  Torbjorn Granlund  <tege (a] swox.com>
   30890 
   30891 	* mpn/sparc64/add_n.s: Rewrite.
   30892 
   30893 1999-11-17  Torbjorn Granlund  <tege (a] swox.com>
   30894 
   30895 	* mpn/x86/syntax.h (PROLOG): New #define.
   30896 	(EPILOG): New #define.
   30897 
   30898 	* gmp.h (mpn_addsub_n): Declare.
   30899 	* gmp.h (mpn_add_nc): Declare.
   30900 	* gmp.h (mpn_sub_nc): Declare.
   30901 	* mpn/powerpc64/addsub_n.S: New file.
   30902 
   30903 1999-11-17  Torbjorn Granlund  <tege (a] swox.com>
   30904 
   30905 	* mpn/alpha/gmp-mparam.h
   30906 	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
   30907 	(KARATSUBA_SQR_THRESHOLD): Likewise.
   30908 
   30909 1999-11-14  Torbjorn Granlund  <tege (a] swox.com>
   30910 
   30911 	* mpn/x86/mul_1.S: Unroll and optimize for P6 and K7.
   30912 
   30913 1999-11-09  Torbjorn Granlund  <tege (a] swox.com>
   30914 
   30915 	* mpn/x86/p6/gmp-mparam.h
   30916 	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
   30917 	(KARATSUBA_SQR_THRESHOLD): Likewise.
   30918 
   30919 1999-11-05  Torbjorn Granlund  <tege (a] swox.com>
   30920 
   30921 	* mpn/generic/addsub_n.c: New file.
   30922 
   30923 1999-11-02  Torbjorn Granlund  <tege (a] swox.com>
   30924 
   30925 	* config.guess: Handle alpha:FreeBSD with alpha:NetBSD.
   30926 
   30927 	* configure.in (vax*-*-*): New case.
   30928 	* config/mt-vax: New file.
   30929 	* mpn/vax/add_n.s: Rewrite.
   30930 	* mpn/vax/sub_n.s: Rewrite.
   30931 
   30932 1999-10-31  Torbjorn Granlund  <tege (a] swox.com>
   30933 
   30934 	* mpn/vax/rshift.s: New file.
   30935 	* mpn/vax/lshift.s: New file.
   30936 
   30937 1999-10-29  Torbjorn Granlund  <tege (a] swox.com>
   30938 
   30939 	* config.sub: Handle k5 and k6.
   30940 	* mpn/configure.in: Recognize k6.
   30941 
   30942 	* mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines.
   30943 	(main): Tighten error bounds to 14 digits.
   30944 
   30945 	* longlong.h (default umul_ppmm, when smul_ppmm exists):
   30946 	Rename __m0 => __xm0, __m1 => __xm1.
   30947 	(default smul_ppmm): Likewise.
   30948 
   30949 1999-10-11  Torbjorn Granlund  <tege (a] swox.com>
   30950 
   30951 	* config.guess: Reverse the test for POWER vs PowerPC.
   30952 	* config.guess (sun4m:SunOS:5.*:*): New case.
   30953 	* config.guess (sun4u:SunOS:5.*:*): New case.
   30954 
   30955 1999-09-29  Torbjorn Granlund  <tege (a] swox.com>
   30956 
   30957 	* mpn/generic/divrem_2.c: Clean up comments.
   30958 
   30959 1999-09-23  Torbjorn Granlund  <tege (a] swox.com>
   30960 
   30961 	* mpz/tests/Makefile.in: Use move-if-change when generating binaries.
   30962 	* mpf/tests/Makefile.in: Likewise.
   30963 	* mpq/tests/Makefile.in: Likewise.
   30964 	* mpz/tests/move-if-change: New file.
   30965 	* mpf/tests/move-if-change: New file.
   30966 	* mpq/tests/move-if-change: New file.
   30967 
   30968 	* gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c).
   30969 	(mpn_decr_u): New macro.
   30970 
   30971 	* mpn/generic/mul_n.c (mpn_incr): Delete.
   30972 	* mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u.
   30973 	* mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of
   30974 	mpn_add_1 and mpn_sub_1.
   30975 	* mpn/generic/sqrtrem.c: Likewise.
   30976 	* mpz/cdiv_q_ui.c: Likewise.
   30977 	* mpz/cdiv_qr_ui.c: Likewise.
   30978 	* mpz/fdiv_q_ui.c: Likewise.
   30979 	* mpz/fdiv_qr_ui.c: Likewise.
   30980 
   30981 	* mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18
   30982 	bits.
   30983 
   30984 1999-07-27  Torbjorn Granlund  <tege (a] swox.com>
   30985 
   30986 	* mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function.
   30987 
   30988 	* mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'.
   30989 	* mpn/Makefile.in: Compile divrem_2.c.
   30990 	* make.bat: Compile divrem_2.c.
   30991 	* mpn/configure.in (functions): Add divrem_2.
   30992 	* gmp.h: Declare mpn_divrem_2.
   30993 
   30994 	* mpn/generic/divrem.c: Delete special cases, handle just divisors
   30995 	of more than 2 limbs.
   30996 	* gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate.
   30997 
   30998 	* mpn/generic/divrem.c: Rework variable usage for better register
   30999 	allocation.
   31000 
   31001 1999-07-26  Torbjorn Granlund  <tege (a] swox.com>
   31002 
   31003 	* mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed.
   31004 	* mpn/alpha/ev5/sub_n.s: Likewise.
   31005 
   31006 1999-07-21  Torbjorn Granlund  <tege (a] swox.com>
   31007 
   31008 	* longlong.h (alpha): Define umul_ppmm for cc.
   31009 
   31010 	* gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is
   31011 	defined.
   31012 
   31013 1999-07-15  Torbjorn Granlund  <tege (a] swox.com>
   31014 
   31015 	* longlong.h (powerpc64 count_leading_zeros): Fix typo.
   31016 	(powerpc64 add_ssaaaa): Fix typos.
   31017 	(powerpc64 sub_ddmmss): Fix typos.
   31018 
   31019 1999-07-14  Torbjorn Granlund  <tege (a] swox.com>
   31020 
   31021 	* mpz/tests/Makefile.in: Pass XCFLAGS when linking.
   31022 	* mpf/tests/Makefile.in: Likewise.
   31023 	* mpq/tests/Makefile.in: Likewise.
   31024 	* mpn/Makefile.in (.S.o): Pass XCFLAGS.
   31025 
   31026 	* longlong.h: Add support for 64-bit PowerPC.
   31027 	* config.sub: Handle "powerpc64".
   31028 	* configure.in: Likewise.
   31029 	* mpn/configure.in: Suppress use of config/t-ppc-aix for now,
   31030 	it seems compiler passes proper options.
   31031 	* mpn/powerpc64/*.S: New files.
   31032 
   31033 	* Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)".
   31034 
   31035 1999-07-07  Torbjorn Granlund  <tege (a] swox.com>
   31036 
   31037 	* demos/pexpr.c (factor): Change alloca call to a malloc/free pair.
   31038 
   31039 	* mpn/powerpc32/syntax.h: Add #define's for crN.
   31040 
   31041 	* gmp.h (gmp_rand_algorithm): Remove spurious `,'.
   31042 
   31043 1999-07-05  Torbjorn Granlund  <tege (a] swox.com>
   31044 
   31045 	* mpn/generic/divrem_1.c: Normalize divisor when needed.
   31046 
   31047 1999-07-02  Torbjorn Granlund  <tege (a] swox.com>
   31048 
   31049 	* mpn/configure.in (powerpc*-apple-mach): New configuration.
   31050 	* mpn/powerpc32/*: Add support for apple-macho syntax.
   31051 	* mpn/powerpc32/syntax.h: New file.
   31052 	* gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion
   31053 	of GCC.
   31054 
   31055 1999-05-26  Linus Nordberg  <linus (a] swox.se>
   31056 
   31057 	* rand.c (gmp_rand_init): Fix typo.
   31058 
   31059 	* mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs,
   31060 	to keep track of how many rounds to do in loop.  Clean up
   31061 	temporary allocation.  Update `seedsize' inside loop.  Mask off
   31062 	the correct number of bits from final result.  Init `mcopyp' even
   31063 	when not normalizing `m'.
   31064 
   31065 	* randlc.c (gmp_rand_init_lc): Fix typo (don't call
   31066 	mpz_init_set_ui()).
   31067 
   31068 	* mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when
   31069 	reallocating.
   31070 
   31071 	* tests/rand/Makefile (test, bigtest): Add 33-bit tests.
   31072 
   31073 	* tests/rand/gen.c (main): Set precision of variable passed to
   31074 	mpf_urandomb().  Add option `-p'.
   31075 
   31076 1999-05-25  Linus Nordberg  <linus (a] swox.se>
   31077 
   31078 	* randcm.c: Remove.
   31079 	* randcmui.c: Remove.
   31080 	* Makefile.in: Remove randcm and randcmui.
   31081 	* make.bat: Ditto.
   31082 	* gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and
   31083 	__gmp_rand_init_common_ui().
   31084 	* randlc.c (gmp_rand_init_lc): Don't call
   31085 	__gmp_rand_init_common().
   31086 
   31087 	* randlcui.c (gmp_rand_init_lc_ui): Don't call
   31088 	__gmp_rand_init_common_ui().
   31089 
   31090 	* gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'.
   31091 	* randclr.c (gmp_rand_clear): Remove reference to s->maxval.
   31092 	* randcm.c (__gmp_rand_init_common): Ditto
   31093 
   31094 	* mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs
   31095 	twice.
   31096 
   31097 	* gmp.h (__gmp_rand_dist): Remove.
   31098 
   31099 1999-05-24  Linus Nordberg  <linus (a] swox.se>
   31100 
   31101 	* mpn/generic/rawrandom.c: Clean up comments.
   31102 
   31103 	* gmp.texi: Add documentation for random number generation.
   31104 
   31105 1999-05-21  Linus Nordberg  <linus (a] swox.se>
   31106 
   31107 	* gmp.h: Typedef `gmp_rand_state' as an array with one element.
   31108 	Change prototypes accordingly.
   31109 	* gmp-impl.h: Change prototypes using `gmp_rand_state'.
   31110 	* rand.c (gmp_rand_init): Take `gmp_rand_state' as argument
   31111 	instead of a pointer to a `gmp_rand_state'.
   31112 	* mpf/urandom.c (mpf_urandomb): Ditto.
   31113 	* mpz/urandom.c (mpz_urandomb): Ditto.
   31114 	* mpn/generic/rawrandom.c (mpn_rawrandom): Ditto.
   31115 	* randcmui.c (__gmp_rand_init_common_ui): Ditto.
   31116 	* randlc.c (gmp_rand_init_lc): Ditto.
   31117 	* randlcui.c (gmp_rand_init_lc_ui): Ditto.
   31118 	* randui.c (gmp_rand_init_ui): Ditto.
   31119 	* randcm.c (__gmp_rand_init_common): Ditto.
   31120 	* randclr.c (gmp_rand_clear): Ditto.
   31121 
   31122 	* tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address
   31123 	of `s'.
   31124 
   31125 1999-05-20  Linus Nordberg  <linus (a] swox.se>
   31126 
   31127 	* Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c,
   31128 	randicom.c --> randcm.c.  Add randui.c, randcmui.c, randlcui.c.
   31129 	* make.bat: Ditto.
   31130 
   31131 	* gmp.h: Add prototypes for gmp_rand_init_ui() and
   31132 	gmp_rand_init_lc_ui().
   31133 	* gmp-impl.h: Add prototypes for __gmp_rand_init_common() and
   31134 	__gmp_rand_init_common_ui().
   31135 
   31136 	* randlc.c, randcm.c, randclr.c, rand.c: Change #include of
   31137 	<gmp.h> to "gmp.h".
   31138 	* randclr.c: Include stdlib.h for free().
   31139 	* rand.c: Include gmp-impl.h.
   31140 
   31141 1999-05-12  Torbjorn Granlund  <tege (a] swox.com>
   31142 
   31143 	* mpn/configure.in: Put generic m68k alternative last.
   31144 
   31145 1999-05-04  Torbjorn Granlund  <tege (a] swox.com>
   31146 
   31147 	* demos/pexpr.c (setup_error_handler): Use sigemptyset to create
   31148 	empty set (for portability).
   31149 	(fns): Fix typo '#if #if'.
   31150 	(mpz_eval_expr): Implement FERMAT and MERSENNE.
   31151 
   31152 	* demos/pexpr.c: Cast longjmp argument via long to silent warnings on
   31153 	64-bit hosts.
   31154 
   31155 1999-05-03  Torbjorn Granlund  <tege (a] swox.com>
   31156 
   31157 	* demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility.
   31158 
   31159 	* demos/pexpr.c (setup_error_handler): New function; take signal
   31160 	handler setup code from main(), with major modifications to use modern
   31161 	signal interface.
   31162 	(main): Remove signal handler setup code; call setup_error_handler.
   31163 
   31164 1999-04-29  Linus Nordberg  <linus (a] swox.se>
   31165 
   31166 	* tests/rand/findcl.c (main): Add option '-i' for interval factor.
   31167 	Separate v and merit lose figures.  Add '-v' for version.
   31168 
   31169 1999-04-28  Linus Nordberg  <linus (a] swox.se>
   31170 
   31171 	* tests/rand/statlib.c: Change debugging stuff.
   31172 
   31173 	* tests/rand/gmpstat.h: Add debug values definitions.
   31174 
   31175 	* tests/rand/findcl.c (main): Print low and high merit on startup.
   31176 	Print version string on startup.  Catch SEGV and HUP.  Add option -d
   31177 	for debug.  Fix bug making test for v too hard.
   31178 	(sh_status): New function.
   31179 	(sh_status): Flush stdout.  Add RCSID.
   31180 
   31181 1999-04-27  Linus Nordberg  <linus (a] swox.se>
   31182 
   31183 	* tests/rand/Makefile (clean): Add target.
   31184 
   31185 1999-04-27  Linus Nordberg  <linus.nordberg (a] canit.se>
   31186 
   31187 	* tests/rand/stat.c: Include gmpstat.h.
   31188 	Add global int g_debug.
   31189 
   31190 	* tests/rand/spect.c: Include <unistd.h>.
   31191 
   31192 	* tests/rand/findcl.c (main): Input is `m', not all factors of `m'.
   31193 	Print only the very first matching multiplier.  Include <unistd.h>.
   31194 	Flush stdout.  Print "done." when done.
   31195 
   31196 	* tests/rand/spect.c: Move everything but main() to statlib.c.
   31197 
   31198 	* tests/rand/findcl.c: New file.
   31199 
   31200 	* tests/rand/gmpstat.h: New file.
   31201 
   31202 	* tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot,
   31203 	spectral_test): New functions.
   31204 
   31205 1999-04-27  Torbjorn Granlund  <tege (a] swox.com>
   31206 
   31207 	* mpn/configure.in: Fix typo, "sparc-*)" was "sparc)".
   31208 
   31209 1999-04-21  Torbjorn Granlund  <tege (a] swox.com>
   31210 
   31211 	* config.sub: Recognize ev6.
   31212 
   31213 1999-04-12  Linus Nordberg  <linus.nordberg (a] canit.se>
   31214 
   31215 	* urandom.c: Split up into randclr.c, randi.c, randi_lc.c,
   31216 	randicom.c.
   31217 	* randclr.c, randi.c, randi_lc.c, randicom.c: New files.
   31218 	* Makefile.in: Remove urandom.  Add randclr, randi, randi_lc,
   31219 	randicom.
   31220 	* make.bat: Ditto
   31221 
   31222 1999-03-31  Torbjorn Granlund  <tege (a] matematik.su.se>
   31223 
   31224 	* configure.in (sparc9-*-solaris2.[789]*, etc): New alternative.
   31225 	* mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*.
   31226 
   31227 1999-03-30  Linus Nordberg  <linus.nordberg (a] canit.se>
   31228 
   31229 	* urandom.c (__gmp_rand_scheme): Change NULL->0.
   31230 	Include "gmp.h" instead of <gmp.h>.
   31231 
   31232 1999-03-29  Linus Nordberg  <linus.nordberg (a] canit.se>
   31233 
   31234 	* gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme
   31235 	struct.
   31236 	(__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'.
   31237 
   31238 	* tests/rand/stat.c (f_freq): Don't print 2nd level results if doing
   31239 	1st level.
   31240 
   31241 	* tests/rand/gen.c (main): Set default algorithm to mpz_urandomb.
   31242 	(main): Add option -c.
   31243 
   31244 1999-03-24  Linus Nordberg  <linus.nordberg (a] canit.se>
   31245 
   31246 	* tests/rand/Makefile (GMPINC): Rename to GMPH.
   31247 	(GMPH): Add gmp-mparam.h.
   31248 	(CFLAGS): Add -I$(GMPLIBDIR)/mpn
   31249 
   31250 1999-03-23  Linus Nordberg  <linus.nordberg (a] canit.se>
   31251 
   31252 	* Makefile.in: Compile top-dir/urandom.c.
   31253 	* make.bat: Ditto.
   31254 
   31255 	* mpn/Makefile.in: Compile rawrandom.c.
   31256 	* make.bat: Ditto.
   31257 
   31258 	* mpn/configure.in (functions): Add rawrandom.
   31259 
   31260 	* gmp.h (__gmp_rand_scheme_struct): Rename to
   31261 	__gmp_rand_lc_scheme_struct.
   31262 	(__gmp_rand_data_lc): Remove member 'n'.  Allocate a
   31263 	__gmp_rand_lc_scheme_struct instead of a pointer to one.
   31264 	Add prototype for gmp_rand_init_lc(), mpn_rawrandom().
   31265 	New prototype for mpz_urandomb().
   31266 
   31267 	* urandom.c: New file.
   31268 	(__gmp_rand_init_common): New function.
   31269 	(gmp_rand_init_lc): New function.
   31270 	(gmp_rand_init): Don't init data_lc->n.  Call gmp_rand_init_lc()
   31271 	and __gmp_rand_init_common().
   31272 	(gmp_rand_clear): Remove reference to data_lc->n.
   31273 
   31274 	* mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file
   31275 	urandom.c in top-dir.
   31276 	(mpz_urandomb): Add function parameter nbits.  Call mpn_rawrandom().
   31277 
   31278 	* mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom().
   31279 
   31280 	* mpn/generic/rawrandom.c: New file.
   31281 	(mpn_rawrandom): New function.
   31282 
   31283 1999-03-17  Torbjorn Granlund  <tege (a] matematik.su.se>
   31284 
   31285 	* extract-dbl.c: When packing result, adjust exp when sc == 0.
   31286 
   31287 	* mpf/tests/t-get_d.c: New file.
   31288 	* mpf/tests/Makefile.in: Compile t-get_d.c.
   31289 
   31290 1999-03-16  Linus Nordberg  <linus.nordberg (a] canit.se>
   31291 
   31292 	* mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the
   31293 	mpz_t members.
   31294 
   31295 	* make.bat: Compile mpz/urandom.c and mpf/urandom.c
   31296 
   31297 	* tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp().
   31298 
   31299 	* tests/rand/gen.c: Include unistd.h for getopt.
   31300 
   31301 1999-03-15  Linus Nordberg  <linus.nordberg (a] canit.se>
   31302 
   31303 	* mpz/urandom.c (gmp_rand_init): New function.
   31304 	(gmp_rand_clear): New function.
   31305 	(mpz_urandomb): New function.
   31306 
   31307 	* mpz/Makefile.in: Compile urandom.c
   31308 
   31309 	* mpf/urandom.c (mpf_urandomb): New function.
   31310 
   31311 	* mpf/Makefile.in: Compile urandom.c.
   31312 
   31313 	* gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New
   31314 	structs for randomization functions.
   31315 	(gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization
   31316 	functions.
   31317 	(mpz_urandomb, mpf_urandomb): Add prototype.
   31318 	(gmp_rand_init, gmp_rand_clear): Add prototype.
   31319 
   31320 	* tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files.
   31321 	* tests/rand/Makefile, tests/rand/ChangeLog: New files.
   31322 
   31323 1999-03-15  Torbjorn Granlund  <tege (a] matematik.su.se>
   31324 
   31325 	* .gdbinit: New file.
   31326 
   31327 	* mpz/dump.c: New file.
   31328 	* mpz/Makefile.in: Compile dump.c.
   31329 	* make.bat: Likewise.
   31330 	* gmp.h (mpz_dump): Declare.
   31331 
   31332 1999-03-14  Torbjorn Granlund  <tege (a] matematik.su.se>
   31333 
   31334 	* mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact.
   31335 
   31336 	* mpz/tests/convert.c: Update to GMP 2 variable syntax.
   31337 
   31338 1999-03-13  Torbjorn Granlund  <tege (a] matematik.su.se>
   31339 
   31340 	* mpf/README: New file.
   31341 	* mpz/README: New file.
   31342 
   31343 	* mpf/pow_ui.c: New file.
   31344 	* mpf/Makefile.in: Compile pow_ui.c.
   31345 	* make.bat: Likewise.
   31346 	* gmp.h (mpf_pow_ui): Declare.
   31347 
   31348 1999-03-12  Torbjorn Granlund  <tege (a] matematik.su.se>
   31349 
   31350 	* mpn/configure.in: Stage 1 of rewrite.
   31351 	* mpn/underscore.h: New name for bsd.h.
   31352 	* mpn/sysv.h: Deleted.
   31353 
   31354 	* mpn/m68k/*: Don't include sysdep.h.
   31355 
   31356 	* mpn/pa64/README: New file.
   31357 
   31358 1999-03-11  Torbjorn Granlund  <tege (a] matematik.su.se>
   31359 
   31360 	* mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax.
   31361 	Renamed from `.s'.
   31362 	* mpn/powerpc32/sub_n.S: Likewise.
   31363 	* mpn/powerpc32/lshift.S: Likewise.
   31364 	* mpn/powerpc32/rshift.S: Likewise.
   31365 	* mpn/powerpc32/mul_1.S: Likewise.
   31366 	* mpn/powerpc32/addmul_1.S: Likewise.
   31367 	* mpn/powerpc32/submul_1.S: Likewise.
   31368 
   31369 	* mpn/powerpc32/umul.S: New file.
   31370 	* mpn/sparc32/v8/umul.S: New file.
   31371 	* mpn/sparc32/umul.S: New file.
   31372 	* mpn/x86/umul.S: New file.
   31373 	* mpn/x86/udiv.S: New file.
   31374 
   31375 	* mpn/Makefile.in (mul_basecase.o): Delete rule.
   31376 
   31377 1999-02-22  Torbjorn Granlund  <tege (a] matematik.su.se>
   31378 
   31379 	* configure.in (hppa2.0*-*-*): Force use of GCC.
   31380 
   31381 	* extract-dbl.c: Handle IEEE denormalized numbrs.  Clean up.
   31382 
   31383 1998-12-02  Torbjorn Granlund  <tege (a] matematik.su.se>
   31384 
   31385 	* mpn/Makefile.in (CCAS): New macro.
   31386 	(.s.o): Use CCAS.
   31387 	(.S.o): Likewise.
   31388 
   31389 	* mpn/Makefile.in (mul_basecase.o): Add dependency.
   31390 	(sqr_basecase.o): Likewise.
   31391 	(mod_1.o): Likewise.
   31392 
   31393 	* demos/pexpr.c (cputime): Test also __hpux.
   31394 	(cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE.
   31395 
   31396 	* mpz/tests/t-2exp.c: Use urandom, not random.
   31397 
   31398 	* mpn/configure.in (arm*-*-*): New alternative.
   31399 
   31400 1998-11-30  Torbjorn Granlund  <tege (a] matematik.su.se>
   31401 
   31402 	* gmp-impl.h (union ieee_double_extract): Special case for
   31403 	little-endian arm.
   31404 	(LIMBS): Alias for PTR.
   31405 
   31406 1998-11-26  Torbjorn Granlund  <tege (a] matematik.su.se>
   31407 
   31408 	* longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'.
   31409 	(m68k stuff): Clean up; add coldfire support.
   31410 
   31411 1998-11-23  Torbjorn Granlund  <tege (a] matematik.su.se>
   31412 
   31413 	* mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
   31414 	(KARATSUBA_SQR_THRESHOLD): #define.
   31415 
   31416 	* mpn/sparc32/v9/README: New file.
   31417 
   31418 1998-11-20  Torbjorn Granlund  <tege (a] matematik.su.se>
   31419 
   31420 	* mpn/x86/README: New file.
   31421 
   31422 	* mpn/arm/gmp-mparam.h: New file.
   31423 	* mpn/pa64/gmp-mparam.h: New file.
   31424 	* mpn/hppa/gmp-mparam.h: New file.
   31425 	* mpn/x86/pentium/gmp-mparam.h: New file.
   31426 	* mpn/sparc32/v9/gmp-mparam.h: New file.
   31427 	* mpn/powerpc32/gmp-mparam.h: New file.
   31428 	* mpn/x86/p6/gmp-mparam.h: New file.
   31429 
   31430 	* mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
   31431 	(KARATSUBA_SQR_THRESHOLD): #define.
   31432 
   31433 	* mpn/configure.in: Point to x86/p6 when appropriate.
   31434 
   31435 	* mpn/power/umul.s: New file.
   31436 	* mpn/power/sdiv.s: New file.
   31437 	* mpn/pa64/addmul_1.S: New file.
   31438 	* mpn/pa64/submul_1.S: New file.
   31439 	* mpn/pa64/mul_1.S: New file.
   31440 	* mpn/pa64/udiv_qrnnd.c: New file.
   31441 	* mpn/pa64/umul_ppmm.S: New file.
   31442 	* mpn/mips2/umul.s: New file.
   31443 	* mpn/m68k/mc68020/umul.s: New file.
   31444 	* mpn/m68k/mc68020/udiv.s: New file.
   31445 	* mpn/hppa/hppa1_1/umul.s: New file.
   31446 	* mpn/alpha/umul.s: New file.
   31447 	* mpn/a29k/udiv.s: New file.
   31448 	* mpn/a29k/umul.s: New file.
   31449 
   31450 1998-11-17  Torbjorn Granlund  <tege (a] matematik.su.se>
   31451 
   31452 	* mpn/x86/mul_basecase.S: New file for non-pentiums.
   31453 	* mpn/x86/mul_basecase.S: Move to mpn/x86/pentium.
   31454 
   31455 1998-11-16  Torbjorn Granlund  <tege (a] matematik.su.se>
   31456 
   31457 	* make.bat: Compile mul_basecase.c and sqr_basecase.c.
   31458 
   31459 1998-11-10  Torbjorn Granlund  <tege (a] matematik.su.se>
   31460 
   31461 	* mpz/invert.c: Defer writing to parameter `invert' until
   31462 	end.
   31463 
   31464 1998-11-03  Torbjorn Granlund  <tege (a] matematik.su.se>
   31465 
   31466 	* mpn/pa64/udiv_qrnnd.c: Handle more border cases.
   31467 
   31468 1998-10-29  Torbjorn Granlund  <tege (a] matematik.su.se>
   31469 
   31470 	* insert-dbl.c: Special case biased exponents < 1; Get boundary for
   31471 	Inf right.
   31472 
   31473 	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define.
   31474 
   31475 1998-10-28  Torbjorn Granlund  <tege (a] matematik.su.se>
   31476 
   31477 	* mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604.
   31478 	* mpn/powerpc32/addmul_1.s: Likewise.
   31479 	* mpn/powerpc32/lshift.s: Likewise.
   31480 
   31481 1998-10-23  Torbjorn Granlund  <tege (a] matematik.su.se>
   31482 
   31483 	* config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus.
   31484 
   31485 	* mpn/sparc32/v9/submul_1.s: New file.
   31486 
   31487 1998-10-21  Torbjorn Granlund  <tege (a] matematik.su.se>
   31488 
   31489 	* mpn/config/mt-pa2hpux: New file.
   31490 	* mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code.
   31491 
   31492 	* config.sub: Recognize hppa2.0 as CPU type.
   31493 
   31494 	* longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd.
   31495 	* mpn/pa64/mul_1.S: New file.
   31496 	* mpn/pa64/addmul_1.S: New file.
   31497 	* mpn/pa64/submul_1.S: New file.
   31498 	* mpn/pa64/umul_ppmm.S: New file.
   31499 	* mpn/pa64/udiv_qrnnd.c: New file.
   31500 
   31501 1998-10-20  Torbjorn Granlund  <tege (a] matematik.su.se>
   31502 
   31503 	* mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui.
   31504 
   31505 	* mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls.
   31506 	* mpz/gcd_ui.c: Likewise.
   31507 	* mpz/add_ui.c: Likewise.
   31508 	* mpz/sub_ui.c: Likewise.
   31509 
   31510 1998-10-19  Torbjorn Granlund  <tege (a] matematik.su.se>
   31511 
   31512 	* mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t
   31513 	index.
   31514 
   31515 1998-10-17  Torbjorn Granlund  <tege (a] matematik.su.se>
   31516 
   31517 	* mpn/sparc32/v9/mul_1.s: Misc cleanups.
   31518 	* mpn/sparc32/v9/addmul_1.s: Misc cleanups.
   31519 
   31520 1998-10-16  Torbjorn Granlund  <tege (a] matematik.su.se>
   31521 
   31522 	* mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print.
   31523 
   31524 	* mpz/tests/t-powm.c (SIZE): Increase to 50.
   31525 	(EXP_SIZE): New parameter; use it for computing exp_size.
   31526 
   31527 1998-10-15  Torbjorn Granlund  <tege (a] matematik.su.se>
   31528 
   31529 	* mpn/generic/divrem_newt.c: Use TMP_ALLOC interface.
   31530 
   31531 	* mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining
   31532 	assembly variants of SQRT.
   31533 
   31534 1998-10-14  Torbjorn Granlund  <tege (a] matematik.su.se>
   31535 
   31536 	* mpn/tests: Clean up timing routines.  Don't include longlong.h
   31537 	where it is not needed.
   31538 	(mpn_print): Handle printing when _LONG_LONG_LIMB.
   31539 	* mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2
   31540 	and do it whether TIMES != 1 or not.
   31541 
   31542 	* mpn/generic/mul_n.c: Delay assignment of `sign' for lower
   31543 	register pressure.
   31544 
   31545 	* mpn/sparc32/v9/mul_1.s: New file.
   31546 
   31547 	* config/mt-sprc9-gcc: New file.
   31548 	* configure.in: Use it.
   31549 
   31550 	* mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a
   31551 	sparc v9 CPU.
   31552 	* mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with
   31553 	a sparc v9 CPU.
   31554 
   31555 	* mpf/sub.c: In initial code for ediff == 0, limit precision
   31556 	before jumping to `normalize'.
   31557 
   31558 1998-10-13  Torbjorn Granlund  <tege (a] matematik.su.se>
   31559 
   31560 	* mpn/hppa/hppa2_0/add_n.s: New file.
   31561 	* mpn/hppa/hppa2_0/sub_n.s: New file.
   31562 	* mpn/configure.in: Handle hppa2.0 (32-bit code for now).
   31563 
   31564 	* config.guess: Update from egcs 1.1.
   31565 	(9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0
   31566 	machines.
   31567 
   31568 1998-10-07  Torbjorn Granlund  <tege (a] matematik.su.se>
   31569 
   31570 	* mpz/root.c (mpz_root): New file.
   31571 	* mpz/Makefile.in: Compile it.
   31572 	* make.bat: Likewise.
   31573 	* gmp.h (mpz_root): Declare.
   31574 
   31575 	* mpz/perfpow.c: New file.
   31576 	* mpz/Makefile.in: Compile it.
   31577 	* make.bat: Likewise.
   31578 	* gmp.h (mpz_perfect_power_p): Declare.
   31579 
   31580 	* mpz/remove.c: New file.
   31581 	* mpz/Makefile.in: Compile it.
   31582 	* make.bat: Likewise.
   31583 	* gmp.h (mpz_remove): Declare.
   31584 
   31585 	* mpz/bin_ui.c: New file.
   31586 	* mpz/Makefile.in: Compile it.
   31587 	* make.bat: Likewise.
   31588 	* gmp.h (mpz_bin_ui): Declare.
   31589 
   31590 	* mpz/bin_uiui.c: New file.
   31591 	* mpz/Makefile.in: Compile it.
   31592 	* make.bat: Likewise.
   31593 	* gmp.h (mpz_bin_uiui): Declare.
   31594 
   31595 1998-09-16  Torbjorn Granlund  <tege (a] matematik.su.se>
   31596 
   31597 	* longlong.h: Test for __powerpc__ in addition to _ARCH_PPC.
   31598 
   31599 Sat Sep  5 17:22:28 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31600 
   31601 	* mpf/cmp_si.c: Compare most significant mantissa limb before
   31602 	trying to deduce anything from the limb count.
   31603 	* mpf/cmp_ui.c: Likewise.
   31604 
   31605 Tue Aug 18 10:24:39 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31606 
   31607 	* mpz/pprime_p.c (mpz_probab_prime_p): Add new code block
   31608 	for doing more dividing.
   31609 
   31610 Sat Aug 15 18:43:17 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31611 
   31612 	* mpn/generic/divrem_newt.c: New name for divrem_newton.c.
   31613 	* mpn/Makefile.in: Corresponding changes.
   31614 	* mpn/configure.in: Likewise.
   31615 
   31616 Wed Aug 12 23:07:09 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31617 
   31618 	* config.guess: Handle powerpc for NetBSD.
   31619 
   31620 Tue Jul 28 23:10:55 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31621 
   31622 	* mpz/fib_ui.c: New file.
   31623 	* mpz/Makefile.in: Compile it.
   31624 	* make.bat: Likewise.
   31625 	* gmp.h (mpz_fib_ui): Declare.
   31626 
   31627 Wed Jun 17 22:52:58 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31628 
   31629 	* make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'.
   31630 
   31631 Wed Jun  3 11:27:32 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31632 
   31633 	* config/mt-pwr: New file.
   31634 	* config/mt-ppc: New file.
   31635 	* configure.in: Use the new files.
   31636 
   31637 Tue Jun  2 13:04:17 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31638 
   31639 	* mpn/sparc32/v9/addmul_1.s: New file.
   31640 	* mpn/config/mt-sprc9: New file.
   31641 	* mpn/configure.in: Use mt-sprc9.
   31642 
   31643 Tue May 26 11:24:18 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31644 
   31645 	* demos/factorize.c (factor_using_pollard_rho): Pass correct
   31646 	parameters in recursive calls; join the two recursion arms.
   31647 
   31648 	* mpf/set_q.c: Set result sign.
   31649 	When normalizing the numerator, don't allow it to increase in size
   31650 	beyond prec.
   31651 
   31652 Tue May 19 17:28:14 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31653 
   31654 	* demos/factorize.c (factor_using_division): Call fflush
   31655 	also for the factor 2.
   31656 
   31657 Mon May 18 15:51:01 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31658 
   31659 	* make.bat: Pass -fomit-frame-pointer.  Do not pass -g.
   31660 
   31661 Tue May  5 01:42:50 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31662 
   31663 	* mpz/Makefile.in (LOCAL_CC): Remove definition.
   31664 
   31665 	* gmp.h: Get rid of GMP_SMALL stuff.
   31666 	* mpz/Makefile.in: Likewise.
   31667 	* mpq/Makefile.in: Likewise.
   31668 	* mpf/Makefile.in: Likewise.
   31669 
   31670 	* mpz/invert.c: Fix typo in comment.
   31671 
   31672 Mon May  4 23:05:32 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31673 
   31674 	* mpn/generic/sqrtrem.c: Check that __arch64__ is not defined
   31675 	before defining sparc SQRT.
   31676 
   31677 Mon Apr 20 19:16:17 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31678 
   31679 	* mpn/generic/gcdext.c: Allow gp to be NULL.
   31680 
   31681 1998-04-03  Torbjorn Granlund  <tege (a] matematik.su.se>
   31682 
   31683 	* mpn/configure.in: Recognize `alphaev5*', not `alphaev5'.
   31684 
   31685 	* config.guess: Handle CPU variants for NetBSD.
   31686 
   31687 Mon Mar 16 13:07:54 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31688 
   31689 	* mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP,
   31690 	not mpz_tdiv_r_ui (which expects an `unsigned long').
   31691 	(mpz_probab_prime_p): Change type of `r' to mp_limb_t.
   31692 
   31693 Thu Mar 12 17:19:04 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31694 
   31695 	* gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations.
   31696 
   31697 	* config.guess: Update from FSF version.
   31698 	* config.sub: Likewise.
   31699 
   31700 	* config.guess: Add special handling of alpha-*-NetBSD.
   31701 
   31702 Wed Mar 11 00:55:34 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31703 
   31704 	* mpz/inp_str.c: Update from set_str.c.
   31705 	Properly increment `nread' when skipping minus sign.
   31706 
   31707 	* mpz/set_str.c: Check for empty string after having skipped
   31708 	leading zeros.
   31709 
   31710 Mon Mar  9 19:28:00 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31711 
   31712 	* mpz/set_str.c: Skip leading zeros.
   31713 
   31714 Wed Mar  4 19:29:16 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31715 
   31716 	* gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.
   31717 
   31718 	* demos/factorize.c: Rewrite.
   31719 
   31720 1998-02-04  Torbjorn Granlund  <tege (a] matematik.su.se>
   31721 
   31722 	* configure.in (i[3456]86* etc): Check if using gcc before
   31723 	choosing mt-x86.
   31724 
   31725 	* configure.in (m68*-*-*): New alternative.
   31726 	* config/mt-m68k: New file.
   31727 
   31728 	* mpn/alpha/invert-limb.s: Put tables in text segment,
   31729 	since not all systems support "rdata".
   31730 
   31731 Wed Feb  4 02:20:57 1998  Torbjorn Granlund  <tege (a] matematik.su.se>
   31732 
   31733 	* gmp.h (__GNU_MP_VERSION_SNAP): New #define.
   31734 	(__GNU_MP_VERSION_MINOR): Now 1.
   31735 
   31736 Wed Jan 28 22:29:36 1998  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31737 
   31738 	* longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION.
   31739 
   31740 Wed Jan 28 20:28:19 1998  Torbjorn Granlund  <tege (a] sophie.matematik.su.se>
   31741 
   31742 	* mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors.
   31743 
   31744 Mon Jan 26 01:39:02 1998  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31745 
   31746 	* mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small
   31747 	numbers specifically; check small factors, then perform a fermat test.
   31748 
   31749 Tue Jan 13 14:58:28 1998  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31750 
   31751 	* longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb
   31752 	and udiv_qrnnd_preinv.
   31753 
   31754 Wed Jan  7 01:52:54 1998  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31755 
   31756 	* mpn/configure.in (alpha*, extra_functions): Add invert-limb and
   31757 	remove udiv_qrnnd.
   31758 
   31759 	* mpn/tests/divrem.c: Get allocations right.
   31760 
   31761 	* mpn/generic/divrem.c: Conditionally pre-invert most significant
   31762 	divisor limb.
   31763 
   31764 Tue Jan  6 23:08:54 1998  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31765 
   31766 	* mpn/generic/divrem_1.c: Rename variables to comply to conventions.
   31767 	Make `i' have type `mp_size_t'.
   31768 
   31769 Tue Dec 30 22:21:42 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31770 
   31771 	* mpz/tdiv_qr_ui.c: Return the remainder.
   31772 	* mpz/tdiv_r_ui.c: Likewise.
   31773 	* mpz/tdiv_q_ui.c: Likewise.
   31774 	* gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui,
   31775 	mpz_tdiv_q_ui.
   31776 
   31777 	* mpz/tdiv_ui.c: New file.
   31778 	* mpz/Makefile.in: Compile it.
   31779 	* make.bat: Likewise.
   31780 	* gmp.h (mpz_tdiv_ui): Declare.
   31781 
   31782 Fri Nov  7 04:21:15 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31783 
   31784 	* mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc.
   31785 
   31786 	* demos/isprime.c: New file.
   31787 
   31788 	Sat Nov  1 19:32:25 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31789 
   31790 	* mpz/cmp_abs.c: New file.
   31791 	* mpz/Makefile.in: Compile it.
   31792 	* make.bat: Likewise.
   31793 	* gmp.h (mpz_cmp_abs): Declare.
   31794 
   31795 	* mpz/cmp_abs_ui.c: New file.
   31796 	* mpz/Makefile.in: Compile it.
   31797 	* make.bat: Likewise.
   31798 	* gmp.h (mpz_cmp_abs_ui): Declare.
   31799 
   31800 Sat Sep 27 04:49:52 1997  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31801 
   31802 	* mpz/fdiv_r_2exp.c: Get allocation for `tmp' right.
   31803 
   31804 	* mpz/fdiv_q_2exp.c: In final result adjustment code, handle
   31805 	that intermediate result is zero.
   31806 
   31807 	* mpz/tests/t-2exp.c: New file.
   31808 	* mpz/tests/Makefile.in: Handle t-2exp.c.
   31809 
   31810 Fri Sep 26 16:29:21 1997  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31811 
   31812 	* mpz/divexact.c: Fix typo in test for whether to copy numerator to
   31813 	quotient and move that statement to after handling quotient and
   31814 	denominator overlap.  Misc cleanups.
   31815 
   31816 	* mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift
   31817 	calls to `unsigned int'.
   31818 	* mpz/divexact.c: Likewise.
   31819 
   31820 Mon Sep 22 02:19:52 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31821 
   31822 	* mpz/tests/t-powm.c: Decrease `reps' to 2500.
   31823 
   31824 	* mpz/tests/t-pow_ui.c: New file.
   31825 	* mpz/tests/Makefile.in: Handle t-pow_ui.c.
   31826 
   31827 	* mpz/ui_pow_ui.c: Get special cases for exponent and base right.
   31828 
   31829 	* mpz/pow_ui.c: Increase temp space allocation by 1 limb.
   31830 	Split `rsize' into two variables; compute space allocation into
   31831 	`ralloc'.
   31832 
   31833 Sun Sep  7 04:15:12 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31834 
   31835 	* mpn/pa64/lshift.s: New file.
   31836 	* mpn/pa64/rshift.s: New file.
   31837 	* mpn/pa64/sub_n.s: New file.
   31838 
   31839 Sat Sep  6 19:14:13 1997  Torbjorn Granlund  <tege (a] gmp.tmg.se>
   31840 
   31841 	* mpn/pa64/add_n.s: New file.
   31842 	* mpn/pa64: New directory.
   31843 
   31844 Tue Aug 19 16:17:09 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31845 
   31846 	* mpz/swap.c: New file.
   31847 	* mpz/Makefile.in: Compile it.
   31848 	* make.bat: Likewise.
   31849 	* gmp.h (mpz_swap): Declare.
   31850 
   31851 	* mpn/generic/mul_n.c: Push assignment of x and y pointers into the
   31852 	if/else clauses in several places.  (Decreases register pressure.)
   31853 
   31854 Mon Aug 18 03:29:50 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31855 
   31856 	* mpn/thumb/add_n.s: New file.
   31857 	* mpn/thumb/sub_n.s: New file.
   31858 	* mpn/arm/add_n.s: New file.
   31859 	* mpn/arm/sub_n.s: New file.
   31860 
   31861 	* mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size
   31862 	if most significant limb is zero.
   31863 	* mpz/powm_ui.c: Likewise.
   31864 
   31865 Fri Aug 15 02:13:57 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31866 
   31867 	* mpn/arm/m/mul_1.s: New file.
   31868 	* mpn/arm/m/addmul_1.s: New file.
   31869 
   31870 	* mpn/powerpc32/mul_1.s: Rewrite.
   31871 
   31872 	* mpn/alpha/mul_1.s: Prefix labels with `.'.
   31873 
   31874 Mon Aug 11 02:37:16 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31875 
   31876 	* mpn/powerpc32/add_n.s: Rewrite.
   31877 	* mpn/powerpc32/sub_n.s: Rewrite.
   31878 
   31879 Sun Aug 10 17:07:15 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31880 
   31881 	* mpn/powerpc32/addmul_1.s: Delete obsolete comments.
   31882 	* mpn/powerpc32/submul_1.s: Likewise.
   31883 
   31884 Fri Jul 25 20:07:54 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31885 
   31886 	* mpz/addmul_ui.c: New file.
   31887 	* mpz/Makefile.in: Compile it.
   31888 	* make.bat: Likewise.
   31889 	* gmp.h (mpz_addmul_ui): Declare.
   31890 
   31891 	* mpz/setbit.c: Add missing code after final `else'.
   31892 
   31893 Tue Jul 22 17:45:01 1997  Torbjorn Granlund  <tege (a] tunnis.tmg.se>
   31894 
   31895 	* mpn/sh/add_n.s: Fix typo.
   31896 	* mpn/sh/sub_n.s: Likewise.
   31897 
   31898 	* longlong.h (ns32k count_trailing_zeros): Fix typo.
   31899 
   31900 	* insert-dbl.c: Check for exponent overflow and return Inf.
   31901 
   31902 	* mpz/get_d.c: Rewrite to avoid rounding errors.
   31903 
   31904 Thu May 29 11:51:07 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31905 
   31906 	* mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure
   31907 	their allocation suffices.
   31908 	* mpq/sub.c: Likewise.
   31909 
   31910 Wed Apr 16 02:24:25 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31911 
   31912 	* demos/pexpr.c: New file.
   31913 
   31914 	* mpn/generic/mul_n.c: Misc optimizations from Robert Harley.
   31915 
   31916 	* gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define.
   31917 
   31918 Sat Apr 12 17:54:04 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31919 
   31920 	* mpz/tstbit.c: New file.
   31921 	* mpz/Makefile.in: Compile it.
   31922 	* make.bat: Likewise.
   31923 	* gmp.h (mpz_tstbit): Declare.
   31924 
   31925 	* mpz/tests/logic.c: Use MPZ_CHECK_FORMAT.
   31926 	* mpz/tests/bit.c: New test.
   31927 	* mpz/tests/Makefile.in: Handle bit.c.
   31928 
   31929 	* mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1.
   31930 
   31931 	* gmp-impl.h (MPZ_CHECK_FORMAT): New #define.
   31932 
   31933 Thu Apr 10 00:30:14 1997  Torbjorn Granlund  <tege (a] tmg.se>
   31934 
   31935 	* longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2.
   31936 
   31937 Wed Apr  9 18:23:31 1997  Torbjorn Granlund  <tege (a] pro.tmg.se>
   31938 
   31939 	* gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here...
   31940 	* longlong.h: ...to here.
   31941 
   31942 Sun Mar 30 12:16:23 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31943 
   31944 	* mpn/generic/next_prime.c: New file.
   31945 
   31946 	* mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED.
   31947 	* gmp-impl.h: Put them here.
   31948 
   31949 Fri Mar 28 08:18:05 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31950 
   31951 	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for
   31952 	for x86, but leave disabled for now.
   31953 
   31954 Fri Feb 28 02:39:47 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31955 
   31956 	* mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler
   31957 	for assembly phase.
   31958 	(.s.o): Pass SFLAGS.
   31959 
   31960 Wed Feb 26 06:46:08 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31961 
   31962 	* mpn/configure.in: For Pentium Pro, use default code, not Pentium
   31963 	optimized code.
   31964 
   31965 	* mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro.
   31966 	* mpn/x86/submul_1.S: Likewise.
   31967 
   31968 Thu Feb 13 08:26:09 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31969 
   31970 	* mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from
   31971 	integer.c).
   31972 	* make.bat: Likewise.
   31973 
   31974 Wed Feb  5 05:58:44 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31975 
   31976 	* mpn/configure.in (alpha*): Add cntlz to extra_functions.
   31977 
   31978 Wed Feb  4 03:30:45 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31979 
   31980 	* mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc).
   31981 
   31982 Mon Feb  3 14:21:36 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31983 
   31984 	* make.bat: Fix typo, set_dfl_prc => set_dfl_prec.
   31985 
   31986 Sun Feb  2 02:34:33 1997  Torbjorn Granlund  <tege (a] matematik.su.se>
   31987 
   31988 	* mpf/out_str.c: After outputting `-', decrement n_digits.
   31989 
   31990 Wed Jan  8 02:50:20 1997  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   31991 
   31992 	* mpn/generic/divrem.c: qextra_limbs => qxn.
   31993 
   31994 Wed Dec 18 07:50:46 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   31995 
   31996 	* mpz/tests/t-tdiv.c (SIZE): Increase to 200.
   31997 
   31998 Tue Dec 17 19:32:48 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   31999 
   32000 	* mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem.
   32001 	* gmp.h (mpn_divrem): New function.
   32002 	* mpn/generic/divrem_newton.c: New file.
   32003 	* mpn/configure.in (functions): Add divrem_newton.
   32004 	* make.bat: Likewise.
   32005 
   32006 Thu Dec 12 17:55:13 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32007 
   32008 	* gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_.
   32009 
   32010 Sat Dec  7 09:40:06 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32011 
   32012 	* mpn/alpha/invert-limb.s: New file.
   32013 
   32014 Thu Dec  5 01:25:31 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32015 
   32016 	* mpz/ui_pow_ui.c (mpz_pow2): New (static) function.
   32017 	(mpz_ui_pow_ui): Rewrite.
   32018 
   32019 	* make.bat: `pre_mod_1.c' => `pre_mod_.c'.  Fix typo in path to
   32020 	gmp-mpar.h.
   32021 
   32022 Fri Nov 15 00:49:55 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32023 
   32024 	* mpz/ui_pow_ui.c: Rewrite for better speed.
   32025 
   32026 Fri Nov  1 16:36:56 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32027 
   32028 	* Makefile.in (recursive make rules): Use `&&' instead of `;' as
   32029 	delimiter.
   32030 
   32031 Fri Oct 25 17:12:36 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32032 
   32033 	* gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline.
   32034 
   32035 Thu Oct 24 15:08:19 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32036 
   32037 	* mpn/fujitsu/rshift.c: Fix typo in loop boundaries.
   32038 
   32039 Fri Oct 18 03:13:54 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32040 
   32041 	* mpn/configure.in: Recognize `nextstep' for m68k variants; likewise
   32042 	for x86 variants.
   32043 
   32044 	* mpn/x86/syntax.h (INSND): New macro.
   32045 	* mpn/x86/[lr]shift.S: Use INSND.
   32046 	* mpn/x86/pentium/[lr]shift.S: Likewise.
   32047 	* mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS.
   32048 
   32049 	* gmp-impl.h: In code for determining endianness, test also
   32050 	__BIG_ENDIAN__ and __hppa__.  Remove test of __NeXT__.
   32051 
   32052 Wed Oct 16 03:50:34 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32053 
   32054 	* mpf/set_str.c: Let `prec' determine precision used in
   32055 	exponentiation code; decrease allocation accordingly.
   32056 
   32057 	* mpn/vax: Change `jsob*' to `sob*' in all files.
   32058 
   32059 Tue Oct 15 03:54:06 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32060 
   32061 	* longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient
   32062 	to DImode (divu.d generates a 64-bit quotient).
   32063 
   32064 	* configure.in (m88110*): Fix typo.
   32065 
   32066 	* mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow.
   32067 
   32068 	* gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from
   32069 	float to double.
   32070 	* mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly
   32071 	field.
   32072 
   32073 	* mpf/get_str.c: Let `prec' determine precision used in
   32074 	exponentiation code; decrease allocation accordingly.
   32075 
   32076 Sun Oct 13 03:31:53 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32077 
   32078 	* longlong.h: Major cleanup.
   32079 	(__udiv_qrnnd_c): Compute remainders using multiply and subtract,
   32080 	not explicit `%' operator.
   32081 	(C umul_ppmm): Get rid of a redundant __ll_lowpart.
   32082 
   32083 	* mpz/invert.c: Properly detect all operands that would yield an
   32084 	undefined inverse; make sure the inverse is always positive.
   32085 
   32086 	* mpz/xor.c: New file.
   32087 	* mpz/Makefile.in: Compile it.
   32088 	* make.bat: Likewise.
   32089 	* gmp.h (mpz_xor): Declare.
   32090 
   32091 	* mpz/tests/logic.c: Also test mpz_xor.
   32092 
   32093 	* mpz/lcm.c: Special case for when either operand equals 0.
   32094 
   32095 Sat Oct 12 01:57:09 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32096 
   32097 	* mpn/generic/gcd.c (find_a): Don't inline on x86.
   32098 
   32099 	* Makefile.in (CFLAGS): Default to just `-g'.
   32100 
   32101 	* configure.in: Recognize 386 and 486 wherever other x86 cpus are
   32102 	recognized.
   32103 	* configure.in: Use mt-x86 for all x86 cpus.
   32104 	* config/mt-x86: New file.
   32105 
   32106 	* mpn/alpha/cntlz.s: New file.
   32107 
   32108 Tue Oct  8 00:16:18 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32109 
   32110 	* longlong.h: Define smul_ppmm for Fujitsu vpp/uxp.
   32111 	Rewrite umul_ppmm to actually work on the hardware.
   32112 
   32113 	* mpn/x86/sub_n.S: Avoid parens around displacement of `leal'.
   32114 	* mpn/x86/add_n.S: Likewise.
   32115 
   32116 	* mpn/x86/syntax.h (R): Define differently depending on __STDC__.
   32117 
   32118 Mon Oct  7 16:48:08 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32119 
   32120 	* longlong.h: Don't test for __NeXT__ in outer 68k conditional;
   32121 	add test for __m68k__.
   32122 
   32123 Sun Oct  6 00:59:09 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32124 
   32125 	* gmp.h: Declare mpn_random.
   32126 	* make.bat: Compile mpn/generic/random.c.
   32127 
   32128 	* longlong.h: Define umul_ppmm for Fujitsu vpp/uxp.
   32129 
   32130 	* gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))'
   32131 	with test also for __GNUC_MINOR__.
   32132 
   32133 	* gmp.h: Don't define macros using __builtin_constant_p when using
   32134 	NeXT's compiler.
   32135 
   32136 Fri Oct  4 16:53:50 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32137 
   32138 	* mpz/lcm.c: New file.
   32139 	* mpz/Makefile.in: Compile it.
   32140 	* make.bat: Likewise.
   32141 	* gmp.h (mpz_lcm): Declare.
   32142 
   32143 Wed Sep 25 00:06:21 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32144 
   32145 	* mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is
   32146 	within limits of an `unsigned long int'.
   32147 
   32148 	* mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'.
   32149 
   32150 Tue Sep 24 18:58:20 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32151 
   32152 	* mpz/powm_ui.c: Make result always positive.
   32153 
   32154 	* urandom.h (urandom): Make it return mp_limb_t.
   32155 
   32156 	* gmp-impl.h (CNST_LIMB): New macro.
   32157 	* mpn/mp_bases.c: Use CNST_LIMB.
   32158 	* mpn/generic/hamdist.c (popc_limb): Likewise.
   32159 	* mpn/generic/popcount.c (popc_limb): Likewise.
   32160 	* mpn/generic/perfsqr.c: Likewise.
   32161 
   32162 Fri Sep 20 03:08:10 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32163 
   32164 	* mpz/pprime_p.c: When n <= 3, don't clear out n before using it.
   32165 
   32166 Wed Sep 18 11:22:45 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32167 
   32168 	* mpn/fujitsu/mul_1.c: New file.
   32169 	* mpn/fujitsu/addmul_1.c: New file.
   32170 	* mpn/fujitsu/sub_n.c: New file.
   32171 	* mpn/fujitsu/add_n.c: Mew file.
   32172 
   32173 Sun Sep 15 03:13:02 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32174 
   32175 	* mpn/generic/random.c: New file.
   32176 	* mpn/configure.in (functions): Add `random'.
   32177 
   32178 	* gmp-impl.h (MPN_COPY): Define as annotated inline function for
   32179 	Crays and Fujitsu VPPs.
   32180 
   32181 	* gmp.h (mp_size_t): Define as `int' for non-MPP Cray.
   32182 	(mp_exp_t): Likewise.
   32183 
   32184 	* configure.in: Add support for Fujitsu VPP machines.
   32185 	* mpn/configure.in: Likewise.
   32186 	* config.guess: Likewise.
   32187 	* config.sub: Likewise.
   32188 
   32189 	* mpn/fujitsu/rshift.c: New file.
   32190 	* mpn/fujitsu/lshift.c: New file.
   32191 	* mpn/fujitsu: New directory, for Fujitsu VPP machines.
   32192 
   32193 Wed Sep 11 11:34:38 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32194 
   32195 	* mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n.
   32196 	Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter
   32197 	list to work with __gmpn_mul_basecase.
   32198 	(__gmpn_sqr): New name for impn_sqr_n.
   32199 	Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter
   32200 	list to work with __gmpn_sqr_basecase.
   32201 	(mpn_mul_n): Update calls to match new names and parameter conventions.
   32202 	* gmp-impl.h (MPN_MUL_N_RECURSE): Likewise.
   32203 	(MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE.
   32204 	Update calls to match new names and parameter conventions.
   32205 	* mpn/generic/mul.c: Never perform multiply explicitly here, call
   32206 	__gmpn_mul_basecase instead.
   32207 	Update calls to match new names and parameter conventions.
   32208 
   32209 	* mpn/x86/mul_basecase.S: New file.
   32210 	* mpn/generic/mul_basecase.c: New file.
   32211 	* mpn/generic/sqr_basecase.c: New file.
   32212 
   32213 Wed Sep  4 02:59:21 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32214 
   32215 	* mpz/set_str.c: Let `0b' and `0B' mean base 2.
   32216 
   32217 Fri Aug 30 00:44:00 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32218 
   32219 	* longlong.h (x86 umul_ppmm): Work around GCC bug that was
   32220 	triggered by Aug 28 change.
   32221 
   32222 	* mpbsd/min.c (digit_value_in_base): New function.
   32223 
   32224 	* mpz/set_str.c: Refine allocation size computation, use
   32225 	chars_per_bit_exactly instead of chars_per_limb.
   32226 
   32227 	* mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc.
   32228 
   32229 Wed Aug 28 02:52:14 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32230 
   32231 	* longlong.h (x86 umul_ppmm): Don't cast result operands.
   32232 	(x86 udiv_qrnnd): Likewise.
   32233 	(default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm.
   32234 	(default umul_ppmm): New #define using smul_ppmm.
   32235 	(vax smul_ppmm): New #define.
   32236 	(vax umul_ppmm): Delete.
   32237 	(POWER umul_ppmm): Delete.
   32238 	(IBM 370 smul_ppmm): New #define.
   32239 	(IBM 370 umul_ppmm): Delete.
   32240 	(IBM RT/ROMP smul_ppmm): New #define.
   32241 	(IBM RT/ROMP umul_ppmm): Delete.
   32242 
   32243 Tue Aug 27 01:03:25 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32244 
   32245 	* gmp-impl.h (__gmp_0): Make it `const'.
   32246 
   32247 	* mpn/Makefile.in (clean mostlyclean): Comment out recursive clean
   32248 	of `tests'.
   32249 
   32250 	* mpn/generic/mul.c: Identify when we do squaring, and call
   32251 	impn_sqr_n_basecase/impn_sqr_n as appropriate.  Use
   32252 	KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD.
   32253 	Don't #define KARATSUBA_THRESHOLD.
   32254 
   32255 	* mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD.
   32256 	(impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by
   32257 	Robert Harley.
   32258 	(impn_sqr_n_basecase): Rewrite.
   32259 
   32260 	* gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define.
   32261 	(KARATSUBA_SQR_THRESHOLD): Likewise.
   32262 	(MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD.
   32263 	(MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD.
   32264 
   32265 	* configure.in: Fix typo in last change.
   32266 
   32267 Mon Aug 26 22:25:18 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32268 
   32269 	* mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'.
   32270 	* mpf/random2.c: Likewise.
   32271 
   32272 Sun Aug 25 00:07:09 1996  Torbjorn Granlund  <tege (a] quiet.matematik.su.se>
   32273 
   32274 	* mpz/tests/t-mul.c: Also test squaring.
   32275 
   32276 Fri Aug 16 05:12:08 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32277 
   32278 	* mp_clz_tab.c (__clz_tab): Declare as `const'.
   32279 	* version.c (gmp_version): Likewise.
   32280 	* mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise.
   32281 
   32282 Thu Aug 15 02:34:47 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32283 
   32284 	* gmp.h: Fix typo, `mips__' => `__mips'.
   32285 
   32286 	* mpf/set_str.c: Allow a number to start with a period, if next
   32287 	position contains a digit.
   32288 
   32289 Tue Aug 13 18:41:25 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32290 
   32291 	* mpz/gcdext.c: Get cofactor sign right for negative input operands.
   32292 	Clean up code for computing tt.
   32293 
   32294 	* mpz/invert.c: Get rid of variable `rv'.
   32295 
   32296 	* mpz/divexact.c: Test for zero divisor in special case for zero
   32297 	dividend.
   32298 
   32299 Mon Aug 12 18:04:07 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32300 
   32301 	* mpz/?div_*_ui.c: Special case for division by 0.
   32302 	* mpz/tdiv_q.c: Likewise.
   32303 
   32304 Sat Aug 10 14:45:26 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32305 
   32306 	* mpz/dmincl.c: Special case for division by 0.
   32307 
   32308 	* mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle
   32309 	it when computing size after mpn_divmod_1 call.
   32310 
   32311 	* mp_bpl.c: (__gmp_junk): New variable.
   32312 	(__gmp_0): New constant.
   32313 
   32314 	* gmp-impl.h (DIVIDE_BY_ZERO): New #define.
   32315 
   32316 Fri Aug  9 20:03:27 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32317 
   32318 	* mpz/divexact.c: Test for dividend being zero before testing
   32319 	for small divisors.
   32320 
   32321 Thu Aug  8 13:20:23 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32322 
   32323 	* configure.in: Require operating system specification for cpus
   32324 	where assembly syntax differs between system.
   32325 
   32326 	* Makefile.in (many targets): Change `-' action prefix to `@'.
   32327 
   32328 	* mpn/Makefile.in: (distclean): Fix typo.
   32329 
   32330 	* mpq/cmp_ui.c: Rename function to _mpq_cmp_ui.
   32331 	(mpq_cmp_ui): #undef deleted.
   32332 	* mpz/cmp_si.c: Rename function to _mpz_cmp_si.
   32333 	(mpz_cmp_si): #undef deleted.
   32334 	* mpz/cmp_ui.c: Rename function to _mpz_cmp_ui.
   32335 	(mpz_cmp_ui): #undef deleted.
   32336 	* Makefile.in: Corresponding changes.
   32337 
   32338 	* mpf/get_prc.c: Return the *highest* precision achievable.
   32339 
   32340 	* mpf/get_str.c: Complete rewrite.
   32341 
   32342 	* mpf/set_str.c (swapptr): New #define.
   32343 	(assert): New #define.
   32344 	* mpf/set_str.c: Set prec to one more than the saved _mp_prec.
   32345 	Misc cleanups.
   32346 
   32347 	* mpz/set_str.c: #include string.h.
   32348 	* mpf/out_str.c: #include string.h.
   32349 	* mpbsd/xtom.c: #include string.h and ctype.h.
   32350 	* mpbsd/mout.c: #include string.h.
   32351 
   32352 Wed Aug  7 11:46:04 EDT 1996  Ken Weber <kweber (a] mcs.kent.edu>
   32353 
   32354 	* mpn/generic/gcd.c: Reorder mpn_gcd argument list.
   32355 	* mpz/gcd.c: Change call to mpn_gcd.
   32356 	* gmp.texi: Update manual entry on mpn_gcd.
   32357 	* mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod
   32358 	reentrant.
   32359 
   32360 Wed Aug  7 02:15:38 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32361 
   32362 	* mpf/get_str.c: Rewrite code for converting integral part of a
   32363 	number with both an integral and fractional part.
   32364 
   32365 	* mpf/set_str.c: Get rid of variable xxx.  New variables madj and radj.
   32366 	In exp_in_base==0 case, add madj to msize for EXP field.
   32367 
   32368 	* mpz/tests/t-gcd.c: Test deleted.  Rename t-gcd2.c to t-gcd.c.
   32369 	Increase reps to 2000.
   32370 	* mpz/tests/t-gcd2.c: Get rid of mpz_refgcd.
   32371 
   32372 	* mpf/set_str.c: Ignore excess limbs in MP,MSIZE.
   32373 
   32374 Thu Jul 25 04:39:10 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32375 
   32376 	* mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32".
   32377 
   32378 Wed Jul 24 02:27:02 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32379 
   32380 	* mpn/generic/gcdext.c: Reorganize and clean up.  Get rid of all
   32381 	signed limb arithmetic.
   32382 
   32383 Mon Jul 22 02:39:56 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32384 
   32385 	* mpn/generic/gcdext.c (mpn_gcdext): For large enough operands,
   32386 	work with most significant *two* limbs.
   32387 	(div2): New function (two variants).
   32388 	(THRESHOLD): New #define.
   32389 
   32390 	* mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call.
   32391 
   32392 	* longlong.h (alpha UMUL_TIME): Now 30.
   32393 	(alpha UDIV_TIME): Now 350.
   32394 	(x86 UMUL_TIME): Now 10 (let Pentium decide).
   32395 	(SuperSPARC UDIV_TIME): Override default.
   32396 
   32397 	* extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here.
   32398 
   32399 	* extract-dbl.c: New name for extract-double.c.
   32400 	* insert-dbl.c: New name for insert-double.c.
   32401 	* Makefile.in: Corresponding changes.
   32402 	* make.bat: Likewise.
   32403 
   32404 	* mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp.
   32405 	* mpq/Makefile.in: Likewise.
   32406 	* mpf/Makefile.in: Likewise.
   32407 
   32408 Sat Jul 20 01:35:18 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32409 
   32410 	* mpz/getlimbn.c: Take ABS of integer->_mp_size.
   32411 
   32412 	* mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb.
   32413 
   32414 Thu Jul 18 00:31:15 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32415 
   32416 	* mpn/generic/popcount.c (popc_limb): Use different masking trick
   32417 	for first step (due to David Seal).
   32418 	* mpn/generic/hamdist.c (popc_limb): Likewise.
   32419 
   32420 Wed Jul 17 23:21:48 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32421 
   32422 	* mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs.
   32423 
   32424 Sun Jul 14 17:47:46 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32425 
   32426 	* configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8.
   32427 
   32428 Thu Jul 11 14:05:54 1996  J.T. Conklin  <jtc (a] rtl.cygnus.com>
   32429 
   32430 	* longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
   32431 	for the '020, '030, '040, and '332.  Define count_leading_zeros
   32432 	for the '020, '030, '040, and '060.
   32433 
   32434 Sun Jul 14 15:24:53 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32435 
   32436 	From Joe Keane:
   32437 	* mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp.
   32438 
   32439 Fri Jul 12 17:11:17 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32440 
   32441 	* mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it
   32442 	disabled for now.
   32443 
   32444 	* mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE.
   32445 
   32446 Wed Jul 10 03:17:45 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32447 
   32448 	* cre-mparam.c: Delete obsolete file.
   32449 
   32450 	* gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32.
   32451 	* longlong.h: Test __mips instead of __mips__.
   32452 
   32453 Sun Jul  7 23:19:13 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32454 
   32455 	* longlong.h (_PROTO): Define, unless already defined.
   32456 	(alpha __udiv_qrnnd): Declare using _PROTO.
   32457 	(hppa __udiv_qrnnd): Likewise.
   32458 	(sparc __udiv_qrnnd): Likewise.
   32459 
   32460 Mon Jul  1 01:44:30 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32461 
   32462 	* config.guess: Update from master version; add Cray x90 handling.
   32463 
   32464 Wed Jun 26 05:35:02 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32465 
   32466 	* mpn/power/add_n.s (__mpn_add_n): Work around GAS bug.
   32467 	* mpn/power/sub_n.s (__mpn_sub_n): Likewise.
   32468 
   32469 	* insert-double.c: Rework loop to avoid potential overflow.
   32470 
   32471 	* mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs.
   32472 
   32473 	* mpq/tests/t-get_d.c (SIZE): Special case for vax.
   32474 
   32475 	* gmp.h (mpX_cmp_ui): #define also when ! __GNUC__.
   32476 
   32477 Mon Jun 24 17:13:21 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32478 
   32479 	* longlong.h (vax sdiv_qrnnd): Fix typo.
   32480 
   32481 Sat Jun 15 01:33:33 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32482 
   32483 	* gmp.h: Support `small' and `large' type and function variants,
   32484 	controlled by GMP_SMALL.
   32485 
   32486 	* mpz/Makefile.in (.c.o): Compile each function twice, for small and
   32487 	large variant.
   32488 	(MPZS_OBJS): New variable.
   32489 	(libmpz.a): Include MPZS_OBJS in archive.
   32490 	* mpf/Makefile.in: Analogous changes.
   32491 	* mpq/Makefile.in: Analogous changes.
   32492 
   32493 	* gmp.h: Prefix all functions with __gmp, to allow namespace-clean
   32494 	internal calls.
   32495 
   32496 	* mp.h: Rip out __MP_SMALL__ stuff.
   32497 	(__mpz_struct): mp_size_t => int.
   32498 
   32499 	* mpz/invert.c: #include "gmp-impl.h".
   32500 	Use MPZ_TMP_INIT, not mpz_init.
   32501 
   32502 	* mpz/gcdext.c: Rewrite to call mpn_gcdext.
   32503 
   32504 Fri Jun 14 18:05:29 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32505 
   32506 	* mpn/generic/gcdext.c (s0size): New parameter.
   32507 	* gmp.h (mpn_gcdext): Update prototype.
   32508 
   32509 	* mpn/generic/gcdext.c: Major rewrite.
   32510 
   32511 Mon Jun 10 00:14:27 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32512 
   32513 	* mpn/generic/dump.c: Add missing `else'.
   32514 
   32515 Fri Jun  7 03:35:12 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32516 
   32517 	* Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html.
   32518 
   32519 Thu Jun  6 19:00:53 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32520 
   32521 	* Version 2.0.2 released.
   32522 
   32523 	* install.sh: New file.
   32524 	* Makefile.in (INSTALL): Use install.sh.
   32525 	(install-normal): New name for target `install'.
   32526 	(install): New dummy target.
   32527 
   32528 	* mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0).
   32529 	* mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0).
   32530 
   32531 	* config/mt-linux (AR_FLAGS): New file.
   32532 	* configure.in: Use config/mt-linux for all linux systems.
   32533 
   32534 Tue Jun  4 03:42:18 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32535 
   32536 	* Version 2.0.1 released.
   32537 
   32538 	* mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type.
   32539 
   32540 	* extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if.
   32541 
   32542 	* insert-double.c: Don't #include stdlib.h.
   32543 
   32544 	* gmp-impl.h (union ieee_double_extract): Test sparc and __sparc.
   32545 	Do not test __sparc__.
   32546 
   32547 	* mpf/reldiff.c: Change declaration to work around irix5 compiler bug.
   32548 	* mpq/equal.c: Likewise.
   32549 
   32550 	* mpn/generic/gcd.c: Delete spurious comma at end of enumeration.
   32551 
   32552 	* mpn/generic/gcdext.c: Add K&R declaration syntax.
   32553 	* stack-alloc.h: Likewise.
   32554 	* insert-double.c: Likewise.
   32555 	* extract-double.c: Likewise.
   32556 	* mpf/tests/reuse.c: Likewise.
   32557 	* mpz/tests/reuse.c: Likewise.
   32558 	* mpf/tests/t-sub.c: Likewise.
   32559 	* mpf/tests/t-add.c: Likewise.
   32560 	* mpf/tests/t-muldiv.c: Likewise.
   32561 	* mpf/tests/t-conv.c: Likewise.
   32562 	* mpf/tests/ref.c: Likewise.
   32563 
   32564 	* mpn/config/t-oldgas: Renamed from t-freebsd.
   32565 	* mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux
   32566 	configurations.
   32567 
   32568 	* mpn/powerpc32/mul_1.s: Really clear cy before entering loop.
   32569 	* mpn/powerpc32/*.s: Fix power/powerpc syntax issues.
   32570 
   32571 	* mpn/config/t-ppc-aix: New file.
   32572 	* mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power.
   32573 
   32574 Wed May 29 02:07:31 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32575 
   32576 	* gmp.h (mp_bits_per_limb): Change qualifier from `const' to
   32577 	__gmp_const.
   32578 
   32579 	* gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter.
   32580 	* mpf/iset_str.c: Likewise.
   32581 
   32582 Mon May 27 00:15:58 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32583 
   32584 	* gmp-impl.h: Declare __gmp_extract_double.
   32585 
   32586 	* mpz/set_q.c: Delete unused variables.
   32587 
   32588 	* gmp.h (mpq_equal): Declare.
   32589 
   32590 	* mpf/eq.c: mpf_cmp2 -> mpf_eq.
   32591 
   32592 Fri May 24 03:20:44 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32593 
   32594 	* mpz/iset_d.c: Don't include <math.h>.
   32595 
   32596 	* insert-double.c (__gmp_scale2): New name for scal2.
   32597 	* mpz/get_d.c: Corresponding change.
   32598 	* mpf/get_d.c: Likewise.
   32599 	* mpq/get_d.c: Likewise.
   32600 	* gmp-impl.h: Declare __gmp_scale2.
   32601 
   32602 	* mpn/generic/scan0.c: Clarify comment.
   32603 
   32604 	* mpz/set_q.c: New file.
   32605 	* Makefile.in: Compile it.
   32606 	* make.bat: Likewise.
   32607 	* gmp.h: Declare mpz_set_q.
   32608 
   32609 	* insert-double.c: New file.
   32610 	* Makefile.in: Compile it.
   32611 	* make.bat: Likewise.
   32612 
   32613 	* mpz/get_d.c: New file.
   32614 	* mpz/Makefile.in: Compile it.
   32615 	* make.bat: Likewise.
   32616 	* gmp.h: Declare mpz_get_d.
   32617 
   32618 	* mpf/get_d.c: New file.
   32619 	* mpf/Makefile.in: Compile it.
   32620 	* make.bat: Likewise.
   32621 	* gmp.h: Declare mpf_get_d.
   32622 
   32623 	* make.bat: Compile things in alphabetical order.
   32624 
   32625 	* gmp-impl.h (MP_BASE_AS_DOUBLE): New #define.
   32626 	(LIMBS_PER_DOUBLE): New #define.
   32627 
   32628 	* extract-double.c: New file.
   32629 	* Makefile.in: Compile it.
   32630 	* make.bat: Likewise.
   32631 	* mpz/set_d.c: Rewrite to use __gmp_extract_double.
   32632 	* mpf/set_d.c: Likewise.
   32633 
   32634 	* mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up.
   32635 
   32636 Wed May 22 02:48:35 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32637 
   32638 	* gmp-impl.h: Rework code for defining ieee_double_extract.
   32639 	(IEEE_DOUBLE_BIG_ENDIAN): Macro removed.
   32640 	(_GMP_IEEE_FLOATS): New macro.
   32641 	* mpn/vax/gmp-mparam.h: Delete.
   32642 
   32643 	* mpn/config/t-pwr-aix: New file.
   32644 	* mpn/configure.in: Use t-pwr-aix for aix 4 and later.
   32645 
   32646 Mon May 20 16:30:31 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32647 
   32648 	* gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols.
   32649 
   32650 	* mpf/tests/t-add.c (oo): Add some `l' printf modifiers.
   32651 	* mpf/tests/t-sub.c (oo): Likewise.
   32652 	* mpf/tests/t-conv.c (oo): Likewise.
   32653 	* mpf/tests/t-sqrt.c (oo): Likewise.
   32654 
   32655 	* mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables.
   32656 
   32657 	* mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers.
   32658 
   32659 Fri May 17 02:24:43 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32660 
   32661 	* mpz/set_d.c: Call _mpz_realloc.
   32662 
   32663 	* mpq/set_z.c: New file.
   32664 	* mpq/Makefile.in: Compile it.
   32665 	* make.bat: Likewise.
   32666 	* gmp.h: Declare mpq_set_z.
   32667 
   32668 	* mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in.
   32669 	* mpf/Makefile.in (test): Delete spurious target.
   32670 	* mpq/Makefile.in (test): Likewise.
   32671 
   32672 	* mpf/out_str.c: Use `e' to separate exponent when base <= 10.
   32673 
   32674 	* mpn/configure.in: Treat ultrasparc just like sparc v8,
   32675 	until 64-bit compilers are ready.
   32676 
   32677 	* mpf/set_d.c: Make it work for 64-bit machines.
   32678 
   32679 Thu May 16 20:53:57 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32680 
   32681 	* gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian
   32682 	machines.
   32683 	* mpn/x86/gmp-mparam.h: Delete file.
   32684 
   32685 	* configure.in: Treat microsparc like sparc8.
   32686 
   32687 	* urandom.h: Test __alpha instead of __alpha__, since the former
   32688 	is the standard symbol.
   32689 	* mpn/generic/random2.c: Likewise.
   32690 	* mpf/random2.c: Likewise.
   32691 
   32692 Tue May 14 13:42:39 1996  Torbjorn Granlund  (tege (a] tiny.matematik.su.se)
   32693 
   32694 	* mpz/set_f.c: New file.
   32695 	* mpz/Makefile.in: Compile it.
   32696 	* gmp.h: Declare mpz_set_f.
   32697 
   32698 	* mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms.
   32699 
   32700 Tue May 14 13:03:07 1996  Torbjorn Granlund  (tege (a] tiny.matematik.su.se)
   32701 
   32702 	* make.bat: Add all new files.
   32703 
   32704 Sun May 12 22:24:36 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32705 
   32706 	* mpf/set_z.c: New file.
   32707 	* mpf/Makefile.in: Compile it.
   32708 	* gmp.h: Declare mpf_set_z.
   32709 
   32710 Sat May 11 19:26:25 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32711 
   32712 	* gmp.h: Declare mpf_set_q.
   32713 
   32714 	* mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call.
   32715 
   32716 Fri May 10 17:37:38 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32717 
   32718 	* mpf/set_q.c: New file.
   32719 	* mpf/Makefile.in: Compile it.
   32720 
   32721 	* config.sub: Recognize sparc8.
   32722 
   32723 Wed May  8 09:19:11 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32724 
   32725 	* mpf/tests/t-dm2exp.c: New file.
   32726 
   32727 	* mpf/tests/t-add.c: Correct header comment.
   32728 	* mpf/tests/t-sub.c: Likewise.
   32729 	* mpf/tests/t-sqrt.c: Likewise.
   32730 
   32731 	* mpf/div.c: Misc variable name cleanups.
   32732 	* mpf/div_ui.c: Base more closely on mpf/div.c.
   32733 	* mpf/ui_div.c: Likewise.
   32734 
   32735 	* mpz/tests/Makefile.in (check): Depend on Makefile.
   32736 	* mpq/tests/Makefile.in (check): Likewise.
   32737 	* mpf/tests/Makefile.in (check): Likewise.
   32738 
   32739 	* mpf/tests/t-muldiv.c: New file.
   32740 	* mpf/tests/Makefile.in: Compile and run `t-muldiv'.
   32741 	(t-ref.o): Delete spurious rule.
   32742 
   32743 	* mpf/sqrt.c: Properly detect negative input operand.
   32744 
   32745 	* mpf/sqrt_ui.c: Delete spurious header comment.
   32746 	* mpf/sqrt.c: Likewise.
   32747 	* mpz/sqrt.c: Likewise.
   32748 
   32749 	* mpz/tests/reuse.c (main): Read `reps' from command line.
   32750 
   32751 	* mpf/tests/reuse.c: New file.
   32752 	* mpf/tests/Makefile.in: Compile and run `reuse'.
   32753 
   32754 	* mpf/mul_ui.c: Disable code for removing low zero limbs.
   32755 
   32756 	* mpf/div.c: Fix condition for when vp and qp overlaps.
   32757 
   32758 	* mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs.
   32759 
   32760 	* mpf/out_str.c: Don't output '\n' after exponent.
   32761 
   32762 	* mpf/add_ui.c: New special case for when U is completely cancelled.
   32763 
   32764 Wed Apr 24 05:33:28 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32765 
   32766 	* Version 2.0 released.
   32767 
   32768 	* All files: Update FSF's address.
   32769 
   32770 	* Makefile.in (gmp_toc.html): New name for gmp.html.
   32771 	(TAGS): Depend on force.
   32772 
   32773 	* mpf/tests/t-conv.c: Pass -base to mpf_set_str.
   32774 
   32775 Sat Apr 20 03:54:06 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32776 
   32777 	* Makefile.in (ps): New target, depend on gmp.ps.
   32778 
   32779 Fri Apr 19 14:03:15 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32780 
   32781 	* mpf/out_str.c: Print `@' before exponent, not `e'.
   32782 
   32783 	* make.bat: Update from Makefiles.
   32784 
   32785 Thu Apr 18 01:22:05 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32786 
   32787 	* mpf/set_str.c: If parameter `base' is negative, expect exponent
   32788 	to be decimal, otherwise in the same base as the mantissa.
   32789 
   32790 Wed Apr 17 17:28:36 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32791 
   32792 	* mpf/set_dfl_prec.c: Don't return anything.
   32793 	* gmp.h: Corresponding changes.
   32794 
   32795 	* mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts.
   32796 	* mpf/init2.c: Likewise.
   32797 	* mpf/get_prc.c: Likewise.
   32798 	* mpf/set_prc.c: Likewise.
   32799 	* mpf/set_prc_raw.c: Likewise.
   32800 	* mpz/popcount.c: Likewise.
   32801 	* mpz/hamdist.c: Likewise.
   32802 	* mpz/scan1.c: Likewise.
   32803 	* mpz/scan0.c: Likewise.
   32804 	* mpn/generic/popcount.c: Likewise.
   32805 	* mpn/generic/hamdist.c: Likewise.
   32806 	* mpn/generic/scan1.c: Likewise.
   32807 	* mpn/generic/scan0.c: Likewise.
   32808 	* gmp.h: Likewise.
   32809 
   32810 	* mpf/eq.c: New file, based on mpf/diff.c.
   32811 	* mpf/diff.c: Delete.
   32812 	* mpf/Makefile.in: Corresponding changes.
   32813 	* gmp.h: Likewise.
   32814 
   32815 	* mpf/reldiff.c: New file.
   32816 	* mpf/Makefile.in: Compile it.
   32817 	* gmp.h: Declare mpf_reldiff.
   32818 
   32819 	* mpz/iset_d.c: New file.
   32820 	* mpz/Makefile.in: Compile it.
   32821 	* gmp.h: Declare mpz_init_set_d.
   32822 
   32823 Tue Apr 16 16:28:31 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32824 
   32825 	* Makefile.in (gmp.html): Pass -acc to texi2html.
   32826 
   32827 Mon Apr 15 16:20:24 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32828 
   32829 	* mpf/set_str.c: Switch off code for defaulting the base from the
   32830 	leading characters.
   32831 
   32832 	* gmp.h (mp?_sign): Delete.
   32833 	(mp?_sgn): New macros.
   32834 
   32835 Fri Apr 12 17:23:33 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32836 
   32837 	* Makefile.in (gmp.dvi): Delete tmp.* at end of rule.
   32838 
   32839 Wed Apr 10 22:52:02 1996  Torbjorn Granlund  (tege (a] tiny.matematik.su.se)
   32840 
   32841 	* mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t.
   32842 	* gmp.h: Corresponding change.
   32843 
   32844 	* gmp.h (mp_bits_per_limb): Make it const.
   32845 
   32846 Sat Mar 30 01:20:23 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32847 
   32848 	* configure.in: Re-enable recognition of with_gcc.
   32849 
   32850 	* mpf/Makefile.in (.c.o): Pass XCFLAGS.
   32851 	* mpn/Makefile.in (.c.o): Likewise.
   32852 	* mpz/Makefile.in (.c.o): Likewise.
   32853 	* mpq/Makefile.in (.c.o): Likewise.
   32854 	* mpbsd/Makefile.in (.c.o): Likewise.
   32855 	* mpf/tests/Makefile.in (.c.o): Likewise.
   32856 	* mpz/tests/Makefile.in (.c.o): Likewise.
   32857 	* mpq/tests/Makefile.in (.c.o): Likewise.
   32858 
   32859 	* Makefile.in (XCFLAGS): Default to empty.
   32860 	(FLAGS_TO_PASS): Pass on XCFLAGS.
   32861 	(.c.o): Pass XCFLAGS.
   32862 
   32863 	* config/mt-m88110 (XCFLAGS): Define instead of CC.
   32864 	* config/mt-sprc8-gcc (XCFLAGS): Likewise.
   32865 	* config/mt-supspc-gcc (XCFLAGS): Likewise.
   32866 
   32867 	* configure: Don't default CC to "gcc -O2" is -with-gcc=no was
   32868 	specified.
   32869 
   32870 Mon Mar 25 01:07:54 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32871 
   32872 	* urandom.h: Test for __SVR4 in addition to __svr4__.
   32873 
   32874 	* mp_bpl.c (mp_bits_per_limb): Declare as `const'.
   32875 
   32876 	* Makefile.in (CFLAGS): `-O2' => `-O'.
   32877 	* mpn/Makefile.in (CFLAGS): Likewise.
   32878 
   32879 	* gmp-impl.h: Get rid of obsolete field access macros.
   32880 
   32881 	* mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris
   32882 	cc compiler bug.
   32883 
   32884 	* gmp.h (__MPN): Make it work also for non-ANSI compilers.
   32885 
   32886 Thu Mar 21 01:07:54 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32887 
   32888 	* mpf/sub.c: New special case for ediff <= 1 before generic code.
   32889 	Simplify generic code for ediff == 0.
   32890 	Rename uexp => exp.
   32891 
   32892 Mon Mar 11 18:24:57 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32893 
   32894 	* mpf/tests/*.c: Use ref_mpf_sub for error calculation.
   32895 	* mpf/tests/Makefile.in: Link ref.o to all executables.
   32896 
   32897 	* mpf/tests/t-sub.c: Make u = v + 1 with 50% probability.
   32898 
   32899 Sun Mar 10 21:03:17 1996  Torbjorn Granlund  (tege (a] tiny.matematik.su.se)
   32900 
   32901 	* mpf/get_str.c: In digit development loop for fractions, change
   32902 	loop condition from `<' to `<='.
   32903 
   32904 Thu Mar  7 04:58:11 1996  Torbjorn Granlund  <tege (a] tiny.matematik.su.se>
   32905 
   32906 	* mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning.
   32907 
   32908 Wed Mar  6 01:10:42 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   32909 
   32910 	* mpf/tests/t-sqrt.c: New file.
   32911 	* mpf/tests/Makefile.in: Corresponding changes.
   32912 
   32913 	* mpf/sqrt.c: Special case for square root of zero.
   32914 
   32915 	* mpq/add.c: Clean up variable names.
   32916 	* mpq/sub.c: Update from mpq/add.c.
   32917 
   32918 	* mpz/divexact.c: abs => ABS.
   32919 	* mpz/gcd.c: Likewise.  Rewrite final fixup code, to decrease
   32920 	allocation.  Misc cleanups.
   32921 
   32922 Tue Mar  5 22:24:56 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32923 
   32924 	* mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout.
   32925 
   32926 	* gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes.
   32927 
   32928 	* mpn/configure.in: Use t-freebsd also for netbsd.
   32929 
   32930 Mon Mar  4 15:13:28 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32931 
   32932 	* mpq/Makefile.in (cmp.o): Depend on longlong.h.
   32933 
   32934 	* mpq/equal.c: New file.
   32935 	* mpq/Makefile.in: Corresponding changes.
   32936 
   32937 	* mpf/tests/t-add.c: New file.
   32938 	* mpf/tests/t-sub.c: Renamed from t-addsub.c.
   32939 	* mpf/tests/ref.c: New file.
   32940 	* mpf/tests/Makefile.in: Corresponding changes.
   32941 
   32942 	* gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines.
   32943 
   32944 Sun Mar  3 07:45:46 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32945 
   32946 	* mpf/set_str.c: In exponentiation code, allocate 3 extra
   32947 	limbs, not just 2.
   32948 
   32949 	* mpf/get_str.c: Allocate sufficient space for tstr.
   32950 	When calculating exp_in_base, round result down.
   32951 
   32952 	* mpf/tests/t-conv.c: New file.
   32953 	* mpf/tests/Makefile.in: Corresponding changes.
   32954 
   32955 	* mp_bpl.c: New file.
   32956 	* gmp.h: Declare it.
   32957 	* Makefile.in: Corresponding changes.
   32958 
   32959 Sat Mar  2 06:27:56 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32960 
   32961 	* mpf/set_prc_raw.c: New file.
   32962 	* mpf/set_prc.c: Renamed from set_prec.c.
   32963 	* mpf/get_prc.c: New file.
   32964 	* mpf/Makefile.in: Corresponding changes.
   32965 	* gmp.h: Declare new functions.
   32966 
   32967 	* mpn/generic/gcdext.c: Add copyright header.
   32968 
   32969 Fri Mar  1 01:22:24 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32970 
   32971 	* mpn/configure.in: For ppc601, search "power" before "powerpc32".
   32972 
   32973 	* mp?/Makefile.in (AR_FLAGS): New variable.
   32974 	(libmp?.a): Use it.
   32975 
   32976 	* make.bat: New file.
   32977 	* mpn/msdos: New directory.
   32978 	* mpn/msdos/asm-syntax.h: New file.
   32979 
   32980 	* mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h.
   32981 
   32982 	* config.sub: Recognize [ctj]90-cray.
   32983 
   32984 	* mpn/configure.in: Recognize [ctj]90-cray-unicos*.
   32985 
   32986 	* mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros.
   32987 
   32988 	* mpn/generic/gcd.c: Split increment from use of USIZE to avoid
   32989 	undefined behaviour.
   32990 
   32991 Thu Feb 29 04:11:24 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   32992 
   32993 	* Makefile.in (install-info-files): Update for new install-info
   32994 	behaviour.
   32995 
   32996 	* mpn/power/add_n.s: Rewrite.
   32997 	* mpn/power/sub_n.s: Rewrite.
   32998 
   32999 Wed Feb 28 01:34:30 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33000 
   33001 	* mpz/pow_ui.c: Compute allocation more aggressively for small bases.
   33002 	* mpz/ui_pow_ui.c: Likewise.
   33003 
   33004 	* mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1.
   33005 
   33006 	* mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB.
   33007 	* mpn/generic/gcd.c: Likewise.
   33008 	(SIGN_BIT): Compute differently.
   33009 
   33010 Mon Feb 26 00:07:36 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33011 
   33012 	* All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t.
   33013 
   33014 	* Makefile.in (install, install-bsdmp, install-info-files): Depend
   33015 	on installdirs.  chmod all installed files.
   33016 
   33017 Sun Feb 25 01:47:41 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33018 
   33019 	* mpbsd/configure.in: Delete debugging code.
   33020 
   33021 	* All Makefile.in: Update clean targets.
   33022 
   33023 	* Makefile.in (AR_FLAGS): New variable.
   33024 	(libgmp.a): Use it.
   33025 	(libmp.a): Likewise.
   33026 
   33027 	* VERSION: Delete file.
   33028 
   33029 	* Makefile.in (installdirs): New target.
   33030 	* mkinstalldirs: New file (from the texinfo package).
   33031 
   33032 	* Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables.
   33033 	(MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables.
   33034 	(install-info): New target.
   33035 	(install, install-bsdmp): Depend on install-info.
   33036 	($(srcdir)/gmp.info): Changed from plain gmp.info; put info files
   33037 	into source directory.
   33038 	(distclean, mostlyclean): New targets.
   33039 	(maintainer-clean): New name for realclean.
   33040 	(uninstall): New target.
   33041 	(TAGS): New target.
   33042 	(info, dvi): New targets.
   33043 	(.PHONY): Assign.
   33044 
   33045 	* Makefile.in (install, install-bsdmp): Use INSTALL_DATA.
   33046 
   33047 	* mp{n,z,f,bsd}/move-if-change: Delete.
   33048 
   33049 	* mpbsd/Makefile.in (stamp-stddefh): Delete target.
   33050 
   33051 	* Makefile.in (.c.o): Pass CFLAGS last.
   33052 	* mpbsd/Makefile.in (.c.o): Likewise.
   33053 	* mpf/Makefile.in (.c.o): Likewise.
   33054 	* mpq/Makefile.in (.c.o): Likewise.
   33055 	* mpz/Makefile.in (.c.o): Likewise.
   33056 	* mpn/Makefile.in (.c.o): Likewise.
   33057 	(.S.o): Likewise.
   33058 
   33059 	* memory.c: Change allocation error message.
   33060 
   33061 	* Makefile.in (install): Prefix gmp.h with $(srcdir).
   33062 	(install-bsdmp): Prefix mp.h with $(srcdir).
   33063 
   33064 	* mp{n,z,f,bsd}/{configure,config.sub}: Delete.
   33065 
   33066 	* Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation
   33067 	(install targets): Install gmp.info-N.
   33068 
   33069 Sat Feb 24 03:36:52 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33070 
   33071 	* mpf/get_str.c: Fix typo.
   33072 
   33073 	* mpz/legendre.c: Clarify expression with extra parens.
   33074 
   33075 	* version.c (gmp_version): Not static.
   33076 
   33077 	* mpf/iset_str.c: Properly return error code.
   33078 
   33079 	* mpf/add.c: Delete unused variables.
   33080 	* mpf/inp_str.c: Likewise.
   33081 	* mpq/get_d.c: Likewise.
   33082 
   33083 	* mpn/generic/dump.c: #include <stdio.h>.
   33084 	* mpf/dump.c: Likewise.
   33085 	* mpf/set_str.c: #include <ctype.h>.
   33086 	(strtol): Declare.
   33087 
   33088 	* gmp.h: mpn_sqrt => mpn_sqrtrem.
   33089 
   33090 	* Makefile.in (clean, realclean): Clean in mpbsd.
   33091 	(check): Test in mpf.
   33092 
   33093 	* mpf/Makefile.in (clean): Clean in tests.
   33094 	* mpq/Makefile.in (clean): Clean in tests.
   33095 
   33096 	* mpf/tests/Makefile.in: New file.
   33097 	* mpf/tests/configure.in: New file.
   33098 	* mpf/tests/t-addsub.c: New file.
   33099 
   33100 	* mpf/sub_ui.c: Simply call mpf_sub for now.
   33101 
   33102 	* mpf/sub.c: Increase prec by 1.
   33103 	* mpf/ui_sub.c: Likewise.
   33104 
   33105 Fri Feb 23 00:59:54 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33106 
   33107 	* mpf/ui_sub.c: Fix typos.
   33108 
   33109 	* mpf/get_str.c: When allocating space for tmp, allow for an extra
   33110 	limb.  In code for fraction conversion, add special case for bases
   33111 	that are a power of 2.
   33112 
   33113 	* mpf/out_str.c: Output leading "0.".
   33114 	Default base to 10, before computing string allocation.
   33115 
   33116 	* mpf/get_str.c: Make variables for string size have type size_t.
   33117 	* gmp.h: Corresponding change.
   33118 
   33119 	* mpf/random2.c: Allow creation of prec+1 large mantissas.
   33120 
   33121 	* mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0.
   33122 	Fix typo in MPN_COPY offset.
   33123 	* mpf/sub_ui.c: Analogous changes.
   33124 
   33125 	* mpf/set_prec.c: Rewrite.
   33126 
   33127 	* mpf/init2.c: Compute precision as in set_prec.c.
   33128 
   33129 	* mpf/div_2exp.c: Special case for u == 0.
   33130 	* mpf/mul_2exp.c: Likewise.  Write r->_mp_size always.
   33131 
   33132 	* mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem.
   33133 	* mpf/sqrt.c: Likewise.  When computing new exponent, round quotient
   33134 	towards -infinity.
   33135 
   33136 	* mpf/add.c: Fix typos.
   33137 	* mpf/sub.c: Fix typos.
   33138 
   33139 Thu Feb 22 00:24:48 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33140 
   33141 	* mpz/Makefile.in (stamp-stddefh): Delete target.
   33142 	(test): Delete target.
   33143 	* Makefile.in (stamp-stddefh): Delete target.
   33144 	(cre-stddefh.o): Delete target.
   33145 	(gmp.dvi): Set TEXINPUTS before invoking tex.
   33146 
   33147 	* cre-stddefh.c: Delete.
   33148 
   33149 	* mpz/sqrt.c: Fix typo.
   33150 
   33151 	* mpz/powm.c: Special case for mod == 0.
   33152 	* mpz/powm_ui.c: Likewise.
   33153 
   33154 	* mpz/get_si.c: Handle -0x80000000 correctly.
   33155 
   33156 	* mpz/inp_str.c: Now returns size_t.
   33157 	Make it return number of bytes read or error indication.
   33158 	* mpf/inp_str.c: Likewise.
   33159 
   33160 	* mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications.
   33161 	* mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base.
   33162 	* mpz/inp_binary.c: Delete.
   33163 
   33164 	* mpn/Makefile.in (XCFLAGS): Remove variable.
   33165 	(.c.o): Don't pass XCFLAGS.
   33166 	(SFLAGS): Set to nothing.
   33167 	(.S.o): Pass SFLAGS, not XCFLAGS.
   33168 
   33169 	* mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS.
   33170 
   33171 	* mpf/out_str.c: Make return number of bytes written or error
   33172 	indication.
   33173 	* mpz/out_str.c: Likewise.
   33174 	* gmp.h: Corresponding changes.
   33175 
   33176 	* gmp.h (__mpz_struct): mp_size_t => int.
   33177 	(__mpq_struct): Likewise.
   33178 	(__mpf_struct): Likewise.
   33179 	(mp_size_t): int => long int.
   33180 
   33181 	* mpn/cray: New directory.
   33182 	* mpn/cray/gmp-mparam.h: New file.
   33183 	* mpn/configure.in: Recognize cray variants.
   33184 
   33185 	* Makefile.in: Set defaults for prefix, libdir, etc.
   33186 	(install): New target.
   33187 	(install-bsdmp): New target.
   33188 	(gmp.html): New target.
   33189 
   33190 	* stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison.
   33191 
   33192 Wed Feb 21 04:35:02 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33193 
   33194 	* gmp.h: Sort mpn declarations.
   33195 	(mpn_gcdext): Add declaration.
   33196 
   33197 	* mpn/generic/divrem_1.c: New file.
   33198 	* mpn/Makefile.in (divrem_1.o): New rule.
   33199 	* configure.in (functions): Add divrem_1.
   33200 
   33201 	* mpn/generic/divmod.c: Delete file.
   33202 	* mpn/configure.in (functions): Delete divmod.
   33203 	* Makefile.in (divmod.o): Delete rule.
   33204 	* gmp.h (mpn_divmod): New #define.
   33205 
   33206 	* gmp.h (mpn_next_bit_set): Delete spurious declaration.
   33207 
   33208 	* mpn/generic/divrem.c (default case): In code assigning
   33209 	most_significant_q_limb, move reassignment of n0 into if statement.
   33210 
   33211 	* gmp.h (mpf_inp_str): Fix typo.
   33212 	(mpf_out_str): Make prototype match reality.
   33213 	* mpf/inp_str.c: New file.
   33214 	* mpf/out_str.c: New file.
   33215 	* mpf/Makefile.in: Compile new files.
   33216 
   33217 	* mpn/Makefile.in (dump.o): Fix dependency path.
   33218 	(inlines.o): Likewise.
   33219 
   33220 	* mpn/configure.in: Make m68060 be the same as m68000.  Clean up
   33221 	m68k configs.
   33222 
   33223 Tue Feb 20 01:35:11 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33224 
   33225 	* mpn/generic/sqrtrem.c: Renamed from sqrt.
   33226 	* mpn/configure.in (functions): Corresponding change.
   33227 	* mpn/Makefile.in: Likewise.
   33228 	* mpz/sqrtrem.c: Likewise.
   33229 	* mpz/sqrt.c: Likewise.
   33230 	* mpn/generic/perfsqr.c: Likewise.
   33231 
   33232 	* Makefile.in (clean): Also remove libmp.a.
   33233 	Don't compile cre-conv-tab.c or mp_bases.c.
   33234 	cre-conv-tab.c: Delete file.
   33235 	(gmp.ps): New rule.
   33236 
   33237 	* mpn/mp_bases.c: New file.
   33238 	* mpn/Makefile.in: Compile mp_bases.c.
   33239 
   33240 	* mpz/set_str.c: Skip initial whitespace.
   33241 	* mpf/set_str.c: Likewise.
   33242 	* mpbsd/xtom.c: Likewise.
   33243 
   33244 	* gmp.h: Add missing mpz declarations.
   33245 	Delete all formal parameter names from declarations.
   33246 
   33247 	* mpn/Makefile.in: Add dependencies for .c files.
   33248 
   33249 	* Makefile.in (check): Write recursive make calls separately, not as
   33250 	a loop.
   33251 	(FLAGS_TO_PASS): New variable.  Use it for most recursive makes.
   33252 
   33253 Mon Feb 19 01:02:20 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33254 
   33255 	* mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete
   33256 	lines starting with #.
   33257 	(CPP): Set to $(CC) -E to avoid gcc dependency.
   33258 
   33259 	* mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX.
   33260 
   33261 	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment
   33262 	code.
   33263 	* mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise.
   33264 
   33265 	* gmp.h: Fix typos in #defines of recently added mpn functions.
   33266 
   33267 	* mpz/inp_str.c: Skip all whitespace, not just plain space.
   33268 	* mpbsd/min.c: Likewise.
   33269 
   33270 	* mpn/configure.in (functions): Add gcdext.
   33271 	* mpn/generic/gcdext.c: New file.
   33272 
   33273 	* mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp.
   33274 
   33275 	* gmp.h: Surround mpn declarations with extern "C" { ... }.
   33276 
   33277 	* Makefile.in (check): New target.
   33278 
   33279 	* mpq/get_d.c: Update comments.  Use rsize instead of dsize + N_QLIMBS
   33280 	when possible.  Add special case for nsize == 0.
   33281 
   33282 	* gmp.h (mpq_get_d): Add declaration.
   33283 	(mpq_canonicalize): Likewise.
   33284 	(mpq_cmp_ui): Likewise.
   33285 	(mpf_diff): Likewise.
   33286 	(mpf_ui_sub): Likewise.
   33287 	(mpf_set_prec): Likewise.
   33288 	(mpf_random2): Likewise.
   33289 
   33290 	* gmp.h (mpz_cmp_ui): New #define.
   33291 	(mpz_cmp_si): New #define.
   33292 	(mpq_cmp_ui): New #define.
   33293 	(mpz_sign): New #define.
   33294 	(mpq_sign): New #define.
   33295 	(mpf_sign): New #define.
   33296 	(mpq_numref): New #define.
   33297 	(mpq_denref): New #define.
   33298 
   33299 	* mpq/set_z.c: File deleted.
   33300 	* mpq/Makefile.in: Corresponding changes.
   33301 
   33302 Sun Feb 18 01:34:47 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33303 
   33304 	* mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc.
   33305 
   33306 	* mpz/inp_binary.c: Default stream to stdin.
   33307 	* mpz/inp_str.c: Likewise.
   33308 	* mpz/inp_raw.c: Likewise.
   33309 	* mpz/out_binary.c: Default stream to stdout.
   33310 	* mpz/out_raw.c: Likewise.
   33311 	* mpz/out_str.c: Likewise.
   33312 
   33313 	* mpbsd/realloc.c: New file.
   33314 	* mpbsd/Makefile.in: Corresponding changes.
   33315 
   33316 	* mpbsd/min.c: Rewrite (base on mpz/inp_str.c).
   33317 	* mpbsd/mtox.c: Rewrite (base on mpz/get_str.c).
   33318 
   33319 	* mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output
   33320 	spaces in each 10th position.
   33321 	* mpbsd/xtom.c: Rewrite (base on mpz/set_str).
   33322 
   33323 	* mpq/tests/Makefile.in (st-cmp): New file.
   33324 	* mpq/tests/configure.in (srcname): New file.
   33325 
   33326 	* mpz/tests/configure.in (srcname): Fix typo.
   33327 
   33328 	* mpq/cmp.c: Add check using number of significant bits, to avoid
   33329 	general multiplication.
   33330 
   33331 Sat Feb 17 11:58:30 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33332 
   33333 	* mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls.
   33334 
   33335 	* mpq/tests: New directory.
   33336 	* mpq/tests/t-cmp.c: New file.
   33337 	* mpq/tests/t-cmp_ui.c: New file.
   33338 
   33339 	* mpz/tests/dive.c (main): Generate zero numerator.
   33340 	(get_random_size) : Delete.
   33341 
   33342 	* mpz/divexact.c: Add special case for 0/x.
   33343 
   33344 	* gmp.h (mpz_mod): Add declaration.
   33345 
   33346 Fri Feb 16 18:18:39 1996  Andreas Schwab  <schwab (a] informatik.uni-dortmund.de>
   33347 
   33348 	* mpn/m68k/*: Rewrite code not to use the INSN macros.
   33349 	(L): New macro to properly prefix local labels for ELF.
   33350 
   33351 Fri Feb 16 00:20:56 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33352 
   33353 	* gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for
   33354 	fields.
   33355 	* mpn/generic/inlines.c (_FORCE_INLINES): New #define.  Delete
   33356 	conditional __GNUC__.
   33357 	* gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1):
   33358 	Only define these if __GNUC__ || _FORCE_INLINES.
   33359 	* mpf/random2.c: Add missing parameter in non-ANSI header.
   33360 	* mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug
   33361 	in AIX compilers.
   33362 	* mpq/get_d.c: #define N_QLIMBS.
   33363 	* mpz/divexact.c: Obscure division by 0 to silent compiler warnings.
   33364 	* stack-alloc.c: Cast void* pointer to char* before doing arithmetic
   33365 	on it.
   33366 
   33367 	* Makefile.in (mpbsd/libmpbsd.a): New rule.
   33368 	* configure.in (configdirs): Add mpbsd.
   33369 
   33370 	* gmp.h: Add declarations for a few missing mpn functions.
   33371 
   33372 	* Makefile.in (libmp.a): New rule.
   33373 
   33374 	* mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c"
   33375 	* gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block.
   33376 	* mp.h: Likewise.  Update typedefs from gmp.h.
   33377 	* mpbsd/configure.in: New file.
   33378 	* mpbsd/Makefile.in: New file.
   33379 	* mpbsd/configure: Link to master configure.
   33380 	* mpbsd/config.sub: Link to master config.sub.
   33381 
   33382 	* Makefile.in: Set RANLIB_TEST.
   33383 	* (libgmp.a): Use it.
   33384 	* (libgmp.a): Do ranlib before moving the libgmp.a to the build
   33385 	directory.
   33386 	* mp?/Makefile.in: Don't use or set RANLIB.
   33387 
   33388 Thu Feb 15 16:38:41 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33389 
   33390 	* mpz/add_ui.c: MP_INT => mpz_t.
   33391 	* mpz/cmp_ui.c: Likewise.
   33392 	* mpz/fac_ui.c: Likewise.
   33393 	* mpz/inp_binary.c: Likewise.
   33394 	* mpz/inp_raw.c: Likewise.
   33395 	* mpz/legendre.c: Likewise.
   33396 	* mpz/jacobi.c: Likewise.
   33397 	* mpz/out_binary.c: Likewise.
   33398 	* mpz/out_raw.c: Likewise.
   33399 	* mpz/random2.c: Likewise.
   33400 	* mpz/random.c: Likewise.
   33401 	* mpz/realloc.c: Likewise.
   33402 
   33403 	* mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0),
   33404 	__mpz_odd_less1_2factor => mpz_scan1(X,1).
   33405 	* mpz/ntsup.c: File deleted.
   33406 	* mpz/Makefile.in: Corresponding changes.
   33407 
   33408 	* mpz/pprime_p: Use mpz_scan1 to avoid looping.
   33409 
   33410 	* mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'.
   33411 	* mpz/pprime_p.c: Pass long to *_ui functions.
   33412 	* mpz/gcdext.c: Likewise.
   33413 	* mpz/fdiv_r_2exp.c: Likewise.
   33414 	* mpz/fac_ui.c: Likewise.
   33415 
   33416 	* mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0.
   33417 
   33418 	* mpz/tests/Makefile.in (st-sqrtrem): Fix typo.
   33419 
   33420 	* mpz/cmp_ui.c: #undef mpz_cmp_ui.
   33421 	* mpz/cmp_si.c: #undef mpz_cmp_si.
   33422 	* gmp.h (mpz_cmp_ui): New #define.
   33423 	(mpz_cmp_si): New #define.
   33424 
   33425 Wed Feb 14 22:11:24 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33426 
   33427 	* gmp.h: Test __cplusplus in addition to __STDC__.
   33428 	* gmp-impl.h: Likewise.
   33429 
   33430 	* gmp.h: Surround declarations with extern "C" { ... }.
   33431 
   33432 Tue Feb 13 15:20:45 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33433 
   33434 	* mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE.
   33435 	* mpz/tdiv_r_2exp.c: Likewise.
   33436 
   33437 	* mpz/fdiv_r_2exp.c: New file.
   33438 	* mpz/fdiv_q_2exp.c: New file.
   33439 	* mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c.
   33440 	* mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c
   33441 	* mpz/Makefile.in: Corresponding changes.
   33442 
   33443 	* mpz/scan0.c,scan1.c: New files.
   33444 	* mpz/Makefile.in: Compile them.
   33445 
   33446 	* gmp.h (mpn_normal_size): Delete.
   33447 
   33448 	* config.guess: Update from Cygnus version.
   33449 
   33450 	* mpn/m68k/rshift.S: Use INSN2 macro for lea instructions.
   33451 	* mpn/m68k/lshift.S: Likewise.
   33452 
   33453 	* mpn/configure.in: Fix configuration for plain 68000.
   33454 
   33455 Mon Feb 12 01:06:06 1996  Torbjorn Granlund  <tege (a] matematik.su.se>
   33456 
   33457 	* mpz/tests/t-powm.c: Generate negative BASE operand.
   33458 
   33459 	* mpz/powm.c: Make result always positive.
   33460 
   33461 Sun Feb 11 01:44:56 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33462 
   33463 	* mpz/tests/*.c: Add t- prefix.
   33464 	* mpz/tests/Makefile.in: Corresponding changes.
   33465 	* mpz/tests/configure.in: Update srctrigger.
   33466 
   33467 	* mpz/tests/gcd.c: Generate negative operands.
   33468 	* mpz/tests/gcd2.c: Likewise.
   33469 
   33470 	* mpz/gcdext.c: At end, if G is negative, negate all G, S, and T.
   33471 
   33472 Thu Feb  8 17:16:12 UTC 1996 Ken Weber <kweber (a] mat.ufrgs.br>
   33473 
   33474 	* mp{z,n}/gcd.c: Change mpn_gcd interface.
   33475 	* gmp.h: Ditto.
   33476 	* gmp.texi: update documentation.
   33477 
   33478 Mon Feb  7 23:58:43 1996  Andreas Schwab  <schwab (a] informatik.uni-dortmund.de>
   33479 
   33480 	* mpn/m68k/{lshift,rshift}.S: New files.
   33481 	* mpn/m68k/syntax.h: New ELF_SYNTAX macros.
   33482 	(MEM_INDX, R, PROLOG, EPILOG): New macros.
   33483 	* mpn/m68k/*.S: Use R macro with register name.  Use PROLOG and EPILOG
   33484 	macros.  Rename `size' to `s_size' or s1_size to avoid clash with ELF
   33485 	.size directive.
   33486 	* mpn/configure.in: New target m68k-*-linux*.
   33487 
   33488 Wed Feb  7 07:41:31 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33489 
   33490 	* Makefile.in (cre-conv-tab): Workaround for SunOS make.
   33491 
   33492 	* mpz/tests/reuse.c: New file.
   33493 	* mpz/tests/Makefile.in: Handle reuse.c.
   33494 
   33495 Tue Feb  6 11:56:24 UTC 1996 Ken Weber <kweber (a] mat.ufrgs.br>
   33496 
   33497 	* mpz/gcd.c: Fix g->size when one op is 0 and g == other op.
   33498 
   33499 Tue Feb  6 01:36:39 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33500 
   33501 	* gmp.h (mpz_divexact): Delete parameter names.
   33502 	(mpz_lcm): Delete spurious declaration.
   33503 
   33504 	* mpz/dmincl.c: Fix typo.
   33505 
   33506 Mon Feb  5 01:11:56 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33507 
   33508 	* mpn/generic/gcd.c (gcd_2): Declare consistently.
   33509 
   33510 	* mpz/tdiv_q.c: Optimize division by a single-limb divisor.
   33511 	* mpz/dmincl.c: Likewise.
   33512 
   33513 	* mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size.
   33514 	* mpz/sub.c: Likewise.
   33515 	* mpn/generic/sqrt.c: Likewise.
   33516 
   33517 	* mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the
   33518 	destination arrays.
   33519 
   33520 Fri Feb  2 02:21:27 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33521 
   33522 	* mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files.
   33523 	* mpz/Makefile.in: Compile them.
   33524 
   33525 	* mpn/Makefile.in (INCLUDES): Don't search in `generic'.
   33526 
   33527 Thu Feb  1 02:15:11 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33528 
   33529 	Change from Ken Weber:
   33530 	* mpz/divexact.c: Make it work when quot is identical to either input.
   33531 
   33532 	* mpf/ui_sub.c: New file.
   33533 	* mpf/Makefile.in: Compile it.
   33534 
   33535 	* gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC.
   33536 	* mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since
   33537 	these use MPZ_TMP_INIT.
   33538 	* mpz/mod.c: Likewise.
   33539 	* mpq/{add,sub}.c: Likewise.
   33540 	* mpq/canonicalize: Likewise.
   33541 
   33542 	* mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t.
   33543 	* mpq/canonicalize.c: Likewise.
   33544 
   33545 Wed Jan 31 01:45:00 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33546 
   33547 	* mpn/generic/gcd.c: Misc changes from Ken.
   33548 
   33549 	* mpz/tests/gcd2.c: New file.
   33550 	* mpz/tests/Makefile.in: Handle gcd2.c.
   33551 
   33552 	* mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize,
   33553 	not orig_vsize.  Fix parameter declaration.
   33554 
   33555 	* mpz/mod_ui.c: Delete file.
   33556 	* mpz/Makefile.in: Don't try to compile mod_ui.
   33557 
   33558 	* mpz/cdiv_*_ui.c): Make them work right.
   33559 	* gmp.h: Declare cdiv*.
   33560 
   33561 Tue Jan 30 02:22:56 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33562 
   33563 	* mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c,
   33564 	cdiv_r_ui.c,cdiv_ui.c}: New files.
   33565 	* mpz/Makefile.in: Compile them.
   33566 
   33567 	* All files: Make file permissions right.
   33568 
   33569 	Changes from Ken Weber:
   33570 	* mpn/generic/accelgcd.c: Delete.
   33571 	* mpn/generic/bingcd.c: Delete.
   33572 	* mpn/generic/numbits.c: Delete.
   33573 	* mpn/generic/gcd.c: New file.
   33574 	* mpn/configure.in (functions): Update accordingly.
   33575 	* mpz/divexact.c: New file.
   33576 	* mpz/Makefile.in: Compile divexact.c.
   33577 	* mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn.
   33578 	* gmp.h: declare new functions, delete obsolete declarations.
   33579 	* mpz/tests/dive.c: New file.
   33580 	* mpz/tests/Makefile.in: Handle dive.c.
   33581 
   33582 Mon Jan 29 03:53:24 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33583 
   33584 	* mpz/random.c: Handle negative SIZE parameter.
   33585 
   33586 	* mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c.
   33587 	* mpz/tests/tst-mdm(_ui).c: Delete.
   33588 	* mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui).
   33589 	* mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming.
   33590 	* mpz/tests/Makefile.in: Corresponding changes.
   33591 	* mpz/tests/configure.in: Update srctrigger.
   33592 
   33593 	* mpn/generic/divmod.c: Update from divrem.
   33594 	* mpn/generic/divrem.c: Misc cleanups.
   33595 
   33596 Sun Jan 28 03:25:08 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33597 
   33598 	* All files: Use new TMP_ALLOC interface.
   33599 
   33600 	* mpz/powm_ui.c: Make Jan 25 changes to powm.c also here.
   33601 
   33602 	* mpz/tests/powm_ui.c: New file.
   33603 	* mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui.
   33604 
   33605 	* Makefile.in: Update dependency list.
   33606 	* mpf/Makefile.in: Likewise.
   33607 	* mpz/Makefile.in: Likewise.
   33608 	* mpq/Makefile.in: Likewise.
   33609 	* Makefile.in: Set RANLIB simply to ranlib, and allow configure
   33610 	to override it.
   33611 
   33612 	* mpz/Makefile.in (conf): Delete spurious target.
   33613 	(mp_bases.c): Delete.
   33614 	(cre-conv-tab rules): Delete.
   33615 
   33616 	* Makefile.in (cre-conv-tab): Greatly simplify.
   33617 
   33618 Sat Jan 27 13:38:15 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33619 
   33620 	* stack-alloc.c: New file.
   33621 	* stack-alloc.h: New file.
   33622 
   33623 	* gmp.h (__gmp_inline): Define using __inline__.
   33624 
   33625 Thu Jan 25 00:28:37 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33626 
   33627 	* mpn/generic/scan0.c: New file.
   33628 	* mpn/generic/scan1.c: Renamed from next_bit.c.
   33629 	* mpn/configure.in (functions): Include scan0 and scan1.
   33630 
   33631 	* mpn/m68k/*: #include sysdep.h.  Use C_GLOBAL_NAME.
   33632 
   33633 	* configure: Update from Cygnus version.
   33634 	* config.guess: Likewise.
   33635 	* config.sub: Likewise.
   33636 	* configure: Pass --nfp to recursive configures.
   33637 
   33638 	* mpz/tests/tst-*.c: Adjust SIZE and reps.
   33639 
   33640 	* mpz/powm.c: Move esize==0 test earlier.
   33641 	In final reduction of rp,rsize, don't call mpn_divmod unless
   33642 	reduction is really needed.
   33643 
   33644 	* mpz/tests/tst-powm.c: Fix thinko in checking code.
   33645 
   33646 	* All files: Get rid of `__' prefix from mpn_* calls and declarations.
   33647 	* gmp.h: #define __MPN.
   33648 	* gmp.h: Use __MPN in #defines for mpn calls.
   33649 
   33650 	* mpn/generic/mul_n.c: Prepend `i' to internal routines.
   33651 	* gmp-impl.h: Add #defines using __MPN for those internal routines.
   33652 
   33653 	* mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n.
   33654 
   33655 Wed Jan 24 13:28:19 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33656 
   33657 	* mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S.
   33658 	* mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S.
   33659 	* mpn/sparc32/v8/supersparc: New directory.
   33660 	* mpn/sparc32/v8/supersparc/udiv.S: New file.
   33661 
   33662 Tue Jan 23 01:10:11 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33663 
   33664 	This major contribution is from Ken Weber:
   33665 	* mpn/generic/accelgcd.c: New file.
   33666 	* mpn/generic/bdivmod.c: New file.
   33667 	* mpn/generic/bingcd.c: New file.
   33668 	* mpn/generic/gcd_1.c: Rewrite.
   33669 	* mpn/generic/numbits.c: New file (to go away soon).
   33670 	* mpz/gcd.c: Rewrite.
   33671 	* mpz/tests/tst-gcd.c (SIZE): Now 128.
   33672 	* gmp.h: Declare new functions.
   33673 	* mpn/configure.in (functions): List new files.
   33674 	* gmp-impl.h (MPN_SWAP): Delete.
   33675 	(MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete.
   33676 	(MPN_COMPL_INCR, MPN_COMPL): Delete.
   33677 
   33678 Mon Jan 22 02:04:59 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33679 
   33680 	* gmp.h (mpn_name): New #define.
   33681 
   33682 	* mpn/m88k/mc88110/addmul_1.s: New file.
   33683 	* mpn/m88k/mc88110/add_n.S: New file.
   33684 	* mpn/m88k/mc88110/sub_n.S: New file.
   33685 
   33686 	* mpn/m88k/sub_n.s: Correctly initialize carry.
   33687 
   33688 	* mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'.
   33689 
   33690 Sun Jan 21 00:04:35 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33691 
   33692 	* mpn/sparc64/addmul_1.s: New file.
   33693 	* mpn/sparc64/submul_1.s: New file.
   33694 	* mpn/sparc64/rshift.s: New file.
   33695 
   33696 Sat Jan 20 00:32:54 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33697 
   33698 	* mpz/iset.c: Fix typo introduced Dec 25.
   33699 
   33700 Wed Jan 17 13:16:44 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33701 
   33702 	* config/mt-sprc8-gcc: New name for mt-sparc8-gcc.
   33703 	* config/mt-sparcv8-gcc: Delete.
   33704 	* configure.in: Corresponding changes.
   33705 
   33706 Tue Jan 16 16:31:01 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33707 
   33708 	* gmp-impl.h: #include alloca.h when necessary.
   33709 
   33710 	* longlong.h: Test __alpha instead of __alpha__, since the former
   33711 	is the standard symbol.
   33712 
   33713 Mon Jan 15 18:06:57 1996  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33714 
   33715 	* mpn/sparc64/mul_1.s: Swap operands of mulx instructions.
   33716 	* mpn/sparc64/lshift.s: New file.
   33717 
   33718 Fri Dec 29 17:34:03 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33719 
   33720 	* mpn/x86/pentium/add_n.S: Get rid of #defines for register names.
   33721 	* mpn/x86/pentium/sub_n.S: Likewise.
   33722 
   33723 Thu Dec 28 03:16:57 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33724 
   33725 	* mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update
   33726 	of loop induction variable and load insn at beginning of loop.
   33727 	* mpn/x86/pentium/addmul_1.S: Likewise.
   33728 	* mpn/x86/pentium/submul_1.S: Likewise.
   33729 
   33730 Mon Dec 25 23:22:55 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33731 
   33732 	* All files: Prefix user-visible structure fields with _mp_.
   33733 
   33734 Fri Dec 22 20:42:17 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33735 
   33736 	* mpn/configure.in (m68k configs): Terminate path variable with
   33737 	plain "m68k".
   33738 
   33739 Fri Dec 22 03:29:33 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33740 
   33741 	* mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to
   33742 	clean things up.
   33743 
   33744 	* mpn/configure.in (m68k configs): Update #include path for new
   33745 	mpn directory organization.
   33746 
   33747 Tue Dec 12 02:53:02 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33748 
   33749 	* gmp.h: Prefix all structure field with _mp_.
   33750 	* gmp-impl.h: Define access macros for these fields.
   33751 
   33752 Sun Dec 10 00:47:17 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33753 
   33754 	* mpn/alpha/addmul_1.s: Prefix labels with `.'.
   33755 	* mpn/alpha/submul_1.s: Likewise.
   33756 	* mpn/alpha/[lr]shift.s: Likewise.
   33757 	* mpn/alpha/udiv_qrnnd.S: Likewise.
   33758 	* mpn/alpha/ev5/[lr]shift.s: Likewise.
   33759 
   33760 	* mpn/alpha/ev5/lshift.s: Fix typos.
   33761 
   33762 Fri Dec  1 14:28:20 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33763 
   33764 	* mpn/Makefile.in (.SUFFIXES): Define.
   33765 
   33766 Wed Nov 29 23:11:57 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33767 
   33768 	* mpn/sparc64/{add_n.s, sub_n.s}: New files.
   33769 
   33770 Tue Nov 28 06:03:13 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33771 
   33772 	* mpn/x86/syntax.h: Handle ELF_SYNTAX.
   33773 	Rename GAS_SYNTAX => BSD_SYNTAX.
   33774 
   33775 	* mpn/configure.in: Handle linuxelf and SysV for x86 variants.
   33776 
   33777 Mon Nov 27 01:32:12 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33778 
   33779 	* mpn/hppa/hppa1_1/pa7100/submul_1.S: New file.
   33780 
   33781 Sun Nov 26 04:30:47 1995  Torbjorn Granlund  <tege (a] noisy.matematik.su.se>
   33782 
   33783 	* mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file.
   33784 
   33785 	* mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores.
   33786 	* mpn/sparc32/sub_n.S: Likewise.
   33787 
   33788 Fri Nov 17 00:18:46 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33789 
   33790 	* mpn/configure.in: Handle m68k on NextStep.
   33791 
   33792 Thu Nov 16 02:30:26 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33793 
   33794 	* mpn: Reorganize machine-specific directories.
   33795 	* mpn/configure.in: Corresponding changes.
   33796 	(sh, sh2): Handle these.
   33797 	(m68k targets): Create asm-syntax.h.
   33798 
   33799 Thu Nov  9 02:20:50 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33800 
   33801 	* mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort.
   33802 	(____mpn_mul_n): Likewise.
   33803 
   33804 Tue Nov  7 03:25:12 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33805 
   33806 	* mpf/get_str.c: In exponentiation code (two places), don't swap
   33807 	input and output areas when calling mpn_mul_1.
   33808 	* mpf/set_str.c: Likewise.
   33809 
   33810 Fri Nov  3 02:35:58 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33811 
   33812 	* mpf/Makefile.in: Make sure all objects are listed in dependency list;
   33813 	delete spurious entries.
   33814 
   33815 	* mpf/mul.c: Handle U or V being 0.  Allow prec+1 for result precision.
   33816 
   33817 	* mpf/set_prec.c: New computation of limb precision.
   33818 	* mpf/set_dfl_prec.c: Likewise.
   33819 
   33820 	* mpf/random2.c: Fix typo computing exp.
   33821 	* mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of
   33822 	the user-requested number of digits, n_digits.
   33823 
   33824 Thu Nov  2 16:25:07 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33825 
   33826 	* mpn/generic/divrem.c (case 2): Don't move np vector back, it is
   33827 	never read.
   33828 	(default case): Put most significant limb from np in new variable n2;
   33829 	decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize].
   33830 
   33831 Wed Nov  1 02:59:53 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33832 
   33833 	* mpn/sparc/[lr]shift.S: New files.
   33834 
   33835 Tue Oct 31 00:08:12 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33836 
   33837 	* mpz/gcd_ui.c: Set w->size unconditionally when v is zero.
   33838 
   33839 	* gmp-impl.h (assert): Delete definition.
   33840 
   33841 	* mpf/sub.c: Delete all assert calls.  Delete variable `cy'.
   33842 
   33843 	* mpf/neg.c: Use prec+1 as precision.  Optimize for when arguments
   33844 	are the same.
   33845 	* mpf/abs.c: Likewise.
   33846 	* mpf/{set,neg,abs}.c: Make structure and variable names similar.
   33847 
   33848 Mon Oct 30 12:45:26 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33849 
   33850 	* mpf/random2.c (random): Test __SVR4 in addition to __svr4__.
   33851 	* mpn/generic/random2.c (random): Likewise.
   33852 
   33853 Sun Oct 29 01:54:28 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33854 
   33855 	* mpf/div.c: Special handle U or V being 0.
   33856 
   33857 	* mpf/random2.c: New file.
   33858 
   33859 	* longlong.h (i860 rshift_rhlc): Define.
   33860 	(i960 udiv_qrnnd): Define.
   33861 	(i960 count_leading_zeros): Define.
   33862 	(i960 add_ssaaaa): Define.
   33863 	(i960 sub_ddmmss): Define.
   33864 	(i960 rshift_rhlc): Define.
   33865 
   33866 Sat Oct 28 19:09:15 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33867 
   33868 	* mpn/pentium/rshift.S: Fix and generalize condition for when to use
   33869 	special code for shift by 1.
   33870 	* mpn/pentium/lshift.S: Likewise.
   33871 
   33872 Thu Oct 26 00:02:56 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33873 
   33874 	* gmp.h: #undef __need_size_t.
   33875 	* mp.h: Update from gmp.h.
   33876 
   33877 Wed Oct 25 00:17:27 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33878 
   33879 	* mpf/Makefile.in: Compile set_prec.c.
   33880 	* mpf/realloc.c: Delete this file.
   33881 	* mpf/Makefile.in: Delete mentions of realloc.c.
   33882 
   33883 	* gmp.h (__mpf_struct): Get rid of `alloc' field.
   33884 	* mpf/clear.c: Likewise.
   33885 	* mpf/init*.c: Likewise.
   33886 	* mpf/set_prec.c: Likewise.
   33887 	* mpf/iset*.c: Likewise.
   33888 
   33889 	* mpf/iset_str.c: New file.
   33890 
   33891 	* mpn/configure.in: Handle pyramid.
   33892 
   33893 	* mpf/set.c: Use prec+1 as precision.
   33894 
   33895 	* mpf/set_prec.c: New file.
   33896 
   33897 Tue Oct 24 00:56:41 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33898 
   33899 	* mpn/generic/divrem.c: New file.  Will replace mpn/generic/divmod.c
   33900 	when rest of source is converted.
   33901 	* mpn/configure.in (functions): Add `divrem'
   33902 	* mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size.
   33903 
   33904 	* mpf/get_str.c: Completely rewritten.
   33905 	* mpf/add.c: Fix several problems.
   33906 	* mpf/sub.c: Compare operands from most significant end until
   33907 	first difference, exclude skipped limbs from computation.
   33908 	Accordingly simplify normalization code.
   33909 	* mpf/set_str.c: Fix several problems.
   33910 	* mpf/dump.c: New file.
   33911 	* mpf/Makefile.in: Compile dump.c.
   33912 	* mpf/init2.c: Set prec field correctly.
   33913 
   33914 Sun Oct 22 03:02:09 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33915 
   33916 	* cre-conv-tab.c: #include math.h; don't declare log and floor.
   33917 
   33918 Sat Oct 21 23:04:10 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33919 
   33920 	* mpf/mul_ui.c: Handle U being 0.
   33921 
   33922 Wed Oct 18 19:39:27 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33923 
   33924 	* mpn/generic/set_str.c: Correctly handle input like "000000000000".
   33925 	Misc cleanups.
   33926 
   33927 Tue Oct 17 15:14:13 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33928 
   33929 	* longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where
   33930 	appropriate.
   33931 
   33932 Mon Oct 16 19:14:43 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33933 
   33934 	* mpf/add.c: Rewrite.
   33935 	* mpf/set_str.c: New file.  Needs more work.
   33936 
   33937 Sat Oct 14 00:14:04 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33938 
   33939 	* mpf/div_2exp.c: Vastly simplify.
   33940 	* mpf/mul_2exp.c: Likewise.
   33941 
   33942 	* mpf/sub.c: Rewrite.
   33943 
   33944 	* gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment.
   33945 
   33946 	* mpf/dump.c: Free allocated memory.
   33947 
   33948 	* gmp-impl.h (assert): Define.
   33949 
   33950 Wed Oct 11 13:31:00 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33951 
   33952 	* mpn/pentium/rshift.S: Install new code to optimize shift-by-1.
   33953 
   33954 Tue Oct 10 00:37:21 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33955 
   33956 	* mpn/pentium/lshift.S: Install new code to optimize shift-by-1.
   33957 
   33958 	* mpn/powerpc32/{lshift.s,rshift.s}: New files.
   33959 
   33960 	* configure.in: Fix typo.
   33961 
   33962 Sat Oct  7 08:17:09 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33963 
   33964 	* longlong.h (smul_ppmm): Correct type of __m0 and __m1.
   33965 
   33966 Wed Oct  4 16:31:28 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33967 
   33968 	* mpn/configure.in: Handle alphaev5.
   33969 	* mpn/ev4: New name for alpha subdir.
   33970 	* mpn/ev5: New subdir.
   33971 	* mpn/ev5/lshift.s: New file.
   33972 
   33973 Tue Oct  3 15:06:45 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33974 
   33975 	* mpn/alpha/mul_1.s: Avoid static increments of pointers; use
   33976 	corresponding offsets in ldq and stq instructions instead.
   33977 	(Loop): Swap cmpult and stq to save one cycle on EV5.
   33978 
   33979 	* mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s,
   33980 	submul_1.s}: Don't check results if NOCHECK is defined.
   33981 
   33982 Mon Oct  2 11:40:18 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33983 
   33984 	* longlong.h (mips umul_ppmm [32 and 64 bit versions]):
   33985 	Make new variants, based on GCC version number, that use `l' and `h'
   33986 	constraints instead of explicit mflo and mfhi instructions
   33987 
   33988 Sun Oct  1 00:17:47 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33989 
   33990 	* mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8.
   33991 	* mpn/mc88100/sub_n.s: Likewise.
   33992 
   33993 	* config/mt-m88110: New file.
   33994 	* configure.in: Use it.
   33995 
   33996 	* mpn/mc88110/mul_1.s: Fix thinko.
   33997 
   33998 Sat Sep 30 21:28:19 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   33999 
   34000 	* mpz/set_d.c: Declare `size' at function start.
   34001 
   34002 	* experimental: New directory for mpx and mpz2.
   34003 
   34004 	* mpz/tdiv_q.c: Clarify comments.
   34005 	* mpz/{mod.c,mod_ui.c}: New file, for math mod function.
   34006 
   34007 	* mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files.
   34008 
   34009 	* mpn/sh/{add_n.s,sub_n.s}: New files.
   34010 
   34011 	* mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files.
   34012 
   34013 	* mpn/i960/{add_n.s,sub_n.s}: New files.
   34014 
   34015 	* mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh,
   34016 	to save cycles on EV5.
   34017 	* mpn/alpha/submul_1.s: Ditto.
   34018 	* mpn/alpha/mul_1.s: Ditto.
   34019 
   34020 Thu Sep 28 02:48:59 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34021 
   34022 	* gmp.h (mp_limb, mp_limb_signed): Define as `long long' if
   34023 	_LONG_LONG_LIMB is defined.
   34024 
   34025 	* longlong.h (m88110): Test __m88110__, not __mc88110__
   34026 
   34027 	* mpn/mc88110/mul_1.s: Rewrite.
   34028 
   34029 Tue Sep 26 23:29:05 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34030 
   34031 	* config.sub: Update from current Cygnus version.
   34032 
   34033 	* mpn/configure.in: Recognize canonical m88*, not mc88*.
   34034 
   34035 Fri Sep 22 14:58:05 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34036 
   34037 	* mpz/set_d.c: New file.
   34038 	* mpz/Makefile.in: Build new files.
   34039 
   34040 	* mpq/get_d.c: Replace usage of scalbn with ldexp.
   34041 
   34042 	* mpn/{vax,i386}/gmp-mparam.h: New files.
   34043 	* gmp-impl.h (ieee_double_extract): Define here.
   34044 	* mpf/set_d.c (ieee_double_extract): Not here.
   34045 
   34046 Thu Sep 21 00:56:36 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34047 
   34048 	* longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
   34049 	(udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
   34050 	protect with new symbol LONGLONG_STANDALONE.
   34051 	(68000 umul_ppmm): Use %# prefix for immediate constants.
   34052 
   34053 Wed Sep 20 15:36:23 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34054 
   34055 	* mpn/generic/divmod_1.c: Handle
   34056 	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
   34057 	specifically also when normalization_steps != 0.
   34058 
   34059 Mon Sep 18 15:42:30 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34060 
   34061 	* mpq/get_d.c: New file.
   34062 
   34063 Sun Sep 17 02:04:36 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34064 
   34065 	* longlong.h (pyr): Botch up for now.
   34066 
   34067 Sat Sep 16 00:11:50 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34068 
   34069 	* mpn/clipper/mul_1.s: New file.
   34070 	* mpn/clipper/add_n.s: New file.
   34071 	* mpn/clipper/sub_n.s: New file.
   34072 	* mpn/configure.in: Handle clipper*-*-*.
   34073 
   34074 	* mpn/configure.in: Recognize rs6000-*-*.
   34075 
   34076 Fri Sep 15 00:41:34 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34077 
   34078 	* mpn/alpha/add_n.s: New file.
   34079 	* mpn/alpha/sub_n.s: New file.
   34080 
   34081 	* mpn/mips3: New name for mpn/r4000.
   34082 	* mpn/mips2: New name for mpn/r3000.
   34083 	* mpn/configure.in: Corresponding changes.
   34084 
   34085 	* mpn/generic/perfsqr.c (primes): Delete.
   34086 	(residue_map): Delete.
   34087 
   34088 Thu Sep 14 00:07:58 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34089 
   34090 	* mpn/r3000/sub_n.s: Fix typo.
   34091 
   34092 	* dm_trunc.c: Delete spurious file.
   34093 
   34094 	* mpz/out_binary.c: Fix typo.
   34095 
   34096 	* mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000.
   34097 
   34098 	* gmp-impl.h: For sparc and sgi, include alloca.h.
   34099 
   34100 	* mpn/z8000/mul_1.s: Replace `test r' with `and r,r'.  Replace
   34101 	`ldk r,#0' with `xor r,r'.
   34102 
   34103 Wed Sep  6 00:58:38 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34104 
   34105 	* mpz/inp_binary.c: New file.
   34106 	* mpz/out_binary.c: New file.
   34107 	* mpz/Makefile.in: Build new files.
   34108 
   34109 Tue Sep  5 22:53:51 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34110 
   34111 	* gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc
   34112 	and size fields.
   34113 
   34114 Sat Sep  2 17:47:59 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34115 
   34116 	* mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic.
   34117 	* mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files,
   34118 	derived from r4000 code.
   34119 
   34120 Fri Sep  1 05:35:52 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34121 
   34122 	* mpn/r3000/mul_1.s: Fix typo.
   34123 
   34124 	* mpn/powerpc32: Fix some old vs new mnemonic issues.
   34125 
   34126 	* mpn/powerpc32/{add_n.s,sub_n.s}: New files.
   34127 	* mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files.
   34128 
   34129 Wed Aug 30 10:43:47 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34130 
   34131 	* mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add.
   34132 	* mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files.
   34133 
   34134 	* config.guess: Update to latest FSF revision.
   34135 
   34136 Mon Aug 28 02:18:13 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34137 
   34138 	* mpz/out_str.c: Cast str to char * in fputs call.
   34139 
   34140 	* gmp-impl.h: Define UQItype, SItype, and USItype also
   34141 	when not __GNUC__.
   34142 
   34143 Fri Aug 25 01:45:04 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34144 
   34145 	* mpn/i386/syntax.h: Renamed from asm-syntax.h.
   34146 	* mpn/mc68020/syntax.h: Renamed from asm-syntax.h.
   34147 	* mpn/configure.in: Corresponding changes.
   34148 
   34149 Sun Aug 13 19:20:04 1995  Torbjorn Granlund  <tege (a] bozo.matematik.su.se>
   34150 
   34151 	* mpn/generic/random2.c: Test __hpux, not hpux.
   34152 
   34153 Sat Apr 15 20:50:33 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34154 
   34155 	* mpn/sparc/add_n.S: Make it work for PIC.
   34156 	* mpn/sparc/sub_n.s: Likewise.
   34157 	* mpn/sparc8/addmul_1.S: Likewise.
   34158 	* mpn/sparc8/mul_1.S: Likewise.
   34159 	* mpn/i386/add_n.S: Likewise.
   34160 	* mpn/i386/sub_n.S: Likewise.
   34161 
   34162 Thu Apr 13 23:15:03 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34163 
   34164 	* mpn/configure.in: Don't search power subdir for generic ppc configs.
   34165 	Add some ppc cpu-specific configs.  Misc clean up.
   34166 
   34167 Mon Apr 10 00:16:35 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34168 
   34169 	* mpz/ui_pow_ui.c: Delete spurious code to handle negative results.
   34170 
   34171 Sun Apr  9 12:38:11 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34172 
   34173 	* longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C,
   34174 	not in asm.
   34175 
   34176 	* mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT.
   34177 
   34178 Tue Mar 28 00:19:52 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34179 
   34180 	* mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too.
   34181 
   34182 Fri Mar 17 23:29:22 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34183 
   34184 	* longlong.h (SH umul_ppmm): Define.
   34185 
   34186 Thu Mar 16 16:40:44 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34187 
   34188 	* mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case
   34189 	to help CSE.
   34190 
   34191 Fri Mar 10 20:03:49 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34192 
   34193 	* mpn/powerpc32/mul_1.s: Clear cy before entering loop.
   34194 	Rearrange loop to save a cycle.
   34195 	* mpn/powerpc32/addmul_1.s: New file.
   34196 	* mpn/powerpc32/submul_1.s: New file.
   34197 
   34198 Fri Feb 17 22:44:45 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34199 
   34200 	* mpn/configure.in: Set target_makefile_frag for freebsd
   34201 	in new case stmt.
   34202 	* mpn/config/t-freebsd: New file.
   34203 	* mpn/Makefile.in: Add #### for frag insertion.
   34204 	(XCFLAGS): Clear by default.
   34205 	(.c.o, .S.o rules): Pass XCFLAGS.
   34206 
   34207 Tue Feb  7 16:27:50 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34208 
   34209 	* longlong.h (68000 umul_ppmm): Merge improvements from henderson.
   34210 
   34211 Tue Jan 24 04:23:20 1995  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34212 
   34213 	* longlong.h (default umul_ppmm): Store input parameters in temporaries
   34214 	to avoid reading them twice.
   34215 	(default smul_ppmm): New definition.
   34216 
   34217 Thu Dec 29 04:20:07 1994  Jim Meyering  (meyering (a] comco.com)
   34218 
   34219 	* generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration
   34220 	of unused variable.
   34221 	* generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise.
   34222 	* mpz/powm.c (pow): Likewise.
   34223 
   34224 	* mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause
   34225 	to placate `gcc -Wall'.
   34226 	* mpz/ior.c (mpz_ior): Likewise.
   34227 
   34228 Wed Dec 28 13:31:40 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34229 
   34230 	* mpn/m*68*/*.S: #include asm-syntax.h, not asm.h.
   34231 
   34232 Mon Dec 26 17:15:36 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34233 
   34234 	* longlong.h: Test for more symbols, in __mc68000__ case.
   34235 
   34236 	* mpn/mpn/config.sub: Recognize m68060.
   34237 	* mpn/configure.in: Change mc* to m* for 68k targets.
   34238 	* mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file.
   34239 
   34240 Mon Dec 19 01:56:30 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34241 
   34242 	* config.sub: Recognize pentium as a valid CPU.
   34243 	* mpn/configure.in: Handle pentium specifically, to use new assembly
   34244 	code.
   34245 
   34246 Mon Dec 19 00:13:01 1994  Jim Meyering  (meyering (a] comco.com)
   34247 
   34248 	* gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO
   34249 	is defined.
   34250 	* gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else.
   34251 
   34252 Mon Dec 19 00:04:54 1994  Kent Boortz  (boortz (a] sics.se)
   34253 
   34254 	* Makefile.in (recursive makes): Pass CFLAGS.
   34255 
   34256 Sun Dec 18 22:34:49 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34257 
   34258 	* mpn/pentium: New directory.
   34259 
   34260 	* mpz/pprime.c: Make sure to mpz_clear all temporaries.
   34261 
   34262 	* longlong.h: Don't use udiv instruction when SUPERSPARC is defined.
   34263 	* configure.in: Handle supersparc*-.
   34264 	* config/mt-supspc-gcc: New file.
   34265 	* config/mt-sparc8-gcc: New name for mt-sparcv8-gcc.
   34266 
   34267 Mon Dec 12 22:22:10 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34268 
   34269 	* mpn/i386/*.S: #include "asm-syntax.h", not "asm.h".
   34270 	#include sysdep.h before asm-syntax.h.
   34271 
   34272 	* mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it.
   34273 	* mpn/i386/asm-syntax.h: Likewise.
   34274 
   34275 	* mpn/mc68020/asm-syntax.h: New name for asm.h.
   34276 	* mpn/i386/asm-syntax.h: New name for asm.h.
   34277 
   34278 Tue Dec  6 21:55:25 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34279 
   34280 	* mpz/array_init.c: Fix typo in declaration.
   34281 
   34282 Fri Nov 18 19:50:52 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34283 
   34284 	* mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES.
   34285 
   34286 Mon Nov 14 00:34:12 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34287 
   34288 	* mpn/generic/random2.c (random): Test for __svr4__.
   34289 
   34290 Wed Oct 12 23:28:16 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34291 
   34292 	* cre-conv-tab.c (main): Avoid upper-case X in printf format string.
   34293 
   34294 Tue Aug 23 17:16:35 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34295 
   34296 	* mpz/perfsqr.c: Use mpn_perfect_square_p.
   34297 	* mpn/generic/perfsqr.c: New file.
   34298 
   34299 Wed Jul  6 13:46:51 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34300 
   34301 	* mpz/array_init.c: New file.
   34302 	* mpz/Makefile.in: Compile array_init.
   34303 	* gmp.h: Declare mpz_array_init.
   34304 
   34305 Mon Jul  4 01:10:03 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34306 
   34307 	* mpz/add.c: Fix bogus comment.
   34308 	* mpz/sub.c: Likewise.
   34309 
   34310 Sat Jul  2 02:14:56 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34311 
   34312 	* mpn/generic/pre_mod_1.c: New file.
   34313 	* mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster.
   34314 
   34315 Fri Jul 01 22:10:19 1994  Richard Earnshaw (rwe11 (a] cl.cam.ac.uk)
   34316 
   34317 	* longlong.h (arm umul_ppmm): Fix typos in last change.  Mark
   34318 	hard-coded registers with "%|"
   34319 
   34320 Thu Jun 30 03:59:33 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34321 
   34322 	* mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs.
   34323 	Use __mpn_mod_1.
   34324 	* mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop.
   34325 
   34326 Wed Jun 29 18:45:41 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34327 
   34328 	* mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2.
   34329 
   34330 	* mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long.
   34331 
   34332 	* gmp.h: Use "defined (__STDC__)" consistently.
   34333 
   34334 Tue Jun 28 18:44:58 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34335 
   34336 	* gmp.h (mpz_get_si): Don't use "signed" keyword for return type.
   34337 
   34338 	* mpz/tests/Makefile.in: Use CFLAGS for linking.
   34339 
   34340 	* Makefile.in (CFLAGS): Use -O2 here.
   34341 	* mpn/Makefile (CFLAGS): Not here.
   34342 
   34343 	* mpq/cmp_ui.c: Fix typo.
   34344 	* mpq/canonicalize.c: Fix typo.
   34345 	* mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly.
   34346 	* mpn/generic/gcd_1.c: Fix braino in last change.
   34347 
   34348 Mon Jun 27 16:10:27 1994  Torbjorn Granlund  (tege (a] rtl.cygnus.com)
   34349 
   34350 	* mpz/gcd_ui.c: Change return type and return result.
   34351 	Allow destination param to be NULL.
   34352 	* gmp.h: Corresponding change.
   34353 	* mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1.
   34354 
   34355 Tue Jun 14 02:17:43 1994  Torbjorn Granlund  (tege (a] tiny.cygnus.com)
   34356 
   34357 	* mpn/i386/asm.h (ALIGN): Make it take a parameter.
   34358 	* mpn/i386/*.S: Use ALIGN to align all loops.
   34359 
   34360 	* mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression.
   34361 	(Makes old versions of GAS happy.)
   34362 
   34363 Sat May 28 01:43:54 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34364 
   34365 	* Many files: Delete unused variables and labels.
   34366 	* mpn/generic/dump.c: cast printf width argument to int.
   34367 
   34368 Wed May 25 00:42:37 1994  Torbjorn Granlund  (tege (a] thepub.cygnus.com)
   34369 
   34370 	* mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls.
   34371 	(xmod): Ignore return value of __mpn_divmod.
   34372 	(xmod): Improve normalization code.
   34373 
   34374 Sat May 21 01:30:09 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34375 
   34376 	* mpz/gcdext.c: Cosmetic changes.
   34377 
   34378 	* mpz/fdiv_ui.c: New file.
   34379 
   34380 Fri May 20 00:24:53 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34381 
   34382 	* mpz/tests/Makefile.in: Use explicit rules for running tests,
   34383 	not a shell loop.
   34384 	(clean): Delete stmp-*.
   34385 
   34386 	* mpz/Makefile.in: Update.
   34387 
   34388 	* mpz/div_ui.c: Don't include longlong.h.
   34389 	* mpz/dm_ui.c: Likewise.
   34390 
   34391 	* mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c,
   34392 	mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files.  Code partly from deleted
   34393 	mdm.c, mdm_ui.c, etc, partly rewritten.
   34394 	* mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete.
   34395 	* mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c,
   34396 	mpz/mmod_ui.c: Delete.
   34397 
   34398 	* mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c,
   34399 	mpz/tdiv_r.c, mpz/tdiv_r_ui.c:
   34400 	New names for files implementing truncating division.
   34401 	* mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify.
   34402 
   34403 	* mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC
   34404 	instead.
   34405 	(clean): Delete tmp-*.
   34406 
   34407 Thu May 19 01:37:44 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34408 
   34409 	* mpz/cmp.c: Call __mpn_cmp.
   34410 
   34411 	* mpz/popcount.c: Fix typo.
   34412 
   34413 	* mpz/powm_ui.c: Simplify main loop.  Keep principal operand size
   34414 	smaller than MSIZE when possible.
   34415 	* mpz/powm.c: Likewise.
   34416 
   34417 	* mpn/generic/sqrt.c: Move alloca calls into where the memory is
   34418 	needed.  Simplify.
   34419 
   34420 	* gmp.h: (_PROTO): New macro.
   34421 	Add many function declarations; use _PROTO macro in all declarations.
   34422 
   34423 	* mpf/*.c: Prepend mpn calls with __.
   34424 
   34425 Wed May 18 20:57:06 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34426 
   34427 	* mpf/*ui*.c: Make ui argument `long' for consistency with mpz
   34428 	functions.
   34429 
   34430 	* mpf/div_ui.c: Simplify.
   34431 
   34432 Tue May 17 01:05:14 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34433 
   34434 	* mpz/*.c: Prepend mpn calls with __.
   34435 
   34436 	* mpz/mul_ui.c: Use mpn_mul_1.
   34437 
   34438 Mon May 16 17:19:41 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34439 
   34440 	* mpn/i386/mul_1.S: Use C_GLOBAL_NAME.
   34441 	* mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S:
   34442 	Nuke use of LAB.
   34443 
   34444 Sat May 14 14:21:02 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34445 
   34446 	* gmp-impl.h: Don't define abort here.
   34447 
   34448 	* mpz/pow_ui.c: Increase temporary allocation.
   34449 	* mpz/ui_pow_ui.c: Likewise.
   34450 
   34451 	* gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy.
   34452 
   34453 	* All Makefile.in: Delete spurious -I arguments.
   34454 	Update dependencies.
   34455 
   34456 	* mpz/popcount.c: New file.
   34457 	* mpz/hamdist.c: New file.
   34458 
   34459 	* All configure: Latest version from Cygnus.
   34460 
   34461 	* mpq/Makefile.in: New file.
   34462 	* mpq/configure.in: New file.
   34463 	* Makefile.in, configure.in: Enable compilation of mpq.
   34464 
   34465 	* mpq/set_z.c: Fix typos.
   34466 	* mpq/canonicalize.c: Fix typos.
   34467 	* mpq/cmp_ui.c: Fix typos.
   34468 
   34469 	* mpf/add_ui.c: Read U->D into UP always.  Delete spurious MPN_COPY.
   34470 	* mpf/sub_ui.c: Likewise.
   34471 
   34472 	* gmp-impl.h: Don't redefine alloca.
   34473 
   34474 	* COPYING.LIB: Renamed from COPYING.
   34475 
   34476 Wed May 11 01:45:44 1994  Torbjorn Granlund  (tege (a] adder.cygnus.com)
   34477 
   34478 	* mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range
   34479 	shift counts.  Fix typo when testing negative_result.
   34480 	* mpz/powm.c: Likewise.
   34481 
   34482 	* mpz/ui_pow_ui.c: New file.
   34483 	* mpz/Makefile.in: Update.
   34484 
   34485 	* mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible.
   34486 
   34487 	* mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls.
   34488 	* mpz/gcd.c: Declare mpn_xmod.
   34489 
   34490 	* mpz/powm.c: Major changes to accommodate changed mpn semantics.
   34491 	* mpz/powm_ui.c: Update from mpz/powm.c.
   34492 
   34493 	* mpz/tests/tst-io.c: New file.
   34494 	* mpz/tests/tst-logic: New file.
   34495 	* mpz/tests/Makefile.in: Update.
   34496 
   34497 	* mpz/inp_str.c: Get base right when checking for first digit.
   34498 	* mpz/inp_str.c: Allocate more space for DEST when needed.
   34499 
   34500 	* mpz/com.c: Use mpn_add_1 and mpn_sub_1.
   34501 	* mpz/and.c, mpz/ior.c: Likewise.  Simplify somewhat.
   34502 
   34503 	* mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1.
   34504 	Rename parameters to be consistent with mpz/sub_ui.
   34505 	General simplifications.
   34506 	* mpz/sub_ui.x: Likewise.
   34507 
   34508 Tue Aug 10 19:41:16 1993  Torbjorn Granlund  (tege (a] prudens.matematik.su.se)
   34509 
   34510 	* mpf: New directory.
   34511 	* mpf/*.c: Merge basic set of mpf functions.
   34512 
   34513 	* Many logs missing...
   34514 
   34515 Sun Apr 25 18:40:26 1993  Torbjorn Granlund  (tege (a] pde.nada.kth.se)
   34516 
   34517 	* memory.c: Use #if instead of #ifdef for __STDC__ for consistency.
   34518 	* bsd/xtom.c: Likewise.
   34519 
   34520 	* mpz/div.c: Remove free_me and free_me_size and their usage.
   34521 	Use mpn_divmod for division; corresponding changes in return value
   34522 	convention.
   34523 	* mpz/powm.c: `carry_digit' => `carry_limb'.
   34524 	* bsd/sdiv.c: Clarify comment.
   34525 
   34526 Sun Apr 25 00:31:28 1993  Torbjorn Granlund  (tege (a] pde.nada.kth.se)
   34527 
   34528 	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
   34529 
   34530 Sat Apr 24 16:23:33 1993  Torbjorn Granlund  (tege (a] pde.nada.kth.se)
   34531 
   34532 	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
   34533 
   34534 	* gmp-impl.h: #define ABS.
   34535 	* (Many files): Use ABS instead of abs.
   34536 
   34537 	* mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c,
   34538 	mpz/pow_ui.c: Cast 1 to mp_limb before shifting.
   34539 
   34540 	* mpz/perfsqr.c: Use #if, not plain if for exclusion of code for
   34541 	non-32-bit machines.
   34542 
   34543 Tue Apr 20 13:13:58 1993  Torbjorn Granlund  (tege (a] du.nada.kth.se)
   34544 
   34545 	* mpn/generic/sqrt.c: Handle overflow for intermediate quotients by
   34546 	rounding them down to fit.
   34547 
   34548 	* mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings.
   34549 
   34550 	* mpz/inp_str.c (char_ok_for_base): New function.
   34551 	(mpz_inp_str): Use it.
   34552 
   34553 Sun Mar 28 21:54:06 1993  Torbjorn Granlund  (tege (a] cyklop.nada.kth.se)
   34554 
   34555 	* mpz/inp_raw.c: Allocate x_index, not xsize limbs.
   34556 
   34557 Mon Mar 15 11:44:06 1993  Torbjorn Granlund  (tege (a] pde.nada.kth.se)
   34558 
   34559 	* mpz/pprime.c: Declare param `const'.
   34560 	* gmp.h: Add declarations for mpz_com.
   34561 
   34562 Thu Feb 18 14:10:34 1993  Torbjorn Granlund  (tege (a] pde.nada.kth.se)
   34563 
   34564 	* mpq/add.c, mpq/sub.c: Call mpz_clear for t.
   34565 
   34566 Fri Feb 12 20:27:34 1993  Torbjorn Granlund  (tege (a] cyklop.nada.kth.se)
   34567 
   34568 	* mpz/inp_str.c: Recog minus sign as first character.
   34569 
   34570 Wed Feb  3 01:36:02 1993  Torbjorn Granlund  (tege (a] cyklop.nada.kth.se)
   34571 
   34572 	* mpz/iset.c: Handle 0 size.
   34573 
   34574 Tue Feb  2 13:03:33 1993  Torbjorn Granlund  (tege (a] cyklop.nada.kth.se)
   34575 
   34576 	* mpz/mod_ui.c: Initialize dividend_size before it's used.
   34577 
   34578 Mon Jan  4 09:11:15 1993  Torbjorn Granlund  (tege (a] sics.se)
   34579 
   34580 	* bsd/itom.c: Declare param explicitly 'signed'.
   34581 	* bsd/sdiv.c: Likewise.
   34582 
   34583 	* mpq/cmp.c: Remove unused variable tmp_size.
   34584 	* mpz/powm_ui.c: Fix typo in esize==0 if stmt.
   34585 	* mpz/powm.c: Likewise.
   34586 
   34587 Sun Nov 29 01:16:11 1992  Torbjorn Granlund  (tege (a] sics.se)
   34588 
   34589 	* mpn/generic/divmod_1.c (mpn_divmod_1): Handle
   34590 	divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
   34591 	specifically.
   34592 
   34593 	* Reorganize sources.  New directories mpn, mpn/MACH, mpn/generic,
   34594 	mpz, mpq, bsd.  Use full file name for change logs hereafter.
   34595 
   34596 Wed Oct 28 17:40:04 1992  Torbjorn Granlund  (tege (a] jupiter.sics.se)
   34597 
   34598 	* longlong.h (__hppa umul_ppmm): Fix typos.
   34599 	(__hppa sub_ddmmss): Swap input arguments.
   34600 
   34601 	* mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in
   34602 	initializator.
   34603 
   34604 Sun Oct 25 20:30:06 1992  Torbjorn Granlund  (tege (a] jupiter.sics.se)
   34605 
   34606 	* mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3
   34607 	specifically (used to consider all negative numbers prime).
   34608 
   34609 	* mpz_powm_ui: `carry_digit' => `carry_limb'.
   34610 
   34611 	* sdiv: Handle zero dividend specifically.  Replace most code in
   34612 	this function with a call to mpn_divmod_1.
   34613 
   34614 Fri Sep 11 22:15:55 1992  Torbjorn Granlund  (tege (a] tarrega.sics.se)
   34615 
   34616 	* mpq_clear: Don't free the MP_RAT!
   34617 
   34618 	* mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg.
   34619 
   34620 Thu Sep  3 01:47:07 1992  Torbjorn Granlund  (tege (a] jupiter.sics.se)
   34621 
   34622 	* All files: Remove leading _ from mpn function names.
   34623 
   34624 Wed Sep  2 22:21:16 1992  Torbjorn Granlund  (tege (a] jupiter.sics.se)
   34625 
   34626 	Fix from Jan-Hein Buhrman:
   34627 	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented.
   34628 
   34629 	* mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its
   34630 	life.
   34631 
   34632 Sun Aug 30 18:37:15 1992  Torbjorn Granlund  (tege (a] jupiter.sics.se)
   34633 
   34634 	* _mpz_get_str: Use mpz_sizeinbase for computing out_len.
   34635 	* _mpz_get_str: Don't remove leading zeros.  Abort if there are some.
   34636 
   34637 Wed Mar  4 17:56:56 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34638 
   34639 	* gmp.h: Change definition of MP_INT to make the & before params
   34640 	optional.  Use typedef to define it.
   34641 	* mp.h: Use typedef to define MINT.
   34642 
   34643 Tue Feb 18 14:38:39 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34644 
   34645 	longlong.h (hppa umul_ppmm): Add missing semicolon.  Declare type
   34646 	of __w1 and __w0.
   34647 
   34648 Fri Feb 14 21:33:21 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34649 
   34650 	* longlong.h: Make default count_leading_zeros work for machines >
   34651 	32 bits.  Prepend `__' before local variables to avoid conflicts
   34652 	with users' variables.
   34653 
   34654 	* mpn_dm_1.c: Remove udiv_qrnnd_preinv ...
   34655 	* gmp-impl.h: ... and put it here.
   34656 	* mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd.
   34657 
   34658 Tue Feb 11 17:20:12 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34659 
   34660 	* mpn_mul: Enhance base case by handling small multiplicands.
   34661 	* mpn_dm_1.c: Revert last change.
   34662 
   34663 Mon Feb 10 11:55:15 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34664 
   34665 	* mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed.
   34666 
   34667 Fri Feb  7 16:26:16 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34668 
   34669 	* mpn_mul: Replace code for base case.
   34670 
   34671 Thu Feb  6 15:10:42 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34672 
   34673 	* mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by
   34674 	pre-inverting divisor.
   34675 
   34676 Sun Feb  2 11:10:25 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34677 
   34678 	* longlong.h: Make __LLDEBUG__ work differently.
   34679 	(_IBMR2): Reinsert old code.
   34680 
   34681 Sat Feb  1 16:43:00 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34682 
   34683 	* longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code
   34684 	using floating point operations.  Don't define
   34685 	UDIV_NEEDS_NORMALIZATION any longer.
   34686 
   34687 Fri Jan 31 15:09:13 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34688 
   34689 	* longlong.h: Define UMUL_TIME and UDIV_TIME for most machines.
   34690 	* longlong.h (#ifdef __hppa): Define umul_ppmm.
   34691 
   34692 Wed Jan 29 16:41:36 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34693 
   34694 	* mpn_cmp: Only one length parameter, assume operand lengths are
   34695 	the same.  Don't require normalization.
   34696 	* mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for
   34697 	new mpn_cmp definition.
   34698 
   34699 Tue Jan 28 11:18:55 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34700 
   34701 	* _mpz_get_str: Fix typo in comment.
   34702 
   34703 Mon Jan 27 09:44:16 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34704 
   34705 	* Makefile.in: Add new files.
   34706 
   34707 	* mpn_dm_1.c: New file with function _mpn_divmod_1.
   34708 	* mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1.
   34709 	* mpz_div_ui: Likewise.
   34710 
   34711 	* mpn_mod_1.c: New file with function _mpn_mod_1.
   34712 	* mpz_mod_ui: Use _mpn_mod_1.
   34713 
   34714 Thu Jan 23 18:54:09 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34715 
   34716 	Bug found by Paul Zimmermann (zimmermann (a] inria.inria.fr):
   34717 	* mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui):
   34718 	Handle dividend == 0.
   34719 
   34720 Wed Jan 22 12:02:26 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34721 
   34722 	* mpz_pprime.c: Use "" for #include.
   34723 
   34724 Sun Jan 19 13:36:55 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34725 
   34726 	* mpn_rshiftci.c (header): Correct comment.
   34727 
   34728 Wed Jan 15 18:56:04 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34729 
   34730 	* mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1)
   34731 	to make space for ignored quotient at the end.  (The quotient might
   34732 	always be an extra limb.)
   34733 
   34734 Tue Jan 14 21:28:48 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34735 
   34736 	* mpz_powm_ui: Fix comment.
   34737 	* mpz_powm: Likewise.
   34738 
   34739 Mon Jan 13 18:16:25 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34740 
   34741 	* tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target.
   34742 
   34743 Sun Jan 12 13:54:28 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34744 
   34745 	Fixes from Kazumaro Aoki:
   34746 	* mpz_out_raw: Take abs of size to handle negative values.
   34747 	* mpz_inp_raw: Reallocate before reading ptr from X.
   34748 	* mpz_inp_raw: Store, don't read, size to x->size.
   34749 
   34750 Tue Jan  7 17:50:25 1992  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34751 
   34752 	* gmp.h, mp.h: Remove parameter names from prototypes.
   34753 
   34754 Sun Dec 15 00:09:36 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34755 
   34756 	* tests/Makefile.in: Prepend "./" to file names when executing
   34757 	tests.
   34758 
   34759 	* Makefile.in: Fix many problems.
   34760 
   34761 Sat Dec 14 01:00:02 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34762 
   34763 	* mpn_sqrt.c: New file with _mpn_sqrt.
   34764 	* mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt.
   34765 	* msqrt.c: Delete.  Create from mpz_sqrtrem.c in Makefile.in.
   34766 	* mpz_do_sqrt.c: Delete.
   34767 	* Makefile.in: Update to reflect these changes.
   34768 
   34769 	* Makefile.in, configure, configure.subr: New files
   34770 	(from bothner (a] cygnus.com).
   34771 	* dist-Makefile: Delete.
   34772 
   34773 	* mpz_fac_ui: Fix comment.
   34774 
   34775 	* mpz_random2: Rewrite a bit to make it possible for the most
   34776 	significant limb to be == 1.
   34777 
   34778 	* mpz_pprime.c (mpz_probab_prime_p): Remove \t\n.
   34779 
   34780 Fri Dec 13 23:10:02 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34781 
   34782 	* mpz_do_sqrt: Simplify special case for U == 0.
   34783 	* m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p):
   34784 	Rename _mpz_impl_sqrt to _mpz_do_sqrt.
   34785 
   34786 Fri Dec 13 12:52:28 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34787 
   34788 	* gmp-impl.h (MPZ_TMP_INIT): Cast to the right type.
   34789 
   34790 Thu Dec 12 22:17:29 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34791 
   34792 	* mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several
   34793 	variables to mp_size.
   34794 
   34795 Wed Dec 11 22:00:34 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34796 
   34797 	* mpn_rshift.c: Fix header comments.
   34798 
   34799 Mon Dec  9 17:46:10 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34800 
   34801 	Released 1.2.
   34802 
   34803 	* gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value.
   34804 
   34805 	* dist-Makefile: Add missing dependency for cre-mparam.
   34806 
   34807 	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
   34808 	  mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment.
   34809 
   34810 	* dist-Makefile (clean): clean in tests subdir too.
   34811 	* tests/Makefile: Define default values for ROOT and SUB.
   34812 
   34813 	* longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
   34814 	2 constraint.
   34815 
   34816 Mon Nov 11 00:06:05 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34817 
   34818 	* mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0.
   34819 
   34820 Sat Nov  9 23:47:38 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34821 
   34822 	Released 1.1.94.
   34823 
   34824 	* dist-Makefile, Makefile, tests/Makefile: Merge tests into
   34825 	distribution.
   34826 
   34827 Fri Nov  8 22:57:19 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34828 
   34829 	* gmp.h: Don't use keyword `signed' for non-ANSI compilers.
   34830 
   34831 Thu Nov  7 22:06:46 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34832 
   34833 	* longlong.h: Cosmetic changes to keep it identical to gcc2 version
   34834 	of longlong.h.
   34835 	* longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
   34836 	sub_ddmmss.
   34837 
   34838 Mon Nov  4 00:36:46 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34839 
   34840 	* mpn_mul: Fix indentation.
   34841 
   34842 	* mpz_do_sqrt: Don't assume 32 bit limbs (had constant
   34843 	4294967296.0).
   34844 	* mpz_do_sqrt: Handle overflow in conversion from double returned
   34845 	by SQRT to mp_limb.
   34846 
   34847 	* gmp.h: Add missing function definitions.
   34848 
   34849 Sun Nov  3 18:25:25 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34850 
   34851 	* mpz_pow_ui: Change type of `i' to int.
   34852 
   34853 	* ChangeLog: Add change log entry.
   34854 	* ChangeLog: Add change log entry.
   34855 	* ChangeLog: Add change log entry.
   34856 	* ChangeLog: Add change log entry.
   34857 	* ChangeLog: Add change log entry.
   34858 	* ChangeLog: Add change log entry.
   34859 	* ChangeLog: Add change log entry.
   34860 	* ChangeLog: Add change log entry.
   34861 Stack overflow.
   34862 
   34863 	* mpz_pow_ui.c: Fix typo in comment.
   34864 
   34865 	* dist-Makefile: Create rpow.c from mpz_powm_ui.c.
   34866 	* mpz_powm_ui.c: Add code for rpow.
   34867 	* rpow.c: Delete this file.  The rpow function is now implemented
   34868 	in mpz_powm_ui.c.
   34869 
   34870 	* mpz_fac_ui.c: New file.
   34871 	* gmp.h, dist-Makefile: Add stuff for mpz_fac_ui.
   34872 
   34873 	Bug found by John Amanatides (amana (a] sasquatch.cs.yorku.ca):
   34874 	* mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with
   34875 	the first argument not smaller than the second.
   34876 
   34877 Tue Oct 29 13:56:55 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34878 
   34879 	* cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output
   34880 	header text.
   34881 
   34882 Mon Oct 28 00:35:29 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34883 
   34884 	* mpz_random2: Handle size == 0.
   34885 
   34886 	* gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to
   34887 	chars_per_bit_exactly, and change its definition.
   34888 	* cre-conv-tab.c (main): Output field according to its new
   34889 	definition.
   34890 	* mpz_out_str, _mpz_get_str, mpz_sizeinb, mout:
   34891 	Use chars_per_bit_exactly.
   34892 
   34893 	* mpz_random2: Change the loop termination condition in order to
   34894 	get a large most significant limb with higher probability.
   34895 
   34896 	* gmp.h: Add declaration of new mpz_random2 and mpz_get_si.
   34897 	* mpz_get_si.c: New file.
   34898 	* dist-Makefile: Add mpz_random2 and mpz_get_si.
   34899 
   34900 	* mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a
   34901 	power of 2, giving exact result.
   34902 
   34903 	* mpn_mul: Fix MPN_MUL_VERIFY in various ways.
   34904 	* mpn_mul: New macro KARATSUBA_THRESHOLD.
   34905 	* mpn_mul (karatsuba's algorithm): Don't write intermediate results
   34906 	to prodp, use temporary pp instead.  (Intermediate results can be
   34907 	larger than the final result, possibly writing into hyperspace.)
   34908 	* mpn_mul: Make smarter choice between Karatsuba's algorithm and the
   34909 	shortcut algorithm.
   34910 	* mpn_mul: Fix typo, cy instead of xcy.  Unify carry handling code.
   34911 
   34912 Sun Oct 27 19:57:32 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34913 
   34914 	* mpn_mul: In non-classical case, choose Karatsuba's algorithm only
   34915 	when usize > 1.5 vsize.
   34916 
   34917 	* mpn_mul: Break between classical and Karatsuba's algorithm at
   34918 	KARATSUBA_THRESHOLD, if defined.  Default to 8.
   34919 
   34920 	* mpn_div: Kludge to fix stray memory read.
   34921 
   34922 Sat Oct 26 20:06:14 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34923 
   34924 	* mpz_gcdext: Handle a = b = 0.  Remove memory leakage by calling
   34925 	mpz_clear for all temporary variables.
   34926 
   34927 	* mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that
   34928 	function's argument constraints.  Compute wsize correctly.
   34929 
   34930 	* mpz_gcd: Fix typo in comment.
   34931 
   34932 	* memory.c (_mp_default_allocate, _mp_default_reallocate): Call
   34933 	abort if allocation fails, don't just exit.
   34934 
   34935 Fri Oct 25 22:17:20 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34936 
   34937 	* mpz_random2.c: New file.
   34938 
   34939 Thu Oct 17 18:06:42 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34940 
   34941 	Bugs found by Pierre-Joseph Gailly (pjg (a] sunbim.be):
   34942 	* mpq_cmp: Take sign into account, don't just compare the
   34943 	magnitudes.
   34944 	* mpq_cmp: Call _mpn_mul in the right way, with the first argument
   34945 	not smaller than the second.
   34946 
   34947 Wed Oct 16 19:27:32 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34948 
   34949 	* mpz_random: Ensure the result is normalized.
   34950 
   34951 Tue Oct 15 14:55:13 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34952 
   34953 	* mpz_clrbit: Support non-ANSI compilers.
   34954 
   34955 Wed Oct  9 18:03:28 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34956 
   34957 	* longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints.
   34958 
   34959 Tue Oct  8 17:42:59 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34960 
   34961 	* mpz_mdm_ui: Add comments.
   34962 
   34963 	* mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init.
   34964 	* mpz_init_ui: Change spacing and header comment.
   34965 
   34966 Thu Oct  3 18:36:13 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34967 
   34968 	* dist-Makefile: Prepend `./' before some filenames.
   34969 
   34970 Sun Sep 29 14:02:11 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34971 
   34972 	Released 1.1 (public).
   34973 
   34974 	* mpz_com: New name of mpz_not.
   34975 	* dist-Makefile: Change mpz_not to mpz_com.
   34976 
   34977 Tue Sep 24 12:44:11 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34978 
   34979 	* longlong.h: Fix header comment.
   34980 
   34981 Mon Sep  9 15:16:24 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34982 
   34983 	Released 1.0.92.
   34984 
   34985 	* mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba
   34986 	case.
   34987 
   34988 	* longlong.h (m68000 umul_ppmm): Clobber one register less by
   34989 	slightly rearranging the code.
   34990 
   34991 Sun Sep  1 18:53:25 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34992 
   34993 	* dist-Makefile (stamp-stddefh): Fix typo.
   34994 
   34995 Sat Aug 31 20:41:31 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   34996 
   34997 	Released 1.0.91.
   34998 
   34999 	* mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
   35000 	  mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions.
   35001 	* gmp.h, gmp.texi: Define the new functions.
   35002 
   35003 Fri Aug 30 08:32:56 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35004 
   35005 	* mpz_gcdext: Compute t argument from the other quantities at the
   35006 	  end, of the function, not in the loop.  New feature: Allow t to be
   35007 	  NULL.
   35008 
   35009 	* mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't
   35010 	  include "mp.h".  Use type name `MP_INT' always.
   35011 
   35012 	* dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c.
   35013 
   35014 Wed Aug 28 00:45:11 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35015 
   35016 	* dist-Makefile (documentation): Go via tmp.texi to avoid the
   35017 	  creation of gmp.dvi if any errors occur.  Make tex read input
   35018 	  from /dev/null.
   35019 
   35020 Fri Aug 23 15:58:52 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35021 
   35022 	* longlong.h (68020, i386): Don't define machine-dependent
   35023 	  __umulsidi3 (so the default definition is used).
   35024 	* longlong.h (all machines): Cast all operands, sources and
   35025 	  destinations, to `unsigned long int'.
   35026 	* longlong.h: Add gmicro support.
   35027 
   35028 Thu Aug 22 00:28:29 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35029 
   35030 	* longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
   35031 	* longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
   35032 	* longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
   35033 	* _mpz_get_str.c: Add code to do division by big_base using only
   35034 	  umul_qrnnd, if that is faster.  Use UMUL_TIME and UDIV_TIME to
   35035 	  decide which variant to use.
   35036 
   35037 Wed Aug 21 15:45:23 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35038 
   35039 	* longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
   35040 	  nops.  (Saves two insn.)
   35041 
   35042 	* longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
   35043 	  branch, and to permit input/output register overlap.
   35044 
   35045 	* longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
   35046 	* longlong.h (__29k__ umul_ppmm): Split asm instructions into two
   35047 	  asm statements (gives better code if either the upper or lower
   35048 	  part of the product is unused.
   35049 
   35050 Tue Aug 20 17:57:59 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35051 
   35052 	* _mpz_get_str.c (outside of functions): Remove
   35053 	  num_to_ascii_lower_case and num_to_ascii_upper_case.  Use string
   35054 	  constants in the function instead.
   35055 
   35056 Mon Aug 19 00:37:42 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35057 
   35058 	* cre-conv-tab.c (main): Output table in hex.  Output 4 fields, not
   35059 	  3, for components 0 and 1.
   35060 
   35061 	* gmp.h: Add declaration of mpq_neg.
   35062 
   35063 	Released 1.0beta.13.
   35064 
   35065 	* _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before
   35066 	  comparing to enum literals SPC and EOF.  This makes the code work
   35067 	  for compilers where `char' is unsigned.  (Bug found by Brian
   35068 	  Beuning).
   35069 
   35070 	Released 1.0beta.12.
   35071 
   35072 	* mpz_mod_ui: Remove references to quot.  Remove quot_ptr, quot_size
   35073 	  declarations and assignment code.
   35074 
   35075 Sun Aug 18 14:44:26 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35076 
   35077 	* mpz_mod_ui: Handle dividend < 0.
   35078 
   35079 	Released 1.0beta.11.
   35080 
   35081 	* mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same
   35082 	  general structure, variable names, etc.
   35083 
   35084 	* sdiv: Un-normalize the remainder in n1 before it is negated.
   35085 
   35086 	* longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
   35087 	  udiv_qrnnd.
   35088 
   35089 	* mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment
   35090 	  the quotient size if the dividend size is incremented.  (Bug found
   35091 	  by Brian Beuning.)
   35092 
   35093 	* mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION.
   35094 	  (Bug found by Brian Beuning.)
   35095 
   35096 	* mpz_mod_ui: Replace "digit" by "limb".
   35097 
   35098 	* mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case
   35099 	  for non-32-bit machines (PP is hardwired for such machines).
   35100 	* mpz_perfsqr.c (outside of functions): Define PP value with an L.
   35101 
   35102 	* mpn_mul.c (_mpn_mul): Add verification code that is activated if
   35103 	  DEBUG is defined.  Replace "digit" by "limb".
   35104 	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp
   35105 	  after the addition.
   35106 	* mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size
   35107 	  and v0_size, and according to the result, swap arguments in
   35108 	  recursive call.  (Don't violate mpn_mul's own argument
   35109 	  constraints.)
   35110 
   35111 Fri Aug 16 13:47:12 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35112 
   35113 	Released 1.0beta.10.
   35114 
   35115 	* longlong.h (IBMR2): Add udiv_qrnnd.
   35116 
   35117 	* mpz_perfsqr: Remove unused variables.
   35118 
   35119 	* mpz_and (case for different signs): Initialize loop variable i!
   35120 
   35121 	* dist-Makefile: Update automatically generated dependencies.
   35122 	* dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h,
   35123 	  etc to dependency file lists.
   35124 
   35125 	* longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
   35126 	  `unsigned long int'.
   35127 	* longlong.h: Add `int' after `unsigned' and `long' everywhere.
   35128 
   35129 Wed Aug 14 18:06:48 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35130 
   35131 	* longlong.h: Add ARM, i860 support.
   35132 
   35133 	* mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb.
   35134 
   35135 Tue Aug 13 21:57:43 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35136 
   35137 	* _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase),
   35138 	  mpz_out_str.c, mout.c: Remove declaration of __mp_bases.
   35139 	* gmp-impl.h: Put it here, and make it `const'.
   35140 	* cre-conv-tab.c (main): Make struct __mp_bases `const'.
   35141 
   35142 Mon Aug 12 17:11:46 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35143 
   35144 	* cre-conv-tab.c (main): Use %lu in printf for long ints.
   35145 
   35146 	* dist-Makefile: Fix cre-* dependencies.
   35147 
   35148 	* cre-conv-tab.c (main): Output field big_base_inverted.
   35149 
   35150 	* gmp-impl.h (struct bases): New field big_base_inverted.
   35151 	* gmp-impl.h (struct bases): Change type of chars_per_limb_exactly
   35152 	  to float (in order to keep the structure smaller).
   35153 
   35154 	* mp.h, gmp.h: Change names of macros for avoiding multiple
   35155 	  includes.
   35156 
   35157 Fri Aug  9 18:01:36 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35158 
   35159 	* _mpz_get_str: Only shift limb array if normalization_steps != 0
   35160 	  (optimization).
   35161 
   35162 	* longlong.h (sparc umul_ppmm): Use __asm__, not asm.
   35163 	* longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
   35164 	  and m1 (overlap between output and input operands did not work).
   35165 	* longlong.h: Add VAX, ROMP and HP-PA support.
   35166 	* longlong.h: Sort the machine dependent code in alphabetical order
   35167 	  on the CPU name.
   35168 	* longlong.h: Hack comments.
   35169 
   35170 Thu Aug  8 14:13:36 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35171 
   35172 	Released 1.0beta.9.
   35173 
   35174 	* longlong.h: Define BITS_PER_LONG to 32 if it's not already
   35175 	  defined.
   35176 	* Define __BITS4 to BITS_PER_LONG / 4.
   35177 	* Don't assume 32 bit word size in "count_leading_zeros" C macro.
   35178 	  Use __BITS4 and BITS_PER_LONG instead.
   35179 
   35180 	* longlong.h: Don't #undef internal macros (reverse change of Aug 3).
   35181 
   35182 	* longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
   35183 	  even for plain mc68000.
   35184 
   35185 	* mpq_div: Flip the sign of the numerator *and* denominator of the
   35186 	  result if the intermediate denominator is negative.
   35187 
   35188 	* mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations.
   35189 
   35190 	* mpz_and.c: Compute the result size more conservatively.
   35191 	* mpz_ior.c: Likewise.
   35192 
   35193 	* mpz_realloc: Never allocate zero space even if NEW_SIZE == 0.
   35194 
   35195 	* dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from
   35196 	  BSDMP_SRCS.
   35197 
   35198 	* dist-Makefile: Create mult.c from mpz_mul.c.
   35199 	* mult.c: Delete this file.
   35200 
   35201 	* _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was
   35202 	  not done properly if the input string had many leading zeros).
   35203 
   35204 Sun Aug  4 16:54:14 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35205 
   35206 	* dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets
   35207 	  work with VPATH and GNU MP.
   35208 
   35209 	* mpz_gcd: Don't call mpz_set; inline its functionality.
   35210 
   35211 	* mpq_mul, mpq_div: Fix several serious typos.
   35212 
   35213 	* mpz_dmincl, mpz_div: Don't normalize the quotient if it's already
   35214 	  zero.
   35215 
   35216 	* mpq_neg.c: New file.
   35217 
   35218 	* dist-Makefile: Remove obsolete dependencies.
   35219 
   35220 	* mpz_sub: Fix typo.
   35221 
   35222 	Bugs found by Pierre-Joseph Gailly (pjg (a] sunbim.be):
   35223 	* mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd
   35224 	  is just 1.
   35225 	* mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases.
   35226 
   35227 Sat Aug  3 23:45:28 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35228 
   35229 	* longlong.h: Clean up comments.
   35230 	* longlong.h: #undef internal macros.
   35231 
   35232 Fri Aug  2 18:29:11 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35233 
   35234 	* mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1.
   35235 	* mpq_set_si, mpq_set_ui: Cosmetic formatting changes.
   35236 
   35237 	* mpz_dmincl.c: Normalize the remainder before shifting it back.
   35238 
   35239 	* mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend.
   35240 
   35241 	* mpn_div.c: Fix comment.
   35242 
   35243 	* mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate
   35244 	  type, in order to work for both GNU and Berkeley functions.
   35245 
   35246 	* dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm,
   35247 	  madd.c from mpz_add.c, msub.c from mpz_sub.c.
   35248 	  respectively.
   35249 	* pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these.
   35250 	* mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and
   35251 	  Berkeley function name variants.
   35252 	* dist-Makefile: Add created files to "clean" target.
   35253 
   35254 Tue Jul 16 15:19:46 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35255 
   35256 	* mpq_get_den: No need for absolute value of the size, the
   35257 	  denominator is always positive.
   35258 
   35259 	* mpz_get_ui: If the operand is zero, return zero.  Don't read the
   35260 	  limb array!
   35261 
   35262 	* mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it
   35263 	  is the size of the remainder.
   35264 
   35265 Mon Jul 15 11:08:05 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35266 
   35267 	* Several files: Remove unused variables and functions.
   35268 
   35269 	* gmp-impl.h: Declare _mpz_impl_sqrt.
   35270 
   35271 	* mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if
   35272 	  UDIV_NEEDS_NORMALIZATION.  (Fix from Brian Beuning.)
   35273 
   35274 	* mpz_dm_ui.c, sdiv: Replace *digit with *limb.
   35275 
   35276 	* mpz_ior: Add missing else statement in -OP1 | -OP2 case.
   35277 	* mpz_ior: Add missing else statement in OP1 | -OP2 case.
   35278 	* mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
   35279 	* mpz_ior: Duplicate _mpz_realloc code.
   35280 
   35281 	* mpz_and: Add missing else statement in -OP1 & -OP2 case.
   35282 	* mpz_and: Rewrite OP1 & -OP2 case.
   35283 	* mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
   35284 
   35285 	* mpz_gcdext: Loop in d1.size (not b->size).  (Fix from Brian
   35286 	  Beuning.)
   35287 
   35288 	* mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call.  (Fix from
   35289 	  Brian Beuning.)
   35290 
   35291 Fri Jul 12 17:10:33 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35292 
   35293 	* mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c,
   35294 	  mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c:
   35295 	  New files.
   35296 
   35297 	* mpz_dmincl.c: Remove second re-allocation of rem->d.  It
   35298 	  was never executed.
   35299 
   35300 	* dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as
   35301 	  some unixes' test doesn't have the -r option).
   35302 
   35303 	* *.*: Cast allocated pointers to the appropriate type (makes old C
   35304 	  compilers happier).
   35305 
   35306 	* cre-conv-tab.c (main): Divide max_uli by 2 and multiply again
   35307 	  after conversion to double.  (Kludge for broken C compilers.)
   35308 
   35309 	* dist-Makefile (stamp-stddefh): New target.  Test if "stddef.h"
   35310 	  exists in the system and creates a minimal one if it does not
   35311 	  exist.
   35312 	* cre-stddefh.c: New file.
   35313 	* dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh.
   35314 	* dist-Makefile (clean): Add some more.
   35315 	* gmp.h, mp.h: Unconditionally include "stddef.h".
   35316 
   35317 Thu Jul 11 10:08:21 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35318 
   35319 	* min: Do ungetc of last read character.
   35320 	* min.c: include stdio.h.
   35321 
   35322 	* dist-Makefile: Go via tmp- files for cre* redirection.
   35323 	* dist-Makefile: Add tmp* to "clean" target.
   35324 
   35325 	* dist-Makefile: Use LOCAL_CC for cre*, to simplify cross
   35326 	  compilation.
   35327 
   35328 	* gmp.h, mp.h: Don't define NULL here.
   35329 	* gmp-impl.h: Define it here.
   35330 
   35331 Wed Jul 10 14:13:33 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35332 
   35333 	* mpz_mod_2exp: Don't copy too much, overwriting most significant
   35334 	  limb.
   35335 
   35336 	* mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when
   35337 	  reallocating res, if op[12]_ptr got their value from alloca.
   35338 
   35339 	* mpz_and, mpz_ior: Clear up comments.
   35340 
   35341 	* cre-mparam.c: Output parameters for `short int' and `int'.
   35342 
   35343 	* mpz_and, mpz_ior: Negate negative op[12]_size in several places.
   35344 
   35345 Tue Jul  9 18:40:30 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35346 
   35347 	* gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t.
   35348 	  (Fix for Sun lossage.)
   35349 
   35350 	* gmp.h: Add declaration of mpq_clear.
   35351 
   35352 	* dist-Makefile: Check if "ranlib" exists, before using it.
   35353 	* dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c.
   35354 	* mpz_powm: Fix typo, "pow" instead of "mpz_powm".
   35355 
   35356 Fri Jul  5 19:08:09 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35357 
   35358 	* move: Remove incorrect comment.
   35359 
   35360 	* mpz_free, mpq_free: Rename to *_clear.
   35361 	* dist-Makefile: Likewise.
   35362 	* mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise.
   35363 
   35364 	* mpz_dmincl.c: Don't call "move", inline its functionality.
   35365 
   35366 Thu Jul  4 00:06:39 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35367 
   35368 	* Makefile: Include dist-Makefile.  Fix dist target to include
   35369 	  dist-Makefile (with the name "Makefile" in the archive).
   35370 
   35371 	* dist-Makefile: New file made from Makefile.  Add new mpz_...
   35372 	  functions.
   35373 
   35374 	* mpz_powincl.c New file for mpz_powm (Berkeley MP pow)
   35375 	  functionality.  Avoids code duplication.
   35376 	* pow.c, mpz_powm.c: Include mpz_powincl.c
   35377 
   35378 	* mpz_dmincl.c: New file containing general division code.  Avoids
   35379 	  code duplication.
   35380 	* mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include
   35381 	  mpz_dmincl.c.
   35382 
   35383 	* _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined.
   35384 	  Instead, write the overlapping memory copying inline.
   35385 
   35386 	* mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit).
   35387 
   35388 	* longlong.h: Don't use #elif.
   35389 	* mpz_do_sqrt.c: Likewise.
   35390 
   35391 	* longlong.h: Use __asm__ instead of asm.
   35392 	* longlong.h (sparc udiv_qrnnd): Make it to one string over several
   35393 	  lines.
   35394 
   35395 	* longlong.h: Preend __ll_ to B, highpart, and lowpart.
   35396 
   35397 	* longlong.h: Move array t in count_leading_zeros to the new file
   35398 	  mp_clz_tab.c.  Rename the array __clz_tab.
   35399 	* All files: #ifdef for traditional C compatibility.
   35400 
   35401 Wed Jul  3 11:42:14 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35402 
   35403 	* mpz_and: Initialize res_ptr always (used to be initialized only
   35404 	  when reallocating).
   35405 
   35406 	* longlong.h (umul_ppmm [C variant]): Make __ul...__vh
   35407 	  `unsigned int', and cast the multiplications.  This way
   35408 	  compilers more easily can choose cheaper multiplication
   35409 	  instructions.
   35410 
   35411 	* mpz_mod_2exp: Handle input argument < modulo argument.
   35412 	* mpz_many: Make sure mp_size is the type for sizes, not int.
   35413 
   35414 	* mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul,
   35415 	  mpq_div: Change mpz_init* interface.  Structure pointer as first
   35416 	  arg to initialization function, no longer *return* struct.
   35417 
   35418 Sun Jun 30 19:21:44 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35419 
   35420 	* Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14
   35421 	  character file name length limit.
   35422 
   35423 	* Most files: Rename MINT to MP_INT.  Rename MRAT to MP_RAT.
   35424 	* mpz_sizeinb.c: New file with function mpz_sizeinbase.
   35425 	* mp_bases.c: New file, with array __mp_bases.
   35426 	* _mpz_get_str, _mpz_set_str: Remove struct bases, use extern
   35427 	  __mp_bases instead.
   35428 	* mout, mpz_out_str: Use array __mp_bases instead of function
   35429 	  _mpz_get_cvtlen.
   35430 	* mpz_get_cvtlen.c: Remove.
   35431 	* Makefile: Update.
   35432 
   35433 Sat Jun 29 21:57:28 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35434 
   35435 	* longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
   35436 	* longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss.
   35437 	* longlong.h (__sparc__): Don't call .umul; expand asm instead.
   35438 	  Don't define __umulsidi3 (i.e. use default definition).
   35439 
   35440 Mon Jun 24 17:37:23 1991  Torbjorn Granlund  (tege (a] amon.sics.se)
   35441 
   35442 	* _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case):
   35443 	  Swap 't' and 's'.
   35444 
   35445 Sat Jun 22 13:54:01 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35446 
   35447 	* mpz_gcdext.c: New file.
   35448 
   35449 	* mpn_mul: Handle carry and unexpected operand sizes in last
   35450 	  additions/subtractions.  (Bug trigged when v1_size == 1.)
   35451 
   35452 	* mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c).
   35453 	* mpq_*: Call mpz_init*.
   35454 
   35455 	* mpz_pow_ui, rpow: Use _mpn_mul instead of mult.  Restructure.
   35456 
   35457 Wed May 29 20:32:33 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35458 
   35459 	* mpz_get_cvtlen: multiply by size.
   35460 
   35461 Sun May 26 15:01:15 1991  Torbjorn Granlund  (tege (a] bella.nada.kth.se)
   35462 
   35463 	Alpha-release 0.95.
   35464 
   35465 	Fixes from Doug Lea (dl (a] g.oswego.edu):
   35466 	* mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE).  Adjust PROD_SIZE
   35467 	  correctly.
   35468 	* mpz_div: Prepend _ to mpz_realloc.
   35469 	* mpz_set_xs, mpz_set_ds: Fix typos in function name.
   35470 
   35471 Sat May 25 22:51:16 1991  Torbjorn Granlund  (tege (a] bella.nada.kth.se)
   35472 
   35473 	* mpz_divmod_ui: New function.
   35474 
   35475 	* sdiv: Make the sign of the remainder correct.
   35476 
   35477 Thu May 23 15:28:24 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35478 
   35479 	* Alpha-release 0.94.
   35480 
   35481 	* mpz_mul_ui: Include longlong.h.
   35482 
   35483 	* mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead
   35484 	  of msqrt.
   35485 
   35486 	* mpz_impl_sqrt: Don't call "move", inline its functionality.
   35487 
   35488 	* mdiv: Use MPN_COPY instead of memcpy.
   35489 	* rpow, mpz_mul, mpz_mod_2exp: Likewise.
   35490 	* pow.c: Likewise, and fix bug in the size arg.
   35491 
   35492 	* xtom: Don't use mpz_alloc, inline needed code instead.  Call
   35493 	  _mpz_set_str instead of mpz_set_str.
   35494 
   35495 	* Makefile: Make two libraries, libmp.a and libgmp.a.
   35496 
   35497 Thu May 22 20:25:29 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35498 
   35499 	* Add manual to distribution.
   35500 	* Fold in many missing routines described in the manual.
   35501 	* Update Makefile.
   35502 
   35503 Wed May 22 13:48:46 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35504 
   35505 	* mpz_set_str: Make it handle 0x prefix OK.
   35506 
   35507 Sat May 18 18:31:02 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35508 
   35509 	* memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE
   35510 	  arguments.
   35511 	* mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func.
   35512 	* min: Likewise.
   35513 
   35514 Thu May 16 20:43:05 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35515 
   35516 	* memory.c: Make the default allocations functions global.
   35517 	* mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the
   35518 	  default memory function.
   35519 
   35520 Wed May  8 20:02:42 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35521 
   35522 	* mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D
   35523 	  even if no normalization is needed.
   35524 	* mpz_div: Rework reallocation scheme, to avoid excess copying.
   35525 
   35526 	* mpz_sub_ui.c, mpz_add_ui.c: New files.
   35527 
   35528 	* mpz_cmp.c, mpz_cmp_ui.c: New files.
   35529 
   35530 	* mpz_mul_2exp: Handle zero input MINT correctly.
   35531 
   35532 	* mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT.
   35533 
   35534 	* mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O.
   35535 
   35536 Tue May  7 15:44:58 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35537 
   35538 	* mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT.
   35539 	* mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT.
   35540 	* gcd, mpz_gcd: Likewise.
   35541 
   35542 	* gcd, mpz_gcd: Handle common 2 factors correctly.
   35543 
   35544 Mon May  6 20:22:59 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35545 
   35546 	* gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy.
   35547 
   35548 	* gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros.
   35549 
   35550 Sun May  5 15:16:23 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35551 
   35552 	* mpz_div: Remove test for QUOT == 0.
   35553 
   35554 Sun Apr 28 20:21:04 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35555 
   35556 	* pow: Don't make MOD normalization in place, as it's a bad idea to
   35557 	  write on an input parameter.
   35558 	* pow: Reduce BASE if it's > MOD.
   35559 	* pow, mult, mpz_mul: Simplify realloc code.
   35560 
   35561 Sat Apr 27 21:03:11 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35562 
   35563 	* Install multiplication using Karatsuba's algorithm as default.
   35564 
   35565 Fri Apr 26 01:03:57 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35566 
   35567 	* msqrt: Store in ROOT even for U==0, to make msqrt(0) defined.
   35568 
   35569 	* mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and
   35570 	  left, respectively.
   35571 	* gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp.
   35572 
   35573 	* mlshift.c, mrshift.c: Remove.
   35574 
   35575 Wed Apr 24 21:39:22 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35576 
   35577 	* mpn_mul: Check only for m2_size == 0 in function header.
   35578 
   35579 Mon Apr 22 01:31:57 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35580 
   35581 	* karatsuba.c: New file for Karatsuba's multiplication algorithm.
   35582 
   35583 	* mpz_random, mpz_init, mpz_mod_2exp: New files and functions.
   35584 
   35585 	* mpn_cmp: Fix header comment.
   35586 
   35587 Sun Apr 21 00:10:44 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35588 
   35589 	* pow: Switch off initial base reduction.
   35590 
   35591 Sat Apr 20 22:06:05 1991  Torbjorn Granlund  (tege (a] echnaton.sics.se)
   35592 
   35593 	* mpz_get_str: Don't generate initial zeros for initial word.
   35594 	  Used to write outside of allocated storage.
   35595 
   35596 Mon Apr 15 15:48:08 1991  Torbjorn Granlund  (tege (a] zevs.sics.se)
   35597 
   35598 	* _mpz_realloc: Make it accept size in number of mp_digits.
   35599 	* Most functions: Use new _mpz_realloc definition.
   35600 
   35601 	* mpz_set_str: Remove calls _mp_free_func.
   35602 
   35603 	* Most functions: Rename mpn_* to _mpn_*.  Rename mpz_realloc to
   35604 	  _mpz_realloc.
   35605 	* mpn_lshift: Redefine _mpn_lshift to only handle small shifts.
   35606 	* mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift.
   35607 	* msqrt, mp*_*shift*: Define cnt as unsigned (for speed).
   35608 
   35609 Sat Apr  6 14:05:16 1991  Torbjorn Granlund  (tege (a] musta.nada.kth.se)
   35610 
   35611 	* mpn_mul: Multiply by the first digit in M2 in a special
   35612 	  loop instead of zeroing the product area.
   35613 
   35614 	* mpz_abs.c: New file.
   35615 
   35616 	* sdiv: Implement as mpz_div_si for speed.
   35617 
   35618 	* mpn_add: Make it work for second source operand == 0.
   35619 
   35620 	* msub: Negate the correct operand, i.e. V before swapping, not
   35621 	  the smaller of U and V!
   35622 	* madd, msub: Update abs_* when swapping operands, and not after
   35623 	  (optimization).
   35624 
   35625 Fri Apr  5 00:19:36 1991  Torbjorn Granlund  (tege (a] black.nada.kth.se)
   35626 
   35627 	* mpn_sub: Make it work for subtrahend == 0.
   35628 
   35629 	* madd, msub: Rewrite to minimize mpn_cmp calls.  Ensure
   35630 	  mpn_cmp is called with positive sizes (used to be called
   35631 	  incorrectly with negative sizes sometimes).
   35632 
   35633 	* msqrt: Make it divide by zero if fed with a negative number.
   35634 	* Remove if statement at end of precision calculation that was
   35635 	  never true.
   35636 
   35637 	* itom, mp.h: The argument is of type short, not int.
   35638 
   35639 	* mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer.
   35640 
   35641 	* mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h.
   35642 
   35643 	* Add COPYING to distribution.
   35644 
   35645 	* mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files.
   35646 
   35647 Fri Mar 15 00:26:29 1991  Torbjorn Granlund  (tege (a] musta.nada.kth.se)
   35648 
   35649 	* Add Copyleft headers to all files.
   35650 
   35651 	* mpn_mul.c, mpn_div.c: Add header comments.
   35652 	* mult.c, mdiv.c: Update header comments.
   35653 
   35654 	* mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c,
   35655 	  mpq_free.c: New files for rational arithmetics.
   35656 
   35657 	* mpn_lshift.c: Avoid writing the most significant word if it is 0.
   35658 
   35659 	* mdiv.c: Call mpn_lshift for the normalization.
   35660 	* mdiv.c: Remove #ifdefs.
   35661 
   35662 	* Makefile: Add ChangeLog to DISTFILES.
   35663 
   35664 	* mpn_div.c: Make the add_back code work (by removing abort()).
   35665 	* mpn_div.c: Make it return if the quotient is size as compared
   35666 	  with the difference NSIZE - DSIZE.  If the stored quotient is
   35667 	  larger than that, return 1, otherwise 0.
   35668 	* gmp.h: Fix mpn_div declaration.
   35669 	* mdiv.c: Adopt call to mpn_div.
   35670 	* mpz_div.c: New file (developed from mdiv.c).
   35671 
   35672 	* README: Update routine names.
   35673 
   35674 Thu Mar 14 18:45:28 1991  Torbjorn Granlund  (tege (a] musta.nada.kth.se)
   35675 
   35676 	* mpq_mul.c: New file for rational multiplication.
   35677 
   35678 	* gmp.h: Add definitions for rational arithmetics.
   35679 
   35680 	* mpn_div: Kludge the case where the high numerator digit > the
   35681 	  high denominator digit.  (This code is going to be optimized later.)
   35682 
   35683 	* New files: gmp.h for GNU specific functions, gmp-common.h for
   35684 	  definitions common for mp.h and gmp.h.
   35685 
   35686 	* Ensure mp.h just defines what BSD mp.h defines.
   35687 
   35688 	* pow.c: Fix typo for bp allocation.
   35689 
   35690 	* Rename natural number functions to mpn_*, integer functions to
   35691 	  mpz_*.
   35692 
   35693 Tue Mar  5 18:47:04 1991  Torbjorn Granlund  (tege (a] musta.nada.kth.se)
   35694 
   35695 	* mdiv.c (_mp_divide, case 2): Change test for estimate of Q from
   35696 	  "n0 >= r" to "n0 > r".
   35697 
   35698 	* msqrt: Tune the increasing precision scheme, to do fewer steps.
   35699 
   35700 Tue Mar  3 18:50:10 1991  Torbjorn Granlund  (tege (a] musta.nada.kth.se)
   35701 
   35702 	* msqrt: Use the low level routines.  Use low precision in the
   35703 	beginning, and increase the precision as the result converges.
   35704 	(This optimization gave a 6-fold speedup.)
   35705