github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/ChangeLog (about) 1 2016-12-16 Torbjörn Granlund <tg@gmplib.org> 2 3 * Version 6.1.2 released. 4 5 2016-12-13 Torbjörn Granlund <tg@gmplib.org> 6 7 * longlong.h: Test LONGLONG_STANDALONE in two more places. 8 9 2016-12-07 Torbjörn Granlund <tg@gmplib.org> 10 11 * gmp-h.in: Check yet another symbol for FILE. 12 13 2016-12-02 Torbjörn Granlund <tg@gmplib.org> 14 15 Merge configure changes from before 6.1.1: 16 17 2016-03-25 Torbjörn Granlund <torbjorng@google.com> 18 19 * config.guess: Prefix all arm CPUs with "arm" to accommodate our 20 matchers. 21 * configure.ac (arm): Match arm CPUs consistently. 22 23 2016-03-21 Torbjörn Granlund <torbjorng@google.com> 24 25 * configure.ac: Support many arm64 processors. 26 27 2016-03-20 Torbjörn Granlund <torbjorng@google.com> 28 29 * config.guess (arm*): Handle big.LITTLE CPUs by extracting the 30 lexically largest id. 31 * config.guess (arm*): Add many aarch64 CPUs. 32 * config.guess (main): Corresponding changes. 33 34 * configure.ac (arm*): Support cortex-a5 better. 35 36 2016-01-15 Torbjörn Granlund <torbjorng@google.com> 37 38 * config.guess (s390): Don't assume /proc/cpuinfo exists. 39 40 2016-01-13 Torbjörn Granlund <torbjorng@google.com> 41 42 * config.guess: Reorder and generalise ppc code. 43 44 2016-12-01 Torbjörn Granlund <tg@gmplib.org> 45 46 * tests/misc.c (tests_rand_start): Make shift well-defined. 47 48 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 49 * gmp-h.in: Bump version. 50 51 2016-11-29 Torbjörn Granlund <tg@gmplib.org> 52 53 * gmp-h.in (__GNU_MP__): Bump. 54 55 * mpz/inp_raw.c: Rewrite size computation to avoid overflow. 56 57 * mpz/kronsz.c: Use ABS_CAST to avoid undefined code. 58 59 2016-11-27 Torbjörn Granlund <tg@gmplib.org> 60 61 * tune/time.c (cgt_works_p): Add a missing verbosity check. 62 63 * configure.ac: Make udiv_w_sdiv use conditional on enable_assembly. 64 65 2016-11-25 Marc Glisse <marc.glisse@inria.fr> 66 67 * tests/cxx/t-ops2.cc (checkz): Avoid left shift of negative number. 68 69 2016-11-22 Torbjörn Granlund <tg@gmplib.org> 70 71 * configure.ac (x86): Define LINUX for GNU/Linux systems. 72 * mpn/x86_64/fat/fat_entry.asm: Set PRETEND_PIC for GNU/Linux. 73 74 2016-11-21 Torbjörn Granlund <tg@gmplib.org> 75 76 * acinclude.m4 (mpn_lshift_com optimization 2): Make it well-defined 77 also for 32-bit systems. 78 (mpn_lshift_com optimization 2): Free allocated memory. 79 80 2016-11-01 Torbjörn Granlund <tg@gmplib.org> 81 82 * mpn/generic/dive_1.c: Remove a forgotten dummy while-loop. (Spotted 83 by Peter Barfuss.) 84 85 2016-10-31 Oleg Oshmyan <chortos@inbox.lv> 86 87 * gmp-impl.h (x86_64 MPN_IORD_U): Use proper asm constraint. 88 89 2016-10-24 Torbjörn Granlund <tg@gmplib.org> 90 91 * config.guess: Recognise Itanium Poulson. 92 93 2016-10-15 Torbjörn Granlund <tg@gmplib.org> 94 95 * configure.ac (arm*-*-*): Amend last change. 96 97 2016-10-14 Torbjörn Granlund <tg@gmplib.org> 98 99 * configure.ac 100 (arm*-*-*): Rewrite arm support to handle armv8 CPUs in 32-bit mode. 101 102 2016-08-24 Vlad Zakharov <vzakhar@synopsys.com> 103 104 * longlong.h (arc add_ssaaaa, sub_ddmmss): Replace obsolete 'J' 105 constraint with 'Cal'. 106 107 2016-08-22 Marc Glisse <marc.glisse@inria.fr> 108 109 * longlong.h (umul_ppmm from __umulsidi3): Protect with do ... 110 while (0). 111 112 2016-06-18 Torbjörn Granlund <tg@gmplib.org> 113 114 * Version 6.1.1 released. 115 116 2015-03-20 Marc Glisse <marc.glisse@inria.fr> 117 118 * configure.ac (WANT_ASSEMBLY): Remove. 119 (NO_ASM): Remove from CFLAGS, add to AC_DEFINE. 120 * tests/misc.c: Test NO_ASM instead of WANT_ASSEMBLY. 121 122 2016-02-25 Pavel Kopyl <p.kopyl@samsung.com> 123 124 * acinclude.m4 (GMP_ASM_UNDERSCORE): Tighten gurkmacka detection. 125 126 2016-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 127 128 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 129 * gmp-h.in: Bump version. 130 131 2016-01-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 132 133 * tests/cxx/clocale.c: Do not re-define localeconv for mingw. 134 * tests/misc/t-locale.c: Likewise (Thanks Alexander). 135 136 2015-12-26 Torbjörn Granlund <torbjorng@google.com> 137 138 * tests/misc.c (tests_start): Assert library version. 139 140 2015-12-19 Marc Glisse <marc.glisse@inria.fr> 141 142 * gmp-impl.h (fft_table_nk): Use gmp_uint_least32_t. 143 * mpn/generic/trialdiv.c (gmp_primes_ptab): Likewise. 144 145 2015-12-14 Torbjörn Granlund <torbjorng@google.com> 146 147 * mpn/x86_64/fat/fat.c (gmp_workaround_skylake_cpuid_bug): 148 New function. 149 (__gmpn_cpuvec_init): Handle more BMI2 crippled CPUs. 150 151 2015-12-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 152 153 * tests/arm32call.asm: bx->ret to support thumb-less chips 154 (thanks Martin Husemann). 155 156 2015-12-13 Torbjörn Granlund <torbjorng@google.com> 157 158 * config.sub: Fix spelling of kabylake. 159 * acinclude.m4: Likewise. 160 * mpn/x86_64/fat/fat.c: Likewise. 161 162 2015-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 163 164 * tests/misc/t-printf.c: Test a sequence of '%'. 165 * printf/doprnt.c: Avoid buffer overread with long long limbs. 166 167 2015-12-06 Torbjörn Granlund <torbjorng@google.com> 168 169 * configure.ac (arm*): Conditionally define NOTHUMB. 170 Simplify and generalise. 171 * mpn/arm/arm-defs.m4 (ret): New macro, conditional on NOTHUMB. 172 * mpn/arm/*.asm: Use ret. 173 174 2015-12-03 Torbjörn Granlund <torbjorng@google.com> 175 176 * config.guess: Work around skylake cpuid bug. 177 Fix spelling of kabylake. 178 179 2015-12-01 Torbjörn Granlund <torbjorng@google.com> 180 181 * mpn/x86_64/coreibwl/mul_basecase.asm: Add FUNC_EXITs. 182 183 2015-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 184 185 * gmp-impl.h (MPN_TOOM22_MUL_MINSIZE): Consider ToomX2 limits 186 (thanks Paul). 187 * tests/mpn/t-toom22.c: Keep on testing small sizes. 188 189 2015-11-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 190 191 * Version 6.1.0 released. 192 193 * mpz/inits.c [__CHECKER__]: Init limb, not pointer. 194 * mpz/init.c [__CHECKER__]: Likewise (spotted by Vicente Benjumea). 195 * tests/mpf/t-pow_ui.c: Use another mpf for the size limit. 196 197 2015-10-30 Torbjörn Granlund <torbjorng@google.com> 198 199 * mpf/pow_ui.c: Add log(e) precision bits. 200 201 * doc/gmp.texi (Floating-point): Rewrite mpf introduction. 202 203 2015-10-29 Marco Bodrato <bodrato@mail.dm.unipi.it> 204 205 * demos/factorize.c: mpz_div_2exp => mpz_tdiv_q_2exp. 206 * demos/perl/GMP.xs: Likewise. 207 * tests/mpf/t-pow_ui.c: Use reference value to check the size. 208 209 * mini-gmp/mini-gmp.c: Removed a typo (spotted by Paul Zimmermann). 210 * doc/gmp.texi (Floating-point): Remove "infinite precision" claim. 211 212 * gmp-h.in: Update version. 213 214 2015-10-28 Torbjörn Granlund <torbjorng@google.com> 215 216 * tests/mpf/t-pow_ui.c: New file. 217 * tests/mpf/Makefile.am (check_PROGRAMS): Compile it. 218 219 * mpf/pow_ui.c: Rewrite for accuracy and performance. 220 221 2015-10-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 222 223 * configfsf.guess: Updated to version 2015-10-21, for a typo. 224 225 * tests/cxx/t-ops.cc (check_mpq): Compare also with mpz. 226 (check_mpf): Compare also with mpz and mpq. 227 228 2015-10-25 Torbjörn Granlund <torbjorng@google.com> 229 230 * configure.ac: Avoid passing ambiguous -march=skylake. 231 232 2015-10-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 233 234 * Version 6.1.0-rc1 published. 235 236 * gmp-h.in: Revert version for RC. 237 238 2015-10-20 Torbjörn Granlund <torbjorng@google.com> 239 240 * mpn/x86/pentium4/sse2/popcount.asm: Use LEAL. 241 * mpn/x86/k7/invert_limb.asm: Likewise. 242 243 2015-10-18 Torbjörn Granlund <torbjorng@google.com> 244 245 * mpn/arm64/gmp-mparam.h: New file. 246 247 2015-10-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 248 249 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 250 * gmp-h.in: Bump version. 251 252 2015-10-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 253 254 * tests/mpf/t-cmp_si.c: Initialise a variable (only when error arise) 255 * mpn/generic/toom43_mul.c: Insert parentheses around & expressions. 256 * mpn/generic/toom52_mul.c: Likewise. 257 * tests/mpn/t-minvert.c: Remove an unused var. 258 * tests/mpz/t-cong_2exp.c: Likewise. 259 260 2015-10-16 Hans Wennborg <hwennborg at google.com> 261 262 * mpn/generic/div_qr_2.c: Insert parentheses around & expressions. 263 * mpn/generic/toom44_mul.c: Likewise. 264 * mpn/generic/toom53_mul.c: Likewise. 265 * mpn/generic/toom62_mul.c: Likewise. 266 * tests/mpn/t-bdiv.c: Simplify conditional printing of whitespace. 267 * tests/mpn/t-div.c: Likewise. 268 269 2015-10-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 270 271 * configfsf.sub: Updated to version 2015-08-20, from gnulib. 272 * configfsf.guess: Updated to version 2015-09-14, from gnulib. 273 274 2015-10-14 Torbjörn Granlund <torbjorng@google.com> 275 276 * demos/pexpr.c (main): Clear out a variable. 277 278 * mpn/generic/sqrlo_basecase.c: Move things before addmul_1 to reduce 279 register pressure. 280 281 * .hgignore: Add 'compile' and 'test-driver'. 282 283 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify, add ASSERT. 284 * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. 285 286 * tune/tuneup.c (tune_mu_bdiv): Start at measured BDIV_DC_ thresholds. 287 288 2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 289 290 * mpf/clears.c, mpf/inits.c, mpq/clears.c, mpq/inits.c, 291 * mpz/clears.c, mpz/inits.c: Keep on supporting empty list. 292 293 2015-10-13 Marc Glisse <marc.glisse@inria.fr> 294 295 * gmpxx.h (__GMPP_DEFINE_BINARY_TYPE_FUNCTION): Allow mixed operations. 296 (__gmp_cmp_function, __gmp_binary_equal, __gmp_binary_less): 297 Handle mixed operations. 298 (__gmp_cmp_function): Move before __gmp_binary_equal. 299 300 2015-10-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 301 302 * mpf/pow_ui.c: Increased precision of partial results. 303 304 2015-10-12 Torbjörn Granlund <torbjorng@google.com> 305 306 * configure.ac: Reject AVX for NetBSD. 307 308 2015-10-11 Torbjörn Granlund <torbjorng@google.com> 309 310 * configure.ac (fat_path): Add skylake. 311 312 2015-10-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 313 314 * gen-fib.c: Correct the name of the program in error message. 315 * gen-fac.c: Likewise. 316 317 * mpf/get_str.c: Increase precision of base^e computation. 318 319 2015-10-09 Torbjörn Granlund <torbjorng@google.com> 320 321 * config.guess: Recognise cabylake and goldmont and more versions of 322 skylake and silvermont. 323 * acinclude.m4 (X86_64_PATTERN): Add cabylake and goldmont. 324 * config.sub: Corresponding changes. 325 * configure.ac: Corresponding changes. 326 * mpn/x86_64/fat/fat.c: Corresponding changes. 327 328 2015-09-12 Torbjörn Granlund <torbjorng@google.com> 329 330 * mpf/clear.c, mpf/clears.c, mpf/inits.c, mpq/clear.c, mpq/clears.c 331 * mpq/inits.c, mpz/clear.c, mpz/clears.c, mpz/inits.c: 332 Streamline, use macros. 333 334 2015-09-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 335 336 * mpz/cfdiv_r_2exp.c: Use mpn_neg and MPZ_NEWALLOC. 337 * mpz/cfdiv_q_2exp.c: Use MPZ_REALLOC return value. 338 339 2015-09-12 Torbjörn Granlund <torbjorng@google.com> 340 341 * tests/mpf/t-cmp_si.c (check_data): Set precision reflecting data. 342 343 2015-09-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 344 345 * mpf/cmp_z.c: New file implementing mpf_cmp_z. 346 * mpf/Makefile.am (libmpf_la_SOURCES): Add it. 347 * Makefile.am (MPF_OBJECTS): Add generate object to libs. 348 * gmp-h.in: Declare new function. 349 * tests/mpf/t-cmp_si.c: Test also the new function. 350 * doc/gmp.texi: Document it. 351 352 2015-09-06 Torbjörn Granlund <torbjorng@google.com> 353 354 * Wrap remaining limb allocations in __GMP_ALLOCATE_FUNC_LIMBS. 355 356 * mpn/x86/fat/fat.c (fake_cpuid_table): Add missing commas. 357 * mpn/x86_64/fat/fat.c: Likewise. 358 359 * mpn/x86/fat/fat.c (fake_cpuid_table): Improve struct type. 360 * mpn/x86/fat/fat.c: Likewise. 361 362 2015-09-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 363 364 * tests/mpq/t-cmp_z.c (sizes_test): New function, tests sizes. 365 366 2015-09-03 Torbjörn Granlund <torbjorng@google.com> 367 368 * acinclude.m4 (GMP_C_HIDDEN_ALIAS): New. 369 * configure.ac (GMP_C_HIDDEN_ALIAS): Invoke. 370 371 2015-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 372 373 * mpq/cmp.c (mpq_cmp_numden): Cast to avoid over/underflow. 374 * tests/mpn/t-toom22.c (MIN_AN): Use defined value. 375 * tests/mpz/t-fac_ui.c: Check big factorial modulo a larger prime. 376 * mpn/generic/bsqrtinv.c: Use sqrlo+mullo_n instead of powlo(,,3,,). 377 * mpq/div.c: Move a branch out of the normal flow. 378 379 2015-08-31 Torbjörn Granlund <torbjorng@google.com> 380 381 * mpn/x86/fat/fat.c (fake_cpuid_table): Update similarly to 382 corresponding x86_64 code. 383 384 2015-08-31 Marco Bodrato <bodrato@mail.dm.unipi.it> 385 386 * mpq/cmp.c (mpq_cmp_z): New function to compare mpq with mpz, 387 asked by Vincent Delecroix for the SageMath project. 388 * gmp-h.in: Declare it. 389 * doc/gmp.texi: Document it. 390 * tests/mpq/t-cmp_z.c: New file to test mpq_cmp_z (from t-cmp.c). 391 * tests/mpq/Makefile.am (check_PROGRAMS): Add t-cmp_z. 392 393 * mpn/generic/powlo.c: Use mpn_sqrlo. 394 395 2015-08-29 Torbjörn Granlund <torbjorng@google.com> 396 397 * mpn/x86_64/fat/fat.c (fake_cpuid_table): Add CPU aliases. 398 399 2015-08-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 400 401 * configure.ac (AH_VERBATIM): Add HAVE_NATIVE_mpn_mullo_basecase. 402 * mpn/generic/sqrlo.c (mpn_sqrlo): Use mullo_basecase when faster. 403 * mpn/generic/sqrlo_basecase.c: More readable #defines. 404 405 * tune/tuneup.c (tune_sqrlo): New function to tune sqrlo thresholds. 406 (all): Call it, after multiplication and FFT. 407 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrlo{,_basecase}.c . 408 * gmp-impl.h: Add all SQRLO_*_THRESHOLD* defs, for tuning and default. 409 * mpn/generic/sqrlo.c: Remove default threshold definitions. 410 * mpn/generic/sqrlo_basecase.c: Use SQRLO_DC_THRESHOLD_LIMIT. 411 * mpn/minithres/gmp-mparam.h: New SQRLO_*_THRESHOLDs. 412 413 * tune/tuneup.c (tune_mullo): Set MULLO_MUL_N_THRESHOLD to never 414 whenever the FFT threshold does not exist. 415 416 * mpf/cmp.c: Remove some branches. 417 418 2015-08-25 Torbjörn Granlund <torbjorng@google.com> 419 420 * mpn/x86_64/x86_64-defs.m4: Output computed numbers in base-10 instead 421 of base-16 to avoid bugs on Solaris, FreeBSD, and old NetBSD. 422 423 2015-08-23 Torbjörn Granlund <torbjorng@google.com> 424 425 * mpn/x86_64/fat/fat.c (fake_cpuid_table): Add more entries, handle 426 Broadwell separately. 427 428 * configure.ac (fat_path): Add coreibwl. 429 430 2015-08-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 431 432 * mpn/generic/rootrem.c (logbased_root): New function. 433 (mpn_rootrem_internal): Use it to estimate highest 9 bits of the root. 434 435 * gmp-impl.h (MPQ_PTR_SWAP, MPQ_SRCPTR_SWAP): New macros. 436 437 2015-08-17 Torbjörn Granlund <torbjorng@google.com> 438 439 * acinclude.m4 (X86_64_PATTERN): Add skylake. 440 * config.guess: Corresponding changes. 441 * config.sub: Corresponding changes. 442 * configure.ac: Corresponding changes. 443 * mpn/x86_64/skylake/gmp-mparam.h: New file. 444 445 2015-08-15 Torbjörn Granlund <torbjorng@google.com> 446 447 * mpn/generic/mullo_basecase.c: Provide alternative code, make default. 448 449 2015-08-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 450 451 * tests/refmpn.c (refmpn_sqrlo): New function. 452 * tests/tests.h: Define it. 453 454 * mpn/generic/sqrlo.c: New file, new function. 455 * mpn/generic/sqrlo_basecase.c: New file, new function. 456 * gmp-impl.h (mpn_sqrlo, mpn_sqrlo_basecase): Declare them. 457 * configure.ac (gmp_mpn_functions): Add new files. 458 459 * tests/mpn/t-sqrlo.c: New file, new test. 460 * tests/mpn/Makefile.am (check_PROGRAMS): Add new test. 461 * tests/devel/try.c: Support mpn_sqrlo and mpn_sqrlo_basecase. 462 463 * tune/common.c (speed_mpn_sqrlo{,_basecase}): New functions. 464 * tune/speed.c: Support new functions. 465 * tune/speed.h (SPEED_ROUTINE_MPN_MULLO_BASECASE): Update. 466 (SPEED_ROUTINE_MPN_SQRLO): New macro. 467 468 * mpn/generic/rootrem.c: Avoid divisions if not needed. 469 470 * tests/mpn/t-broot.c: Test also k=1. 471 * mpz/aorsmul_i.c: Move branches out of main line. 472 473 2015-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it> 474 475 * mpn/generic/sqrtrem.c (mpn_dc_sqrt): Support odd sizes. 476 477 2015-07-16 Torbjörn Granlund <torbjorng@google.com> 478 479 * tune/speed.c: Remove now redundant MPN_FILL. 480 481 * configure.ac (hppa-hpux): Never use O3 optimisation. 482 483 2015-07-09 Torbjörn Granlund <torbjorng@google.com> 484 485 * mpn/ia64/add_n_sub_n.asm: Make it work for HP-UX. 486 * mpn/ia64/addmul_2.asm: Likewise. 487 * mpn/ia64/aors_n.asm: Likewise. 488 * mpn/ia64/aorsorrlshC_n.asm: Likewise. 489 * mpn/ia64/cnd_aors_n.asm: Likewise. 490 * mpn/ia64/gcd_1.asm: Likewise. 491 * mpn/ia64/lshiftc.asm: Likewise. 492 * mpn/ia64/mod_34lsub1.asm: Likewise. 493 * mpn/ia64/mul_2.asm: Likewise. 494 * mpn/ia64/sec_tabselect.asm: Likewise. 495 * mpn/ia64/sqr_diag_addlsh1.asm: Likewise. 496 497 2015-07-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 498 499 * gmp-impl.h (MPN_FILL): New macro, generalise MPN_ZERO. 500 501 * mpn/generic/sqrtrem.c (mpn_dc_sqrt): New function not computing remainder. 502 (mpn_dc_sqrtrem): Use tdiv_q instead of divrem, use given scratch space. 503 (mpn_sqrtrem): Use mpn_dc_sqrt for both even and odd sizes. 504 505 2015-06-24 Torbjörn Granlund <torbjorng@google.com> 506 507 * mpn/x86_64/fastsse/com.asm: Disalllow zero size operands. 508 509 * mpn/x86_64/fastsse/copyi.asm: Suppress looping in basecase code. 510 511 2015-06-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 512 513 * mpn/generic/sqrtrem.c (mpn_sqrtrem2): Simplify branches. 514 (mpn_dc_sqrtrem): Don't compute remainder if not needed. 515 516 2015-06-23 Torbjörn Granlund <torbjorng@google.com> 517 518 * gmp-impl.h: Remove K&R stringize support. 519 * tests/devel/try.c: Likewise. 520 * tests/t-constants.c: Likewise. 521 * tests/mpf/t-fits.c: Likewise. 522 * tests/mpz/t-fits.c: Likewise. 523 524 * configure.ac (AC_C_STRINGIZE): Remove. 525 526 2015-06-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 527 528 * tests/devel/try.c: Support mpn_sqrt (sqrtrem with remainder = NULL). 529 * mpn/generic/sqrtrem.c: Reorder branches for single limb operands. 530 531 2015-06-15 Torbjörn Granlund <torbjorng@google.com> 532 533 * config.guess: Rewrite code for AVX handling to deal with broken cpuid 534 states. 535 536 2015-06-11 Torbjörn Granlund <torbjorng@google.com> 537 538 * mpn/x86/k7/gcd_1.asm: Align stack for calls. 539 * mpn/x86/p6/gcd_1.asm: Amend last change: align for PIC and non-PIC. 540 541 2015-06-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 542 543 * mpn/generic/sqrtrem.c: Use sqrtrem1 for single limb operands. 544 545 * tests/mpz/t-root.c: Check also mpz_root return value. 546 * mpn/generic/rootrem.c: Shorten first and last loop. 547 548 * mpn/generic/toom2_sqr.c: Add some ASSERTs. 549 * mpn/generic/toom22_mul.c: Likewise. 550 * tests/mpn/t-toom22.c: stop testing some unsafe (unused) corner cases. 551 552 2015-06-08 Torbjörn Granlund <torbjorng@google.com> 553 554 * mpn/x86/p6/gcd_1.asm: Align stack for calls. 555 556 2015-06-06 Torbjörn Granlund <torbjorng@google.com> 557 558 * config.sub: Recognise any arm*neon CPU. 559 * configure.ac (powerpc): Add p8 directory for power8 and later. 560 * mpn/powerpc64/mode64/p8/invert_limb.asm: New file. 561 562 2015-06-01 Torbjörn Granlund <torbjorng@google.com> 563 564 * tune/speed.c (routine): Measure "mpn_sqrt" and "mpn_root", which are 565 really the corresponding "rem" functions with NULL remainder argument. 566 567 * tune/speed.h (SPEED_ROUTINE_MPN_SQRTROOT_CALL): New. 568 (SPEED_ROUTINE_MPN_SQRTREM, SPEED_ROUTINE_MPN_ROOTREM): Remove. 569 570 * tune/common.c (speed_mpn_sqrt, speed_mpn_root): New functions. 571 (speed_mpn_sqrtrem): Use SPEED_ROUTINE_MPN_SQRTROOT_CALL 572 (speed_mpn_rootrem): Likewise. 573 574 2015-05-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 575 576 * mpf/cmp_ui.c: Use macros, remove branches, correct nails. 577 * mpf/cmp_si.c: Likewise. 578 * mpf/int_p.c: Use a simpler loop to ignore zero limbs. 579 580 * mpf/sqrt_ui.c: Special case for sqrt(1). 581 * tests/mpf/t-sqrt_ui.c: Test special cases. 582 583 * gmp-h.in: Declare (and inline) mpn_zero_p. 584 * gmp-impl.h: Remove mpn_zero_p. 585 * mpn/generic/zero_p: New file to include the function in the library. 586 * configure.ac (gmp_mpn_functions): Add it. 587 * doc/gmp.texi: Document it. 588 589 * mpz/combit.c: Call mpn_zero_p only if size is not zero. 590 * mpz/scan1.c: Likewise. 591 * tests/mpn/t-brootinv.c: Likewise. 592 * tests/mpn/t-div.c: Likewise. 593 * tests/mpn/t-minvert.c: Likewise. 594 595 * mini-gmp/mini-gmp.h: Declare mpn_zero_p. 596 * mini-gmp/mini-gmp.c: Define mpn_zero_p as a function, not a macro. 597 598 2015-05-28 Niels Möller <nisse@lysator.liu.se> 599 600 * doc/gmp.texi (Low-level Functions): Document mpn_divexact_1 and 601 mpn_cnd_swap (the latter was forgotten for the 2015-02-08 change). 602 603 2015-05-28 Linus Nordberg <linus@nordberg.se> 604 605 * configure.ac: Remove double quotes in help strings, make some 606 clarifications. 607 608 2015-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 609 610 * mpq/div.c: Reduce memory use. 611 * tests/mpq/reuse.c: Test also mpq_FUNCTION (x,x,x). 612 * mpz/swap.c: Use _SWAP macros. 613 614 2015-05-18 Torbjörn Granlund <torbjorng@google.com> 615 616 * configure.ac (arm): Let compiler decide about arm vs thumb encoding. 617 618 2015-05-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 619 620 * gmp-h.in (mpn_neg): Niels' code using mpn_neg. 621 * gmp-h.in (mpn_com): Unconditionally declare prototype. 622 623 2015-05-17 Torbjörn Granlund <torbjorng@google.com> 624 625 * mpn/arm/v6/sqr_basecase.asm: Rewrite for speed. 626 627 2015-05-16 Torbjörn Granlund <torbjorng@google.com> 628 629 * mpn/arm/v6/addmul_2.asm: Rewrite for speed and size. 630 631 2015-05-15 Torbjörn Granlund <torbjorng@google.com> 632 633 * mpn/arm/v7a/cora7/gmp-mparam.h: New file. 634 * mpn/arm/v7a/cora8/gmp-mparam.h: New file. 635 * configure.ac (arm): Point to new directories. 636 637 2015-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 638 639 * mpn/generic/invertappr.c: Reduce memory usage. 640 * gmp-impl.h (mpn_invertappr_itch): Update accordingly. 641 * tune/tuneup.c (tune_invertappr, tune_invert): Update min_size. 642 643 * mpn/generic/mu_div_qr.c: Pass scratch memory to mpn_invertappr. 644 * mpn/generic/mu_divappr_q.c: Likewise. 645 646 2015-05-12 Felix Janda <felix.janda@posteo.de> 647 648 * mpn/powerpc32/elf.m4 (LEA): Adopt to new ABI. 649 650 2015-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 651 652 * mpn/generic/invertappr.c: Reduce memory usage. 653 * gmp-impl.h (mpn_invertappr_itch): Update accordingly. 654 655 2015-05-01 Torbjörn Granlund <torbjorng@google.com> 656 657 * tune/tuneup.c (all): Make GCD tuning last since it is not robust. 658 659 2015-04-27 Torbjörn Granlund <torbjorng@google.com> 660 661 * mpn/x86_64/coreibwl/gmp-mparam.h: New file. 662 663 2015-04-26 Torbjörn Granlund <torbjorng@google.com> 664 665 * mpn/x86_64/coreibwl/mul_basecase.asm: New file. 666 * mpn/x86_64/coreibwl/sqr_basecase.asm: New file. 667 668 2015-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 669 670 * tune/common.c (speed_mpn_neg, speed_mpz_2fac_ui): New functions. 671 (speed_mpn_add_1, speed_mpn_add_1_inplace): New functions. 672 (speed_mpn_sub_1, speed_mpn_sub_1_inplace): New functions. 673 * tune/speed.h: Declare them all. 674 * tune/speed.c (routine): Added mpn_neg, mpn_add_1, mpn_sub_1, 675 mpn_add_1_inplace, mpn_sub_1_inplace, and mpz_2fac_ui. 676 677 2015-04-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 678 679 * mpn/generic/invert.c: Split add in the correction test. 680 * mpn/generic/invertappr.c: Cleanup of loops and branches. 681 682 * mpn/generic/hgcd_reduce.c: Use TMP_ALLOC_LIMBS_3. 683 * mpn/generic/powm.c: Use TMP_ALLOC_LIMBS_2. 684 * mpn/generic/rootrem.c: Likewise. 685 * mpn/generic/remove.c: Remove redundant #ifdef. 686 * mpn/generic/perfpow.c: Likewise. 687 688 2015-04-21 Torbjörn Granlund <torbjorng@google.com> 689 690 * printf/sprintffuns.c (gmp_sprintf_final): Remove extra parameters. 691 692 * mpn/arm/v6/popham.asm: Add MULFUNC_PROLOGUE. 693 * mpn/powerpc64/mode64/rsh1aors_n.asm: Likewise. 694 * mpn/powerpc64/mode64/p6/aorsmul_1.asm: Likewise. 695 696 2015-04-19 Torbjörn Granlund <torbjorng@google.com> 697 698 * mpn/x86_64/x86_64-defs.m4 (oplist): Fix typo. 699 (mulx): Simplify. 700 (adcx, adox): New defines, using helper function adx. 701 * mpn/x86_64/coreibwl/mul_1.asm: New file. 702 * mpn/x86_64/coreibwl/addmul_1.asm: New file. 703 * configure.ac (x86_64): Put coreibwl in appropriate code path. 704 705 * configure.ac (x86_64): Pass more exact Intel CPU options. 706 707 2015-04-13 Torbjörn Granlund <torbjorng@google.com> 708 709 * longlong.h (arm): Rewrite. Support thumb2; use gcc builtins for 710 count_leading_zeros, use accurate code selection critera. 711 712 2015-04-13 Marc Glisse <marc.glisse@inria.fr> 713 714 * configure.ac (x86_64): Extend noavx to ABI=64. 715 716 2015-04-10 Torbjörn Granlund <torbjorng@google.com> 717 718 * mpn/alpha/ev6/mod_1_4.asm: Use LDGP. 719 720 2015-04-01 Torbjörn Granlund <torbjorng@google.com> 721 722 * configure.ac (sparc): Don't use use -xO4, it miscompiles by design. 723 724 2015-03-24 Torbjörn Granlund <torbjorng@google.com> 725 726 * mpn/generic/mul_fft.c (mpn_fft_best_k): Don't make pointers `static' 727 just because they point to static (i.e., file-local) data. 728 729 2015-03-15 Torbjörn Granlund <torbjorng@google.com> 730 731 * acinclude.m4 (X86_64_PATTERN): Add CPU code names. 732 733 * config.guess: Add more CPUs, use CPU code names. 734 * config.sub: Corresponding changes. 735 * configure.ac: Corresponding changes. 736 737 2015-02-21 Niels Möller <nisse@lysator.liu.se> 738 739 * gmp-h.in (mpn_divexact_1): New public declaration. 740 * gmp-impl.h: Moved from here. 741 742 2015-02-08 Niels Möller <nisse@lysator.liu.se> 743 744 * doc/gmp.texi (Low-level Functions): Document mpn_cnd_swap. 745 746 * mpn/generic/cnd_swap.c (mpn_cnd_swap): New file, moved function 747 here. Also changed cnd argument type from int to mp_limb_t. 748 * mpn/generic/sec_invert.c (mpn_cnd_swap): Old location. 749 * configure.ac: Added cnd_swap. 750 * gmp-h.in (mpn_cnd_swap): Added prototype. 751 752 2015-01-19 Torbjörn Granlund <torbjorng@google.com> 753 754 * configure.ac (arm): Provide architecture specific configs in addition 755 to implementation specific configs. 756 757 * config.guess (arm): Use configfsf.guess's guess as default before 758 conditionally appending "neon". 759 760 2015-01-08 Torbjörn Granlund <torbjorng@google.com> 761 762 * config.guess: Match POWER8 for AIX. 763 764 * longlong.h: Add many casts inside assembly input operands, this 765 insures proper zero extension. 766 767 2014-12-27 Marc Glisse <marc.glisse@inria.fr> 768 769 * gmpxx.h (__gmp_unary_expr): Use __gmp_resolve_ref. 770 (__gmp_expr): New specialization for unary expressions with 771 a builtin argument. 772 773 2014-12-26 Marc Glisse <marc.glisse@inria.fr> 774 775 * gmp-impl.h (tmp_debug_entry_t): Change block to type void*. 776 777 2014-12-22 Torbjörn Granlund <torbjorng@google.com> 778 779 * longlong.h (mips64, mips32): Work around one clang bug. 780 781 2014-12-18 Torbjörn Granlund <torbjorng@google.com> 782 783 * longlong.h (umul_ppmm): Use input temps in more places. 784 785 2014-12-10 Marc Glisse <marc.glisse@inria.fr> 786 787 * tests/cxx/clocale.c (localeconv, nl_langinfo): Match glibc's 788 prototype in C++. 789 790 2014-12-09 Torbjörn Granlund <torbjorng@google.com> 791 792 * configure.ac (powerpc): Remove hardwired -mpowerpc, causes clang 793 problems. Optionally pass -m32. 794 795 2014-12-08 Marc Glisse <marc.glisse@inria.fr> 796 797 * config.guess (ultrasparc*-*-*): Update for T4 and T5. 798 * config.sub (ultrasparc*-*-*): Update for T5. 799 * configure.ac (ultrasparc*-*-*): Update for T5. 800 801 * longlong.h (sparc64): Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB 802 with VIS3. 803 804 * tests/misc/t-locale.c (localeconv, nl_langinfo): Match glibc's 805 prototype in C++. 806 * tests/mpf/t-get_si.c (check_limbdata): Avoid narrowing conversion 807 from -1 to unsigned inside {}. 808 809 2014-12-02 Torbjörn Granlund <torbjorng@google.com> 810 811 * config.guess (arm*-*-*): Redirect stderr. 812 813 2014-11-26 Torbjörn Granlund <torbjorng@google.com> 814 815 * configure.ac (arm*-*-*): Optionally pass redundant fpu mode options 816 in order to placate clang. 817 818 * mpn/arm/neon/lshiftc.asm: Avoid insn form missing from clang. 819 820 2014-11-24 Torbjörn Granlund <torbjorng@google.com> 821 822 * configure.ac (mips*-*-*): Provide ABI synonyms (for clang pretending 823 to be gcc). 824 825 2014-11-18 Torbjörn Granlund <torbjorng@google.com> 826 827 From Hannes Mehnert: 828 * config.guess (arm*-*-*): Base guesses on first matching /proc/cpuinfo 829 line. 830 831 2014-11-17 Torbjörn Granlund <torbjorng@google.com> 832 833 * longlong.h (__longlong_h_C): New macro. 834 (mpn_umul_ppmm, etc): Use it for C++ support. 835 836 2014-11-15 Torbjörn Granlund <torbjorng@google.com> 837 838 * tests/mpz/reuse.c: Make function vectors 'static'. 839 840 * tests/mpn/logic.c (check_one): Make string variable 'const'. 841 842 * tests/mpz/t-perfpow.c (tests): Make 'static'. 843 844 * tune/tuneup.c (fftmes): Remove an unused variable. 845 846 2014-11-15 Marc Glisse <marc.glisse@inria.fr> 847 848 * tests/amd64check.c (calling_conventions_fenv): Mark as extern "C". 849 * tests/x86check.c (calling_conventions_fenv): Likewise. 850 851 2014-11-13 Hans Wennborg <hwennborg@google.com> 852 853 * mpn/generic/toom_interpolate_8pts.c: Fix operator precedence in 854 ASSERT. 855 856 2014-11-13 Torbjörn Granlund <torbjorng@google.com> 857 858 * tune/speed.h: Add casts for C++ compatibility. 859 (speed_cyclecounter): Mark as extern "C". 860 (mpn_mod_1_1p_1, mpn_mod_1_1p_2): Correct prototype. 861 862 * tune/tune-gcd-p.c: Add casts for C++ compatibility. 863 864 * tune/tuneup.c: Add casts for C++ compatibility. 865 (mpn_divrem_1_tune, mpn_mod_1_tune): Mark as extern "C". 866 (INSERT_FFTTAB): Produce sentinels differently to silence compiler. 867 868 2014-11-12 Torbjörn Granlund <torbjorng@google.com> 869 870 * gen-psqr.c: Add casts for C++ compatibility. 871 872 * tests/misc/t-scanf.c: Include config.h early for HAVE_xxx. 873 874 2014-11-08 Torbjörn Granlund <torbjorng@google.com> 875 876 * mpn/x86/x86-defs.m4 (LEA, LEAL): Make sure to put eip stub code in 877 text segment. 878 * mpn/x86/darwin.m4: Likewise. 879 880 * tune/speed.h (i386 speed_cyclecounter): Remove inline asm code, rely 881 on external version. 882 883 2014-11-06 Torbjörn Granlund <torbjorng@google.com> 884 885 * config.guess: Ignore appended letters such E in POWER8E. 886 * configure.ac: Supply cflags for power8, power9. 887 888 2014-11-03 Torbjörn Granlund <torbjorng@google.com> 889 890 * mpn/powerpc32/addmul_1.asm: Avoid negative stack pointer references. 891 * mpn/powerpc32/lshift.asm: Likewise. 892 * mpn/powerpc32/lshiftc.asm: Likewise. 893 * mpn/powerpc32/p3-p7/aors_n.asm: Likewise. 894 * mpn/powerpc32/rshift.asm: Likewise. 895 * mpn/powerpc32/sec_tabselect.asm: Likewise. 896 * mpn/powerpc32/submul_1.asm: Likewise. 897 * mpn/powerpc32/vmx/mod_34lsub1.asm: Likewise. 898 899 2014-10-13 Torbjörn Granlund <torbjorng@google.com> 900 901 * acinclude.m4 (freebsd hacked gcc): Test for crash-prone FreeBSD gcc. 902 903 2014-10-03 Peter Breitenlohner <peb@mppmu.mpg.de> 904 905 * mpn/generic/sec_tabselect.c: Adjust type to silence compiler. 906 907 2014-10-01 Torbjörn Granlund <torbjorng@google.com> 908 909 * All Makefile.am: INCLUDES => AM_CPPFLAGS. 910 911 * configure.ac (arm64): Set gcc_cflags_maybe to enable Neon (for clang 912 pretending to be gcc). 913 914 2014-09-24 Marc Glisse <marc.glisse@inria.fr> 915 916 * longlong.h (arm64 count_trailing_zeros, count_leading_zeros): Use 917 gcc's builtins. 918 (arm64 umul_ppmm): Use macro arguments only once. 919 920 2014-09-22 Marc Glisse <marc.glisse@inria.fr> 921 922 * mpn/arm64/lshift.asm: Avoid negative immediates. 923 * mpn/arm64/rshift.asm: Likewise. 924 925 2014-09-13 Marc Glisse <marc.glisse@inria.fr> 926 927 * mpn/generic/div_qr_1n_pi1.c: Honor NO_ASM. 928 * mpn/generic/div_qr_1n_pi2.c: Likewise. 929 * mpn/generic/div_qr_1u_pi2.c: Likewise. 930 * mpn/generic/div_qr_2.c: Likewise. 931 * mpn/generic/mod_1_1.c: Likewise. 932 * mpn/generic/redc_2.c: Likewise. 933 934 2014-08-31 Torbjörn Granlund <tege@gmplib.org> 935 936 * mpn/arm64/lshift.asm: New file. 937 * mpn/arm64/rshift.asm: New file. 938 939 2014-09-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 940 941 * gmp-impl.h (TMP_ALLOC_LIMBS_3): New macro to allocate 3 blocks. 942 (mpn_remove): Update declaration with mp_srcptr arguments. 943 * mpn/generic/remove.c: Use TMP_ALLOC_LIMBS_3. mp_srcptr for args. 944 945 * mpn/generic/perfpow.c (pow_equals): TMP_DECL only where needed. 946 (perfpow): Use TMP_ALLOC_LIMBS_3. 947 (mpn_perfect_power_p): Skip useless allocations. Use mpn_remove. 948 * tests/mpz/t-perfpow.c (check_random): Check more perfect powers. 949 950 * mpn/generic/divis.c: Use TMP_ALLOC_LIMBS_2. Share a count. 951 952 2014-08-30 Torbjörn Granlund <tege@gmplib.org> 953 954 * mpn/arm64/mod_34lsub1.asm: New file. 955 956 2014-08-27 Niels Möller <nisse@lysator.liu.se> 957 958 * mini-gmp/mini-gmp.c (mpz_abs_sub_bit): Do full normalization, 959 needed if mpz_clrbit clears the most significant one bit. 960 961 2014-08-23 Torbjörn Granlund <tege@gmplib.org> 962 963 * mpn/arm64/bdiv_dbm1c.asm: New file. 964 965 * mpn/arm64/com.asm: New file. 966 967 * mpn/arm64/sec_tabselect.asm: New file. 968 969 * mpn/arm64/popcount.asm: New file. 970 * mpn/arm64/hamdist.asm: New file. 971 972 * configure.ac: Put generic arm/neon earlier in path. 973 974 2014-08-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 975 976 * mpq/canonicalize.c: Earlier check for negative denominator. 977 * mpq/set_d.c: Stricter allocation. 978 979 2014-08-03 Torbjörn Granlund <tege@gmplib.org> 980 981 * mpn/x86_64/bobcat/mul_1.asm: Fix typo in offset affecting DOS64. 982 983 2014-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it> 984 985 * mpn/generic/fib2_ui.c: remove #if HAVE_NATIVE_mpn_rsblsh_n. 986 * mpz/fib2_ui.c: Use tabulated values, when available. 987 * mpz/fib_ui.c: #if HAVE_NATIVE_mpn_addlsh1_n, use it. 988 989 * mpq/cmp_ui.c: Remove a branch. 990 * mpq/cmp_si.c: Likewise. 991 992 * mpn/generic/toom_interpolate_7pts.c: Replace an in-place add 993 with add_n + INCR_U. 994 995 * tests/mpf/t-fits.c: use ui_sub instead of sub_ui+neg. 996 997 * mini-gmp/mini-gmp.c: Remove some useless variables. 998 999 2014-07-27 Torbjörn Granlund <tege@gmplib.org> 1000 1001 * mpn/x86/k7/gcd_1.asm: Use LEAL. 1002 1003 * mpn/x86/x86-defs.m4 (LEAL): New. 1004 (LEA): Append to `load_eip' instead of ASM_END, like darwin.m4. 1005 * mpn/x86/darwin.m4 (LEAL): New. 1006 1007 2014-07-26 Torbjörn Granlund <tege@gmplib.org> 1008 1009 * mpn/x86/pentium/mode1o.asm: Add Darwin PIC code. 1010 * mpn/x86/pentium/bdiv_q_1.asm: Likewise. 1011 * mpn/x86/pentium/dive_1.asm: Likewise. 1012 * mpn/x86/pentium/popcount.asm: Likewise. 1013 * mpn/x86/pentium/hamdist.asm: Likewise. 1014 * mpn/x86/k6/gcd_1.asm: Likewise. 1015 1016 * mpn/x86: Append ASM_END to many files. 1017 * tests/x86call.asm: Append ASM_END. 1018 1019 * mpn/x86/fat/fat_entry.asm (FAT_ENTRY, FAT_INIT): 1020 Support Darwin. 1021 1022 * mpn/x86/darwin.m4 (ASM_END): New, body from EPILOGUE_cpu. 1023 (EPILOGUE_cpu): Remove. 1024 1025 * mpn/x86/x86-defs.m4 (LEA): Put `mov_eip_' thunks in ASM_END instead 1026 of EPILOGUE_cpu. 1027 1028 2014-07-05 Niels Möller <nisse@lysator.liu.se> 1029 1030 * doc/gmp.texi (Low-level Functions): Document that scratch need 1031 for mpn_sec_add_1 and mpn_sec_sub_1 are at most n limbs. 1032 (Low-level Functions): Document allowed overlap for mpn_addmul_1 1033 and mpn_submul_1. 1034 1035 2014-07-02 Torbjörn Granlund <tege@gmplib.org> 1036 1037 * mpn/x86_64/x86_64-defs.m4: Fix quoting. 1038 1039 * mpn/x86_64/atom/redc_1.asm: Enforce proper stack allocation. 1040 * mpn/x86_64/bobcat/redc_1.asm: Likewise. 1041 * mpn/x86_64/core2/divrem_1.asm: Likewise. 1042 * mpn/x86_64/core2/gcd_1.asm: Likewise. 1043 * mpn/x86_64/core2/redc_1.asm: Likewise. 1044 * mpn/x86_64/coreihwl/redc_1.asm: Likewise. 1045 * mpn/x86_64/coreinhm/redc_1.asm: Likewise. 1046 * mpn/x86_64/coreisbr/redc_1.asm: Likewise. 1047 * mpn/x86_64/divrem_1.asm: Likewise. 1048 * mpn/x86_64/divrem_2.asm: Likewise. 1049 * mpn/x86_64/gcd_1.asm: Likewise. 1050 * mpn/x86_64/mod_1_1.asm: Likewise. 1051 * mpn/x86_64/mod_1_2.asm: Likewise. 1052 * mpn/x86_64/mod_1_4.asm: Likewise. 1053 1054 2014-06-30 Torbjörn Granlund <tege@gmplib.org> 1055 1056 * config.sub: Generalise x86 patterns. 1057 1058 2014-06-17 Marc Glisse <marc.glisse@inria.fr> 1059 1060 * gmpxx.h (__gmp_gcd_function, __gmp_lcm_function): New classes. 1061 (gcd, lcm): New functions. 1062 * doc/gmp.texi (C++ Interface Integers): Document them. 1063 * tests/cxx/t-ops2.cc (checkz): Test them. 1064 1065 2014-06-16 Torbjörn Granlund <tege@gmplib.org> 1066 1067 * mpf/mul.c: Postpone TMP_MARK. 1068 1069 * mpn/generic/perfpow.c (perfpow): Combine TMP_ALLOCs. 1070 1071 2014-06-15 Torbjörn Granlund <tege@gmplib.org> 1072 1073 * tests/refmpn.c (refmpn_mul): Rewrite to avoid O(n) recursion depth. 1074 1075 2014-06-09 Torbjörn Granlund <tege@gmplib.org> 1076 1077 * mpn/generic/mullo_n.c: Remove default THRESHOLDs. 1078 * gmp-impl.h: Put MULLO THRESHOLDs here. Improve various THRESHOLD 1079 defaults. 1080 1081 2014-06-08 Torbjörn Granlund <tege@gmplib.org> 1082 1083 * gmp-impl.h (TMP_ALLOC): Decrease limit to about half. 1084 1085 * mpn/generic/toom53_mul.c: Replace many TMP_SALLOC invocations 1086 by a single TMP_ALLOC. 1087 * mpn/generic/toom42_mul.c: Likewise. 1088 1089 * mpn/generic/sec_sqr.c: Don't unconditionally call mpn_sqr_basecase 1090 since it fails for non-cryptographic sizes for some obsolete CPUs. 1091 1092 * mpn/generic/sec_powm.c: Remove own squaring code, instead use 1093 mpn_mul_basecase. 1094 1095 * tests/mpn/logic.c (main): Don't use TMP_SALLOC_LIMBS. 1096 1097 * mpn/generic/dcpi1_div_q.c: Avoid TMP_SALLOC_LIMBS. 1098 * mpn/generic/dcpi1_div_qr.c: Likewise. 1099 1100 2014-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 1101 1102 * mpn/generic/mul.c: Tighter allocation in Toom{2,3}X branches. 1103 1104 2014-06-06 Torbjörn Granlund <tege@gmplib.org> 1105 1106 * mpn/generic/mul.c: Swap some TMP_SALLOC_LIMBS for TMP_ALLOC_LIMBS 1107 and some TMP_ALLOC_LIMBS for TMP_SALLOC_LIMBS. 1108 1109 2014-05-31 Marco Bodrato <bodrato@mail.dm.unipi.it> 1110 1111 * mpf/ui_sub.c: Remove buggy code, use a wrapper to mpf_sub. 1112 * tests/mpf/t-sub.c: More corner cases and strict checking. 1113 * mpf/sub.c: Use more mpn_ primitives and macros. 1114 1115 * tests/mpf/t-int_p.c: Test numbers with both integer and 1116 fractionary parts. 1117 1118 * mpf/int_p.c: Delay zero branch and use mpn_zero_p. 1119 * mpf/fits_s.h: No special case for SIZ == 0. 1120 * mpf/fits_u.h: Likewise. 1121 1122 2014-05-29 Marc Glisse <marc.glisse@inria.fr> 1123 1124 * gmp-h.in: Include <limits.h>. 1125 (__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): Remove. 1126 * gmp-impl.h (ULONG_MAX, UINT_MAX, USHRT_MAX, LONG_MAX, INT_MAX, 1127 SHRT_MAX): Remove unnecessary redefinition. 1128 * tests/t-gmpmax.c: Remove file. 1129 * tests/Makefile.am: Remove t-gmpmax. 1130 1131 2014-05-22 Marco Bodrato <bodrato@mail.dm.unipi.it> 1132 1133 * tests/mpf/t-sub.c (check_data): Test also ui_sub and sub_ui. 1134 1135 2014-05-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 1136 1137 * gen-fac.c: +1 in the init2 argument before setbit. 1138 * gen-fib.c: Likewise. (Thanks Niels) 1139 * mini-gmp/mini-gmp.c: Likewise. 1140 * rand/randmts.c: Likewise. 1141 1142 * mpn/generic/invert.c: Remove unused TMP_MARK. 1143 * mpn/generic/invertappr.c: Avoid a branch. 1144 * mpz/millerrabin.c (millerrabin): Consider the rare case n is a power. 1145 1146 2014-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 1147 1148 * mini-gmp/mini-gmp.c: Micro-optimisations. 1149 1150 * gen-fib.c: Use mpz_setbit. 1151 * gen-psqr.c: Skip even numbers when looking for primes. 1152 1153 * mpn/generic/invert.c: Avoid a branch. 1154 * mpn/generic/toom2_sqr.c: Avoid a few branches in the odd case. 1155 * mpn/generic/toom22_mul.c: Likewise. 1156 1157 2014-05-08 Marc Glisse <marc.glisse@inria.fr> 1158 1159 * gmpxx.h (std::common_type): Remove partial specialization for two 1160 identical expressions. New partial specialization for a single type. 1161 * tests/cxx/t-cxx11.cc: Test it. 1162 1163 2014-04-14 Niels Möller <nisse@lysator.liu.se> 1164 1165 * doc/gmp.texi (mpz_invert): Clarify behavior in the zero ring. 1166 1167 2014-04-04 Marc Glisse <marc.glisse@inria.fr> 1168 1169 * longlong.h (i386): Add comment about "cc" clobber. 1170 1171 2014-04-04 Torbjorn Granlund <tege@gmplib.org> 1172 1173 * acinclude.m4 (X86_64_PATTERN): Generalise patterns to allow "noavx" 1174 suffix. 1175 1176 * mpn/generic/div_qr_1n_pi1.c: Conditionalise ARM asm on !__thumb__. 1177 1178 2014-04-03 Marc Glisse <marc.glisse@inria.fr> 1179 1180 * mpn/arm64/mul_1.asm, mpn/arm64/gcd_1.asm: Use official b.cond syntax. 1181 * mpn/arm64/invert_limb.asm, mpn/arm64/aorsmul_1.asm: Prefix 1182 immediates with #. 1183 1184 2014-04-03 Torbjorn Granlund <tege@gmplib.org> 1185 1186 * config.guess: Append "noavx" for CPUs which have AVX but where the 1187 kernel does not support it. 1188 * configure.ac: Accept "noavx" cpu name suffixes. Conditionally pass 1189 -mno-avx. 1190 1191 2014-04-02 Torbjorn Granlund <tege@gmplib.org> 1192 1193 * mpn/x86_64/k8/redc_1.asm: Workaround for Darwin assembler quirk. 1194 1195 2014-03-28 Torbjorn Granlund <tege@gmplib.org> 1196 1197 * mpn/generic/mod_1_1.c: Conditionalise ARM asm on !__thumb__. 1198 1199 2014-03-31 Marc Glisse <marc.glisse@inria.fr> 1200 1201 * mpn/arm/dive_1.asm, mpn/arm/invert_limb.asm: Use RODATA. 1202 * acinclude.m4 ([long long reliability tests]): Declare functions. 1203 (GMP_PROG_CC_FOR_BUILD_WORKS, GMP_PROG_EXEEXT_FOR_BUILD, 1204 GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): Replace exit(0) with 1205 return 0, no declaration needed. 1206 (GMP_CHECK_LIBM_FOR_BUILD): Include <math.h> to declare log. 1207 1208 2014-03-30 Marc Glisse <marc.glisse@inria.fr> 1209 1210 * README: Remove mention to Berkeley MP compatibility. 1211 1212 2014-03-26 Torbjorn Granlund <tege@gmplib.org> 1213 1214 * mpn/powerpc64/mode64/gcd_1.asm: Provide default for 1215 BMOD_1_TO_MOD_1_THRESHOLD. 1216 1217 2014-03-24 Torbjorn Granlund <tege@gmplib.org> 1218 1219 * Version 6.0.0 released. 1220 1221 * mpn: Update countless gmp-mparam.h files. 1222 1223 2014-03-22 Torbjorn Granlund <tege@gmplib.org> 1224 1225 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 1226 * gmp-h.in: Bump version. 1227 1228 2014-03-17 Torbjorn Granlund <tege@gmplib.org> 1229 1230 * configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000. 1231 * mpn/clipper: Remove directory and all its files. 1232 * mpn/i960: Likewise. 1233 * mpn/ns32k: Likewise. 1234 * mpn/pyr: Likewise. 1235 * mpn/a29k: Likewise. 1236 * mpn/z8000: Likewise. 1237 * mpn/Makefile.am (TARG_DIST): Purge removed directories. 1238 * doc/gmp.texi: Remove special mentions of removed architectures. 1239 1240 2014-03-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 1241 1242 * mini-gmp/mini-gmp.c (mpz_probab_prime_p): Micro-optimisation. 1243 1244 2014-03-12 Torbjorn Granlund <tege@gmplib.org> 1245 1246 * mpn/x86/bd2/gmp-mparam.h: New file. 1247 * mpn/x86_64/bd2/gmp-mparam.h: New file. 1248 1249 2014-03-06 Niels Möller <nisse@lysator.liu.se> 1250 1251 * tests/mpz/t-pprime_p.c (check_composites): New function. 1252 (check_primes): New function. 1253 (main): Call them. Also use TESTS_REPS. 1254 1255 * mini-gmp/mini-gmp.c (gmp_millerrabin): New internal function. 1256 (mpz_probab_prime_p): New function. 1257 * mini-gmp/mini-gmp.h (mpz_probab_prime_p): Declare it. 1258 * mini-gmp/tests/t-pprime_p.c: New test program. 1259 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p. 1260 1261 2014-03-03 Niels Möller <nisse@lysator.liu.se> 1262 1263 * mini-gmp/mini-gmp.c (mpz_congruent_p): New function. 1264 * mini-gmp/mini-gmp.h: Declare it. 1265 * mini-gmp/tests/t-cong.c: New file, based on tests/mpz/t-cong.c. 1266 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cong. 1267 1268 * mini-gmp/tests/testutils.c (dump): New function. Deleted static 1269 functions in other files. 1270 (mpz_set_str_or_abort): Moved function here, from... 1271 * mini-gmp/tests/t-cmp_d.c: ... old location. 1272 1273 * mini-gmp/tests/t-reuse.c (dump3): Renamed, from ... 1274 (dump): ...old name. 1275 1276 2014-03-01 Niels Möller <nisse@lysator.liu.se> 1277 1278 * mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and 1279 asserts. 1280 1281 2014-02-28 Torbjorn Granlund <tege@gmplib.org> 1282 1283 * mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims. 1284 1285 2014-02-27 Torbjorn Granlund <tege@gmplib.org> 1286 1287 * mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2 1288 feature test. 1289 1290 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl 1291 conditionally on BMI2 availability. 1292 1293 * config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that 1294 BMI2 is missing. 1295 (x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature 1296 test. 1297 1298 2014-02-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 1299 1300 * mini-gmp/mini-gmp.c (mpn_sqrtrem): New function. 1301 * mini-gmp/mini-gmp.h: Declare it. 1302 * mini-gmp/tests/t-sqrt.c: Test it. 1303 1304 2014-02-17 Niels Möller <nisse@lysator.liu.se> 1305 1306 * mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix. 1307 Hopefully no longer needed. 1308 1309 * mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1. 1310 * mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1. 1311 1312 * tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD, 1313 DIV_QR_1_UNNORM_THRESHOLD >= 1. 1314 1315 2014-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 1316 1317 * mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0. 1318 1319 2014-02-15 Torbjorn Granlund <tege@gmplib.org> 1320 1321 * tests/mpn/t-div.c: Fix typo. 1322 1323 2014-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 1324 1325 * doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that 1326 at least a readable limb is required. 1327 * mini-gmp/mini-gmp.c (mpz_div_qr): init + set = init_set . 1328 1329 2014-02-14 Niels Möller <nisse@lysator.liu.se> 1330 1331 * doc/gmp.texi (Low-level Functions): Update docs for 1332 mpn_sec_powm, to specify that left-over exponent bits must be 1333 zero. 1334 1335 2014-02-11 Niels Möller <nisse@lysator.liu.se> 1336 1337 * Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3, 1338 COPYINGv2, and COPYINGv3. 1339 1340 * doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs. 1341 1342 * mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb 1343 count argument by bit count. Don't leak high exponent bits, and 1344 drop the requirement that the most significant exponent limb is 1345 non-zero. 1346 (mpn_sec_powm_itch): Analogous interface change. 1347 * gmp-h.in: Updated prototypes. 1348 * mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls. 1349 * tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code 1350 fiddling with the high exponent bits. 1351 1352 2014-02-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 1353 1354 * mini-gmp/tests/t-limbs.c: New test for mpz_limbs_*. 1355 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add it. 1356 1357 2014-02-09 Niels Möller <nisse@lysator.liu.se> 1358 1359 * tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical 1360 parameters nbits = 1, winsize = 2. Decrement tabulated values, to 1361 better match the > comparison when the table is used. 1362 1363 * mpn/generic/sec_powm.c (win_size): Comment why we always get 1364 win_size(eb) <= eb. Make the table const. 1365 (mpn_sec_powm): Deleted handling of winsize > initial ebi. For 1366 now, replaced with an ASSERT_ALWAYS. 1367 1368 2014-02-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 1369 1370 * mini-gmp/mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify 1371 mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions. 1372 (mpn_perfect_square_p): New function. 1373 * mini-gmp/mini-gmp.h: Declare them. 1374 1375 * mini-gmp/tests/t-mul.c: Use roinit and limbs_read to test mpn. 1376 * mini-gmp/tests/t-sqrt.c: Test also mpn_perfect_square_p. 1377 1378 2014-02-08 Niels Möller <nisse@lysator.liu.se> 1379 1380 * mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused 1381 function. 1382 1383 * mpn/generic/sec_div.c: Simplified code for the normalized case. 1384 1385 * tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r 1386 with normalized d. 1387 1388 2014-02-04 Niels Möller <nisse@lysator.liu.se> 1389 1390 * doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and 1391 mpn_sec_sub_1. 1392 1393 2014-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 1394 1395 * mini-gmp/mini-gmp.c (mpn_rootrem): Allow NULL argument. 1396 1397 * mini-gmp/mini-gmp.c (mpn_zero): New function. 1398 (mpz_perfect_square_p): New function. 1399 * mini-gmp/mini-gmp.h: Declare them. 1400 1401 * mini-gmp/tests/t-sqrt.c: Test mpz_perfect_square_p. 1402 * mini-gmp/tests/t-root.c: Test also 1-th root, allow perfect powers. 1403 1404 2014-01-29 Torbjorn Granlund <tege@gmplib.org> 1405 1406 * doc/gmp.texi (Floating-point Functions): Revise. 1407 1408 2014-01-29 Niels Möller <nisse@lysator.liu.se> 1409 1410 * README: Don't refer to specific COPYING* files, instead refer to 1411 manual for details. 1412 1413 * COPYING.LIB: Renamed, to... 1414 * COPYING.LESSERv3: ... new name. 1415 * COPYING: Renamed, to... 1416 * COPYINGv3: ... new name. 1417 * COPYINGv2: New file, GPLv2. 1418 1419 * doc/gmp.texi (Copying): Document dual licensing. 1420 1421 2014-01-27 Torbjorn Granlund <tege@gmplib.org> 1422 1423 * Update library files license to use LGPL3+ and GPL2+. 1424 1425 2014-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 1426 1427 * tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart). 1428 1429 * mpn/generic/sec_aors_1.c: Mark the 2nd argument as const. 1430 * gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise. 1431 1432 2014-01-24 Torbjorn Granlund <tege@gmplib.org> 1433 1434 * mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and 1435 excavator values. 1436 1437 * config.guess: Amend last AMD change. 1438 1439 * mpn/s390_64/lshift.asm: Align loop. 1440 * mpn/s390_64/rshift.asm: Likewise. 1441 * mpn/s390_64/lshiftc.asm: Likewise. 1442 * mpn/s390_64: Add z10 cycle numbers. 1443 1444 2014-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 1445 1446 * printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z' 1447 in switch (fchar). 1448 1449 * mini-gmp/tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui} 1450 * mini-gmp/tests/Makefile: Add t-aorsmul. 1451 1452 2014-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 1453 1454 * acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs. 1455 1456 2014-01-20 Torbjorn Granlund <tege@gmplib.org> 1457 1458 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for 1459 AMD "jaguar". 1460 1461 * demos/expr: Get rid of varargs code and references. 1462 1463 2014-01-19 Torbjorn Granlund <tege@gmplib.org> 1464 1465 * config.guess: Add new AMD CPUs (piledriver, steamroller, excavator, 1466 jaguar). 1467 * config.sub: Corresponding updates. 1468 * configure.ac: Likewise. 1469 * acinclude.m4 (X86_64_PATTERN): Likewise. 1470 * mpn/x86_64/fat/fat.c: Likewise. 1471 1472 * Rename mpn_sec_minvert => mpn_sec_invert, many files affected. 1473 * mpn/generic/sec_invert.c: New name for sec_minvert.c. 1474 1475 * doc/gmp.texi: Undocument mpz_array_init. 1476 1477 * acinclude.m4 (GMP_C_STDARG): Comment out. 1478 * configure.ac: Suppress GMP_C_STDARG invocation. 1479 1480 * Get rid of varargs code and references, many file affected. 1481 1482 * Use mpq_t in favour of MP_RAT, many mpq files affected. 1483 1484 * Get rid of BYTES_PER_MP_LIMB, most files affected. 1485 1486 * mpz/iset.c: Avoid overflow in allocation computation. 1487 * mpz/mul.c: Likewise. 1488 * mpf/init.c: Likewise. 1489 * mpf/init2.c: Likewise. 1490 * mpf/iset.c: Likewise. 1491 * mpf/iset_d.c: Likewise. 1492 * mpf/iset_si.c: Likewise. 1493 * mpf/iset_str.c: Likewise. 1494 * mpf/iset_ui.c: Likewise. 1495 1496 * mpz/array_init.c: Avoid two overflow scenarios in allocation 1497 computation. 1498 1499 * mpn/s390_64/z10/gmp-mparam.h: New file. 1500 1501 * mpz/clears.c: Call __gmp_free_func ourselves instead of via 1502 mpz_clears. 1503 * mpf/clears.c: Analogous change. 1504 * mpq/clears.c: Analogous change. 1505 1506 * mpz/clear.c: Add cast to avoid overflow of (later ignored) argument. 1507 * mpf/clear.c: Likewise. 1508 1509 2014-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 1510 1511 * mini-gmp/mini-gmp.c (mpn_popcount): New function. 1512 (mpz_popcount): Use it. 1513 (mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added. 1514 * mini-gmp/mini-gmp.h: Declare them. 1515 1516 2014-01-18 Niels Möller <nisse@lysator.liu.se> 1517 1518 * tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1. 1519 1520 * tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size 1521 argument to mpn_sec_minvert. 1522 1523 2014-01-18 Marc Glisse <marc.glisse@inria.fr> 1524 1525 * doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto. 1526 1527 2014-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 1528 1529 * tests/t-parity.c: Use 1UL to generate unsigned constants. 1530 * tests/t-constants.c: Disable a non portable (unneeded) check. 1531 1532 2014-01-18 Niels Möller <nisse@lysator.liu.se> 1533 1534 * mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New 1535 file. 1536 1537 * mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1): 1538 Deleted static definitions. 1539 (mpn_cnd_swap): Use volatile. 1540 1541 * configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1. 1542 (GMP_MULFUNC_CHOICES): Set up for sec_aors_1. 1543 1544 2014-01-16 Niels Möller <nisse@lysator.liu.se> 1545 1546 * tune/common.c (speed_mpn_sec_minvert): New function. 1547 * tune/speed.h: Declare it. 1548 (SPEED_ROUTINE_MPN_SEC_MINVERT): New macro. 1549 * tune/speed.c (routine): Added mpn_sec_minvert. 1550 1551 * mini-gmp/mini-gmp.c (mp_bits_per_limb): New const value. 1552 * mini-gmp/mini-gmp.h: Declare it. 1553 1554 2014-01-12 Marc Glisse <marc.glisse@inria.fr> 1555 1556 * demos/expr/expr.h: Add extern "C" for C++. 1557 1558 2014-01-11 Torbjorn Granlund <tege@gmplib.org> 1559 1560 * doc/gmp.texi (Notes for Particular Systems): Add items about old 1561 NetBSD and current FreeBSD m4 problems. Add item about FreeBSD's 1562 broken limits.h. 1563 1564 2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 1565 1566 * gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST. 1567 1568 2014-01-05 Torbjorn Granlund <tege@gmplib.org> 1569 1570 * configure.ac (alpha): Set extra_functions conditionally. 1571 1572 * gmp-h.in (mpn_sec_minvert): Remove formal parameters. 1573 1574 * doc/gmp.texi: Improve doc for several functions. 1575 1576 * mpn/generic/sec_tabselect.c: Declare input arg using 'const'. 1577 * gmp-h.in: Analogous change. 1578 1579 * gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE. 1580 * gmp-impl.h: Likewise. 1581 1582 2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 1583 1584 * tests/mpn/t-minvert.c: Always compare with mpz_invert results, 1585 add red zone to scratch. 1586 * tests/mpn/t-sizeinbase.c: New test. 1587 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c . 1588 * tests/mpn/t-div.c: Use mpn_sec_div_*_itch(). 1589 1590 * mpn/generic/pow_1.c: Micro-optimisation. 1591 1592 2014-01-04 Torbjorn Granlund <tege@gmplib.org> 1593 1594 * acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies. 1595 1596 2014-01-03 Torbjorn Granlund <tege@gmplib.org> 1597 1598 * config.guess: Support newer haswell, broadwell, silvermont. 1599 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise. 1600 1601 * acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work. 1602 1603 * mpz/invert.c: Rely on gcdext for all operands, removing faulty 1604 special case. 1605 * tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1. 1606 1607 2014-01-02 Niels Möller <nisse@lysator.liu.se> 1608 1609 * doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase. 1610 1611 Enable previously unused mpn_sizeinbase function. 1612 * configure.ac (gmp_mpn_functions): Added sizeinbase. 1613 * gmp-h.in (mpn_sizeinbase): New prototype. 1614 1615 2014-01-02 Marc Glisse <marc.glisse@inria.fr> 1616 1617 * gmp-impl.h: Always include <limits.h>. 1618 * tests/mpn/t-get_d.c: Remove comment about <limits.h> 1619 1620 * gmp-h.in (__GMP_USHRT_MAX): Use the promoted type. 1621 * gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise. 1622 * tests/t-constants.c: Adapt printf strings. 1623 * tests/t-gmpmax.c: Likewise. 1624 1625 * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses. 1626 1627 2014-01-01 Torbjorn Granlund <tege@gmplib.org> 1628 1629 * doc/gmp.texi (Low-level Functions for cryptography): Update interface 1630 for mpn_sec_div_qr and fix typos in mpn_sec_minvert text. 1631 1632 * mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high 1633 quotient limb. 1634 * gmp-h.in (mpn_sec_div_qr): Update declaration. 1635 * tests/mpn/t-div.c: Adapt. 1636 1637 2013-12-31 Niels Möller <nisse@lysator.liu.se> 1638 1639 * doc/gmp.texi (Low-level Functions for cryptography): Document 1640 mpn_sec_minvert. 1641 1642 2013-12-30 Marc Glisse <marc.glisse@inria.fr> 1643 1644 * doc/gmp.texi (C++ interface internals): Break long line. 1645 1646 2013-12-30 Torbjorn Granlund <tege@gmplib.org> 1647 1648 * doc/gmp.texi (Low-level Functions for cryptography): New section. 1649 1650 2013-12-29 Niels Möller <nisse@lysator.liu.se> 1651 1652 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert. 1653 * tests/mpn/t-minvert.c: New file. 1654 1655 * configure.ac (gmp_mpn_functions): Added sec_minvert. 1656 * gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New 1657 declarations. 1658 * mpn/generic/sec_minvert.c (mpn_sec_minvert) 1659 (mpn_sec_minvert_itch): New functions. 1660 (mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New 1661 helper functions. 1662 1663 2013-12-28 Torbjorn Granlund <tege@gmplib.org> 1664 1665 * mpn/generic/sec_powm.c: Fix an ASSERT. 1666 1667 * gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations. 1668 * gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise. 1669 * mpn/generic/sec_mul.c: New file. 1670 * mpn/generic/sec_sqr.c: New file. 1671 1672 * gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations. 1673 * gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise. 1674 * gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise. 1675 * gmp-impl: Remove declarations of above functions. 1676 1677 * configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr. 1678 1679 2013-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 1680 1681 * Update many file's encoding to UTF-8. 1682 * doc/tasks.html: Update <meta content> accordingly. 1683 * doc/projects.html: Likewise. 1684 1685 2013-12-26 Torbjorn Granlund <tege@gmplib.org> 1686 1687 * configure.ac: Rename mpn_blah_sec to mpn_sec_blah. 1688 * gmp-impl.h: Corresponding changes. 1689 * mpn/asm-defs.m4: Corresponding changes. 1690 * tune/Makefile.am: Corresponding changes. 1691 * tune/common.c: Corresponding changes. 1692 * tune/speed.c: Corresponding changes. 1693 * tune/speed.h: Corresponding changes. 1694 * tune/tuneup.c: Corresponding changes. 1695 * mpz/powm_sec.c: Update calls. 1696 * tests/mpn/t-div.c: Likewise. 1697 1698 * mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c. 1699 * mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c. 1700 * mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c. 1701 * mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c. 1702 1703 * mpn/alpha/sec_tabselect.asm: New name for tabselect.asm. 1704 * mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm. 1705 * mpn/arm/sec_tabselect.asm: New name for tabselect.asm. 1706 * mpn/ia64/sec_tabselect.asm: New name for tabselect.asm 1707 * mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm 1708 * mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm 1709 * mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm 1710 * mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm 1711 * mpn/x86/sec_tabselect.asm: New name for tabselect.asm 1712 * mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm 1713 * mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm 1714 * mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm 1715 * mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm 1716 * mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm 1717 * mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm 1718 * mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm 1719 * mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm 1720 1721 2013-12-25 Torbjorn Granlund <tege@gmplib.org> 1722 1723 * mpz/powm_sec.c: Handle 0^e mod m specially. 1724 * mpn/generic/powm_sec.c: ASSERT that the base is non-zero. 1725 1726 2013-12-23 Torbjorn Granlund <tege@gmplib.org> 1727 1728 * mpn/generic/powm_sec.c (redcify): Use passed scratch instead of 1729 locally allocated. 1730 (mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs. 1731 1732 2013-12-20 Mark Sofroniou <marks@wolfram.com> 1733 1734 * mpn/generic/mul_fft.c: Major overhaul of types. 1735 1736 2013-12-18 Torbjorn Granlund <tege@gmplib.org> 1737 1738 * doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs. 1739 1740 2013-12-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1741 1742 * mpn/powerpc32/darwin.m4: Allow (and ignore) optional 1743 'toc' parameter to PROLOGUE_cpu. 1744 * mpn/powerpc32/elf.m4: Likewise. 1745 1746 2013-12-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1747 1748 * configure.ac: Check for ELFv2 ABI on PowerPC. 1749 * mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2 1750 and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences. 1751 Support optional 'toc' parameter to PROLOGUE_cpu. 1752 * mpn/powerpc64/aix.m4: Allow (and ignore) optional 1753 'toc' parameter to PROLOGUE_cpu. 1754 * mpn/powerpc64/darwin.m4: Likewise. 1755 1756 * mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc' 1757 parameter to PROLOGUE. 1758 * mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise. 1759 * mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise. 1760 * mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise. 1761 * mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise. 1762 * mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise. 1763 * mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise. 1764 * mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise. 1765 * mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise. 1766 * mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise. 1767 * mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise. 1768 * mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise. 1769 * mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise. 1770 1771 2013-12-07 Niels Möller <nisse@lysator.liu.se> 1772 1773 * configfsf.sub: Updated to version 2013-10-01, from gnulib. 1774 * configfsf.guess: Updated to version 2013-11-29, from gnulib. 1775 1776 2013-12-03 Torbjorn Granlund <tege@gmplib.org> 1777 1778 * mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs. 1779 * mpn/generic/div_qr_1n_pi1.c: Likewise. 1780 * mpn/generic/div_qr_2.c: Likewise. 1781 * mpn/generic/div_qr_2.c: Likewise. 1782 * mpn/generic/mod_1_1.c: Likewise. 1783 * mpn/generic/mod_1_2.c: Likewise. 1784 * mpn/generic/mod_1_3.c: Likewise. 1785 * mpn/generic/mod_1_4.c: Likewise. 1786 * mpn/generic/mulmid_basecase.c: Likewise. 1787 * mpn/generic/mulmod_bnm1.c: Likewise. 1788 * mpn/generic/sqrmod_bnm1.c: Likewise. 1789 * mpn/sparc64/divrem_1.c: Likewise. 1790 * mpn/sparc64/mod_1_4.c: Likewise. 1791 1792 * mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo. 1793 1794 2013-11-11 Torbjorn Granlund <tege@gmplib.org> 1795 1796 * mpn/x86_64/dos64.m4 (CALL): Provide to override default. 1797 1798 2013-11-08 Torbjorn Granlund <tege@gmplib.org> 1799 1800 * mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn. 1801 1802 * mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386. 1803 1804 * doc/gmp.texi: Update many URLs. 1805 1806 2013-11-04 Torbjorn Granlund <tege@gmplib.org> 1807 1808 * configure.ac: Set symbol OPENBSD for x86-openbsd hosts. 1809 * mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for 1810 PIC_OR_DARWIN. 1811 (PRETEND_PIC): Set also for OPENBSD. 1812 1813 2013-10-29 Torbjorn Granlund <tege@gmplib.org> 1814 1815 * printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy. 1816 1817 2013-10-24 Torbjorn Granlund <tege@gmplib.org> 1818 1819 * mpn/generic/div_qr_1u_pi2.c: New file. 1820 * mpn/generic/div_qr_1n_pi2.c: New file. 1821 1822 2013-10-24 Niels Möller <nisse@lysator.liu.se> 1823 1824 * mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and 1825 in-place operation. 1826 * mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise. 1827 1828 * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes, 1829 off-by-one MPN_INCR_U, and support for in-place operation. 1830 1831 2013-10-24 Torbjorn Granlund <tege@gmplib.org> 1832 1833 * mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell. 1834 1835 2013-10-23 Torbjorn Granlund <tege@gmplib.org> 1836 1837 * mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'. 1838 (regnum): Use x86_lookup, feed oplist. 1839 1840 2013-10-22 Niels Möller <nisse@lysator.liu.se> 1841 1842 * tests/devel/try.c: Support mpn_div_qr_1n_pi1. 1843 1844 * mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here. 1845 Applied tweak from Torbjörn to get it to run well on k8. 1846 1847 * mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above). 1848 Differs from generic x86_64 version by using cmov. 1849 1850 * mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul. 1851 Deleted misleading cycle annotations. 1852 1853 2013-10-21 Niels Möller <nisse@lysator.liu.se> 1854 1855 * configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in. 1856 1857 * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos 1858 affecting ASSERT. 1859 1860 2013-10-20 Niels Möller <nisse@lysator.liu.se> 1861 1862 * mpn/x86_64/div_qr_1n_pi1.asm: New file. 1863 1864 * tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check 1865 div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1. 1866 1867 * mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1. 1868 1869 * tune/common.c (speed_mpn_div_qr_1): New function, replacing... 1870 (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions 1871 (speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1) 1872 (speed_mpn_div_qr_1n_pi1_2): New functions. 1873 * gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning 1874 variables. 1875 * tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New 1876 functions. 1877 (div_qr_1n_pi1_method, div_qr_1_norm_threshold) 1878 (div_qr_1_unnorm_threshold): New globals. 1879 * tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u 1880 by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1 1881 and variants. 1882 * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter 1883 as divisor. 1884 * tune/div_qr_1n_pi1_2.c: New file. 1885 * tune/div_qr_1n_pi1_1.c: New file. 1886 * tune/div_qr_1_tune.c: New file. 1887 * tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c, 1888 div_qr_1n_pi1_2.c, and div_qr_1_tune.c. 1889 1890 * tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u. 1891 * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro. 1892 (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare. 1893 * tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New 1894 functions. 1895 1896 * gmp-impl.h (mpn_div_qr_1n_pi1): Declare function. 1897 * gmp-h.in (mpn_div_qr_1): Declare function. 1898 * configure.ac (gmp_mpn_functions): Added div_qr_1 and 1899 div_qr_1n_pi1. 1900 * mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function. 1901 * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and 1902 function. 1903 * tests/mpn/t-div.c (main): Test mpn_div_qr_1. 1904 1905 2013-10-17 Torbjorn Granlund <tege@gmplib.org> 1906 1907 * configure.ac (alpha): Pass -mieee via gcc_cflags_maybe. 1908 1909 2013-10-16 Torbjorn Granlund <tege@gmplib.org> 1910 1911 * config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses. 1912 1913 * mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter. 1914 * mpn/alpha/divrem_2.asm: Use provided gp mechanisms. 1915 * mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label. 1916 * mpn/alpha/invert_limb.asm: Align table to 8-byte boundary. Make code 1917 work if table is not fully aligned. Properly test for BWX. 1918 1919 2013-10-15 Torbjorn Granlund <tege@gmplib.org> 1920 1921 * mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA; 1922 accept optional align parameter. 1923 * mpn/alpha/invert_limb.asm: Align table. 1924 * mpn/alpha/ev5/diveby3.asm: Likewise. 1925 1926 2013-10-11 Torbjorn Granlund <tege@gmplib.org> 1927 1928 * mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity. 1929 * mpn/x86/k7/mod_1_4.asm: Likewise. 1930 1931 * configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and 1932 cclist_x32. 1933 1934 2013-10-08 Torbjorn Granlund <tege@gmplib.org> 1935 Marc Glisse <marc.glisse@inria.fr> 1936 1937 * tests/mpf/reuse.c (main): Compare addresses instead of names. 1938 Use larger numbers for exponents. 1939 1940 2013-10-08 Marc Glisse <marc.glisse@inria.fr> 1941 1942 * doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove. 1943 * .bootstrap: Use autoreconf (and in particular automake -a). 1944 1945 * gmp-h.in: Remove __need_size_t. Include <stddef.h>, not <cstddef>. 1946 1947 * tests/mpf/reuse.c (main): Use small numbers as exponents. 1948 1949 2013-10-05 Torbjorn Granlund <tege@gmplib.org> 1950 1951 * mpn/x86_64/atom/aorsmul_1.asm: Slight tweak. 1952 1953 * doc/gmp.texi (ABI and ISA): Document x32. 1954 1955 * mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names. 1956 1957 2013-09-24 Torbjorn Granlund <tege@gmplib.org> 1958 1959 * mpn/x86_64/atom/redc_1.asm: New file. 1960 1961 2013-09-23 Torbjorn Granlund <tege@gmplib.org> 1962 1963 * mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work. 1964 1965 2013-09-22 Torbjorn Granlund <tege@gmplib.org> 1966 1967 * mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code. 1968 1969 * mpn/x86_64/core2/redc_1.asm: New file. 1970 1971 * mpn/x86_64/bobcat/redc_1.asm: New file. 1972 1973 2013-09-21 Torbjorn Granlund <tege@gmplib.org> 1974 1975 * mpn/x86_64/coreinhm/redc_1.asm: New file. 1976 1977 2013-09-21 Marc Glisse <marc.glisse@inria.fr> 1978 1979 * tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d. 1980 * tests/rand/t-urbui.c: Use 1UL for unsigned constant. 1981 * mpn/generic/get_str.c: Avoid temporarily pointing outside an array. 1982 1983 2013-09-20 Torbjorn Granlund <tege@gmplib.org> 1984 1985 * mpn/x86_64/coreisbr/redc_1.asm: New file. 1986 1987 * mpn/x86_64/k8/redc_1.asm: Complete rewrite. 1988 1989 * mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short- 1990 circuit a branch. 1991 * mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch. 1992 1993 * mpn/x86_64/core2/mullo_basecase.asm: New file. 1994 1995 2013-09-19 Torbjorn Granlund <tege@gmplib.org> 1996 1997 * mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS. 1998 1999 2013-09-18 Torbjorn Granlund <tege@gmplib.org> 2000 2001 * mpn/x86_64/core2/mul_basecase.asm: New file. 2002 * mpn/x86_64/core2/sqr_basecase.asm: New file. 2003 2004 * mpn/x86_64/coreihwl/mullo_basecase.asm: New file. 2005 * mpn/x86_64/coreisbr/mullo_basecase.asm: New file. 2006 2007 2013-09-16 Torbjorn Granlund <tege@gmplib.org> 2008 2009 * mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS. 2010 2011 2013-09-15 Torbjorn Granlund <tege@gmplib.org> 2012 2013 * mpn/x86_64/tabselect.asm: Use R8 for bit testing. 2014 2015 * mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code. 2016 2017 * mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite. 2018 2019 2013-09-12 Torbjorn Granlund <tege@gmplib.org> 2020 2021 * mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits. 2022 2023 * mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly 2024 handle overlap. 2025 2026 2013-09-10 Torbjorn Granlund <tege@gmplib.org> 2027 2028 * mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code 2029 to make it handle any allowed overlap. 2030 2031 2013-09-09 Torbjorn Granlund <tege@gmplib.org> 2032 2033 * mpn/x86_64/atom/com.asm: New file, grabbing fastsse code. 2034 2035 * mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code. 2036 * mpn/x86_64/bd1/copyd.asm: Likewise. 2037 * mpn/x86_64/bd1/com.asm: Likewise. 2038 2039 * mpn/x86_64/fastavx/copyi.asm: New file. 2040 * mpn/x86_64/fastavx/copyd.asm: New file. 2041 2042 2013-09-05 Torbjorn Granlund <tege@gmplib.org> 2043 2044 * mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline. 2045 2046 2013-09-04 Torbjorn Granlund <tege@gmplib.org> 2047 2048 * mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner". 2049 Misc tuning. 2050 2051 2013-09-03 Torbjorn Granlund <tege@gmplib.org> 2052 2053 * mpn/x86_64/coreihwl/redc_1.asm: New file. 2054 2055 * mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets. 2056 2057 2013-08-31 Torbjorn Granlund <tege@gmplib.org> 2058 2059 * mpn/x86_64/coreisbr/sqr_basecase.asm: New file. 2060 2061 * mpn/x86_64/sqr_diag_addlsh1.asm: New file. 2062 2063 2013-08-30 Torbjorn Granlund <tege@gmplib.org> 2064 2065 * mpn/x86_64/fat/mul_basecase.c: New file. 2066 * mpn/x86_64/fat/sqr_basecase.c: New file. 2067 * mpn/x86_64/fat/mullo_basecase.c: New file. 2068 * mpn/x86_64/fat/redc_1.c: New file. 2069 2070 2013-08-29 Torbjorn Granlund <tege@gmplib.org> 2071 2072 * mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8 2073 subdir. 2074 * mpn/x86_64/k8/sqr_basecase.asm: Likewise. 2075 * mpn/x86_64/k8/redc_1.asm: Likewise. 2076 * mpn/x86_64/k8/mullo_basecase.asm: Likewise. 2077 * mpn/x86_64/k8/mulmid_basecase.asm: Likewise. 2078 2079 * mpn/ia64/aors_n.asm: Clean up some bundlings. 2080 2081 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell. 2082 (fake_cpuid_table): Likewise. 2083 2084 * configure.ac (x86): Remove any mulx paths. Let bwl path = hwl path. 2085 (fat_path): Add coreihwl. 2086 2087 * mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use 2088 mulx() macro. 2089 * mpn/x86_64/coreihwl/mul_1.asm: Likewise. 2090 * mpn/x86_64/coreihwl/mul_2.asm: Likewise. 2091 * mpn/x86_64/coreihwl/mul_basecase.asm: Likewise. 2092 * mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise. 2093 2094 * mpn/x86_64/x86_64-defs.m4 (mulx): New macro. 2095 (regnum, regnumh, ix): Supporting macros. 2096 2097 2013-08-28 Torbjorn Granlund <tege@gmplib.org> 2098 2099 * mpn/x86_64/coreisbr/divrem_1.asm: New file. 2100 2101 2013-08-23 Torbjorn Granlund <tege@gmplib.org> 2102 2103 * mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on 2104 copyi-palignr.asm. 2105 2106 * mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt". 2107 * mpn/x86_64/fastsse/copyd-palignr.asm: Likewise. 2108 * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise. 2109 * mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise. 2110 * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise. 2111 * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise. 2112 * mpn/x86_64/fastsse/tabselect.asm: Likewise. 2113 2114 * mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file. 2115 2116 * mpn/alpha/aorslsh2_n.asm: New file. 2117 * mpn/alpha/aorslsh1_n.asm: Rewrite. 2118 * mpn/alpha/ev6/aorslsh1_n.asm: New file. 2119 2120 2013-08-21 Torbjorn Granlund <tege@gmplib.org> 2121 2122 * mpn/alpha/sqr_diag_addlsh1.asm: New file. 2123 * mpn/alpha/sqr_diagonal.asm: Remove. 2124 * mpn/alpha/ev6/sqr_diagonal.asm: Remove. 2125 2126 2013-08-20 Torbjorn Granlund <tege@gmplib.org> 2127 2128 * mpn/powerpc32/sqr_diag_addlsh1.asm: New file. 2129 * mpn/powerpc32/sqr_diagonal.asm: Remove. 2130 2131 2013-08-15 Torbjorn Granlund <tege@gmplib.org> 2132 2133 * mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file. 2134 2135 2013-08-05 Torbjorn Granlund <tege@gmplib.org> 2136 2137 * mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite. 2138 2139 2013-08-04 Torbjorn Granlund <tege@gmplib.org> 2140 2141 * mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file. 2142 2143 * mpn/x86_64/bd1/mul_2.asm: New file. 2144 2145 * mpn/x86_64/coreihwl/gmp-mparam.h: New file. 2146 2147 2013-08-03 Torbjorn Granlund <tege@gmplib.org> 2148 2149 * mpn/x86_64/coreihwl/mulx/mul_2.asm: New file. 2150 * mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file. 2151 2152 * mpn/x86_64/coreinhm/aorsmul_1.asm: New file. 2153 2154 * mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles. 2155 2156 * mpn/x86_64/coreisbr/mul_2.asm: New file. 2157 2158 2013-08-02 Torbjorn Granlund <tege@gmplib.org> 2159 2160 * mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite. 2161 2162 2013-08-01 Torbjorn Granlund <tege@gmplib.org> 2163 2164 * mpn/x86_64/bd1/mul_basecase.asm: New file. 2165 2166 * mpn/x86_64/coreisbr/mul_basecase.asm: New file. 2167 2168 * mpn/x86_64/coreihwl/aorsmul_1.asm: New file. 2169 2170 2013-07-31 Torbjorn Granlund <tege@gmplib.org> 2171 2172 * mpn/x86_64/atom/mul_2.asm: New file. 2173 * mpn/x86_64/atom/addmul_2.asm: New file. 2174 * mpn/x86_64/atom/mul_1.asm: New file. 2175 * mpn/x86_64/atom/aorsmul_1.asm: New file. 2176 2177 * mpn/x86_64/coreihwl/mul_1.asm: New file. 2178 2179 * configure.ac (x86): Add Haswell-specific path. 2180 2181 * configure.in (fat_functions): Add cnd_add_n, cnd_sub_n.. 2182 * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions. 2183 * gmp-impl.h: Adjust corresponding declarations. 2184 2185 * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions. 2186 * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise. 2187 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise. 2188 * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise. 2189 2190 2013-07-30 Torbjorn Granlund <tege@gmplib.org> 2191 2192 * mpn/x86_64/coreisbr/popcount.asm: New file. 2193 2194 2013-07-23 Torbjorn Granlund <tege@gmplib.org> 2195 2196 * mpn/x86_64/bobcat/aors_n.asm: New file. 2197 2198 * mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn. 2199 2200 * mpn/x86_64/bd1/aorrlsh1_n.asm: New file. 2201 * mpn/x86_64/bd1/sublsh1_n.asm: New file. 2202 2203 2013-07-22 Torbjorn Granlund <tege@gmplib.org> 2204 2205 * mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode. 2206 * mpn/powerpc64/mode64/mod_1_4.asm: Likewise. 2207 2208 2013-07-16 Torbjorn Granlund <tege@gmplib.org> 2209 2210 * doc/gmp.texi: Declare countless of function arguments as 'const'. 2211 2212 2013-07-15 Torbjorn Granlund <tege@gmplib.org> 2213 2214 * mpn/x86_64/core2/aors_n.asm: Rewrite. 2215 2216 * mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per 2217 Niels' suggestion. 2218 * mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code. 2219 2220 2013-07-14 Torbjorn Granlund <tege@gmplib.org> 2221 2222 * mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL. 2223 * mpn/powerpc64/mode64/divrem_2.asm: Likewise. 2224 * mpn/powerpc64/mode64/mod_1_1.asm: Likewise. 2225 * mpn/powerpc64/mode64/mod_1_4.asm: Likewise. 2226 2227 2013-07-13 Torbjorn Granlund <tege@gmplib.org> 2228 2229 * mpn/x86/atom/cnd_add_n.asm: New file. 2230 * mpn/x86/atom/cnd_sub_n.asm: New file.o 2231 2232 2013-07-12 Torbjorn Granlund <tege@gmplib.org> 2233 2234 * mpn/generic/sbpi1_div_sec.c: Partial rewrite. 2235 2236 2013-07-11 Torbjorn Granlund <tege@gmplib.org> 2237 2238 * mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1, 2239 NHM, Atom. 2240 2241 2013-07-05 Torbjorn Granlund <tege@gmplib.org> 2242 2243 * mpn/powerpc64/p7/copyi.asm: Handle n = 0. 2244 * mpn/powerpc64/p7/copyd.asm: Likewise. 2245 2246 2013-07-04 Torbjorn Granlund <tege@gmplib.org> 2247 2248 * mpn/powerpc64/mode64/p7/aormul_2.asm: New file. 2249 2250 * mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define. 2251 * mpn/powerpc64/aix.m4: New define (actually undefine). 2252 * mpn/powerpc64/elf.m4: Likewise. 2253 2254 2013-07-03 Torbjorn Granlund <tege@gmplib.org> 2255 2256 * mpn/powerpc64/com.asm: Rewrite. 2257 2258 * mpn/powerpc64/p7/copyi.asm: New file. 2259 * mpn/powerpc64/p7/copyd.asm: New file. 2260 2261 2013-07-02 Torbjorn Granlund <tege@gmplib.org> 2262 2263 * mpn/powerpc64/mode64/gcd_1.asm: New file. 2264 * mpn/powerpc64/mode64/p7/gcd_1.asm: New file. 2265 2266 2013-07-01 Torbjorn Granlund <tege@gmplib.org> 2267 2268 * configure.ac: Comment out AC_PROG_F77. 2269 2270 * mpn/powerpc64/mode64/rsh1add_n.asm: Remove. 2271 * mpn/powerpc64/mode64/rsh1sub_n.asm: Remove. 2272 * mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on 2273 removed files. 2274 2275 2013-06-28 Marc Glisse <marc.glisse@inria.fr> 2276 2277 * cxx/ismpf.cc: Use GMP_DECIMAL_POINT. 2278 * cxx/osmpf.cc: Likewise. 2279 * tests/cxx/t-locale.cc: Likewise. 2280 2281 2013-06-28 Torbjorn Granlund <tege@gmplib.org> 2282 2283 * mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file. 2284 * mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file. 2285 * mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file. 2286 2287 * mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname. 2288 2289 2013-06-27 Torbjorn Granlund <tege@gmplib.org> 2290 2291 * mpn/powerpc64/mode64/p7/aors_n.asm: New file. 2292 2293 2013-06-22 Torbjorn Granlund <tege@gmplib.org> 2294 2295 * aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove. 2296 * aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files. 2297 2298 2013-06-19 Torbjorn Granlund <tege@gmplib.org> 2299 2300 * mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code. 2301 * mpn/powerpc64/p6/rshift.asm: Likewise. 2302 * mpn/powerpc64/p6/lshiftc.asm: Likewise. 2303 2304 2013-06-17 Torbjorn Granlund <tege@gmplib.org> 2305 2306 * mpn/powerpc64/p6/lshift.asm: Fix typo in label reference. 2307 For 32-bit mode, zero extend `n' argument and split retval. 2308 * mpn/powerpc64/p6/rshift.asm: Likewise. 2309 * mpn/powerpc64/p6/lshiftc.asm: Likewise. 2310 2311 2013-06-10 Torbjorn Granlund <tege@gmplib.org> 2312 2313 * mpn/generic/mu_div_q.c: Remove obsolete comment. 2314 2315 2013-06-09 Marc Glisse <marc.glisse@inria.fr> 2316 2317 * mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow. 2318 * mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST. 2319 2320 2013-05-31 Torbjorn Granlund <tege@gmplib.org> 2321 2322 * mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division, 2323 never just for tail. (This fixes performance issues at the expense of 2324 memory needs.) 2325 2326 2013-05-26 Torbjorn Granlund <tege@gmplib.org> 2327 2328 * configure.ac (*sparc*-*-*): Major overhaul. 2329 2330 2013-05-22 Torbjorn Granlund <tege@gmplib.org> 2331 2332 * doc/gmp.texi (Reporting Bugs): Ask for configure's output. 2333 2334 * mpn/ia64/divrem_2.asm: Don't clobber f16-f18. 2335 2336 2013-05-20 Torbjorn Granlund <tege@gmplib.org> 2337 2338 * mpn/arm/udiv.asm: Change spacing to work around binutils bug. 2339 2340 2013-05-16 Torbjorn Granlund <tege@gmplib.org> 2341 2342 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 2343 2344 * tests/misc.c (tests_hardware_getround, tests_hardware_setround): 2345 Avoid assembly dependency unless WANT_ASSEMBLY. 2346 2347 * configure.ac (WANT_ASSEMBLY): Conditionally define. 2348 2349 2013-05-14 Torbjorn Granlund <tege@gmplib.org> 2350 2351 * configure.ac (arm1156): Don't fall back to plain v6 compiler option. 2352 2353 2013-05-11 Torbjorn Granlund <tege@gmplib.org> 2354 2355 * mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64. Streamline. 2356 * mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline. 2357 2358 2013-05-10 Torbjorn Granlund <tege@gmplib.org> 2359 2360 * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support. 2361 * mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support. 2362 2363 * mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent 2364 directory value. 2365 2366 2013-05-09 Torbjorn Granlund <tege@gmplib.org> 2367 2368 * configure.ac (--enable-fake-cpuid): New option. 2369 * mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting. 2370 * mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise. 2371 2372 * mpn/x86_64/bd1/mul_1.asm: Fix typo. 2373 2374 2013-05-07 Torbjorn Granlund <tege@gmplib.org> 2375 2376 * mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request. 2377 (fake_cpuid_available): Remove unused function. 2378 2379 * mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments. 2380 * mpn/generic/mod_1_2.c: Likewise. 2381 * mpn/generic/mod_1_3.c: Likewise. 2382 * mpn/generic/mod_1_4.c: Likewise. 2383 * mpn/generic/divrem_2.c: Likewise. 2384 2385 2013-05-06 Torbjorn Granlund <tege@gmplib.org> 2386 2387 * config.guess (power*): Handle all ppc970 variants. 2388 2389 2013-05-03 David S. Miller <davem@davemloft.net> 2390 2391 * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n, 2392 speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n, 2393 speed_mpn_rsblsh2_n): Don't define if these routines are macros. 2394 * tune/speed.c (routine): Likewise don't table if they are macros. 2395 2396 * mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings. 2397 * mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise. 2398 * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise. 2399 * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise. 2400 * mpn/sparc64/ultrasparct3/submul_1.asm: Likewise. 2401 2402 2013-05-03 Torbjorn Granlund <tege@gmplib.org> 2403 2404 * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has 2405 effect. 2406 2407 * gmp-impl.h: Amend last change. 2408 * tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if 2409 a macro. 2410 2411 2013-05-02 Torbjorn Granlund <tege@gmplib.org> 2412 2413 * mpn/arm/copyd.asm: Suppress dead pointer update. 2414 * mpn/arm/copyi.asm: Likewise. 2415 * mpn/arm/neon/logops_n.asm: Likewise. 2416 * mpn/arm/neon/tabselect.asm: Likewise. 2417 * mpn/arm/rshift.asm: Likewise. 2418 * mpn/arm/tabselect.asm: Likewise. 2419 * mpn/arm/v6/dive_1.asm: Likewise 2420 * mpn/arm/v7a/cora15/neon/copyi.asm: Likewise. 2421 2422 * mpn/arm/v7a/cora15/neon/com.asm: New file. 2423 2424 2013-05-01 Torbjorn Granlund <tege@gmplib.org> 2425 2426 * mpn/sparc64/ultrasparct3/aormul_4.asm: New file. 2427 2428 * configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and 2429 mul_4 + addmul_4. 2430 2431 * mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code. 2432 2433 * mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input. 2434 (umulxhi): Save and restore o7 to allow it as in/out parameter. 2435 2436 2013-04-29 Torbjorn Granlund <tege@gmplib.org> 2437 2438 * mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named. 2439 2440 * mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite. 2441 2442 * mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite. 2443 2444 * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file. 2445 2446 * gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc 2447 with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the 2448 latter. 2449 2450 * mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file. 2451 2452 * configure.ac (sparc-*-*): Recognise t5 along with t3 and t4. 2453 Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5. 2454 2455 2013-04-27 Mike Frysinger <vapier@gentoo.org> 2456 2457 * configure.ac (arm*-*-*): Set up path also for plainest CPU variants. 2458 2459 2013-04-27 Torbjorn Granlund <tege@gmplib.org> 2460 2461 * mpn/arm/v6/popham.asm: New file. 2462 2463 * mpn/arm/v7a/cora15/cnd-aors_n.asm: New file. 2464 2465 2013-04-25 Torbjorn Granlund <tege@gmplib.org> 2466 2467 * mpn/arm/mod_34lsub1.asm: Clear carry smarter. 2468 2469 * mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally 2470 used code. 2471 2472 * mpn/arm/v7a/cora15/submul_1.asm: New file. 2473 2474 2013-04-24 Torbjorn Granlund <tege@gmplib.org> 2475 2476 * mpn/arm/v7a/cora15/com.asm: New file. 2477 2478 * mpn/arm/v7a/cora15/logops_n.asm: New file. 2479 2480 2013-04-19 Torbjorn Granlund <tege@gmplib.org> 2481 2482 * mpn/arm/v7a/cora15/aors_n.asm: New file. 2483 2484 * mpn/arm/v7a/cora15/addmul_1.asm: Rewrite. 2485 2486 2013-04-18 Torbjorn Granlund <tege@gmplib.org> 2487 2488 * mpn/alpha/tabselect.asm: New file. 2489 2490 2013-04-17 Torbjorn Granlund <tege@gmplib.org> 2491 2492 * mpn/powerpc32/tabselect.asm: New file. 2493 2494 * longlong.h (arm64 count_trailing_zeros): New. 2495 2496 * mpn/arm64/invert_limb.asm: New file. 2497 2498 * mpn/generic/dive_1.c: Rewrite to use Hensel division also for 2499 size = 1. 2500 2501 * mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant. 2502 2503 * configure.ac: Remove "missing" from extra_functions_64 for coreibwl. 2504 2505 * mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment. 2506 * mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise. 2507 2508 2013-04-16 Torbjorn Granlund <tege@gmplib.org> 2509 2510 * mpn/alpha/invert_limb.asm: Generate table. 2511 * mpn/powerpc64/mode64/invert_limb.asm: Likewise. 2512 * mpn/s390_64/invert_limb.asm: Likewise. 2513 * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. 2514 * mpn/x86_64/invert_limb_table.asm: Likewise. 2515 2516 2013-04-15 David S. Miller <davem@davemloft.net> 2517 2518 * mpn/sparc32/sparc-defs.m4 (LEA64): New macro. 2519 * mpn/sparc64/gcd_1.asm: Use it. 2520 * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise. 2521 * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. 2522 * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise. 2523 2524 * mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE. 2525 2526 2013-04-15 Torbjorn Granlund <tege@gmplib.org> 2527 2528 * mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry, 2529 it is not portable. 2530 2531 * mpn/sparc64/tabselect.asm: New file. 2532 2533 * mpn/x86/mmx/tabselect.asm: New file. 2534 * configure.ac (x86): Add x86/mmx to path for relevant CPUs. 2535 2536 * mpn/sparc64/gcd_1.asm: Use rdpc for PIC. 2537 * mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC. 2538 * mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC. 2539 * mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc. 2540 2541 * Revert remaining parts of recent sparc LEA changes. 2542 2543 2013-04-14 David S. Miller <davem@davemloft.net> 2544 2545 * mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes. 2546 * mpn/sparc64/gcd_1.asm: Likewise. 2547 2548 2013-04-13 Torbjorn Granlund <tege@gmplib.org> 2549 2550 * mpn/x86_64/bd1/tabselect.asm: New file. 2551 * mpn/x86_64/coreisbr/tabselect.asm: New file. 2552 * mpn/x86_64/k10/tabselect.asm: New file. 2553 * mpn/x86_64/coreinhm/tabselect.asm: New file. 2554 * mpn/x86_64/core2/tabselect.asm: New file. 2555 * mpn/x86_64/pentium4/tabselect.asm: New file. 2556 2557 * mpn/x86_64/fastsse/tabselect.asm: New file. 2558 * mpn/arm/neon/tabselect.asm: Rewrite. 2559 * mpn/arm/tabselect.asm: Rewrite. 2560 * mpn/powerpc64/tabselect.asm: Rewrite. 2561 * mpn/x86_64/tabselect.asm: Rewrite. 2562 2563 * tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code, 2564 making .r argument be table width. 2565 2566 2013-04-11 David S. Miller <davem@davemloft.net> 2567 2568 * mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label. 2569 (LEA_LEAF): Likewise. 2570 2571 2013-04-11 Niels Möller <nisse@lysator.liu.se> 2572 2573 * mpn/arm/v6/submul_1.asm: New file, using the corresponding 2574 addmul_1 loop + complement trick. 2575 2576 2013-04-10 David S. Miller <davem@davemloft.net> 2577 2578 * acinclude.m4 (GMP_ASM_SPARC_GOTDATA, 2579 GMP_ASM_SPARC_SHARED_THUNKS): New feature tests. 2580 * configure.ac: Call GMP_ASM_SPARC_GOTDATA and 2581 GMP_ASM_SPARC_SHARED_THUNKS on sparc. 2582 * mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros. 2583 * mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK. 2584 * mpn/sparc32/v8/addmul_1.asm: Likewise. 2585 * mpn/sparc32/v8/mul_1.asm: Likewise. 2586 * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. 2587 * mpn/sparc32/v8/udiv.asm: Likewise. 2588 * mpn/sparc64/gcd_1.asm: Likewise. 2589 * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise. 2590 * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. 2591 * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise. 2592 * mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32. 2593 2594 2013-04-09 Torbjorn Granlund <tege@gmplib.org> 2595 2596 * longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3. 2597 2598 * config.guess (sparc*): Invoke set_cc_for_build to get $dummy. 2599 2600 2013-04-08 Torbjorn Granlund <tege@gmplib.org> 2601 2602 * config.guess: Rework tmp file names, make sure to remove tmp files. 2603 2604 * mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private 2605 table. 2606 2607 * mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for 2608 shift ops. 2609 2610 2013-04-07 Torbjorn Granlund <tege@gmplib.org> 2611 2612 * mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file. 2613 2614 * longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and 2615 count_leading_zeros conditionally under the symbol __sparc_vis3. 2616 2617 * mpn/arm/dive_1.asm: New file. 2618 * mpn/arm/v6/dive_1.asm: New file. 2619 2620 * mpn/arm/v6t2/mode1o.asm: Make trivial change to avoid v6t2... 2621 * mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly. 2622 2623 * mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first. 2624 2625 2013-04-04 David S. Miller <davem@davemloft.net> 2626 2627 * mpn/sparc64/ultrasparct3/add_n.asm: Rewrite. 2628 * mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite. 2629 2630 * mpn/sparc64/ultrasparct3/invert_limb.asm: Align table. 2631 2632 2013-04-04 Torbjorn Granlund <tege@gmplib.org> 2633 2634 * mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt. 2635 2636 * tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb. 2637 2638 * tests/mpn/t-div.c (random_word): Remove. Let callers invoke urandom. 2639 2640 * mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite. 2641 2642 * mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file. 2643 * mpn/sparc64/ultrasparct3/dive_1.asm: New file. 2644 * mpn/sparc64/ultrasparct3/invert_limb.asm: New file. 2645 * mpn/sparc64/ultrasparct3/mod_1_4.asm: New file. 2646 * mpn/sparc64/ultrasparct3/mode1o.asm: New file. 2647 2648 2013-04-03 Torbjorn Granlund <tege@gmplib.org> 2649 2650 * mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed. 2651 2652 2013-04-02 Torbjorn Granlund <tege@gmplib.org> 2653 2654 * mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks. 2655 (lzcnt): New. 2656 * mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function. 2657 2658 * mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here... 2659 * mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here. 2660 2661 * mpn/sparc64/ultrasparc1234/lshift.asm: Remove. 2662 * mpn/sparc64/ultrasparc1234/rshift.asm: Remove. 2663 2664 2013-04-01 Torbjorn Granlund <tege@gmplib.org> 2665 2666 * mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr, 2667 allowing use in functions that does not do save/restore. 2668 2669 * mpn/sparc64/gcd_1.asm: Tweak for tighter loop. 2670 2671 2013-03-31 David S. Miller <davem@davemloft.net> 2672 2673 * mpn/sparc64/lshift.asm: New file. 2674 * mpn/sparc64/rshift.asm: New file. 2675 * mpn/sparc64/lshiftc.asm: New file. 2676 2677 2013-03-31 Torbjorn Granlund <tege@gmplib.org> 2678 2679 * mpn/sparc64/ultrasparct1/lshift.asm: Remove. 2680 * mpn/sparc64/ultrasparct1/rshift.asm: Remove. 2681 * mpn/sparc64/ultrasparct1/lshiftc.asm: Remove. 2682 2683 2013-03-29 Torbjorn Granlund <tege@gmplib.org> 2684 2685 * mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi. 2686 2687 2013-03-28 Torbjorn Granlund <tege@gmplib.org> 2688 2689 * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'. 2690 (mpn_mod_1s_4p_cps): Update from generic code. 2691 2692 2013-03-27 Torbjorn Granlund <tege@gmplib.org> 2693 2694 * mpn/generic/trialdiv.c: Make variables 'const' to match tables. 2695 2696 * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'. 2697 * mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise. 2698 * mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise. 2699 * mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise. 2700 * gmp-impl.h: Update prototypes. 2701 2702 * mpn/x86_64/mulx/aorsmul_1.asm: New file. 2703 * mpn/x86_64/mulx/addmul_1.asm: Remove. 2704 2705 2013-03-26 Niels Möller <nisse@lysator.liu.se> 2706 2707 Make mpn_cnd_add_n and mpn_cnd_sub_n public. 2708 * doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and 2709 mpn_cnd_sub_n. 2710 * gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes 2711 here... 2712 * gmp-impl.h: ... from here. 2713 2714 2013-03-26 Torbjorn Granlund <tege@gmplib.org> 2715 2716 * mpn/x86/pentium4/sse2/cnd_add_n.asm: New file. 2717 * mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file. 2718 * mpn/x86/cnd_aors_n.asm: New file. 2719 2720 2013-03-25 David S. Miller <davem@davemloft.net> 2721 2722 * mpn/sparc64/ultrasparct3/hamdist.asm: New file. 2723 * mpn/sparc64/ultrasparct3/popcount.asm: New file. 2724 2725 2013-03-25 Torbjorn Granlund <tege@gmplib.org> 2726 2727 * mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm. 2728 * mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm. 2729 * mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm. 2730 2731 2013-03-24 Torbjorn Granlund <tege@gmplib.org> 2732 2733 * mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file. 2734 * mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file. 2735 * mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file. 2736 * mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file. 2737 2738 * configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files. 2739 2740 * tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly 2741 assert of mp_limb being non-negative. 2742 2743 2013-03-21 Torbjorn Granlund <tege@gmplib.org> 2744 2745 * mpn/arm/neon/lshiftc.asm: New file. 2746 2747 * mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop. 2748 2749 * gen-trialdivtab.c: Output just raw data, remove actual variables. 2750 * mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here, 2751 and make them 'const'. 2752 2753 2013-03-20 Torbjorn Granlund <tege@gmplib.org> 2754 2755 * config.guess: Rework arm CPU recognition. 2756 * config.sub: Corresponding updates. 2757 * configure.ac: Likewise. 2758 2759 * mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default. 2760 2761 * mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..". 2762 * mpn/arm/v7a/cora15/neon/copyd.asm: Likewise. 2763 2764 * config.guess: Tack on "neon" for appropriate arm CPUs. 2765 * configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15. 2766 2767 2013-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 2768 2769 * mpf/fits_u.h: Accept numbers truncating to zero before checking the 2770 sign. 2771 * tests/mpf/t-fits.c: Check new edges. 2772 2773 2013-03-19 Torbjorn Granlund <tege@gmplib.org> 2774 2775 * tests/arm32check.c: Get printing of clobbered register right. 2776 2777 * mpn/arm/neon/popcount.asm: New file. 2778 * mpn/arm/neon/hamdist.asm: New file. 2779 2780 * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and 2781 arm32check.c. 2782 2783 2013-03-18 Torbjorn Granlund <tege@gmplib.org> 2784 2785 * configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS. 2786 2787 * tests/arm32call.asm: New file. 2788 * tests/arm32check.c: New file. 2789 2790 * mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use. 2791 (EPILOGUE_cpu): Define. 2792 2793 * mpn/arm/v6/addmul_3.asm: Make code work for PIC. 2794 2795 * tests/x86call.asm: Modernise asm syntax. 2796 * tests/amd64call.asm: Likewise. 2797 2798 * mpn/x86/darwin.m4 (m4append): Move definition from here... 2799 * mpn/asm-defs.m4: ...to here. 2800 2801 2013-03-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 2802 2803 * doc/gmp.texi (--enable-fat): No quote in concept index. 2804 2805 * mpf/swap.c: Reduce the number of variables. 2806 2807 2012-03-17 Marc Glisse <marc.glisse@inria.fr> 2808 2809 * tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file. 2810 * tests/cxx/Makefile.am: Add new file. Reorder the tests. 2811 2812 2013-03-17 Torbjorn Granlund <tege@gmplib.org> 2813 2814 * mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas. 2815 2816 * mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code. 2817 2818 * mpn/arm/v6/addmul_3.asm: New file. 2819 2820 * mpn/arm/v7a/cora15/copyd.asm: Tweak. 2821 2822 * mpn/arm64/copyi.asm: New file. 2823 * mpn/arm64/copyd.asm: New file. 2824 2825 2013-03-16 Torbjorn Granlund <tege@gmplib.org> 2826 2827 * mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance. 2828 2829 2013-03-14 Torbjorn Granlund <tege@gmplib.org> 2830 2831 * mpn/ia64/cnd_aors_n.asm: New file. 2832 2833 * mpn/arm64/cnd_aors_n.asm: New file. 2834 2835 * mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition. 2836 2837 * mpn/ia64/aors_n.asm: Remove a redundant ASM_START. 2838 2839 * mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution. 2840 2841 * mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently 2842 prune missing.asm from path. 2843 * mpn/x86_64/mulx/adx/missing-call.m4: Likewise. 2844 * mpn/x86_64/mulx/adx/missing-inline.m4: Likewise. 2845 * mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path. 2846 2847 2013-03-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 2848 2849 * mpz/cong_2exp.c: Write loops in a cleaner way. 2850 * mini-gmp/mini-gmp.c: Likewise. 2851 * gmp-impl.h (mpz_zero_p): Likewise. 2852 2853 2013-03-12 Niels Möller <nisse@lysator.liu.se> 2854 2855 New names mpn_cnd_add_n and mpn_cnd_sub_n. 2856 * mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and 2857 function, from addcnd.c:mpn_addcnd_n. 2858 * mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from 2859 subcnd.c:mpn_subcnd_n. 2860 * mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and 2861 renamed functions. 2862 * mpn/x86_64/cnd_aors_n.asm: Analogous renaming. 2863 * mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming. 2864 * gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes 2865 with new names. 2866 * configure.ac: Updated for new names. 2867 * tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n. 2868 (refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n. 2869 * tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated 2870 prototypes with new names. 2871 * tune/common.c (speed_mpn_cnd_add_n): Renamed, from 2872 speed_mpn_addcnd_n, call mpn_cnd_add_n. 2873 (speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call 2874 mpn_cnd_sub_n. 2875 * tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated 2876 prototypes with new names. 2877 * tune/speed.c (routine): Updated list with new names. 2878 * tests/devel/try.c: Updated for new mpn_cnd_* names. 2879 * mpn/generic/sbpi1_div_sec.c: Likewise. 2880 * mpn/generic/powm_sec.c: Likewise. 2881 2882 2013-03-12 Torbjorn Granlund <tege@gmplib.org> 2883 2884 * configure.ac: Add "missing" to extra_functions_64 for coreibwl. 2885 2886 * mpn/x86_64/mulx/adx/addmul_1.asm: Simplify. Make FAKE_MULXADX the 2887 default awaiting proper qemu behaviour. 2888 2889 2013-03-11 Torbjorn Granlund <tege@gmplib.org> 2890 2891 * mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64. 2892 2893 * tests/mpz/t-powm_ui.c: Test larger arguments. General cleanup. 2894 2895 * mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements. 2896 2897 2013-03-10 Niels Möller <nisse@lysator.liu.se> 2898 2899 * mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and 2900 mpn_subcnd_n. 2901 * mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC) 2902 (mpn_powm_sec): Update calls of mpn_subcnd_n. 2903 2904 * tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update 2905 declarations. 2906 * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar 2907 reorder of arguments. 2908 * tests/devel/try.c (call): Pass condition first, for 2909 TYPE_ADDCND_N and TYPE_SUBCND_N. 2910 2911 * tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update 2912 to pass condition as first argument. 2913 2914 * gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations. 2915 2916 * mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make 2917 condition the first argument. 2918 * mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise. 2919 * mpn/arm/aorscnd_n.asm: Likewise. 2920 * mpn/x86_64/aorscnd_n.asm: Likewise. 2921 * mpn/powerpc64/mode64/aorscnd_n.asm: Likewise. 2922 2923 2013-03-10 Torbjorn Granlund <tege@gmplib.org> 2924 2925 * mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns. 2926 * mpn/x86_64/mulx/adx/missing-call.m4: Call variant. 2927 * mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant. 2928 2929 * mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns. 2930 * mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for 2931 v9-2011 insn. 2932 2933 * configure.ac: Strip `haswell' from paths for now. 2934 2935 * mpn/x86_64/mulx/addmul_1.asm: New. 2936 * mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir. 2937 * mpn/x86_64/mulx/adx/addmul_1.asm: Likewise. 2938 * mpn/x86_64/haswell: Remove. 2939 2940 * mpn/arm/v7a/cora15/mul_1.asm: New file. 2941 * mpn/arm/v7a/cora15/addmul_1.asm: New file. 2942 2943 2013-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 2944 2945 * tests/mpz/t-cong_2exp.c: Improve coverage. 2946 2947 2013-03-09 Torbjorn Granlund <tege@gmplib.org> 2948 2949 * mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4. 2950 * mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise. 2951 2952 * mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo. 2953 2954 2013-03-07 Torbjorn Granlund <tege@gmplib.org> 2955 2956 * mpn/arm/v7a/cora9/gmp-mparam.h: New file. 2957 2958 * configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2. 2959 2960 * mpn/sparc64/ultrasparct3/aormul_2.asm: New file. 2961 2962 * mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry 2963 propagating adds. 2964 2965 2013-03-06 David Miller <davem@davemloft.net> 2966 2967 * config.guess: Recognize UltraSparc T4 under Linux. 2968 * configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4. 2969 Append -xarch=v8plusd or -xarch=v9d to command line, as needed. 2970 * mpn/sparc64/ultrasparct3/mul_1.asm: New file. 2971 * mpn/sparc64/ultrasparct3/addmul_1.asm: New file. 2972 * mpn/sparc64/ultrasparct3/submul_1.asm: New file. 2973 * mpn/sparc64/ultrasparct3/add_n.asm: New file. 2974 * mpn/sparc64/ultrasparct3/sub_n.asm: New file. 2975 2976 * mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add 2977 T2/T3/T4 timings. 2978 * mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise. 2979 * mpn/sparc32/ultrasparct1/submul_1.asm: Likewise. 2980 2981 2013-03-04 Torbjorn Granlund <tege@gmplib.org> 2982 2983 * mpn/arm/neon/lorrshift.asm: New file. 2984 2985 2013-03-03 Torbjorn Granlund <tege@gmplib.org> 2986 2987 * mpn/arm/v7a/cora15/copyd.asm: New file. 2988 * mpn/arm/v7a/cora15/copyi.asm: New file. 2989 2990 * mpn/arm64/logops_n.asm: New file. 2991 * mpn/arm64/gcd_1.asm: New file. 2992 * mpn/arm64/aorsmul_1.asm: New file. 2993 * mpn/arm64/addmul_1.asm: Remove. 2994 * mpn/arm64/aors_n.asm: Complete rewrite. 2995 2996 * mpn/arm/tabselect.asm: New file. 2997 * mpn/arm/neon/tabselect.asm: New file. 2998 2999 * mpn/arm/copyi.asm: Software pipeline. 3000 * mpn/arm/copyd.asm: Likewise. 3001 3002 * config.guess: Rework tmp file handling to resemble configfsf.guess's. 3003 3004 2013-03-03 Niels Möller <nisse@lysator.liu.se> 3005 3006 * doc/gmp.texi (Integer Special Functions): Document 3007 mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify, 3008 mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N. 3009 3010 * mpz/roinit_n.c (mpz_roinit_n): Normalize the input. 3011 3012 2013-02-27 Niels Möller <nisse@lysator.liu.se> 3013 3014 * tune/common.c (speed_measure): Increase repetition count if we 3015 get a zero measurement. 3016 3017 2013-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 3018 3019 * mini-gmp/mini-gmp.c (mpz_div_q_2exp): Adjust only if needed. 3020 (mpn_common_scan): New service function to unify scan loops. 3021 (mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan. 3022 (mpz_make_odd): Simplify, assume in-place operation on positive. 3023 (mpn_scan0, mpn_scan1): New functions. 3024 * mini-gmp/mini-gmp.h (mpn_scan0, mpn_scan1): New declarations. 3025 * mini-gmp/tests/t-scan.c: Test also mpn_scan0 and mpn_scan1. 3026 3027 2013-02-26 Niels Möller <nisse@lysator.liu.se> 3028 3029 * tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if 3030 compiler supports c99. 3031 3032 2013-02-25 Niels Möller <nisse@lysator.liu.se> 3033 3034 * mini-gmp/tests/t-double.c (testmain): Declare double variables 3035 as volatile, to drop extended precision. 3036 3037 * mini-gmp/tests/testutils.c (testfree): New function. Use it 3038 everywhere where test programs deallocate storage allocated via 3039 the mini-gmp allocation functions, including uses of mpz_get_str 3040 for various test failure messages. 3041 3042 * mpz/limbs_finish.c (mpz_limbs_finish): New file and function. 3043 * mpz/limbs_modify.c (mpz_limbs_modify): New file and function. 3044 * mpz/limbs_read.c (mpz_limbs_read): New file and function. 3045 * mpz/limbs_write.c (mpz_limbs_write): New file and function. 3046 * mpz/roinit_n.c (mpz_roinit_n): New file and function. 3047 * gmp-h.in: Declare new functions. 3048 (MPZ_ROINIT_N): New macro. 3049 * mpz/Makefile.am (libmpz_la_SOURCES): Added new files. 3050 * Makefile.am (MPZ_OBJECTS): Added new object files. 3051 3052 * tests/mpz/t-limbs.c: New testcase. 3053 * tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs. 3054 3055 2013-02-22 Torbjorn Granlund <tege@gmplib.org> 3056 3057 * configure.ac: Fix typo in adx/mulx path stripping code. 3058 * config.sub: Match coreibwl. 3059 3060 2013-02-20 Niels Möller <nisse@lysator.liu.se> 3061 3062 * tests/mpq/t-get_d.c (check_random): Rewrote to make test less 3063 dependent on float operations. Fixes problem with m68k-linux and 3064 extended float precision. 3065 3066 2013-02-20 Torbjorn Granlund <tege@gmplib.org> 3067 3068 * mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file. 3069 3070 * configure.ac: Support coreibwl. Use proper name for ADX extension. 3071 * acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX. 3072 3073 * tests/tests.h (TESTS_REPS): Keep count >= 1. 3074 3075 2013-02-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 3076 3077 * mini-gmp/mini-gmp.c: Move asserts to work-around a compiler bug. 3078 (mpz_export): Reorder branches. 3079 (mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place). 3080 3081 * mini-gmp/tests/t-reuse.c: Fix typo causing the same negation 3082 condition to be applied to all operands. (See 2013-02-03, Torbjorn) 3083 3084 2013-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 3085 3086 * gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]: 3087 Optimise _si using _ui for positive arguments. 3088 (__gmp_hypot_function): Use _mul_ui to square an ui, abs for si. 3089 3090 * mini-gmp/mini-gmp.c (mpz_mul): Read sizes just once. 3091 (mpn_set_str_other): Remove a redundant variable. 3092 (mpz_abs_add): Use SWAP once, to order sizes. 3093 (mpz_mul_ui): Micro-optimisation. 3094 (mpz_rootrem): Use _init2 before _setbit. 3095 (mpz_set_str): Optimise-out a variable. 3096 (mpz_import): Normalise only if needed. 3097 (mpn_div_qr_1): Speed-up the d=1 case, delaying a branch. 3098 3099 * rand/randmts.c: Use init2, as size of variables is known in advance. 3100 (mangle_seed): Get a single argument. 3101 3102 * mpz/remove.c: Delay allocation in the generic case; use swap 3103 instead of set. 3104 * mpn/generic/remove.c: Delay (possibly smaller) allocation. 3105 3106 2013-02-17 Marc Glisse <marc.glisse@inria.fr> 3107 3108 * cxx/osdoprnti.cc: Use <stdarg.h> and <string.h> rather than <cstdarg> 3109 and <cstring> (revert 2002-12-21). 3110 3111 * tests/cxx/Makefile.am: Link with libm. 3112 * tests/cxx/t-ops2.cc: Comment about more tests. Use <math.h> rather 3113 than <cmath> and using namespace. Don't include <iostream>. 3114 3115 * gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS, 3116 __GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros. 3117 (__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies, 3118 __gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less, 3119 __gmp_cmp_function): Use __GMPXX_TMPQ_D. 3120 * tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX. 3121 3122 * gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use 3123 __GMPXX_CONSTANT_TRUE. 3124 3125 2013-02-16 Marc Glisse <marc.glisse@inria.fr> 3126 3127 * gmpxx.h: Include <algorithm>. 3128 3129 2013-02-16 Torbjorn Granlund <tege@gmplib.org> 3130 3131 * mpn/Makefile.am (TARG_DIST): Add arm64. 3132 3133 * mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of 3134 '.protected" to please Sun's assembler, but also for semantic reasons. 3135 3136 2013-02-15 Torbjorn Granlund <tege@gmplib.org> 3137 3138 * configure.ac (arm64*-*-*): Match this. 3139 3140 * mpn/arm64/aors_n.asm: New file. 3141 * mpn/arm64/addmul_1.asm: New file. 3142 * mpn/arm64/mul_1.asm: New file. 3143 3144 2013-02-15 Marc Glisse <marc.glisse@inria.fr> 3145 3146 * gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS, 3147 __GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros. 3148 (mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d, 3149 assign_ui, assign_si, assign_d]: New functions. 3150 (__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros. 3151 (__GMPXX_CONSTANT_TRUE): New macro. 3152 3153 2013-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 3154 3155 * gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST. 3156 * mpz/fits_s.h: Use NEG_CAST. 3157 3158 2013-02-14 Marc Glisse <marc.glisse@inria.fr> 3159 3160 * gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less. 3161 (__gmp_binary_equal): Forward to itself after swapping operands. 3162 3163 2013-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 3164 3165 * mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values. 3166 * mpf/set_str.c: Update offset accordingly. 3167 * mpz/inp_str.c: Likewise. 3168 * mpz/set_str.c: Likewise. 3169 3170 * gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1. 3171 * tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1. 3172 3173 * mpz/clrbit.c: Reorganise branches. 3174 * mpz/setbit.c: Likewise. 3175 * mpz/combit.c: Same micro-optimisations as in set/clr. 3176 3177 * mpz/aors_ui.h: No realloc if size was zero. 3178 * mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U. 3179 3180 * gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST. 3181 * mpq/cmp_si.c: Use NEG_CAST. 3182 * mpz/cmp_si.c: Reorganise branches. 3183 3184 2013-02-13 Torbjorn Granlund <tege@gmplib.org> 3185 3186 * acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests. 3187 * configure.ac: Use new feature tests. 3188 3189 * mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older 3190 assemblers. 3191 * configure.ac: Update haswell path to include "mulx". 3192 3193 2013-02-12 Torbjorn Granlund <tege@gmplib.org> 3194 3195 * configure.ac: Recognise haswell. 3196 * config.guess: Recognise haswell. 3197 * config.sub: Match haswell. 3198 3199 * mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI. 3200 3201 2013-02-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 3202 3203 * gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro. 3204 * gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set. 3205 * mini-gmp/mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code. 3206 3207 * mpn/generic/mulmod_bnm1.c: Reorganise branches. 3208 * mini-gmp/mini-gmp.c: Reduce branches. 3209 3210 * mpz/bin_ui.c: Avoid a copy when n < 0. 3211 * mpz/mfac_uiui.c: Reduce memory usage. 3212 * mpz/primorial_ui.c: Use MPZ_NEWALLOC. 3213 3214 * mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC. 3215 * mpz/inp_raw.c: Likewise. 3216 * mpz/rrandomb.c: Likewise. 3217 * mpz/urandomb.c: Likewise. 3218 * mpn/generic/random2.c: Likewise. 3219 3220 * mpn/generic/brootinv.c: Micro-optimisation. 3221 3222 * mpf/set_str.c: Don't chech base==0 when base is strictly positive. 3223 3224 2013-02-10 Torbjorn Granlund <tege@gmplib.org> 3225 3226 * Version 5.1.1 released. 3227 3228 2013-02-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 3229 3230 * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s. 3231 * tune/README: Document new parameter syntax mpn_mul.<#> . 3232 3233 2013-02-06 Niels Möller <nisse@lysator.liu.se> 3234 3235 * tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a 3236 more efficient method for generating the test inputs. 3237 3238 2013-02-05 Torbjorn Granlund <tege@gmplib.org> 3239 3240 * tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop. 3241 3242 2013-02-03 Torbjorn Granlund <tege@gmplib.org> 3243 3244 * tests/mpz/reuse.c: Fix typo causing the same negation condition to be 3245 applied to all operands. Fix condition for when to invoke mpz_remove. 3246 Make different-size random operands. 3247 3248 2013-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 3249 3250 * mpz/remove.c: Correct the sign in case of reuse. 3251 3252 2013-02-01 Torbjorn Granlund <tege@gmplib.org> 3253 3254 * gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast. 3255 (LIMBS_PER_DIGIT_IN_BASE): Likewise. 3256 3257 * tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the 3258 largest operands. 3259 3260 2013-01-31 Torbjorn Granlund <tege@gmplib.org> 3261 3262 * mpn/generic/toom44_mul.c: Revert last change in favour of a simple 3263 change (thanks Marco!). 3264 * mpn/generic/toom4_sqr.c: Likewise. 3265 3266 2013-01-30 Torbjorn Granlund <tege@gmplib.org> 3267 3268 * mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h 3269 into account, using new macro MUL_NEXTALG_THRESHOLD. 3270 * mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise. 3271 3272 2013-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 3273 3274 * mpz/remove.c: init+set=init_set, cast before shifting. 3275 3276 * mpz/cmp_si.c: Use ABS_CAST. 3277 3278 2013-01-26 Torbjorn Granlund <tege@gmplib.org> 3279 3280 * tests/mpn/logic.c: Set things up to always test library logops, not 3281 gmp-impl.h's inlined variants. Test also mpn_com. 3282 3283 * tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p. 3284 3285 * mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c. 3286 3287 * tests/mpz/reuse.c: Fix typo in last change. 3288 3289 2013-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 3290 3291 * mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify. 3292 (mpz_set_str): Behaviour more adherent to the real GMP. 3293 3294 * mini-gmp/tests/t-str.c: Cast size_t to unsigned long, for printf. 3295 * mini-gmp/tests/t-import.c: Likewise. 3296 * mini-gmp/tests/t-comb.c: Remove an unused var. 3297 * mini-gmp/tests/t-div.c: Remove unused args passed to fprintf. 3298 * mini-gmp/tests/t-double.c: Use float immediates with float vars. 3299 3300 2013-01-22 Torbjorn Granlund <tege@gmplib.org> 3301 3302 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 3303 * gmp-h.in: Bump version. 3304 3305 * tests/mpz/reuse.c: Delete always zero 'failures' and code depending 3306 on it. Replace rotating progress with real measure. 3307 3308 * Makefile.am (check-mini-gmp): Fix typo in last change. 3309 3310 2013-01-22 Niels Möller <nisse@lysator.liu.se> 3311 3312 * mini-gmp/mini-gmp.c (mpz_cmp_d): Simplified, just sort out 3313 signs, then call mpz_cmpabs_d. 3314 3315 * mini-gmp/tests/testutils.h: Include stdio.h and stdlib.h. 3316 (numberof): New define. 3317 3318 * mini-gmp/tests/t-cmp_d.c: New file, copied from 3319 tests/mpz/t-cmp_d.c with minor changes. 3320 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d, 3321 3322 * mini-gmp/mini-gmp.c (mpz_cmpabs_d): New function. 3323 * mini-gmp/mini-gmp.h: Declare it. 3324 3325 2013-01-21 Niels Möller <nisse@lysator.liu.se> 3326 3327 * mini-gmp/tests/t-str.c (testmain): Test mpz_out_str, using 3328 the tmpfile function for i/o. 3329 3330 2013-01-20 Torbjorn Granlund <tege@gmplib.org> 3331 3332 * Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the 3333 benefit of Darwin. 3334 3335 * tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec. 3336 (main): Separate divisor into normalised (dnp) and unnormalised (dup), 3337 pass appropriate variant to each function. 3338 (main): Make negative `test' index value mean divisor bits, for better 3339 small operands coverage. 3340 (main): Put random junk at qp[] instead of zeroing. 3341 3342 * tests/mpz/t-remove.c: Back out last change which left `divisor_size' 3343 uninitialised; achieve change's aim with a parameter tweak. 3344 3345 2013-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 3346 3347 * mini-gmp/tests/testutils.c (testhalves): New function, test default 3348 memory functions. 3349 * mini-gmp/tests/testutils.h (testhalves): Declare it 3350 * mini-gmp/tests/t-logops.c: Use testhalves. 3351 3352 * mini-gmp/mini-gmp.c (mpz_init_set_str): New function. 3353 * mini-gmp/mini-gmp.h (mpz_init_set_str): Declare it. 3354 * mini-gmp/tests/t-str.c: Test mpz_init_set_str. 3355 3356 2013-01-20 Torbjorn Granlund <tege@gmplib.org> 3357 3358 * tests/memory.c (PTRLIMB): New macro, used for conformant casting. 3359 3360 2013-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 3361 3362 * mini-gmp/tests/t-double.c (testmain): Get the current free 3363 function using mp_get_memory_functions. 3364 * mini-gmp/tests/t-str.c (testmain): Likewise. 3365 3366 * mini-gmp/tests/testutils.h (tu_free): Remove declaration. 3367 3368 * mini-gmp/tests/testutils.c (block_check, tu_free): Mark static. 3369 3370 * tests/mpz/t-set_str.c: Check also failing conditions. 3371 3372 * tests/mpz/t-remove.c: Test removal of 1. 3373 3374 2013-01-18 Niels Möller <nisse@lysator.liu.se> 3375 3376 * mini-gmp/tests/t-str.c (test_small): New function, exercising 3377 parsing of whitespace and base prefixes. 3378 (testmain): Call it. 3379 3380 * mini-gmp/tests/t-gcd.c (gcdext_valid_p): Fixed memory leak. 3381 3382 * mini-gmp/tests/t-double.c (testmain): Call tu_free rather than 3383 free, for storage allocated by mpz_get_str. 3384 * mini-gmp/tests/t-str.c (testmain): Likewise. 3385 3386 * mini-gmp/tests/testutils.c (block_init, block_check): New 3387 functions. 3388 (tu_alloc, tu_realloc, tu_free): New functions. 3389 (main): Use mp_set_memory_functions. 3390 * mini-gmp/tests/testutils.h (tu_free): Declare. 3391 3392 * mini-gmp/tests/testutils.h: New file, declarations for test 3393 programs. 3394 3395 * mini-gmp/tests/testutils.c (main): New file, with shared main 3396 function for all the test programs. Also includes mini-gmp.c. 3397 Calls testmain after initialization. All other test programs 3398 updated to define testmain rather than main. 3399 3400 2013-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 3401 3402 * mini-gmp/tests/t-signed.c: Slightly larger coverage. 3403 * mini-gmp/tests/t-double.c: Test also mpz_init_set_d. 3404 3405 2013-01-18 Torbjorn Granlund <tege@gmplib.org> 3406 3407 * mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused 3408 variable. 3409 3410 * mini-gmp/tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p. 3411 3412 * tests/tests.h (TESTS_REPS): Fix printf argument type clashes. 3413 3414 * mini-gmp/tests/t-div.c: Test also mpz_mod, mpz_mod_ui. Compare 3415 mpz_divisible_p just to ceil, to save time. 3416 3417 * mini-gmp/mini-gmp.c: Prefix some names with GMP_. 3418 3419 2013-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 3420 3421 * mini-gmp/tests/t-double.c: Test mpz_cmp_d. 3422 * mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison. 3423 3424 * mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string. 3425 * mini-gmp/tests/t-str.c: Test base <= 0. 3426 3427 2013-01-15 Niels Möller <nisse@lysator.liu.se> 3428 3429 * mini-gmp/tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d. 3430 * mini-gmp/tests/t-invert.c (main): Likewise. 3431 3432 * mini-gmp/tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr. 3433 3434 * mini-gmp/tests/hex-random.h (enum hex_random_op): New value 3435 OP_SQR. 3436 3437 * mini-gmp/tests/mini-random.c (mini_random_op3): Renamed, from... 3438 (mini_random_op): ... old name. Updated callers. 3439 (mini_random_op2): New function. 3440 3441 * mini-gmp/tests/hex-random.c (hex_random_op3): Renamed, from... 3442 (hex_random_op): ... old name. Updated callers. 3443 (hex_random_op2): New function. 3444 3445 2013-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 3446 3447 * mini-gmp/tests/t-logops.c: Improve popcount/hamdist testing. 3448 * mini-gmp/tests/t-signed.c: Test more cases. 3449 3450 2013-01-15 Torbjorn Granlund <tege@gmplib.org> 3451 3452 From Mike Frysinger: 3453 * configure.ac: Add x32 ABI for x86_64. 3454 3455 2013-01-14 Niels Möller <nisse@lysator.liu.se> 3456 3457 * mini-gmp/tests/t-str.c (main): Added tests for mpn_get_str and 3458 mpn_set_str. 3459 3460 2013-01-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 3461 3462 * doc/gmp.texi (gmp_version): Remove "was used" repetition. 3463 (Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5. 3464 3465 2013-01-13 Marc Glisse <marc.glisse@inria.fr> 3466 3467 * doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead 3468 of mpz_perfect_square_p. 3469 3470 2013-01-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 3471 3472 * mini-gmp/tests/t-comb.c: New test program, testing both 3473 mpz_fac_ui and mpz_bin_uiui. 3474 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-comb. 3475 3476 * mini-gmp/mini-gmp.c (mpz_mul_si): Simplify. 3477 (mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2. 3478 3479 * mini-gmp/mini-gmp.c (NEG_CAST): New macro. 3480 (mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST. 3481 3482 * mini-gmp/mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using 3483 the _ui variant. 3484 3485 * mini-gmp/tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui. 3486 3487 * mini-gmp/tests/t-mul.c: Test also mpz_mul_si. 3488 * mini-gmp/tests/t-sub.c: Test also mpz_ui_sub. 3489 3490 * mini-gmp/mini-gmp.c (mpz_fits_slong_p): Correct range. 3491 * mini-gmp/tests/t-signed.c: New test program, for get/set/cmp_si. 3492 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-signed. 3493 3494 * mini-gmp/mini-gmp.c (mpz_hamdist): Handle different sizes. 3495 * mini-gmp/tests/t-logops.c: Test also popcount and hamdist. 3496 3497 2013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 3498 3499 * mpz/export.c: Less restrictive ASSERTs. 3500 * mini-gmp/mini-gmp.c (mpz_export, mpz_import): Likewise. 3501 * mini-gmp/tests/t-import.c: Test also size=0 or count=0. 3502 3503 2013-01-10 Torbjorn Granlund <tege@gmplib.org> 3504 3505 * mini-gmp/tests/t-import.c (main): Don't drop off function end. 3506 3507 * Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing 3508 with dynamic main GMP build. 3509 3510 2013-01-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 3511 3512 * mini-gmp/mini-gmp.c (mpz_export): Support op=0 countp=NULL. 3513 3514 2013-01-08 Niels Möller <nisse@lysator.liu.se> 3515 3516 * mini-gmp/tests/t-import.c: New test program, testing both 3517 mpz_import and mpz_export. 3518 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-import. 3519 3520 * mini-gmp/tests/mini-random.c (mini_rrandomb_export): New 3521 function. 3522 * mini-gmp/tests/mini-random.h: Declare it. 3523 * mini-gmp/tests/hex-random.c (hex_rrandomb_export): New function. 3524 * mini-gmp/tests/hex-random.h: Declare it. 3525 3526 * mini-gmp/mini-gmp.c (mpz_export): Compute accurate word count up 3527 front, to avoid generating any high zero words. 3528 3529 2013-01-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 3530 3531 * mini-gmp/README: Document base limitation for conversions. 3532 * mini-gmp/mini-gmp.c (mpz_set_str): Remove goto. 3533 (mpz_import, mpz_export): Correctly use order/endianness. 3534 3535 2013-01-05 Torbjorn Granlund <tege@gmplib.org> 3536 3537 * longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work. 3538 3539 2013-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 3540 3541 From shuax: 3542 * mini-gmp/mini-gmp.c (mpz_import): Reset limb after storing it. 3543 3544 2013-01-04 Torbjorn Granlund <tege@gmplib.org> 3545 3546 From Marko Lindqvist: 3547 * configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete 3548 AM_CONFIG_HEADER. 3549 3550 2013-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 3551 3552 * tests/mpz/bit.c: Wider testing for mpz_combit. 3553 * tests/mpz/logic.c: Check the -2^n case. 3554 3555 * mpz/ior.c: Fixed an allocation bug in the -2^n case. 3556 3557 2012-12-31 Torbjorn Granlund <tege@gmplib.org> 3558 3559 * mpn/generic/get_d.c: Minor reorg, add vax D code. 3560 3561 * gmp-impl.h (double_extract): New union type for vax D floats. 3562 3563 * tests/mpq/t-get_d.c (check_random): Limit exponents on vax. 3564 3565 2012-12-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 3566 3567 * tests/mpz/bit.c (check_clr_extend): Check _set shrink. 3568 3569 2012-12-29 Torbjorn Granlund <tege@gmplib.org> 3570 3571 * demos/calc/calc.c: Remove generated file from repo. 3572 * demos/calc/calc.h: Likewise. 3573 * demos/calc/calclex.c: Likewise. 3574 3575 2012-12-27 Torbjorn Granlund <tege@gmplib.org> 3576 3577 * mpn/generic/get_d.c: Complete rewrite of non-IEEE code. 3578 3579 * tests/mpq/t-get_d.c (main): Suppress check_random for vax. 3580 3581 2012-12-25 Torbjorn Granlund <tege@gmplib.org> 3582 3583 * mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table. 3584 3585 2012-12-23 Torbjorn Granlund <tege@gmplib.org> 3586 3587 * tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid 3588 overflow in last, unused 'want' value. 3589 3590 * config.guess: Recognise AMD family 22 as a future bobcat. 3591 3592 2012-12-21 Torbjorn Granlund <tege@gmplib.org> 3593 3594 * configure.ac: Rename configure.in. 3595 3596 2012-12-17 Torbjorn Granlund <tege@gmplib.org> 3597 3598 * Version 5.1.0 released. 3599 3600 * configure.in (none-*-*): Allow this again, but print a warning. 3601 3602 2012-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 3603 3604 * mpz/n_pow_ui.c: Fix typos in an ASSERT. 3605 3606 2012-12-16 Torbjorn Granlund <tege@gmplib.org> 3607 3608 * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use 3609 MPN_COPY_INCR for slightly overlapping copy. 3610 3611 2012-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 3612 3613 * tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped. 3614 3615 2012-12-13 Torbjorn Granlund <tege@gmplib.org> 3616 3617 * mpn/x86_64/dos64.m4 (PIC): Move definition early. 3618 (JMPENT): Remove PIC variant. 3619 3620 * mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of 3621 something sensible. 3622 3623 2012-12-12 Torbjorn Granlund <tege@gmplib.org> 3624 3625 * mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro. 3626 * mpn/x86_64/dos64.m4: Likewise. 3627 * mpn/x86_64/darwin.m4: Likewise. 3628 * mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC. 3629 * mpn/x86_64/mullo_basecase.asm: Likewise. 3630 * mpn/x86_64/sqr_basecase.asm: Likewise. 3631 3632 2012-12-11 Torbjorn Granlund <tege@gmplib.org> 3633 3634 * mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit 3635 of broken Apple linkers. 3636 3637 2012-12-09 Torbjorn Granlund <tege@gmplib.org> 3638 3639 * configure.in: Make GMP_NONSTD_ABI ABI specific. 3640 3641 2012-12-08 Torbjorn Granlund <tege@gmplib.org> 3642 3643 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. 3644 * gmp-h.in: Bump version. 3645 3646 2012-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 3647 3648 * tests/mpq/reuse.c: New test (adapted from mpf/reuse.c). 3649 * tests/mpq/Makefile.am (check_PROGRAMS): Add reuse. 3650 3651 * mpz/abs.c: Use NEWALLOC. 3652 * mpz/neg.c: Likewise. 3653 * mpz/com.c: Reduce branches. 3654 3655 2012-12-05 Niels Möller <nisse@lysator.liu.se> 3656 3657 * mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at 3658 the cost of a redundant MPN_ZERO. 3659 3660 * mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0 3661 before using the low limbs. 3662 3663 2012-12-05 Torbjorn Granlund <tege@gmplib.org> 3664 3665 * mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue. 3666 3667 * mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument. 3668 3669 * tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR. 3670 3671 * longlong.h: Refine cpp test for vax. 3672 * tests/mpn/t-get_d.c: Likewise. 3673 * tests/mpz/t-get_d.c: Likewise. 3674 * tests/mpz/t-cmp_d.c: Likewise. 3675 * tests/mpz/t-get_d.c: Likewise. 3676 * tests/mpq/t-get_d.c: Likewise. 3677 * tests/mpf/t-get_d.c: Likewise. 3678 3679 2012-11-30 Torbjorn Granlund <tege@gmplib.org> 3680 3681 * gen-fac.c (gen_consts): Correct printf types. 3682 3683 * mpn/arm/v7a/cora15/gmp-mparam.h: New file. 3684 3685 * configure.in (arm*-*-*): New compiler optional "tune". Pass value for 3686 selected processors. Add more specific path components. 3687 3688 2012-11-29 Torbjorn Granlund <tege@gmplib.org> 3689 3690 From Andoni Morales Alastruey: 3691 * longlong.h: Conditionalise ARM asm on !__thumb__. 3692 3693 2012-11-28 Torbjorn Granlund <tege@gmplib.org> 3694 3695 * config.guess (arm*-*-*): Support specific ARM processors. 3696 * config.sub: Match arm CPUs. 3697 * configure.in (arm*-*-*): Likewise. 3698 3699 * mpz/powm.c: Move new_b out since it lives on through b. 3700 3701 * configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting 3702 to thumb code. 3703 3704 2012-11-26 Torbjorn Granlund <tege@gmplib.org> 3705 3706 * tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax 3707 overflow. 3708 3709 2012-11-25 Torbjorn Granlund <tege@gmplib.org> 3710 3711 * mpn/generic/get_d.c: Reinsert non-IEEE code. 3712 3713 * mpn/vax/add_n.asm: New file. 3714 * mpn/vax/add_n.s: Remove. 3715 * mpn/vax/addmul_1.asm: New file. 3716 * mpn/vax/addmul_1.s: Remove. 3717 * mpn/vax/lshift.asm: New file. 3718 * mpn/vax/lshift.s: Remove. 3719 * mpn/vax/mul_1.asm: New file. 3720 * mpn/vax/mul_1.s: Remove. 3721 * mpn/vax/rshift.asm: New file. 3722 * mpn/vax/rshift.s: Remove. 3723 * mpn/vax/sub_n.asm: New file. 3724 * mpn/vax/sub_n.s: Remove. 3725 * mpn/vax/submul_1.asm: New file. 3726 * mpn/vax/submul_1.s: Remove. 3727 3728 * mpn/vax/elf.m4: New file. 3729 * configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4. 3730 3731 * tests/mpn/t-get_d.c (check_onebit): Get vax bounds right. 3732 (main): Switch off check_rand for vax. 3733 3734 2012-11-22 Niels Möller <nisse@lysator.liu.se> 3735 3736 * mini-gmp/tests/run-tests: Copied latest version from GNU Nettle. 3737 Minor fix to the use of $EMULATOR, and proper copyright notice. 3738 3739 2012-11-16 Torbjorn Granlund <tege@gmplib.org> 3740 3741 * mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec. 3742 3743 * mpn/generic/sb_div_sec.c: New file. 3744 * mpn/generic/sbpi1_div_sec.c: New file. 3745 * configure.in (gmp_mpn_functions): Add new files. 3746 * gmp-impl.h: Declare new functions. 3747 3748 2012-11-12 Torbjorn Granlund <tege@gmplib.org> 3749 3750 * longlong.h: Add ARM64 support. 3751 * longlong.h: Add AVR support. 3752 3753 * mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify. 3754 3755 * mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR. 3756 * tests/mpq/t-md_2exp.c (check_random): New function. 3757 3758 2012-11-10 Torbjorn Granlund <tege@gmplib.org> 3759 3760 * mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static. 3761 3762 2012-11-04 Torbjorn Granlund <tege@gmplib.org> 3763 3764 * mpz/powm_ui.c: Rewrite. 3765 3766 2012-11-01 Niels Möller <nisse@lysator.liu.se> 3767 3768 * mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs 3769 rather than bits. Use single-precision iterations for the first 3770 limb. 3771 * mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call. 3772 * tests/mpn/t-brootinv.c (main): Likewise. 3773 * tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise. 3774 * gmp-impl.h (mpn_brootinv): Updated prototype. 3775 3776 * mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit 3777 tests in the single-precision loop. 3778 3779 * mpz/combit.c (mpz_combit): Rewrite, optimizing for the common 3780 case. 3781 3782 2012-10-31 Niels Möller <nisse@lysator.liu.se> 3783 3784 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv. 3785 * tests/mpn/t-brootinv.c: New file 3786 3787 * mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the 3788 loop, and do powering as a plain mpn_sqr followed by mpn_powlo. 3789 3790 * tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1, 3791 mpn_brootinv. 3792 3793 * tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1) 3794 (speed_mpn_brootinv): New functions. 3795 * tune/speed.h (SPEED_ROUTINE_MPN_BROOT) 3796 (SPEED_ROUTINE_MPN_BROOTINV): New macros. 3797 3798 * mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly 3799 for benchmarking). 3800 * gmp-impl.h (mpn_broot_invm1): Declare it. 3801 3802 2012-10-28 Torbjorn Granlund <tege@gmplib.org> 3803 3804 * configure.in (gmp_mpn_functions): Add new files. 3805 * gmp-impl.h: Declare new functions. 3806 * mpn/generic/perfpow.c: Overhaul. 3807 (binv_root, binv_sqroot): Remove. 3808 * mpn/generic/brootinv.c: New file, code from overhauled binv_root. 3809 * mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot. 3810 * mpn/generic/bsqrt.c: New file. 3811 3812 * tests/mpn/t-broot.c: Add a forgotten TMP_MARK. 3813 3814 2012-10-28 Niels Möller <nisse@lysator.liu.se> 3815 3816 * mpn/generic/broot.c (mpn_broot): New file and function. 3817 * configure.in (gmp_mpn_functions): Add broot. 3818 * gmp-impl.h (mpn_broot): Declare. 3819 * tests/mpn/t-broot.c: New testcase. 3820 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot. 3821 3822 2012-10-27 Torbjorn Granlund <tege@gmplib.org> 3823 3824 * mpn/generic/remove.c: Get remainder allocation right. 3825 3826 2012-10-25 Torbjorn Granlund <tege@gmplib.org> 3827 3828 * longlong.h: De-support old POWER asm syntax. 3829 3830 * tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands. 3831 3832 * mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function. 3833 (mpn_remove): Call mpn_bdiv_qr_wrap. 3834 * mpz/remove.c: Enable suppressed mpn_remove call. 3835 3836 2012-10-17 Torbjorn Granlund <tege@gmplib.org> 3837 3838 * mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent. 3839 3840 2012-09-10 Torbjorn Granlund <tege@gmplib.org> 3841 3842 * demos/factorize.c: Rewrite no more current form. Implement Lucas 3843 prime proving, and make its use the default. 3844 * demos/primes.h: New file. 3845 3846 2012-08-24 Torbjorn Granlund <tege@gmplib.org> 3847 3848 * demos/factorize.c: Overhaul. 3849 3850 2012-08-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 3851 3852 * doc/gmp.texi (mpn_neg): Correctly document returned type. 3853 3854 * gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels). 3855 3856 2012-07-28 Marc Glisse <marc.glisse@inria.fr> 3857 3858 * gmpxx.h (std::common_type): New partial specializations with builtin 3859 types. 3860 * tests/cxx/t-cxx11.cc: Test it. 3861 3862 2012-07-21 Torbjorn Granlund <tege@gmplib.org> 3863 3864 * mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with 3865 "large" code affecting elf+darwin PIC. 3866 3867 2012-07-21 Marc Glisse <marc.glisse@inria.fr> 3868 3869 * gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4. 3870 3871 2012-06-26 Torbjorn Granlund <tege@gmplib.org> 3872 3873 * Makefile.am (LIBMP_LT_*): Remove these. 3874 3875 2012-06-26 Marc Glisse <marc.glisse@inria.fr> 3876 3877 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0. 3878 3879 2012-06-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 3880 3881 * configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of 3882 assembly code with the --disable-assembly option. 3883 * mpz/oddfac_1.c: Use the ASSERT_CODE macro. 3884 * gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2). 3885 3886 * gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP 3887 from mpz/export.c . 3888 * mpz/export.c (MPN_SIZEINBASE_2EXP): Removed. 3889 * mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE. 3890 3891 * mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits. 3892 * mpn/generic/perfpow.c: Likewise. 3893 * mpn/generic/rootrem.c: Likewise. 3894 * mpz/get_d_2exp.c: Likewise. 3895 * mpn/generic/powm_sec.c: Likewise, nailify. 3896 * mpn/generic/powlo.c: Likewise. 3897 * mpn/generic/powm.c: Likewise. 3898 3899 * mini-gmp/mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve 3900 adjustment condition. 3901 3902 2012-06-23 Marc Glisse <marc.glisse@inria.fr> 3903 3904 * gmpxx.h (numeric_limits): Make content public. 3905 * cxx/limits.cc: New file, proper declarations. 3906 * Makefile.am: List new file. 3907 * cxx/Makefile.am: Likewise. 3908 * cxx/t-misc.cc: Add minimal test for numeric_limits. 3909 3910 2012-06-09 Marc Glisse <marc.glisse@inria.fr> 3911 3912 * gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef. 3913 (__gmp_temp): Wrapper for mp*_class, the constructor copies the 3914 precision of its second argument for mpf_t. 3915 (__gmp_expr::eval(p, prec)): Remove. 3916 (__gmp_expr::eval(p)): Use __gmp_temp. 3917 (__gmp_set_expr): Never pass prec to eval(). 3918 3919 2012-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 3920 3921 * gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in. 3922 (MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT. 3923 (MPZ_NEWALLOC): New macro. 3924 * mpq: Use the new macro when possible. 3925 * mpz/bin_uiui.c: Likewise. 3926 * mpz/oddfac_1.c: Likewise. 3927 * mpz/prodlimbs.c: Likewise. 3928 3929 * mini-gmp/mini-gmp.c (mpz_realloc): remove a branch. 3930 3931 2012-06-04 Torbjorn Granlund <tege@gmplib.org> 3932 3933 * mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any". 3934 3935 2012-06-03 Niels Möller <nisse@lysator.liu.se> 3936 3937 * mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling 3938 impossible case u1 == 0, Simplified test for unlikely case u0 == 0. 3939 3940 2012-06-02 Torbjorn Granlund <tege@gmplib.org> 3941 3942 * mpn/arm/lshiftc.asm: New file. 3943 3944 2012-06-01 Torbjorn Granlund <tege@gmplib.org> 3945 3946 * mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more 3947 places. 3948 3949 * mpz/get_str.c: Don't strip leading zeros since current mpn_get_str 3950 won't generate any. Misc streamlining. 3951 * mpz/out_str.c: Analogous changes. 3952 3953 * tests/mpz/io.c: Use a wider range of bases. 3954 3955 * tests/mpz/t-cong.c (check_random): Rewrite random generation for 3956 exponentially distributed operand sizes. 3957 3958 2012-06-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 3959 3960 * mpq: Use more macros and MPZ_REALLOC return value when possible. 3961 3962 * gmp-impl.h (LIMBS): Removed, was an alias for PTR. 3963 * mpz/combit.c: Use PTR and CNST_LIMB. 3964 3965 * tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr. 3966 * mpn/generic/bdiv_qr.c: Add an ASSERT. 3967 3968 * mpn/generic/remove.c: Add a zero limb to use bdiv_qr... 3969 3970 2012-05-31 Marc Glisse <marc.glisse@inria.fr> 3971 3972 * gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1). 3973 * tests/cxx/t-constr.cc: Test it. 3974 3975 2012-05-30 Torbjorn Granlund <tege@gmplib.org> 3976 3977 * mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY. 3978 * mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT. 3979 3980 2012-05-29 Marco Bodrato <bodrato@mail.dm.unipi.it> 3981 3982 * mpz/remove.c: Optimise branches. 3983 3984 * mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path. 3985 * mpn/generic/toom8h_mul.c: Likewise. 3986 3987 2012-05-29 Torbjorn Granlund <tege@gmplib.org> 3988 3989 * mpn/arm/v5/mod_1_1.asm: New file. 3990 3991 2012-05-28 Niels Möller <nisse@lysator.liu.se> 3992 3993 * mpn/generic/gcdext.c (compute_v): Simplified carry handling a 3994 bit, reduced stated scratch need from 2n+1 to 2n. Also comment and 3995 ASSERT improvements. 3996 3997 2012-05-27 Torbjorn Granlund <tege@gmplib.org> 3998 3999 * config.guess: Add new x86 CPUs. 4000 * mpn/x86/fat/fat.c: Likewise. 4001 * mpn/x86_64/fat/fat.c: Likewise. 4002 4003 2012-05-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 4004 4005 * mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off. 4006 4007 * mpn/generic/toom8h_mul.c: mark UNLIKELY branches. 4008 4009 2012-05-26 Torbjorn Granlund <tege@gmplib.org> 4010 4011 * mpz: Use MPZ_REALLOC return value when possible. 4012 4013 2012-05-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 4014 4015 * mini-gmp/tests/t-div.c: Test all _qr, _q, _r variants. 4016 * mini-gmp/tests/t-lcm.c: Test the _ui variant. 4017 4018 * mini-gmp/mini-gmp.c (mpz_mod, mpz_mod_ui): New functions. 4019 * mini-gmp/mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes. 4020 4021 * mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0). 4022 4023 2012-05-24 Torbjorn Granlund <tege@gmplib.org> 4024 4025 * mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument. 4026 4027 2012-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 4028 4029 * mpz/remove.c: Support negative divisor. 4030 * tests/mpz/t-remove.c: Test negative divisor. 4031 4032 2012-05-23 Torbjorn Granlund <tege@gmplib.org> 4033 4034 * tests/mpz/reuse.c: Major rewrite. 4035 4036 2012-05-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 4037 4038 * mpz/sqrt.c: Further simplify. 4039 * mpz/sqrtrem.c: Likewise. 4040 4041 * Mark failing branches with UNLIKELY. Many files affected. 4042 4043 2012-05-22 Torbjorn Granlund <tege@gmplib.org> 4044 4045 * mpz/sqrt.c: Allocate less for overlapping operands, simplify. 4046 * mpz/sqrtrem.c: Likewise. 4047 4048 2012-05-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 4049 4050 * mpn/generic/toom8_sqr.c: Reduce branches for recursion. 4051 * mpn/generic/toom8h_mul.c: Likewise. 4052 4053 * tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined. 4054 4055 2012-05-20 Torbjorn Granlund <tege@gmplib.org> 4056 4057 * tests/mpz/t-gcd.c: Rewrite. 4058 4059 2012-05-19 Torbjorn Granlund <tege@gmplib.org> 4060 4061 * tests/mpz/t-gcd.c: Generate larger operands for better gcd code 4062 coverage; distribute size exponentially. 4063 4064 2012-05-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 4065 4066 * mpf/pow_ui.c: Simplify. 4067 * tests/mpf/reuse.c (dsi_func): Exercise pow_ui. 4068 4069 * tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT. 4070 * tests/mpf/t-set.c (check_random): New check, both set and init_set. 4071 4072 * tests/cxx/t-ops.cc (check_mpq): Check squaring. 4073 * tests/mpq/t-equal.c (check_various): Check different den-size. 4074 4075 * mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY. 4076 * mpz/cmpabs_d.c: Remove an unused branch. 4077 4078 * tests/mpz/t-get_d_2exp.c (check_zero): New check. 4079 * tests/mpz/t-inp_str.c: A few more cases. 4080 * tests/mpz/t-cmp_d.c: More bases and symbols, a few cases. 4081 4082 * mpz/rootrem.c: Correctly handle odd roots of negatives. 4083 * tests/mpz/t-root.c: Test it. 4084 4085 2012-05-16 Torbjorn Granlund <tege@gmplib.org> 4086 4087 * tests/mpf/t-eq.c (check_random): New function, meat from old main(). 4088 (check_data): New function. 4089 4090 2012-05-13 Torbjorn Granlund <tege@gmplib.org> 4091 4092 * mpn/arm/rsh1aors_n.asm: New file. 4093 * mpn/arm/v5/mod_1_2.asm: New file. 4094 4095 2012-05-11 Marc Glisse <marc.glisse@inria.fr> 4096 4097 * gmpxx.h (explicit operator bool): New functions. 4098 * tests/cxx/t-cxx11.cc: Test the above. 4099 4100 2012-05-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 4101 4102 * gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized 4103 * mpn/x86/fat/fat.c: Use separated _initialized variable. 4104 * mpn/x86_64/fat/fat.c: Likewise. 4105 * tests/mpn/t-fat.c: Likewise. 4106 4107 * mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized. 4108 * mpn/generic/toom22_mul.c: Likewise. 4109 * mpn/generic/toom3_sqr.c: Likewise. 4110 * mpn/generic/toom33_mul.c: Likewise. 4111 4112 2012-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 4113 4114 * mini-gmp/mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem. 4115 4116 * mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte. 4117 4118 * mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts. 4119 (MAXFACS): Redefine, using the shared (safer) log_n_max. 4120 4121 2012-05-08 Torbjorn Granlund <tege@gmplib.org> 4122 4123 * mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for 4124 coherency with ASSERT in mpn/generic/redc_n.c. 4125 4126 2012-05-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 4127 4128 * mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC. 4129 * tests/mpn/toom-sqr-shared.h: Don't test if no range. 4130 4131 * mpz/oddfac_1.c: Add ASSERTs to warn about small threshold. 4132 * tune/tuneup.c: Update minimal threshold for FAC_DSC. 4133 4134 2012-05-06 Torbjorn Granlund <tege@gmplib.org> 4135 4136 * mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code. 4137 4138 2012-05-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 4139 4140 * mpn/generic/invert.c: Mark a branch UNLIKELY. 4141 * tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum. 4142 * gmp-impl.h (FAC_???_THRESHOLD): Update default values. 4143 (ABOVE_THRESHOLD): New definition with __builtin_constant_p. 4144 4145 * mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY. 4146 * mpn/generic/toom33_mul.c: Likewise. 4147 * mpn/generic/toom2_sqr.c: Likewise. 4148 * mpn/generic/toom3_sqr.c: Likewise. 4149 4150 2012-05-04 Torbjorn Granlund <tege@gmplib.org> 4151 4152 * tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds. 4153 4154 2012-05-03 Torbjorn Granlund <tege@gmplib.org> 4155 4156 * mpn/generic/powm_sec.c: Use redc_2. 4157 (INNERLOOP): Use this mechanism, like plain powm.c. 4158 (WANT_CACHE_SECURITY): Remove, feature now unconditional. 4159 4160 2012-05-02 Torbjorn Granlund <tege@gmplib.org> 4161 4162 * mpz/bin_uiui.c: Make use of CNST_LIMB. 4163 4164 2012-05-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 4165 4166 * mpz/mfac_uiui.c: Support limb != ui. 4167 4168 2012-05-02 Torbjorn Granlund <tege@gmplib.org> 4169 4170 * mpn/arm/logops_n.asm: Work around register clobbering issue. 4171 4172 * mpn/arm/aorscnd_n.asm: New file. 4173 4174 2012-05-01 Torbjorn Granlund <tege@gmplib.org> 4175 4176 * configure.in: Put arm dirs in path in proper prio order. 4177 4178 * mpn/arm/logops_n.asm: New file. 4179 4180 * mpz/2fac_ui.c: Fix assumed typo. 4181 4182 * mpn/arm/v6/gmp-mparam.h: New file. 4183 4184 * mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD. 4185 * mpn/arm/v6t2/gcd_1.asm: Likewise. 4186 4187 2012-04-30 Torbjorn Granlund <tege@gmplib.org> 4188 4189 * mpn/arm/v6/sqr_basecase.asm: New file. 4190 4191 2012-04-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 4192 4193 * mpn/generic/comb_tables.c: New file. 4194 * configure.in: Add it. 4195 * gen-fac.c: Define table limits. 4196 * gmp-impl.h: Declare tables. 4197 (log_n_max): New static function. 4198 * mpz/2fac_ui.c: Use shared tables. 4199 * mpz/bin_uiui.c: Likewise. 4200 * mpz/oddfac_1.c: Likewise. 4201 * mpz/primorial_ui.c: Likewise. 4202 4203 * mpz/mfac_uiui.c: New file. 4204 * Makefile.am: Compile it. 4205 * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c 4206 * gmp-h.in (mpz_mfac_uiui): Declare. 4207 4208 * tests/mpz/t-mfac_uiui.c: New file. 4209 * tests/mpz/Makefile.am: Run it. 4210 4211 * doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions. 4212 4213 * tests/mpz/t-lcm.c: Test zero too. 4214 4215 * mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed). 4216 4217 2012-04-29 Torbjorn Granlund <tege@gmplib.org> 4218 4219 * mpn/arm/aors_n.asm: Tune for more stable performance. 4220 4221 * mpn/arm/aorslsh1_n.asm: New file. 4222 4223 * mpn/arm/mod_34lsub1.asm: New file. 4224 4225 * mpn/arm/v6t2/divrem_1.asm: New file. 4226 4227 2012-04-28 Torbjorn Granlund <tege@gmplib.org> 4228 4229 * mpn/thumb/add_n.asm: New file. 4230 * mpn/thumb/sub_n.asm: New file. 4231 * mpn/thumb/add_n.s: Remove broken code. 4232 * mpn/thumb/sub_n.s: Likewise. 4233 4234 * mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size. 4235 * mpn/arm/v6/mul_1.asm: Likewise. 4236 4237 2012-04-27 Torbjorn Granlund <tege@gmplib.org> 4238 4239 * configure.in: Search arm/v6t2 for arm7. 4240 4241 * mpn/arm/v5/gcd_1.asm: New file. 4242 * mpn/arm/v6t2/gcd_1.asm: New file. 4243 4244 * mpn/arm/mode1o.asm: New file. 4245 * mpn/arm/v6t2/mode1o.asm: New file. 4246 4247 * mpn/arm/arm-defs.m4 (LEA): New define. 4248 * mpn/arm/invert_limb.asm: Use LEA. 4249 4250 2012-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 4251 4252 * mpz/bin_uiui.c (bc_bin_uiui): Nail support. 4253 * tests/cxx/t-ops2.cc: Test 0/3. 4254 * oddfac_1.c: assume n > 26. 4255 * tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes. 4256 4257 2012-04-24 Torbjorn Granlund <tege@gmplib.org> 4258 4259 * mpn/arm/v6/addmul_2.asm: New file. 4260 * mpn/arm/v6/mul_2.asm: New file. 4261 4262 2012-04-23 Torbjorn Granlund <tege@gmplib.org> 4263 4264 * mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase. 4265 4266 2012-04-22 Torbjorn Granlund <tege@gmplib.org> 4267 4268 * configure.in: Recognise ARM sub-architectures. 4269 4270 * configfsf.guess: Update to current FSF version. 4271 * configfsf.sub: Likewise. 4272 4273 * mpn/arm/bdiv_dbm1c.asm: New file. 4274 4275 * mpn/arm/v6/mul_1.asm: New file. 4276 * mpn/arm/v6/addmul_1.asm: New file. 4277 4278 2012-04-22 Marco Bodrato <bodrato@mail.dm.unipi.it> 4279 4280 * gen-fac.c: Renamed, was gen-fac_ui.c . 4281 * Makefile.am: Renamed gen-fac.c and fac_table.h . 4282 * gmp-impl.h: #include "fac_table.h". 4283 * mpz/oddfac_1.c: Use generated constant. 4284 * mpz/bin_ui.c: Small optimisations. 4285 4286 * tune/common.c (speed_mpz_bin_ui): New function. 4287 * tune/speed.h: Declare it. 4288 * tune/speed.c: Use it. 4289 4290 2012-04-21 Torbjorn Granlund <tege@gmplib.org> 4291 4292 * mpn/arm/mul_1.asm: Cleanup. 4293 * mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache. 4294 * mpn/arm/copyd.asm: Likewise. 4295 4296 * mpn/arm/add_n.asm: Delete. 4297 * mpn/arm/sub_n.asm: Delete. 4298 * mpn/arm/aors_n.asm: New file, made from old files. 4299 4300 * mpn/arm/addmul_1.asm: Delete. 4301 * mpn/arm/submul_1.asm: Delete. 4302 * mpn/arm/aorsmul_1.asm: New file, made from old files. 4303 4304 * mpn/arm/com.asm: New file. 4305 * mpn/arm/lshift.asm: New file. 4306 * mpn/arm/rshift.asm: New file. 4307 4308 2012-04-20 Torbjorn Granlund <tege@gmplib.org> 4309 4310 * tests/mpq/io.c: New file. 4311 * tests/mpq/Makefile.am: Run it. 4312 4313 * mpz/clrbit.c: Simplify along the lines of setbit.c. 4314 4315 2012-04-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 4316 4317 * mpz/setbit.c: Simplify. 4318 4319 * gmp-impl.h (LOG2C): Define. 4320 * mpz/fac_ui.c (LOG2C): Remove. 4321 * mpz/2fac_ui.c (LOG2C): Remove. 4322 * mpz/oddfac_1.c (LOG2C): Remove. 4323 * mpn/generic/binvert.c (LOG2C): Remove. 4324 * mpn/generic/invertappr.c (LOG2C): Remove. 4325 4326 * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations, 4327 and assume that n and k are not small. 4328 4329 2012-04-19 Torbjorn Granlund <tege@gmplib.org> 4330 4331 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove. 4332 4333 * tests/mpz/t-remove.c: Clear out mpz variables. 4334 4335 * tests/mpz/t-cong.c (check_random): Use much larger numbers. 4336 (check_data): Check congruences mod 0. 4337 4338 * tests/mpz/t-divis.c: Test divisibility by zero. 4339 4340 * tests/mpz/reuse.c: Test mpz_mod. 4341 4342 * mpz/setbit.c: Remove dead code. Use CNST_LIMB. 4343 * mpz/clrbit.c: Use CNST_LIMB. 4344 4345 2012-04-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 4346 4347 * primesieve.c: New file, with functions from mpz/oddfac_1.c . 4348 * mpz/oddfac_1.c (bitwise_primesieve): Re-moved. 4349 * Makefile.am (libgmp_la_SOURCES): Add primesieve.c . 4350 * gmp-impl.h (gmp_primesieve): Declare. 4351 4352 * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based 4353 implementation. 4354 * tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck. 4355 4356 * mpz/primorial_ui.c: New file. 4357 * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c 4358 * Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo 4359 * gmp-h.in (mpz_primorial_ui): Declare. 4360 * tests/mpz/t-primorial_ui.c: New test for the new function. 4361 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui. 4362 * doc/gmp.texi: Short documentation for the new function. 4363 4364 2012-04-17 Torbjorn Granlund <tege@gmplib.org> 4365 4366 * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues. 4367 * mpn/x86_64/coreisbr/mul_1.asm: Likewise. 4368 4369 * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register 4370 partitioning rules. 4371 4372 * mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround 4373 to overlap issue. 4374 4375 2012-04-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 4376 4377 * mpz/bin_uiui.c: Support small limbs (fallback on bin_ui). 4378 4379 * tests/mpn/toom-sqr-shared.h: Use a restricted range. 4380 * tests/mpn/t-toom2-sqr.c: Specify correct range. 4381 * tests/mpn/t-toom3-sqr.c: Likewise. 4382 * tests/mpn/t-toom4-sqr.c: Likewise. 4383 * tests/mpn/t-toom6-sqr.c: Likewise. 4384 * tests/mpn/t-toom8-sqr.c: Likewise, but extended. 4385 * tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests. 4386 4387 * mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np. 4388 4389 2012-04-17 Torbjorn Granlund <tege@gmplib.org> 4390 4391 * mpn/x86_64/copyd.asm: Rewrite. 4392 * mpn/x86_64/copyi.asm: Rewrite. 4393 4394 2012-04-16 Torbjorn Granlund <tege@gmplib.org> 4395 4396 * mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences. 4397 * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise. 4398 * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise. 4399 4400 * mpn/x86_64/x86_64-defs.m4 (palignr): New macro. 4401 (x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx 4402 counterparts. 4403 (x86_lookup): Copy from x86/x86-defs.m4. 4404 * mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro. 4405 * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise. 4406 4407 2012-04-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 4408 4409 * tests/mpz/t-bin.c: Add more tests on small values. 4410 * mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas. 4411 4412 2012-04-15 Torbjorn Granlund <tege@gmplib.org> 4413 4414 * mpn/x86_64/fastsse/copyd-palignr.asm: New file. 4415 * mpn/x86_64/fastsse/copyi-palignr.asm: New file. 4416 * mpn/x86_64/core2/copyd.asm: New file. 4417 * mpn/x86_64/core2/copyi.asm: New file. 4418 * mpn/x86_64/nano/copyd.asm: New file. 4419 * mpn/x86_64/nano/copyi.asm: New file. 4420 * mpn/x86_64/atom/copyd.asm: New file. 4421 * mpn/x86_64/atom/copyi.asm: New file. 4422 4423 2012-04-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 4424 4425 * mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's). 4426 * gen-fac_ui.c: Generate new constants for bin_uiui. 4427 4428 * mini-gmp/mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions. 4429 * mini-gmp/mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial 4430 implementation. 4431 4432 * tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value. 4433 4434 * mpn/generic/invert.c: Remove support for scratch == NULL. 4435 * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch 4436 space for mpn_invert. 4437 4438 * mpz/mul_i.h: Small clean-up. 4439 4440 * tests/mpn/toom-sqr-shared.h: New file. 4441 * tests/mpn/t-toom2-sqr.c: New file. 4442 * tests/mpn/t-toom3-sqr.c: New file. 4443 * tests/mpn/t-toom4-sqr.c: New file. 4444 * tests/mpn/t-toom6-sqr.c: New file. 4445 * tests/mpn/t-toom8-sqr.c: New file. 4446 * tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h . 4447 4448 * mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible. 4449 4450 2012-04-12 Torbjorn Granlund <tege@gmplib.org> 4451 4452 * mpn/x86_64/fastsse/lshift-movdqu2.asm: New file. 4453 * mpn/x86_64/fastsse/rshift-movdqu2.asm: New file. 4454 * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file. 4455 * mpn/x86_64/coreisbr/lshift.asm: New file. 4456 * mpn/x86_64/coreisbr/rshift.asm: New file. 4457 * mpn/x86_64/coreisbr/lshiftc.asm: New file. 4458 * mpn/x86_64/k10/lshift.asm: New file. 4459 * mpn/x86_64/k10/rshift.asm: New file. 4460 * mpn/x86_64/k10/lshiftc.asm: New file. 4461 4462 * mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form. 4463 4464 2012-04-11 Niels Möller <nisse@lysator.liu.se> 4465 4466 * Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to 4467 locate gmp.h. 4468 4469 2012-04-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 4470 4471 * mini-gmp/mini-gmp.h (mpz_root, mpz_rootrem): define (correctly). 4472 * mini-gmp/mini-gmp.c (mpz_rootrem): Extended code from _root. 4473 (mpz_root): Use mpz_rootrem. 4474 (mpz_mul_ui): Correctly handle negative operands. 4475 4476 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): add t-root. 4477 * mini-gmp/tests/t-root.c: New file. 4478 * mini-gmp/tests/t-reuse.c: Enable root{,rem} tests. 4479 4480 2012-04-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 4481 4482 * gen-fac_ui.c (mpz_root): Remove. 4483 * mini-gmp/mini-gmp.c (mpz_root): New, support negative operands. 4484 * mini-gmp/mini-gmp.h (mpz_root): define. 4485 (mpz_out_str): Test also __STDIO_LOADED (for VMS). 4486 * mpz/2fac_ui.c: Cosmetic change. 4487 4488 2012-04-07 Torbjorn Granlund <tege@gmplib.org> 4489 4490 * mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table. 4491 4492 2012-04-05 Torbjorn Granlund <tege@gmplib.org> 4493 4494 * mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32. 4495 * mpn/powerpc64/p7/hamdist.asm: Likewise. 4496 4497 2012-04-04 Torbjorn Granlund <tege@gmplib.org> 4498 4499 * mpn/powerpc64/p7/popcount.asm: New file. 4500 * mpn/powerpc64/p7/hamdist.asm: New file. 4501 4502 * longlong.h (ARM count_leading_zeros): Enable for more arch versions. 4503 4504 * mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area. 4505 * mpn/x86_64/core2/gcd_1.asm: Likewise. 4506 4507 2012-04-03 Torbjorn Granlund <tege@gmplib.org> 4508 4509 * mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64. 4510 4511 2012-04-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 4512 4513 * mpz/oddfac_1.c: Initialize size for ASSERT. 4514 4515 2012-04-02 Torbjorn Granlund <tege@gmplib.org> 4516 4517 * gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS). 4518 4519 * gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs. 4520 4521 2012-03-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 4522 4523 * mpn/x86_64/sqr_basecase.asm: Speed-up for small cases. 4524 4525 2012-03-29 Torbjorn Granlund <tege@gmplib.org> 4526 4527 * mpn/sparc64/gcd_1.asm: New file. 4528 4529 2012-03-27 Torbjorn Granlund <tege@gmplib.org> 4530 4531 * config.guess: Fix typo in coreisbr recognition. 4532 4533 2012-03-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 4534 4535 * mpn/x86_64/gcd_1.asm: Reduce latency. 4536 * mpn/x86_64/mul_basecase.asm: Save one jump. 4537 4538 * mpz/iset_ui.c: Don't realloc. 4539 4540 2012-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 4541 4542 * mp_clz_tab.c: Add __clz_tab[128]. 4543 * longlong.h (count_trailing_zeros): Use it in pure C variant. 4544 4545 2012-03-20 Torbjorn Granlund <tege@gmplib.org> 4546 4547 * configure.in (x86 fat_path): Add many missing directories. 4548 * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite. 4549 (fake_cpuid_table): Add many more CPUs. 4550 4551 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup. 4552 4553 2012-03-19 Torbjorn Granlund <tege@gmplib.org> 4554 4555 * mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros. 4556 * mpn/x86/darwin.m4: Likewise. 4557 * mpn/x86/k7/gcd_1.asm: Use new macros to support PIC. 4558 * mpn/x86/p6/gcd_1.asm: Likewise. 4559 4560 2012-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 4561 4562 * gen-fac_ui.c: Generate more constants (possible mini-mpz_root). 4563 * mpz/oddfac_1.c: Improve ASSERTs. 4564 (log_n_max): Use precomputed table. 4565 4566 * longlong.h (_PROTO): Remove. 4567 4568 2012-03-18 Torbjorn Granlund <tege@gmplib.org> 4569 4570 * longlong.h (count_trailing_zeros): Write better pure C default 4571 variant. 4572 4573 * mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference. 4574 4575 * mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD 4576 defined for fat binaries. 4577 4578 2012-03-17 Torbjorn Granlund <tege@gmplib.org> 4579 4580 * mpn/x86/k7/gcd_1.asm: Rewrite. 4581 * mpn/x86/p6/gcd_1.asm: New file. 4582 4583 * mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls. 4584 * mpn/x86_64/gcd_1.asm: Rewrite. 4585 4586 2012-03-15 Torbjorn Granlund <tege@gmplib.org> 4587 4588 * mpn/generic/gcd_1.c: Parameterise zerotab code. 4589 4590 * mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file. 4591 4592 * mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop 4593 code. 4594 4595 2012-03-13 Torbjorn Granlund <tege@gmplib.org> 4596 4597 * mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds. 4598 4599 * mpn/x86_64/core2/gcd_1.asm: Shorten critical path. 4600 4601 2012-03-12 Torbjorn Granlund <tege@gmplib.org> 4602 4603 * mpn/x86_64/core2/gcd_1.asm: New file. 4604 * mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file. 4605 * mpn/x86_64/bd1/gcd_1.asm: Likewise. 4606 4607 * mpn/x86_64/bobcat/sqr_basecase.asm: New file. 4608 * mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning. 4609 4610 2012-03-10 Torbjorn Granlund <tege@gmplib.org> 4611 4612 * configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2, 4613 mullo_basecase, redc_1, redc_2, sublsh1_n. 4614 4615 * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions. 4616 * gmp-impl.h: Adjust corresponding declarations. 4617 4618 * mpn/generic/redc_2.c (mpn_addmul_2): Make static. 4619 4620 * mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to 4621 reduce branch offsets. Pass plain 0,1,3... in %al since we'd else run 4622 out of 8-bit range. 4623 4624 * mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value. 4625 * mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index 4626 value. 4627 4628 * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions. 4629 * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise. 4630 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise. 4631 * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise. 4632 4633 * mpn/x86_64/fat/redc_2.c: New file. 4634 * mpn/x86/fat/mullo_basecase.c: New file. 4635 * mpn/x86/fat/redc_1.c: New file. 4636 * mpn/x86/fat/redc_2.c: New file. 4637 4638 * tests/mpn/t-fat.c: Test mullo_basecase. 4639 4640 2012-03-08 Torbjorn Granlund <tege@gmplib.org> 4641 4642 * mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64. 4643 4644 2012-02-29 Marc Glisse <marc.glisse@inria.fr> 4645 4646 * gmpxx.h: Ignore partial C++11 support in g++-4.6. 4647 * tests/cxx/t-cxx11.cc: Likewise. 4648 4649 * gmpxx.h (operator""): New functions. 4650 * tests/cxx/t-cxx11.cc: Test the above. 4651 * doc/gmp.texi: Document the above. 4652 4653 2012-03-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 4654 4655 * acinclude.m4 (GMP_H_ANSI): Remove. 4656 * configure.in: Don't use GMP_H_ANSI. 4657 * gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove. 4658 4659 2012-03-08 Torbjorn Granlund <tege@gmplib.org> 4660 4661 * mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer". 4662 (__gmpn_cpuvec_init): Overhaul to match configure.in. 4663 4664 * configure.in: Adjust bulldozer path_64. 4665 4666 2012-03-07 Torbjorn Granlund <tege@gmplib.org> 4667 4668 * configure.in (x86_64 fat_path): List recently added AMD directories. 4669 4670 * mpn/x86_64/bobcat/copyi.asm: New file. 4671 * mpn/x86_64/bobcat/copyd.asm: New file. 4672 4673 * config.guess: Handle AMD 11h correctly. 4674 4675 * tune/tuneup.c (tune_redc): Better handle situation where redc_2 is 4676 never faster. 4677 4678 2012-03-06 Torbjorn Granlund <tege@gmplib.org> 4679 4680 * mpn/x86_64/bobcat/mul_basecase.asm: New file. 4681 4682 2012-03-04 Torbjorn Granlund <tege@gmplib.org> 4683 4684 * mpn/x86_64/bobcat/mul_1.asm: New file. 4685 * mpn/x86_64/bobcat/aorsmul_1.asm: New file. 4686 4687 2012-03-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 4688 4689 * mpz/invert.c: Remove mod 0 branch. 4690 * tests/mpz/t-invert.c: Avoid testing mod 0. 4691 * doc/gmp.texi (mpz_invert): Specify mod 0 is not handled. 4692 4693 * gmp-h.in (__gmp_signed, __gmp_const): Remove. 4694 (__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove. 4695 * gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST. 4696 * demos/expr/: Strip __gmp_const usage from all files. 4697 4698 * tests/mpz/t-powm.c (allsizes_seen): Require unsigned*. 4699 4700 2012-03-03 Torbjorn Granlund <tege@gmplib.org> 4701 4702 * mpn/x86_64/k8/gmp-mparam.h: New file. 4703 * mpn/x86_64/k10/gmp-mparam.h: New file. 4704 4705 * mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables. 4706 * mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise. 4707 * mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise. 4708 * mpn/generic/mu_bdiv_qr.c: Likewise. 4709 * mpz/jacobi.c: Likewise. 4710 * mpz/mod.c: Likewise. 4711 4712 * mpn/generic/toom42_mul.c: Remove unread variable. 4713 * mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise. 4714 * mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise. 4715 * tests/refmpn.c (refmpn_mul): Likewise. 4716 * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation 4717 into ASSERT, remove variable. 4718 4719 * gmp-h.in (__GMP_PROTO): Remove. 4720 * Strip __GMP_PROTO usage from all files. 4721 * Strip prototype parameter names from all files. 4722 4723 2012-03-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 4724 4725 * doc/gmp.texi (mpz_invert): Correctly document result range. 4726 * tests/mpz/t-invert.c: Small range correction. 4727 4728 2012-03-01 Torbjorn Granlund <tege@gmplib.org> 4729 4730 * mpn/x86_64/mullo_basecase.asm: New file. 4731 4732 2012-02-29 Marc Glisse <marc.glisse@inria.fr> 4733 4734 * gmpxx.h (std::numeric_limits): New partial specialization. 4735 4736 2012-02-29 Niels Möller <nisse@lysator.liu.se> 4737 4738 * mini-gmp/tests/t-reuse.c: New test case, based on 4739 tests/mpz/reuse.c. 4740 4741 * mini-gmp/mini-gmp.c (mpz_cdiv_r_ui): New function. 4742 (mpz_fdiv_r_ui): New function. 4743 (mpz_tdiv_r_ui): New function. 4744 (mpz_powm_ui): New function. 4745 (mpz_pow_ui): New function. 4746 (mpz_ui_pow_ui): Use mpz_pow_ui. 4747 (mpz_gcdext): Fixed input/output overlap, for the case of one 4748 input being zero. 4749 (mpz_sqrtrem): Fix for the case r NULL, U zero. 4750 4751 * Makefile.am (check-mini-gmp): Use $(MAKE). 4752 (clean-mini-gmp): New target. 4753 (clean-local, distclean-local): New automake targets. Depend on 4754 clean-mini-gmp. 4755 4756 2012-02-28 Niels Möller <nisse@lysator.liu.se> 4757 4758 * Makefile.am (check-mini-gmp): New target, for running the 4759 mini-gmp testsuite. 4760 4761 * mini-gmp/tests/Makefile (srcdir, MINI_GMP_DIR): New make 4762 variables. These can be overridden when using a separate build 4763 directory. 4764 (EXTRA_CFLAGS): Renamed, was OPTFLAGS. 4765 4766 * mini-gmp/mini-gmp.c (mpz_abs_add): Don't cache limb pointers 4767 over MPZ_REALLOC, since that breaks in-place operation. Bug 4768 spotted by Torbjörn. 4769 (mpz_and, mpz_ior, mpz_xor): Likewise. 4770 (mpz_cmp): Fixed comparison of negative numbers. 4771 4772 2012-02-27 Torbjorn Granlund <tege@gmplib.org> 4773 4774 * mpn/x86_64/fastsse/lshiftc.asm: New file. 4775 * mpn/x86_64/fastsse/com.asm: New file. 4776 4777 * mpn/x86_64/bd1/popcount.asm: New file. 4778 * mpn/x86_64/bd1/hamdist.asm: New file. 4779 4780 * mpn/x86_64/fastsse/copyi.asm: New file. 4781 * mpn/x86_64/fastsse/copyd.asm: New file. 4782 * mpn/x86_64/fastsse/lshift.asm: New file. 4783 4784 2012-02-26 Torbjorn Granlund <tege@gmplib.org> 4785 4786 * mpn/x86_64/coreisbr/addmul_2.asm: New file. 4787 4788 * tests/devel/try.c (param_init): Don't require addmul_N to handle 4789 overlap. 4790 4791 * mpn/x86_64/bd1/mul_1.asm: New file. 4792 * mpn/x86_64/bd1/aorsmul_1.asm: New file. 4793 4794 2012-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 4795 4796 * mpz/2fac_ui.c: New file: implements n!!. 4797 * Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui. 4798 * gmp-h.in: Declare mpz_2fac_ui. 4799 * tests/mpz/t-fac.c: Test mpz_2fac_ui. 4800 * doc/gmp.texi: Document mpz_2fac_ui. 4801 * mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c. 4802 4803 * mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2. 4804 4805 2012-02-26 Niels Möller <nisse@lysator.liu.se> 4806 4807 * mini-gmp: New subdirectory. For use by GMP bootstrap, and as a 4808 fallback for applications needing bignums but not high 4809 performance. 4810 4811 * bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the 4812 standard GMP functions, and then defines the few functions 4813 particular for the bootstrap. 4814 * dumbmp.c: Deleted file. A few functions moved to bootstrap.c. 4815 4816 * gen-bases.c: Include bootstrap.c, not dumbmp.c. 4817 * gen-fac_ui.c: Likewise. 4818 * gen-trialdivtab.c: Likewise. 4819 * gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather 4820 than ASSERT. Deleted casts of xmalloc return value. 4821 * gen-psqr.c: Likewise. 4822 (COLLAPSE_ELEMENT): Use memmove rather than mem_copyi. 4823 4824 * Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c. 4825 (EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp 4826 files. 4827 4828 2012-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 4829 4830 * mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P. 4831 * mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x). 4832 * mpz/aors_ui.h: Likewise. 4833 * mpz/com.c: Likewise. 4834 * mpz/neg.c: Likewise. 4835 4836 * mpz/invert.c: Reply "no-inverse" when modulus is zero. 4837 * tests/mpz/t-invert.c: Add more checks. 4838 * doc/gmp.texi (mpz_invert): Inverse can not be zero. 4839 4840 2012-02-24 Torbjorn Granlund <tege@gmplib.org> 4841 4842 * tests/mpn/logic.c: New file. 4843 * tests/mpn/Makefile.am (check_PROGRAMS): Add logic. 4844 4845 * tests/mpz/t-invert.c: New file. 4846 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert. 4847 4848 2012-02-24 Marc Glisse <marc.glisse@inria.fr> 4849 4850 * tests/mpq/t-cmp.c: Move NUM and DEN macros... 4851 * tests/mpq/t-cmp_ui.c: Likewise... 4852 * gmp-impl.h: ... to here. 4853 4854 * mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC. 4855 * mpq/aors.c: Likewise. 4856 * mpq/canonicalize.c: Likewise. 4857 * mpq/clear.c: Likewise. 4858 * mpq/cmp.c: Likewise. 4859 * mpq/cmp_si.c: Likewise. 4860 * mpq/cmp_ui.c: Likewise. 4861 * mpq/div.c: Likewise. 4862 * mpq/equal.c: Likewise. 4863 * mpq/get_d.c: Likewise. 4864 * mpq/get_den.c: Likewise. 4865 * mpq/get_num.c: Likewise. 4866 * mpq/get_str.c: Likewise. 4867 * mpq/init.c: Likewise. 4868 * mpq/inp_str.c: Likewise. 4869 * mpq/inv.c: Likewise. 4870 * mpq/md_2exp.c: Likewise. 4871 * mpq/mul.c: Likewise. 4872 * mpq/neg.c: Likewise. 4873 * mpq/set.c: Likewise. 4874 * mpq/set_d.c: Likewise. 4875 * mpq/set_den.c: Likewise. 4876 * mpq/set_f.c: Likewise. 4877 * mpq/set_num.c: Likewise. 4878 * mpq/set_si.c: Likewise. 4879 * mpq/set_str.c: Likewise. 4880 * mpq/set_ui.c: Likewise. 4881 * mpq/set_z.c: Likewise. 4882 * mpq/swap.c: Likewise. 4883 4884 * tests/mpq/t-inv.c: New test file. 4885 * tests/mpq/Makefile.am: Add the above. 4886 4887 * gmpxx.h (__gmp_set_expr): Use mpq_set_z. 4888 4889 * mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x). 4890 * mpq/set_d.c: Likewise. 4891 * mpq/set_f.c: Likewise. 4892 4893 2012-02-24 Niels Möller <nisse@lysator.liu.se> 4894 4895 * mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and 4896 mpn_submul_1c entry points. 4897 4898 2012-02-23 Marc Glisse <marc.glisse@inria.fr> 4899 4900 * mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC. 4901 * mpz/aors_ui.h: Likewise. 4902 * mpz/array_init.c: Likewise. 4903 * mpz/cdiv_q.c: Likewise. 4904 * mpz/cdiv_qr.c: Likewise. 4905 * mpz/cdiv_r.c: Likewise. 4906 * mpz/clear.c: Likewise. 4907 * mpz/clrbit.c: Likewise. 4908 * mpz/cmp_si.c: Likewise. 4909 * mpz/com.c: Likewise. 4910 * mpz/fdiv_q.c: Likewise. 4911 * mpz/fdiv_qr.c: Likewise. 4912 * mpz/fdiv_r.c: Likewise. 4913 * mpz/get_si.c: Likewise. 4914 * mpz/get_str.c: Likewise. 4915 * mpz/init.c: Likewise. 4916 * mpz/inp_str.c: Likewise. 4917 * mpz/iset.c: Likewise. 4918 * mpz/iset_d.c: Likewise. 4919 * mpz/iset_si.c: Likewise. 4920 * mpz/iset_str.c: Likewise. 4921 * mpz/iset_ui.c: Likewise. 4922 * mpz/mod.c: Likewise. 4923 * mpz/neg.c: Likewise. 4924 * mpz/out_str.c: Likewise. 4925 * mpz/random2.c: Likewise. 4926 * mpz/set_si.c: Likewise. 4927 * mpz/set_str.c: Likewise. 4928 * mpz/set_ui.c: Likewise. 4929 * mpz/setbit.c: Likewise. 4930 * mpz/sqrt.c: Likewise. 4931 * mpz/swap.c: Likewise. 4932 * mpz/tdiv_r_2exp.c: Likewise. 4933 4934 * tests/cxx/t-ops.cc: Test mpz_abs reallocation. 4935 4936 2012-02-23 Torbjorn Granlund <tege@gmplib.org> 4937 4938 * mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite. 4939 * mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here. 4940 4941 * mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit). 4942 4943 2012-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 4944 4945 * mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial. 4946 4947 * mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements. 4948 4949 * mpz/and.c: Use mpn_ logic everywhere. Reduce branches. 4950 * mpz/ior.c: Likewise. 4951 * mpz/xor.c: Likewise. 4952 4953 2012-02-20 Torbjorn Granlund <tege@gmplib.org> 4954 4955 * mpn/x86_64/coreisbr/mul_1.asm: New file. 4956 4957 * mpn/x86_64/coreisbr/aorsmul_1.asm: New file. 4958 4959 * mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many 4960 assemblers don't support it. 4961 4962 2012-02-19 Torbjorn Granlund <tege@gmplib.org> 4963 4964 * mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry. 4965 Reintroduce previously removed RP argument. 4966 * mpn/x86_64/redc_1.asm: Likewise. 4967 4968 * mpn/generic/redc_2.c: Remove mpn_sub_n call, return carry from 4969 mpn_add_n call. 4970 4971 * gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t. 4972 4973 * tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument. 4974 4975 * tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface. 4976 4977 * mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1. 4978 * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise. 4979 * mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2. 4980 4981 2012-02-18 Marc Glisse <marc.glisse@inria.fr> 4982 4983 * gmpxx.h (std::common_type): New partial specialization in C++11. 4984 * tests/cxx/t-cxx11.cc: Test it. 4985 4986 * gmpxx.h: Don't declare long double functions that are never defined. 4987 4988 * gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z 4989 becomes tmp=z*z, q=q*q, q+=tmp. 4990 * tests/cxx/t-binary.cc: More variable reuse tests. 4991 4992 2012-02-17 Marc Glisse <marc.glisse@inria.fr> 4993 4994 * gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for 4995 the benefit of applications using gcc -Wundef. 4996 (__GMP_WITHIN_GMPXX): Likewise. 4997 4998 2012-02-16 Marc Glisse <marc.glisse@inria.fr> 4999 5000 * gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d 5001 becomes tmp=c*d, e=a*b, e-=tmp. 5002 * tests/cxx/t-binary.cc: More variable reuse tests. 5003 5004 2012-02-15 Niels Möller <nisse@lysator.liu.se> 5005 5006 * tune/tuneup.c (mul_toom43_to_toom54_threshold): New global. 5007 (tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD. 5008 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro. 5009 (SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro. 5010 Prototypes for corresponding functions. 5011 * tune/common.c (speed_mpn_toom43_for_toom54_mul): New function. 5012 (speed_mpn_toom54_for_toom43_mul): New function. 5013 5014 * gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant. 5015 (MPN_TOOM53_MUL_MINSIZE): Likewise. 5016 (MPN_TOOM54_MUL_MINSIZE): New constant. 5017 (mpn_toom54_mul): Added prototype. 5018 (MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and 5019 tuning setup. 5020 5021 2012-02-14 Niels Möller <nisse@lysator.liu.se> 5022 5023 * mpn/generic/toom54_mul.c: New file, originally contributed by 5024 Marco. 5025 * gmp-impl.h (mpn_toom54_mul_itch): New function. 5026 * configure.in (gmp_mpn_functions): Added toom54_mul. 5027 * tests/mpn/t-toom54.c: New file. 5028 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54. 5029 5030 2012-02-13 Niels Möller <nisse@lysator.liu.se> 5031 5032 * configure.in: Display summary of options. 5033 5034 2012-02-11 Torbjorn Granlund <tege@gmplib.org> 5035 5036 * tests/tests.h (TESTS_REPS): Print any non-standard repetitions. 5037 5038 2012-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 5039 5040 * doc/gmp.texi (Factorial): Shortly describe current algorithm. 5041 (Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly. 5042 * gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY. 5043 5044 2012-02-10 Niels Möller <nisse@lysator.liu.se> 5045 5046 * tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter 5047 bound for cofactors. 5048 5049 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected 5050 handling of unlikely (maybe impossible?) case u1n < un. Related to 5051 the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo. 5052 5053 2012-02-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 5054 5055 * gmp-impl.h (mpn_toom3*_itch): Support any recursion depth. 5056 * tests/refmpn.c (refmpn_mul): Restore tight allocations. 5057 5058 * mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!! 5059 * gmp-impl.h (mpz_oddfac_1): Update signature. 5060 * mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1. 5061 5062 2012-02-09 Marc Glisse <marc.glisse@inria.fr> 5063 5064 * gmp-impl.h (ABS_CAST): New macro. 5065 * mpf/cmp_si.c: Use ABS_CAST. 5066 * mpf/get_si.c: Use ABS_CAST. 5067 * mpf/iset_si.c: Use ABS_CAST. 5068 * mpf/set_si.c: Use ABS_CAST. 5069 * mpq/set_si.c: Use ABS_CAST. 5070 * mpz/cmp_si.c: Use ABS_CAST. 5071 * mpz/get_si.c: Use ABS_CAST. 5072 * mpz/iset_si.c: Use ABS_CAST. 5073 * mpz/mul_i.h: Use ABS_CAST. 5074 * mpz/set_si.c: Use ABS_CAST. 5075 5076 2012-02-08 Torbjorn Granlund <tege@gmplib.org> 5077 5078 * mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb 5079 code. 5080 5081 2012-02-08 Niels Möller <nisse@lysator.liu.se> 5082 5083 * doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor 5084 canonicalization. 5085 5086 2012-02-07 Niels Möller <nisse@lysator.liu.se> 5087 5088 * mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the 5089 special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo. 5090 5091 2012-02-06 Niels Möller <nisse@lysator.liu.se> 5092 5093 * mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry 5094 handling bug. Fix copied from gmp-5.0 repo, where the function is 5095 found in hgcd.c. 5096 5097 * tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands, 5098 not mpz_urandomb. Change copied from gmp-5.0 repo. 5099 * tests/mpn/t-hgcd.c (main): Likewise. 5100 5101 2012-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 5102 5103 * tests/refmpn.c (refmpn_mul): More conservative allocations. 5104 5105 2012-02-03 Torbjorn Granlund <tege@gmplib.org> 5106 5107 * mpn/x86_64/bd1/gmp-mparam.h: New file. 5108 5109 * longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv. 5110 5111 * mpn/generic/udiv_w_sdiv.c: Use c89 function header. 5112 5113 2012-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 5114 5115 * mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions. 5116 * mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation. 5117 * gmp-impl.h: mpz_oddfac_1 declaration. 5118 * Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo . 5119 * mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c . 5120 * tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c . 5121 5122 2012-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 5123 5124 * mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug. 5125 5126 2012-02-02 Torbjorn Granlund <tege@gmplib.org> 5127 5128 * mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT. 5129 * mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n. 5130 5131 * tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in 5132 tested function. 5133 5134 2012-02-01 Torbjorn Granlund <tege@gmplib.org> 5135 5136 * tests/mpn/t-mul.c: New file. 5137 * tests/mpn/Makefile.am: Compile it. 5138 5139 2012-02-01 Marc Glisse <marc.glisse@inria.fr> 5140 5141 * gmpxx.h: Remove check for g++ older than 2.91. 5142 5143 2012-02-01 Niels Möller <nisse@lysator.liu.se> 5144 5145 * mpn/generic/mul.c: Added diagram on where toom functions can be 5146 called. 5147 5148 2012-02-01 Marc Glisse <marc.glisse@inria.fr> 5149 5150 * gmpxx.h (__gmp_unary_expr): Make the constructor explicit. 5151 (__gmp_expr(__gmp_expr&&)): New move constructors. 5152 (__gmp_expr::operator=(__gmp_expr&&)): New move assignments. 5153 (swap): Mark as noexcept. 5154 (__GMPXX_USE_CXX11): New macro. 5155 (__GMPXX_NOEXCEPT): New macro. 5156 * tests/cxx/t-cxx11.cc: New file. 5157 * tests/cxx/Makefile.am: Added t-cxx11. 5158 5159 2012-01-31 Torbjorn Granlund <tege@gmplib.org> 5160 5161 * mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for 5162 SQR_BASECASE_MAX. 5163 (SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec. 5164 (SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD 5165 straight, without arithmetic. 5166 (mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion. 5167 5168 2012-01-30 Torbjorn Granlund <tege@gmplib.org> 5169 5170 * tests/mpz/t-powm.c: Ensure all sizes are seen. 5171 5172 2012-01-30 Marc Glisse <marc.glisse@inria.fr> 5173 5174 * gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c 5175 when d != c. 5176 * tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c. 5177 5178 2012-01-28 Marc Glisse <marc.glisse@inria.fr> 5179 5180 * gmpxx.h: Don't compute -LONG_MIN. 5181 5182 * doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t. 5183 * gmpxx.h: Replace unsigned long with mp_bitcnt_t. 5184 5185 2012-01-27 Torbjorn Granlund <tege@gmplib.org> 5186 5187 * Upgrade to libtool 2.4.2. 5188 5189 2012-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 5190 5191 * tests/mpz/t-fac_ui.c: Increase default test cases. 5192 5193 * mpz/prodlimbs.c: New file, mpz_prodlimbs implementation. 5194 * gmp-impl.h: mpz_prodlimbs declaration. 5195 * Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo . 5196 * mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c . 5197 (fac_ui.h): remove target (moved up one directory). 5198 * mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations. 5199 5200 2012-01-25 Torbjorn Granlund <tege@gmplib.org> 5201 5202 * tune/tuneup.c: Remove unused tuneup variables. 5203 5204 2012-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 5205 5206 * mpz/fac_ui.c: Reduce branches in basecases. 5207 5208 2012-01-18 Marc Glisse <marc.glisse@inria.fr> 5209 5210 * doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t. 5211 5212 2012-01-17 Torbjorn Granlund <tege@gmplib.org> 5213 5214 * configure.in: Add ultrasparc T4 support. 5215 5216 * demos/isprime.c (main): Run 25 millerrabin tests. 5217 5218 2012-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 5219 5220 * mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size. 5221 (mpz_oddswing_1): Reduce the number of divisions. 5222 (mpz_oddfac_1): Reduce memory usage. 5223 * mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_. 5224 * tune/tuneup.c (tune_fac_ui): Likewise. 5225 5226 2012-01-15 Niels Möller <nisse@lysator.liu.se> 5227 5228 * mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than 5229 ULONG_MAX, when returning "infinity". 5230 * mpz/scan1.c (mpz_scan1): Likewise. 5231 5232 2012-01-12 Torbjorn Granlund <tege@gmplib.org> 5233 5234 * tests/t-popc.c: Test longer bit strings. 5235 5236 2012-01-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 5237 5238 * mpz/divexact.c: Tight realloc, delayed if variables are reused. 5239 * mpz/lcm.c: Smaller temp space, avoid goto. 5240 * gmp-impl.h (popc_limb): avoid double & (for 8-bits limb). 5241 5242 2012-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 5243 5244 * mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds. 5245 * tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_. 5246 5247 2012-01-07 Torbjorn Granlund <tege@gmplib.org> 5248 5249 * mpz/mul_2exp.c: Rewrite. 5250 * mpz/tdiv_q_2exp.c: Rewrite. 5251 5252 2012-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 5253 5254 * gen-fac_ui.c: Remove currently unused constants; add new odd 5255 double factorial table. 5256 * mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default. 5257 (mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd. 5258 (mpz_prodlimbs): More in-place computations. 5259 5260 * tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_. 5261 5262 2012-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 5263 5264 * tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD. 5265 5266 2011-12-31 Torbjorn Granlund <tege@gmplib.org> 5267 5268 * Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz. 5269 5270 2011-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it> 5271 5272 * tune/Makefile.am (fac_ui.c): New target. 5273 (nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c. 5274 * tune/tuneup.c (mpz_fac_ui_tune): Declare prototype. 5275 (fac_odd_threshold,fac_dsc_threshold): New global variables. 5276 (speed_mpz_fac_ui_tune,tune_fac_ui): New functions. 5277 (all): Call tune_fac_ui. 5278 * gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD): 5279 New thresholds: default values, and setup for tuning. 5280 (FAC_DSC_THRESHOLD_LIMIT): Define (when tuning). 5281 * mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD): 5282 Default values removed. 5283 5284 2011-12-30 Torbjorn Granlund <tege@gmplib.org> 5285 5286 * mpz/hamdist.c: Fix typo in a return statement. 5287 5288 * mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from 5289 SQR_TOOM2_THRESHOLD. 5290 5291 2011-12-17 Torbjorn Granlund <tege@gmplib.org> 5292 5293 * tests/mpz/t-perfpow.c: Decrease default # of tests. 5294 5295 2011-12-16 Torbjorn Granlund <tege@gmplib.org> 5296 5297 * tests/refmpn.c (AORS_1): Fix typo in variable type. 5298 5299 2011-12-10 Torbjorn Granlund <tege@gmplib.org> 5300 5301 * mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to 5302 allow quotient and dividend to completely overlap. 5303 * mpn/generic/sbpi1_bdiv_qr.c: Likewise. 5304 5305 2011-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 5306 5307 * mpz/fac_ui.c: fac_bc_ui inlined in fac_ui. 5308 5309 2011-12-08 Torbjorn Granlund <tege@gmplib.org> 5310 5311 * mpn/generic/powm_sec.c: Handle fat binaries better. 5312 5313 * mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size. 5314 5315 * mpn/x86/fat/com.c: New file. 5316 5317 * mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64. 5318 * mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64 5319 to avoid overhead for standard ABIs. 5320 5321 * mpn/x86_64/gcd_1.asm: Support DOS64. 5322 5323 2011-12-07 Torbjorn Granlund <tege@gmplib.org> 5324 5325 * configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat 5326 functions. 5327 5328 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break. 5329 5330 2011-12-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 5331 5332 * gen-fac_ui.c: Generate two more tables: odd factorial, swing. 5333 5334 * mpz/fac_ui.c: Rewrite. 5335 5336 2011-12-06 Niels Möller <nisse@lysator.liu.se> 5337 5338 * mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first 5339 recursive call. 5340 5341 2011-12-06 Torbjorn Granlund <tege@gmplib.org> 5342 5343 * tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the 5344 benefit of fat builds). 5345 * tune/mod_1_1-2.c: Likewise. 5346 5347 2011-12-05 Torbjorn Granlund <tege@gmplib.org> 5348 5349 * mpn/x86/fat/lshiftc.c: New file. 5350 * mpn/x86/fat/mod_1_1.c: New file. 5351 * mpn/x86/fat/mod_1_2.c: New file. 5352 * mpn/x86/fat/mod_1_4.c: New file. 5353 5354 * mpn/x86/fat/diveby3.c: Remove no longer fat function. 5355 * mpn/x86_64/fat/diveby3.c: Likewise. 5356 5357 * mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm. 5358 * mpn/x86_64/fat/mode1o.c: Likewise. 5359 5360 * configure.in (fat_functions): Update to more relevant function set. 5361 Add special handling for mod_1_N_cps functions. 5362 * gmp-impl.h (struct cpuvec_t) : Corresponding changes. Also add 5363 vrious declarations for new functions. 5364 * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes. 5365 * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes. 5366 * mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes. 5367 * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes. 5368 5369 * mpn/x86_64: Port most remaining x86_64 files to DOS64. 5370 5371 * mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT. 5372 5373 * mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code. 5374 * mpn/x86_64/darwin.m4 (LEA): Likewise. 5375 5376 2011-12-04 Torbjorn Granlund <tege@gmplib.org> 5377 5378 * mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs. 5379 * mpn/x86/fat/fat.c (MAKE_FMS): Likewise. 5380 5381 * mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value. 5382 5383 2011-12-02 Torbjorn Granlund <tege@gmplib.org> 5384 5385 * mpn/x86_64/invert_limb_table.asm: Use PROTECT. 5386 * mpn/x86_64/invert_limb.asm: Likewise. 5387 5388 * mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines. 5389 * mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines. 5390 * mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines. 5391 5392 2011-12-01 Torbjorn Granlund <tege@gmplib.org> 5393 5394 * mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c. 5395 5396 * mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these 5397 denote all standard calling conventions). 5398 5399 * mpn/x86_64: Add DOS64 ABI support to more files. 5400 5401 * mpn/x86_64/mod_1_1.asm: Finish DOS64 support. 5402 * mpn/x86_64/mod_1_2.asm: Likewise. 5403 * mpn/x86_64/mod_1_4.asm: Likewise. 5404 5405 * configure.in: Add GMP_NONSTD_ABI also for fat builds. 5406 5407 * mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64. 5408 5409 * mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines. 5410 * mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines. 5411 5412 * mpn/x86_64/dive_1.asm: Add DOS64 ABI support. 5413 * mpn/x86_64/mode1o.asm: Likewise. 5414 5415 * mpn/x86_64/mod_34lsub1.asm: Enable for DOS64. 5416 5417 * mpn/x86_64/invert_limb.asm: Wrap .protected decl. 5418 5419 * gmp-impl.h (DECL_divexact_1): Fix typo in return type. 5420 5421 * mpn/x86_64/dos64.m4 (LEA): New define. 5422 (PIC): Define. 5423 5424 2011-11-29 Torbjorn Granlund <tege@gmplib.org> 5425 5426 * mpn/x86_64: Add DOS64 ABI support to most files. 5427 5428 2011-11-28 Torbjorn Granlund <tege@gmplib.org> 5429 5430 * mpn/x86_64/mul_basecase.asm: Support ABI DOS64. 5431 * mpn/x86_64/sqr_basecase.asm: Support ABI DOS64. 5432 * mpn/x86_64/aorsmul_1.asm: Support ABI DOS64. 5433 * mpn/x86_64/mul_1.asm: Support ABI DOS64. 5434 5435 * mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs. 5436 5437 * mpn/x86_64/dos64.m4: New file. 5438 5439 * mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro. 5440 5441 * configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI. 5442 No longer clear out path_64. 5443 (mpn code selection loop): Handle GMP_NONSTD_ABI. 5444 5445 * mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants. 5446 5447 2011-11-25 Torbjorn Granlund <tege@gmplib.org> 5448 5449 * x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode. 5450 5451 * configure.in: Overhaul x86/x86_64 support, merging three case 5452 statements into one. 5453 5454 2011-11-24 Torbjorn Granlund <tege@gmplib.org> 5455 5456 * doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t 5457 precision. 5458 5459 * mpn/powerpc32/p7/gmp-mparam.h: New file. 5460 5461 * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's 5462 threshold. 5463 5464 2011-11-22 Torbjorn Granlund <tege@gmplib.org> 5465 5466 * mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file. 5467 5468 * configure.in: Don't fail fat builds under 64-bit DOS. 5469 5470 * mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better 5471 power5 performance. 5472 5473 2011-11-21 Torbjorn Granlund <tege@gmplib.org> 5474 5475 * gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name. 5476 5477 2011-11-20 Torbjorn Granlund <tege@gmplib.org> 5478 5479 * configure.in: Split x86 CPUs into more subtypes for more accurate 5480 passing of gcc flags. 5481 5482 * mpn/powerpc32/p3-p7/aors_n.asm: New file. 5483 5484 * configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe 5485 mechanism. 5486 5487 * configure.in: Support powerpc32/p3-p7 directory for affected CPUs. 5488 5489 2011-11-17 Torbjorn Granlund <tege@gmplib.org> 5490 5491 * tune/speed.c (routine): Add mpn_tabselect. 5492 * tune/common.c (speed_mpn_tabselect): New function. 5493 * tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from 5494 old SPEED_ROUTINE_MPN_COPY. 5495 (SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL. 5496 (SPEED_ROUTINE_MPN_TABSELECT): New macro. 5497 5498 2011-11-17 Niels Möller <nisse@lysator.liu.se> 5499 5500 * tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change. 5501 5502 2011-11-16 Torbjorn Granlund <tege@gmplib.org> 5503 5504 * mpn/powerpc32/tabselect.asm: New file. 5505 5506 * mpn/powerpc64/mode64/aorscnd_n.asm: New file. 5507 5508 2011-11-15 Niels Möller <nisse@lysator.liu.se> 5509 5510 * tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype. 5511 (mpn_hgcd_lehmer_itch): Likewise. 5512 (mpn_hgcd_appr_lehmer): Likewise. 5513 (mpn_hgcd_appr_lehmer_itch): Likewise. 5514 (MPN_HGCD_LEHMER_ITCH): Deleted macro. 5515 5516 * tune/speed.c (routine): Added mpn_hgcd_appr_lehmer. 5517 5518 * tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch 5519 rather than similarly named macro. 5520 (speed_mpn_hgcd_appr_lehmer): New function. 5521 5522 * tune/Makefile.am (libspeed_la_SOURCES): Added 5523 hgcd_appr_lehmer.c. 5524 5525 * tune/hgcd_appr_lehmer.c: New file. 5526 5527 * tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some 5528 machines got small thresholds which appear to be bogus. 5529 5530 2011-11-15 Torbjorn Granlund <tege@gmplib.org> 5531 5532 * mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls. 5533 (redcify): Likewise. 5534 (mpn_powm_sec): Likewise. 5535 5536 * mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage 5537 (mpn_powm_sec_itch): Rewrite. 5538 5539 * mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in 5540 initialisation. 5541 5542 * configure.in: Amend 2011-11-03 gcc_cflags change. 5543 5544 * mpn/powerpc64/tabselect.asm: New file. 5545 * mpn/x86_64/tabselect.asm: New file. 5546 * mpn/x86/tabselect.asm: New file. 5547 * mpn/ia64/tabselect.asm: New file. 5548 5549 * mpn/asm-defs.m4 (define_mpn): Add tabselect. 5550 5551 * configure.in (gmp_mpn_functions): Add tabselect. 5552 (HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect. 5553 5554 * mpn/generic/powm_sec.c: Remove mpn_tabselect implementation. 5555 * mpn/generic/tabselect.c: New file with removed code. 5556 5557 2011-11-13 Torbjorn Granlund <tege@gmplib.org> 5558 5559 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c. 5560 5561 * mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE 5562 (POWM_SEC_TABLE): Define default. 5563 5564 * tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE. 5565 (all): Call new function. 5566 5567 * mpn/generic/powm_sec.c (win_size): Define only when 5568 TUNE_PROGRAM_BUILD is not set. 5569 5570 2011-11-13 Niels Möller <nisse@lysator.liu.se> 5571 5572 * tune/tuneup.c (tune_hgcd_appr): Use default min_size. 5573 (tune_hgcd_reduce): Increase max_size and step_factor, to 7000 5574 and 0.04, respectively. 5575 5576 2011-11-11 Torbjorn Granlund <tege@gmplib.org> 5577 5578 * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove. 5579 5580 2011-11-11 Niels Möller <nisse@lysator.liu.se> 5581 5582 * tune/hgcd_reduce_2.c: New file. 5583 * tune/hgcd_reduce_1.c: New file. 5584 5585 * tune/tuneup.c (hgcd_appr_threshold): New threshold variable. 5586 (hgcd_reduce_threshold): Likewise. 5587 (tune_hgcd_appr): New function. 5588 (tune_hgcd_reduce): New function. 5589 (all): Call tune_hgcd_appr and tune_hgcd_reduce. 5590 5591 * tune/speed.h (speed_mpn_hgcd_reduce): Declaration. 5592 (speed_mpn_hgcd_reduce_[12]): Likewise. 5593 (mpn_hgcd_reduce_[12]): Likewise. 5594 (SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro. 5595 5596 * tune/speed.c (routine): Added mpn_hgcd_reduce, 5597 mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2. 5598 5599 * tune/common.c (speed_mpn_hgcd_reduce): New function. 5600 (speed_mpn_hgcd_reduce_[12]): Likewise. 5601 5602 * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c 5603 hgcd_reduce_2.c. 5604 (TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c. 5605 5606 * mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted 5607 functions, earlier copied to hgcd_reduce.c. 5608 (mpn_hgcd_appr): Use hgcd_reduce. 5609 5610 2011-11-09 Torbjorn Granlund <tege@gmplib.org> 5611 5612 * mpn/powerpc64/mode64/sqr_basecase.asm: New file. 5613 5614 * mpn/x86_64/aorscnd_n.asm: New file. 5615 5616 * tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n. 5617 * tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions. 5618 * tune/speed.h: Declare them. 5619 5620 * tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n. 5621 * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions. 5622 * tests/tests.h: Declare them. 5623 5624 * configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n. 5625 5626 2011-11-07 Torbjorn Granlund <tege@gmplib.org> 5627 5628 * mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but 5629 not fully canonically; leave add_n and conditional sub_n to caller. 5630 Therefore omit R argument. 5631 5632 * mpn/generic/redc_1_sec.c: Remove. 5633 5634 * gmp-impl.h (mpn_redc_1): Update declaration. 5635 (mpn_redc_1_sec): Remove declaration. 5636 5637 * configure.in (gmp_mpn_functions): Remove redc_1. 5638 5639 * mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface. 5640 * tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise. 5641 5642 * tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1 5643 instead of mpn_addmul_1. 5644 5645 * mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1. 5646 * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for 5647 mpn_redc_1_sec. 5648 5649 2011-11-03 Torbjorn Granlund <tege@gmplib.org> 5650 5651 * dumbmp.c (mpz_sub): Abort for non-handled case. 5652 5653 * mpn/powerpc64/mode64/lshiftc.asm: Move file from here... 5654 * mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications. 5655 5656 * configure.in: Pass -m32 in more cases, using _maybe mechanism. 5657 Inherit default gcc_cflags in more places. 5658 5659 * mpn/powerpc64/mode64/p7/gmp-mparam.h: New file. 5660 5661 2011-11-02 Torbjorn Granlund <tege@gmplib.org> 5662 5663 * mpn/s390_64/invert_limb.asm: Slight optimisation. 5664 5665 * configure.in (s390): Set gcc_32_cflags_maybe. 5666 5667 * mpn/s390_32/gmp-mparam.h: Put in proper data. 5668 * mpn/s390_32/esame/gmp-mparam.h: New file. 5669 5670 * mpn/x86_64/bobcat/gmp-mparam.h: New file. 5671 5672 * mpn/s390_32/lshift.asm: New file. 5673 * mpn/s390_32/rshift.asm: New file. 5674 * mpn/s390_32/lshiftc.asm: New file. 5675 5676 2011-10-31 Torbjorn Granlund <tege@gmplib.org> 5677 5678 * mpn/powerpc64/sqr_diagonal.asm: Move from here... 5679 * mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here. 5680 5681 * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file. 5682 5683 * mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code. 5684 * mpn/s390_32/esame/sqr_basecase.asm: Likewise. 5685 5686 2011-10-29 Torbjorn Granlund <tege@gmplib.org> 5687 5688 * mpn/s390_64/lshift.asm: Complete rewrite. 5689 * mpn/s390_64/rshift.asm: Likewise. 5690 5691 * mpn/s390_64/lshiftc.asm: New file. 5692 5693 2011-10-28 Torbjorn Granlund <tege@gmplib.org> 5694 5695 * mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code. 5696 5697 2011-10-27 Torbjorn Granlund <tege@gmplib.org> 5698 5699 From Per Olofsson: 5700 * gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH 5701 clash. 5702 5703 * mpn/s390_32/esame/mul_basecase.asm: New file. 5704 5705 * mpn/s390_32/esame/sqr_basecase.asm: New file. 5706 5707 * mpn/s390_32/logops_n.asm: New file. 5708 5709 * mpn/s390_64/logops_n.asm: Fix rp=up code. Remove a leftover insn. 5710 5711 2011-10-26 Niels Möller <nisse@lysator.liu.se> 5712 5713 * gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added 5714 prototypes. 5715 (HGCD_APPR_THRESHOLD): Set up threshold for tuning. 5716 (HGCD_REDUCE_THRESHOLD): Likewise. 5717 5718 * configure.in (gmp_mpn_functions): Added hgcd_reduce. 5719 5720 * mpn/generic/hgcd_reduce.c: New file. 5721 5722 2011-10-24 Torbjorn Granlund <tege@gmplib.org> 5723 5724 * mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't 5725 allocate any stack space. 5726 5727 2011-10-23 Torbjorn Granlund <tege@gmplib.org> 5728 5729 * mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible. 5730 5731 * tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc): 5732 Pass correct input args. 5733 5734 * mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions. 5735 5736 * mpn/s390_64/mul_basecase.asm: New file. 5737 5738 * mpn/s390_64/sqr_basecase.asm: New file. 5739 * mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase. 5740 5741 * mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l. 5742 5743 * mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm. 5744 * mpn/s390_64/sublsh1_n.asm: New file. 5745 * mpn/s390_64/aorslsh1_n.asm: Remove file. 5746 5747 2011-10-22 Torbjorn Granlund <tege@gmplib.org> 5748 5749 * mpn/s390_64/logops_n.asm: New file. 5750 5751 * mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code. 5752 5753 2011-10-20 Torbjorn Granlund <tege@gmplib.org> 5754 5755 * tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro. 5756 * tune/common.c (speed_mpn_sqr_diag_addlsh1): New function. 5757 * tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1. 5758 5759 * mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code. 5760 5761 * mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers. 5762 5763 2011-10-19 Torbjorn Granlund <tege@gmplib.org> 5764 5765 * mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code. 5766 * mpn/s390_32/esame/add_n.asm: Likewise. 5767 5768 2011-10-17 Torbjorn Granlund <tege@gmplib.org> 5769 5770 * mpn/s390_32/esame/aorslsh1_n.asm: New file. 5771 5772 2011-10-16 Torbjorn Granlund <tege@gmplib.org> 5773 5774 * mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file. 5775 5776 * mpn/s390_32/copyi.asm: New file. 5777 * mpn/s390_32/copyd.asm: New file. 5778 5779 * mpn/s390_64/copyd.asm: Optimise. 5780 5781 * mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy. 5782 5783 * mpn/s390_64/aorslsh1_n.asm: New file. 5784 5785 * mpn/s390_64/mod_34lsub1.asm: New file. 5786 5787 * mpn/s390_64/sqr_diag_addlsh1.asm: New file. 5788 5789 2011-10-15 Torbjorn Granlund <tege@gmplib.org> 5790 5791 * configure.in (s390): Rewrite support to handle known CPUs. 5792 * config.guess: Recognise s390 CPUs. 5793 * config.sub: Match s390 CPUs. 5794 * acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines. 5795 5796 2011-10-14 Torbjorn Granlund <tege@gmplib.org> 5797 5798 From Per Olofsson: 5799 * mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h. 5800 * mpn/generic/gcd_1.c: Separate declarations and initialisers for the 5801 benefit of C++. 5802 5803 * configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch. 5804 * longlong.h (s390): Use it. 5805 (s390 umul_ppmm): Fix typo in pure C variant. 5806 5807 2011-10-13 Torbjorn Granlund <tege@gmplib.org> 5808 5809 * longlong.h (s390): Put back an accidentally deleted #else. 5810 5811 * configure.in (s390): Unset extra_functions for s390x. 5812 5813 2011-10-12 Torbjorn Granlund <tege@gmplib.org> 5814 5815 * mpn/s390_64/lshift.asm: Reduce register usage. 5816 * mpn/s390_64/rshift.asm: Likewise. 5817 5818 * longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm. 5819 5820 From Andreas Krebbel: 5821 * longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using 5822 64-bit registers. 5823 (s390 udiv_qrnnd): Likewise. 5824 5825 2011-10-11 Torbjorn Granlund <tege@gmplib.org> 5826 5827 * configure.in (s390x): Pass -mzarch to gcc in 32-bit mode. 5828 5829 * longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns. 5830 * mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise. 5831 5832 * mpn/s390_64/copyd.asm: New file. 5833 5834 2011-10-10 Niels Möller <nisse@lysator.liu.se> 5835 5836 * mpn/generic/hgcd_appr.c: Deleted debugging code. 5837 5838 * tests/mpn/t-hgcd_appr.c (main): Added -v flag. 5839 (hgcd_appr_valid_p): Increased margin of non-minimality for 5840 divide-and-conquer algorithm. Display bit counts only if 5841 -v is used. 5842 5843 * mpn/generic/hgcd_appr.c (submul): New (static) function. 5844 (hgcd_matrix_apply): New function. 5845 (mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm. 5846 (mpn_hgcd_appr): Implemented divide-and-conquer. 5847 5848 2011-10-10 Torbjorn Granlund <tege@gmplib.org> 5849 5850 * mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant. Put arm code 5851 inside __GNUC__. 5852 5853 * tune/time.c (STCK): Use proper memory constraint. 5854 5855 From Marco Trudel: 5856 * tests/mpz/t-scan.c (check_ref): Fix loop end bound. 5857 5858 2011-10-10 Niels Möller <nisse@lysator.liu.se> 5859 5860 * gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold. 5861 5862 * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change. 5863 Destroy inputs, let caller make working copies if needed. 5864 (mpn_hgcd_appr_itch): Reduced scratch need. 5865 * gmp-impl.h: Updated mpn_hgcd_appr prototype. 5866 * tests/mpn/t-hgcd_appr.c (one_test): Make working copies for 5867 hgcd_appr. 5868 * tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL. 5869 * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted. 5870 5871 2011-10-09 Torbjorn Granlund <tege@gmplib.org> 5872 5873 * mpn/s390_64/copyi.asm: New file. 5874 * mpn/s390_64/lshift.asm: New file. 5875 * mpn/s390_64/rshift.asm: New file. 5876 5877 * mpn/s390_64/add_n.asm: Rewrite using lmg/stmg. 5878 * mpn/s390_64/sub_n.asm: Likewise. 5879 5880 * mpn/s390_64/invert_limb.asm: Save a callee-saves register less. 5881 5882 * tune/time.c (getrusage_backwards_p): Properly cast printed values. 5883 5884 * longlong.h (s390x): Put back UDItype casts to make gcc reloading use 5885 right more for constants. 5886 (s390x count_leading_zeros): Disable until we support z10 specifically. 5887 (s390x add_ssaaaa): Remove algsi/slgsi until we support z10. 5888 5889 2011-10-09 Niels Möller <nisse@lysator.liu.se> 5890 5891 * mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare 5892 matrix argument const. 5893 5894 2011-10-08 Niels Möller <nisse@lysator.liu.se> 5895 5896 * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the 5897 allowed margin of non-minimality for hgcd_appr. 5898 5899 * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of 5900 extra_bits, starting at zero, to ensure that we don't produce too 5901 small remainders. Added a final reduction loop when we we 5902 otherwise terminate with extra_bits > 0, to make the returned 5903 remainders closer to minimal. 5904 5905 2011-10-07 Torbjorn Granlund <tege@gmplib.org> 5906 5907 * longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd. 5908 (s390): Overhaul 32-bit and 64-bit code. 5909 5910 2011-10-07 Niels Möller <nisse@lysator.liu.se> 5911 5912 * tune/speed.h (speed_mpn_hgcd_appr): New prototype. 5913 (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro. 5914 * tune/common.c (speed_mpn_hgcd_appr): New function. 5915 * tune/speed.c (routine): Added mpn_hgcd_appr. 5916 5917 * tests/mpn/t-hgcd_appr.c: New file. 5918 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr. 5919 5920 * configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr. 5921 5922 * gmp-impl.h: Added prototypes for mpn_hgcd_step, 5923 mpn_hgcd_appr_itch and mpn_hgcd_appr. 5924 5925 * mpn/generic/hgcd_appr.c: New file. 5926 5927 * mpn/generic/hgcd_step.c: New file, extracted from hgcd.c. 5928 (mpn_hgcd_step): Renamed, from... 5929 * mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved 5930 to hgcd_step.c. 5931 (hgcd_hook): Also moved to hgcd_step.c. 5932 (mpn_hgcd): Updated for hgcd_step renaming. 5933 5934 2011-10-06 Torbjorn Granlund <tege@gmplib.org> 5935 5936 * mpn/s390_64/invert_limb.asm: New file. 5937 5938 2011-10-04 Torbjorn Granlund <tege@gmplib.org> 5939 5940 * mpn/s390_64/submul_1.asm: New file. 5941 * mpn/s390_32/esame/submul_1.asm: New file. 5942 5943 * mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start. 5944 5945 * mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and 5946 z8000x. 5947 5948 * doc/gmp.texi (Custom Allocation): Rephrase a paragraph. 5949 5950 * demos/factorize.c: Run 25 Miller-Rabin tests. 5951 5952 * mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10). 5953 5954 2011-10-03 Torbjorn Granlund <tege@gmplib.org> 5955 5956 * configure.in: Support s390x. 5957 5958 * longlong.h: Add support for 64-bit s390x. 5959 5960 * mpn/s390_64: New directory. 5961 * mpn/s390_64/add_n.asm: New file. 5962 * mpn/s390_64/sub_n.asm: New file. 5963 * mpn/s390_64/mul_1.asm: New file. 5964 * mpn/s390_64/addmul_1.asm: New file. 5965 * mpn/s390_64/bdiv_dbm1c.asm: New file. 5966 * mpn/s390_64/gmp-mparam.h: New file, taken from x86_64. 5967 5968 * mpn/s390_32: Directory renamed from mpn/s390. 5969 * mpn/s390_32/gmp-mparam.h: New file, taken from x86_64. 5970 * mpn/s390_32/esame/add_n.asm: New file. 5971 * mpn/s390_32/esame/sub_n.asm: New file. 5972 * mpn/s390_32/esame/mul_1.asm: New file. 5973 * mpn/s390_32/esame/addmul_1.asm: New file. 5974 * mpn/s390_32/esame/bdiv_dbm1c.asm: New file. 5975 5976 2011-10-03 Niels Möller <nisse@lysator.liu.se> 5977 5978 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid. 5979 * tests/mpn/t-mulmid.c: New file. 5980 5981 mulmid-related assembly for x86_64, from David Harvey: 5982 * mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and 5983 mulmid_basecase. Also use m4_not_for_expansion on the 5984 corresponding OPERATION_* symbols. 5985 * mpn/x86_64/aors_err1_n.asm: New file. 5986 * mpn/x86_64/aors_err2_n.asm: Likewise. 5987 * mpn/x86_64/aors_err3_n.asm: Likewise. 5988 * mpn/x86_64/mulmid_basecase.asm: Likewise. 5989 * mpn/x86_64/core2/aors_err1_n.asm: Likewise. 5990 * mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value. 5991 * mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise. 5992 5993 Tuning of mulmid, from David Harvey: 5994 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c 5995 mulmid_n.c toom42_mulmid.c. 5996 * tune/speed.h: Prototypes for mulmid-related functions. 5997 (struct speed_params): Increased max number of sources to 5. 5998 (SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro. 5999 (SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise. 6000 (SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise. 6001 (SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise. 6002 (SPEED_ROUTINE_MPN_MULMID): Likewise. 6003 (SPEED_ROUTINE_MPN_MULMID_N): Likewise. 6004 (SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise. 6005 * tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions. 6006 (speed_mpn_mulmid_basecase): New function. 6007 (speed_mpn_mulmid): New function. 6008 (speed_mpn_mulmid_n): New function. 6009 (speed_mpn_toom42_mulmid): New function. 6010 * tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n, 6011 mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and 6012 mpn_mulmid. 6013 * tune/tuneup.c (mulmid_toom42_threshold): New threshold variable. 6014 (tune_mulmid): New function. 6015 (all): Call tune_mulmid. 6016 6017 Testing of mulmid, from David Harvey: 6018 * tests/refmpn.c (AORS_ERR1_N): New macro. 6019 (refmpn_add_err1_n, refmpn_sub_err1_n): New functions. 6020 (AORS_ERR2_N): New macro. 6021 (refmpn_add_err2_n, refmpn_sub_err2_n): New functions. 6022 (AORS_ERR3_N): New macro. 6023 (refmpn_add_err3_n, refmpn_sub_err3_n): New functions. 6024 (refmpn_mulmid_basecase): New function. 6025 (refmpn_toom42_mulmid): New function, wrapper for 6026 refmpn_mulmid_basecase. 6027 (refmpn_mulmid_n): Likewise. 6028 (refmpn_mulmid): Likewise. 6029 * tests/tests.h: Prototypes for new functions. 6030 * tests/devel/try.c (NUM_SOURCES): Increased to 5. 6031 (struct try_t): Use NUM_SOURCES and NUM_DESTS constants. 6032 (SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants. 6033 (OVERLAP_NOT_DST2): New flag. 6034 (param_init): New mulmid-related operation types. 6035 (mpn_toom42_mulmid_fun): New function. 6036 (choice_array): Added mulmid-related entries. 6037 (overlap_array): Extended for larger NUM_SOURCES. 6038 (OVERLAP_COUNT): Handle OVERLAP_NOT_DST2. 6039 (call): Support mulmid-related functions. 6040 (pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3. 6041 (SIZE_ITERATION): Handle SIZE_ODD. 6042 (SIZE2_FIRST): Handle SIZE_CEIL_HALF. 6043 (SIZE2_LAST): Likewise. 6044 6045 Implementation of mulmid, from David Harvey: 6046 * mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function. 6047 * mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise. 6048 * mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise. 6049 * mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise. 6050 * mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise. 6051 * mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise. 6052 * mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise. 6053 * mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise. 6054 * mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise. 6055 * configure.in (gmp_mpn_functions): Added mulmid-related 6056 functions. 6057 (GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and 6058 aors_err3_n. 6059 * gmp-impl.h: Added prototypes for mulmid functions. 6060 (MPN_TOOM42_MULMID_MINSIZE): New constant. 6061 (MULMID_TOOM42_THRESHOLD): New threshold. 6062 (mpn_toom42_mulmid_itch): New macro. 6063 6064 2011-10-03 Niels Möller <nisse@lysator.liu.se> 6065 6066 * tune/tune-gcd-p.c (main): Fixed broken loop conditions. 6067 6068 2011-09-26 Torbjorn Granlund <tege@gmplib.org> 6069 6070 * mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation 6071 actually compute intended function. 6072 6073 * longlong.h (SH): Recognise predefs for all SH processors as defined 6074 by current gcc versions. 6075 6076 2011-09-25 Torbjorn Granlund <tege@gmplib.org> 6077 6078 * mpn/sh: Migrate files to '.asm'. 6079 * configure.in: Recognise sh3 and sh4. 6080 6081 2011-09-21 Marc Glisse <marc.glisse@inria.fr> 6082 6083 * gmpxx.h (mpz_class::swap): New function. 6084 (mpq_class::swap): Likewise. 6085 (mpf_class::swap): Likewise. 6086 (swap): New function. 6087 * tests/cxx/t-assign.cc: Test the above. 6088 * doc/gmp.texi (swap): Document the above. 6089 6090 2011-08-21 Marc Glisse <marc.glisse@inria.fr> 6091 6092 * tests/cxx/t-ops2.cc: check mul-div by 2. 6093 6094 * gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p). 6095 (__gmp_binary_lshift): Move before multiplication. Optimize x << 0. 6096 (__gmp_binary_rshift): Move before division. Optimize x >> 0. 6097 (__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer. 6098 (__gmp_binary_minus): Optimize x - 0 and 0 - x. 6099 Rewrite rational - integer. 6100 (__gmp_binary_multiplies): Optimize x * 2^n. 6101 (__gmp_binary_divides): Optimize x / 2^n. 6102 (__gmp_binary_*): Deduplicate code for symmetric operations. 6103 6104 2011-08-18 Torbjorn Granlund <tege@gmplib.org> 6105 6106 * printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for 6107 one more digit. 6108 6109 2011-08-17 Torbjorn Granlund <tege@gmplib.org> 6110 6111 * mpf/sub.c: Fix typo in copy condition. Delay an allocation. 6112 6113 2011-08-12 Torbjorn Granlund <tege@gmplib.org> 6114 6115 * gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo. 6116 6117 2011-08-10 Torbjorn Granlund <tege@gmplib.org> 6118 6119 * gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New. 6120 (DIGITS_IN_BASE_FROM_BITS): Compute more accurate result. 6121 (MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS. 6122 6123 * tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error. 6124 6125 2011-08-09 Torbjorn Granlund <tege@gmplib.org> 6126 6127 * mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size 6128 adjustment. 6129 6130 * gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding 6131 overflow for base 2. 6132 6133 2011-08-07 Torbjorn Granlund <tege@gmplib.org> 6134 6135 * gmp-impl.h (struct bases): Add log2b and logb2 field, remove 6136 chars_per_limb_exactly field. 6137 (DIGITS_IN_BASE_FROM_BITS): New. 6138 (DIGITS_IN_BASE_PER_LIMB): New. 6139 (LIMBS_PER_DIGIT_IN_BASE): New. 6140 * gen-bases.c: Generate log2b and logb2 fields; do not generate 6141 chars_per_limb_exactly field. 6142 * mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c 6143 mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c 6144 mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c: 6145 Use new macros. 6146 6147 2011-08-04 Torbjorn Granlund <tege@gmplib.org> 6148 6149 * dumbmp.c (mpz_root): Reinsert accidentally removed line. 6150 6151 2011-08-03 Torbjorn Granlund <tege@gmplib.org> 6152 6153 * dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal 6154 to divisor value. 6155 (mpz_root): Create reasonable starting approximation. 6156 (mpz_sqrt): New function. 6157 (mpz_mul_2exp): Add faster block shifting code, disabled for now. 6158 6159 2011-07-15 Torbjorn Granlund <tege@gmplib.org> 6160 6161 * mpn/arm/invert_limb.asm: Swap around some registers to silence 'as' 6162 warnings. 6163 6164 2011-07-14 Torbjorn Granlund <tege@gmplib.org> 6165 6166 * mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size 6167 argument right. 6168 6169 2011-07-04 Torbjorn Granlund <tege@gmplib.org> 6170 6171 * tests/misc/t-locale.c: Disable test for mingw. 6172 6173 * configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out 6174 extra_functions_64. 6175 6176 2011-07-02 Torbjorn Granlund <tege@gmplib.org> 6177 6178 * config.guess: Don't print newline in x86 cpuid function. 6179 Rewrite x86-64 cpu recognition asm code to work under Windoze. 6180 6181 2011-06-16 Torbjorn Granlund <tege@gmplib.org> 6182 6183 * acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change. 6184 6185 * configure.in: Surround tr ranges with [] for portability. 6186 6187 2011-05-25 Niels Möller <nisse@lysator.liu.se> 6188 6189 * tune/tune-gcd-p.c (search): New function to search for minimum. 6190 (main): Replaced slow linear search. 6191 6192 2011-05-24 Niels Möller <nisse@lysator.liu.se> 6193 6194 * tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added 6195 related automake variables. 6196 6197 * mpn/Makefile.am (tune-gcd-p): Deleted target. 6198 6199 * tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c 6200 and updated. 6201 * mpn/generic/gcd.c: Deleted the corresponding code, including 6202 main function. 6203 6204 2011-05-23 Niels Möller <nisse@lysator.liu.se> 6205 6206 * mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when 6207 needed, to get asize >= bsize. Use the reciprocity law generalized 6208 to work when one operand is even. 6209 6210 2011-05-22 Niels Möller <nisse@lysator.liu.se> 6211 6212 * mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1 6213 case. Sometimes, powers of two in b were taken into account twice. 6214 6215 2011-05-21 Niels Möller <nisse@lysator.liu.se> 6216 6217 * mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was 6218 broken. Rewrote it. 6219 6220 * tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime 6221 candidate and step has no common factor. 6222 (check_data): Added some test cases related to the asize == 1 case 6223 in mpz_jacobi. 6224 6225 2011-05-20 Niels Möller <nisse@lysator.liu.se> 6226 6227 * gmp-impl.h: Jacobi-related prototypes. 6228 6229 * configure.in (gmp_mpn_functions): Added jacobi_2, jacobi, 6230 hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer. 6231 6232 * mpz/jacobi.c (STRIP_TWOS): Deleted macro. 6233 (mpz_jacobi): Partially rewritten, to no longer makes the A 6234 operand odd. Use new mpn_jacobi_n. 6235 6236 * mpn/generic/jacobi_lehmer.c: Deleted file. 6237 6238 * mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi 6239 implementation. Supersedes jacobi_lehmer.c. 6240 6241 * mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and 6242 function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to 6243 mpn_jacobi_update when appropriate. 6244 6245 * mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from 6246 jacobi_lehmer.c. 6247 * mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise. 6248 6249 * mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL. 6250 6251 2011-05-19 Niels Möller <nisse@lysator.liu.se> 6252 6253 * tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for 6254 the functions moved to hgcd_matrix.c. 6255 6256 * configure.in (gmp_mpn_functions): Added hgcd_matrix. 6257 6258 * mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other 6259 helper functions moved to hgcd_matrix.c, see below. 6260 (hgcd_hook): New function. 6261 (hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook. 6262 6263 * mpn/generic/hgcd_matrix.c: New file. 6264 (mpn_hgcd_matrix_init): Moved here, from hgcd.c. 6265 (mpn_hgcd_matrix_update_q): Likewise. 6266 (mpn_hgcd_matrix_mul_1): Likewise. 6267 (mpn_hgcd_matrix_mul): Likewise. 6268 (mpn_hgcd_matrix_adjust): Likewise. 6269 6270 * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New 6271 argument s, for use by hgcd. 6272 * gmp-impl.h (mpn_gcd_subdiv_step): Update declaration. 6273 6274 * mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step. 6275 * mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT. 6276 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise. 6277 (mpn_gcdext_hook): Added some ASSERTs. 6278 * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise. 6279 6280 2011-05-17 Niels Möller <nisse@lysator.liu.se> 6281 6282 * doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements: 6283 Must have un >= vn > 0, and V normalized. 6284 * mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input 6285 normalization. 6286 * mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input 6287 requirements. 6288 6289 2011-05-15 Marc Glisse <marc.glisse@inria.fr> 6290 6291 * gmpxx.h (operator<<): Dedup. 6292 * tests/cxx/t-iostream.cc: Test on compound types. 6293 6294 * gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2. 6295 6296 2011-05-10 Marc Glisse <marc.glisse@inria.fr> 6297 6298 * gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b). 6299 (operator>>): Clean the commenting out. 6300 * tests/cxx/t-iostream.cc: New file. 6301 * tests/cxx/Makefile.am: Added t-iostream. 6302 6303 2011-05-10 Niels Möller <nisse@lysator.liu.se> 6304 6305 * doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0. 6306 (mpz_gcdext): Document range for cofactors. 6307 6308 2011-05-09 Niels Möller <nisse@lysator.liu.se> 6309 6310 * mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs. 6311 * doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation 6312 requirements; one extra limb is still needed for S. 6313 6314 2011-05-09 Torbjorn Granlund <tege@gmplib.org> 6315 6316 * mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define. 6317 * mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define. 6318 6319 2011-05-08 Marc Glisse <marc.glisse@inria.fr> 6320 6321 * gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places. 6322 * doc/gmp.texi: Likewise. 6323 6324 2011-05-06 Marc Glisse <marc.glisse@inria.fr> 6325 6326 * gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit. 6327 (mpq_class): Make constructor from mpf_class explicit. 6328 * doc/gmp.texi: Document the above. 6329 * NEWS: Likewise, and mention the EOF istream fix. 6330 * tests/cxx/t-mix.cc: New file. 6331 * tests/cxx/Makefile.am: Added t-mix. 6332 6333 * tests/cxx/t-assign.cc: Minor tweak. 6334 * tests/cxx/t-misc.cc: Likewise. 6335 6336 * gmpxx.h (__gmp_resolve_temp): Remove. 6337 (__gmp_set_expr): Remove some overloads. 6338 (mpq_class): mpz_init_set the numerator and denominator instead of 6339 mpq_init + mpq_set. 6340 (mpz_class): Dedup the string constructors. 6341 (mpq_class): Likewise. 6342 6343 * tests/cxx/t-ops3.cc: New file. 6344 * tests/cxx/Makefile.am: Added t-ops3. 6345 6346 2011-05-05 Torbjorn Granlund <tege@gmplib.org> 6347 6348 * mpz/gcdext.c: Correct sgn computation. 6349 Use MPZ_REALLOC. 6350 6351 2011-05-05 Marc Glisse <marc.glisse@inria.fr> 6352 6353 * mpn/x86_64/fat/fat.c: Update for Sandy Bridge. 6354 * config.guess: warning to keep it in sync with fat.c. 6355 6356 2011-05-05 Torbjorn Granlund <tege@gmplib.org> 6357 6358 * mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol. Use it to 6359 work around Darwin problems. 6360 6361 2011-05-04 Niels Möller <nisse@lysator.liu.se> 6362 6363 * mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use 6364 mpz_divexact when computing the second cofactor. 6365 6366 2011-05-03 David Harvey <dmharvey@cims.nyu.edu> 6367 6368 * configure.in: make invert_limb_table work correctly with 6369 --disable-assembly (from Niels Möller) 6370 6371 2011-05-02 Marc Glisse <marc.glisse@inria.fr> 6372 6373 * .bootstrap: libtoolize doesn't need -c. 6374 6375 * configfsf.guess: Update to version of 2011-02-02. 6376 * configfsf.sub: Update to version of 2011-03-23. 6377 6378 2011-05-02 Niels Möller <nisse@lysator.liu.se> 6379 6380 * mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end 6381 of mpn_gcdext parameters. 6382 6383 * doc/gmp.texi (mpn_gcdext): Updated doc. 6384 6385 2011-05-01 Niels Möller <nisse@lysator.liu.se> 6386 6387 * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT. 6388 6389 2011-04-30 Marc Glisse <marc.glisse@inria.fr> 6390 6391 * gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition 6392 and the documentation. 6393 (mpz_remove): Likewise. 6394 (mpf_eq): Likewise. 6395 6396 * ltmain.sh: Remove. 6397 * .bootstrap: Let libtoolize generate ltmain.sh. 6398 6399 * tests/cxx/t-ops2.cc: Add a couple tests. 6400 * tests/cxx/t-rand.cc: Likewise. 6401 6402 * doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not 6403 change the precision. 6404 6405 * gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline. 6406 6407 2011-04-28 Torbjorn Granlund <tege@gmplib.org> 6408 6409 * configure.in (x86_64): Support bobcat specifically. 6410 (x86): Match bobcat and bulldozer, handle like k10. 6411 6412 2011-04-28 David Harvey <dmharvey@cims.nyu.edu> 6413 6414 * README.HG: update autotools version numbers. 6415 6416 2011-04-27 Torbjorn Granlund <tege@gmplib.org> 6417 6418 * tune/speed.h (speed_cyclecounter): Always use PIC variant when 6419 compiled with Apple's GCC. 6420 6421 * mpn/x86/darwin.m4 (LEA): Complete rewrite. 6422 (m4append): New macro. 6423 6424 2011-04-26 Torbjorn Granlund <tege@gmplib.org> 6425 6426 * mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it 6427 interferes with expressions. 6428 6429 2011-04-20 Torbjorn Granlund <tege@gmplib.org> 6430 6431 * acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang 6432 problems. 6433 6434 2011-04-12 Niels Möller <nisse@lysator.liu.se> 6435 6436 * mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table 6437 as .protected. 6438 6439 2011-04-11 Torbjorn Granlund <tege@gmplib.org> 6440 6441 * mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround. 6442 Undo 2011-03-28 change. 6443 6444 * mpn/asm-defs.m4 (define_mpn): Use deflit. 6445 6446 2011-04-10 Niels Möller <nisse@lysator.liu.se> 6447 6448 * mpn/asm-defs.m4 (define_mpn): Added invert_limb_table. 6449 6450 * configure.in: Add invert_limb_table to extra_functions_64 on 6451 x86_64. 6452 6453 * mpn/x86_64/invert_limb.asm: Changed references from approx_tab 6454 mpn_invert_limb_table. 6455 6456 * mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New 6457 file. Extracted approximation table from invert_limb.asm, renamed 6458 and made global. 6459 6460 2011-03-30 Niels Möller <nisse@lysator.liu.se> 6461 6462 * mpn/x86_64/div_qr_2u_pi1.asm: New file. 6463 6464 * configure.in (gmp_mpn_functions): Add div_qr_2u_pi1. 6465 6466 * gmp-impl.h (mpn_div_qr_2u_pi1): Declare. 6467 6468 * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to 6469 separate file, from... 6470 * mpn/generic/div_qr_2.c: ... old location. 6471 6472 * mpn/generic/div_qr_2n_pi1.c: Renamed file, from... 6473 * mpn/generic/div_qr_2_pi1_norm.c: ...old name. 6474 * mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from... 6475 * mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name. 6476 6477 * gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration. 6478 * tune/speed.h (speed_mpn_div_qr_2n): Likewise. 6479 (speed_mpn_div_qr_2u): Likewise. 6480 6481 * tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n. 6482 6483 * tune/speed.c (routine): Use new names mpn_div_qr_2n and 6484 mpn_div_qr_2u, also on the command line. 6485 6486 * tune/common.c (speed_mpn_div_qr_2n): Renamed, from... 6487 (speed_mpn_div_qr_2_norm): ... old name. 6488 (speed_mpn_div_qr_2u): Renamed, from... 6489 (speed_mpn_div_qr_2_unnorm): ... old name. 6490 6491 * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed, 6492 from... 6493 (mpn_div_qr_2_pi1_norm): ...old name. 6494 * mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise. 6495 6496 * mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from... 6497 (mpn_div_qr_2_pi2_norm): ... old name. 6498 (mpn_div_qr_2u_pi1): Renamed, from... 6499 (mpn_div_qr_2_pi1_unnorm): ... old name. 6500 (mpn_div_qr_2): Call functions using new names. 6501 6502 * mpn/asm-defs.m4: Renamed div_qr_2-functions to new names. 6503 6504 2011-03-29 Niels Möller <nisse@lysator.liu.se> 6505 6506 * mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp 6507 argument. 6508 6509 * gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration. 6510 * gmp-h.in (mpn_div_qr_2): Likewise. 6511 6512 * tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface. 6513 * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise. 6514 6515 * mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp 6516 argument. Don't clobber the input dividend. 6517 (mpn_div_qr_2_pi1_unnorm): Likewise. 6518 (mpn_div_qr_2): Likewise. 6519 * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise. 6520 6521 2011-03-29 Niels Möller <nisse@lysator.liu.se> 6522 6523 * mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop. 6524 Earlier load of divisor from stack. 6525 6526 2011-03-28 Torbjorn Granlund <tege@gmplib.org> 6527 6528 * mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from 6529 being interpreted as m4 macro parameters. 6530 6531 2011-03-22 Niels Möller <nisse@lysator.liu.se> 6532 6533 * mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop 6534 from divrem_2.asm. 6535 6536 * mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly 6537 optimized, implementation. 6538 6539 * mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm. 6540 6541 * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved 6542 to separate file, from... 6543 * mpn/generic/div_qr_2.c: ... old location. 6544 6545 * gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare. 6546 6547 * configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm. 6548 6549 2011-03-22 Torbjorn Granlund <tege@gmplib.org> 6550 6551 * configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling. 6552 Reinsert lost linux/bsd cpu_path handling. 6553 6554 * mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB. 6555 * mpn/generic/div_qr_2.c: Likewise. 6556 6557 * mpn/generic/div_qr_2.c: Use asm just for gcc. 6558 Make powerpc add_sssaaaa work for 32-bit case, and use less strict 6559 constraints. 6560 6561 2011-03-21 Niels Möller <nisse@lysator.liu.se> 6562 6563 * tune/tuneup.c (div_qr_2_pi2_threshold): New global variable. 6564 (tune_div_qr_2): New function. 6565 (all): Call tune_div_qr_2. 6566 6567 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c. 6568 6569 * gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning. 6570 6571 New 4/2 division loop, based on Torbjörn's work: 6572 * mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros. 6573 (udiv_qr_4by2): New macro. 6574 (invert_4by2): New function. 6575 (mpn_div_qr_2_pi2_norm): New function. 6576 (DIV_QR_2_PI2_THRESHOLD): New threshold. 6577 (mpn_div_qr_2_pi1_norm): Renamed, from... 6578 (mpn_div_qr_2_norm): ... old name. 6579 (mpn_div_qr_2_pi1_unnorm): Renamed, from... 6580 (mpn_div_qr_2_unnorm): ... old name. 6581 (mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough 6582 normalized divisors. 6583 6584 * gmp-impl.h (udiv_qr_3by2): Avoid a copy. 6585 6586 2011-03-21 Torbjorn Granlund <tege@gmplib.org> 6587 6588 * configure.in (hppa): Under linux, treat 64-bit processors as if they 6589 were 32-bit processors. 6590 6591 * mpn/generic/addcnd_n.c: New file. 6592 * mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n. 6593 * configure.in (gmp_mpn_functions): Add addcnd_n. 6594 * gmp-impl.h (mpn_addcnd_n): Declare. 6595 6596 * mpn/generic/subcnd_n.c: Combine nails and non-nails functions. 6597 6598 * gmp-impl.h (invert_pi1): Prepend _ to local variables, protect 6599 parameters within () where necessary. 6600 6601 * mpn/asm-defs.m4 (define_mpn): Add div_qr_2. 6602 * configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed 6603 line. 6604 6605 2011-03-20 Torbjorn Granlund <tege@gmplib.org> 6606 6607 * configure.in (powerpc): Add cpu_path for all three ABIs. 6608 Rename "aix64" to "mode64" for consistency. 6609 6610 2011-03-16 Marc Glisse <marc.glisse@inria.fr> 6611 6612 * gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal. 6613 (__gmp_binary_less_equal): Remove, use !__gmp_binary_greater. 6614 (__gmp_binary_greater_equal): Remove, use !__gmp_binary_less. 6615 * tests/cxx/t-ops2.cc: Typo. 6616 6617 2011-03-20 Niels Möller <nisse@lysator.liu.se> 6618 6619 * tune/common.c (speed_mpn_div_qr_2_norm): New function. 6620 (speed_mpn_div_qr_2_unnorm): New function. 6621 * tune/speed.c (routine): Recognize above functions. 6622 * tune/speed.h: Declarations for above functions. 6623 (SPEED_ROUTINE_MPN_DIV_QR_2): New macro. 6624 6625 * tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and 6626 mpn_div_qr_2. 6627 6628 * mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function. 6629 Intended to eventually replace divrem_2. 6630 * configure.in (gmp_mpn_functions): Add div_qr_2. 6631 6632 2011-03-16 Marc Glisse <marc.glisse@inria.fr> 6633 6634 * gmpxx.h (__gmp_set_expr): Remove broken declarations. 6635 6636 2011-03-19 Torbjorn Granlund <tege@gmplib.org> 6637 6638 * mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional 6639 reallocation. 6640 6641 2011-03-19 Niels Möller <nisse@lysator.liu.se> 6642 6643 * mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert 6644 regarding q and n overlap. 6645 6646 2011-03-16 Marc Glisse <marc.glisse@inria.fr> 6647 6648 * gmpxx.h (__mpz_set_ui_safe): New inline function. 6649 (__mpz_set_si_safe): Likewise. 6650 (__GMPXX_TMPZ_UI): Use the new function. 6651 (__GMPXX_TMPZ_SI): Likewise. 6652 (__GMPXX_TMPQ_UI): Likewise. 6653 (__GMPXX_TMPQ_SI): Likewise. 6654 * tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t. 6655 6656 2011-03-15 Marc Glisse <marc.glisse@inria.fr> 6657 6658 * gmpxx.h (__GMPXX_TMPQ_UI): New macro. 6659 (__GMPXX_TMPQ_SI): New macro. 6660 (struct __gmp_binary_multiplies): Rewrite, using the new macros. 6661 (struct __gmp_binary_divides): Likewise. 6662 6663 * gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite. 6664 * tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t. 6665 6666 2011-03-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 6667 6668 * mpn/generic/toom_interpolate_16pts.c: Remove ambiguity. 6669 6670 2011-03-14 Torbjorn Granlund <tege@gmplib.org> 6671 6672 * tune/tuneup.c (tune_mul): Set tuning min size considering print skew. 6673 6674 * doc/gmp.texi: Make reference to "Formatted I/O" chapters from type 6675 specific I/O sections. 6676 6677 * mpn/alpha/add_n.asm: Add _nc entry point. 6678 * mpn/alpha/sub_n.asm: Likewise. 6679 * mpn/mips64/add_n.asm: Likewise. 6680 * mpn/mips64/sub_n.asm: Likewise. 6681 * mpn/sparc64/ultrasparc1234/add_n.asm: Likewise. 6682 * mpn/sparc64/ultrasparc1234/sub_n: Likewise. 6683 6684 2011-03-13 Marc Glisse <marc.glisse@inria.fr> 6685 6686 * tests/cxx/t-ops2.cc: New file. 6687 * tests/cxx/Makefile.am: Added t-ops2. 6688 6689 2011-03-13 Torbjorn Granlund <tege@gmplib.org> 6690 6691 * mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized 6692 for better code. 6693 6694 * gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32. Generate 6695 no code for incrementing by constant 0. 6696 6697 2011-03-12 Marc Glisse <marc.glisse@inria.fr> 6698 6699 * gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places. 6700 6701 2011-03-12 Torbjorn Granlund <tege@gmplib.org> 6702 6703 * mpn/powerpc64/rshift.asm: Accept/return values correctly also for 6704 32-bit ABI. 6705 * mpn/powerpc64/lshift.asm: Likewise. 6706 6707 * tune/powerpc.asm: Use powerpc syntax, not power syntax. 6708 6709 * tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove. 6710 * tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc. 6711 6712 2011-03-12 Marc Glisse <marc.glisse@inria.fr> 6713 6714 * tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s. 6715 6716 * gmpxx.h: Remove leftover #undefs. 6717 6718 2011-03-11 Torbjorn Granlund <tege@gmplib.org> 6719 6720 * gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2, 6721 udiv_qrnnd_preinv2gen): Remove obsolete macros. 6722 (udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3. 6723 6724 2011-03-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 6725 6726 * gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros. 6727 * mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1. 6728 6729 * tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12]. 6730 * tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12]. 6731 * tests/tests.h: Declarations for reference functions above. 6732 6733 * tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions. 6734 * tune/speed.h: Prototypes for functions above. 6735 * tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12]. 6736 6737 * mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1. 6738 * mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly. 6739 6740 * configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12]. 6741 * mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12]. 6742 6743 2011-03-10 Marc Glisse <marc.glisse@inria.fr> 6744 6745 * tests/cxx/t-istream.cc: Explicit conversion to streampos. 6746 6747 2011-03-10 Torbjorn Granlund <tege@gmplib.org> 6748 6749 * mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates. 6750 6751 * Move new aorrlsh_n.asm to new k8 dir. Revert 6752 mpn/x86_64/aorrlsh_n.asm. 6753 * configure.in: Setup path for new k8 directory. 6754 6755 2011-03-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 6756 6757 * mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom. 6758 * mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above. 6759 6760 2011-03-09 Torbjorn Granlund <tege@gmplib.org> 6761 6762 * mpn/x86_64/aorrlsh_n.asm: Complete rewrite. 6763 6764 * mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file. 6765 6766 2011-03-09 Marc Glisse <marc.glisse@inria.fr> 6767 6768 * tests/cxx/t-ostream.cc: Use bool instead of int. 6769 * tests/cxx/t-istream.cc: Likewise. 6770 * tests/cxx/t-misc.cc: Likewise. 6771 6772 * cxx/ismpznw.cc: Don't clear eofbit. 6773 * cxx/ismpq.cc: Likewise. 6774 * cxx/ismpf.cc: Likewise. 6775 * tests/cxx/t-istream.cc: Test accordingly. 6776 6777 2011-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 6778 6779 * mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file. 6780 6781 2011-03-09 Marc Glisse <marc.glisse@inria.fr> 6782 6783 * doc/gmp.texi: Remove void return type from constructors. Document 6784 explicit constructors. Document mpf_class::mpf_class(mpf_t). 6785 6786 2011-03-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 6787 6788 * mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned 6789 outer loop exit. 6790 6791 2011-03-07 Torbjorn Granlund <tege@gmplib.org> 6792 6793 * mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug. 6794 6795 * mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops. 6796 Tweak outer loop rp updates. 6797 6798 2011-03-06 Torbjorn Granlund <tege@gmplib.org> 6799 6800 * mpn/x86/atom/sse2/sqr_basecase.asm: New file. 6801 6802 2011-03-05 Torbjorn Granlund <tege@gmplib.org> 6803 6804 * mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code. 6805 6806 2011-03-04 Torbjorn Granlund <tege@gmplib.org> 6807 6808 * mpn/x86_64/addmul_2.asm: Rewrite for linear performance. 6809 6810 2011-03-03 Torbjorn Granlund <tege@gmplib.org> 6811 6812 * mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout. Add arm 6813 variant. Enable sparc64 code and powerpc code (the latter for 32-bit 6814 and 64-bit). 6815 6816 * mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n. 6817 6818 * gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare. 6819 * mpn/asm-defs.m4: Likewise. 6820 6821 * mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to 6822 carry-in issues. 6823 * mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise. 6824 * mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise. 6825 6826 2011-03-03 Niels Möller <nisse@lysator.liu.se> 6827 6828 * mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m 6829 as in output operand only. Added sparc32 implementation. Also 6830 added #if:ed out attempts at sparc64 and powerpc64. 6831 6832 * tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD 6833 measurement for use by mpn_mod_1_tune. And omit measurement if 6834 mpn_mod_1_1p is native assembly code. 6835 6836 * mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro 6837 to check mod_1_1p_method and call the right function. 6838 (mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise. 6839 6840 * gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro. 6841 (mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable. 6842 6843 2011-03-02 Torbjorn Granlund <tege@gmplib.org> 6844 6845 * mpn/x86_64/coreinhm/aorrlsh_n.asm: New file. 6846 * mpn/x86_64/coreisbr/aorrlsh_n.asm: New file. 6847 6848 2011-03-01 Niels Möller <nisse@lysator.liu.se> 6849 6850 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and 6851 two mov instructions. 6852 6853 * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified 6854 computation, analogous to recent x86_64/mod_1_1.asm changes. 6855 (mpn_mod_1_1p): Corresponding changes. Don't shift b. 6856 6857 * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv 6858 rather than udiv_rnd_preinv. 6859 (mpn_mod_1s_4p): Likewise. 6860 6861 2011-03-01 Torbjorn Granlund <tege@gmplib.org> 6862 6863 * mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code 6864 between entry points. 6865 * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise. 6866 6867 * mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion. Also fix 6868 problem with passing a longlong limb to a _ui function. 6869 6870 * gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type. 6871 (udiv_rnnd_preinv): Likewise. 6872 * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise. 6873 6874 2011-02-28 Niels Möller <nisse@lysator.liu.se> 6875 6876 * mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define 6877 add_mssaaaa, not add_sssaaaa. 6878 6879 * tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and 6880 mpn_mod_1_1_2, to set MOD_1_1P_METHOD. 6881 6882 * tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2. 6883 6884 * tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2, 6885 mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and 6886 mpn_mod_1_1p_cps_2. 6887 6888 * tune/common.c (speed_mpn_mod_1_1_1): New function. 6889 (speed_mpn_mod_1_1_2): New function. 6890 6891 * tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c 6892 mod_1_1-2.c. 6893 6894 * tune/mod_1_1-1.c: New file. 6895 * tune/mod_1_1-2.c: New file. 6896 6897 * mpn/generic/mod_1_1.c: Implemented an algorithm with fewer 6898 multiplications, configured via MOD_1_1P_METHOD. 6899 6900 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified 6901 computation of B2modb, use B^2 mod (normalized b). 6902 (mpn_mod_1_1p): Corresponding changes. Don't shift b. 6903 6904 * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather 6905 than udiv_rnd_preinv. 6906 (mpn_mod_1_1p): Likewise. 6907 * mpn/generic/mod_1_4.c: Analogous changes. 6908 * mpn/generic/mod_1_3.c: Analogous changes. 6909 * mpn/generic/mod_1_2.c: Analogous changes. 6910 * mpn/generic/mod_1.c: Analogous changes. 6911 * mpn/generic/pre_mod_1.c: Analogous changes. 6912 6913 * gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch 6914 using masking logic. Further optimization of the nl == constant 0 6915 case, similar to udiv_rnd_preinv. 6916 (udiv_rnnd_preinv): Likewise. 6917 (udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0 6918 instead. 6919 6920 * tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise 6921 the nl == constant 0 special case in udiv_qrnnd_preinv3. 6922 6923 2011-02-28 Torbjorn Granlund <tege@gmplib.org> 6924 6925 * mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar 6926 divisions. Misc minor cleanup. 6927 6928 * mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline. 6929 6930 * mpn/x86/atom/mul_basecase.asm: Remove file no longer used. 6931 6932 * mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U)) 6933 allocations until they are known to be needed. 6934 6935 2011-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 6936 6937 * mpn/x86/atom/sse2/mul_1.asm: New code. 6938 6939 2011-02-27 Niels Möller <nisse@lysator.liu.se> 6940 6941 * gmp-impl.h (udiv_rnnd_preinv): New macro. 6942 6943 2011-02-27 Torbjorn Granlund <tege@gmplib.org> 6944 6945 * mpn/x86/atom/sse2/mul_basecase.asm: New file. 6946 6947 2011-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 6948 6949 * mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code. 6950 6951 2011-02-26 Torbjorn Granlund <tege@gmplib.org> 6952 6953 * mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE. 6954 * mpn/m68k/mc68020/aorsmul_1.asm: Likewise. 6955 6956 2011-02-25 Torbjorn Granlund <tege@gmplib.org> 6957 6958 * mpn/x86/atom/sse2/aorsmul_1.asm: New file. 6959 * mpn/x86/atom/aorsmul_1.asm: File removed. 6960 6961 2011-02-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 6962 6963 * mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom). 6964 * mpn/x86/atom/sse2/mul_1.asm: Likewise. 6965 * mpn/x86/atom/sse2/popcount.asm: Likewise. 6966 * mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now). 6967 * mpn/x86/atom/mul_1.asm: Likewise. 6968 * mpn/x86/atom/popcount.asm: Likewise. 6969 6970 * configure.in: Set up mmx path for atom. 6971 * mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom). 6972 * mpn/x86/atom/mmx/copyi.asm: Likewise. 6973 * mpn/x86/atom/mmx/hamdist.asm: Likewise. 6974 * mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now). 6975 * mpn/x86/atom/copyi.asm: Likewise. 6976 * mpn/x86/atom/hamdist.asm: Likewise. 6977 6978 2011-02-24 Torbjorn Granlund <tege@gmplib.org> 6979 6980 * mpn/x86/atom/sse2/mod_1_1.asm: New file. 6981 * mpn/x86/atom/sse2/mod_1_4.asm: New file. 6982 * configure.in: Set up sse2 path for atom. 6983 6984 * mpn/x86/p6/sse2/mod_1_1.asm: New file. 6985 * mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE. 6986 6987 2011-02-24 Niels Möller <nisse@lysator.liu.se> 6988 6989 * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same 6990 algorithm as the x86_64 version. 6991 6992 2011-02-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 6993 6994 * mpn/x86/atom/logops_n.asm: New file (same loop as aors_n). 6995 6996 2011-02-23 Niels Möller <nisse@lysator.liu.se> 6997 6998 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one 6999 instruction and one register in the inner loop. Rearranged 7000 registers slightly, and no longer needs the callee-save register 7001 %r12. 7002 7003 2011-02-22 Torbjorn Granlund <tege@gmplib.org> 7004 7005 * configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also 7006 fixing typo in exporting code. 7007 7008 * mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define. 7009 * mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define. 7010 7011 2011-02-22 Niels Möller <nisse@lysator.liu.se> 7012 7013 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite. 7014 7015 2011-02-22 Marco Bodrato <bodrato@mail.dm.unipi.it> 7016 7017 * mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added). 7018 7019 2011-02-21 Torbjorn Granlund <tege@gmplib.org> 7020 7021 * mpn/x86/aors_n.asm: Move _nc entry to after main code. Align loop 7022 and _n entry for claimed performance. Normalise mnemonic usage. 7023 7024 * mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly 7025 slower for addlsh_1 for large operands, but much faster for small). 7026 * mpn/x86/atom/addlsh1_n.asm: Remove. 7027 * mpn/x86/atom/rsblsh1_n.asm: Remove. 7028 7029 2011-02-20 Marc Glisse <marc.glisse@inria.fr> 7030 7031 * mpq/aors.c: Rewrite to remove redundant division. 7032 7033 2011-02-20 Torbjorn Granlund <tege@gmplib.org> 7034 7035 * mpn/x86/atom/lshift.asm: New file. 7036 * mpn/x86/atom/rshift.asm: Normalise mnemonic usage. 7037 7038 * gmp-impl.h (mpn_divexact_by7): Relax inclusion condition. 7039 7040 * mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function. 7041 (mpz_divexact_by3): Wrap inside appropriate conditions. 7042 (mpz_divexact_gcd): Rewrite. 7043 7044 * mpn/x86/bdiv_dbm1c.asm: Save a jump. 7045 7046 2011-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 7047 7048 * mpn/x86/atom/aorslshC_n.asm: New file. 7049 * mpn/x86/atom/sublsh2_n.asm: New file. 7050 7051 * mpn/x86/atom/aors_n.asm: New code. 7052 * mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit. 7053 * mpn/x86/atom/lshift.asm: Likewise. 7054 7055 2011-02-19 Torbjorn Granlund <tege@gmplib.org> 7056 7057 * mpn/x86_64/atom/rsh1aors_n.asm: New file. 7058 7059 * mpn/x86_64/atom/lshift.asm: New file. 7060 * mpn/x86_64/atom/rshift.asm: New file. 7061 * mpn/x86_64/atom/lshiftc.asm: New file. 7062 7063 2011-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 7064 7065 * mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes. 7066 * mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements. 7067 7068 2011-02-16 Torbjorn Granlund <tege@gmplib.org> 7069 7070 * configure.in: Fix k8/k10 32-bit path setup problem. 7071 7072 2011-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 7073 7074 * mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul. 7075 7076 2011-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 7077 7078 * gmp-impl.h (mpn_sublsh_n): Declare. 7079 * mpn/asm-defs.m4: Likewise. 7080 7081 * mpn/x86/atom/aorrlshC_n.asm: New file (was k7). 7082 * mpn/x86/k7/aorrlshC_n.asm: ReMoved. 7083 * mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm. 7084 * mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm. 7085 7086 2011-02-13 Torbjorn Granlund <tege@gmplib.org> 7087 7088 * mpn/x86_64/atom/aorrlsh2_n.asm: New file. 7089 7090 2011-02-12 Torbjorn Granlund <tege@gmplib.org> 7091 7092 * mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers. 7093 7094 * mpn/x86_64/atom/sublsh1_n.asm: New file. 7095 7096 * mpn/x86_64/atom/aorrlsh1_n.asm: New file. 7097 7098 2011-02-11 Torbjorn Granlund <tege@gmplib.org> 7099 7100 * mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues. 7101 7102 2011-02-10 Torbjorn Granlund <tege@gmplib.org> 7103 7104 * mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970. 7105 7106 2011-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 7107 7108 * mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's). 7109 7110 * configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc. 7111 * tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes. 7112 * tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc. 7113 * tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc. 7114 7115 * mpn/x86/k7/aorrlshC_n.asm: New file. 7116 * mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm. 7117 * mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm. 7118 7119 2011-02-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 7120 7121 * mpn/x86/k7/addlsh1_n.asm: New file. 7122 * mpn/x86/k7/sublsh1_n.asm: New file. 7123 * mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm. 7124 * mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm. 7125 7126 2011-02-05 Torbjorn Granlund <tege@gmplib.org> 7127 7128 * gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc, 7129 mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare. 7130 * mpn/asm-defs.m4: Likewise. 7131 7132 * mpn/x86_64/coreisbr/aorrlshC_n.asm: New file. 7133 * mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file. 7134 * mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file. 7135 7136 * mpn/x86_64/coreisbr/aors_n.asm: New file, based on old 7137 atom/aors_n.asm. 7138 * mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm. 7139 7140 2011-02-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 7141 7142 * gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero. 7143 (mpn_toom8_mul_n_itch): Likewise. 7144 (MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define. 7145 * tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN. 7146 * tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN. 7147 7148 * mpz/lucnum_ui.c: Use mpn_addlsh2_n. 7149 7150 2011-02-04 Torbjorn Granlund <tege@gmplib.org> 7151 7152 * mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE. 7153 * mpn/x86_64/atom/dive_1.asm: Likewise. 7154 * mpn/x86_64/atom/popcount.asm: Likewise. 7155 * mpn/x86_64/core2/popcount.asm: Likewise. 7156 * mpn/x86_64/coreinhm/hamdist.asm: Likewise. 7157 * mpn/x86_64/coreinhm/popcount.asm: Likewise. 7158 * mpn/x86_64/nano/popcount.asm: Likewise. 7159 * mpn/x86_64/pentium4/popcount.asm: Likewise. 7160 7161 2011-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 7162 7163 * mpn/x86/atom/mode1o.asm: New file, grabbing another asm file. 7164 * mpn/x86/atom/mul_1.asm: Claim mul_1c. 7165 7166 2011-02-02 Niels Möller <nisse@lysator.liu.se> 7167 7168 * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one 7169 speed_operand_dst call. 7170 7171 2011-02-01 Torbjorn Granlund <tege@gmplib.org> 7172 7173 * tune/speed.h (struct speed_params): Allow for 4 dst operands. 7174 * tune/common.c (TOLERANCE): Increase from 0.5% to 1%. 7175 7176 * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based 7177 on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested 7178 by Niels). 7179 * tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL. 7180 (speed_mpn_hgcd_lehmer): Likewise. 7181 7182 * configure.in: Set up 32-bit x86 paths for new corei* CPU strings. 7183 7184 2011-01-31 Torbjorn Granlund <tege@gmplib.org> 7185 7186 * config.guess: Recognise new Intel processors. 7187 7188 * config.guess: Support 'coreinhm' and 'coreisbr'. 7189 * config.sub: Likewise. 7190 * configure.in: Likewise. 7191 7192 2011-01-30 Torbjorn Granlund <tege@gmplib.org> 7193 7194 * configure.in: Support x86/geode. 7195 * mpn/x86/geode/gmp-mparam.h: New file. 7196 7197 2011-01-29 Marco Bodrato <bodrato@mail.dm.unipi.it> 7198 7199 * mpn/x86/atom/addlsh1_n.asm: Removed. 7200 * mpn/x86/atom/rsh1add_n.asm: Likewise. 7201 7202 2011-01-28 Torbjorn Granlund <tege@gmplib.org> 7203 7204 * mpn/alpha/ev6/slot.pl: Add some missing insns. 7205 7206 2011-01-28 Marco Bodrato <bodrato@mail.dm.unipi.it> 7207 7208 * mpn/x86/atom/copyd.asm: New file, grabbing another asm file. 7209 * mpn/x86/atom/copyi.asm: Likewise. 7210 * mpn/x86/atom/aors_n.asm: Likewise. 7211 * mpn/x86/atom/addlsh1_n.asm: Likewise. 7212 * mpn/x86/atom/aorsmul_1.asm: Likewise. 7213 * mpn/x86/atom/bdiv_q_1.asm: Likewise. 7214 * mpn/x86/atom/dive_1.asm: Likewise. 7215 * mpn/x86/atom/divrem_1.asm: Likewise. 7216 * mpn/x86/atom/hamdist.asm: Likewise. 7217 * mpn/x86/atom/logops_n.asm: Likewise. 7218 * mpn/x86/atom/lshift.asm: Likewise. 7219 * mpn/x86/atom/mod_34lsub1.asm: Likewise. 7220 * mpn/x86/atom/mul_1.asm: Likewise. 7221 * mpn/x86/atom/mul_basecase.asm: Likewise. 7222 * mpn/x86/atom/popcount.asm: Likewise. 7223 * mpn/x86/atom/rsh1add_n.asm: Likewise. 7224 * mpn/x86/atom/rshift.asm: Likewise. 7225 * mpn/x86/atom/sqr_basecase.asm: Likewise. 7226 7227 2011-01-27 Torbjorn Granlund <tege@gmplib.org> 7228 7229 * mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file. 7230 * mpn/x86_64/atom/popcount.asm: Likewise. 7231 * mpn/x86_64/atom/dive_1.asm: Likewise. 7232 * mpn/x86_64/nano/popcount.asm: Likewise. 7233 7234 2011-01-26 Torbjorn Granlund <tege@gmplib.org> 7235 7236 * mpn/alpha/invert_limb.asm: Complete rewrite. 7237 7238 2011-01-25 Torbjorn Granlund <tege@gmplib.org> 7239 7240 * mpn/powerpc32/invert_limb.asm: New file. 7241 7242 2011-01-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 7243 7244 * mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file. 7245 * mpn/x86/k7/bdiv_q_1.asm: New file. 7246 7247 2011-01-24 Torbjorn Granlund <tege@gmplib.org> 7248 7249 * tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds 7250 until no tiny ranges remain. 7251 7252 2011-01-23 Torbjorn Granlund <tege@gmplib.org> 7253 7254 * mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead. 7255 7256 * mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point. 7257 7258 2011-01-22 Torbjorn Granlund <tege@gmplib.org> 7259 7260 * mpn/ia64/aors_n.asm: Fix some incorrect bundle types. 7261 7262 * mpn/ia64/sqr_diagonal.asm: Remove. 7263 7264 * mpn/ia64/sqr_diag_addlsh1.asm: New file. 7265 7266 * mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics. 7267 7268 * mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using 7269 new function mpn_sqr_diag_addlsh1 or defining its equivalent. 7270 7271 * gmp-impl.h (mpn_addmul_2s): Declare. 7272 (mpn_sqr_diag_addlsh1): Declare. 7273 * mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1. 7274 7275 * configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and 7276 mpn_addmul_2s. 7277 (gmp_mpn_functions_optional): Add sqr_diag_addlsh1. 7278 7279 2011-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 7280 7281 * tests/devel/try.c: Initial support for mpn_bdiv_q_1. 7282 * mpn/x86/pentium/bdiv_q_1.asm: New file. 7283 * mpn/x86/p6/bdiv_q_1.asm: New file. 7284 7285 2011-01-20 Torbjorn Granlund <tege@gmplib.org> 7286 7287 * tune/speed.c (run_gnuplot): Update to current gnuplot syntax. 7288 7289 * mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1 7290 for POWER5. 7291 7292 2011-01-19 Torbjorn Granlund <tege@gmplib.org> 7293 7294 * mpn/x86_64/core2/rsh1aors_n.asm: New file. 7295 7296 2011-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 7297 7298 * mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1). 7299 7300 2011-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 7301 7302 * mpn/generic/divexact.c: Avoid COPY if not needed. 7303 7304 2011-01-14 Torbjorn Granlund <tege@gmplib.org> 7305 7306 * gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold. 7307 * configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD. 7308 7309 2011-01-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 7310 7311 * mpz/mul.c: Remove redundant size computation. 7312 7313 2011-01-08 Torbjorn Granlund <tege@gmplib.org> 7314 7315 * tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6. 7316 (param_init): Support new types. 7317 (choice_array): Support testing of mpn_mul_5 and mpn_mul_6. 7318 (call): Support new routines. 7319 7320 * tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions. 7321 * tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare. 7322 Remove parameter names from some other functions. 7323 7324 * gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare. 7325 * mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6, 7326 mpn_addmul_7, and mpn_addmul_8. 7327 7328 * configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6. 7329 7330 * tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6. 7331 * tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions. 7332 * tune/speed.h: Declare new functions. 7333 7334 2011-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 7335 7336 * mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup. 7337 * mpz/cmp.c: Likewise. 7338 * mpz/gcd.c: Likewise. 7339 * mpz/mul.c: Likewise. 7340 * mpz/powm.c: Likewise. 7341 * mpz/set.c: Likewise. 7342 * mpz/sqrtrem.c: Likewise. 7343 * mpz/tdiv_qr.c: Likewise. 7344 7345 2010-12-28 Torbjorn Granlund <tege@gmplib.org> 7346 7347 * mpn/minithres/gmp-mparam.h: Update with several recent thresholds. 7348 7349 2010-12-19 Torbjorn Granlund <tege@gmplib.org> 7350 7351 * mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms. 7352 * mpn/x86/k7/mod_1_4.asm: Likewise. 7353 * mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise. 7354 * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise. 7355 * mpn/x86_64/core2/divrem_1.asm: Likewise. 7356 * mpn/x86_64/divrem_1.asm: Likewise. 7357 * mpn/x86_64/mod_1_1.asm: Likewise. 7358 * mpn/x86_64/mod_1_2.asm: Likewise. 7359 * mpn/x86_64/mod_1_4.asm: Likewise. 7360 7361 * mpn/x86/k7/gcd_1.asm: Rewrite. Remove slow 'div' loop. Call 7362 mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs. 7363 Misc cleanups. 7364 7365 2010-12-18 Torbjorn Granlund <tege@gmplib.org> 7366 7367 * mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than 7368 BMOD_1_TO_MOD_1_THRESHOLD limbs. 7369 7370 * configure.in: Generalise code for putting THRESHOLDs in config.m4. 7371 Add BMOD_1_TO_MOD_1_THRESHOLD to list. 7372 7373 * mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts. 7374 7375 * mpn/x86_64/addmul_2.asm: Remove constant index. 7376 * mpn/x86_64/lshiftc.asm: Likewise. 7377 * mpn/x86_64/pentium4/lshift.asm: Likewise. 7378 * mpn/x86_64/pentium4/lshiftc.asm: Likewise. 7379 * mpn/x86_64/pentium4/rshift.asm: Likewise. 7380 7381 2010-12-16 Torbjorn Granlund <tege@gmplib.org> 7382 7383 * mpn/x86_64/mod_34lsub1.asm: Complete rewrite. 7384 * mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old 7385 mpn/x86_64/mod_34lsub1.asm. 7386 7387 2010-12-15 Torbjorn Granlund <tege@gmplib.org> 7388 7389 * mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table. 7390 7391 2010-12-14 Torbjorn Granlund <tege@gmplib.org> 7392 7393 * mp-h.in: Remove. 7394 * configure.in: Remove mp-h.in from AC_OUTPUT invocation. 7395 7396 2010-12-13 Torbjorn Granlund <tege@gmplib.org> 7397 7398 * mpz/mod.c: Rewrite. 7399 7400 * mpn/x86_64/corei/popcount.asm: New file. 7401 * mpn/x86_64/corei/hamdist.asm: New file. 7402 7403 * mpn/x86_64/k10/hamdist.asm: New file. 7404 7405 * configure.in: Amend last change for lame /bin/sh. 7406 7407 2010-12-12 Torbjorn Granlund <tege@gmplib.org> 7408 7409 * configure.in: Comment out M4=m4-not-needed. 7410 7411 * mpn/x86_64/k10/popcount.asm: New file. 7412 * configure.in: Setup special path for k10 and later AMD CPUs. 7413 Remove special x86_64'k8' path, since directory is non-existent. 7414 7415 2010-12-11 Torbjorn Granlund <tege@gmplib.org> 7416 7417 * mpn/sparc32/ultrasparct1: New directory. 7418 * mpn/sparc32/ultrasparct1/add_n.asm: New file. 7419 * mpn/sparc32/ultrasparct1/sub_n.asm: New file. 7420 * mpn/sparc32/ultrasparct1/mul_1.asm: New file. 7421 * mpn/sparc32/ultrasparct1/addmul_1.asm: New file. 7422 * mpn/sparc32/ultrasparct1/submul_1.asm: New file. 7423 * mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file. 7424 7425 * config.guess: Support Ultrasparc T2 and T3. 7426 * config.sub: Likewise. 7427 * configure.in: Likewise. 7428 7429 * config.guess: Generalise BSD Sparc recognition by allowing any 7430 caps (needed for OpenBSD which spells things innovatively). 7431 7432 2010-12-01 Torbjorn Granlund <tege@gmplib.org> 7433 7434 * config.guess: Match new AMD processors, allow finer distinctions 7435 among old ones. 7436 * acinclude.m4 (X86_64_PATTERN): Likewise. 7437 * config.sub: Likewise. 7438 * configure.in: Rudimentarily support new AMD processors. 7439 7440 * configure.in (--enable_assembly): New option. 7441 (target none-*-*): Disable, give error. 7442 7443 2010-11-29 Torbjorn Granlund <tege@gmplib.org> 7444 7445 * mpn/x86/x86-defs.m4 (LEA): Support non-PIC code. 7446 * mpn/x86/darwin.m4 (LEA): Likewise. 7447 7448 * tests/amd64call.asm: Rewrite for code size, and to match calls and 7449 returns. 7450 7451 * tests/x86call.asm: Rewrite for code size, to support PIC, and to 7452 match calls and returns. 7453 * tests/x86check.c: Rewrite. 7454 7455 2010-11-22 Torbjorn Granlund <tege@gmplib.org> 7456 7457 * mpz/get_str.c: Make all bases either work or return an error. 7458 * mpz/out_str.c: Likewise. 7459 * mpq/get_str.c: Likewise. 7460 * mpf/get_str.c: Likewise. 7461 7462 2010-11-14 Torbjorn Granlund <tege@gmplib.org> 7463 7464 * tests/misc/t-printf.c: Add explicit casts for type conversions. 7465 * mpn/generic/toom62_mul.c: Likewise. 7466 7467 2010-11-13 Torbjorn Granlund <tege@gmplib.org> 7468 7469 * mpn/generic/get_d.c: Misc cleanup. Fail with a syntax error for 7470 non-IEEE fp formats. 7471 7472 * tests/devel/try.c (malloc_region): Add explicit casts for type 7473 conversions. 7474 7475 * acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible. 7476 (GMP_C_DOUBLE_FORMAT): Likewise. 7477 (GMP_FUNC_VSNPRINTF): Likewise. 7478 7479 * config.guess (x86): Make test C snippet C++ compatible. 7480 7481 2010-11-12 Torbjorn Granlund <tege@gmplib.org> 7482 7483 * Makefile.am: Remove mpbsd. 7484 * configure.in: Remove mpbsd. 7485 * doc/configuration: Remove mpbsd mentions. 7486 * doc/gmp.texi: Remove mpbsd docs. 7487 * tests/Makefile.am: Remove mpbsd. 7488 * libmp.sym: Remove. 7489 * mpbsd: Remove directory and files. 7490 * tests/mpbsd: Remove directory and files. 7491 7492 2010-11-11 Torbjorn Granlund <tege@gmplib.org> 7493 7494 * mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn. 7495 Use 64-bit 'test' to support operands of 2^32 limbs and more. 7496 7497 * rand: New directory, move rand*.c and randmt.h here. 7498 * rand/Makefile.am: New file. 7499 * Makefile.am (SUBDIRS): Add rand. 7500 (RANDOM_OBJECTS): New variable. 7501 (libgmp_la_SOURCES): Remove random objects. 7502 (libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS. 7503 * configure.in (AC_OUTPUT): Add rand/Makefile. 7504 7505 * ansi2knr.1: File removed. 7506 * ansi2knr.c: File removed. 7507 7508 2010-11-10 Torbjorn Granlund <tege@gmplib.org> 7509 7510 Make it possible to compile GMP with g++: 7511 7512 * gmp-impl.h: Declare __gmp_digit_value_tab here. 7513 * mpbsd/min.c: ...not here. 7514 * mpbsd/xtom.c: ...nor here. 7515 * mpf/set_str.c: ...nor here. 7516 * mpz/inp_str.c: ...nor here. 7517 * mpz/set_str.c: ...nor here. 7518 7519 * mpn/generic/toom43_mul.c: Add casts for logical operations on enums. 7520 * mpn/generic/toom44_mul.c: Likewise. 7521 * mpn/generic/toom4_sqr.c: Likewise. 7522 * mpn/generic/toom52_mul.c: Likewise. 7523 * mpn/generic/toom53_mul.c: Likewise. 7524 * mpn/generic/toom62_mul.c: Likewise. 7525 7526 * mpz/clrbit.c: Clean up typing using MPZ_REALLOC. 7527 * mpz/setbit.c: Likewise. 7528 7529 * mpz/powm.c: Avoid variable name 'new'. 7530 7531 * randlc2x.c: Add explicit casts for type conversions. 7532 * tests/misc/t-printf.c: Likewise. 7533 * tests/misc/t-scanf.c: Likewise. 7534 * tests/misc.c: Likewise. 7535 * tests/mpz/convert.c: Likewise. 7536 * tests/refmpn.c: Likewise. 7537 7538 * tests/tests.h: Unconditionally use <sstream> for now. 7539 7540 * tests/memory.c: Include "tests.h. 7541 7542 * mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype. 7543 * mp_set_fns.c: Likewise. 7544 * mpf/cmp.c: Likewise. 7545 * mpf/cmp_si.c: Likewise. 7546 * mpf/cmp_ui.c: Likewise. 7547 * mpf/fits_s.h: Likewise. 7548 * mpf/fits_u.h: Likewise. 7549 * mpf/get_dfl_prec.c: Likewise. 7550 * mpf/get_prc.c: Likewise. 7551 * mpf/get_si.c: Likewise. 7552 * mpf/get_ui.c: Likewise. 7553 * mpf/int_p.c: Likewise. 7554 * mpf/set_dfl_prec.c: Likewise. 7555 * mpf/set_prc_raw.c: Likewise. 7556 * mpf/size.c: Likewise. 7557 * mpf/swap.c: Likewise. 7558 * mpq/equal.c: Likewise. 7559 * mpq/swap.c: Likewise. 7560 * mpz/cmp.c: Likewise. 7561 * mpz/cmp_si.c: Likewise. 7562 * mpz/cmp_ui.c: Likewise. 7563 * mpz/cmpabs.c: Likewise. 7564 * mpz/cmpabs_ui.c: Likewise. 7565 * mpz/cong_2exp.c: Likewise. 7566 * mpz/divis_2exp.c: Likewise. 7567 * mpz/fits_s.h: Likewise. 7568 * mpz/get_si.c: Likewise. 7569 * mpz/hamdist.c: Likewise. 7570 * mpz/scan0.c: Likewise. 7571 * mpz/scan1.c: Likewise. 7572 * mpz/sizeinbase.c: Likewise. 7573 * mpz/swap.c: Likewise. 7574 * mpz/tstbit.c: Likewise. 7575 * tal-reent.c: Likewise. 7576 7577 2010-11-09 Torbjorn Granlund <tege@gmplib.org> 7578 7579 * configure.in: Get rid of K&R support. 7580 * Makefile.am: Likewise. 7581 * mpn/Makefile.am: Likewise. 7582 * doc/configuration: Update docs wrt K&R support. 7583 * doc/gmp.texi: Likewise. 7584 7585 * configure.in (AC_INIT): Amend bug reporting address with manual 7586 reference. 7587 7588 2010-11-06 Torbjorn Granlund <tege@gmplib.org> 7589 7590 * config.guess: If cpuid says we have 32bit-only x86 but 7591 configfsf.guess return x86_64, return the latter. 7592 7593 * mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn. 7594 7595 2010-10-09 Torbjorn Granlund <tege@gmplib.org> 7596 7597 * mpn/generic/trialdiv.c: Update documentation. 7598 7599 2010-10-04 Torbjorn Granlund <tege@gmplib.org> 7600 7601 * mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator. 7602 * mpn/x86_64/aorrlshC_n.asm: Likewise. 7603 * mpn/x86_64/pentium4/aorslshC_n.asm: Likewise. 7604 * mpn/x86/k7/gcd_1.asm: Likewise. 7605 7606 2010-08-20 Niels Möller <nisse@lysator.liu.se> 7607 7608 Suggested by Ozkan Sezer: 7609 * configure.in: If $M4 is already set in the environment, don't 7610 touch it. Fixed the case that no assembler files are used, and 7611 GMP_PROG_M4 is omitted. 7612 7613 2010-08-08 Torbjorn Granlund <tege@gmplib.org> 7614 7615 * mpn/x86_64/fat/fat.c: Recognise many more processors. 7616 7617 2010-06-30 Torbjorn Granlund <tege@gmplib.org> 7618 7619 * mpn/x86_64/divrem_2.asm: Tune. 7620 7621 2010-06-19 Niels Möller <nisse@lysator.liu.se> 7622 7623 * tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized 7624 divisor to the benchmarked function. 7625 7626 2010-06-15 Torbjorn Granlund <tege@gmplib.org> 7627 7628 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite. 7629 * mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite. 7630 * mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. 7631 7632 * gmp-impl.h (udiv_rnd_preinv): Simplify. 7633 7634 * mpn/x86/k7/mod_1_1.asm: New file. 7635 * mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite. 7636 * mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. 7637 * mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. 7638 7639 * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are 7640 computed. 7641 * mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise. 7642 * mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise. 7643 7644 * mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm. 7645 7646 2010-06-15 Niels Möller <nisse@lysator.liu.se> 7647 7648 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1. 7649 * tests/mpn/t-mod_1.c: New file. 7650 7651 2010-05-25 Torbjorn Granlund <tege@gmplib.org> 7652 7653 * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space 7654 for inverse, since that is passed in already. 7655 7656 2010-05-24 Torbjorn Granlund <tege@gmplib.org> 7657 7658 * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function. 7659 * gmp-impl.h: Declare it. 7660 * tune/common.c (speed_mpn_mupi_div_qr): Use new itch function. 7661 * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right 7662 for new itch function. 7663 7664 * mpn/powerpc32/lshiftc.asm: New file. 7665 7666 2010-05-22 Torbjorn Granlund <tege@gmplib.org> 7667 7668 * tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06. 7669 7670 2010-05-17 Torbjorn Granlund <tege@gmplib.org> 7671 7672 * configure.in (ia64): Get 32-bit sizeof test right. 7673 7674 * tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of 7675 PREINV_MOD_1_TO_MOD_1_THRESHOLD. 7676 7677 2010-05-16 Torbjorn Granlund <tege@gmplib.org> 7678 7679 * mpn/sparc64/mod_1.c: Rewrite. 7680 * mpn/sparc64/sparc64.h (umul_ppmm_s): New macro. 7681 * mpn/sparc64/mod_1_4.c: New file. 7682 7683 * mpn/generic/divrem_1.c: Minor cleanup. 7684 * mpn/generic/mod_1.c: Likewise. 7685 * mpn/generic/mod_1_1.c: Likewise. 7686 * mpn/generic/mod_1_2.c: Likewise. 7687 * mpn/generic/mod_1_3.c: Likewise. 7688 * mpn/generic/mod_1_4.c: Likewise. 7689 7690 * configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI. 7691 7692 * tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before 7693 tuning MOD_1U_TO_MOD_1_1_THRESHOLD. 7694 7695 2010-05-14 Torbjorn Granlund <tege@gmplib.org> 7696 7697 * mpn/generic/redc_2.c: Use asm code just for GNU C. 7698 7699 2010-05-13 Torbjorn Granlund <tege@gmplib.org> 7700 7701 * mpn/sparc64/ultrasparc1234: New directory. Move all code that uses 7702 floating-point into this directory. 7703 * configure.in: Point to ultrasparc1234 for appropriate CPUs. 7704 7705 * mpn/sparc64/ultrasparct1/add_n.asm: New file. 7706 * mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file. 7707 * mpn/sparc64/ultrasparct1/addmul_1.asm: New file. 7708 * mpn/sparc64/ultrasparct1/lshift.asm: New file. 7709 * mpn/sparc64/ultrasparct1/mul_1.asm: New file. 7710 * mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file. 7711 * mpn/sparc64/ultrasparct1/rshift.asm: New file. 7712 * mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file. 7713 * mpn/sparc64/ultrasparct1/sublshC_n.asm: New file. 7714 * mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file. 7715 * mpn/sparc64/ultrasparct1/addlshC_n.asm: New file. 7716 * mpn/sparc64/ultrasparct1/lshiftc.asm: New file. 7717 * mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file. 7718 * mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file. 7719 * mpn/sparc64/ultrasparct1/sub_n.asm: New file. 7720 * mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file. 7721 * mpn/sparc64/ultrasparct1/submul_1.asm: New file. 7722 * mpn/sparc64/ultrasparct1/gmp-mparam.h: New file. 7723 7724 * configure.in: Give ultrasparct1 and ultrasparct2 special code path. 7725 7726 * mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n. 7727 7728 2010-05-12 Niels Möller <nisse@lysator.liu.se> 7729 7730 * mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of 7731 scratch space. 7732 7733 * tune/common.c (speed_mpz_powm_sec): New function. 7734 * tune/speed.h: Declare speed_mpz_powm_sec. 7735 * tune/speed.c (routine): Added speed_mpz_powm_sec. 7736 7737 * tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n) 7738 (speed_mpn_rsblsh_n): New functions. 7739 * tune/speed.h: Declare new functions. 7740 * tune/speed.c (routine): Add new functions. 7741 7742 2010-05-12 Torbjorn Granlund <tege@gmplib.org> 7743 7744 * mpn/x86_64/mod_1_4.asm: Tune for more processors. 7745 7746 * mpn/x86_64/pentium4/lshiftc.asm: New file. 7747 7748 2010-05-11 Niels Möller <nisse@lysator.liu.se> 7749 7750 * mpz/jacobi.c (mpz_jacobi): Deleted old implementation. 7751 Reorganized new implementation, to handle small inputs efficiently. 7752 7753 * tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes. 7754 (check_data): One more input pair related to a fixed bug. 7755 (main): Enable check_large_quotients. 7756 7757 2010-05-10 Torbjorn Granlund <tege@gmplib.org> 7758 7759 * mpn/x86_64/aorrlsh2_n.asm: Fix typo. 7760 7761 2010-05-09 Torbjorn Granlund <tege@gmplib.org> 7762 7763 * mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm. 7764 * mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm. 7765 * mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm. 7766 * mpn/x86_64/core2/aorrlsh2_n.asm: Likewise. 7767 7768 * mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm. 7769 * mpn/x86_64/core2/aorslsh1_n.asm: Remove. 7770 * mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm. 7771 * mpn/x86_64/core2/sublsh2_n.asm: Likewise. 7772 7773 2010-05-08 Torbjorn Granlund <tege@gmplib.org> 7774 7775 * mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n. 7776 7777 * mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm. 7778 * mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm. 7779 * mpn/x86_64/pentium4/aorslsh2_n.asm: New file. 7780 7781 2010-05-07 Torbjorn Granlund <tege@gmplib.org> 7782 7783 * mpn/sparc64: Support operands of >= 2^32 limbs. 7784 7785 * mpn/sparc64/lshiftc.asm: New file. 7786 7787 * mpn/ia64/divrem_2.asm: Complete rewrite. 7788 7789 2010-05-06 Torbjorn Granlund <tege@gmplib.org> 7790 7791 * tune/tuneup.c (all): Don't call tune_divrem_2. 7792 7793 * mpn/generic/divrem_2.c: Complete rewrite. 7794 7795 * tune/tuneup.c (tune_mod_1): Fix typo. 7796 7797 2010-05-05 Torbjorn Granlund <tege@gmplib.org> 7798 7799 * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names. 7800 (mpn_mod_1_1p_cps): Rewrite. 7801 7802 * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise. 7803 7804 * longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code. 7805 7806 * mpn/x86/pentium4/sse2/mod_1_1.asm: New file. 7807 7808 * mpn/powerpc64/mode64/mod_1_1.asm: New file. 7809 7810 * tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit 7811 of machines with early-out multipliers. 7812 7813 2010-05-04 Torbjorn Granlund <tege@gmplib.org> 7814 7815 * tune/tuneup.c (tune_mod_1): Fix typo. 7816 7817 * mpn/generic/mod_1_1.c: Undo last change. 7818 * mpn/x86_64/mod_1_1.asm: Likewise. 7819 7820 2010-05-03 Niels Möller <nisse@lysator.liu.se> 7821 7822 * mpn/generic/jacobi_lehmer.c (jacobi_hook): New function. 7823 (mpn_jacobi_subdiv_step): Deleted function. 7824 (mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step. 7825 7826 * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized 7827 to use a single hook function. 7828 * mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook 7829 interface. 7830 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook 7831 function. 7832 * mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted 7833 to new hook interface. 7834 * gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function 7835 type, not a struct. 7836 (mpn_gcdext_hook): Declare. 7837 7838 2010-05-03 Torbjorn Granlund <tege@gmplib.org> 7839 7840 * mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in. 7841 * mpn/generic/mod_1_2.c: Likewise. 7842 * mpn/generic/mod_1_3.c: Likewise. 7843 * mpn/generic/mod_1_4.c: Likewise. 7844 * mpn/x86_64/mod_1_1.asm: Likewise. 7845 * mpn/x86_64/mod_1_2.asm: Likewise. 7846 * mpn/x86_64/mod_1_4.asm: Likewise. 7847 * mpn/x86/k7/mod_1_4.asm: Likewise. 7848 * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise. 7849 * mpn/alpha/ev6/mod_1_4.asm: Likewise. 7850 7851 * tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and 7852 MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for 7853 correctness. 7854 7855 * mpn/powerpc64/sqr_diagonal.asm: Complete rewrite. 7856 7857 * mpn/powerpc64/mode64/mod_1_4.asm: New file. 7858 7859 2010-05-02 Torbjorn Granlund <tege@gmplib.org> 7860 7861 * config.guess: Recognise power7. 7862 7863 * configure.in: Major overhaul of powerpc support. 7864 7865 * mpn/powerpc64/p6/lshift.asm: New file. 7866 * mpn/powerpc64/p6/lshiftc.asm: Likewise. 7867 * mpn/powerpc64/p6/rshift.asm: Likewise. 7868 7869 2010-04-30 Torbjorn Granlund <tege@gmplib.org> 7870 7871 * configure.in (powerpc64): Support CPU specific mode-less subdirs. 7872 7873 * mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making 7874 requested alignment actually honoured. 7875 7876 2010-04-30 Niels Möller <nisse@lysator.liu.se> 7877 7878 * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of 7879 the case bl == 1. Fixed missing application of reciprocity. 7880 7881 2010-04-29 Niels Möller <nisse@lysator.liu.se> 7882 7883 * configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step. 7884 7885 * mpn/generic/gcdext.c (mpn_gcdext): Use new generalized 7886 mpn_gcd_subdiv_step. 7887 7888 * mpn/generic/gcdext_lehmer.c (gcdext_update): New function. 7889 (gcdext_done): New function. 7890 (gcdext_hook): New const hook struct. 7891 (mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step. 7892 7893 * mpn/generic/gcd.c (gcd_done): New function. 7894 (gcd_hook): New const hook struct. 7895 (mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface. 7896 7897 * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized 7898 function. Added hook function pointers to the argument list, so 7899 the same function can be used for gcd, gcdext, and jacobi. 7900 7901 * gmp-impl.h (struct gcd_subdiv_step_hook): New struct. 7902 (mpn_gcdext_subdiv_step): Deleted prototype. 7903 (struct gcdext_ctx): New struct. 7904 (gcdext_hook): Declare const struct. 7905 (mpn_gcd_subdiv_step): Updated prototype. 7906 7907 * mpn/generic/gcdext_subdiv_step.c: Deleted file. 7908 7909 2010-04-28 Torbjorn Granlund <tege@gmplib.org> 7910 7911 * mpn/powerpc64/lshift.asm: Rewrite. 7912 * mpn/powerpc64/rshift.asm: Likewise. 7913 * mpn/powerpc64/mode64/lshiftc.asm: New file. 7914 7915 * mpn/powerpc64/aix.m4: Align functions to 32-byte boundary. 7916 * mpn/powerpc64/darwin.m4: Likewise. 7917 * mpn/powerpc64/elf.m4: Likewise. 7918 7919 2010-04-28 Niels Möller <nisse@lysator.liu.se> 7920 7921 * tests/mpz/t-jac.c (check_data): Added some more test cases. 7922 7923 * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count 7924 trailing zeros, not leading. 7925 7926 2010-04-27 Torbjorn Granlund <tege@gmplib.org> 7927 7928 * mpn/powerpc64/mode64/p6/mul_basecase.asm: New file. 7929 7930 2010-04-23 Niels Möller <nisse@lysator.liu.se> 7931 7932 * gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted. 7933 (mpn_gcd_lehmer_n): Deleted declaration. 7934 7935 * mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c. 7936 (mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use 7937 MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH. 7938 7939 2010-04-22 Torbjorn Granlund <tege@gmplib.org> 7940 7941 * mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them 7942 consecutive, for the benefit of POWER6. 7943 7944 * mpn/powerpc64/mode64/p6/gmp-mparam.h: New file. 7945 7946 2010-04-21 Torbjorn Granlund <tege@gmplib.org> 7947 7948 * mpn/generic/gcd_lehmer.c: Deleted file. 7949 7950 * mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them 7951 consecutive, for the benefit of POWER6. 7952 * mpn/powerpc64/mode64/dive_1.asm: Likewise. 7953 * mpn/powerpc64/mode64/divrem_2.asm: Likewise. 7954 * mpn/powerpc64/mode64/mul_1.asm: Likewise. 7955 * mpn/powerpc64/mode64/aorsmul_1.asm: Likewise. 7956 7957 * mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary 7958 workaround for POWER6 pipeline glitch. 7959 7960 2010-04-19 Niels Möller <nisse@lysator.liu.se> 7961 7962 * mpz/jacobi.c (mpz_jacobi): New implementation using 7963 mpn_jacobi_lehmer. Currently #if:ed out. 7964 7965 * mpn/generic/jacbase.c (mpn_jacobi_base) 7966 [JACOBI_BASE_METHOD < 4]: Support inputs with a >= b. 7967 7968 * gmp-impl.h (mpn_jacobi_lehmer): Added prototype. 7969 (jacobi_table): Declare. 7970 (mpn_jacobi_init): New inline function. 7971 (mpn_jacobi_finish): Likewise. 7972 (mpn_jacobi_update): Likewise. 7973 7974 * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new 7975 function. 7976 7977 * configure.in (gmp_mpn_functions): Added jacobi_lehmer. 7978 7979 2010-04-14 Niels Möller <nisse@lysator.liu.se> 7980 7981 * configure.in (gmp_mpn_functions): Added 7982 matrix22_mul1_inverse_vector. 7983 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added 7984 matrix22_mul1_inverse_vector.c. 7985 7986 * gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for 7987 rename of mpn_matrix22_mul1_inverse_vector. 7988 * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise. 7989 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise. 7990 * mpn/generic/hgcd.c (hgcd_step): Likewise. 7991 7992 * mpn/generic/matrix22_mul1_inverse_vector.c 7993 (mpn_matrix22_mul1_inverse_vector): New file, function moved and 7994 renamed... 7995 * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector): 7996 ...from here. 7997 7998 2010-04-12 Torbjorn Granlund <tege@gmplib.org> 7999 8000 * tests/mpn/t-toom6h.c (SIZE_LOG): Define. 8001 * tests/mpn/t-toom8h.c (SIZE_LOG): Likewise. 8002 8003 2010-04-10 Torbjorn Granlund <tege@gmplib.org> 8004 8005 * mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code. 8006 8007 * mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n. 8008 * mpn/ia64/aorslsh1_n.asm: Likewise. 8009 8010 * mpn/ia64/aors_n.asm: Complete rewrite. 8011 * mpn/ia64/aorslsh1_n.asm: Likewise. 8012 8013 * mpn/ia64/add_n_sub_n.asm: Misc cleanups. Add slotting comments. 8014 8015 * mpn/ia64/lshiftc.asm: New file. 8016 8017 * mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and 8018 rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n. 8019 8020 * mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around 8021 Solaris assembler bug. 8022 * mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise. 8023 8024 * mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form. 8025 * mpn/x86/pentium/aors_n.asm: Likewise. 8026 * mpn/x86_64/invert_limb.asm: Likewise. 8027 8028 * mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code. 8029 8030 * mpn/x86_64/pentium4/rsh1aors_n.asm: New file. 8031 8032 2010-03-25 Torbjorn Granlund <tege@gmplib.org> 8033 8034 * mpn/ia64/add_n_sub_n.asm: New file. 8035 8036 * mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage. 8037 * mpn/generic/toom3_sqr.c: Likewise. 8038 * mpn/generic/toom63_mul.c: Likewise. 8039 8040 * mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c. 8041 8042 2010-03-23 Torbjorn Granlund <tege@gmplib.org> 8043 8044 * mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn. 8045 8046 * mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of 8047 aorslsh1_n.asm. 8048 * mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm. 8049 * mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm. 8050 8051 2010-03-20 Torbjorn Granlund <tege@gmplib.org> 8052 8053 * mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation 8054 in the Newton iteration. 8055 8056 2010-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 8057 8058 * mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n. 8059 8060 2010-03-20 Torbjorn Granlund <tege@gmplib.org> 8061 8062 * mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from 8063 last iteration of aorslsh1_n.asm. 8064 * mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm. 8065 * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm. 8066 8067 2010-03-19 Torbjorn Granlund <tege@gmplib.org> 8068 8069 * mpn/x86_64/nano/dive_1.asm: New file. 8070 8071 * mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU 8072 types. Unconditionally provide code for normalised and unnormalised 8073 divisors. Cleanup labels. 8074 8075 * mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised 8076 divisors. Cleanup labels. 8077 8078 * mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and 8079 mpn_sublsh_n with correct args. 8080 8081 * tests/devel/try.c: Use enum for TYPE_*. 8082 8083 * tests/devel/try.c: Test mpn_sublsh2_n. 8084 * tests/refmpn.c (refmpn_sublsh2_n): New function. 8085 * tests/tests.h (refmpn_sublsh2_n): Declare. 8086 8087 * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster 8088 mpn_addlsh1_n and mpn_sublsh1_n. 8089 * mpn/powerpc64/mode64/addlsh1_n.asm: Delete. 8090 * mpn/powerpc64/mode64/sublsh1_n.asm: Delete. 8091 8092 2010-03-18 Torbjorn Granlund <tege@gmplib.org> 8093 8094 * configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and 8095 nm_32_flags. 8096 8097 * mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed. 8098 Misc cleanups. Add cycle table. 8099 8100 * mpn/x86_64/copyi.asm: Update cycle table. 8101 * mpn/x86_64/copyd.asm: Likewise. 8102 * mpn/x86_64/rsh1aors_n.asm: Likewise. 8103 * mpn/x86_64/dive_1.asm: Likewise. 8104 8105 * mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups. Add cycle table. 8106 * mpn/x86/pentium4/sse2/sub_n.asm: Likewise. 8107 8108 2010-03-16 Torbjorn Granlund <tege@gmplib.org> 8109 8110 * mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn. 8111 * mpn/x86_64/core2/divrem_1.asm: Likewise. 8112 8113 * tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops. 8114 8115 2010-03-15 Torbjorn Granlund <tege@gmplib.org> 8116 8117 * mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. 8118 8119 * mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended 8120 bundling. 8121 * mpn/ia64/aorslsh1_n.asm: Likewise. 8122 * mpn/ia64/dive_1.asm: Likewise. 8123 8124 2010-03-13 Torbjorn Granlund <tege@gmplib.org> 8125 8126 * mpn/x86/pentium4/sse2/submul_1.asm: Rewrite. 8127 8128 * mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code 8129 for both mpn_addmul_1 and mpn_submul_1. 8130 * mpn/powerpc64/mode64/addmul_1.asm: Remove. 8131 * mpn/powerpc64/mode64/submul_1.asm: Remove. 8132 8133 2010-03-11 Niels Möller <nisse@lysator.liu.se> 8134 8135 * mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss. 8136 8137 * mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the 8138 JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1. 8139 8140 2010-03-10 Torbjorn Granlund <tege@gmplib.org> 8141 8142 * mpn/x86_64/divrem_1.asm: Make fraction code take documented # of 8143 cycles. Annotate code for more CPUs. Misc cleanups. 8144 * mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs. 8145 8146 * mpn/alpha/ev6/mod_1_4.asm: New file. 8147 8148 * mpn/ia64/mod_34lsub1.asm: New file. 8149 8150 * doc/gmp.texi (Language Bindings): Update Python site, add Ruby. 8151 8152 2010-03-10 Niels Möller <nisse@lysator.liu.se> 8153 8154 * tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4. 8155 * tune/speed.c (routine): Added mpn_jacobi_base_4. 8156 * tune/common.c (speed_mpn_jacobi_base_4): New function. 8157 * tune/speed.h (speed_mpn_jacobi_base_4): Declare it. 8158 * tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c. 8159 * tune/jacbase4.c: New file. 8160 8161 * mpn/generic/jacbase.c (mpn_jacobi_base): New function, for 8162 JACOBI_BASE_METHOD 4. 8163 8164 2010-03-09 Niels Möller <nisse@lysator.liu.se> 8165 8166 * tests/mpz/t-jac.c (check_large_quotients): Also generate inputs 8167 with large quotients and a large gcd. 8168 8169 2010-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 8170 8171 * tests/mpz/t-bin.c (randomwalk): New test-generator function. 8172 8173 2010-03-07 Torbjorn Granlund <tege@gmplib.org> 8174 8175 * tune/speed.c (routine): Force r argument for several mod_1 calls. 8176 8177 2010-03-06 Torbjorn Granlund <tege@gmplib.org> 8178 8179 * mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR. 8180 Misc clean up. 8181 8182 * mpn/x86_64/mod_1_1.asm: New file. 8183 * mpn/x86_64/mod_1_2.asm: New file. 8184 * mpn/x86_64/mod_1_4.asm: Update cycle counts. 8185 8186 * tests/tests.h (TESTS_REPS): Fix typo. 8187 8188 2010-03-03 Torbjorn Granlund <tege@gmplib.org> 8189 8190 * mpn/x86_64/core2/divrem_1.asm: New file. 8191 8192 2010-02-26 Niels Möller <nisse@lysator.liu.se> 8193 8194 * tune/speed.c (routine): Added udiv_qrnnd_preinv3. 8195 8196 * tune/common.c (speed_udiv_qrnnd_preinv3): New function. 8197 * tune/speed.h: Added prototype for it. 8198 8199 2010-02-26 Niels Möller <nisse@lysator.liu.se> 8200 8201 * tests/mpz/t-jac.c (check_large_quotients): New test. Currently 8202 disabled, since it's quite slow. 8203 (mpz_nextprime_step): New function. 8204 8205 2010-02-26 Torbjorn Granlund <tege@gmplib.org> 8206 8207 * mpn/pa64/aors_n.asm: Fix typo in last change. 8208 8209 2010-02-25 Niels Möller <nisse@lysator.liu.se> 8210 8211 * tests/mpz/t-jac.c (ref_jacobi): New reference implementation, 8212 using factorization and legendre symbols computed by powm. 8213 8214 * tests/devel/try.c (param_init, call): Don't pass negative values 8215 for the second argument to mpz_jacobi and refmpz_jacobi. 8216 8217 * tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive. 8218 8219 * tests/devel/try.c (param_init): Support mpz_legendre. 8220 (choice_array): Added mpz_kronecker (apparently forgotten) and 8221 mpz_legendre. 8222 (call): Added TYPE_MPZ_LEGENDRE. 8223 (try_one): Added support for DATA_SRC1_ODD_PRIME. 8224 8225 * tests/refmpz.c (refmpz_legendre): Rewrote using powm. 8226 8227 2010-02-25 Torbjorn Granlund <tege@gmplib.org> 8228 8229 * config.guess: Make "corei" default for unrecognised Intel P6 CPUs. 8230 8231 * tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb 8232 variables. 8233 8234 * tests/mpn/t-toom6h.c (COUNT): Define. 8235 * tests/mpn/t-toom8h.c (COUNT): Define. 8236 8237 * tests/mpn/t-div.c: Cast a switch index to placate HP's cc. 8238 * tests/mpn/t-bdiv.c: Likewise. 8239 8240 * mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI. 8241 8242 2010-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 8243 8244 * tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos (). 8245 * tests/mpf/t-inp_str.c (data): Test also "+" in the exponent. 8246 8247 2010-02-23 Torbjorn Granlund <tege@gmplib.org> 8248 8249 * mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc. 8250 8251 * mpn/generic/sqrtrem.c: Use CNST_LIMB. 8252 8253 2010-02-20 Niels Möller <nisse@lysator.liu.se> 8254 8255 * tune/speed.h (mpn_gcd_accel): Deleted prototype. 8256 (mpn_hgcd_lehmer): New prototype. 8257 (MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h). 8258 8259 * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c. 8260 * tune/hgcd_lehmer.c: New file. 8261 * tune/gcd_accel.c: Deleted obsolete file. 8262 8263 * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro. 8264 8265 * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function, 8266 (mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop 8267 around hgcd_step. 8268 (mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n). 8269 8270 2010-02-19 Niels Möller <nisse@lysator.liu.se> 8271 8272 * Makefile.am (mpn/jacobitab.h): Added the rules needed to 8273 generate this file. 8274 8275 * gen-jacobitab.c: New file. 8276 8277 2010-02-19 Torbjorn Granlund <tege@gmplib.org> 8278 8279 * mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop 8280 expansions. 8281 8282 2010-02-16 Niels Möller <nisse@lysator.liu.se> 8283 8284 * tune/time.c (cgt_works_p): Added rudimentary sanity check for 8285 clock_gettime working. 8286 8287 2010-02-15 Niels Möller <nisse@lysator.liu.se> 8288 8289 * tune/time.c (speed_time_init): Make use of cycle counter 8290 configurable, via the speed_option_cycles_broken flag. 8291 * tune/common.c (speed_option_cycles_broken): New global variable. 8292 (speed_option_set): Recognize option "cycles-broken". 8293 8294 * tune/time.c (cycles_works_p): Deleted hack to disable cycle 8295 counter on linux. Needs to be replaced by something more 8296 selective. 8297 8298 2010-02-11 Niels Möller <nisse@lysator.liu.se> 8299 8300 * tune/time.c (speed_time_init): Fix speed_time_string when using 8301 clock_gettime. 8302 (cycles_works_p): On linux, don't use the cycle counter. 8303 8304 * tune/Makefile.am: Add $(TUNE_LIBS) when linking programs. 8305 8306 * configure.in: Check if -lrt is needed for clock_gettime, and if 8307 so, add that flag to TUNE_LIBS. 8308 8309 2010-02-07 Torbjorn Granlund <tege@gmplib.org> 8310 8311 * tune/tuneup.c (tune_redc): Set min_size and min_is_always when 8312 measuring REDC_1_TO_REDC_2_THRESHOLD. 8313 (tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD. 8314 8315 * mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo. 8316 * mpn/x86_64/lshsub_n.asm: Likewise. 8317 8318 2010-02-05 Torbjorn Granlund <tege@gmplib.org> 8319 8320 * Version 5.0.1 released. 8321 8322 * mpn/generic/powm.c: Use rp target area for power table computation in 8323 order to use less scratch. 8324 8325 * mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical 8326 mpn_mulmod_bnm1_itch call. 8327 8328 * mpn/generic/mu_div_qr.c: Remove always true #if. 8329 * mpn/generic/mu_divappr_q.c: Likewise. 8330 * mpn/generic/mu_bdiv_q.c: Likewise. 8331 * mpn/generic/mu_bdiv_qr.c: Likewise. 8332 8333 2010-02-01 Torbjorn Granlund <tege@gmplib.org> 8334 8335 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): 8336 Bump version info. 8337 8338 * mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2. 8339 * mpn/x86/p6/gmp-mparam.h: Likewise. 8340 * mpn/x86/p6/mmx/gmp-mparam.h: Likewise. 8341 * mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken. 8342 8343 2010-01-29 Torbjorn Granlund <tege@gmplib.org> 8344 8345 * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m, 8346 k and rec; add argument sqr. Don't call mpn_mul_fft_decompose here, 8347 instead do that in all callers. 8348 (mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not 8349 explicit alloc/free. 8350 (mpn_fft_div_2exp_modF): Avoid a scalar division. 8351 (mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k. 8352 (mpn_fft_mul_2exp_modF): Make function more symmetrical. 8353 8354 2010-01-27 Torbjorn Granlund <tege@gmplib.org> 8355 8356 * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite. 8357 * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable 8358 better mulmod itch estimate. 8359 * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. 8360 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. 8361 * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. 8362 8363 2010-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 8364 8365 * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed 8366 estimate, enabled a conservative one. 8367 * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. 8368 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. 8369 * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. 8370 8371 2010-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 8372 8373 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to 8374 reduce memory usage. 8375 * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise. 8376 (mpn_sqrmod_bnm1_next_size): New function. 8377 8378 * gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now. 8379 (mpn_sqrmod_bnm1_itch): New inline function. 8380 (mpn_sqrmod_bnm1_next_size): Declaration and mangling. 8381 * mpn/generic/nussbaumer_mul.c: Use the new functions. 8382 8383 * mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for 8384 mpn_mulmod_bnm1_itch. 8385 * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. 8386 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. 8387 * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. 8388 * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise. 8389 * mpn/generic/binvert.c (mpn_binvert_itch): Likewise. 8390 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise. 8391 (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise. 8392 8393 * tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test 8394 reduced memory usage. 8395 8396 2010-01-25 Torbjorn Granlund <tege@gmplib.org> 8397 8398 * tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but 8399 also inserting a sentinel. 8400 (fftmes): Use INSERT_FFTTAB for inserting new measurements. 8401 Limit k range to best_k - 4 ... best_k + 4. 8402 8403 2010-01-23 Torbjorn Granlund <tege@gmplib.org> 8404 8405 * gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump. 8406 (__GMP_MP_RELEASE): New macro. 8407 8408 * mpf/div.c: Rewrite to use mpn_div_q. 8409 8410 2010-01-21 Torbjorn Granlund <tege@gmplib.org> 8411 8412 * Add FFT_TABLE3 tables for a basic set of machines. 8413 8414 * configure.in: Use -mtune=nocona for 64-bit pentium4. 8415 8416 * config.guess: Recognise many more Intel processors. 8417 8418 * tune/common.c: Whitespace cleanup. 8419 (speed_mpn_matrix22_mul): Rewrite. 8420 8421 2010-01-21 Niels Möller <nisse@lysator.liu.se> 8422 8423 * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take 8424 advantage of new mpn_mulmod_bnm1 interface, to reduce allocation. 8425 8426 * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to 8427 mpn_mulmod_bnm1 interface change. 8428 8429 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change, 8430 in case an + bn < rn, only write an + bn output limbs. New input 8431 requirement, an + bn > rn/2. 8432 * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding 8433 changes. 8434 8435 2010-01-19 Torbjorn Granlund <tege@gmplib.org> 8436 8437 * tune/tuneup.c (fftmes): Round up initial n according to initial k. 8438 Limit k to 24 in loop. Remove an obsolete always-true condition. 8439 Remove a redundant trace printout. 8440 8441 2010-01-18 Torbjorn Granlund <tege@gmplib.org> 8442 8443 * tune/tuneup.c (fftmes): New function 8444 (fft): Rewrite. 8445 (mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c. 8446 (fftfill): New function, code taken from mul_fft.c (mpn_mul_fft). 8447 (cached_measure): New function. 8448 8449 * gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c. 8450 (MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup 8451 builds. 8452 (FFT_TABLE3_SIZE): Increase value for tuneup builds. 8453 8454 * mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3"). 8455 Misc cleanups to old table type code. 8456 8457 2010-01-16 Torbjorn Granlund <tege@gmplib.org> 8458 8459 * mpn/x86_64/darwin.m4: Fix typo in last change. 8460 8461 2010-01-15 Torbjorn Granlund <tege@gmplib.org> 8462 8463 * gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C. 8464 8465 * gmp-impl.h (GMP_LIMB_BYTES): New define. 8466 8467 * mpn/x86_64/darwin.m4 (LEA): New define. 8468 8469 * mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT. 8470 Rename and globalise it to work around Mac OS bug. 8471 8472 With Philip McLaughlin: 8473 * mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but 8474 use DEF_OBJECT...END_OBJECT. 8475 Keep stack pointer at ABI mandated alignment over call. 8476 8477 2010-01-12 Torbjorn Granlund <tege@gmplib.org> 8478 8479 * tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and 8480 mpn_dc_div_qr_n. 8481 * tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n): 8482 Remove now unused functions. 8483 * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N, 8484 SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove 8485 now unused macros. 8486 8487 * mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function. 8488 8489 * ltmain.sh: Upgrade from 1.5.24 to 2.2.6b. 8490 * ylwrap: New file. 8491 * .bootstrap: Remove explicit versions. 8492 8493 * doc/gmp.texi (Block-wise Barrett Division): New node. 8494 8495 * mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build 8496 problems. 8497 8498 2010-01-11 Torbjorn Granlund <tege@gmplib.org> 8499 8500 * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size 8501 restrictions. 8502 * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr, 8503 (speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size 8504 limits for SPEED_ROUTINE_MPN_PI1_DIV. 8505 8506 * tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and 8507 mpn_dcpi1_divappr_q. 8508 8509 2010-01-08 Torbjorn Granlund <tege@gmplib.org> 8510 8511 * Version 5.0.0 released. 8512 8513 * mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb 8514 everywhere. 8515 8516 2010-01-07 Torbjorn Granlund <tege@gmplib.org> 8517 8518 * Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines. 8519 8520 * mpn/generic/mu_div_q.c: Account for divisor truncation error as well 8521 as mpn_mu_divappr_q's error. 8522 8523 * mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a 8524 high limb. 8525 8526 * tests/mpn/t-bdiv.c: Move a random call for debugability. 8527 * tests/mpn/t-div.c: Likewise. 8528 8529 * mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code. 8530 8531 * mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation 8532 subtract. 8533 * mpn/generic/mu_divappr_q.c: Likewise. 8534 8535 * mpn/generic/mu_divappr_q.c 8536 (mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant. 8537 * gmp-impl.h: Likewise. 8538 8539 * perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of 8540 mpn_bdiv_q (with too little scratch space!). 8541 8542 From Niels Möller: 8543 * tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable 8544 tn. 8545 8546 * mpn/minithres/gmp-mparam.h: Add all lately defined thresholds. 8547 8548 * mpn/generic/div_q.c: Use SB division for small quotients as well as 8549 small divisors. Fix typo in itch call. 8550 8551 2010-01-06 Niels Möller <nisse@lysator.liu.se> 8552 8553 * tests/mpn/t-div.c (check_one): Checking based on multiplication, 8554 refmpn_mul, rather than refmpn_tdiv_qr. 8555 8556 2010-01-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 8557 8558 * mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t. 8559 8560 2010-01-06 Torbjorn Granlund <tege@gmplib.org> 8561 8562 * gmp-h.in (__GNU_MP__): Bump. 8563 (__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL): 8564 Bump version info. 8565 * mp-h.in (__GNU_MP__): Bump. 8566 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): 8567 Bump version info. 8568 8569 * doc/gmp.texi: Rewrite mpn_gcdext text. Remove some out-of-date 8570 text in Algorithms chapter. 8571 8572 * mpn/generic/div_q.c: Properly handle np=scratch. Fix critical typo 8573 in final adjustment code. Misc cleanups. 8574 8575 * mpn/generic/rootrem.c: Use mpn_div_q. 8576 * mpz/tdiv_q.c: Likewise. 8577 8578 * tests/mpn/t-div.c: Test mpn_div_q. 8579 (SIZE_LOG): Up to 17. 8580 8581 * mpn/generic/div_q.c: New file. 8582 * configure.in (gmp_mpn_functions): Add div_q. 8583 8584 * mpn/generic/mu_div_q.c: Actually declare dividend constant. 8585 8586 2010-01-04 Torbjorn Granlund <tege@gmplib.org> 8587 8588 * tune/tuneup.c (fft): Separate tuning of modf and full products. 8589 (struct fft_param_t): New field, mul_modf_function. 8590 (tune_fft_sqr): Fix typo. 8591 (tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field. 8592 * tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions. 8593 8594 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up. 8595 8596 * mpn/generic/mul.c: Simplify rational expression. 8597 8598 * gmp-impl.h: Cleanup threshold variables; remove obsolete ones and 8599 make all possibly needed definitions for existing ones. 8600 * tune/tuneup.c (tune_mul): Write fractions-compensated values to 8601 threshold variables. 8602 8603 2010-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 8604 8605 * tune/common.c, tune/speed.c, tune/speed.h: Support measuring 8606 mpn_toom43_mul. 8607 8608 * mpn/generic/toom_interpolate_6pts.c: Small reorganisation. 8609 8610 2010-01-03 Torbjorn Granlund <tege@gmplib.org> 8611 8612 * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 8613 INV_MULMOD_BNM1_THRESHOLD/2 instead. 8614 8615 * gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default 8616 here... 8617 * mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here. 8618 8619 * tests/mpn/t-div.c: Rewrite operand generation code. 8620 8621 2010-01-02 Torbjorn Granlund <tege@gmplib.org> 8622 8623 * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 8624 INV_MULMOD_BNM1_THRESHOLD. 8625 8626 2010-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 8627 8628 * mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more 8629 efficiently. 8630 * mpn/generic/mu_div_q.c: Likewise. 8631 8632 * mpn/generic/invert.c: Remove duplicated code. 8633 8634 2010-01-01 Torbjorn Granlund <tege@gmplib.org> 8635 8636 * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0. 8637 8638 * mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1. Clean up 8639 scratch usage. Improve itch functions. 8640 * mpn/generic/mu_divappr_q.c: Likewise. 8641 * mpn/generic/mu_bdiv_qr.c: Likewise. 8642 * mpn/generic/mu_div_q.c: Likewise. 8643 8644 * mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs. 8645 * mpn/generic/dcpi1_bdiv_q.c: Likewise. 8646 8647 * tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c. 8648 Increase COUNT to 500. 8649 8650 * tests/mpn/t-div.c: Avoid generating too small test operands. 8651 Move SB suppression limit downwards. Increase COUNT to 200. 8652 8653 2009-12-31 Torbjorn Granlund <tege@gmplib.org> 8654 8655 * mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case. 8656 8657 * tests/tests.h (TESTS_REPS): New macro. 8658 * tests/mpz/dive.c: Use larger operands, decrease default reps, use 8659 TESTS_REPS. 8660 * tests/mpz/convert.c: Likewise. 8661 * tests/mpz/t-sqrtrem.c: Likewise. 8662 * tests/mpz/reuse: Likewise. 8663 * tests/mpz/t-root.c: Likewise. 8664 * tests/mpz/t-tdiv.c: Likewise. 8665 * tests/mpz/t-gcd.c: Likewise. 8666 * tests/mpz/t-powm.c: Likewise. 8667 8668 2009-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it> 8669 8670 * mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow. 8671 * mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise. 8672 8673 * mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more, 8674 simply consider UNLIKELY any unexpected size. 8675 8676 2009-12-31 Torbjorn Granlund <tege@gmplib.org> 8677 8678 * tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function. 8679 (tune_mu_div): Use it. 8680 8681 2009-12-30 Torbjorn Granlund <tege@gmplib.org> 8682 8683 * tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div) 8684 (tune_dc_div): Clear global s.r to make speed functions do 2n/n. 8685 8686 * tune/speed.c (routine): New entries for mpn_mu_div_qr and 8687 mpn_mupi_div_qr. Allow .r parameter for mpn_sbpi1_div_qr, 8688 mpn_dcpi1_div_qr. 8689 * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR) 8690 (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter. 8691 8692 * tests/mpz/t-tdiv.c: Increase operands size again. 8693 8694 * mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer. 8695 8696 * mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary 8697 alloc. 8698 8699 2009-12-29 Torbjorn Granlund <tege@gmplib.org> 8700 8701 * tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD. 8702 * tune/speed.h (struct speed_params): Allow 3 source operands. 8703 (SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro. 8704 * tune/common.c (speed_mpn_mupi_div_qr): New function. 8705 8706 * mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr. 8707 8708 * tests/mpz/t-tdiv.c: Use larger test operands. 8709 8710 * mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1. 8711 8712 * mpz/mul.c: Call mpn_sqr directly. Use PTR,SIZ,ALLOC. 8713 8714 * tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require 8715 this. 8716 8717 * tests/mpn/t-div.c: Call mu_div functions with operands that generate 8718 a high quotient limb. 8719 8720 * mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb, 8721 to let dividend argument be constant, and as a general cleanup. 8722 * mpn/generic/mu_divappr_q.c: Likewise. 8723 * mpn/generic/mu_div_q.c: Likewise. 8724 * gmp-impl.h: Update declarations of changed functions. 8725 8726 * mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space 8727 when caller passed NULL. 8728 8729 2009-12-28 Torbjorn Granlund <tege@gmplib.org> 8730 8731 * mpn/generic/toom_couple_handling.c: Prefix name with mpn_. 8732 * gmp-impl.h: Likewise. 8733 * mpn/generic/toom63_mul.c: Likewise. 8734 * mpn/generic/toom6_sqr.c: Likewise. 8735 * mpn/generic/toom6h_mul.c: Likewise. 8736 * mpn/generic/toom8_sqr.c: Likewise. 8737 * mpn/generic/toom8h_mul.c: Likewise. 8738 8739 * configure.in (gmp_mpn_functions_optional) Move "com" from here... 8740 (gmp_mpn_functions): ...to here. 8741 * mpn/generic/com.c: New file. 8742 * (mpn_com): New name for mpn_com_n. Make public. 8743 * (mpn_neg): Analogous changes. 8744 8745 * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor. 8746 8747 * tune/common.c, tune/speed.c, tune/speed.h: Support measuring 8748 mpn_lshiftc. 8749 8750 * tests/devel/try.c: Test mpn_lshiftc. 8751 * tests/refmpn.c (refmpn_com): New function. 8752 (refmpn_lshiftc): Likewise. 8753 8754 * configure.in (gmp_mpn_functions_optional) Move lshiftc from here... 8755 (gmp_mpn_functions): ...to here. 8756 * mpn/generic/lshiftc.c: New file. 8757 * mpn/x86_64/lshiftc.asm: New file. 8758 * mpn/x86_64/core2/lshiftc.asm: New file. 8759 * mpn/generic/mul_fft.c (mpn_lshiftc): Remove. 8760 8761 * mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance. 8762 * mpn/x86_64/core2/rshift.asm: Likewise. 8763 8764 2009-12-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 8765 8766 * mpn/generic/mul.c: Use toom6h and toom8h for almost balanced. 8767 8768 * mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in 8769 Toom-8 range. 8770 8771 2009-12-27 Torbjorn Granlund <tege@gmplib.org> 8772 8773 * (mpn_sqr): New name for mpn_sqr_n. Many files affected. 8774 8775 * tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD. 8776 (tune_invertappr, tune_invert, tune_binvert): Let max_size default. 8777 8778 * tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions. 8779 * tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro. 8780 (SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise. 8781 (SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise. 8782 (SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise. 8783 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c. 8784 * tune/common.c (speed_mpn_mu_div_qr): New function. 8785 (speed_mpn_mu_divappr_q): Likewise. 8786 (speed_mpn_mu_div_q): Likewise. 8787 (speed_mpn_mu_bdiv_q): Likewise. 8788 (speed_mpn_mu_bdiv_qr): Likewise. 8789 8790 * mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0 8791 values. 8792 8793 * gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove. 8794 (BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of 8795 MODEXACT_1_ODD_THRESHOLD. 8796 (MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD. 8797 * mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise. 8798 * tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD; 8799 Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1. 8800 (tuned_speed_mpn_mod_1): Remove variable. 8801 (tune_mod_1): Fix thinkos. Suppress printing of "always" etc. 8802 (all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom 8803 depends on some of them. 8804 8805 * mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for 8806 TOOM22_MUL_MN_REC. 8807 8808 2009-12-26 Niels Möller <nisse@lysator.liu.se> 8809 8810 * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax 8811 requirements a bit. 8812 8813 * mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on 8814 input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high 8815 limbs of the evaluated values in scalar variables. 8816 8817 * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove 8818 unused variables. 8819 8820 * mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use 8821 of mpn_addsub_n which should be mpn_add_n_sub_n. 8822 8823 2009-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 8824 8825 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn). 8826 8827 * gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine. 8828 (mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine. 8829 * mpn/generic/mul_n.c: Use renamed _itch macros. 8830 8831 2009-12-25 Niels Möller <nisse@lysator.liu.se> 8832 8833 * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements. 8834 * gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed 8835 by toom32 itself, and also the pointwise multiplications are 8836 currently mpn_mul_n with no supplied scratch. 8837 * mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized 8838 interpolation to use less scratch space. No longer supports the 8839 most extreme size ratios. 8840 8841 2009-12-25 Torbjorn Granlund <tege@gmplib.org> 8842 8843 * tune/tuneup.c (tune_preinv_mod_1): Purge. 8844 (tune_mod_1): Use speed_mpn_mod_1_tune for 8845 PREINV_MOD_1_TO_MOD_1_THRESHOLD 8846 8847 * mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly. Don't use full 8848 precision in mpn_sbpi1_divappr_q call. Misc cleanup. 8849 8850 * tune/tuneup.c (tune_mod_1): Add a check_size for 8851 PREINV_MOD_1_TO_MOD_1_THRESHOLD. 8852 8853 2009-12-24 Torbjorn Granlund <tege@gmplib.org> 8854 8855 * tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD, 8856 (MOD_1U_TO_MOD_1_1_THRESHOLD): Set. 8857 * tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD, 8858 (MOD_1U_TO_MOD_1_1_THRESHOLD): Set. 8859 8860 * gmp-impl.h (USE_PREINV_MOD_1): Remove. 8861 (MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in 8862 terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically 8863 using USE_PREINV_MOD_1). 8864 * mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates. 8865 8866 * tune/tuneup.c (tune_mod_1): Rewrite. 8867 * gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New. 8868 (MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD. 8869 (MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD. 8870 (MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD. 8871 * mpn/generic/mod_1.c: Corresponding updates. 8872 8873 2009-12-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 8874 8875 * mpn/generic/mul_n.c: Use also toom6h and toom8h. 8876 * mpn/generic/sqr_n.c: Use also toom6 and toom8. 8877 * gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half. 8878 * tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds. 8879 8880 2009-12-24 Torbjorn Granlund <tege@gmplib.org> 8881 8882 * mpn/generic/mod_1_4.c: Get ASSERT right. 8883 * mpn/generic/mod_1_3.c: Likewise. 8884 * mpn/generic/mod_1_2.c: Likewise. 8885 8886 * mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native 8887 mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX. 8888 8889 2009-12-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 8890 8891 * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring 8892 mpn_toom8h_mul and mpn_toom8_sqr speed. 8893 8894 * mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs. 8895 8896 * mpn/generic/toom8h_mul.c: New file. 8897 * mpn/generic/toom8_sqr.c: New file. 8898 * mpn/generic/toom_interpolate_16pts.c: New file. 8899 * gmp-impl.h: Provide corresponding declarations. 8900 * configure.in (gmp_mpn_functions): List toom_interpolate_16pts, 8901 toom8h_mul, and toom8h_sqr. 8902 * tests/mpn/t-toom8h.c: New test program. 8903 8904 * mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul. 8905 * mpn/generic/toom6h_mul.c: Removed _sqr. 8906 8907 * mpn/generic/mulmod_bnm1.c: Nailify CRT. 8908 * mpn/generic/sqrmod_bnm1.c: Likewise. 8909 8910 * mpn/generic/mullo_n.c: Split dc_mullo_n function; 8911 ALLOC memory at once. 8912 8913 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update. 8914 8915 * mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts. 8916 * mpn/generic/toom_interpolate_12pts.c: Likewise. 8917 8918 * mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2. 8919 * mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q. 8920 8921 * mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3. 8922 * mpn/generic/toom6h_mul.c: Avoid obsolete _itch function. 8923 8924 2009-12-23 Torbjorn Granlund <tege@gmplib.org> 8925 8926 * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring 8927 mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p. 8928 8929 * tests/mpz/t-powm.c: Test mpz_powm_sec. 8930 8931 * mpz/powm_sec.c: New file. 8932 * gmp-h.in: Declare it. 8933 * Makefile.am, mpz/Makefile.am: Compile it. 8934 * doc/gmp.texi: Document it. 8935 8936 * mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function. 8937 (mpn_powm_sec): Use passed scratch, no local allocation. 8938 Allow exp argument = 1. 8939 (win_size): Start loop from 1. 8940 8941 * mpn/generic/powm.c (win_size): Start loop from 1. 8942 8943 2009-12-22 Torbjorn Granlund <tege@gmplib.org> 8944 8945 * tests/mpn/t-div.c: New file. 8946 * tests/mpn/Makefile.am: Compile it. 8947 8948 * mpn/generic/mu_divappr_q.c: Handle quotient overflow. 8949 8950 * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function. 8951 8952 2009-12-22 Niels Möller <nisse@lysator.liu.se> 8953 8954 * mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2. Intended to change 8955 nothing after preprocessing. 8956 8957 * mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2, 8958 avoid using memory locations as output parameters, and revert to 8959 explicitly copying n1 and n0 to memory. 8960 8961 * gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the 8962 same code as was used before the introduction of this macro. 8963 Eliminated some local variables, instead do multiple updates to 8964 the output parameters. 8965 8966 2009-12-22 Torbjorn Granlund <tege@gmplib.org> 8967 8968 * tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid 8969 invalid recursive sizes. 8970 8971 * tests/mpn/t-bdiv.c: Get itch function calls right. 8972 8973 * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite. 8974 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify. 8975 8976 * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate. 8977 (mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD. 8978 8979 2009-12-18 Niels Möller <nisse@lysator.liu.se> 8980 8981 * tests/mpn/t-bdiv.c: Add red-zones. 8982 8983 2009-12-21 Torbjorn Granlund <tege@gmplib.org> 8984 8985 * mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0. 8986 8987 * mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial 8988 quotient block (code block copied from dcpi1_div_qr.c). 8989 8990 * mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of 8991 GMP_NUMB_MAX. Remove an impossible qn = 0 case. 8992 8993 * mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1. 8994 8995 * mpn/generic/mul.c: Put back call to mpn_mul_n. 8996 8997 * tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to 8998 dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n. 8999 9000 * mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn. 9001 * mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3. 9002 * mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3. 9003 9004 * mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from 9005 mpn_bdiv_q_1_pi1. 9006 * All references changed. 9007 9008 * configure.in: Add --enable-old-fft-full. 9009 * tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on 9010 WANT_OLD_FFT_FULL. 9011 * tune/common.c (speed_mpn_mul_fft_full) 9012 (speed_mpn_mul_fft_full_sqr): Likewise. 9013 * mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff 9014 WANT_OLD_FFT_FULL. 9015 9016 2009-12-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 9017 9018 * gmp-impl.h (mpn_toom6h_mul_itch): New inline function. 9019 (MUL_TOOM6H_THRESHOLD): Default value. 9020 (SQR_TOOM6_THRESHOLD): Default value. 9021 * mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h. 9022 * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring 9023 mpn_toom6h_mul and mpn_toom6_sqr speed. 9024 9025 * mpn/generic/toom63_mul.c: Remove unused TMP_*. 9026 9027 * mpn/generic/toom_eval_pm2rexp.c: New file. 9028 * gmp-impl.h: Provide corresponding declaration. 9029 * configure.in (gmp_mpn_functions): List toom_eval_pm2rexp. 9030 * mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp. 9031 9032 * mpn/generic/toom_couple_handling.c: New file, helper function 9033 for high degree Toom. 9034 * gmp-impl.h: Provide corresponding declaration. 9035 * configure.in (gmp_mpn_functions): List toom_couple_handling. 9036 * mpn/generic/toom6h_mul.c: Use shared toom_couple_handling. 9037 * mpn/generic/toom63_mul.c: Likewise. 9038 9039 * mpn/generic/toom6h_mul.c: New file. 9040 * mpn/generic/toom_interpolate_12pts.c: New file. 9041 * gmp-impl.h: Provide corresponding declarations. 9042 * configure.in (gmp_mpn_functions): List toom_interpolate_12pts, 9043 toom6h_mul. 9044 * tests/mpn/t-toom6h.c: New test program. 9045 9046 * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul. 9047 * tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise. 9048 9049 2009-12-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 9050 9051 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT. 9052 * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise. 9053 9054 2009-12-20 Torbjorn Granlund <tege@gmplib.org> 9055 9056 * Change all bit counts for bignums to use mp_bitcnt_t. 9057 9058 * mpn/generic/bdivmod.c: File removed. All references purged. 9059 9060 * mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable. 9061 9062 * gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul. 9063 * mpn/generic/mul.c: Refer mpn_fft_mul. 9064 * mpn/generic/mul_n.c: Likewise. 9065 * mpn/generic/sqr_n.c: Likewise. 9066 * mpn/generic/mullo_n.c: Likewise. 9067 9068 * mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by 9069 Marco. Use TMP_SALLOC_LIMBS in more places. Clean up ws allocation. 9070 9071 2009-12-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 9072 9073 * mpn/generic/toom_interpolate_8pts.c: Nailify. 9074 9075 2009-12-19 Torbjorn Granlund <tege@gmplib.org> 9076 9077 * mpn/generic/mul.c: Major rewrite. Use toom43, toom53, toom63. 9078 Call mpn_nussbaumer_mul for largest operands. 9079 9080 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro. 9081 (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro. 9082 (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro. 9083 (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro. 9084 (SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro. 9085 (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro. 9086 * tune/common.c (speed_mpn_toom63_mul): New function. 9087 (speed_mpn_toom32_for_toom43_mul): New function. 9088 (speed_mpn_toom43_for_toom32_mul): New function. 9089 (speed_mpn_toom32_for_toom53_mul): New function. 9090 (speed_mpn_toom53_for_toom32_mul): New function. 9091 (speed_mpn_toom42_for_toom53_mul): New function. 9092 (speed_mpn_toom53_for_toom42_mul): New function. 9093 * tune/tuneup.c (tune_mul_n): New name for old tune_mul. 9094 (tune_sqr_n): New name for old tune_sqr. 9095 (tune_mul): New function, for unbalanced multiplication. 9096 * gmp-impl.h: Provide declarations for corresponding threshold vars. 9097 9098 * gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare. 9099 * mpn/asm-defs.m4: Likewise. 9100 * configure.in: Add corresponding HAVE_NATIVEs. 9101 * mpn/x86_64/rsh1aors_n.asm: Add _nc entry point. 9102 9103 2009-12-18 Niels Möller <nisse@lysator.liu.se> 9104 9105 * mpz/divexact.c: Rewrite to use mpn_divexact. 9106 9107 * mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused 9108 variables. 9109 9110 * mpn/generic/toom52_mul.c (mpn_toom52_mul) 9111 [HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a 9112 compiler warning. 9113 9114 * gmp-impl.h (gmp_pi1_t): Eliminated inv21 member. 9115 (invert_pi1): ...and don't store it here. 9116 9117 * mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified 9118 calculation of block size n. 9119 * gmp-impl.h (mpn_toom63_mul_itch): Likewise. 9120 9121 * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed 9122 output asserts. 9123 9124 2009-12-18 Torbjorn Granlund <tege@gmplib.org> 9125 9126 * tests/mpn/t-toom63.c: New test program. 9127 9128 2009-12-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 9129 9130 * mpn/generic/invert.c: Nailify. 9131 * mpn/generic/invertappr.c: Nailify. 9132 * mpn/generic/mulmod_bnm1.c: Nailify. 9133 * mpn/generic/sqrmod_bnm1.c: Nailify. 9134 9135 * tests/mpn/t-invert.c: New test program. 9136 9137 * mpn/generic/toom63_mul.c: New file. 9138 * mpn/generic/toom_interpolate_8pts.c: New file. 9139 * gmp-impl.h: Provide corresponding declarations. 9140 * configure.in (gmp_mpn_functions): List toom_interpolate_8pts and 9141 toom63_mul. 9142 9143 2009-12-17 Torbjorn Granlund <tege@gmplib.org> 9144 9145 * mpn/generic/mul.c: Move allocation of ws to where it is used. 9146 Identify toom22, 32, 42, in that order (in two places). Use midline 9147 between toom22, 32, 42. 9148 * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also 9149 mpn_toom32_mul. 9150 9151 * doc/gmp.texi: Update References section. Update Contributors 9152 section. Misc updates. 9153 9154 * gmp-impl.h: Renew default values for all THRESHOLDs. 9155 9156 2009-12-17 Niels Möller <nisse@lysator.liu.se> 9157 9158 * mpn/generic/divexact.c (mpn_divexact): Don't require that the 9159 dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When 9160 shifting, allocate and process only the low qn+1 limbs. Eliminated 9161 code for the impossible case nn < qn. 9162 9163 * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input 9164 asserts. 9165 9166 * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that 9167 the initial quotient block is a single limb, use 3/2 division, 9168 thereby eliminating the only use of gmp_pi1_t->inv21. 9169 9170 2009-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 9171 9172 * mpn/generic/invert.c: Added some comment. 9173 * mpn/generic/invertappr.c: Slightly better threshold handling. 9174 * gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200. 9175 9176 * mpn/generic/nussbaumer_mul.c: New file. 9177 * configure.in (gmp_mpn_functions): Add nussbaumer_mul. 9178 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul. 9179 * gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling. 9180 * tune/speed.h (speed_mpn_nussbaumer_mul): Declare function. 9181 * tune/common.c (speed_mpn_nussbaumer_mul): New function. 9182 * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul. 9183 9184 * mpn/generic/sqrmod_bnm1.c: New file. 9185 * configure.in (gmp_mpn_functions): Add sqrmod_bnm1. 9186 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1. 9187 * gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling. 9188 (SQRMOD_BNM1_THRESHOLD): support for the new threshold. 9189 * tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function. 9190 * tune/common.c (speed_mpn_sqrmod_bnm1): New function. 9191 * tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1. 9192 * tests/mpn/t-mulmod_bnm1.c: Attribution. 9193 * tests/mpn/t-sqrmod_bnm1.c: New test file. 9194 * tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1. 9195 9196 * tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD. 9197 9198 * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul, 9199 use squaring if operands coincide. 9200 * tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function. 9201 * tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function. 9202 * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr. 9203 9204 2009-12-17 Torbjorn Granlund <tege@gmplib.org> 9205 9206 * mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite. 9207 9208 2009-12-16 Torbjorn Granlund <tege@gmplib.org> 9209 9210 * tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul 9211 instead of refmpn_mul_basecase. 9212 * tests/mpn/toom-shared.h: Likewise. 9213 * tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise. 9214 9215 * minithres/gmp-mparam.h: Add new thresholds, trim old values. 9216 9217 * mpn/generic/powm.c: Use mp_bitcnt_t for bit counts. 9218 Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in 9219 non-WANT_REDC_2 INNERLOOP expansion code. 9220 * mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts. 9221 9222 2009-12-16 Niels Möller <nisse@lysator.liu.se> 9223 9224 * tests/mpz/t-gcd.c (main): Added test case to exercise the 9225 unlikely u0 == u1 case in mpn_gcdext_lehmer_n. 9226 9227 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT 9228 right. 9229 9230 2009-12-16 Torbjorn Granlund <tege@gmplib.org> 9231 9232 * tests/mpz/t-mul.c: Misc cleanups. 9233 (mul_basecase): Remove. 9234 (ref_mpn_mul): Remove. 9235 * tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's 9236 ref_mpn_mul. 9237 (refmpn_mullo_n): Add a missing free. 9238 9239 * tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr, 9240 mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and 9241 mpn_{sb,dc}pi1_bdiv_q. 9242 9243 * mpn/generic/invertappr.c: New file, meat from invert.c. 9244 * mpn/generic/invert.c: Leave just mpn_invert.c. 9245 * configure.in (gmp_mpn_functions): Add invertappr. 9246 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c. 9247 * gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros. 9248 9249 2009-12-15 Torbjorn Granlund <tege@gmplib.org> 9250 9251 * mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right. 9252 9253 2009-12-15 Niels Möller <nisse@lysator.liu.se> 9254 9255 * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step 9256 towards nail support. 9257 9258 2009-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 9259 9260 * gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling. 9261 * mpn/generic/mulmod_bnm1.c: Comment representation of class [0]. 9262 9263 2009-12-14 Niels Möller <nisse@lysator.liu.se> 9264 9265 * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use 9266 udiv_qr_3by2. 9267 9268 2009-12-14 Torbjorn Granlund <tege@gmplib.org> 9269 9270 * tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD 9271 tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be 9272 wrong (as pointed out by Marco). 9273 * (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too. 9274 9275 2009-12-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 9276 9277 * mpn/generic/invert.c: Improved comments. 9278 (mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q. 9279 9280 2009-12-14 Niels Möller <nisse@lysator.liu.se> 9281 9282 * gmp-impl.h (udiv_qr_3by2): Fix typo in argument list. 9283 9284 2009-12-13 Niels Möller <nisse@lysator.liu.se> 9285 9286 * gmp-impl.h (udiv_qr_3by2): New macro. 9287 * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2. 9288 9289 2009-12-13 Torbjorn Granlund <tege@gmplib.org> 9290 9291 * mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer 9292 overrun. 9293 9294 * mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd 9295 mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft. Replace some 9296 comments on cc's range with ASSERTs. 9297 9298 * mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul. 9299 9300 * mpz/powm.c: Rework buffer handling. 9301 9302 2009-12-13 Niels Möller <nisse@lysator.liu.se> 9303 9304 * tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check 9305 results (slow!). Iteration counts of all toom tests reduced 9306 considerably. 9307 9308 2009-12-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 9309 9310 * mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni. 9311 (mpn_bc_invertappr): New function, the basecase. 9312 (mpn_ni_invertapp): New function, Newton iteration. 9313 (mpn_invert): Use mpn_ni_invertapp. 9314 * tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD. 9315 (tune_invertappr): Min for INV_NEWTON_THRESHOLD. 9316 9317 * tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro. 9318 (speed_mpn_ni_invertappr): Declare function. 9319 * tune/common.c (speed_mpn_ni_invertappr): New function. 9320 * tune/speed.c (routine): Add speed_mpn_ni_invertappr. 9321 9322 * tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to 9323 tune INV_MULMOD_BNM1_THRESHOLD. 9324 9325 2009-12-12 Torbjorn Granlund <tege@gmplib.org> 9326 9327 * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite. 9328 9329 2009-12-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 9330 9331 * tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test 9332 for odd sizes. 9333 9334 * mpn/generic/invert.c: Complete rewrite. Uses Newton iterations. 9335 * gmp-impl.h (mpn_invertappr): Added prototype and name-mangling. 9336 (mpn_invertappr_itch): Added prototype and name-mangling. 9337 (INV_APPR_THRESHOLD): Support for a new tunable const. 9338 * tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro. 9339 (speed_mpn_invertappr): Declare function. 9340 * tune/common.c (speed_mpn_invertappr): New function. 9341 * tune/speed.c (routine): Add speed_mpn_invertappr. 9342 * tune/tuneup.c (tune_invertappr): New function: was tune_invert. 9343 (tune_invert): Now tune only INV_APPR_THRESHOLD. 9344 (all): Enable call to tune_invert and tune_invertappr. 9345 9346 2009-12-11 Torbjorn Granlund <tege@gmplib.org> 9347 9348 * mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping. 9349 Old, evidently broken wrapping code removed. 9350 * tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD. 9351 * gmp-impl.h: Provide declarations for corresponding threshold var. 9352 9353 * tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable. 9354 9355 * tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD. 9356 * gmp-impl.h: Provide declarations for corresponding threshold var. 9357 9358 * tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero. 9359 9360 * configure.in: Set up different paths for different 64-bit sparc 9361 processors. 9362 * mpn/sparc64/ultrasparc34/gmp-mparam.h: New file. 9363 9364 2009-12-10 Torbjorn Granlund <tege@gmplib.org> 9365 9366 * mpn/*/gmp-mparam.h: Regenerate many of these files. 9367 9368 2009-12-10 Niels Möller <nisse@lysator.liu.se> 9369 9370 * gmp-impl.h (mpn_divexact): Removed scratch pointer from 9371 prototype. 9372 * mpn/generic/gcdext.c (divexact): Deleted, moved to... 9373 * mpn/generic/divexact.c (mpn_divexact): New implementation (moved 9374 from gcdext.c). The bidirectional divexact is kept but #if:ed out. 9375 Interface change, since the new code doesn't take a scratch 9376 argument. 9377 9378 * tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered 9379 MIN_N to 1. Various fixes to handle n == 1 properly. 9380 9381 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface 9382 change, require an >= bn. 9383 9384 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive 9385 case to not write beyond end of result area. 9386 9387 2009-12-09 Torbjorn Granlund <tege@gmplib.org> 9388 9389 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made 9390 from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1. 9391 * tune/common.c (speed_mpn_bc_mulmod_bnm1): New function. 9392 (speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL. 9393 * tune/speed.c (routine): Add mpn_bc_mulmod_bnm1. 9394 9395 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite. 9396 9397 * tune/tuneup.c (tune_mulmod_bnm1): Rewrite. 9398 9399 2009-12-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 9400 9401 * mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1, 9402 mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly 9403 same as result area (as suggested by Niels Möller). 9404 (mpn_mulmod_bnm1): Calls changed accordingly. 9405 9406 2009-12-08 Niels Möller <nisse@lysator.liu.se> 9407 9408 * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use 9409 table lookup for count_trailing_zeros. Binary algorithm still 9410 disabled by default. 9411 9412 * mpn/generic/gcdext.c (divexact): Local definition of divexact, 9413 using mpn_bdiv_q. 9414 (compute_v): Use it. 9415 9416 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv. 9417 9418 * tests/mpn/t-bdiv.c: New file. 9419 9420 * mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length, 9421 should have qn == nn. 9422 9423 * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to 9424 the lower-level functions. 9425 9426 2009-12-08 Torbjorn Granlund <tege@gmplib.org> 9427 9428 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define. 9429 * tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function. 9430 * tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring 9431 mpn_mulmod_bnm1 at recommended sizes. 9432 9433 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite. 9434 (mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add. 9435 9436 * tune/speed.c (routine): Add mpn_invert. 9437 9438 * tune/tuneup.c (tune_invert): New function. 9439 * tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro. 9440 * tune/common.c (speed_mpn_invert): New function. 9441 * gmp-impl.h: Provide declarations for corresponding threshold var. 9442 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c. 9443 9444 2009-12-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 9445 9446 * tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n; 9447 mpn_rsblsh_n now tests all shift values. 9448 * tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions. 9449 (refmpn_addlsh1_n): Use generic refmpn_addlsh_n. 9450 (refmpn_sublsh1_n): Use generic refmpn_sublsh_n. 9451 (refmpn_addlsh2_n): New function. 9452 * tests/tests.h: Declare new functions. 9453 9454 2009-12-06 Torbjorn Granlund <tege@gmplib.org> 9455 9456 * tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12. 9457 9458 * Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*. 9459 9460 * configure.in: Don't include ev5 directory for ev6* and ev7. Misc 9461 alpha path cleanups. 9462 * mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm. 9463 * mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm. 9464 * mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm. 9465 * mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm. 9466 * mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm. 9467 * mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm. 9468 9469 * mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than 9470 mpn_bdiv_dbm1c on all hardware. 9471 9472 * mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit. 9473 9474 * gmp-impl.h (mpn_redc_1_sec): Declare. 9475 * configure.in (gmp_mpn_functions): Add redc_1_sec. 9476 9477 2009-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 9478 9479 * tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit. 9480 9481 2009-12-05 Marco Bodrato <bodrato@mail.dm.unipi.it> 9482 9483 * mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0. 9484 * mpn/generic/toom_eval_dgr3_pm2.c: Likewise. 9485 * mpn/generic/toom_eval_pm1.c: Likewise. 9486 * mpn/generic/toom_eval_pm2exp.c: Likewise. 9487 * mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n. 9488 9489 * mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign. 9490 9491 * mpn/generic/toom33_mul.c: Adapt to changes above. 9492 * mpn/generic/toom3_sqr.c: Likewise. 9493 * mpn/generic/toom42_mul.c: Likewise. 9494 * mpn/generic/toom43_mul.c: Reduce branches. 9495 * mpn/generic/toom44_mul.c: Likewise. 9496 * mpn/generic/toom53_mul.c: Likewise. 9497 * mpn/generic/toom62_mul.c: Likewise. 9498 9499 * mpn/generic/toom52_mul.c: Use toom_eval_ functions. 9500 9501 * mpn/generic/toom4_sqr.c: Avoid C99 construct. 9502 * mpn/generic/toom_interpolate_7pts.c: Likewise. 9503 9504 2009-12-05 Torbjorn Granlund <tege@gmplib.org> 9505 9506 * mpn/generic/redc_1_sec.c: New file. 9507 * mpn/generic/powm_sec.c: Use redc_1_sec. Use dummy full subtract 9508 instead of mpn_cmp since the latter leaks to the side channel. 9509 (mpn_local_sqr_n): New function, with associated macros. 9510 (mpn_powm_sec): Use mpn_local_sqr_n. 9511 9512 * configure.in (HAVE_NATIVE): Add missing functions, then sort. 9513 9514 2009-12-04 Torbjorn Granlund <tege@gmplib.org> 9515 9516 * tune/tuneup.c (tune_dc_div): Up min_size to 6. 9517 (tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2. 9518 9519 * tune/speed.h: Negate "binvert"-type inverses, as required. 9520 9521 * mpn/generic/redc_1.c: Add ASSERTs. 9522 * mpn/generic/redc_2.c: Likewise. 9523 9524 * mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing. 9525 9526 2009-12-03 Yann Droneaud <yann@droneaud.fr> 9527 9528 * acinclude.m4 ([long long reliability test 1]): Add a "static" for C99 9529 inline semantics compatibility. 9530 9531 2009-12-03 Torbjorn Granlund <tege@gmplib.org> 9532 9533 * configure.in: Move intptr_t test into common AC_CHECK_TYPES. 9534 9535 * mpn/generic/gcdext.c: Add a TMP_FREE. 9536 9537 2009-12-03 Niels Möller <nisse@lysator.liu.se> 9538 9539 * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: 9540 Added various masking tricks. 9541 9542 * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: 9543 Reimplemented binary gcdext, with proper canonicalization. 9544 9545 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0 9546 from mpn_gcdext_1. 9547 * mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b, 9548 assertions fixed accordingly. 9549 9550 2009-12-03 Torbjorn Granlund <tege@gmplib.org> 9551 9552 * tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD. Rewrite 9553 DC_DIV_QR_THRESHOLD tuning code. 9554 (tune_dc_div): Rewrite. 9555 * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro. 9556 * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr, 9557 speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions. 9558 * gmp-impl.h: Provide declarations for corresponding threshold vars. 9559 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c. 9560 9561 * tune/tuneup.c (tune_binvert): Up max_size. 9562 9563 2009-12-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 9564 9565 * tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n. 9566 * tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions. 9567 (refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n. 9568 * tests/tests.h: Declare new functions. 9569 9570 2009-12-03 Niels Möller <nisse@lysator.liu.se> 9571 9572 * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): 9573 Select the right cofactor in the cases A == B or A == 2B. 9574 9575 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted 9576 handling of ap[0] == 0 and bp[0] == 0; these cases don't happen. 9577 Select the right cofactor in the case ap[0] == bp[0]. 9578 * mpn/generic/gcdext.c (mpn_gcdext): Analogous changes. 9579 9580 2009-12-02 Niels Möller <nisse@lysator.liu.se> 9581 9582 * gmp-h.in (mpn_gcdext_1): Updated prototype. 9583 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for 9584 signed cofactors from gcdext_1. 9585 * mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm, 9586 and return signed cofactors. 9587 9588 2009-12-02 Torbjorn Granlund <tege@gmplib.org> 9589 9590 * doc/gmp.texi (Low-level Functions): Document mpn_sqr_n. 9591 9592 * tune/speed.c (routine): Add mpn_binvert. 9593 9594 * tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD. 9595 (tune_binvert): New function. 9596 * tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro. 9597 * tune/common.c (speed_mpn_binvert): New function. 9598 * gmp-impl.h: Provide declarations for corresponding threshold var. 9599 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c. 9600 9601 * tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD. 9602 (tune_dc_bdiv): New function. 9603 (tune_dc_div): New name for tune_dc. 9604 * tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR, 9605 SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros. 9606 * tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr, 9607 speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions. 9608 * gmp-impl.h: Provide declarations for corresponding threshold vars. 9609 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and 9610 dcpi1_bdiv_q.c. 9611 9612 2009-12-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 9613 9614 * mpn/generic/toom53_mul.c: Removed double computation of vinf. 9615 9616 * mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n. 9617 * mpn/asm-defs.m4 (define_mpn): Add rsblsh_n. 9618 * gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling. 9619 9620 * mpn/generic/fib2_ui.c: Reduce the amount of temporary storage. 9621 Use mpn_rsblsh_n. 9622 9623 2009-12-01 Torbjorn Granlund <tege@gmplib.org> 9624 9625 * mpn/generic/redc_n.c: Rework temp allocation. 9626 9627 * mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also 9628 to this function. 9629 9630 * mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right. 9631 Misc cleanups. 9632 9633 * tune/speed.c (routine): Fix typo in last change. 9634 Add mpn_redc_2. 9635 9636 * tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly. 9637 9638 2009-12-01 Niels Möller <nisse@lysator.liu.se> 9639 9640 * tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n. 9641 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro. 9642 (speed_mpn_toom42_mul): Declare function. 9643 * tune/common.c (speed_mpn_toom42_mul): New function. 9644 * gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant. 9645 9646 2009-11-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 9647 9648 * mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n. 9649 9650 2009-11-29 Torbjorn Granlund <tege@gmplib.org> 9651 9652 * mpn/x86_64/pentium4/gmp-mparam.h 9653 (HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef. 9654 9655 * Makefile.am (EXTRA_DIST): Remove macos. 9656 9657 2009-11-28 Torbjorn Granlund <tege@gmplib.org> 9658 9659 * tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning. 9660 9661 * mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting 9662 to allow configure.in parse it more easily. Trim from 120 to 80. 9663 9664 2009-11-28 Marco Bodrato <bodrato@mail.dm.unipi.it> 9665 9666 * mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects 9667 a bug affecting previous version. 9668 9669 2009-11-28 Torbjorn Granlund <tege@gmplib.org> 9670 9671 * configure.in: Handle atom also in 32-bit mode. 9672 * mpn/x86/atom/gmp-mparam.h: New file. 9673 9674 * gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default. 9675 9676 * mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n. 9677 9678 * Use TMP_ALLOC_LIMBS consistently. 9679 * Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS. 9680 9681 * macos: Remove entire directory. 9682 9683 2009-11-27 Torbjorn Granlund <tege@gmplib.org> 9684 9685 * mpn/x86_64/corei/gmp-mparam.h: New file. 9686 * mpn/x86_64/core2/gmp-mparam.h: Now for just core2. 9687 * mpn/powerpc64/mode64/p3/gmp-mparam.h: New file. 9688 * mpn/powerpc64/mode64/p4/gmp-mparam.h: New file. 9689 * mpn/powerpc64/mode64/p5/gmp-mparam.h: New file. 9690 9691 * config.guess: Return "corei" for core i7 and core i5. 9692 * config.sub: Recognise "corei". 9693 * acinclude.m4 (X86_64_PATTERN): Add corei. 9694 * configure.in (powerpc): Set up more CPU-specific paths. 9695 (x86): Handle corei. 9696 9697 * mpz/powm.c: Allow input operand overlap also when exponent = 1. 9698 Misc cleanups. 9699 9700 2009-11-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 9701 9702 * tests/mpn/t-mulmod_bnm1.c: New test file. 9703 * tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1. 9704 9705 * mpn/generic/mullow_n.c: Comments on Mulders' trick implementation. 9706 9707 2009-11-26 Torbjorn Granlund <tege@gmplib.org> 9708 9709 * mpn/generic/powm.c: Make comments reflect current code state. 9710 9711 * tests/devel/try.c: Make mpn_mullow_n testing actually work. 9712 9713 2009-11-25 Torbjorn Granlund <tege@gmplib.org> 9714 9715 * mpz/powm.c: Clean up unused defs. 9716 9717 2009-11-24 Torbjorn Granlund <tege@gmplib.org> 9718 9719 * tune/tuneup.c (tune_redc): Rewrite. 9720 * mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD, 9721 REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD. 9722 Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD. 9723 (WANT_REDC_2): Define. 9724 * gmp-impl.h: Corresponding changes. 9725 9726 2009-11-23 Torbjorn Granlund <tege@gmplib.org> 9727 9728 * mpn/generic/powm.c: Fix typo. 9729 Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD... 9730 REDC_N_THRESHOLD chain. 9731 9732 2009-11-22 Torbjorn Granlund <tege@gmplib.org> 9733 9734 * tune/tuneup.c (tune_mullow): Set min_size to 1. 9735 9736 * mpn/generic/powm_sec.c: Use just mpn_mul_basecase and 9737 mpn_sqr_basecase for multiplication and squaring. 9738 9739 * tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD. 9740 (tune_redc): New function. 9741 (tune_powm): Remove function. 9742 * tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New. 9743 * tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New. 9744 9745 * mpz/powm.c: Complete rewrite. Use mpn_powm and mpn_powlo. 9746 * mpn/generic/powm.c: Rewrite. 9747 * mpn/generic/redc_n.c: New file. 9748 * configure.in (gmp_mpn_functions): Add redc_n. 9749 * gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define 9750 for tuneup. 9751 9752 2009-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 9753 9754 * mpn/generic/mullow_n.c: Disable Mulders' trick for small operands, 9755 use fft for bigger ones. 9756 * tests/mpn/t-mullo.c: New test file. 9757 9758 2009-11-22 Torbjorn Granlund <tege@gmplib.org> 9759 9760 * tune/tuneup.c (tune_mullow): Rewrite. 9761 9762 2009-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 9763 9764 * gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and 9765 CACHED_BELOW_THRESHOLD). 9766 9767 * mpn/generic/mullow_n.c: Use Mulders' trick. 9768 * tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of 9769 search depends on FFT tuning; 9770 (all): Anticipate tune_fft_{mul,sqr}. 9771 9772 * tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1. 9773 9774 2009-11-19 Niels Möller <nisse@lysator.liu.se> 9775 9776 * mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2) 9777 [HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call 9778 (spotted by Marco Bodrato). 9779 * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise. 9780 * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise. 9781 9782 * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]: 9783 Fixed missing declaration. 9784 9785 * mpn/asm-defs.m4 (define_mpn): Add addlsh_n. 9786 * gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling. 9787 9788 2009-11-19 Niels Möller <nisse@lysator.liu.se> 9789 9790 * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file. 9791 * mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2. 9792 * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise. 9793 * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2. 9794 9795 2009-11-18 Torbjorn Granlund <tege@gmplib.org> 9796 9797 * gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions. 9798 9799 * config.guess: Recognise VIA nano. 9800 * config.sub: Likewise. 9801 * configure.in: Generalise x86_64 support; recognise VIA nano. 9802 9803 2009-11-16 Torbjorn Granlund <tege@gmplib.org> 9804 9805 * tune/speed.c (routine): Add measurement of mpn_addlsh2_n, 9806 mpn_sublsh2_n, mpn_rsblsh2_n. 9807 * tune/common.c: Add speed routines for lsh2 functions. 9808 9809 * mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD. 9810 9811 * configure.in (gmp_mpn_functions_optional): Add *lsh_n functions. 9812 9813 * mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code 9814 work. 9815 9816 * mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop. 9817 9818 * configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they 9819 are now in gmp_mpn_functions. Analogously move logical functions. 9820 9821 2009-11-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 9822 9823 * mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo). 9824 * mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43). 9825 9826 * mpn/asm-defs.m4: Fix comments for op_lsh2 new functions. 9827 * gmp-impl.h: Likewise. 9828 * tests/mpz/t-fac_ui.c: Fix a comment. 9829 9830 2009-11-15 Torbjorn Granlund <tege@gmplib.org> 9831 9832 * mpn/x86_64/aorrlsh2_n.asm: New file. 9833 * configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n, 9834 including mulfuncs. 9835 * gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare. 9836 * mpn/asm-defs.m4: Likewise. 9837 9838 * mpn/generic/copyi.c: New file. 9839 * mpn/generic/copyd.c: Likewise. 9840 * mpn/generic/zero.c: Likewise. 9841 * gmp-h.in: Declare new functions. 9842 * configure.in (gmp_mpn_functions): Add new functions. 9843 9844 2009-11-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 9845 9846 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo 9847 9848 * mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation. 9849 * mpn/generic/toom3_sqr.c: Likewise. 9850 9851 2009-11-14 Torbjorn Granlund <tege@gmplib.org> 9852 9853 * mpn/generic/toom52_mul.c: Use mpn_addlsh1_n. 9854 9855 * mpn/generic/toom52_mul.c: Toggle the right flag bit in an 9856 HAVE_NATIVE_mpn_add_n_sub_n arm. 9857 9858 * tests/mpz/t-remove.c: New file. 9859 9860 * mpn/generic/remove.c: Major overhaul. Add parameter 'cap'. 9861 9862 * mpn/generic/binvert.c: Fix typo in last change. 9863 9864 * mpn/generic/bdiv_qr.c: Make it actually work. Also use passed-in 9865 scratch space. 9866 9867 * mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call. 9868 9869 2009-11-12 Torbjorn Granlund <tege@gmplib.org> 9870 9871 * mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT. 9872 9873 2009-11-11 Torbjorn Granlund <tege@gmplib.org> 9874 9875 * mpn/generic/binvert.c: Simplify, fix comments. 9876 9877 * tests/devel/try.c: Test mpn_invert and mpn_binvert. 9878 9879 * tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions. 9880 * tests/tests.h: Declare new functions. 9881 9882 2009-11-10 Torbjorn Granlund <tege@gmplib.org> 9883 9884 * configure.in: Supply compiler options for atom in 32-bit mode. 9885 9886 * acinclude.m4 (X86_64_PATTERN): New. 9887 * configure.in: Setup and use X86_64_PATTERN. 9888 9889 * mpn/x86_64/fat/fat.c: New file. 9890 * mpn/x86_64/fat/fat_entry.asm: New file. 9891 * mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat. 9892 * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from 9893 mpn/x86/x86-defs.m4. 9894 * configure.in: Move down x86 fat setup code until after ABI has been 9895 determined; generalise to handle x86_64. 9896 9897 2009-11-09 Torbjorn Granlund <tege@gmplib.org> 9898 9899 * mpn/x86/fat/mod_1.c: New file. 9900 9901 * acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting. 9902 9903 2009-11-08 Torbjorn Granlund <tege@gmplib.org> 9904 9905 * gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface. Callers 9906 updated. 9907 * mpn/generic/logops_n.c: New file. 9908 * doc/gmp.texi (Low-level Functions): Document logical mpn functions. 9909 9910 2009-11-07 Torbjorn Granlund <tege@gmplib.org> 9911 9912 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new 9913 mpn_mulmod_bnm1 interface. 9914 9915 2009-11-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 9916 9917 * mpn/generic/mulmod_bnm1.c: New interface, with size 9918 specified for all operands in mpn_mulmod_bnm1. 9919 * gmp-impl.h: Changed mpn_mulmod_bnm1 prototype. 9920 9921 2009-11-05 Torbjorn Granlund <tege@gmplib.org> 9922 9923 * mpn/x86/k7/gcd_1.asm: Actually use div-reduced value. 9924 Mnemonic cleanup. 9925 9926 * mpn/x86_64/gcd_1.asm: New file. 9927 9928 2009-11-03 Torbjorn Granlund <tege@gmplib.org> 9929 9930 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c. 9931 9932 2009-11-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 9933 9934 * mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup. 9935 9936 2009-11-02 Torbjorn Granlund <tege@gmplib.org> 9937 9938 * configure.in (gmp_mpn_functions): Remove obsolete functions 9939 dc_divrem_n and sb_divrem_mn. 9940 * gmp-impl.h: Misc cleanup. 9941 (mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove. 9942 (DIV_DC_THRESHOLD): Remove. 9943 * mpn/generic/dc_divrem_n.c: Remove. 9944 * mpn/generic/sb_divrem_mn.c: Remove. 9945 * mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD. 9946 9947 * tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr. 9948 * tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn. 9949 9950 * tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c. 9951 (TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c. 9952 * tune/common.c (speed_mpn_dcpi1_div_qr_n): New function. 9953 Remove mpn_sb_divrem_mn related functions. 9954 * tune/speed.c (routine): Remove entries related to mpn_dc_divrem and 9955 mpn_sb_divrem. 9956 (routine): New entry for mpn_dc_div_qr_n. 9957 * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse 9958 needed by pi1 calls. 9959 (SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove. 9960 * tune/tuneup.c (tune_sb_preinv): Remove. 9961 (tune_dc): Update to measure DC_DIV_QR_THRESHOLD. 9962 9963 * mpn/generic/sb_divappr_q.c: Remove. 9964 9965 2009-11-01 Torbjorn Granlund <tege@gmplib.org> 9966 9967 * gmp-impl.h: Misc minor cleanups. 9968 9969 2009-10-31 Torbjorn Granlund <tege@gmplib.org> 9970 9971 * gmp-impl.h (toom itch functions): Simplify, make some into macros. 9972 (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove. 9973 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove. 9974 * mpn/generic/mul_n.c (mpn_sqr_n): Move from here... 9975 * mpn/generic/sqr_n.c: ...to this new file. 9976 * configure.in (gmp_mpn_functions): Add sqr_n. 9977 9978 * Globally change 9979 MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD, 9980 MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD, 9981 SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD, 9982 and associated names analogously. 9983 9984 2009-10-31 Niels Möller <nisse@lysator.liu.se> 9985 9986 * mpn/generic/toom_interpolate_7pts.c: Changed evaluation points, 9987 replacing -1/2 by -2. 9988 * mpn/generic/toom44_mul.c: Updated to use new evaluation points, 9989 and use mpn_toom_eval_dgr3_pm2. 9990 * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise. 9991 * mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new 9992 evaluation points, and use mpn_toom_eval_pm1 and 9993 mpn_toom_eval_pm2exp. 9994 * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise. 9995 9996 * mpn/generic/toom_eval_pm2exp.c: New file. 9997 * mpn/generic/toom_eval_pm1.c: New file. 9998 9999 * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use 10000 mpn_toom_eval_dgr3_pm2. 10001 10002 2009-10-30 Torbjorn Granlund <tege@gmplib.org> 10003 10004 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files. 10005 10006 2009-10-30 Niels Möller <nisse@lysator.liu.se> 10007 10008 * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2. 10009 * gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2. 10010 * mpn/generic/toom_eval_dgr3_pm2.c: New file. 10011 10012 2009-10-29 Niels Möller <nisse@lysator.liu.se> 10013 10014 * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use 10015 mpn_toom_eval_dgr3_pm1. 10016 * mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise. 10017 10018 2009-10-29 Torbjorn Granlund <tege@gmplib.org> 10019 10020 * mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR. 10021 10022 * gmp-impl.h (mpn_mulmod_bnm1_itch): New macro. 10023 10024 * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft. 10025 (mpn_mulmod_bnm1_next_size): Adopt to SS FFT. 10026 10027 * mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb. 10028 (mpn_mul_fft_internal): Likewise. 10029 10030 * mpn/generic/mulmod_bnm1.c: New file, by Niels Möller. 10031 * configure.in (gmp_mpn_functions): Add mulmod_bnm1. 10032 * gmp-impl.h: Add related declarations. 10033 * tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD. 10034 * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro. 10035 * tune/common.c (speed_mpn_mulmod_bnm1): New function. 10036 * Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c. 10037 10038 * gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations. 10039 * tune/common.c: Remove/rename kara functions. 10040 * tune/speed.h: Likewise. 10041 10042 * tests/devel/try.c: Clean up usage of %p printf arguments. 10043 10044 * gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function 10045 names and limitations 10046 * tune/tuneup.c: Use updated macro names. 10047 * tune/speed.h: Likewise. 10048 * tests/devel/try.c: Test new mul/sqr functions, remove old tests. 10049 10050 2009-10-29 Niels Möller <nisse@lysator.liu.se> 10051 10052 * tune/speed.c: Added support for mpn_toom4_sqr, 10053 10054 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro. 10055 (SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted. 10056 (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted. 10057 (SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch. 10058 10059 * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove 10060 declarations. 10061 (mpn_toom2_sqr_itch): Add margin for recursive calls. 10062 10063 2009-10-28 Niels Möller <nisse@lysator.liu.se> 10064 10065 * mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba 10066 implementation. 10067 (mpn_kara_sqr_n): Likewise deleted. 10068 10069 * mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and 10070 mpn_toom3_sqr, not the old implementations. 10071 10072 * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by 10073 mpn_toom33_mul_itch. 10074 (MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by 10075 mpn_toom3_sqr_itch. 10076 (mpn_toom33_mul_itch): Needs more scratch. 10077 (mpn_toom3_sqr_itch): Likewise. 10078 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use 10079 mpn_toom33_mul_itch. 10080 (SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch. 10081 * mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch. 10082 (mpn_sqr_n): Use mpn_toom3_sqr_itch. 10083 10084 * mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs 10085 some more supplied scratch instead. 10086 * mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise. 10087 10088 2009-10-26 Torbjorn Granlund <tege@gmplib.org> 10089 10090 * gmp-impl.h (invert_pi1): Streamline, as suggested by Niels. 10091 10092 2009-10-24 Torbjorn Granlund <tege@gmplib.org> 10093 10094 * mpn/generic/bdiv_q.c: Update to call new functions. 10095 * mpn/generic/bdiv_qr.c: Likewise. 10096 * mpn/generic/binvert.c: Likewise. 10097 * mpn/generic/divexact.c: Likewise. 10098 * mpn/generic/divis.c: Likewise. 10099 * mpn/generic/perfpow.c: Likewise. 10100 * mpn/generic/tdiv_qr.c: Likewise. 10101 * mpn/generic/dcpi1_bdiv_q.c: New file. 10102 * mpn/generic/dcpi1_bdiv_qr.c: New file. 10103 * mpn/generic/dcpi1_div_q.c: New file. 10104 * mpn/generic/dcpi1_div_qr.c: New file. 10105 * mpn/generic/dcpi1_divappr_q.c: New file. 10106 * mpn/generic/sbpi1_bdiv_q.c: New file. 10107 * mpn/generic/sbpi1_bdiv_qr.c: New file. 10108 * mpn/generic/sbpi1_div_q.c: New file. 10109 * mpn/generic/sbpi1_div_qr.c: New file. 10110 * mpn/generic/sbpi1_divappr_q.c: New file. 10111 * mpn/generic/dc_bdiv_q.c: Removed. 10112 * mpn/generic/dc_bdiv_qr.c: Removed. 10113 * mpn/generic/dc_div_q.c: Removed. 10114 * mpn/generic/dc_div_qr.c: Removed. 10115 * mpn/generic/dc_divappr_q.c: Removed. 10116 * mpn/generic/sb_bdiv_q.c: Removed. 10117 * mpn/generic/sb_bdiv_qr.c: Removed. 10118 * mpn/generic/sb_div_q.c: Removed. 10119 * mpn/generic/sb_div_qr.c: Removed. 10120 10121 * configure.in (gmp_mpn_functions): Add new division functions, remove 10122 obsolete division functions. 10123 10124 * gmp-impl.h: Add declarations of new division functions, remove 10125 corresponding obsolete declarations. 10126 (gmp_pi1_t, gmp_pi2_t): New types. 10127 (invert_pi1): New macro for computing 2/1 and 3/2 inverses. 10128 10129 2009-10-23 Niels Möller <nisse@lysator.liu.se> 10130 10131 * gmp-impl.h (mpn_toom62_mul_itch): New function. 10132 10133 * tests/mpn/t-toom53.c: New test program. 10134 * tests/mpn/t-toom62.c: New test program. 10135 10136 2009-10-23 Torbjorn Granlund <tege@gmplib.org> 10137 10138 * mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines. 10139 * tests/mpf/t-get_d.c (test_denorms): New function. 10140 10141 2009-10-23 Niels Möller <nisse@lysator.liu.se> 10142 10143 * mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch 10144 space, not TMP_ALLOC. Interface change, now requires input sizes 10145 such that s + t >= 5. 10146 10147 * gmp-impl.h (mpn_toom52_mul_itch): New function. 10148 10149 * tests/mpn/t-toom52.c: New test program. 10150 10151 2009-10-22 Torbjorn Granlund <tege@gmplib.org> 10152 10153 * mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease. 10154 10155 2009-10-22 Niels Möller <nisse@lysator.liu.se> 10156 10157 * tests/mpn/t-toom44.c: New test program. 10158 * tests/mpn/t-toom33.c: New test program. 10159 10160 * tests/mpn/toom-shared.h (main): Reorganized input generation. 10161 Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN. 10162 Updated existing toom test programs. 10163 10164 2009-10-22 Torbjorn Granlund <tege@gmplib.org> 10165 10166 * tests/devel/try.c: Fix typos in last change. 10167 10168 2009-10-21 Torbjorn Granlund <tege@gmplib.org> 10169 10170 * mpn/asm-defs.m4 (define_mpn): Add mullow_basecase. 10171 10172 * tests/devel/try.c: Test mpn_mullow_n. 10173 10174 * tests/refmpn.c (refmpn_mullow_n): New function. 10175 * tests/tests.h: Declare it. 10176 10177 2009-10-21 Niels Möller <nisse@lysator.liu.se> 10178 10179 * tests/mpn/toom-shared.h (main): Check for writes outside of the 10180 product or scratch area. 10181 10182 * gmp-impl.h (mpn_toom43_mul_itch): New function. 10183 10184 * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch 10185 space, not TMP_ALLOC. Interface change, now requires input sizes 10186 such that s + t >= 5. 10187 10188 2009-10-20 Niels Möller <nisse@lysator.liu.se> 10189 10190 * tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be 10191 overridden by users. Needed by t-toom42 and t-toom43. 10192 10193 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32, 10194 t-toom42 and t-toom43. 10195 * tests/mpn/t-toom43.c: New test program. 10196 * tests/mpn/t-toom42.c: New test program. 10197 * tests/mpn/t-toom32.c: New test program. 10198 10199 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22. 10200 * tests/mpn/t-toom22.c: New test file. 10201 * tests/mpn/toom-shared.h: New file. Test framework for Toom 10202 functions. 10203 10204 2009-10-14 Niels Möller <nisse@lysator.liu.se> 10205 10206 * mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new 10207 mpn_matrix22_mul_strassen, the scratch need is reduced by 16%. 10208 10209 2009-10-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 10210 10211 * mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New 10212 Strassen-like algorithm, to reduce the amount of temporary 10213 storage. 10214 (mpn_matrix22_mul_itch): Updated to reflect the reduced storage 10215 need. 10216 10217 2009-10-03 Torbjorn Granlund <tege@gmplib.org> 10218 10219 * Rename mpn_addsub_n to mpn_add_n_sub_n. 10220 10221 2009-10-01 Torbjorn Granlund <tege@gmplib.org> 10222 10223 * mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of 10224 old functions. 10225 10226 * mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions. 10227 10228 * mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from 10229 TOOM22_MUL_N_REC. Unconditionally call the generic mpn_mul_n. 10230 * mpn/generic/toom32_mul.c: Analogous changes. 10231 10232 2009-09-28 Niels Möller <nisse@lysator.liu.se> 10233 10234 * mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the 10235 Newton iteration. 10236 10237 2009-09-27 Niels Möller <nisse@lysator.liu.se> 10238 10239 * mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1 10240 arguments to add, sub and shift. 10241 10242 2009-09-25 Niels Möller <nisse@lysator.liu.se> 10243 10244 * mpn/x86/invert_limb.asm: New file. 10245 10246 2009-09-24 Torbjorn Granlund <tege@gmplib.org> 10247 10248 * mpn/generic/toom33_mul.c: Use new toom functions for all recursive 10249 products. 10250 * mpn/generic/toom3_sqr.c: Likewise. 10251 * mpn/generic/toom44_mul.c: Likewise. 10252 * mpn/generic/toom4_sqr.c: Likewise. 10253 10254 * mpn/generic/add_n.c: Relax operand overlap ASSERTs. 10255 * mpn/generic/sub_n.c: Likewise. 10256 10257 2009-09-15 Torbjorn Granlund <tege@gmplib.org> 10258 10259 Suggested by Uwe Mueller: 10260 * printf/doprnt.c: Use "%ld" for exponent printing. 10261 * printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long". 10262 10263 2009-09-14 Torbjorn Granlund <tege@gmplib.org> 10264 10265 * configure.in: Handle mingw64. 10266 * gmp-impl.h (gmp_intptr_t): Declare. 10267 * tests/amd64check.c (calling_conventions_values): Use CNST_LIMB. 10268 * tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p". 10269 * tests/misc.c: Use gmp_intptr_t. 10270 * tests/mpq/t-get_str.c: Print pointers using C90 "%p". 10271 10272 2009-08-12 Torbjorn Granlund <tege@gmplib.org> 10273 10274 * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code. 10275 10276 * mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p. 10277 10278 * mpn/arm/invert_limb.asm: Complete rewrite. 10279 10280 * longlong.h: Document LONGLONG_STANDALONE and NO_ASM. 10281 10282 2009-08-05 Torbjorn Granlund <tege@gmplib.org> 10283 10284 * tests/mpz/dive_ui.c (check_random): Avoid zero divisors. 10285 10286 2009-07-31 Torbjorn Granlund <tege@gmplib.org> 10287 10288 * mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility 10289 pointed out by Per Austrin). 10290 (mpn_mod_1_1p): Renamed from mpn_mod_1s_1p. 10291 (mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps. 10292 *mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for 10293 any modulus. 10294 10295 2009-07-28 Torbjorn Granlund <tege@gmplib.org> 10296 10297 * configure.in: Pass arch for x86 also in 64-bit mode. 10298 10299 2009-07-26 Torbjorn Granlund <tege@swox.com> 10300 10301 * config.guess (_cpuid): Recognise more Intel "Core" processors. 10302 10303 2009-07-13 Torbjorn Granlund <tege@gmplib.org> 10304 10305 * mpf/eq.c: Rewrite. 10306 10307 * tests/mpf/t-eq.c: New test. 10308 10309 2009-07-06 Torbjorn Granlund <tege@gmplib.org> 10310 10311 * gmp-impl.h (__mp_bases): Remove this alias. 10312 10313 * mpf/get_str.c: Use less overflow prone expression for computing limb 10314 allocation. 10315 * mpz/inp_str.c: Likewise. 10316 * mpf/set_str.c: Likewise. 10317 * mpz/set_str.c: Likewise. 10318 10319 2009-07-03 Niels Möller <nisse@lysator.liu.se> 10320 10321 * mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce 10322 the number of branches in the loop. 10323 10324 2009-06-28 Torbjorn Granlund <tege@gmplib.org> 10325 10326 * demos/factorize.c (factor_using_pollard_rho): Rewrite. 10327 10328 * mpz/clears.c: New file. 10329 * mpq/clears.c: New file. 10330 * mpf/clears.c: New file. 10331 * gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare. 10332 * mpz/Makefile.am: Add clears.c. 10333 * mpq/Makefile.am: Add clears.c. 10334 * mpf/Makefile.am: Add clears.c. 10335 * Makefile.am: Add these also to respective OBJECTS variables. 10336 * doc/gmp.texi: Document inits function and clears functions. 10337 10338 2009-06-20 Torbjorn Granlund <tege@gmplib.org> 10339 10340 * mp-h.in (mp_bitcnt_t): Declare here too. 10341 10342 2009-06-19 Torbjorn Granlund <tege@gmplib.org> 10343 10344 * mpq/inits.c: New file. 10345 * mpf/inits.c: New file. 10346 * gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare . 10347 10348 * mpn/generic/remove.c: New file. 10349 * configure.in (gmp_mpn_functions): Add remove. 10350 * gmp-impl.h (mpn_remove): Declare. 10351 10352 * gmp-h.in (mp_bitcnt_t): New basic type. 10353 * mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition. 10354 10355 * mpn/generic/bdiv_qr.c: Make it actually work. 10356 10357 * mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and 10358 to need fewer registers. 10359 10360 2009-06-17 Torbjorn Granlund <tege@gmplib.org> 10361 10362 * mpn/x86_64/rsh1aors_n.asm: New file. 10363 * mpn/x86_64/rsh1add_n.asm: Remove. 10364 * mpn/x86_64/rsh1sub_n.asm: Remove. 10365 10366 * mpz/inits.c: New file. 10367 10368 * gen-trialdivtab.c: Wrap limb constants into CNST_LIMB. 10369 10370 With Martin Boij: 10371 * mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being 10372 recursive to being iterative. 10373 (mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer 10374 overrun. Trim allocation of next and prev. Never create oversize 10375 products in the multiplicity binary search. 10376 10377 * mpn/generic/dc_div_q.c: Add missing TMP_FREE. 10378 10379 2009-06-16 Torbjorn Granlund <tege@gmplib.org> 10380 10381 Revert: 10382 * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive. 10383 10384 2009-06-16 Martin Boij <mboij@kth.se> 10385 10386 * mpn/generic/perfpow.c (logs): Use more conservative table. 10387 10388 2009-06-15 Torbjorn Granlund <tege@gmplib.org> 10389 10390 * mpn/pa64/aors_n.asm: New file. 10391 * mpn/pa64/add_n.asm: Remove. 10392 * mpn/pa64/sub_n.asm: Remove. 10393 10394 * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive. 10395 10396 2009-06-14 Torbjorn Granlund <tege@gmplib.org> 10397 10398 * mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn. 10399 * mpn/x86_64/dive_1.asm: Likewise. 10400 10401 * mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not 10402 mpn_divexact_itch for 2-adic division. 10403 (all functions): Micro optimise. 10404 10405 * Makefile.am (libmp_la_SOURCES): Add nextprime.c. 10406 10407 2009-06-13 Torbjorn Granlund <tege@gmplib.org> 10408 10409 * gmp-h.in (mpn_perfect_power_p): Declare. 10410 * configure.in (gmp_mpn_functions): Add perfpow. 10411 * mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p. 10412 10413 2009-06-13 Martin Boij <mboij@kth.se> 10414 10415 * mpn/generic/perfpow.c: New file. 10416 * tests/mpz/t-perfpow.c: Rewrite. 10417 10418 2009-06-12 Torbjorn Granlund <tege@gmplib.org> 10419 10420 * mpn/generic/bdiv_qr.c: New file. 10421 * mpn/generic/bdiv_q.c: New file. 10422 * configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q. 10423 * gmp-impl.h: Declare new functions. 10424 10425 * nextprime.c: New file. 10426 * gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime): 10427 Declare. 10428 * Makefile.am (libgmp_la_SOURCES): Add nextprime.c. 10429 10430 2009-06-11 Torbjorn Granlund <tege@gmplib.org> 10431 10432 * mpn/generic/trialdiv.c: New file. 10433 * gen-trialdivtab.c: New file. 10434 * configure.in (gmp_mpn_functions): Add trialdiv. 10435 * gmp-impl.h (mpn_trialdiv): Declare 10436 * Makefile.am: Add rules for gen-trialdivtab and trialdiv. 10437 10438 * longlong.h (arm count_leading_zeros): Define for armv5. 10439 10440 * gmp-impl.h: Move down toom itch functions to after we've #defined 10441 all THRESHOLDs. 10442 10443 * dumbmp.c (isprime): Replace with slightly less inefficient code. 10444 (mpz_tdiv_r): New function. 10445 10446 2009-06-11 Niels Möller <nisse@lysator.liu.se> 10447 10448 Support for mpn_toom32_mul in speed: 10449 * tune/speed.c (routine): Added mpn_toom32_mul. 10450 * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro. 10451 * tune/common.c (speed_mpn_toom32_mul): New function. 10452 10453 * gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed 10454 for the calls to mpn_toom22_mul. 10455 (ABOVE_THRESHOLD): Moved this and related macros so it can be used 10456 by mpn_toom32_mul_itch. 10457 (mpn_toom22_mul_itch): Count scratch space for recursive calls. 10458 10459 2009-06-11 Torbjorn Granlund <tege@gmplib.org> 10460 10461 * mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful 10462 also for k6 and non-sse p6. 10463 10464 2009-06-10 Torbjorn Granlund <tege@gmplib.org> 10465 10466 * mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks. 10467 10468 * mpn/x86/mod_1.asm: Remove obsolete file. 10469 * mpn/x86/k7/mmx/mod_1.asm: Likewise. 10470 * mpn/x86/pentium4/sse2/mod_1.asm: Likewise. 10471 * mpn/x86/p6/mod_1.asm: Likewise. 10472 * mpn/x86/pentium/mod_1.asm: Likewise. 10473 10474 2009-06-08 Niels Möller <nisse@lysator.liu.se> 10475 10476 * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce 10477 the need for scratch space, and get rid of TMP_ALLOC. Also use 10478 mpn_toom_eval_dgr3_pm1. 10479 10480 * mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts): 10481 Stricter ASSERTs based on maximum size of polynomial coefficients. 10482 Improved comments on the signedness of intermediate values. 10483 10484 2009-06-07 Torbjorn Granlund <tege@gmplib.org> 10485 10486 * mpn/generic/toom2_sqr.c: Make it actually work. 10487 10488 * mpn/generic/toom3_sqr.c: Reduce local scratch space. 10489 10490 2009-06-05 Torbjorn Granlund <tege@gmplib.org> 10491 10492 * mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200. 10493 (MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide 10494 FFT_TABLE2_SIZE if they are defined. 10495 (struct nk): Use bit field. 10496 10497 2009-06-05 Niels Möller <nisse@lysator.liu.se> 10498 10499 * mpn/generic/toom44_mul.c (mpn_toom44_mult): Use 10500 mpn_toom_eval_dgr3_pm1. 10501 10502 * mpn/generic/toom_eval_dgr3_pm1.c: New file. 10503 10504 * mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts): 10505 Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U. 10506 10507 * mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to 10508 reduce the need for scratch space, and get rid of TMP_ALLOC. 10509 10510 2009-06-05 Torbjorn Granlund <tege@gmplib.org> 10511 10512 * mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to 10513 mpn_bdiv_q_1_pi1, if the latter is NATIVE. 10514 10515 2009-06-04 Torbjorn Granlund <tege@gmplib.org> 10516 10517 * mpn/x86_64/bdiv_q_1.asm: New file. 10518 10519 * configure.in (HAVE_NATIVE): Add recently added functions. 10520 (GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n. 10521 10522 * tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1): 10523 New functions. 10524 * tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1. 10525 * tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define. 10526 (SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define. 10527 10528 * configure.in (gmp_mpn_functions): Add bdiv_q_1. 10529 * mpn/generic/bdiv_q_1.c: New file. 10530 * mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1. 10531 * gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare. 10532 10533 * mpn/x86_64/lshift.asm: Cleanup. 10534 * mpn/x86_64/rshift.asm: Cleanup. 10535 10536 * mpn/x86_64/addlsh1_n.asm: Removed. 10537 * mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle 10538 addlsh1_n and rsblsh1_n functionality. 10539 10540 * tests/refmpn.c (refmpn_rsblsh1_n): New function. 10541 * tests/devel/try.c: Test mpn_rsblsh1_n. 10542 * tests/tests.h: Declare refmpn_rsblsh1_n. 10543 * tune/common.c (speed_mpn_rsblsh1_n): New function. 10544 * tune/speed.c (routine): Add mpn_rsblsh1_n. 10545 * tune/speed.h (mpn_rsblsh1_n): Declare. 10546 10547 * configure.in (gmp_mpn_functions_optional): Add rsblsh1_n. 10548 (GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc. 10549 * mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n. 10550 * gmp-impl.h (mpn_rsblsh1_n): Declare. 10551 10552 * mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC. 10553 10554 2009-06-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 10555 10556 * mpn/generic/toom43_mul.c: New file. 10557 * mpn/generic/toom52_mul.c: New file. 10558 * mpn/generic/toom_interpolate_6pts.c: New file. 10559 10560 2009-06-03 Torbjorn Granlund <tege@gmplib.org> 10561 10562 * configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and 10563 toom_interpolate_6pts, but also some previously forgotten functions. 10564 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise. 10565 * gmp-impl.h: Declare new functions. Sort toom function declarations. 10566 10567 * gmp-impl.h: Rename toom4_* flags enum to toom7_*. Relevant C files 10568 updated. 10569 10570 * mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove. 10571 10572 2009-06-02 Torbjorn Granlund <tege@gmplib.org> 10573 10574 * demos/factorize.c: Add -q command line option. 10575 10576 2009-06-02 Marco Bodrato <bodrato@mail.dm.unipi.it> 10577 10578 * mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed 10579 improvements. 10580 10581 * mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely 10582 do away with explicit scratch space. 10583 * gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype. 10584 10585 * mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n): 10586 Update toom_interpolate_5pts call without scratch space parameter. 10587 * mpn/generic/toom3_sqr.c: Likewise. 10588 * mpn/generic/toom42_mul.c: Likewise. 10589 * mpn/generic/toom33_mul.c: Likewise. 10590 10591 * mpn/generic/toom33_mul.c: Reduce local scratch space. 10592 * mpn/generic/toom32_mul.c: Rewrite to not use local scratch space. 10593 10594 2009-06-02 Torbjorn Granlund <tege@gmplib.org> 10595 10596 * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for 10597 oo point. 10598 10599 2009-06-01 Torbjorn Granlund <tege@gmplib.org> 10600 10601 * mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and 10602 toom44 slicing code. 10603 10604 * mpz/remove.c: Correctly handle multiplicity that does not fit an int. 10605 10606 * Makefile.am (dist-hook): Check library version consistency. 10607 10608 * mpn/generic/mul.c: Rewrite. 10609 10610 2009-05-29 Torbjorn Granlund <tege@gmplib.org> 10611 10612 * tests/mpz/t-divis.c (check_random): Create huge test operands. 10613 10614 * mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC 10615 call, not multiple TMP_SALLOC. 10616 * mpn/generic/toom4_sqr.c: Likewise. 10617 10618 * gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code. 10619 10620 * mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT. 10621 10622 * mpn/generic/divis.c: Rewrite. 10623 10624 * gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t. 10625 (mpn_toom2_sqr_itch): Simplify. 10626 10627 * mpn/generic/mu_bdiv_qr.c: Implement properly. 10628 10629 2009-05-27 Torbjorn Granlund <tege@gmplib.org> 10630 10631 * mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function. 10632 * mpn/generic/mod_1_2.c: Likewise. 10633 * mpn/generic/mod_1_3.c: Likewise. 10634 * mpn/generic/mod_1_4.c: Likewise. 10635 10636 * tune: Add speed measuring of toom22, toom33, and toom44. 10637 10638 * mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient 10639 product better. 10640 10641 2009-05-26 Torbjorn Granlund <tege@gmplib.org> 10642 10643 * tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for 10644 better huge-operands performance. 10645 10646 2009-05-24 Torbjorn Granlund <tege@gmplib.org> 10647 10648 * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$". 10649 10650 2009-05-23 Torbjorn Granlund <tege@gmplib.org> 10651 10652 * gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p): 10653 Declare using __GMP_ATTRIBUTE_PURE. 10654 10655 * tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N 10656 functions. 10657 (one): Remove redundant size loop exit condition. 10658 10659 2009-05-20 Torbjorn Granlund <tege@gmplib.org> 10660 10661 * mpn/x86/pentium4/sse2/mod_1_4.asm: New file. 10662 * mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code). 10663 10664 2009-05-18 Torbjorn Granlund <tege@gmplib.org> 10665 10666 * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4. 10667 (__GNU_MP_VERSION_PATCHLEVEL): Set to -1. 10668 10669 * mpn/x86_64/mod_1_4.asm: New file. 10670 10671 * mpn/asm-defs.m4: Correct names for mod_1_N functions. 10672 Add defines for corresponding cps functions. 10673 10674 * mpn/generic/mod_1_2.c: Support any sizes > 1. 10675 * mpn/generic/mod_1_3.c: Likewise. 10676 * mpn/generic/mod_1_4.c: Likewise. 10677 10678 2009-05-12 Torbjorn Granlund <tege@gmplib.org> 10679 10680 * Version 4.3.1 released. 10681 10682 2009-05-11 Torbjorn Granlund <tege@gmplib.org> 10683 10684 * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump. 10685 10686 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): 10687 Bump version info. 10688 10689 2009-05-09 Torbjorn Granlund <tege@gmplib.org> 10690 10691 * tests/mpz: Add MPZ_CHECK_FORMAT to many tests. 10692 10693 2009-05-07 Torbjorn Granlund <tege@gmplib.org> 10694 10695 * mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is 10696 defined in x86-defs.m4. 10697 10698 2009-05-06 Torbjorn Granlund <tege@gmplib.org> 10699 10700 * mpn/x86/p6/aors_n.asm: Use L() for labels. 10701 * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise. 10702 * mpn/x86/pentium4/sse2/mul_1.asm: Likewise. 10703 * mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise. 10704 * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise. 10705 * mpn/x86_64/lshift.asm: Likewise. 10706 * mpn/x86_64/rshift.asm: Likewise. 10707 10708 * tests/cxx/t-locale.cc (point_string): Declare as extern "C" to 10709 placate compilers that mangle variable names. 10710 10711 2009-05-04 Torbjorn Granlund <tege@gmplib.org> 10712 10713 * tests/mpz/t-gcd.c: Generate operands that are multiple of each other. 10714 10715 2009-05-01 Torbjorn Granlund <tege@gmplib.org> 10716 10717 * gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems. 10718 (gmp_randinit_set): Add missing __GMP_DECLSPEC. 10719 10720 2009-04-28 Torbjorn Granlund <tege@gmplib.org> 10721 10722 * mpn/generic/neg_n.c: New file. 10723 * configure.in (gmp_mpn_functions): Add neg_n. 10724 * mpn/asm-defs.m4 (define_mpn): Add neg_n. 10725 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c. 10726 * gmp-h.in: Handle mpn_neg_n properly. 10727 10728 * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify. 10729 10730 * mpn/generic/gcdext.c: Change some MPN_NORMALIZE to 10731 MPN_NORMALIZE_NOT_ZERO. 10732 * mpn/generic/gcdext_lehmer.c: Likewise. 10733 Add a MPN_NORMALIZE_NOT_ZERO. 10734 10735 * mpn/generic/binvert.c: Remove own mpn_neg_n. 10736 10737 * tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls. 10738 10739 2009-04-27 Torbjorn Granlund <tege@gmplib.org> 10740 10741 * mpn/Makefile.am (TARG_DIST): Add minithres. 10742 10743 * mpn/generic/bdiv_dbm1c.c: Handle nails. 10744 10745 2009-04-26 Torbjorn Granlund <tege@gmplib.org> 10746 10747 * config.guess: Recognise more POWER processor types. 10748 10749 2009-04-25 Torbjorn Granlund <tege@gmplib.org> 10750 10751 * mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug. 10752 * mpn/x86/darwin.m4: Define symbol "DARWIN". 10753 10754 2009-04-19 Torbjorn Granlund <tege@gmplib.org> 10755 10756 * mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort(). 10757 * mpn/generic/powm_sec.c: Likewise. 10758 10759 * mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define. Add dummy variants 10760 for other m4 files. 10761 * mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC. 10762 * mpn/powerpc64/mode64/divrem_1.asm: Likewise. 10763 10764 2009-04-16 Torbjorn Granlund <tege@gmplib.org> 10765 10766 * mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define. 10767 * mpn/x86_64/darwin.m4: Likewise. 10768 * mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT. 10769 10770 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): 10771 Remove an unused variable. 10772 10773 * mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right. 10774 10775 2009-04-14 Torbjorn Granlund <tege@gmplib.org> 10776 10777 * Version 4.3.0 released. 10778 10779 * scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy 10780 argument. 10781 * scanf/sscanffuns.c (scan): Disable vsscanf variant for now. 10782 10783 2009-04-13 Torbjorn Granlund <tege@gmplib.org> 10784 10785 * scanf/sscanffuns.c (scan): Rewrite to use stdarg. 10786 10787 * tests/mpz/t-root.c: Rewrite. Add unconditional gcc 4.3.2 tests. 10788 10789 2009-04-09 Torbjorn Granlund <tege@gmplib.org> 10790 10791 * mpn/generic/powm.c: New file. 10792 * mpn/generic/powlo.c: New file. 10793 * mpn/generic/powm_sec.c: New file. 10794 * configure.in (gmp_mpn_functions): List new functions. 10795 10796 2009-04-08 Torbjorn Granlund <tege@gmplib.org> 10797 10798 * mpz/urandomm.c: Amend last fix. 10799 10800 2009-04-06 Torbjorn Granlund <tege@gmplib.org> 10801 10802 * configure.in: Support Sun cc for x86_64. 10803 10804 * mpz/urandomm.c: Handle operand overlap. 10805 10806 2009-03-11 Torbjorn Granlund <tege@gmplib.org> 10807 10808 * configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that 10809 GCC now passes the proper options. 10810 10811 2009-03-09 Torbjorn Granlund <tege@gmplib.org> 10812 10813 * mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised 10814 case. 10815 10816 2009-03-05 Torbjorn Granlund <tege@gmplib.org> 10817 10818 * ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h, 10819 pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update. 10820 10821 2009-03-03 Torbjorn Granlund <tege@gmplib.org> 10822 10823 * mpn/ia64/bdiv_dbm1c.asm: Accept/return carry. 10824 10825 2009-03-02 Torbjorn Granlund <tege@gmplib.org> 10826 10827 * configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris 10828 system compiler. 10829 10830 2009-03-01 Torbjorn Granlund <tege@gmplib.org> 10831 10832 * longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer 10833 gcc. 10834 10835 2009-02-04 Torbjorn Granlund <tege@gmplib.org> 10836 10837 * mpn/generic/redc_2.c: Remove code for testing and timing. Update 10838 to current FSF header. 10839 * mpn/generic/redc_1.c: Update to current FSF header. 10840 10841 2009-01-21 Torbjorn Granlund <tege@gmplib.org> 10842 10843 * mpz/powm.c (redc): Remove. 10844 (mpz_powm): Use mpn_redc_1 instead of redc. 10845 10846 * tests/mpz/t-powm.c: Rewrite reference code. 10847 10848 2009-01-18 Torbjorn Granlund <tege@gmplib.org> 10849 10850 * tests/mpz: Increase reps for many tests. 10851 10852 * mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of 10853 mpn_sub_1 (works around gcc 4.3 bugs and is also faster). 10854 10855 2009-01-16 Torbjorn Granlund <tege@gmplib.org> 10856 10857 * tests/tests.h: Declare refmpn_divrem_2. 10858 10859 2009-01-15 Torbjorn Granlund <tege@gmplib.org> 10860 10861 * mpz/perfpow.c: Add TMP_FREE before every return statement. 10862 10863 * mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE. 10864 10865 * configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2, 10866 the change was accidental and cause too much miscompilation. 10867 10868 2009-01-14 Torbjorn Granlund <tege@gmplib.org> 10869 10870 * tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when 10871 longlong.h specified UDIV_PREINV_ALWAYS. 10872 10873 * mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation 10874 divisor. 10875 10876 2009-01-13 Torbjorn Granlund <tege@gmplib.org> 10877 10878 * tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD, 10879 MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD. 10880 10881 * mpn/generic/mod_1.c: Rewrite. 10882 * mpn/generic/mod_1_1.c: New file. 10883 * mpn/generic/mod_1_2.c: New file. 10884 * mpn/generic/mod_1_3.c: New file. 10885 * mpn/generic/mod_1_4.c: New file. 10886 * configure.in (gmp_mpn_functions): Add mod_1_*. 10887 * mpn/asm-defs.m4 (define_mpn): Add mod_1_*. 10888 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c. 10889 * gmp-impl.h: Declare new mpn_mod_1s_* functions and associated 10890 THRESHOLD macros. 10891 (udiv_rnd_preinv): New macro. 10892 10893 2009-01-12 Torbjorn Granlund <tege@gmplib.org> 10894 10895 * tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1. 10896 10897 2009-01-08 Torbjorn Granlund <tege@gmplib.org> 10898 10899 * tests/mpz/t-nextprime.c: New test file. 10900 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime. 10901 10902 From Niels Möller: 10903 * mpz/nextprime.c: Handle large prime gaps by limiting incr. 10904 10905 2009-01-04 Torbjorn Granlund <tege@gmplib.org> 10906 10907 * mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source 10908 pointers after reallocation. Misc cleanup. 10909 10910 * gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N. 10911 10912 * mpn/x86/fat/diveby3.c: New file. 10913 10914 2008-12-30 Niels Möller <nisse@lysator.liu.se> 10915 10916 * doc/gmp.texi (Greatest Common Divisor Algorithms): Updated 10917 section on GCD algorithms. 10918 10919 2008-12-29 Torbjorn Granlund <tege@gmplib.org> 10920 10921 * doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4 10922 and unbalanced multiplication. 10923 (Radix to Binary): Add warning that text is outdated, 10924 (Contributors): Fix typos. 10925 10926 * mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming 10927 unreachable recursive functions. 10928 * gmp-impl.h: Update toom itch functions. 10929 10930 * mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to 10931 placate tuneup. 10932 10933 2008-12-28 Torbjorn Granlund <tege@gmplib.org> 10934 10935 * mpn/x86_64/pentium4/aors_n.asm: Tune prologue code. 10936 10937 * mpn/x86_64/pentium4/aorslsh1_n.asm: New file. 10938 10939 * mpn/x86_64/darwin.m4: Define symbol "DARWIN". 10940 * mpn/x86_64/invert_limb.asm: Work around darwin quirks. 10941 10942 * mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin. 10943 10944 * mpn/x86_64/invert_limb.asm: New file. 10945 10946 2008-12-27 Torbjorn Granlund <tege@gmplib.org> 10947 10948 * mpn/x86_64/core2/aorslsh1_n.asm: New file. 10949 10950 2008-12-26 Torbjorn Granlund <tege@gmplib.org> 10951 10952 * mpz/perfpow.c: Handle negative arguments properly. 10953 * tests/mpz/t-perfpow.c: New file. 10954 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow. 10955 10956 2008-12-23 Torbjorn Granlund <tege@gmplib.org> 10957 10958 * tests/mpz/t-mul.c (dump_abort): Improve error message. 10959 10960 * gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c: 10961 Remove private mpn_zero_p. 10962 10963 * tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD. 10964 (tune_sqr): Tune for SQR_TOOM4_THRESHOLD. 10965 10966 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and 10967 toom4_sqr.c. 10968 10969 * configure.in (gmp_mpn_functions): Toom function updates. 10970 10971 * Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c. Function names changed 10972 accordingly. 10973 10974 * mpn/toomMN_mul.c: Add scratch parameter. Do recursive multiplies 10975 properly. Misc tuning. Remove CHECK and TIMING code. 10976 10977 * mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files. 10978 10979 * gmp-impl.h (mpn_toomMN_mul_itch): Several new functions. 10980 (mpn_zero_p): New functions. 10981 Add various TOOM4/TOOM44 related parameters. 10982 Update mpn_toomMN_mul prototypes. 10983 10984 * mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul. Use TMP_BALLOC 10985 instead of malloc. 10986 (mpn_sqr_n): Analogous changes. 10987 10988 * mpn/generic/mul.c: Update unbalanced toom code to pass scratch space. 10989 10990 2008-12-21 Torbjorn Granlund <tege@gmplib.org> 10991 10992 * mpz/nextprime.c: Add TMP_SDECL/MARK/FREE. 10993 10994 2008-12-20 Torbjorn Granlund <tege@gmplib.org> 10995 10996 * mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface. 10997 (invsqrttab): New table, remove table approx_tab. 10998 (mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call. 10999 (mpn_sqrtrem): Update mpn_sqrtrem1 call. 11000 11001 2008-12-18 Torbjorn Granlund <tege@gmplib.org> 11002 11003 * mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5). 11004 Give credit to authors. 11005 11006 * mpn/x86_64/redc_1.asm: Align stack as mandated by ABI. 11007 11008 * mpn/x86_64/divrem_2.asm: Add some comments. 11009 11010 * mpn/x86_64/darwin.m4: New file. 11011 * configure.in: Use x86_64/darwin.m4. 11012 11013 2008-12-15 Torbjorn Granlund <tege@gmplib.org> 11014 11015 * doc/projects.html: Remove GCD and division projects, update text on 11016 multiplication. 11017 11018 * doc/tasks.html: Add a caution about that the file is somewhat 11019 outdated. 11020 11021 2008-12-14 Torbjorn Granlund <tege@gmplib.org> 11022 11023 * mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1, 11024 much improved for mpn_submul_1). 11025 * mpn/alpha/ev6/addmul_1: File removed. 11026 * mpn/alpha/ev6/submul_1: File removed. 11027 11028 2008-12-09 Torbjorn Granlund <tege@gmplib.org> 11029 11030 From David Harvey: 11031 * mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed. 11032 11033 * mpn/powerpc64/mode64/divrem_1.asm: Rewrite. 11034 11035 * mpn/powerpc64/mode64/mul_basecase.asm: New file. 11036 11037 2008-12-08 Torbjorn Granlund <tege@gmplib.org> 11038 11039 * mpn/powerpc64/mode64/gmp-mparam.h: New file. 11040 11041 * gmp-impl.h: Additional cleanups. 11042 (mpn_set_str_compute_powtab): New prototype. 11043 (mpn_powm, mpn_powlo): New prototypes. 11044 11045 * mpz/pow_ui.c: Handle some small exponents locally. 11046 11047 2008-12-07 Torbjorn Granlund <tege@gmplib.org> 11048 11049 * mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h). 11050 11051 * tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving 11052 the #define mpn_set_str* before including gmp-impl.h. 11053 11054 * All files: Change _PROTO => __GMP_PROTO. 11055 11056 * tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad. 11057 * tune/common.c (speed_mpn_dc_set_str): Remove, it is broken. 11058 11059 * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static, 11060 and inline it. 11061 11062 * gmp-impl.h: Major cleanup. 11063 (Remove formal parameter names. Use __GMP_PROTO consistently. Move 11064 __GMP_PROTO and __MPN use to adjacent lines for declared function. 11065 Fix typos. Remove code inside #if 0.) 11066 11067 * configure.in (gmp_mpn_functions): Add mul_toom33. Reformat. 11068 11069 2008-12-05 Torbjorn Granlund <tege@gmplib.org> 11070 11071 * mpn/generic/redc_1.c: New file. 11072 * mpn/generic/redc_2.c: New file. 11073 11074 * configure.in (gmp_mpn_functions): List redc_1 and redc_2. 11075 (HAVE_NATIVE): Likewise. 11076 11077 * tune/common.c (speed_mpn_redc_1): Renamed from speed_redc. 11078 * tune/speed.c (routine): Remove "redc", and "mpn_redc_1". 11079 * tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC. 11080 Updated call. 11081 * tune/tuneup.c (tune_powm): Update redc call. 11082 11083 2008-12-04 Torbjorn Granlund <tege@gmplib.org> 11084 11085 * mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code 11086 and addlsh1 loop. Misc cleanup. 11087 11088 2008-12-02 Torbjorn Granlund <tege@gmplib.org> 11089 11090 * mpn/x86_64/sqr_basecase.asm: New file. 11091 11092 2008-11-30 Torbjorn Granlund <tege@gmplib.org> 11093 11094 * mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant. 11095 11096 2008-11-28 Torbjorn Granlund <tege@gmplib.org> 11097 11098 * mpn/x86_64/redc_1.asm: Rewrite. 11099 11100 2008-11-27 Torbjorn Granlund <tege@gmplib.org> 11101 11102 * tests/refmpn.c (refmpn_redc_1): New function. 11103 11104 2008-11-25 Torbjorn Granlund <tege@gmplib.org> 11105 11106 * mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1. 11107 11108 2008-11-23 Torbjorn Granlund <tege@gmplib.org> 11109 11110 * mpn/x86_64/divrem_1.asm: Rewrite. 11111 11112 * alpha/divrem_2.asm: New file. 11113 * powerpc32/divrem_2.asm: New file. 11114 * powerpc64/mode64/divrem_2.asm: New file. 11115 * x86/divrem_2.asm: New file. 11116 * x86_64/divrem_2.asm: New file. 11117 * tests/refmpn.c (refmpn_divrem_2): New function. 11118 11119 2008-11-22 Torbjorn Granlund <tege@gmplib.org> 11120 11121 * mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed. 11122 * mpn/x86/k7/aorsmul_1.asm: Likewise. 11123 11124 * acinclude.m4 (GMP_VERSION): Include last component even when zero. 11125 11126 2008-11-21 Torbjorn Granlund <tege@gmplib.org> 11127 11128 * mpn/x86_64/README: Rewrite. 11129 11130 * tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for 11131 printf type correctness. 11132 11133 * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump. 11134 11135 * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): 11136 Bump version info. 11137 11138 2008-11-20 Torbjorn Granlund <tege@gmplib.org> 11139 11140 * gmp-impl.h: Rename modlimb_invert to binvert_limb. 11141 * tune/speed.h: Likewise. 11142 * tune/modlinv.c: Likewise. 11143 * tune/common.c: Likewise. 11144 * tests/t-modlinv.c: Likewise. 11145 * tests/t-constants.c: Likewise. 11146 * mpn/sparc64/mode1o.c: Likewise. 11147 * mpn/alpha/dive_1.c: Likewise. 11148 * mpn/sparc64/dive_1.c: Likewise. 11149 * mpn/generic/mode1o.c: Likewise. 11150 * mpn/generic/dive_1.c: Likewise. 11151 * mpn/generic/bdivmod.c: Likewise. 11152 * mpn/alpha/mode1o.asm: Likewise. 11153 * mpn/asm-defs.m4: Likewise. 11154 * mpn/ia64/mode1o.asm: Likewise. 11155 * mpn/powerpc32/README: Likewise. 11156 * mpn/powerpc32/mode1o.asm: Likewise. 11157 * mpn/powerpc64/mode64/dive_1.asm: Likewise. 11158 * mpn/powerpc64/mode64/mode1o.asm: Likewise. 11159 * mpn/x86/dive_1.asm: Likewise. 11160 * mpn/x86/k6/mmx/dive_1.asm: Likewise. 11161 * mpn/x86/k6/mode1o.asm: Likewise. 11162 * mpn/x86/k7/dive_1.asm: Likewise. 11163 * mpn/x86/k7/mode1o.asm: Likewise. 11164 * mpn/x86/p6/dive_1.asm: Likewise. 11165 * mpn/x86/p6/mode1o.asm: Likewise. 11166 * mpn/x86/pentium/dive_1.asm: Likewise. 11167 * mpn/x86/pentium/mode1o.asm: Likewise. 11168 * mpn/x86/pentium4/sse2/dive_1.asm: Likewise. 11169 * mpn/x86/pentium4/sse2/mode1o.asm: Likewise. 11170 * mpn/x86_64/dive_1.asm: Likewise. 11171 * mpn/x86_64/mode1o.asm: Likewise. 11172 11173 * mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment 11174 neutral loop. 11175 11176 2008-11-18 Torbjorn Granlund <tege@gmplib.org> 11177 11178 * configure.in: Remove gcd_finda related declarations. 11179 * gmp-impl.h (mpn_gcd_finda): Remove declaration. 11180 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda. 11181 * mpn/asm-defs.m4: Remove define_mpn(gcd_finda). 11182 * mpn/x86/k6/gcd_finda.asm: Remove file. 11183 * tests/devel/try.c (param_init): Remove mpn_gcd_finda. 11184 (choice_array): Remove mpn_gcd_finda. 11185 * tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda. 11186 * tests/refmpn.c (refmpn_gcd_finda): Remove. 11187 * tests/tests.h (refmpn_gcd_finda): Remove declaration. 11188 * tune/common.c (speed_mpn_gcd_finda): Remove. 11189 * tune/gcd_finda_gen.c: Remove file. 11190 * tune/speed.h (speed_mpn_gcd_finda): Remove declaration. 11191 * tune/speed.c (routine): Remove mpn_gcd_finda entry. 11192 11193 * tests/mpz/t-powm.c: Print test number when failing a test. 11194 11195 * mpn/x86_64/redc_1.asm (CALL): Move from here... 11196 * mpn/x86_64/x86_64-defs.m4: ...to here. 11197 11198 * gmp-impl.h (mpn_jacobi_base): Remove parameter names. 11199 11200 2008-11-11 Torbjorn Granlund <tege@gmplib.org> 11201 11202 * tests/mpf/t-conv.c: Add some specific tests, supplementing the random 11203 tests. 11204 11205 2008-11-09 Torbjorn Granlund <tege@gmplib.org> 11206 11207 * mpf/set_str.c: Default 'base' before letting exp_base inherit it. 11208 11209 * tests/cxx/t-prec.cc: Use the right precision for all float constants. 11210 11211 2008-11-08 Torbjorn Granlund <tege@gmplib.org> 11212 11213 * doc/gmp.texi (Float Comparison): Update mpf_eq documentation. 11214 11215 * mpf/eq.c: Compare the right number of bits. 11216 11217 2008-11-02 Torbjorn Granlund <tege@gmplib.org> 11218 11219 Undo, it made testing too slow: 11220 * tests/mpz/t-mul.c: Use slower geometric progression for operand 11221 sizes. 11222 11223 * mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits. 11224 11225 2008-10-31 Niels Möller <nisse@lysator.liu.se> 11226 11227 * mpn/generic/hgcd2.c (div1): New function (taken from old gcdext 11228 implementation) 11229 (mpn_hgcd2): Use single precision for the second half of the work. 11230 11231 2008-10-30 Torbjorn Granlund <tege@gmplib.org> 11232 11233 * mpn/x86/p6/sse2/gmp-mparam.h: New file. 11234 11235 2008-10-29 Torbjorn Granlund <tege@gmplib.org> 11236 11237 * configure.in (x86 fat_path): Add "x86/p6/sse2". 11238 11239 * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6 11240 (pentiumm, core2). 11241 11242 * mpn/x86/p6/sse2/mul_1.asm: New file. 11243 * mpn/x86/p6/sse2/addmul_1.asm: New file. 11244 * mpn/x86/p6/sse2/submul_1.asm: New file. 11245 * mpn/x86/p6/sse2/mul_basecase.asm: New file. 11246 * mpn/x86/p6/sse2/sqr_basecase.asm: New file. 11247 * mpn/x86/p6/sse2/popcount.asm: New file. 11248 11249 * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for 11250 model and family. 11251 11252 2008-10-28 Torbjorn Granlund <tege@gmplib.org> 11253 11254 From Mickael Gastineau: 11255 * gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC. 11256 11257 2008-10-27 Torbjorn Granlund <tege@gmplib.org> 11258 11259 * gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE. 11260 11261 2008-10-27 Niels Möller <nisse@lysator.liu.se> 11262 11263 * tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once 11264 for each call to mpn_hgcd. 11265 (speed_mpn_hgcd_lehmer): Likewise. 11266 11267 2008-10-26 Torbjorn Granlund <tege@gmplib.org> 11268 11269 * configure.in: Point to p6/sse2 for pentiumm and core2. 11270 11271 * gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat 11272 definitions. 11273 11274 * tune/common.c, tune/speed.c, tune/speed.h: 11275 Add speed measurement of mpn_bdiv_dbm1c. 11276 11277 2008-10-24 Torbjorn Granlund <tege@gmplib.org> 11278 11279 * mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend. 11280 11281 * mpz/nextprime.c: Move declarations to function beginning. 11282 11283 2008-10-23 Niels Möller <nisse@lysator.liu.se> 11284 11285 * gmp-impl.h (DECL_gcdext_1): Deleted. 11286 11287 2008-10-22 Torbjorn Granlund <tege@gmplib.org> 11288 11289 * mpn/x86_64/atom/aors_n.asm: New file. 11290 * mpn/x86_64/atom/gmp-mparam.h: New file. 11291 11292 2008-10-21 Torbjorn Granlund <tege@gmplib.org> 11293 11294 With Neils Möller: 11295 * mpz/nextprime.c: Rewrite. 11296 11297 * tests/devel/try.c (main): Use strtol for 's' and 'S' optargs. 11298 11299 * mpn/x86_64/pentium4/rshift.asm: Misc cleanups. 11300 * mpn/x86_64/pentium4/lshift.asm: Likewise. 11301 11302 * mpn/x86_64/pentium4/aors_n.asm: Use fewer registers. 11303 11304 * configure.in: Set up specific path for x86_64/atom. 11305 11306 2008-10-21 Niels Möller <nisse@lysator.liu.se> 11307 11308 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed 11309 qstack.c. 11310 * mpn/generic/qstack.c: Deleted obsolete file. 11311 11312 2008-10-20 Torbjorn Granlund <tege@gmplib.org> 11313 11314 * mpn/x86_64/core2/aorsmul_1.asm: New file. 11315 11316 2008-10-19 Torbjorn Granlund <tege@gmplib.org> 11317 11318 * mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE. 11319 11320 * gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS 11321 inside several of these macros. 11322 11323 2008-10-17 Torbjorn Granlund <tege@gmplib.org> 11324 11325 * tests/mpz/t-mul.c: Use slower geometric progression for operand 11326 sizes. Do every other tests for same size operands. 11327 11328 2008-10-15 Torbjorn Granlund <tege@gmplib.org> 11329 11330 * mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue. 11331 11332 * mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old 11333 algorithm. 11334 11335 * config.guess, config.sub, configure.in: Support Intel Atom processor. 11336 11337 2008-10-10 Torbjorn Granlund <tege@gmplib.org> 11338 11339 * mpq/mul.c: Fix typo in last change. 11340 11341 2008-10-09 Torbjorn Granlund <tege@gmplib.org> 11342 11343 * tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug. 11344 11345 2008-10-08 Torbjorn Granlund <tege@gmplib.org> 11346 11347 * mpq/mul.c: Use TMP_ALLOC. Cleanup. 11348 * mpq/div.c: Likewise. 11349 11350 * mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point 11351 addresses. 11352 11353 2008-10-09 Niels Möller <nisse@lysator.liu.se> 11354 11355 * mpn/x86/k7/gmp-mparam.h: Updated GCD-related values. 11356 11357 2008-10-05 Torbjorn Granlund <tege@gmplib.org> 11358 11359 * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store 11360 mpn_fft_norm_modF return value, if (rec). 11361 11362 2008-10-04 Torbjorn Granlund <tege@gmplib.org> 11363 11364 * mpn/x86_64/aorsmul_1.asm: Replace with faster code. 11365 * mpn/x86_64/mul_1.asm: Likewise. 11366 * mpn/x86_64/addmul_2.asm: Likewise. 11367 * mpn/x86_64/mul_2.asm: Likewise. 11368 * mpn/x86_64/mul_basecase.asm: Likewise. 11369 11370 2008-10-02 Torbjorn Granlund <tege@gmplib.org> 11371 11372 * mpn/minithres/gmp-mparam.h: Update FFT values. 11373 11374 2008-10-02 Niels Möller <nisse@lysator.liu.se> 11375 11376 * hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug. 11377 11378 2008-09-24 Torbjorn Granlund <tege@gmplib.org> 11379 11380 * configure.in: Handle --enable-minithres. 11381 * mpn/minithres/gmp-mparam.h: Update all values. 11382 11383 2008-09-22 Torbjorn Granlund <tege@gmplib.org> 11384 11385 * tune/speed.c (routine): New entry for mpn_mul. 11386 * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from 11387 SPEED_ROUTINE_MPN_MUL_BASECASE. 11388 (speed_mpn_mul): Renamed from speed_mpn_mul_basecase. 11389 (SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand. 11390 11391 * tune/common.c: Corresponding changes. 11392 11393 2008-09-22 Niels Möller <nisse@lysator.liu.se> 11394 11395 * mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function, 11396 replaces addmul2_n. Needs less copying. 11397 (mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface 11398 change in mpn_gcdext_subdiv_step 11399 11400 * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use 11401 mpn_hgcd_mul_matrix1_vector. 11402 (hgcd_step): Updated for interface change in 11403 mpn_hgcd_mul_matrix1_inverse_vector. 11404 11405 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for 11406 interface changes in mpn_hgcd_mul_matrix1_vector, 11407 mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step. 11408 11409 * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for 11410 interface change in mpn_hgcd_mul_matrix1_inverse_vector. 11411 11412 * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use 11413 separate scratch arguments for the quotient and for the cofactor 11414 update. 11415 11416 * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface 11417 change. Store first element in rp and leave ap unmodified. No 11418 additional scratch space or copying needed. Callers that require 11419 modification in place still need to copy one of the inputs. 11420 (mpn_hgcd_mul_matrix1_inverse_vector): Likewise. 11421 11422 2008-09-22 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se> 11423 11424 * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0. 11425 * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise. 11426 11427 * mpn/generic/gcd.c: Use libspeed for timing measurements. 11428 11429 * gmp-impl.h: Declare mpn_addaddmul_1msb0. 11430 * mpn/asm-defs.m4: Added addaddmul_1msb0. 11431 * mpn/x86_64/addaddmul_1msb0.asm: New file. 11432 * configure.in (gmp_mpn_functions_optional): Added 11433 addaddmul_1msb0. 11434 (HAVE_NATIVE): List addaddmul_1msb0. 11435 11436 2008-09-21 Torbjorn Granlund <tege@gmplib.org> 11437 11438 * mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default. 11439 (GET_STR_PRECOMPUTE_THRESHOLD): Likewise. 11440 Misc code cleanups. 11441 11442 * gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs. 11443 11444 Revert: 11445 * mpn/generic/set_str.c: 11446 (mpn_dc_set_str): Remove impossible case, replace by an ASSERT. 11447 11448 2008-09-18 Torbjorn Granlund <tege@gmplib.org> 11449 11450 * mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define. 11451 11452 * mpn/ia64/diveby3.asm: Remove. 11453 * mpn/x86/diveby3.asm: Remove. 11454 * mpn/x86/k6/diveby3.asm: Remove. 11455 * mpn/x86/k7/diveby3.asm: Remove. 11456 * mpn/x86/p6/diveby3.asm: Remove. 11457 * mpn/x86/pentium/diveby3.asm: Remove. 11458 * mpn/x86_64/diveby3.asm: Remove. 11459 * mpn/x86/pentium4/sse2/diveby3.asm: Remove. 11460 11461 * configure.in (HAVE_NATIVE): List divexact_by3c. 11462 11463 * gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition. 11464 (DIVEXACT_BY3_METHOD): Don't default to 0 if 11465 HAVE_NATIVE_mpn_divexact_by3c. 11466 11467 2008-09-18 Niels Möller <nisse@lysator.liu.se> 11468 11469 * mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P. 11470 11471 * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are 11472 normalized. 11473 11474 2008-09-17 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se> 11475 11476 * mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a 11477 slowdown for large inputs. As a compromise, use p = n/2 for the 11478 first iteration, and p = n/3 for the rest. Handle the first 11479 iteration specially, since the initial u0 and u1 are trivial. 11480 11481 * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold 11482 from 409 to 390. 11483 11484 * mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5. 11485 (mpn_gcdext): Use CHOOSE_P, and generalized the calculation of 11486 scratch space. 11487 11488 * tune/tuneup.c (tune_hgcd): Use default step factor. 11489 11490 * mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to 11491 412. 11492 11493 * mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the 11494 split when calling hgcd. Use p = 2n/3, as that seems better than 11495 the more obvious split p = n/2. 11496 (mpn_gcd): Use CHOOSE_P, and generalized the calculation of 11497 scratch space. 11498 11499 2008-09-16 Torbjorn Granlund <tege@gmplib.org> 11500 11501 * mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN 11502 functions. 11503 11504 * gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7, 11505 mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13, 11506 mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1. 11507 11508 * configure.in (gmp_mpn_functions): List bdiv_dbm1c. 11509 (HAVE_NATIVE): Likewise. 11510 * mpn/asm-defs.m4: Define bdiv_dbm1c. 11511 * gmp-impl.h (mpn_bdiv_dbm1c): Declare. 11512 (mpn_bdiv_dbm1): New macro. 11513 * mpn/generic/bdiv_dbm1c.c: New file. 11514 * mpn/alpha/bdiv_dbm1c.asm: New file. 11515 * mpn/ia64/bdiv_dbm1c.asm: New file. 11516 * mpn/powerpc32/bdiv_dbm1c.asm: New file. 11517 * mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file. 11518 * mpn/x86/bdiv_dbm1c.asm: New file. 11519 * mpn/x86_64/bdiv_dbm1c.asm: New file. 11520 11521 * mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function. 11522 Choose function depending on DIVEXACT_BY3_METHOD. 11523 * gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default. 11524 11525 2008-09-16 Niels Möller <nisse@lysator.liu.se> 11526 11527 * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to 11528 gcdext.c, where it is used. 11529 * mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was 11530 mpn_hgcd_addmul2_n. Made static. Deleted input normalization. 11531 Deleted rn argument. 11532 (mpn_gcdext): Updated calls to addmul2_n, and added assertions. 11533 11534 * gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs. 11535 (MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb. 11536 (MPN_GCD_SUBDIV_STEP_ITCH): Likewise. 11537 (MPN_GCD_LEHMER_N_ITCH): Likewise. 11538 11539 * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs. 11540 (hgcd_step): Use overlapping arguments to mpn_tdiv_qr. 11541 (mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds 11542 for the element size of the product. Needs two extra limbs of 11543 storage for the elements. 11544 (mpn_hgcd_itch): Updated storage calculation. 11545 11546 * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use 11547 overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p. 11548 11549 * mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p. 11550 11551 2008-09-15 Niels Möller <nisse@lysator.liu.se> 11552 11553 * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted 11554 tp pointer. 11555 (hgcd_matrix_update_q): Likewise. 11556 (mpn_hgcd_matrix_mul): Likewise. 11557 (mpn_hgcd_itch): Updated calculation of scratch space. 11558 11559 * gmp-impl.h (struct hgcd_matrix): Deleted tp pointer. 11560 (MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage. 11561 (mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations. 11562 11563 2008-09-15 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se> 11564 11565 * mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New 11566 threshold. 11567 11568 * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul. 11569 (mpn_hgcd_itch): Updated calculation of scratch space. Use 11570 count_leading_zeros to get the recursion depth. 11571 11572 * mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space, 11573 and use mpn_hgcd_itch. 11574 11575 2008-09-15 Niels Möller <nisse@lysator.liu.se> 11576 11577 * tune/tuneup.c (tune_matrix22_mul): New function. 11578 (all): Use it. 11579 11580 * tune/common.c (speed_mpn_matrix22_mul): New function. 11581 11582 * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c. 11583 11584 * tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to 11585 select sizes for tests. 11586 11587 * gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold 11588 11589 * configure.in (gmp_mpn_functions): Added matrix22_mul. 11590 * gmp-impl.h: Added declarations for mpn_matrix22_mul and related 11591 functions. 11592 11593 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added 11594 matrix22_mul.c. 11595 * tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22. 11596 11597 * tests/mpn/t-matrix22.c: New file. 11598 * mpn/generic/matrix22_mul.c: New file. 11599 11600 2008-09-11 Niels Möller <nisse@king.swox.se> 11601 11602 * tune/tuneup.c: Updated tuning of gcdext. 11603 11604 * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold 11605 from 713 to 409. 11606 11607 2008-09-11 Niels Möller <nisse@lysator.liu.se> 11608 11609 * gmp-impl.h: Updated for gcdext changes. 11610 (GCDEXT_DC_THRESHOLD): New constant, renamed from 11611 GCDEXT_SCHOENHAGE_THRESHOLD. 11612 11613 * mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b 11614 as inputs. 11615 (mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd 11616 interface. 11617 11618 * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n 11619 and made non-static. Changed interface to take non-normalized 11620 inputs, and only two size arguments. 11621 (mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n. 11622 11623 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted 11624 function. 11625 (mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes 11626 inputs of equal size. Moved the code for the division step to a 11627 separate function... 11628 * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New 11629 file, new function. 11630 11631 * configure.in (gmp_mpn_functions): Added gcdext_subdiv_step. 11632 11633 2008-09-10 Torbjorn Granlund <tege@gmplib.org> 11634 11635 * tests/devel/anymul_1.c: Include <string.h>. 11636 11637 * gmp-h.in: Unconditionally include <cstdio>. 11638 11639 2008-09-10 Niels Möller <nisse@lysator.liu.se> 11640 11641 * tune/common.c: #if:ed out speed_mpn_gcd_binary and 11642 speed_mpn_gcd_accel. 11643 * tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel 11644 and find_a. 11645 * tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c 11646 gcd_accel.c gcd_finda_gen.c. 11647 * tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD. 11648 11649 * mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses 11650 the new mpn_hgcd interface. 11651 11652 * */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to 11653 GCD_DC_THRESHOLD. 11654 11655 * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was 11656 mpn_gcd_lehmer). Now takes inputs of equal size. 11657 11658 * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2, 11659 to get better performance for small inputs. 11660 11661 * mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD. 11662 * mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to 11663 120. 11664 * */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to 11665 HGCD_THRESHOLD. 11666 11667 2008-09-09 Torbjorn Granlund <tege@gmplib.org> 11668 11669 * doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs. 11670 11671 2008-09-09 Niels Möller <nisse@lysator.liu.se> 11672 11673 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted 11674 to new hgcd interface. 11675 11676 * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro. 11677 11678 * hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made 11679 non-static. 11680 11681 * gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2. 11682 11683 * gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for 11684 division step. Added proper book-keeping of swaps, which affect 11685 the sign of the returned cofactor. 11686 11687 * tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext 11688 fails. 11689 11690 * gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle 11691 the special case n == 1 correctly. 11692 11693 * gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function. 11694 The special cancellation logic is not needed here. 11695 11696 2008-09-08 Torbjorn Granlund <tege@gmplib.org> 11697 11698 * mpn/generic/invert.c: Add working but slow code. 11699 11700 * mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros. 11701 11702 * mpn/ia64/submul_1.asm: Move some labels for broader assembler 11703 compatibility. 11704 11705 * gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare. 11706 * tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare. 11707 * tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4. 11708 (choice_array): Likewise. 11709 (call): Likewise. 11710 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): 11711 Add mul_3.c and mul_4. 11712 * mpn/asm-defs.m4: Define mul_3 and mul_4. 11713 * tests/refmpn.c (refmpn_mul_N): New function. 11714 (refmpn_mul_2): Remove old definition, call refmpn_mul_N. 11715 (refmpn_mul_3, refmpn_mul_4): New functions. 11716 * tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions. 11717 * tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare. 11718 * tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3. 11719 11720 * ltmain.sh: Update to libtool 1.5.24. 11721 11722 * mpn/generic/mul_toom22.c: Compute s and t more cleverly. 11723 11724 2008-09-08 Niels Möller <nisse@lysator.liu.se> 11725 11726 * tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref. 11727 11728 * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function. 11729 (mpn_gcdext_lehmer): Various bugfixes. 11730 11731 * gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer. 11732 11733 * mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd. 11734 (mpn_gcd_lehmer): Added tp argument, for scratch space. Make both 11735 arguments odd before calling gcd_2. 11736 11737 * mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2, 11738 and return 0 immediately. 11739 11740 * gmp-impl.h (MPN_EXTRACT_NUMB): New macro. 11741 11742 * configure.in (gmp_mpn_functions): Added gcdext_lehmer. 11743 11744 2008-09-05 Torbjorn Granlund <tege@gmplib.org> 11745 11746 * mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of 11747 divexact_odd. 11748 11749 * doc/texinfo.tex: Update to 2007-06-29.13. 11750 11751 * doc/gmp.texi: Update GMP site URL. Fix some typos. 11752 11753 * demos/pexpr.c (main): Allow bases up to 62. 11754 11755 * gmp-impl.h: Remove formal parameter names from function prototypes. 11756 11757 * config.guess: Recognize recent AMD and Itanium CPUs. 11758 Default X86 CPU recognition to configfsf.guess' value. 11759 11760 * configure.in: Handle core2 separately from athlon64. 11761 11762 2008-09-05 Niels Möller <nisse@lysator.liu.se> 11763 11764 * */Makefile.in, configure, aclocal.m4, config.in: Removed files 11765 from repository. They're instead generated by automake and 11766 autoconf before distribution. 11767 11768 2008-08-25 Torbjorn Granlund <tege@gmplib.org> 11769 11770 * mpf/set_str.c: Allocate mantissa space based on mantissa size, 11771 not on destination variable space. 11772 * mpf/set_str.c: Accept unary plus before exponent. 11773 11774 2008-08-06 Torbjorn Granlund <tege@gmplib.org> 11775 11776 * mpn/generic/mul_toom22.c: Add statistics gathering functionality, 11777 triggered by cpp predef STAT. 11778 11779 From David Harvey: 11780 * mpn/generic/mul_toom22.c: Decrease scratch space usage. 11781 11782 2008-08-02 Torbjorn Granlund <tege@gmplib.org> 11783 11784 * tests/misc/t-scanf.c: Avoid negative arguments to _ui functions. 11785 * tests/misc/t-printf.c: Likewise. 11786 11787 * acinclude.m4 (X86_PATTERN): Add geode. 11788 11789 * acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep. 11790 11791 2008-08-01 Torbjorn Granlund <tege@gmplib.org> 11792 11793 * acinclude.m4 (CL_AS_NOEXECSTACK): New. 11794 * configure.in: Use CL_AS_NOEXECSTACK. 11795 * mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK). 11796 11797 * gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of 11798 std::numeric_limits<double>::max_exponent for better portability. 11799 11800 2008-07-29 Torbjorn Granlund <tege@gmplib.org> 11801 11802 * gmpxx.h (__GMP_DBL_LIMBS): New #define. 11803 (__GMP_ULI_LIMBS): New #define. 11804 (__GMPXX_TMP_UI): New macro. 11805 (__GMPXX_TMP_SI): New macro. 11806 (__GMPXX_TMP_D): New macro. 11807 (struct __gmp_binary_and): Rewrite, using the new macros. 11808 (struct __gmp_binary_ior): Likewise. 11809 (struct __gmp_binary_xor): Likewise. 11810 11811 2008-07-28 Torbjorn Granlund <tege@gmplib.org> 11812 11813 * tests/cxx/t-binary.cc: Add some tests for logical operations. 11814 11815 2008-07-24 Torbjorn Granlund <tege@gmplib.org> 11816 11817 * gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove 11818 __GMPZZ_*. 11819 Remove repeated #undefs. 11820 (__gmp_alloc_cstring): Declare freefunc as extern "C". 11821 11822 2008-07-23 Torbjorn Granlund <tege@gmplib.org> 11823 11824 * gmp-h.in (__GMP_CC): New define, undocumented for now. 11825 (__GMP_CFLAGS): Likewise. 11826 11827 2008-07-21 Torbjorn Granlund <tege@gmplib.org> 11828 11829 * tests/amd64check.c: Fix a printf type clash. 11830 11831 * mpz/realloc.c: Amend last fix. 11832 11833 * gmp-h.in: Include <cstdlib> for C++. 11834 * gmp-h.in: Handle new gcc 4.3 inline semantics defaults. 11835 11836 * configfsf.guess: Update to version of 2008-04-14. 11837 * configfsf.sub: Update to version of 2008-06-16. 11838 11839 * configure.in: Separate core2 and athlon64 flags handling. 11840 11841 2008-06-19 Torbjorn Granlund <tege@gmplib.org> 11842 11843 * config.guess: Recognize pentiumm and AMD geode. 11844 * config.sub: Likewise. 11845 * configure.in: Likewise. 11846 11847 2008-06-02 Torbjorn Granlund <tege@gmplib.org> 11848 11849 * configure.in: Disallow odd nails sizes. 11850 * configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere. 11851 11852 2008-05-23 Torbjorn Granlund <tege@gmplib.org> 11853 11854 * mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t 11855 overflow. 11856 * mpz/realloc2.c: Likewise. 11857 * mpz/realloc.c: Detect mpz_t overflow. 11858 11859 2008-05-22 Torbjorn Granlund <tege@gmplib.org> 11860 11861 * configure.in (sparc): Remove -fast, it causes documented 11862 miscompilation. 11863 11864 * config.guess: Properly handle the "extended" variants of x86 cpuid. 11865 11866 2008-05-09 Torbjorn Granlund <tege@gmplib.org> 11867 11868 * gmp-impl.h (mpn_mul_fft): Now void. 11869 (udiv_qrnnd_preinv3): Special case for constant (nl). 11870 11871 2008-05-08 Torbjorn Granlund <tege@gmplib.org> 11872 11873 * mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)). 11874 (TRACE): Redefine to allow command line control. 11875 (mpn_mul_fft_internal): Now void, remove return value. 11876 (mpn_mul_fft): Likewise. 11877 (MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512. 11878 (mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice, 11879 then add/subtract result. Get rid of temp allocation as a result. 11880 Remove some redundant CNST_LIMB. 11881 (mpn_fft_fftinv): Analogous changes. 11882 (mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and 11883 mpn_fft_fftinv. 11884 11885 2008-03-10 Torbjorn Granlund <tege@gmplib.org> 11886 11887 * tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed 11888 power-of-2 of test operands. 11889 11890 2008-02-28 Torbjorn Granlund <tege@gmplib.org> 11891 11892 * tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right 11893 shift. 11894 11895 2008-02-27 Torbjorn Granlund <tege@gmplib.org> 11896 11897 * mpz/mul_i.h: Check sml's size (not the signed small_mult). 11898 11899 * longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh 11900 when possible. 11901 11902 * longlong.h (count_trailing_zeros): Force destination register mode. 11903 11904 * gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not 11905 truncation. 11906 11907 * gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor): 11908 Add variants with unsigned long int argument. 11909 11910 * config.sub: Recog geode. 11911 * config.guess: Likewise. 11912 * acinclude.m4 (X86_PATTERN): Likewise. 11913 11914 2008-02-10 Torbjorn Granlund <tege@gmplib.org> 11915 11916 * mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug. 11917 * mpn/x86/x86-defs.m4 (Zdisp): Add more instructions. 11918 11919 2008-02-08 Torbjorn Granlund <tege@gmplib.org> 11920 11921 * mpn/x86_64/aors_n.asm: New file. 11922 * mpn/x86_64/add_n.asm: Delete. 11923 * mpn/x86_64/sub_n.asm: Delete. 11924 11925 2008-02-07 Torbjorn Granlund <tege@gmplib.org> 11926 11927 * mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change. 11928 11929 2007-12-10 Torbjorn Granlund <tege@swox.com> 11930 11931 * mpf/set_str.c (mpf_set_str): Write own code for converting the 11932 exponent, avoids strtol base < 36 limitation. 11933 11934 2007-10-28 Torbjorn Granlund <tege@swox.com> 11935 11936 * gmp-impl.h (mpn_dc_get_str_itch): New macro. 11937 (mpn_dc_get_str_powtab_alloc): New macro. 11938 (struct powers): Add field "shift". 11939 11940 * mpn/generic/get_str.c: Compute powers without low zero limbs; all 11941 functions modified. Correct temporary allocation. Misc cleanups. 11942 11943 * mpn/generic/set_str.c: Compute powers without low zero limbs; all 11944 functions modified. 11945 (mpn_dc_set_str): Remove impossible case, replace by an ASSERT. 11946 11947 2007-10-26 Torbjorn Granlund <tege@swox.com> 11948 11949 * mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h. 11950 (mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm. 11951 11952 2007-10-22 Torbjorn Granlund <tege@swox.com> 11953 11954 * gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE. 11955 (mpn_sub_nc): Likewise. 11956 11957 2007-10-17 Torbjorn Granlund <tege@swox.com> 11958 11959 * tests/misc/t-printf.c: Fix a printf type clash. 11960 * tests/mpq/t-get_str.c: Likewise. 11961 * tests/mpz/t-import.c: Likewise. 11962 11963 * acinclude.m4: Conditionally disable some tests when compiled by a C++ 11964 compiler. 11965 11966 * gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable. 11967 11968 * mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings. 11969 11970 2007-10-08 Torbjorn Granlund <tege@swox.com> 11971 11972 * mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA. 11973 * mpn/powerpc32/darwin.m4 (LEAL): Likewise. 11974 * mpn/powerpc64/aix.m4: Likewise. 11975 11976 * mpn/powerpc64/vmx/popcount.asm: Use LEAL. 11977 11978 * mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only 11979 usable for local symbols. 11980 (LEA): Replace with code for external references. 11981 11982 * mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL. 11983 11984 2007-10-07 Torbjorn Granlund <tege@swox.com> 11985 11986 * mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*. 11987 * mpn/x86/k6/mode1o.asm: Likewise. 11988 * mpn/x86/k6/mmx/dive_1.asm: Likewise. 11989 * mpn/x86/k7/dive_1.asm: Likewise. 11990 * mpn/x86/k7/mode1o.asm: Likewise. 11991 * mpn/x86/p6/dive_1.asm: Likewise. 11992 * mpn/x86/p6/mode1o.asm: Likewise. 11993 * mpn/x86/pentium4/sse2/dive_1.asm: Likewise. 11994 * mpn/x86/pentium4/sse2/mode1o.asm: Likewise. 11995 * mpn/x86/pentium4/sse2/popcount.asm: Likewise. 11996 11997 * mpn/x86/p6/aors_n.asm: Table cycle counts. 11998 11999 * mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims. 12000 12001 * mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's. 12002 12003 * mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu. 12004 Expect target register to have prepended %. 12005 12006 * mpn/x86_64/add_n.asm: Use L() for labels. 12007 * mpn/x86_64/addlsh1_n.asm: Likewise. 12008 * mpn/x86_64/addmul_2.asm: Likewise. 12009 * mpn/x86_64/aorrlsh_n.asm: Likewise. 12010 * mpn/x86_64/aorsmul_1.asm: Likewise. 12011 * mpn/x86_64/com_n.asm: Likewise. 12012 * mpn/x86_64/copyd.asm: Likewise. 12013 * mpn/x86_64/copyi.asm: Likewise. 12014 * mpn/x86_64/diveby3.asm: Likewise. 12015 * mpn/x86_64/logops_n.asm: Likewise. 12016 * mpn/x86_64/lshsub_n.asm: Likewise. 12017 * mpn/x86_64/mul_1.asm: Likewise. 12018 * mpn/x86_64/mul_2.asm: Likewise. 12019 * mpn/x86_64/mul_basecase.asm: Likewise. 12020 * mpn/x86_64/popham.asm: Likewise. 12021 * mpn/x86_64/redc_1.asm: Likewise. 12022 * mpn/x86_64/rsh1add_n.asm: Likewise. 12023 * mpn/x86_64/rsh1sub_n.asm: Likewise. 12024 * mpn/x86_64/rshift.asm: Likewise. 12025 * mpn/x86_64/sub_n.asm: Likewise. 12026 * mpn/x86_64/sublsh1_n.asm Likewise. 12027 * mpn/x86_64/pentium4/aors_n.asm: Likewise. 12028 * mpn/x86_64/pentium4/lshift.asm: Likewise. 12029 * mpn/x86_64/pentium4/rshift.asm: Likewise. 12030 12031 * mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and 12032 END_OBJECT. 12033 12034 * mpn/generic/mul.c: Put TMP_DECL as last decl. 12035 12036 2007-10-06 Torbjorn Granlund <tege@swox.com> 12037 12038 * mpn/x86/pentium4/sse2/popcount.asm: New file. 12039 12040 2007-09-26 Torbjorn Granlund <tege@swox.com> 12041 12042 * mpz/get_str.c: Cast a char index to int to shut up compilers. 12043 12044 * mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert. 12045 * mpn/generic/dc_divappr_q.c: Likewise. 12046 * mpn/generic/mu_div_qr.c: Likewise. 12047 * mpn/generic/mu_divappr_q.c: Likewise. 12048 * mpn/generic/mu_div_q.c: Likewise. 12049 * mpn/generic/divexact.c: Likewise. 12050 12051 * mpn/generic/invert.c: New file, placeholder for now. 12052 12053 2007-09-24 Torbjorn Granlund <tege@swox.com> 12054 12055 * mpn/generic/toom_interpolate_5pts.c: New file, contents from 12056 mpn/generic/mul_n.c 12057 * mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed. 12058 12059 * mpn/generic/toom_interpolate_7pts.c: New file. 12060 12061 * mpn/x86/k7/mmx/popham.asm: Table cycle counts. 12062 12063 * mpn/x86/k6/README: Update URLs. 12064 12065 * mpn/powerpc32/README: Update URL's, company names. 12066 12067 * mpn/generic/get_d.c: Complete rewrite. 12068 12069 * mpn/generic/mul_toom33.c: New file. 12070 12071 * mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files. 12072 * mpn/generic/mul_toom32.c: Likewise. 12073 * mpn/generic/mul_toom42.c: Likewise. 12074 12075 * mpn/alpha/invert_limb.asm: Update cycle counts. Fix a comment typo. 12076 12077 * mpf/get_str.c: Include stdlib.h, not stdio.h for NULL. 12078 12079 * doc/gmp.texi: Fix a typo. 12080 12081 * memory.c (__gmp_default_allocate, __gmp_default_reallocate): 12082 Cast size operands in error fprintf's. 12083 12084 * longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant 12085 args. 12086 12087 * gmp-impl.h (udiv_qrnnd_preinv3): New define. 12088 * gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from 12089 ia64 asm. 12090 12091 * gmp-h.in (mpn_neg_n): New function. 12092 12093 2007-09-18 Torbjorn Granlund <tege@swox.com> 12094 12095 * demos/pexpr.c (main): Add -v option. 12096 (enum op_t): New tag TIMING. 12097 (mpz_eval_expr): Execute TIMING. 12098 (fns): Add TIMING entry. 12099 12100 * gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication 12101 functions and division functions. 12102 12103 2007-09-10 Torbjorn Granlund <tege@swox.com> 12104 12105 * mpn/powerpc32/addlsh1_n.asm: Use L() for labels. 12106 * mpn/powerpc32/sublsh1_n.asm: Likewise. 12107 12108 2007-09-09 Torbjorn Granlund <tege@swox.com> 12109 12110 * mpn/x86/x86-defs.m4 (LEA): New define. 12111 * mpn/x86/darwin.m4: New file, for now just defining LEA. 12112 * configure.in: Pick up x86/darwin.m4. 12113 * mpn/x86/*: Use LEA for PIC references. 12114 12115 * configure.in: For X86/32, treat core2 like pentium3. 12116 12117 2007-09-06 Torbjorn Granlund <tege@swox.com> 12118 12119 * tests/amd64check.c (calling_conventions_values): Put constants, 12120 dynamic values in this array (was in scalars). 12121 (calling_conventions_check): Corresponding changes. 12122 * tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's 12123 array. 12124 12125 2007-09-04 Torbjorn Granlund <tege@swox.com> 12126 12127 * mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups. 12128 * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise. 12129 12130 * mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size. 12131 12132 * tests/amd64call.asm: Remove bogus no-op moves. 12133 12134 2007-09-03 Torbjorn Granlund <tege@swox.com> 12135 12136 From Richard Guenther: 12137 * gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on 12138 __GNUC_STDC_INLINE__. 12139 12140 * tests/cxx/t-locale.cc: #include <cstdlib>, for abort. 12141 12142 * mpn/x86_64/core2/popcount.asm: New file. 12143 * mpn/x86_64/pentium4/popcount.asm: New file. 12144 12145 * mpn/x86_64/addmul_2.asm: New file. 12146 * mpn/x86_64/mul_2.asm: New file. 12147 12148 * mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers 12149 (saves space). 12150 12151 2007-09-01 Torbjorn Granlund <tege@swox.com> 12152 12153 * configure.in: Handle athlon64, core2, and pentium4 separately for 12154 64-bit ABI. 12155 12156 * config.sub: Recog athlon64, core2, and opteron. 12157 12158 * config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI. 12159 Return "athlon64" and "core2", not x86_64. 12160 12161 2007-08-31 Torbjorn Granlund <tege@swox.com> 12162 12163 From Patrick Pelissier: 12164 * gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE. 12165 12166 2007-08-30 Torbjorn Granlund <tege@swox.com> 12167 12168 * demos/isprime.c: Include string.h for strcmp. 12169 12170 * demos/factorize.c (main): Declare to int. 12171 12172 2007-06-22 Torbjorn Granlund <tege@swox.com> 12173 12174 * mpn/x86_64/pentium4/lshift.asm: Minor tuning. 12175 * mpn/x86_64/pentium4/rshift.asm: Likewise. 12176 12177 2007-05-30 Torbjorn Granlund <tege@swox.com> 12178 12179 * mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points. 12180 12181 2007-05-22 Torbjorn Granlund <tege@swox.com> 12182 12183 * tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops. 12184 12185 2007-05-16 Torbjorn Granlund <tege@swox.com> 12186 12187 * tests/mpz/convert.c: Tweak operand sizes for best coverage. 12188 12189 * tests/memory.c: Add red zones around allocations. 12190 12191 2007-05-15 Torbjorn Granlund <tege@swox.com> 12192 12193 * mpn/ia64/mul_1.asm: Make mul_1c entry point actually work. 12194 12195 * mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when 12196 ln == 0. 12197 12198 * tests/mpz/convert.c (string_urandomb): New function. 12199 (main): Use it by enabling ifdef'ed out code. 12200 12201 2007-04-30 Torbjorn Granlund <tege@swox.com> 12202 12203 * mpn/x86_64/mul_basecase.asm: Complete rewrite. 12204 12205 * mpn/x86_64/copyi.asm: Use short shift-by-one form. Misc cleanups. 12206 * mpn/x86_64/copyi.asm: Likewise. 12207 * mpn/x86_64/popham.asm: Likewise. 12208 12209 * mpn/x86_64/aorsmul_1.asm: Cleanup formatting. 12210 12211 2007-04-25 Torbjorn Granlund <tege@swox.com> 12212 12213 * mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults. 12214 12215 2007-02-24 Torbjorn Granlund <tege@swox.com> 12216 12217 * doc/gmp.texi (Toom 3-Way Multiplication): Fix typo. 12218 (mpz_scan0, mpz_scan1): Fix typos. 12219 (Float Internals): Rewrite paragraph about struct types. 12220 12221 2007-02-12 Torbjorn Granlund <tege@swox.com> 12222 12223 * mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except 12224 diagonal code). 12225 12226 2007-02-05 Torbjorn Granlund <tege@swox.com> 12227 12228 * mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr, 12229 old mpn_fft_fft removed. 12230 (mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand. 12231 (mpn_fft_add_modF): Rewrite to avoid random branches. 12232 (mpn_fft_sub_modF): Likewise. 12233 12234 * mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite. 12235 * mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite. 12236 * mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on 12237 new addmul and mul code. 12238 12239 2007-01-31 Torbjorn Granlund <tege@swox.com> 12240 12241 * mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac 12242 development right. 12243 12244 * mpn/powerpc32/vmx/mod_34lsub1.asm: New file. 12245 12246 * mpn/powerpc32/aors_n.asm: New file, complete rewrite. 12247 * mpn/powerpc32/add_n.asm: Remove. 12248 * mpn/powerpc32/sub_n.asm: Remove. 12249 12250 2007-01-25 Torbjorn Granlund <tege@swox.com> 12251 12252 * mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups. 12253 12254 * mpn/x86_64/core2/lshift.asm: Rewrite. 12255 * mpn/x86_64/core2/rshift.asm: Rewrite. 12256 12257 * mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small 12258 speedup. 12259 * mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm. 12260 12261 * mpn/x86_64/pentium4/gmp-mparam.h: New file. 12262 12263 * mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract 12264 code. 12265 * mpn/x86_64/pentium4/add_n.asm: Remove. 12266 * mpn/x86_64/pentium4/sub_n.asm: Remove. 12267 12268 2007-01-20 Torbjorn Granlund <tege@swox.com> 12269 12270 * mpn/x86_64/lshift.asm: Add special case for cnt=1. 12271 12272 2007-01-19 Torbjorn Granlund <tege@swox.com> 12273 12274 * mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at 12275 3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5). 12276 * mpn/x86_64/addmul_1.asm: Remove. 12277 * mpn/x86_64/submul_1.asm: Remove. 12278 12279 2006-12-29 Torbjorn Granlund <tege@swox.com> 12280 12281 * randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in 12282 __gmp_randinit_mt_noseed. 12283 (__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions 12284 look similar. 12285 (__gmp_randclear_mt): Pass actually allocated size. 12286 12287 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c, 12288 mul_toom32.c, mul_toom42.c. 12289 12290 * configure.in: Recognize athlon64 and core2 as alternatives to x86_64. 12291 Provide special settings for core2. 12292 12293 * configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32, 12294 mul_toom42. 12295 12296 * mpn/generic/mul_toom22.c: New file. 12297 * mpn/generic/mul.c: Use mpn_mul_toom22. Trim cutoff points between 12298 the mpn_mul_toomN2 functions. Handle balanced operands at function 12299 entry. 12300 12301 2006-12-29 Marco Bodrato <bodrato@mail.dm.unipi.it> 12302 12303 * mpn/generic/mul_n.c: Rewrite interpolation code. 12304 12305 2006-12-28 Torbjorn Granlund <tege@swox.com> 12306 12307 * mpn/generic/mul_toom32.c: New file. 12308 * mpn/generic/mul_toom42.c: New file. 12309 * mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for 12310 unbalanced operands. 12311 12312 2006-12-17 Torbjorn Granlund <tege@swox.com> 12313 12314 * mpn/x86_64/aorrlsh_n.asm: New file. 12315 * mpn/x86_64/lshsub_n.asm: New file. 12316 12317 * mpn/x86_64/core2/aors_n.asm: New file. 12318 * mpn/x86_64/core2/lshift.asm: New file. 12319 * mpn/x86_64/core2/rshift.asm: New file. 12320 12321 * mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific 12322 code. 12323 12324 * mpn/x86/p6/lshsub_n.asm: New file. 12325 12326 2006-11-23 Torbjorn Granlund <tege@swox.com> 12327 12328 * tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp 12329 locally, s->xp might be insufficient. 12330 12331 2006-11-22 Torbjorn Granlund <tege@swox.com> 12332 12333 * randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result 12334 param. 12335 12336 2006-11-06 Torbjorn Granlund <tege@swox.com> 12337 12338 * tune/set_strp.c: New file. 12339 12340 2006-11-04 Torbjorn Granlund <tege@swox.com> 12341 12342 * extract-dbl.c: Rewrite to handle nails better, and for general 12343 optimization. 12344 12345 * mpz/bin_uiui.c: Simplify. 12346 12347 * longlong.h (umul_ppmm) [mmix]: New. 12348 12349 * tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h, 12350 tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements 12351 of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD. 12352 Add tuning and speed measurement of mpn_addsub_n. 12353 12354 2006-10-31 Torbjorn Granlund <tege@swox.com> 12355 12356 * gmpxx.h: Remove ternary stuff, it is hardly an optimization and it 12357 writes to destination before reading all source operands. 12358 12359 2006-10-25 Torbjorn Granlund <tege@swox.com> 12360 12361 * mpn/generic/set_str.c: Complete rewrite. 12362 * mpn/generic/get_str.c: Likewise. 12363 12364 * gmp-impl.h (struct powers, powers_t): New types. 12365 Restructure GET_STR_* and SET_STR_* thresholds. 12366 12367 2006-09-21 Torbjorn Granlund <tege@swox.com> 12368 12369 * mpn/generic/rootrem.c: Remove some redundant casts. 12370 12371 2006-07-12 Torbjorn Granlund <tege@swox.com> 12372 12373 * mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed. 12374 * mpn/alpha/ev6/nails/addmul_4.asm: Likewise. 12375 12376 * mpf/get_str.c: Avoid copying result when not needed. Misc cleanups. 12377 12378 * tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris. 12379 12380 2006-06-30 Torbjorn Granlund <tege@swox.com> 12381 12382 * configure.in (powerpc-*): Remove repeated path component. 12383 12384 2006-06-15 Torbjorn Granlund <tege@swox.com> 12385 12386 * configure.in: (ia64-*-linux*): Don't use -O3. 12387 12388 2006-06-14 Torbjorn Granlund <tege@swox.com> 12389 12390 * mpq/get_str.c: Fix upper base limit boundary in an ASSERT. 12391 12392 * tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back. 12393 12394 2006-05-31 Torbjorn Granlund <tege@swox.com> 12395 12396 * tests/mpz/t-set_d.c (check_data): Add more data points. 12397 12398 * mpz/set_d.c: Handle negative return values from __gmp_extract_double. 12399 12400 2006-05-17 Torbjorn Granlund <tege@swox.com> 12401 12402 * configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat 12403 build. 12404 12405 2006-05-16 Torbjorn Granlund <tege@swox.com> 12406 12407 * demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10. 12408 12409 * mpn/generic/addsub_n.c: Fix criteria form when to call _nc functions. 12410 12411 2006-05-12 Torbjorn Granlund <tege@swox.com> 12412 12413 * config.guess: Recognize more ppc processor types. 12414 12415 2006-05-11 Torbjorn Granlund <tege@swox.com> 12416 12417 * tune/speed.c (usage): Update URL for gnuplot and quickplot. 12418 12419 2006-05-10 Torbjorn Granlund <tege@swox.com> 12420 12421 * configure.in (powerpc-*-*): Pass -maltivec to assembler for 12422 appropriate CPUs. 12423 12424 2006-05-08 Torbjorn Granlund <tege@swox.com> 12425 12426 * mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute. 12427 12428 2006-05-03 Torbjorn Granlund <tege@swox.com> 12429 12430 * mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n. 12431 12432 2006-04-27 Torbjorn Granlund <tege@swox.com> 12433 12434 * mpz/divexact.c: Call mpz_tdiv_q for large operands. 12435 12436 * configure.in (powerpc-*-darwin): Remove -fast, it affects PIC. 12437 12438 2006-04-26 Torbjorn Granlund <tege@swox.com> 12439 12440 * config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1). 12441 * config.sub: Handle ultrasparct1. 12442 12443 2006-04-25 Torbjorn Granlund <tege@swox.com> 12444 12445 * mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and 12446 non-GNUC data. 12447 12448 2006-04-20 Torbjorn Granlund <tege@swox.com> 12449 12450 * tests/mpz/convert.c: Increase operands range. 12451 12452 2006-04-19 Torbjorn Granlund <tege@swox.com> 12453 12454 * configure.in: Support powerpc eABI. 12455 * mpn/powerpc32/eabi.m4: New file. 12456 12457 * configure.in: Support powerpc *bsd. 12458 * mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4. 12459 * mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4. 12460 12461 * mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY. 12462 12463 2006-04-18 Torbjorn Granlund <tege@swox.com> 12464 12465 * configure.in (gmp_mpn_functions_optional): Add lshiftc. 12466 (HAVE_NATIVE): Add lshiftc. 12467 12468 * mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM. 12469 * mpn/powerpc64/mode64/mode1o.asm: Likewise. 12470 * mpn/powerpc64/mode64/dive_1.asm: Likewise. 12471 12472 * mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty. 12473 * mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise. 12474 * mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise. 12475 12476 * mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4. 12477 * mpn/powerpc32/mode1o.asm: Use EXTERN. 12478 * mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition. 12479 * mpn/powerpc32/darwin.m4 (EXTERN): Likewise. 12480 12481 2006-04-13 Torbjorn Granlund <tege@swox.com> 12482 12483 * mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2 12484 is defined. 12485 (mpn_lshiftc): New name for mpn_lshift_com (for consistency with some 12486 stuff already in 4.1.4. 12487 (mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid 12488 divisions. 12489 12490 * tests/devel/try.c (choice_array): Add mpn_addsub_n[c]. 12491 12492 2006-04-11 Torbjorn Granlund <tege@swox.com> 12493 12494 * aclocal.m4: Regenerate with patched libtool. 12495 12496 * mpn/asm-defs.m4 (ASM_END): Provide (empty) default. 12497 12498 2006-04-08 Torbjorn Granlund <tege@swox.com> 12499 12500 * configure.in (gmp_mpn_functions_optional): Add addsub. 12501 12502 * gmpxx.h: Remove missed MPFR references. 12503 12504 * gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic. 12505 12506 * gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument; 12507 define TMP_SALLOC and TMP_BALLOC. 12508 12509 * mpn/minithres/gmp-mparam.h: New file. 12510 12511 * tests/mpz/t-io_raw.c: Fix printf type/arg mismatches. 12512 * tests/mpz/t-export.c: Likewise. 12513 * tests/mpz/io.c: Likewise. 12514 * tests/t-constants.c: Likewise. 12515 12516 * mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to 12517 placate icc. 12518 * mpn/ia64/hamdist.asm: Likewise. 12519 * mpn/ia64/lorrshift.asm: Likewise. 12520 * mpn/ia64/dive_1.asm: Likewise. 12521 12522 2006-04-05 Torbjorn Granlund <tege@swox.com> 12523 12524 * tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker. 12525 (__gmp_tmp_free): Likewise. 12526 12527 * mpn/generic/mul_fft.c: Optimize many scalar divisions and mod 12528 operations into masks and shifts. 12529 (mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY. 12530 12531 2006-03-26 Torbjorn Granlund <tege@swox.com> 12532 12533 * Version 4.2 released. 12534 12535 * mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM. 12536 * mpn/powerpc64/darwin.m4: Likewise. 12537 * mpn/powerpc64/linux64.m4: Likewise. 12538 * mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM. 12539 12540 2006-03-23 Torbjorn Granlund <tege@swox.com> 12541 12542 * gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::. 12543 12544 * gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now. 12545 (struct __gmp_ternary_addmul2): Likewise. 12546 (struct __gmp_ternary_submul2): Likewise. 12547 12548 * gmpxx.h: #include <cstring>. 12549 (struct __gmp_alloc_cstring): Prefix strlen with std::. 12550 12551 * mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN. 12552 * mpn/x86/pentium/copyi.asm: Likewise. 12553 * mpn/x86/pentium/copyd.asm: Likewise. 12554 12555 2006-03-22 Torbjorn Granlund <tege@swox.com> 12556 12557 * gmp-h.in: Add a "using std::FILE" for C++. 12558 (_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H. 12559 12560 * gmpxx.h: Remove mpfr code. 12561 * tests/cxx: Likewise. 12562 12563 * gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with 12564 GNU/Linux public include file. 12565 12566 * configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype. 12567 Grab powerpc32/darwin.m4 for ABI=mode32. 12568 12569 * configure.in: Use host_cpu whenever just the cpu type is needed. 12570 12571 2006-03-08 Torbjorn Granlund <tege@swox.com> 12572 12573 * mpz/get_si.c: Fix a typo. 12574 12575 * tests/mpq/t-get_d.c (check_random): Improve random generation for 12576 nails. 12577 12578 2006-02-28 Torbjorn Granlund <tege@swox.com> 12579 12580 * tests/mpq/t-get_d.c (check_random): New function. 12581 (main): Call check_random. 12582 12583 * mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not 12584 BITS_PER_MP_LIMB. Make it work for LIMBS_PER_DOUBLE == 4. 12585 Use MPZ_REALLOC. 12586 12587 * mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4. 12588 12589 * extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3. 12590 12591 2006-02-27 Torbjorn Granlund <tege@swox.com> 12592 12593 * mpz/cmp_d.c: Declare `i'. 12594 * mpz/cmpabs_d.c: Likewise. 12595 12596 2006-02-23 Torbjorn Granlund <tege@swox.com> 12597 12598 * mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits. 12599 * mpn/powerpc32/vmx/copyi.asm: Likewise. 12600 12601 2006-02-22 Torbjorn Granlund <tege@swox.com> 12602 12603 * mpn/powerpc32/vmx/logops_n.asm: New file. 12604 12605 * mpn/powerpc32/diveby3.asm: Rewrite. 12606 12607 2006-02-21 Torbjorn Granlund <tege@swox.com> 12608 12609 * mpn/powerpc32/vmx/copyi.asm: New file. 12610 * mpn/powerpc32/vmx/copyd.asm: New file. 12611 12612 2006-02-17 Torbjorn Granlund <tege@swox.com> 12613 12614 * mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from 12615 deleted mpn_sub_n. 12616 12617 2006-02-16 Torbjorn Granlund <tege@swox.com> 12618 12619 * mpn/alpha/ev6/addmul_1.asm: Correct slotting comments. 12620 12621 2006-02-15 Torbjorn Granlund <tege@swox.com> 12622 12623 * tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c. 12624 12625 * tests/devel/addmul_N.c: New file. 12626 * tests/devel/mul_N.c: New file. 12627 12628 * mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte 12629 boundary. 12630 12631 * mpn/alpha/ev6/nails/aors_n.asm: New file. 12632 * mpn/alpha/ev6/nails/add_n.asm: Remove. 12633 * mpn/alpha/ev6/nails/sub_n.asm: Remove. 12634 12635 * mpn/alpha/ev6/nails/addmul_1.asm: Rewrite. 12636 * mpn/alpha/ev6/nails/submul_1.asm: Likewise. 12637 * mpn/alpha/ev6/nails/mul_1.asm: Likewise. 12638 12639 * mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels. 12640 * mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels. 12641 * mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels. 12642 12643 2006-02-13 Torbjorn Granlund <tege@swox.com> 12644 12645 * mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save 12646 1 c/l. 12647 12648 * mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC. 12649 12650 * mpn/x86_64/rsh1add_n.asm: Replace high register with rbx. 12651 * mpn/x86_64/rsh1sub_n.asm: Likewise. 12652 12653 2006-02-10 Torbjorn Granlund <tege@swox.com> 12654 12655 * mpn/powerpc64/sqr_diagonal.asm: Software pipeline. 12656 12657 * mpn/powerpc64/vmx/popcount.asm: Add prefetching. 12658 12659 2006-02-07 Torbjorn Granlund <tege@swox.com> 12660 12661 * mpn/powerpc64/mode64/diveby3.asm: Rewrite. 12662 12663 2006-02-04 Torbjorn Granlund <tege@swox.com> 12664 12665 * mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code. 12666 Move compare for huge n so that it is always executed. 12667 12668 2006-02-03 Torbjorn Granlund <tege@swox.com> 12669 12670 * mpn/powerpc32/linux.m4 (LEA): Add support for PIC. 12671 12672 * configure.in (powerpc): New optional, gcc_cflags_subtype. 12673 12674 * mpn/x86_64/pentium4/add_n.asm: New file. 12675 * mpn/x86_64/pentium4/sub_n.asm: New file. 12676 * mpn/x86_64/pentium4/lshift.asm: New file. 12677 12678 * mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to 12679 16-multiple. 12680 * mpn/powerpc64/aix.m4: Likewise. 12681 * mpn/powerpc64/darwin.m4: Likewise. 12682 12683 * mpn/powerpc64/copyi.asm: Align loop to 16-multiple. 12684 * mpn/powerpc64/copyd.asm: Likewise 12685 12686 * configure.in (powerpc): Add vmx to relevant paths. 12687 12688 * mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for 12689 alignment. 12690 * mpn/powerpc64/aix.m4: Likewise. 12691 * mpn/powerpc64/darwin.m4: Likewise. 12692 12693 * mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros, 12694 inherited from powerpc64 versions. 12695 * mpn/powerpc32/aix.m4: Likewise. 12696 * mpn/powerpc32/darwin.m4: Likewise. 12697 12698 * mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64. 12699 * mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file. 12700 12701 2006-01-22 Torbjorn Granlund <tege@swox.com> 12702 12703 * configure.in: Generalize OS-dependent patterns for powerpcs. 12704 12705 2006-01-20 Torbjorn Granlund <tege@swox.com> 12706 12707 * mpn/x86_64/popham.asm: Optimize. 12708 12709 * config.guess: Recognize power4 and up under linux-gnu. 12710 * config.sub: Generalize power recognition code. 12711 * acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors. 12712 * configure.in: Recognize powerpc processors masquerading as power 12713 processors. 12714 12715 2006-01-19 Torbjorn Granlund <tege@swox.com> 12716 12717 * mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller 12718 code. 12719 * mpn/x86_64/com_n.asm: Likewise. 12720 12721 2006-01-18 Torbjorn Granlund <tege@swox.com> 12722 12723 * mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing. 12724 * mpn/x86_64/sublsh1_n.asm: Likewise. 12725 12726 2006-01-17 Torbjorn Granlund <tege@swox.com> 12727 12728 * mpn/generic/diveby3.c: Use GMP standard parameter names. Nailify 12729 alternative code. Use restrict for params. 12730 12731 * configure.in: Recognize andn_n as not needing nailification. 12732 12733 * tests/mpq/t-equal.c (check_various): Disable a test that gives common 12734 factors for GMP_NUMB_BITS == 62. 12735 12736 2006-01-16 Torbjorn Granlund <tege@swox.com> 12737 12738 * mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation, 12739 was inaccurate for nails. 12740 12741 2006-01-15 Torbjorn Granlund <tege@swox.com> 12742 12743 * mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing. 12744 12745 2006-01-08 Torbjorn Granlund <tege@swox.com> 12746 12747 * mpn/alpha/ev6/sqr_diagonal.asm: New file. 12748 12749 2006-01-06 Torbjorn Granlund <tege@swox.com> 12750 12751 * mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l. 12752 12753 * mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define. 12754 (mpn_mullow_n): Use it. 12755 12756 * mpn/powerpc64/mode64/dive_1.asm: Use EXTERN. 12757 * mpn/powerpc64/mode64/mode1o.asm: Likewise. 12758 12759 * mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol. 12760 (LDSYM): Remove [RW] attribute. 12761 * mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition. 12762 * mpn/powerpc64/darwin.m4 (EXTERN): Likewise. 12763 12764 2006-01-05 Torbjorn Granlund <tege@swox.com> 12765 12766 * mpn/powerpc64/mode64/mode1o.asm: New file. 12767 12768 * mpn/powerpc64/mode64/dive_1.asm: Use L() for labels. Invoke ASM_END. 12769 12770 * mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END. 12771 12772 * mpn/powerpc64/linux64.m4: Move toc entry generation from direct at 12773 DEF_OBJECT to delayed via LDSYM, define ASM_END to output it. 12774 * mpn/powerpc64/aix.m4: Likewise. 12775 * mpn/powerpc64/darwin.m4: Define a dummy ASM_END. 12776 12777 * mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings. 12778 * mpn/powerpc64/mode64/mul_1.asm: Likewise. 12779 12780 * mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5. 12781 12782 2006-01-04 Torbjorn Granlund <tege@swox.com> 12783 12784 * mpn/powerpc64/mode64/dive_1.asm: New file. 12785 12786 * mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START. 12787 12788 * mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo. 12789 12790 * mpn/x86_64/diveby3.asm: Rewrite. 12791 12792 2006-01-03 Torbjorn Granlund <tege@swox.com> 12793 12794 * configure.in: Update bugs reporting address. 12795 12796 * mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing. 12797 Misc cleanup. 12798 12799 2006-01-02 Torbjorn Granlund <tege@swox.com> 12800 12801 * mpn/powerpc64/linux64.m4 (CALL): New macro. 12802 * mpn/powerpc64/aix.m4: Likewise. 12803 * mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN". 12804 12805 2005-12-28 Torbjorn Granlund <tege@swox.com> 12806 12807 * mpn/powerpc64/mode64/mod_34lsub1.asm: New file. 12808 12809 2005-12-26 Torbjorn Granlund <tege@swox.com> 12810 12811 * mpn/x86_64/mod_34lsub1.asm: New file. 12812 12813 2005-12-20 Torbjorn Granlund <tege@swox.com> 12814 12815 * mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12. 12816 Use addq instead of leaq for pointer updates; schedule them. (These 12817 changes shaves one cycle of overhead and 0.25 c/l.) 12818 12819 2005-12-18 Torbjorn Granlund <tege@swox.com> 12820 12821 * mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha. 12822 * mpf/set_q.c: Likewise. 12823 12824 2005-12-16 Torbjorn Granlund <tege@swox.com> 12825 12826 * mpn/generic/tdiv_qr.c: Remove statement with no effect. 12827 Rename dead variable to `dummy'. 12828 12829 2005-12-15 Torbjorn Granlund <tege@swox.com> 12830 12831 * demos/pexpr.c (setup_error_handler): Add a missing ";". 12832 12833 2005-11-27 Torbjorn Granlund <tege@swox.com> 12834 12835 * mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking 12836 for unbalanced operands. 12837 12838 * mpn/generic/mul_fft.c: Remove many scalar divisions. 12839 (mpn_mul_fft_lcm): Simplify. 12840 (mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced 12841 operands. 12842 12843 2005-11-22 Torbjorn Granlund <tege@swox.com> 12844 12845 * configure.in: Properly recognize all 32-bit Solaris releases. 12846 12847 2005-11-10 Torbjorn Granlund <tege@swox.com> 12848 12849 * mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF, 12850 mpn_fft_add_modF and mpn_fft_normalize. 12851 12852 2005-11-02 Torbjorn Granlund <tege@swox.com> 12853 12854 * tests/mpz/reuse.c: Increase operand size, decrease # of reps. 12855 12856 * mpz/rootrem.c: Adapt to new mpn_rootrem. 12857 * mpz/root.c: Likewise. 12858 12859 * tests/mpz/reuse.c: Test mpz_rootrem. 12860 12861 With Paul Zimmermann: 12862 * mpn/generic/rootrem.c: Complete rewrite. 12863 12864 2005-10-31 Torbjorn Granlund <tege@swox.com> 12865 12866 * mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial 12867 dividing. 12868 12869 * mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead 12870 of mpz_tdiv_ui. 12871 12872 * mpz/divegcd.c: Correct probability number for GCD == 1. 12873 12874 * mpn/x86_64/mul_basecase.asm: Remove an obsolete comment. 12875 12876 * mpn/x86: Add cycle counts for array of x86 processors. 12877 12878 * mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp. 12879 12880 * mpn/powerpc32: Add POWER5 timings. 12881 12882 * mpn/powerpc32/README: Describe global reference variations. 12883 12884 * mpn/ia64/divrem_2.asm: Add some comments. 12885 12886 * mpn/ia64/divrem_1.asm: Reformat. 12887 12888 * mpn/ia64/addmul_2.asm: Correct a comment on slotting. 12889 * mpn/ia64/logops_n.asm: Likewise. 12890 12891 * mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl. 12892 12893 * mpn/generic/dive_1.c: Whitespace cleanup. 12894 12895 * mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting. 12896 * mpn/alpha/ev6/nails/addmul_2.asm: Likewise. 12897 * mpn/alpha/ev6/nails/addmul_4.asm: Likewise. 12898 12899 * mpf/out_str.c: List some allocation improvement ideas. 12900 12901 * doc/gmp.texi: Update many URLs and email addresses. 12902 12903 * gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED. 12904 12905 2005-10-26 Torbjorn Granlund <tege@swox.com> 12906 12907 * tune/tuneup.c (tune_mullow): Update param.max_size for each threshold 12908 measurement. 12909 12910 * configure.in (POWERPC64_PATTERN/*-*-darwin*): Set 12911 SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64. 12912 (POWERPC64_PATTERN/*-*-linux*): Likewise. 12913 12914 2005-10-03 Torbjorn Granlund <tege@swox.com> 12915 12916 * demos/factorize.c (factor_using_division_2kp): Honor verbose flag. 12917 (factor_using_pollard_rho): Divide out new factor before it's 12918 clobbered. Don't stop factoring after a composite factor was found. 12919 12920 2005-09-17 Torbjorn Granlund <tege@swox.com> 12921 12922 * demos/pexpr.c (fns): Add factorial keywords. 12923 12924 2005-08-16 Torbjorn Granlund <tege@swox.com> 12925 12926 * tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64". 12927 * mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64". 12928 12929 2005-08-15 Torbjorn Granlund <tege@swox.com> 12930 12931 * configure.in: Change "amd64" => "x86_64". 12932 12933 2005-06-13 Torbjorn Granlund <tege@swox.com> 12934 12935 * mpn/generic/pre_mod_1.c: Canonicalize variable names. 12936 12937 * mpn/generic/divrem.c: Rate qxn test as UNLIKELY. 12938 12939 * mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK. 12940 12941 * tune/tuneup.c (tune_mullow): Fix all max_size fields. 12942 12943 * gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define. 12944 * tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT. 12945 (sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT. 12946 12947 * mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT. 12948 12949 * gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n): 12950 Handle nails. 12951 12952 2005-06-13 Niels Möller <nisse@lysator.liu.se> 12953 12954 * mpn/generic/gcdext.c (gcdext_schoenhage): Check for the 12955 (unlikely) case that one of the hgcd/euclid steps results in two 12956 remainders of one limb each. Then use gcdext_1. 12957 12958 2005-06-12 Torbjorn Granlund <tege@swox.com> 12959 12960 * mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last. 12961 12962 2005-06-11 Torbjorn Granlund <tege@swox.com> 12963 12964 * mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later. 12965 Add mpn_add_nc entry. 12966 12967 * mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads. 12968 12969 2005-06-09 Torbjorn Granlund <tege@swox.com> 12970 12971 * mpn/ia64/dive_1.asm: Fix issues with HP-UX. 12972 12973 2005-06-08 Torbjorn Granlund <tege@swox.com> 12974 12975 * mpn/ia64/diveby3.asm: Update TODO list. 12976 12977 * mpn/ia64/mode1o.asm: Fix comment typos. 12978 12979 * mpn/ia64/dive_1.asm: New file. 12980 12981 2005-06-07 Torbjorn Granlund <tege@swox.com> 12982 12983 * mpn/ia64/mode1o.asm: Add prefetching. 12984 12985 * mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result. 12986 12987 2005-06-06 Torbjorn Granlund <tege@swox.com> 12988 12989 * mpn/ia64/hamdist.asm: Complete rewrite. 12990 * mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in. 12991 12992 * mpn/ia64/aors_n.asm: Rewrite feed-in code. 12993 * mpn/ia64/rsh1aors_n.asm: Likewise. 12994 * mpn/ia64/aorslsh1_n.asm: Likewise. 12995 * mpn/ia64/lorrshift.asm: Likewise. 12996 12997 2005-06-04 Torbjorn Granlund <tege@swox.com> 12998 12999 * tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless 13000 USE_PREINV_MOD_1. 13001 (choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD 13002 is zero. 13003 13004 2005-06-03 Torbjorn Granlund <tege@swox.com> 13005 13006 * mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$". 13007 * mpn/alpha/ev6/mul_1.asm: Likewise. 13008 13009 2005-06-02 Torbjorn Granlund <tege@swox.com> 13010 13011 * tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround 13012 to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI. 13013 13014 2005-06-01 Torbjorn Granlund <tege@swox.com> 13015 13016 * tests/devel/try.c (main): Fix a typo. 13017 13018 2005-05-31 Torbjorn Granlund <tege@swox.com> 13019 13020 * mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch. 13021 13022 2005-05-30 Torbjorn Granlund <tege@swox.com> 13023 13024 * tests/misc.c (tests_rand_start): Mask random seed to 32 bits. 13025 13026 2005-05-29 Torbjorn Granlund <tege@swox.com> 13027 13028 * mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM. 13029 * mpn/powerpc64/mode32/addmul_1.asm: Likewise. 13030 * mpn/powerpc64/mode32/submul_1.asm: Likewise. 13031 13032 * mpn/powerpc32/mode1o.asm: Rewrite to actually work. 13033 13034 * mpn/powerpc32/aix.m4 (LEA): New macro. 13035 (ASM_END): New macro. 13036 13037 * mpn/powerpc32/linux.m4: New file. 13038 * mpn/powerpc32/darwin.m4: New file. 13039 * configure.in: Use linux.m4 and darwin.m4. 13040 (powerpc64-linux-gnu): Add support for mode32. 13041 13042 2005-05-25 Torbjorn Granlund <tege@swox.com> 13043 13044 * mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw. 13045 13046 * tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo. 13047 13048 * demos/isprime.c: #include stdlib.h. 13049 * tests/rand/t-urbui.c: Likewise. 13050 * tests/rand/t-urmui.c: Likewise. 13051 13052 * tests/mpz/t-popcount.c (check_random): Remove spurious printf arg. 13053 13054 * mpn/ia64/lorrshift.asm: Cleanup code layout. 13055 * mpn/ia64/popcount.asm: Likewise. 13056 13057 2005-05-24 Torbjorn Granlund <tege@swox.com> 13058 13059 * tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field. 13060 (compare): Handle SIZE_GET_STR as SIZE_RETVAL. 13061 13062 * tests/refmpn.c (refmpn_get_str): Rewrite to make it work. 13063 13064 2005-05-23 Torbjorn Granlund <tege@swox.com> 13065 13066 * mpn/amd64/add_n.asm: Add mpn_add_nc entry point. 13067 * mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point. 13068 13069 * longlong.h (many places): Remove lvalue casts. 13070 13071 * gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow 13072 for > 4G digits. 13073 13074 * mpn/alpha/ev6/add_n.asm: Prefetch using ldl. 13075 * mpn/alpha/ev6/sub_n.asm: Likewise. 13076 13077 * mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl. 13078 13079 * mpn/ia64/aors_n.asm: Prefetch using lfetch. 13080 * mpn/ia64/lorrshift.asm: Likewise. 13081 * mpn/ia64/popcount.asm: Likewise. 13082 * mpn/ia64/diveby3.asm: Likewise. 13083 13084 2005-05-22 Torbjorn Granlund <tege@swox.com> 13085 13086 * mpn/alpha/ev67/popcount.asm: Prefetch. 13087 * mpn/alpha/ev67/hamdist.asm: Prefetch. 13088 13089 * longlong.h (add_ssaaaa) [x86]: Remove lvalue casts. 13090 (sub_ddmmss) [x86]: Likewise. 13091 13092 * tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD. 13093 (param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD. 13094 (param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB. 13095 13096 2005-05-21 Torbjorn Granlund <tege@swox.com> 13097 13098 * tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor 13099 field according to UDIV_NEEDS_NORMALIZATION. 13100 13101 * mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments. 13102 13103 2005-05-20 Torbjorn Granlund <tege@swox.com> 13104 13105 * mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in 13106 proper register. 13107 13108 * mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version): 13109 Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code. 13110 13111 2005-05-19 Torbjorn Granlund <tege@swox.com> 13112 13113 * mpn/alpha/diveby3.asm: Make it actually work. 13114 13115 * gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define. 13116 * mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest 13117 operands; use TMP_S* allocation for medium operands. 13118 13119 * gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test. 13120 13121 2005-05-18 Torbjorn Granlund <tege@swox.com> 13122 13123 * mpn/generic/mul_n.c: Make squaring and multiplication code more 13124 similar. Use TMP_S* functions. 13125 13126 * gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument. 13127 (TMP_SALLOC): New macro for "small" allocations. 13128 (TMP_BALLOC): New macro for "big" allocations. 13129 (TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use 13130 just TMP_SALLOC. 13131 (WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant 13132 functions, depending on size. 13133 13134 * *.c: Remove TMP_XXXX marker arguments. 13135 13136 * acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case. 13137 13138 2005-05-16 Torbjorn Granlund <tege@swox.com> 13139 13140 * mpn/ia64/gmp-mparam.h: Further extend FFT tables. 13141 13142 2005-05-15 Torbjorn Granlund <tege@swox.com> 13143 13144 * gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa. 13145 (udiv_qrnnd_preinv2gen): Likewise. 13146 13147 2005-05-14 Torbjorn Granlund <tege@swox.com> 13148 13149 * longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate 13150 operands. 13151 * (sub_ddmmss) [x86_64]: Likewise. 13152 13153 2005-05-02 Torbjorn Granlund <tege@swox.com> 13154 13155 * acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle 13156 version numbers like B.11.X.32509-32512.GP. 13157 13158 * mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE. 13159 13160 * mpn/powerpc64/mode64/aors_n.asm: Add a MULFUNC_PROLOGUE. 13161 13162 * mpf/inp_str.c: Use plain int for mpf_set_str return value (works 13163 around gcc 4 bug). 13164 13165 * acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly 13166 syntax. 13167 (long long reliability test 1): New GMP_PROG_CC_WORKS_PART test. 13168 (long long reliability test 2): New GMP_PROG_CC_WORKS_PART test. 13169 13170 * configure.in: Add mode64 support for darwin. Use darwin.m4. 13171 Add cflags_opt flags for mode32 darwin. 13172 13173 * mpn/powerpc64: Use L() for all asm files. 13174 13175 * mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes". 13176 13177 * mpn/powerpc64/darwin.m4: New file. 13178 13179 * mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM. 13180 Rework DEF_OBJECT to need just one argument. 13181 * mpn/powerpc64/aix.m4: Likewise. 13182 13183 * mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with 13184 LDSYM. Optimize somewhat. Remove 2nd DEF_OBJECT operand. 13185 13186 2005-05-01 Torbjorn Granlund <tege@swox.com> 13187 13188 * mpn/generic/popham.c: Compute final summation differently for 64-bit. 13189 13190 * tests/mpz/t-popcount.c (check_random): New function. 13191 (main): Call it. 13192 13193 2005-04-28 Torbjorn Granlund <tege@swox.com> 13194 13195 * mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop. 13196 * mpn/amd64/sub_n.asm: Likewise. 13197 13198 2005-04-09 Torbjorn Granlund <tege@swox.com> 13199 13200 * mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of 13201 mp_size_t argument. 13202 * mpn/powerpc64/copyd.asm: Likewise. 13203 * mpn/powerpc64/sqr_diagonal.asm: Likewise. 13204 * mpn/powerpc64/lshift.asm: Likewise. 13205 * mpn/powerpc64/rshift.asm: Likewise. 13206 * mpn/powerpc64/logops_n.asm: Likewise. 13207 * mpn/powerpc64/com_n.asm: Likewise. 13208 13209 2005-04-08 Torbjorn Granlund <tege@swox.com> 13210 13211 * mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp. 13212 13213 2005-04-07 Torbjorn Granlund <tege@swox.com> 13214 13215 * mpn/powerpc32/add_n.asm: Add nc entry point. 13216 * mpn/powerpc32/sub_n.asm: Likewise. 13217 13218 * mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers. 13219 13220 * mpn/alpha/add_n.asm: Add correct cycle/limb numbers. 13221 * mpn/alpha/sub_n.asm: Likewise. 13222 * mpn/alpha/ev5/add_n.asm: Likewise. 13223 * mpn/alpha/ev5/sub_n.asm: Likewise. 13224 13225 2005-03-31 Torbjorn Granlund <tege@swox.com> 13226 13227 * mpn/x86/k7/gmp-mparam.h: Fix typo in last change. 13228 13229 2005-03-19 Torbjorn Granlund <tege@swox.com> 13230 13231 * mpn/amd64/gmp-mparam.h: Update. 13232 13233 * mpn/alpha/gmp-mparam.h: Update. 13234 * mpn/alpha/ev5/gmp-mparam.h: Update. 13235 * mpn/alpha/ev6/gmp-mparam.h: Update. 13236 13237 * mpn/ia64/gmp-mparam.h: Update. 13238 13239 * mpn/x86/p6/mmx/gmp-mparam.h: Update. 13240 * mpn/x86/pentium4/sse2/gmp-mparam.h: Update. 13241 * mpn/x86/k7/gmp-mparam.h: Update. 13242 13243 * tests/mpz/t-gcd.c (main): Honor command line reps argument. 13244 13245 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code 13246 for generating test operands. 13247 13248 2005-03-17 Niels Möller <nisse@lysator.liu.se> 13249 13250 * mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much 13251 to adjust the top quotient. 13252 (hgcd_adjust): The quotient can be off by either 1 or 2. 13253 13254 2005-03-16 Torbjorn Granlund <tege@swox.com> 13255 13256 * tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of 13257 gcd,gcdext thresholds. 13258 13259 2005-03-15 Niels Möller <nisse@lysator.liu.se> 13260 13261 * mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer, 13262 reuse all temporary limb storage, including the storage used for the 13263 qstack. 13264 13265 2005-03-09 Torbjorn Granlund <tege@swox.com> 13266 13267 * mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE. 13268 13269 2005-03-05 Torbjorn Granlund <tege@swox.com> 13270 13271 * mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE. 13272 * mpn/ia64/gmp-mparam.h: Likewise. 13273 13274 2005-02-17 Torbjorn Granlund <tege@swox.com> 13275 13276 * mpn/ia64/divrem_1.asm: Add preinv entry point. 13277 13278 2005-01-13 Torbjorn Granlund <tege@swox.com> 13279 13280 * gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t. 13281 (MPN_SIZEINBASE_16): Likewise. 13282 13283 2004-12-17 Torbjorn Granlund <tege@swox.com> 13284 13285 * tune/speed.c (run_gnuplot): Use lines, not linespoints. 13286 Output a reset gnuplot command initially. 13287 13288 2004-12-04 Torbjorn Granlund <tege@swox.com> 13289 13290 * mpn/generic/random2.c (gmp_rrandomb): Rework again. 13291 * mpz/rrandomb.c (gmp_rrandomb): Likewise. 13292 13293 * mpn/amd64/redc_1.asm: Call via PLT when PIC. 13294 13295 2004-11-29 Torbjorn Granlund <tege@swox.com> 13296 13297 * mpn/amd64/divrem_1.asm: Add preinv entry point. 13298 * mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1. 13299 13300 2004-11-24 Torbjorn Granlund <tege@swox.com> 13301 13302 * mpn/alpha/diveby3.asm: Use correct prefetch instruction. 13303 13304 2004-11-19 Torbjorn Granlund <tege@swox.com> 13305 13306 * mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE. 13307 Add r31 dummy operand to `br' instruction. 13308 13309 2004-11-17 Torbjorn Granlund <tege@swox.com> 13310 13311 * mpn/powerpc64/mode64/addmul_1.asm: Rewrite. 13312 * mpn/powerpc64/mode64/mul_1.asm: Rewrite. 13313 13314 * configure.in: Invoke AC_C_RESTRICT. 13315 13316 2004-11-16 Torbjorn Granlund <tege@swox.com> 13317 13318 * mpn/alpha/diveby3.asm: New file. 13319 13320 2004-11-13 Torbjorn Granlund <tege@swox.com> 13321 13322 * mpn/amd64/popham.asm: New file. 13323 13324 2004-11-12 Torbjorn Granlund <tege@swox.com> 13325 13326 * mpn/amd64/add_n.asm: Correct cycle count. 13327 * mpn/amd64/sub_n.asm: Likewise. 13328 13329 * mpn/amd64/dive_1.asm: Speed divisors with many factors of 2. 13330 13331 2004-11-11 Torbjorn Granlund <tege@swox.com> 13332 13333 * mpn/amd64/dive_1.asm: New file. 13334 13335 2004-11-10 Torbjorn Granlund <tege@swox.com> 13336 13337 * mpn/generic/popham.c: Add comment. 13338 13339 2004-11-09 Torbjorn Granlund <tege@swox.com> 13340 13341 * mpn/amd64/com_n.asm: New file. 13342 13343 * mpn/amd64/logops_n.asm: New file. 13344 13345 2004-11-08 Torbjorn Granlund <tege@swox.com> 13346 13347 * mpn/powerpc64/com_n.asm: New file. 13348 13349 2004-11-05 Torbjorn Granlund <tege@swox.com> 13350 13351 * mpn/amd64/diveby3.asm: New file. 13352 13353 * config.guess: Strip any PPC string in /proc/cpuinfo. 13354 Recognize 970 in that code. 13355 13356 2004-11-01 Torbjorn Granlund <tege@swox.com> 13357 13358 * mpn/amd64/mul_basecase.asm: New file. 13359 13360 * mpn/amd64/redc_1.asm: New file. 13361 13362 2004-10-25 Torbjorn Granlund <tege@swox.com> 13363 13364 * mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts. 13365 13366 * mpn/powerpc64/README: Update POWER5/PPC970 pipeline information. 13367 13368 * mpn/generic/mul_basecase.c (MAX_LEFT): Add comment. 13369 13370 * doc/gmp.texi: Consistently use "x86" denotation. 13371 (Assembler SIMD Instructions): Mention SSE2 usage. 13372 13373 * demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call. 13374 13375 2004-10-18 Torbjorn Granlund <tege@swox.com> 13376 13377 * mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry 13378 inversion trick. 13379 13380 2004-10-16 Torbjorn Granlund <tege@swox.com> 13381 13382 * configure.in: Support icc under x86. 13383 (ia64-*-linux*): Pass -no-gcc to icc. 13384 13385 2004-10-15 Torbjorn Granlund <tege@swox.com> 13386 13387 * longlong.h (ia64 umul_ppmm): Add version for icc. 13388 13389 * configure.in: Support icc under ia64-*-linux*. 13390 13391 * acinclude.m4: New "compiler works" test for icc 8.1 bug. 13392 (GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC. 13393 13394 2004-10-14 Torbjorn Granlund <tege@swox.com> 13395 13396 * mpn/generic/gcdext.c: Add a few missing TMP_MARK. 13397 13398 2004-10-14 Torbjorn Granlund <tege@swox.com> 13399 13400 * acinclude.m4 (GMP_ASM_W32): Try also "data4". 13401 13402 * mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel 13403 assembler. 13404 * mpn/ia64/aors_n.asm: Likewise. 13405 13406 * mpn/ia64/divrem_2.asm: Add ".prologue". 13407 13408 * mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the 13409 Intel assembler. 13410 13411 * longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm. 13412 * gmp-impl.h: Likewise. 13413 13414 2004-10-12 Torbjorn Granlund <tege@swox.com> 13415 13416 * mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for 13417 n=2. 13418 * mpn/ia64/addmul_2.asm: Likewise. 13419 13420 * tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2. 13421 13422 * tune/speed.c (routine): Make R parameter optional for mpn_mul_2. 13423 13424 2004-10-11 Torbjorn Granlund <tege@swox.com> 13425 13426 * mpn/sparc64/addmul_1.asm: Update a comment. 13427 13428 * tests/devel/aors_n.c: #include tests.h. 13429 * tests/devel/anymul_1.c: Likewise. 13430 * tests/devel/shift.c: Likewise. 13431 * tests/devel/copy.c: Likewise. 13432 13433 * tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n, 13434 mpn_rsh1add_n, and mpn_rsh1sub_n. 13435 13436 * mpn/ia64/submul_1.asm: Add TODO item. 13437 13438 * mpn/ia64/aors_n.asm: Rewrite function entry code (again). 13439 * mpn/ia64/aorslsh1_n.asm: Likewise. 13440 * mpn/ia64/logops_n.asm: Likewise. 13441 13442 * mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code. 13443 * mpn/ia64/lorrshift.asm: Likewise. Remove several spurious loads. 13444 13445 * tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's 13446 file removals and additions. 13447 13448 2004-10-10 Torbjorn Granlund <tege@swox.com> 13449 13450 * mpn/ia64/copyi.asm: Tune function entry code. 13451 * mpn/ia64/copyd.asm: Likewise. 13452 13453 * mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed 13454 and size. 13455 * mpn/ia64/aors_n.asm: Likewise. 13456 13457 * mpn/powerpc64/logops_n.asm: Correct cycles counts. 13458 * mpn/powerpc64/mode64/aors_n.asm: Likewise. 13459 13460 * tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR. 13461 13462 * tests/devel/logops_n.c: New file, handle all logical operations. 13463 13464 * tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and 13465 mpn_submul_1 13466 * tests/devel/mul_1.c: Remove. 13467 * tests/devel/addmul_1.c: Remove. 13468 * tests/devel/submul_1.c: Remove. 13469 13470 * tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift. 13471 * tests/devel/lshift.c: Remove. 13472 * tests/devel/rshift.c: Remove. 13473 13474 * tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n. 13475 * tests/devel/add_n.c: Remove. 13476 * tests/devel/sub_n.c: Remove. 13477 13478 2004-10-09 Torbjorn Granlund <tege@swox.com> 13479 13480 * mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF. 13481 * mpn/powerpc64/aix.m4: Likewise. 13482 * mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and 13483 TOCREF for approx_tab. 13484 13485 * mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point. 13486 13487 2004-10-08 Torbjorn Granlund <tege@swox.com> 13488 13489 * mpn/powerpc64/copyi.asm: New file. 13490 * mpn/powerpc64/copyd.asm: New file. 13491 * gmp-h.in: Remove PPC MPN_COPY variants. 13492 * gmp-impl.h: Likewise. 13493 13494 * mpn/powerpc64/logops_n.asm: New file. 13495 13496 * mpn/powerpc64/mode64/invert_limb.asm: New file. 13497 13498 2004-10-07 Torbjorn Granlund <tege@swox.com> 13499 13500 * mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and 13501 its derivatives. 13502 * mpn/powerpc64/mode64/add_n.asm: Delete. 13503 * mpn/powerpc64/mode64/sub_n.asm: Delete. 13504 13505 * configfsf.guess: Patch HP-UX code to accommodate HP compiler's new 13506 inability to read from stdin. 13507 13508 * mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file. 13509 13510 2004-10-02 Torbjorn Granlund <tege@swox.com> 13511 13512 * mpn/amd64/README: Update for new developments, fix typos. 13513 13514 * mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb). 13515 13516 * mpn/amd64/addmul_1.asm: Remove unreachable code block. 13517 13518 2004-09-30 Torbjorn Granlund <tege@swox.com> 13519 13520 * mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb. 13521 13522 * mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code 13523 density. 13524 * mpn/ia64/mul_1.asm: Analogous changes. 13525 13526 2004-09-29 Torbjorn Granlund <tege@swox.com> 13527 13528 * gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register 13529 flag. 13530 13531 2004-09-28 Torbjorn Granlund <tege@swox.com> 13532 13533 * mpn/ia64/divrem_1.asm: Add cycle counts to loop. 13534 13535 * mpn/ia64/divrem_2.asm: New file. 13536 13537 2004-09-28 Paul Zimmermann <Paul.Zimmermann@loria.fr> 13538 13539 * mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the 13540 recursive fft parameters. 13541 13542 2004-09-20 Torbjorn Granlund <tege@swox.com> 13543 13544 * tests/misc.c (tests_rand_start): Default to strtoul for re-seeding. 13545 13546 * tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3. 13547 13548 2004-09-19 Torbjorn Granlund <tege@swox.com> 13549 13550 * tests/misc.c (tests_rand_start): Shift tv_usec for better seeding. 13551 13552 2004-09-18 Torbjorn Granlund <tege@swox.com> 13553 13554 * tests/misc.c (tests_rand_start): Invoke fflush after printing seed. 13555 13556 * tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run 13557 extra FFT tests if set. 13558 (ref_mpn_mul): Use library code for kara and toom, but skewded so that 13559 we never use the same algorithm that we're testing. 13560 (mul_kara): Delete. 13561 (debug_mp): Print just one line of large numbers. 13562 (ref_mpn_mul): Rework usage of tp temporary space. 13563 13564 2004-09-15 Torbjorn Granlund <tege@swox.com> 13565 13566 * mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp. 13567 * mpn/ia64/addmul_2.asm: Likewise. 13568 13569 2004-09-13 Torbjorn Granlund <tege@swox.com> 13570 13571 * mpn/ia64/invert_limb.asm: Rewrite. 13572 13573 * mpn/ia64/logops_n.asm: Insert some more stops. 13574 13575 2004-09-12 Torbjorn Granlund <tege@swox.com> 13576 13577 * mpn/ia64/gmp-mparam.h: Update. 13578 * mpn/amd64/gmp-mparam.h: Update. 13579 13580 * mpn/ia64/sqr_diagonal.asm: Shave off a few cycles. 13581 13582 2004-09-11 Torbjorn Granlund <tege@swox.com> 13583 13584 * mpn/ia64/mul_2.asm: New file. 13585 * mpn/ia64/addmul_2.asm: New file. 13586 13587 * mpn/ia64/addmul_1.asm: Tune a cycle from prologue. 13588 13589 * mpn/ia64/lorrshift.asm: Insert stops after several branches. 13590 * mpn/ia64/aorslsh1_n.asm: Likewise. 13591 * mpn/ia64/rsh1aors_n.asm: Likewise. 13592 13593 * mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2, 13594 accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n. 13595 13596 2004-09-07 Torbjorn Granlund <tege@swox.com> 13597 13598 * mpn/ia64/submul_1.asm: Rewrite. 13599 13600 * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler. 13601 * mpn/ia64/mul_1.asm: Likewise. 13602 13603 2004-09-02 Torbjorn Granlund <tege@swox.com> 13604 13605 * mpn/ia64/mul_1.asm: Optimize feed-in code. 13606 * mpn/ia64/addmul_1.asm: Rewrite feed-in code. 13607 13608 2004-08-29 Torbjorn Granlund <tege@swox.com> 13609 13610 * tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample. 13611 13612 2004-07-16 Torbjorn Granlund <tege@swox.com> 13613 13614 * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler. 13615 13616 2004-06-17 Kevin Ryde <kevin@swox.se> 13617 13618 * doc/gmp.texi: Use @. when sentence ends with a capital, for good 13619 spacing in tex. 13620 (Language Bindings): Add gmp-d, reported by Ben Hinkle. Update SWI 13621 Prolog URL, reported by Jan Wielemaker. 13622 13623 2004-06-09 Torbjorn Granlund <tege@swox.com> 13624 13625 * configure.in: Handle --enable-fat. Use that to enable x86 fat 13626 builds, remove magic meaning of i386-*-*. 13627 13628 2004-06-03 Kevin Ryde <kevin@swox.se> 13629 13630 * gmp-impl.h (memset): Use a local char* pointer, in case parameter is 13631 something else (eg. tune/common.c). Reported by Emmanuel Thomé. 13632 13633 2004-06-01 Kevin Ryde <kevin@swox.se> 13634 13635 * config.guess (i?86-*-*): Avoid "Illegal instruction" message which 13636 goes to stdout on 80386 freebsd4.9. 13637 13638 2004-05-23 Niels Möller <nisse@lysator.liu.se> 13639 13640 * mpn/generic/gcdext.c (gcdext_1_u): New function. 13641 (mpn_gcdext): Use it. 13642 13643 2004-05-23 Torbjorn Granlund <tege@swox.com> 13644 13645 * mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps. 13646 13647 2004-05-22 Torbjorn Granlund <tege@swox.com> 13648 13649 * mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers. 13650 13651 * mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code. 13652 13653 * mpn/powerpc32/lshift.asm: Add more cycle numbers. 13654 * mpn/powerpc32/rshift.asm: Likewise. 13655 13656 * mpn/ia64/addmul_1.asm: Reformat. 13657 13658 2004-05-21 Torbjorn Granlund <tege@swox.com> 13659 13660 * gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare. 13661 13662 * tune/Makefile.am: Compile gcdext.c. 13663 13664 * gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150. 13665 (GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default. Override when 13666 TUNE_PROGRAM_BUILD. 13667 (GCDEXT_THRESHOLD): Remove. 13668 13669 * tune/tuneup.c (gcdext_schoenhage_threshold): New variable. 13670 (gcdext_threshold): Remove variable. 13671 (tune_gcd_schoenhage): Lower step_factor to 0.1. 13672 (tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage. 13673 (tune_gcdext): Remove function. 13674 (all): Corresponding changes. 13675 13676 2004-05-21 Niels Möller <nisse@lysator.liu.se> 13677 13678 * mpn/generic/gcdext.c: Complete rewrite. Uses fast Lehmer code for 13679 small operands, and Schoenhage code for large operands. 13680 13681 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is 13682 not smaller than 2nd operand. 13683 13684 2004-05-17 Kevin Ryde <kevin@swox.se> 13685 13686 * gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails 13687 use ?: same as normal case, to avoid warnings from Borland C++ 6.0. 13688 Reported by delta trinity. 13689 13690 2004-05-15 Kevin Ryde <kevin@swox.se> 13691 13692 * tune/time.c (getrusage_backwards_p): New function 13693 (speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage. 13694 * configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage 13695 doesn't exist. 13696 * tune/README (NetBSD 1.4.1 m68k): Update notes. 13697 13698 * configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and 13699 cc_n32_ldflags, libtool knows to put the linker in n32 mode. 13700 13701 2004-05-15 Torbjorn Granlund <tege@swox.com> 13702 13703 * config.guess (powerpc*-*-*): Add more processor types to mfpvr code. 13704 * configure.in: Generalize powerpc subtype matching code. 13705 13706 * mpz/fac_ui.c: Misc cleanups, spelling corrections. 13707 13708 2004-05-14 Kevin Ryde <kevin@swox.se> 13709 13710 * mpf/sub.c: When one operand cancels high limbs of the other, strip 13711 high zeros on the balance before truncating to destination precision. 13712 Truncating first loses accuracy and can lead to a result 0 despite 13713 operands being not equal. Reported by John Abbott. 13714 Also, ensure exponent is zero when result is zero, for instance if 13715 operands are exactly equal. 13716 * tests/mpf/t-sub.c (check_data): New function, exercising these. 13717 13718 2004-05-12 Kevin Ryde <kevin@swox.se> 13719 13720 * configure.in (AC_PROG_RANLIB): New macro, supposedly required by 13721 automake, though it doesn't complain. 13722 13723 * demos/expr/Makefile.am (ARFLAGS): Add a default setting, to 13724 workaround an automake bug. 13725 13726 2004-05-10 Kevin Ryde <kevin@swox.se> 13727 13728 * */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4. 13729 13730 * doc/gmp.texi (Demonstration Programs): Add a remark about expression 13731 evaluation in the main gmp library. 13732 13733 * demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use 13734 mpf_init2 to follow requested precision. 13735 * demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init, 13736 to make parameters match. 13737 13738 * demos/expr/run-expr.c: Don't use getopt, to avoid needing configury 13739 for optarg declaration. Remove TRY macro, rename foo and bar to var_a 13740 and var_b, for clarity. 13741 * demos/expr/expr-impl.h: Don't use expr-config.h. 13742 * configure.in (demos/expr/expr-config.h): Remove. 13743 * demos/expr/expr-config.in: Remove file. 13744 13745 2004-05-08 Kevin Ryde <kevin@swox.se> 13746 13747 * doc/configuration (Configure): Update for current automake not 13748 copying acinclude.m4 into aclocal.m4. 13749 13750 * configure.in, Makefile.am, doc/gmp.texi, doc/configuration, 13751 tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README, 13752 demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in, 13753 demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c: 13754 MPFR now published separately, remove various bits. 13755 * mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c, 13756 demos/expr/exprfra.c: Remove. 13757 13758 2004-05-07 Kevin Ryde <kevin@swox.se> 13759 13760 * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library 13761 path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands 13762 "set -e", so we need an "|| true" in case there's nothing to copy (for 13763 instance in a static build). 13764 13765 2004-05-06 Kevin Ryde <kevin@swox.se> 13766 13767 * mpn/alpha/mode1o.c: Remove, in favour of ... 13768 * mpn/alpha/mode1o.asm: New file. 13769 * mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro. 13770 13771 * tune/amd64.asm: Save rbx in r10 rather than on the stack. 13772 13773 * configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case 13774 we're in ABI=32 on an old OS not supporting xmm regs. 13775 (GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under 13776 -march=k8 too, and not under ABI=64. 13777 13778 * doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation 13779 and overflows. For mpz_get_d_2exp note truncation, note result if 13780 OP==0, and cross reference libc frexp. 13781 (Rational Conversions): For mpq_get_d, note truncation and overflows. 13782 (Converting Floats): For mpf_get_d, note truncation and overflows. 13783 For mpf_get_d_2exp, note truncation, note result if OP==0. 13784 (Assembler Code Organisation): Note nails subdirectories. 13785 Clarification of get_d_2exp OP==0 reported by Sylvain Pion. 13786 13787 2004-05-05 Torbjorn Granlund <tege@swox.com> 13788 13789 * mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files 13790 (mainly by Niels Möller). 13791 * configure.in, mpn/Makefile.am: Add them. 13792 13793 * gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD, 13794 MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD. 13795 13796 * tune/Makefile.am: Compile mullow_n.c. 13797 * tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase): 13798 New functions. 13799 * tune/speed.c (routine): Add entries for mpn_mullow_n and 13800 mpn_mullow_basecase. 13801 * tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL, 13802 SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines. 13803 * tune/tuneup.c (tune_mullow): New function. 13804 13805 * gmp-impl.h (invert_limb): Compute branch-freely. 13806 13807 2004-05-02 Kevin Ryde <kevin@swox.se> 13808 13809 * mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC. 13810 Use 32-bit insns to save code bytes, and to save a couple of cycles on 13811 the initial setup multiplies. 13812 13813 2004-05-01 Kevin Ryde <kevin@swox.se> 13814 13815 * doc/gmp.texi (References): Update gcc online docs url to 13816 gcc.gnu.org. 13817 13818 * configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this 13819 pattern. (Believe the mips64*-*-* part also used picks up all current 13820 irix6 tuples anyway.) Reported by Rainer Orth. 13821 13822 2004-04-30 Kevin Ryde <kevin@swox.se> 13823 13824 * acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED, 13825 GMP_ASM_X86_GOT_EAX_OK): New macros. 13826 (GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by 13827 recent gcc. Reported by David Newman. 13828 13829 * doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an 13830 alternative to gmp_randinit. 13831 13832 2004-04-29 Torbjorn Granlund <tege@swox.com> 13833 13834 * configfsf.guess: Update to 2004-03-12. 13835 * configfsf.sub: Likewise. 13836 13837 2004-04-27 Torbjorn Granlund <tege@swox.com> 13838 13839 * mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation 13840 and to generate even numbers. 13841 * mpn/generic/random2.c (gmp_rrandomb): Likewise. 13842 13843 2004-04-25 Kevin Ryde <kevin@swox.se> 13844 13845 * gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint 13846 on a memory output, apparently not supported and provokes a warning 13847 from gcc 3.4. 13848 13849 2004-04-24 Kevin Ryde <kevin@swox.se> 13850 13851 * longlong.h (count_leading_zeros_gcc_clz, 13852 count_trailing_zeros_gcc_ctz): New macros. 13853 (count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc 13854 3.4. 13855 13856 * configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of 13857 each option list, for use by gcc 3.4 to avoid deprecation warnings 13858 about -mcpu. 13859 13860 * mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c, 13861 mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR() 13862 on function definition too, as demanded by gcc 3.4. 13863 13864 2004-04-22 Kevin Ryde <kevin@swox.se> 13865 13866 * tests/rand/t-lc2exp.c (check_bigc1): New test. 13867 13868 * doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our 13869 preference for this in an @appendix, and because texi2pdf doesn't 13870 support @appendixsubsec directly within an @appendix. 13871 13872 2004-04-20 Kevin Ryde <kevin@swox.se> 13873 13874 * doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7. 13875 * doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in 13876 @ref within @copying, recent texinfo.tex doesn't like that. 13877 13878 * demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw 13879 DLLs. 13880 13881 * */Makefile.in, install-sh: Update to automake 1.8.3. 13882 * ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6. 13883 13884 * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant 13885 expression, rather than a configure test. 13886 * acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer 13887 needed. 13888 * tests/t-hightomask.c: New file. 13889 * tests/Makefile.am (check_PROGRAMS): Add it. 13890 13891 * macos/configure (parse_top_configure): Look for PACKAGE_NAME and 13892 PACKAGE_VERSION now used by autoconf. 13893 (what_objects): Only demand 9 object files, as for instance occurs in 13894 the scanf directory. 13895 (asm files): Transform labels L(foo) -> Lfoo. Take func name from 13896 PROLOGUE to support empty "EPILOGUE()". Recognise and substitute 13897 register name "define()"s. 13898 * macos/Makefile.in (CmnObjs): Add tal-notreent.o. 13899 13900 2004-04-19 Torbjorn Granlund <tege@swox.com> 13901 13902 * tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define. 13903 (speed_mpn_rootrem): Declare. 13904 * tune/common.c (speed_mpn_rootrem): New function. 13905 * tune/speed.c (routine): Add entry for mpn_rootrem. 13906 13907 2004-04-16 Kevin Ryde <kevin@swox.se> 13908 13909 * doc/fdl.texi: Update from FSF, just fixing a couple of typos. 13910 13911 * macos/configure, macos/Makefile.in: Add printf and scanf directories. 13912 13913 * tests/mpz/t-gcd.c (check_data): New function, exercising K6 13914 gcd_finda bug. 13915 13916 2004-04-14 Kevin Ryde <kevin@swox.se> 13917 13918 * doc/gmp.texi (Reentrancy, Random State Initialization): Note 13919 gmp_randinit use of gmp_errno is not thread safe. Reported by Vincent 13920 Lefèvre. 13921 13922 * doc/gmp.texi (Random State Initialization): Add index entries for 13923 gmp_errno and constants. 13924 13925 * mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB. 13926 13927 * configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg. 13928 13929 2004-04-12 Kevin Ryde <kevin@swox.se> 13930 13931 * demos/perl/GMP.xs (static_functable): New macro, use it for all 13932 function tables, to support mingw DLL builds. 13933 * demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on 13934 DLLs, should be ok now. 13935 13936 * demos/perl/sample.pl: Print the module and library versions in use. 13937 13938 * demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'. 13939 * demos/perl/GMP.pm (COPYRIGHT): New in the doc section. 13940 13941 * Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy. 13942 13943 * tal-debug.c: Add <stdlib.h> for abort. 13944 13945 2004-04-07 Torbjorn Granlund <tege@swox.com> 13946 13947 * tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed. 13948 13949 * mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c). 13950 13951 2004-04-07 Kevin Ryde <kevin@swox.se> 13952 13953 * mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups. 13954 Zero flag is wrong here, it relects only the high limb of the compare, 13955 leading to n1>=n2 not satisfied and wrong results. cp[1]==0x7FFFFFFF 13956 with cp[0]>=0x80000001 provokes this. 13957 13958 * doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under 13959 the pow function description too. 13960 (Language Bindings): Add XEmacs (betas at this stage). Reported by 13961 Jerry James. 13962 13963 * tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed. 13964 13965 * gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R. 13966 * gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout 13967 instead of 0, in case a K&R treats int and FILE* params differently. 13968 13969 2004-04-04 Kevin Ryde <kevin@swox.se> 13970 13971 * gmp-impl.h (BSWAP_LIMB) [amd64]: New macro. 13972 (FORCE_DOUBLE): Use this for amd64 too. 13973 13974 * tests/amd64check.c, tests/amd64call.asm: New files, derived in part 13975 from x86check.c and x86call.asm. 13976 * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them. 13977 * configure.in (x86_64-*-* ABI=64): Use them. 13978 13979 2004-04-03 Kevin Ryde <kevin@swox.se> 13980 13981 * mpn/amd64/mode1o.asm: New file. 13982 * mpn/amd64/amd64-defs.m4 (ASSERT): New macro. 13983 13984 * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add 13985 note on how "dr" part of algorithm is handled. 13986 13987 * mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm, 13988 mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds. 13989 13990 2004-03-31 Kevin Ryde <kevin@swox.se> 13991 13992 * doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix. 13993 13994 * mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY. 13995 13996 2004-03-28 Torbjorn Granlund <tege@swox.com> 13997 13998 * mpn/amd64/divrem_1.asm: Trim a few cycles. 13999 14000 2004-03-27 Torbjorn Granlund <tege@swox.com> 14001 14002 * mpn/amd64/sublsh1_n.asm: Fix typo. 14003 14004 * mpn/generic/divrem_1.c: Fix typo. 14005 14006 * mpn/generic/sqr_basecase.c: Fix typo. 14007 14008 * mpn/amd64/divrem_1.asm: New file. 14009 14010 2004-03-20 Kevin Ryde <kevin@swox.se> 14011 14012 * longlong.h (power, powerpc): Add comments on how we select this code. 14013 14014 * gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the 14015 two identically but ?: is a bit clearer. 14016 14017 * insert-dbl.c: Remove file, no longer used, scaling is now integrated 14018 in mpn_get_d. 14019 * Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c. 14020 * gmp-impl.h (__gmp_scale2): Remove prototype. 14021 14022 2004-03-17 Kevin Ryde <kevin@swox.se> 14023 14024 * mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64. 14025 14026 * mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form. 14027 14028 2004-03-16 Torbjorn Granlund <tege@swox.com> 14029 14030 * mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and 14031 mpn_addmul_2s. 14032 14033 2004-03-14 Kevin Ryde <kevin@swox.se> 14034 14035 * mpf/mul_ui.c: Incorporate carry from low limbs, for exactness. 14036 * tests/mpf/t-mul_ui.c: New file. 14037 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14038 14039 * mpf/div.c: Use mpn_tdiv_qr. Use just one TMP_ALLOC. Use full 14040 divisor, since truncating can lose accuracy. 14041 * tests/mpf/t-div.c: New file. 14042 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14043 14044 * tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend 14045 bogus 99/4 test. 14046 * tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap. 14047 14048 * tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function. 14049 14050 * mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for 14051 when vval=-0x800..00 and limb==longlong. 14052 14053 * mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when 14054 uexp==2 but value bigger than an mp_limb_t. 14055 * tests/mpf/t-cmp_si.c (check_data): Add test cases. 14056 14057 * tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for 14058 negative bases used for upper case hex in integer traces. 14059 14060 2004-03-12 Torbjorn Granlund <tege@swox.com> 14061 14062 * mpn/generic/sb_divrem_mn.c: Correct header comment. 14063 14064 2004-03-11 Kevin Ryde <kevin@swox.se> 14065 14066 * aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version 14067 1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for 14068 development when changing contents or with duplicate named files like 14069 we have. 14070 14071 Revert this, ie restore AR_FLAGS=cq: 14072 * acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now 14073 does this itself on detecting duplicate object filenames in piecewise 14074 linking mode. 14075 14076 * randbui.c, randmui.c [longlong+nails]: Correction to conditionals 14077 for second limb. 14078 14079 * mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c, 14080 mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c, 14081 mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c, 14082 mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c, 14083 mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c 14084 [longlong+nails]: Amend #if to avoid warnings about shift amount. 14085 14086 2004-03-07 Kevin Ryde <kevin@swox.se> 14087 14088 * mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate 14089 result. Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter 14090 UNLIKELY. 14091 14092 * mpf/ui_div.c: Use mpn_tdiv_qr. Use just one TMP_ALLOC. Use full 14093 divisor, since truncating can lose accuracy. 14094 * tests/mpf/t-ui_div.c: New file. 14095 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14096 14097 * mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer 14098 and avoid 1 limb alloc when not wanted. 14099 14100 * gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined. 14101 (TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less 14102 preprocessor conditionals. 14103 14104 * mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments. 14105 14106 * tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify. 14107 14108 2004-03-04 Kevin Ryde <kevin@swox.se> 14109 14110 * gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit 14111 of K&R. 14112 * tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R. 14113 14114 * doc/configuration (Configure): Remove mkinstalldirs, no longer used. 14115 14116 * acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now 14117 does this itself on detecting duplicate object filenames in piecewise 14118 linking mode. 14119 14120 * configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify 14121 ABI=2.0n versus ABI=2.0w. In particular this lets CC=cc_bundled 14122 correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64 14123 to that compiler, currently). 14124 14125 * doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using 14126 global default precision. 14127 (Random State Miscellaneous): Describe gmp_urandomb_ui as giving N 14128 bits. 14129 (C++ Interface Floats): Describe operator= copying the value, not the 14130 precision, and what this can mean about copy constructor versus 14131 default constructor plus assignment. 14132 14133 * mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting. 14134 Don't truncate the divisor, it can make the result inaccurate. 14135 * tests/mpf/t-set_q.c: New file. 14136 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14137 14138 * mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1. 14139 No actual bug here, because MPN_COPY has thusfar been an alias for 14140 MPN_COPY_INCR, only an ASSERT failure. 14141 * tests/mpf/t-set.c: New file. 14142 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14143 14144 * mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call. 14145 14146 * mpf/set_d.c: Rate d==0 as UNLIKELY. Store size before extract call, 14147 to shorten lifespan of "negative". 14148 14149 * mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c, 14150 mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one 14151 less live quantity across that call. 14152 * mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before 14153 alloc call, to overlap with other operations. 14154 14155 * tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize, 14156 refmpf_validate, refmpf_validate_division): New functions. 14157 14158 * tests/refmpn.c, tests/tests.h (refmpn_copy_extend, 14159 refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions. 14160 14161 * tal-debug.c: Add <string.h> for strcmp. 14162 14163 * tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t 14164 for loop index, to quieten g++ warning. 14165 14166 2004-03-02 Kevin Ryde <kevin@swox.se> 14167 14168 * tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes. 14169 14170 2004-03-01 Torbjorn Granlund <tege@swox.com> 14171 14172 With Karl Hasselström: 14173 * mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with 14174 meat from old mpn_dc_divrem_n. Accept scratch parameter. Rewrite to 14175 avoid a recursive call. 14176 (mpn_dc_div_3_by_2): New function, with meat from old 14177 mpn_dc_div_3_halves_by_2. Accept scratch parameter. 14178 (mpn_dc_divrem_n): Now just allocate scratch space and call new 14179 mpn_dc_div_2_by_1. 14180 14181 2004-02-29 Kevin Ryde <kevin@swox.se> 14182 14183 * longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining 14184 mpn/alpha/cntlz.asm cmpbge technique. 14185 14186 * aclocal.m4, configure, install-sh, missing, ltmain.sh, 14187 */Makefile.in: Update to automake 1.8.2 and libtool 1.5.2. 14188 14189 * doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows 14190 C99 / and %. 14191 (Exact Remainder): Index entries for divisibility testing algorithm. 14192 14193 * tune/time.c (speed_endtime): Return 0.0 for negative time measured. 14194 Revise usage comments for clarity. 14195 * tune/common.c (speed_measure): Recognise speed_endtime 0.0 for 14196 failed measurement. 14197 14198 * tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup. 14199 14200 2004-02-27 Torbjorn Granlund <tege@swox.com> 14201 14202 * tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor. 14203 14204 * tests/mpz/t-gcd.c: Decrease # of tests to 50. 14205 14206 2004-02-27 Kevin Ryde <kevin@swox.se> 14207 14208 * tests/devel/try.c: Add a comment that this is not for Cray systems. 14209 14210 * mpf/set_q.c: Don't support den(q)<0, demand canonical form in the 14211 usual way. 14212 14213 2004-02-24 Torbjorn Granlund <tege@swox.com> 14214 14215 From Kevin: 14216 * mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization 14217 criterion met. 14218 14219 2004-02-22 Kevin Ryde <kevin@swox.se> 14220 14221 * acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS): 14222 Remove files that might look like compiler output, so our "||" 14223 alternatives are not fooled. 14224 14225 * acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code 14226 mis-compiled by certain IA-64 HP cc at +O3. 14227 14228 * gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for 14229 the benefit of freebsd where .mcount clobbers registers. Spotted by 14230 Torbjorn. 14231 * configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New 14232 AC_DEFINEs. 14233 14234 2004-02-21 Kevin Ryde <kevin@swox.se> 14235 14236 * configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's 14237 not used in ABI=64 on the BSD systems. 14238 14239 2004-02-18 Niels Möller <nisse@lysator.liu.se> 14240 14241 * tests/mpz/t-gcd.c (gcdext_valid_p): New function. 14242 (ref_mpz_gcd): Deleted function. 14243 (one_test): Rearranged to call mpz_gcdext first, so that the 14244 returned value can be validated. 14245 (main): Don't use ref_mpz_gcd. 14246 14247 2004-02-18 Torbjorn Granlund <tege@swox.com> 14248 14249 * gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section. 14250 14251 * tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT. 14252 14253 * mpz/rrandomb.c (gmp_rrandomb): Rewrite. 14254 14255 * mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5. 14256 14257 2004-02-18 Kevin Ryde <kevin@swox.se> 14258 14259 * mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]: 14260 Always store second limb, to avoid a conditional. 14261 14262 * tests/mpf/t-get_ui.c: New file. 14263 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14264 * tests/mpf/t-get_si.c (check_limbdata): Further tests. 14265 * gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines. 14266 14267 * mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by 14268 other conditions. Attempt greater clarity by expressing conditions as 14269 based on available data range. 14270 * mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size, 14271 since may still have second limb above radix point available. 14272 * mpf/get_ui.c: Nailify. 14273 14274 2004-02-16 Kevin Ryde <kevin@swox.se> 14275 14276 * mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of 14277 count_leading_zeros on limb&-limb. 14278 14279 * mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on 14280 ">>" of negatives. Correction to comment, exp is rounded upwards. 14281 SIZ(r) always prec now, no need for tsize expression. Store EXP(r) 14282 and SIZ(r) where calculated to reduce variable lifespans. Make tsize 14283 mp_size_t not mp_exp_t, though of course those are currently the same. 14284 14285 * gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING, 14286 GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we 14287 don't want to use globals for communicating error information. 14288 14289 * mpz/gcd_ui.c [nails]: Correction, actually return a value. 14290 14291 * mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code. 14292 14293 2004-02-15 Kevin Ryde <kevin@swox.se> 14294 14295 * tests/mpz/t-jac.c (check_data): Remove unnecessary variable 14296 "answer". 14297 14298 2004-02-14 Torbjorn Granlund <tege@swox.com> 14299 14300 * mpn/ia64/aors_n.asm: Break a group with a RAW conflict. 14301 14302 2004-02-14 Kevin Ryde <kevin@swox.se> 14303 14304 * acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're 14305 concerned about. 14306 14307 * mpn/generic/mul_n.c: Add some remarks about toom3 high zero 14308 stripping. 14309 14310 * mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue 14311 remarks. What to do about going outside `up' space is a problem, but 14312 anything to address it would be an incompatible change. 14313 14314 2004-02-12 Torbjorn Granlund <tege@swox.com> 14315 14316 * tests/mpn/t-hgcd.c: Remove unused variables. 14317 14318 * mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX 14319 assembler. Misc HP-UX changes. 14320 * mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler. 14321 14322 2004-02-11 Kevin Ryde <kevin@swox.se> 14323 14324 * longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and 14325 HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines. 14326 14327 * gmp-impl.h: Add remarks about limits.h and Cray etc. 14328 14329 * mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines, 14330 hpux 11.23 assembler doesn't like that. 14331 * mpn/ia64/README: Add a note on this. 14332 14333 * dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used. Reported 14334 by Jason Moxham. 14335 14336 * mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections. 14337 14338 2004-02-10 Torbjorn Granlund <tege@swox.com> 14339 14340 * tests/mpz/t-gcd.c: Decrease # of tests run. 14341 14342 * mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values. 14343 14344 2004-02-01 Torbjorn Granlund <tege@swox.com> 14345 14346 From Kevin: 14347 * config.guess: Recognize AMD's hammer processors, return x86_64. 14348 14349 2004-01-31 Niels Möller <nisse@lysator.liu.se> 14350 14351 * mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static. 14352 14353 2004-01-25 Niels Möller <nisse@lysator.liu.se> 14354 14355 * tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd. 14356 14357 * mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3. 14358 (mpn_cmp_sum3): New function. 14359 (mpn_diff_smaller_p): Remove. 14360 (hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step): 14361 Remove tp,talloc arguments. Callers changed. 14362 14363 2004-01-25 Torbjorn Granlund <tege@swox.com> 14364 14365 * tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and 14366 tune_hgcd. 14367 14368 * mpn/generic/gcd.c: Reenable Schoenhage code. 14369 14370 With Niels Möller: 14371 * mpn/generic/hgcd.c: Add const and inline to several functions. 14372 (qstack_push_start qstack_push_end qstack_push_quotient): Remove. 14373 (euclid_step): Insert removed functions here. 14374 (hgcd_adjust): Simplify, don't handle d != 1. 14375 (qstack_adjust): Corresponding changes. 14376 (mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero. 14377 (hgcd_start_row_p): Tweak. 14378 (hgcd_final): Shorten life of ralloc. 14379 14380 2004-01-24 Kevin Ryde <kevin@swox.se> 14381 14382 * tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts. 14383 14384 * mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN. 14385 (mpn_dc_sqrtrem): Add casts for K&R. 14386 14387 * mpf/sqrt_ui.c: Nailify. 14388 14389 * mpf/set_z.c: Do MPN_COPY last, for possible tail call. 14390 14391 * doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note 14392 exponent is in limbs. 14393 14394 * mpn/ia64/README: Add remark about concentrating on itanium-2. 14395 14396 2004-01-22 Kevin Ryde <kevin@swox.se> 14397 14398 * mpf/sqrt.c: Change tsize calculation to get prec limbs result 14399 always, previously got prec+1 when exp was odd. 14400 * tests/mpf/t-sqrt.c (check_rand1): New function, code from main. 14401 (check_rand2): New function. 14402 14403 * mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result, 14404 previously got prec+1. 14405 * tests/mpf/t-sqrt_ui.c: New file. 14406 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 14407 14408 * tests/refmpf.c, tests/tests.h (refmpf_add_ulp, 14409 refmpf_set_prec_limbs): New functions. 14410 14411 * mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double, 14412 mpn_get_d now does this. Remove res==1.0 check for round upwards, 14413 mpn_get_d now rounds towards zero. Move exp store to make mpn_get_d a 14414 tail call. 14415 14416 * configure.in (x86-*-*): Use ABI=32 rather than ABI=standard. 14417 Use gcc -m32 when available, to force mode on bi-arch amd64 gcc. 14418 * configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups 14419 as ABI=64. Support ABI=32, using athlon code. Use gcc -mcpu=k8, 14420 -march=k8. 14421 (amd64-*-*): Remove pattern, config.sub only gives x86_64. 14422 * doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs. 14423 14424 * mpn/amd64/README: Add reference to ABI spec. 14425 14426 2004-01-17 Niels Möller <nisse@lysator.liu.se> 14427 14428 * mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n 14429 change for now. 14430 14431 * mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n. 14432 14433 2004-01-17 Kevin Ryde <kevin@swox.se> 14434 14435 * tune/README: Remove open/mpn versions of toom3, no longer exist. 14436 * tune/powerpc64.asm: Remove unused L(again). 14437 * tune/time.c (mftb): Note single mftb possible for powerpc64. 14438 14439 * mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last 14440 step, for better parallelism. 14441 14442 * mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from 14443 previous mpz_get_d code. 14444 14445 * tune/freq.c: Add some comments about systems not covered. 14446 14447 * gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks. 14448 Reported by Tomas Zahradnicky. 14449 14450 2004-01-16 Niels Möller <nisse@lysator.liu.se> 14451 14452 * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U. 14453 (hgcd_adjust): Use mpn_addlsh1_n when available. 14454 14455 2004-01-16 Kevin Ryde <kevin@swox.se> 14456 14457 * configure.in (powerpc64-*-linux*): Try gcc64. Try -m64 with 14458 "cflags_maybe" to get it used in all probing. Add sizeof-long-8 test 14459 to check the mode is right if -m64 is not applicable. 14460 14461 2004-01-15 Kevin Ryde <kevin@swox.se> 14462 14463 * configure.in (--with-readline=detect): Check for readline/readline.h 14464 and readline/history.h. Report result of detection. 14465 14466 2004-01-14 Niels Möller <nisse@lysator.liu.se> 14467 14468 * tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer. 14469 * tune/common.c (speed_mpn_hgcd_lehmer): Disabled function. 14470 14471 * mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer) 14472 (mpn_hgcd_equal): Deleted functions. 14473 14474 * mpn/generic/gcd.c (hgcd_start_row_p): Deleted function. 14475 (gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer. 14476 14477 * mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos. 14478 (mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly, 14479 not mpn_hgcd_lehmer. 14480 14481 * mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to 14482 mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled). 14483 14484 * gmp-impl.h (mpn_hgcd_fix): Updated prototype. 14485 14486 * mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments 14487 by a pointer const struct hgcd_row *s. Updated callers. 14488 14489 * mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input. 14490 Moved function definition before hgcd_jebelean. 14491 (hgcd_jebelean): Interface change, analogous to hgcd2. 14492 (mpn_hgcd_fix): Normalize v. Require that v > 0. 14493 (hgcd_adjust): Fix bug in carry update. 14494 (mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean 14495 now sometimes returning 1. Reintroduced hgcd_adjust. 14496 14497 * mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first 14498 hgcd2 call. 14499 14500 * mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1 14501 instead of 2, in the no progress case r0=A, r1=B. 14502 14503 * mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return 14504 value. Now takes a struct hgcd_row * and the uv size, and returns 14505 updated uvsize. 14506 (hgcd_final): Special handling of the case hgcd2 returning 1. Now 14507 uses hgcd_adjust, instead of a full Euclid division. 14508 14509 2004-01-13 Niels Möller <nisse@lysator.liu.se> 14510 14511 * mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a 14512 single function euclid_step. 14513 (mpn_hgcd): Reorganized the logic for the second recursive call. 14514 Avoid unnecessary Euclid steps. 14515 14516 * tests/mpn/t-hgcd.c (hgcd_values): One more test value. 14517 14518 * tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the 14519 hgcd_jebelean bug. 14520 14521 * mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error. 14522 (mpn_hgcd): Simplified the logic for the first recursive call. Now 14523 it uses only the correct values from the recursive call, and 14524 doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be 14525 reintroduced later, though). 14526 14527 * tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal) 14528 (hgcd_ref_init, hgcd_ref_clear): New functions. 14529 (hgcd_ref): Reference implementation of hgcd, using mpz. 14530 (one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer. 14531 (main): Skip one_step if both input values are zero. 14532 14533 2004-01-12 Niels Möller <nisse@lysator.liu.se> 14534 14535 * mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer 14536 steps instead of a division loop. 14537 (mpn_hgcd_lehmer): Deleted old Lehmer code, instead just 14538 initialize and then call hgcd_final. 14539 14540 * tests/tests.h: Added refmpn_free_limbs prototype. 14541 * tests/refmpn.c (refmpn_free_limbs): New function. 14542 14543 * tests/mpn/t-hgcd.c: Try the same kind of random inputs as for 14544 mpz/t-gcd. 14545 14546 2004-01-11 Niels Möller <nisse@lysator.liu.se> 14547 14548 * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more 14549 analysis of the size reduction for one Lehmer step. 14550 14551 * tests/mpn/t-hgcd.c: New file. 14552 14553 2004-01-11 Torbjorn Granlund <tege@swox.com> 14554 14555 With Niels Möller: 14556 * mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs. 14557 (hgcd_mul): Normalize R[1].uvp[1]. Add some more ASSERTs. 14558 (hgcd_update_uv): Streamline. ASSERT that input and output is 14559 normalized. 14560 14561 2004-01-11 Kevin Ryde <kevin@swox.se> 14562 14563 * mpn/alpha/ev6/slot.pl: New file, derived in part from 14564 mpn/x86/k6/cross.pl. 14565 14566 * mpn/alpha/alpha-defs.m4 (ASSERT): New macro. 14567 14568 * mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug. 14569 (m4_assert_defined): Use it. 14570 14571 * mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro. 14572 * mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr. 14573 14574 * configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with 14575 readline, when available. 14576 14577 * longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather 14578 than __x>al, since the former can be done without waiting for __x, 14579 helping superscalar chips, in particular alpha ev5 and ev6. 14580 14581 * longlong.h (sub_ddmmss) [ia64]: New macro. 14582 14583 * tests/t-sub.c: New file. 14584 * tests/Makefile.am (check_PROGRAMS): Add it. 14585 * tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function. 14586 14587 2004-01-09 Kevin Ryde <kevin@swox.se> 14588 14589 * mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from 14590 mpn/x86/mod_34lsub1.asm. 14591 14592 * configure.in (IA64_PATTERN): Use -mtune on gcc 3.4. 14593 14594 2004-01-07 Kevin Ryde <kevin@swox.se> 14595 14596 * gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to 14597 keep in our namespace. (Not actually used anywhere currently.) 14598 Reported by Patrick Pelissier. 14599 14600 * mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style 14601 as gmp-h.in (though mp-h.in is not actually used during configure). 14602 14603 * mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]: 14604 Use __dllexport__ and __dllimport__ to keep out of application 14605 namespace. Same previously done in gmp-h.in. 14606 14607 2004-01-06 Kevin Ryde <kevin@swox.se> 14608 14609 * configfsf.sub, configfsf.guess: Update to 2004-01-05. 14610 * configure.in (amd64-*-* | x86_64-*-*): Update comments on what 14611 configfsf.sub does. 14612 14613 2004-01-04 Kevin Ryde <kevin@swox.se> 14614 14615 * mpn/alpha/README (REFERENCES): Add tru64 assembly manuals. 14616 (ASSEMBLY RULES): Note what gcc says about !literal! etc. 14617 14618 2004-01-03 Kevin Ryde <kevin@swox.se> 14619 14620 * mpn/alpha/ev67/gcd_1.asm: New file. 14621 14622 * mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from 14623 mpn/x86/pentium4/sse2/addlsh1_n.asm. 14624 14625 * mpn/x86/p6/p3mmx/popham.asm: Note measured speeds. 14626 14627 * mpn/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes 14628 no difference to the generated code). Corrections to a couple of 14629 comments. 14630 14631 * mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not 14632 used, no such parameter. 14633 14634 * mpn/generic/gcd.c: Use <stdio.h> for NULL. 14635 14636 * doc/gmp.texi (Single Limb Division): Correction to tex expression 14637 for (1/2)x1. And minor wording tweaks elsewhere. 14638 14639 * gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments 14640 about how carries returned. 14641 14642 * longlong.h (umul_ppmm) [generic]: Add comments about squaring 14643 (dropped from tasks list) 14644 14645 2003-12-31 Kevin Ryde <kevin@swox.se> 14646 14647 * demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found. 14648 * demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX 14649 being the same as ~0 (which is not true in old perl). 14650 * demos/perl/test.pl: Update tests. 14651 * demos/perl/typemap (gmp_UV): New type. 14652 14653 * demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't 14654 necessarily exceed a long. 14655 14656 * demos/perl/GMP.pm: Add a remark about get_str to the bugs section. 14657 14658 * mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts 14659 for K&R. 14660 * tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how 14661 they're used, for the benefit of K&R calling. 14662 14663 * doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm. 14664 And add further index entries in various places. 14665 14666 * mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available. 14667 14668 * gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n, 14669 mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with 14670 the prototypes, for ease of locating. 14671 14672 2003-12-30 Torbjorn Granlund <tege@swox.com> 14673 14674 * tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and 14675 tune_hgcd for now. 14676 14677 2003-12-29 Torbjorn Granlund <tege@swox.com> 14678 14679 * tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin. 14680 14681 * mpn/ia64/mul_1.asm: Amend TODO list. 14682 14683 * mpn/sparc64/README: Remove mpn_Xmul_2, done. 14684 Add blurb about L1 cache conflicts. 14685 14686 * mpn/generic/gcd.c: Disable Schoenhage code for now. 14687 14688 2003-12-29 Kevin Ryde <kevin@swox.se> 14689 14690 * mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R. 14691 14692 2003-12-27 Kevin Ryde <kevin@swox.se> 14693 14694 * tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO. 14695 14696 * mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT), 14697 mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2, 14698 HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an 14699 ANSI-ism, avoid. 14700 14701 * Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on 14702 ansi2knr to avoid a circular build rule. 14703 * configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am. 14704 14705 * configure.in (cflags_maybe): Don't loop adding cflags_maybe if the 14706 user has set CFLAGS. 14707 14708 2003-12-24 Torbjorn Granlund <tege@swox.com> 14709 14710 * mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+". 14711 (mpn_gcd): Allocate scratch space on heap for gcd_schoenhage. 14712 (mpn_gcd): Don't invoke MPN_NORMALIZE on input operands. 14713 14714 2003-12-23 Kevin Ryde <kevin@swox.se> 14715 14716 * configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to 14717 get the right mode when the user sets the CFLAGS. 14718 (testlist): Introduce "any_<abi>_testlist" to apply to all compilers. 14719 14720 * demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove 14721 output rules, these are only meant for inputs. 14722 (MPZ_MUTATE): Remove, not used since changes for magic. 14723 14724 * demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New 14725 variables, initialized in BOOT. 14726 * demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit 14727 sv_bless, to save a gv_stashpv for every new object. 14728 14729 2003-12-22 Kevin Ryde <kevin@swox.se> 14730 14731 * mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and 14732 ev5/dive_1.c, these are good for ev4, and would like them in a generic 14733 alpha build. 14734 14735 2003-12-21 Kevin Ryde <kevin@swox.se> 14736 14737 * doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in 14738 mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means 14739 by "logical". Reported by Rüdiger Schütz. 14740 14741 * gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good. 14742 14743 2003-12-20 Torbjorn Granlund <tege@swox.com> 14744 14745 * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of 14746 mpn_sub_n where possible. Use mp_size_t for relevant variables. 14747 14748 2003-12-20 Kevin Ryde <kevin@swox.se> 14749 14750 * tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change, 14751 don't want "- 1" on the TMP_ALLOC_LIMBS. 14752 14753 * demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is 14754 included, not GMP_RNDZ which is now an enum. 14755 14756 * demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and 14757 mpfr_fits_ulong_p. 14758 (e_mpfr_get_ui_fits): Use mpfr_get_ui. 14759 14760 * mpfr/*: Update to mpfr cvs head 2003-12-20. 14761 14762 * configure, config.in: Update to autoconf 2.59. 14763 * */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh, 14764 doc/mdate-sh: Update to automake 1.8. 14765 14766 * mkinstalldirs: Remove, not required by automake 1.8. 14767 * doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8. 14768 14769 * configure.in (AC_PREREQ): Require autoconf 2.59. 14770 (AM_INIT_AUTOMAKE): Require automake 1.8. 14771 (AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef 14772 __cplusplus we want. 14773 (gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code, 14774 autoconf now ok. 14775 14776 * acinclude.m4 (GMP_C_INLINE): Remove. 14777 (GMP_H_EXTERN_INLINE): Use AC_C_INLINE. 14778 (GMP_PROG_AR): Comment on automake $ARFLAGS. 14779 14780 2003-12-19 Niels Möller <nisse@lysator.liu.se> 14781 14782 * mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried 14783 to explain how it works. 14784 (slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use 14785 CPP to wrap assertion checks around all calls to 14786 mpn_diff_smaller_p. 14787 14788 * mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling. 14789 14790 * mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use 14791 GMP_NUMB_MAX, not MP_LIMB_T_MAX. 14792 (mpn_hgcd_itch): Improved size calculation. 14793 (mpn_hgcd_max_recursion): Moved function from qstack.c. Should to 14794 be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned. 14795 14796 * mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from 14797 here. 14798 14799 2003-12-19 Torbjorn Granlund <tege@swox.com> 14800 14801 * tests/mpf/t-get_d.c: Print message before aborting. 14802 14803 * mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable 14804 with 0. Remove bogus comment. 14805 14806 * mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails. 14807 14808 2003-12-18 Niels Möller <niels@lysator.liu.se> 14809 14810 * mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is 14811 smaller than the input r1. 14812 14813 2003-12-18 Torbjorn Granlund <tege@swox.com> 14814 14815 * mpz/get_d.c: Don't include longlong.h. 14816 14817 * tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid 14818 a dummy r/w outside of allocated area. 14819 14820 2003-12-18 Kevin Ryde <kevin@swox.se> 14821 14822 * mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does. 14823 14824 * configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure 14825 include() from automake 1.8 aclocal. 14826 * acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal. 14827 14828 2003-12-17 Niels Möller <nisse@lysator.liu.se> 14829 14830 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]: 14831 Enabled code also for GMP_NAIL_BITS > 0. 14832 * tune/speed.c [nails]: Enable speed_mpn_hgcd and 14833 speed_mpn_hgcd_lehmer. 14834 * tune/tuneup.c (tune_hgcd) [nails]: Likewise. 14835 14836 * mpn/generic/gcd.c [nails]: Use Schönhage's algorithm also for 14837 GMP_NAIL_BITS > 0. 14838 14839 * mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0. 14840 (MPN_EXTRACT_LIMB) [nails]: Handle nails. 14841 (__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the 14842 stack. Also check that r[i] >= r[i+1]. 14843 (mpn_hgcd2_lehmer_step) [nails]: Handle nails. 14844 (mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid 14845 trigging that assert in __gmpn_hgcd_sanity. 14846 (mpn_hgcd): Likewise. 14847 14848 * mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware 14849 version. 14850 (SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the 14851 non-nail case. 14852 (HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version 14853 for K&R compilers. 14854 (mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware 14855 code for checking Jebelean's condition. 14856 14857 2003-12-13 Kevin Ryde <kevin@swox.se> 14858 14859 * mpq/get_d.c: Amend comments per mpn_get_d change. 14860 (limb2dbl): Remove, no longer used. 14861 14862 * gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to 14863 comments, MP_SIZE_T_MAX means preinv never. 14864 14865 * gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]: 14866 Remove overrides, divexact_1 and modexact_1 have been nailified. 14867 14868 * mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value 14869 requirement. 14870 14871 * tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around 14872 GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall. 14873 * tests/t-constants.c (main), tests/t-count_zeros.c (check_clz), 14874 tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi), 14875 tests/mpq/t-get_d.c (check_onebit): : Correction to printfs. 14876 * tests/mpn/t-fat.c: Add <string.h> for memcpy. 14877 * tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned". 14878 * tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit". 14879 * tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for 14880 initializers. 14881 * tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun): 14882 Correction to return values. 14883 14884 * doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase 14885 can be used to locate the most significant bit. Reword a bit for 14886 clarity. 14887 14888 2003-12-12 Niels Möller <niels@lysator.liu.se> 14889 14890 * mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer 14891 overrun. 14892 * mpn/generic/hgcd.c: Improved comments. 14893 14894 2003-12-11 Torbjorn Granlund <tege@swox.com> 14895 14896 * gmp-impl.h: Change asm => __asm__, tabify. 14897 * mpz/get_d_2exp.c: Likewise. 14898 * mpf/get_d_2exp.c: Likewise. 14899 14900 * tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities. 14901 14902 2003-12-10 Torbjorn Granlund <tege@swox.com> 14903 14904 * tests/mpz/t-gcd.c: Generate operands with sizes as a geometric 14905 progression, to allow for larger operands and less varying timing. 14906 14907 * tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor. 14908 (tune_hgcd): Likewise. 14909 14910 2003-12-10 Kevin Ryde <kevin@swox.se> 14911 14912 * demos/perl/test.pl: Should be $] for perl version in old perl. 14913 14914 * configure.in (sparc64-*-*): Single block of gcc configs for all 14915 systems, on unknown systems try both ABI 32 and 64. 14916 14917 * configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with 14918 options to generate .def files with windows DLLs. 14919 * Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them. 14920 14921 * mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow 14922 convention and cooperate with tune/tuneup.c. 14923 14924 * tune/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side 14925 default 1000 is approx the crossover point on athlon. 14926 14927 * tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c, 14928 tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter 14929 rather than returning a value, avoids alloca in a function call. 14930 * tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now 14931 inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment 14932 extraction. 14933 14934 * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal, 14935 __gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater, 14936 __gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and 14937 mpfr_cmp_d. 14938 * tests/cxx/t-ops.cc: Exercise this. 14939 14940 * demos/perl/Makefile.PL: Don't install sample.pl and test2.pl. 14941 14942 * demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any 14943 rounding. 14944 * demos/perl/test.pl: Exercise this. 14945 14946 * demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage. 14947 * demos/perl/test.pl: Exercise this. 14948 14949 2003-12-08 Kevin Ryde <kevin@swox.se> 14950 14951 * demos/perl/GMP.pm: Correction to canonicalize example. 14952 14953 * demos/perl/GMP.xs: New type check scheme, support magic scalars, 14954 support UV when available. Remove some unused local variables. 14955 (coerce_long): Check range of double. 14956 (get_d_2exp): Remove stray printf. 14957 14958 * demos/perl/test.pl: Exercise magic, rearrange to make it clearer 14959 what's being tested. 14960 14961 2003-12-07 Kevin Ryde <kevin@swox.se> 14962 14963 * mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the 14964 convention of N<THRESH for the lower algorithm, not <=. Fixes 14965 algorithm selection in tuneup.c. 14966 14967 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Use intended 14968 align_xp, align_yp. 14969 14970 * tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT, 14971 for the benefit of ASSERT in mpn_mul_n. 14972 14973 * tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should 14974 use MPN_TOOM3_MUL_N_MINSIZE. 14975 14976 * tune/speed.c (check_align_option): Correction to printf format. 14977 * tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable. 14978 14979 * scanf/doscan.c: Correction to a couple of trace printfs. 14980 Add <stdlib.h> for strtol. 14981 14982 * tests/misc/t-scanf.c (test_sscanf_eof_ok): New function. 14983 (check_misc): Use it to suppress tests broken by libc. 14984 And should be EOF rather than -1 in various places. 14985 14986 2003-12-06 Torbjorn Granlund <tege@swox.com> 14987 14988 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): 14989 Move SPEED_TMP_ALLOC_LIMBS invocations out from calls. 14990 14991 * mpn/generic/get_str.c (mpn_get_str, POW2_P case): 14992 Don't append extra '\0' byte. 14993 14994 2003-12-05 Niels Möller <niels@lysator.liu.se> 14995 14996 * tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd): 14997 Updated for the renaming hgcd_sanity -> ASSERT_HGCD. 14998 14999 * mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final 15000 declaration in the declaration section of a block. 15001 15002 * tune/speed.h (mpn_gcd_accel): Added prototype. 15003 15004 2003-12-05 Torbjorn Granlund <tege@swox.com> 15005 15006 * randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions 15007 inside "!=". 15008 15009 * mpf/get_str.c: Remove unused variable "fracn". 15010 15011 2003-12-03 Kevin Ryde <kevin@swox.se> 15012 15013 * configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New 15014 AC_SUBSTs, use them to create .def files with Windows DLLs. 15015 * doc/gmp.texi (Notes for Particular Systems): Update notes on mingw 15016 DLL with MS C. 15017 15018 * mpz/export.c: Allow NULL for countp. 15019 * doc/gmp.texi (Integer Import and Export): Describe this. 15020 Suggested by Jack Lloyd. 15021 15022 * mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code. 15023 Superiority of this reported by Patrick Pelissier. 15024 15025 2003-11-30 Kevin Ryde <kevin@swox.se> 15026 15027 * mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files. 15028 15029 * mpn/alpha/ev67: New directory. 15030 * configure.in (alphaev67, alphaev68, alphaev7*): Use it. 15031 15032 * doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and 15033 pxref, remove macros. 15034 (GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop 15035 and GMPpxreftop. 15036 (Debugging): Remove debauch, seems to have disappeared. 15037 (Language Bindings): Corrections to URLs for CLN, Omni F77, Pike. 15038 15039 2003-11-29 Kevin Ryde <kevin@swox.se> 15040 15041 * demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings 15042 about $#. 15043 15044 * demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible 15045 rounding of 0x7F..FF in a double on 64-bit systems. 15046 15047 * configure.in (ppc601-*-*): Remove this case, it never matched 15048 anything, the name adopted is powerpc601. 15049 (powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601. 15050 15051 * configure.in: Introduce ${cc}_cflags_maybe, used if they work. 15052 (*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode. 15053 15054 * doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list. 15055 (Build Options): Add cpu types alphaev7 and amd64. Update texinfo 15056 html cross reference. 15057 15058 2003-11-28 Niels Möller <nisse@lysator.liu.se> 15059 15060 * tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0. 15061 * tune/speed.c (routine): Likewise. 15062 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise. 15063 15064 * mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c 15065 [GMP_NAIL_BITS]: Disabled new code if we have nails. 15066 15067 * mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed 15068 for compilation with --enable-assert). 15069 15070 * tune/tuneup.c (hgcd_schoenhage_threshold, 15071 gcd_schoenhage_threshold): New variables. 15072 (tune_hgcd, tune_gcd_schoenhage): New functions. 15073 (all): Call tune_hgcd and tune_gcd_schoenhage. 15074 15075 * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) 15076 (speed_mpn_gcd_accel): New functions. 15077 * tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and 15078 mpn_gcd _accel. 15079 * tune/speed.h: Added corresponding prototypes. 15080 15081 * tune/gcd_accel.c: New file. 15082 15083 * tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX. 15084 15085 * tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c. 15086 (TUNE_MPN_SRCS_BASIC): Added hgcd.c. 15087 15088 * mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD) 15089 (GCD_SCHOENHAGE_THRESHOLD): Tuned values. 15090 15091 * mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the 15092 old mpn_gcd function (which implements accelerated binary gcd) to 15093 gcd_binary_odd. 15094 (gcd_binary): New function, with the additional book keeping 15095 needed when using gcd_binary_odd to compute the gcd of non-odd 15096 numbers. 15097 (hgcd_tdiv): New function. 15098 (gcd_lehmer): New function, currently #if:ed out. 15099 (hgcd_start_row_p): New function, duplicated from hgcd.c. 15100 (gcd_schoenhage_itch): New function. 15101 (gcd_schoenhage): New function. 15102 (mpn_gcd): New advertised gcd function, which calls 15103 mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of 15104 the input. 15105 15106 * mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function 15107 (was lehmer_step), and made non-static. Updated callers. 15108 15109 * gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro. 15110 (mpn_hgcd2_lehmer_step): Added prototype. 15111 15112 2003-11-27 Niels Möller <nisse@lysator.liu.se> 15113 15114 * tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we 15115 don't need to forward declare the array. 15116 15117 2003-11-26 Niels Möller <nisse@lysator.liu.se> 15118 15119 * mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition 15120 (the function belongs to hgcd2.c). 15121 15122 2003-11-26 Torbjorn Granlund <tege@swox.com> 15123 15124 * tests/mpz/t-gcd.c: Generate random operands up to 32767 bits; 15125 decrease # of test to 1000. 15126 (gcd_values): Remove oversize test case. 15127 15128 2003-11-26 Niels Möller <niels@lysator.liu.se> 15129 15130 * gmp-impl.h: Added name mangling for hgcd-related functions. Also 15131 use __GMP_PROTO. 15132 (MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c. 15133 * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c: 15134 Adapted to name changes. 15135 15136 * tests/mpz/t-gcd.c (main): Added some tests with non-random 15137 input. 15138 15139 2003-11-25 Niels Möller <nisse@lysator.liu.se> 15140 15141 * gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros. 15142 (struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row) 15143 (struct hgcd): New structs. Also added prototypes for new hgcd, 15144 hgcd2, qstack and gcd functions. 15145 15146 * configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack. 15147 15148 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c, 15149 hgcd.c and qstack.c. 15150 15151 * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c: 15152 New files, needed for the sub-quadratic gcd. 15153 15154 2003-11-25 Kevin Ryde <kevin@swox.se> 15155 15156 * doc/gmp.texi (Language Bindings): Add Axiom. 15157 15158 2003-11-22 Kevin Ryde <kevin@swox.se> 15159 15160 * mpn/alpha/README: More notes on assembler syntax variations. 15161 15162 * mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u 15163 not bis, and move to alpha-defs.m4 since it can be happily used 15164 everywhere. 15165 15166 * mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4 15167 (bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or 15168 HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness. 15169 15170 * mpn/alpha/alpha-defs.m4: New file. 15171 * configure.in (alpha*-*-*): Use it. 15172 15173 2003-11-21 Kevin Ryde <kevin@swox.se> 15174 15175 * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21. 15176 15177 * mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not" 15178 isn't recognised by on Cray Unicos. Add missing "gp" to PROLOGUE. 15179 * mpn/alpha/README: Add a note on "not". 15180 15181 2003-11-19 Torbjorn Granlund <tege@swox.com> 15182 15183 * mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding 15184 spurious reads beyond operand limits. 15185 15186 * mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END. 15187 15188 * mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function. 15189 (mpn_lshift_com): Make static, nailify properly. 15190 15191 2003-11-19 Kevin Ryde <kevin@swox.se> 15192 15193 * mpn/generic/diveby3.c: Use a "q" variable to make it clearer what 15194 the code is doing. 15195 15196 * mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New 15197 files. 15198 15199 * mpn/alpha/ev5/com_n.asm: New file. 15200 15201 * doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide): 15202 New sections by Torbjorn, tweaked by me. 15203 15204 2003-11-17 Torbjorn Granlund <tege@swox.com> 15205 15206 * mpn/powerpc32: Add power4/powerpc970 cycle counts. 15207 Use cmpwi instead of cmpi to placate darwin. 15208 15209 2003-11-15 Kevin Ryde <kevin@swox.se> 15210 15211 * config.guess: Add comments on MacOS "machine" command. 15212 15213 * tests/devel/try.c (main): Use gmp_randinit_default explicitly on 15214 __gmp_rands, since RANDS doesn't allow seeding. 15215 15216 * doc/gmp.texi (Assigning Integers): Remove notes on possible change 15217 to disallow whitespace, this would be an incompatible change and 15218 really can't be made. 15219 (Toom 3-Way Multiplication): Updates for Paul's new code. 15220 15221 * mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put 15222 if/else braces around whole of #if code, for readability. 15223 15224 * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, 15225 refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps 15226 etc. 15227 15228 * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15. 15229 15230 2003-11-14 Torbjorn Granlund <tege@swox.com> 15231 15232 * mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br". 15233 15234 2003-11-13 Torbjorn Granlund <tege@swox.com> 15235 15236 * mpn/alpha/aorslsh1_n.asm: New file. 15237 15238 2003-11-12 Kevin Ryde <kevin@swox.se> 15239 15240 * acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2 15241 assembler, test code by Torbjorn. 15242 * configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback. 15243 15244 * tune/speed.c (main): Use gmp_randinit_default explicitly on 15245 __gmp_rands, since RANDS doesn't allow seeding. 15246 15247 * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12. 15248 15249 * gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to 15250 gmp-impl.h, for use by RANDS. 15251 15252 * mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake. 15253 (.obj): Use test -f and $(CYGPATH_W) as per automake. 15254 15255 2003-11-11 Kevin Ryde <kevin@swox.se> 15256 15257 * configure.in: Make umul and udiv standard-optional objects, rather 15258 than under various extra_functions. 15259 15260 * mpn/pa32/hppa1_1/pa7100/add_n.asm, 15261 mpn/pa32/hppa1_1/pa7100/addmul_1.asm, 15262 mpn/pa32/hppa1_1/pa7100/lshift.asm, 15263 mpn/pa32/hppa1_1/pa7100/rshift.asm, 15264 mpn/pa32/hppa1_1/pa7100/sub_n.asm, 15265 mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels. 15266 15267 * mpf/set_str.c: Don't use memcmp for decimal point testing, just a 15268 loop is enough and avoids any chance of memcmp reading past the end of 15269 the given string. 15270 15271 * randmts.c, randmt.h: New files. 15272 * Makefile.am (libgmp_la_SOURCES): Add them. 15273 * randmt.c: Move seeding to randmts.c, common defines in randmt.h. 15274 * gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed. 15275 * tests/misc.c (tests_rand_start): Use gmp_randinit_default 15276 explicitly, not RANDS. 15277 15278 * mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the 15279 benefit of itanium 2. 15280 * mpn/ia64/gcd_1.asm: Remove own .align 32. 15281 15282 * mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK. 15283 * mpn/ia64/hamdist.asm: Use ALIGN instead of .align. 15284 15285 * acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro. 15286 * configure.in (IA64_PATTERN): Use it. 15287 * mpn/ia64/README: Add notes on gas big endian align problem. 15288 15289 2003-11-10 Torbjorn Granlund <tege@swox.com> 15290 15291 * mpn/ia64/mul_1.asm: Rewrite. 15292 15293 2003-11-08 Torbjorn Granlund <tege@swox.com> 15294 15295 * mpn/x86/aors_n.asm: Align loop to a multiple of 16. Also align 15296 M4_function_n to a multiple of 16, to minimize alignment padding. 15297 Update P6 cycle counts reflecting improvements with new alignment. 15298 15299 2003-11-07 Kevin Ryde <kevin@swox.se> 15300 15301 * gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define. 15302 (ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68. 15303 * longlong.h (count_leading_zeros, count_trailing_zeros): Ditto. 15304 15305 * doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI 15306 system packaging. 15307 (ABI and ISA): Add GNU/Linux ABI=64. 15308 (Binary GCD): Add notes on 1x1 GCD algorithms. 15309 15310 * mpn/alpha/README: Add some literature references. 15311 15312 * mpn/ia64/mode1o.asm: Various corrections to initial checkin. 15313 * mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting. 15314 15315 2003-11-05 Torbjorn Granlund <tege@swox.com> 15316 15317 * mpn/powerpc64/linux64.m4: New file. 15318 * configure.in (POWERPC64_PATTERN): Handle *-*-linux*. 15319 Use linux64.m4. 15320 15321 * mpn/ia64/logops_n.asm: New file. 15322 15323 2003-11-05 Kevin Ryde <kevin@swox.se> 15324 15325 * tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz", 15326 for the benefit of sparc cypress under netbsd 1.6.1. 15327 15328 * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05. 15329 15330 * mpn/alpha/ev5/dive_1.c: New file. 15331 15332 * configure.in (x86_64-*-*): Accept together with amd64-*-*. 15333 15334 * tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers. 15335 * tune/speed.h (CACHE_LINE_SIZE): Amend comments. 15336 15337 2003-11-04 Torbjorn Granlund <tege@swox.com> 15338 15339 * tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd. 15340 15341 2003-11-03 Kevin Ryde <kevin@swox.se> 15342 15343 * mpn/ia64/hamdist.asm: New file. 15344 * mpn/ia64/mode1o.asm: New file. 15345 * mpn/ia64/ia64-defs.m4 (ASSERT): New macro. 15346 15347 * tests/mpz/t-set_d.c (check_2n_plus_1): New test. 15348 15349 2003-11-01 Kevin Ryde <kevin@swox.se> 15350 15351 * mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it 15352 provokes code gen problems on HP cc. 15353 (BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with 15354 BITREV_ULONG. 15355 Fix by Jason Moxham. 15356 15357 * mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to 15358 truncate divisor. Amend stated 750/7400 speeds, and note operands 15359 that give the extremes. 15360 15361 * mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc 15362 3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong. 15363 15364 * mpn/generic/diveby3.c: Show a better style carry handling in the 15365 alternative pipelined sample code. 15366 15367 Revert this, the longlong.h macros need -mpowerpc64: 15368 * acinclude.m4 (GMP_GCC_POWERPC64): New macro. 15369 * configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64 15370 when bad. 15371 15372 2003-10-31 Torbjorn Granlund <tege@swox.com> 15373 15374 * mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a 15375 cycle on POWER4. 15376 15377 * mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems 15378 revealed on Mac OS X. 15379 15380 * mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4. 15381 15382 * mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4. 15383 15384 2003-10-31 Kevin Ryde <kevin@swox.se> 15385 15386 * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31. 15387 15388 * mpn/powerpc64/README: Add subdirectory organisation notes. 15389 15390 * tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc 15391 2.95 with -mcpu=ultrasparc. 15392 15393 * acinclude.m4 (GMP_GCC_POWERPC64): New macro. 15394 * configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64 15395 when bad. 15396 15397 * configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags. 15398 15399 * mpn/ia64/divrem_1.asm, mpn/ia64/gcd_1.asm: Use "C" for comments. 15400 * mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this. 15401 15402 * mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files. 15403 * configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN. 15404 15405 * doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes 15406 for -mshort and PalmOS, now works. 15407 (References): Correction, GMP Square Root proof already there, just 15408 wanting URL from RRRR 4475. 15409 15410 2003-10-29 Kevin Ryde <kevin@swox.se> 15411 15412 * configure.in (sparc*-*-*): Use gcc -m32 when that option works, to 15413 force 32-bit mode on dual 32/64 configurations like GNU/Linux. 15414 (sparc64-*-linux*): Add support for ABI=64. 15415 15416 * mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with 15417 udiv_qrnnd_preinv to avoid warning about shift > type. 15418 15419 * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29. 15420 15421 * tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't 15422 update that, avoids certain g++ 2.96 problems. 15423 15424 * tests/mpn/t-fat.c: New file. 15425 * tests/mpn/Makefile.am (check_PROGRAMS): Add it. 15426 15427 * configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros 15428 for fat.h. 15429 * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead 15430 of memcpy. Correction to location of "initialized" set. Improve 15431 various comments. 15432 15433 2003-10-27 Torbjorn Granlund <tege@swox.com> 15434 15435 * mpn/sparc64/mul_1.asm: Change addcc => add in a few places. 15436 * mpn/sparc64/addmul_1.asm: Likewise. 15437 15438 * mpn/sparc32/v9/mul_1.asm: Apply cross-jumping. 15439 * mpn/sparc32/v9/addmul_1.asm: Likewise. 15440 * mpn/sparc32/v9/submul_1.asm: Likewise. 15441 * mpn/sparc32/v9/sqr_diagonal.asm: Likewise. 15442 15443 2003-10-27 Kevin Ryde <kevin@swox.se> 15444 15445 * tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0) 15446 -mcpu=ultrasparc LONG_MIN is wrong and kills the compile. 15447 15448 * tests/cxx/t-istream.cc: Correction to tellg tests, don't assume 15449 streampos is zero based. 15450 15451 * configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h. 15452 * mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround, 15453 since Cray cc doesn't define __alpha. 15454 15455 * mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility 15456 attribute. 15457 15458 2003-10-25 Kevin Ryde <kevin@swox.se> 15459 15460 * mpn/ia64/gcd_1.asm: New file. 15461 15462 * tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha. 15463 15464 * doc/gmp.texi (C++ Formatted Input): Describe base indicator handling. 15465 15466 * tests/cxx/t-istream.cc: New file. 15467 * tests/cxx/Makefile.am: Add it. 15468 15469 * cxx/ismpznw.cc: New file, integer input without whitespace ... 15470 * cxx/ismpz.cc: ... from here. 15471 * gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype. 15472 * cxx/ismpq.cc: Rewrite using mpz input routines. Change to accept a 15473 separate base indicator on numerator and denominator. Fix base 15474 indicator case where "123/0456" would stop at "123/0". 15475 * Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc. 15476 15477 * tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c 15478 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 15479 15480 * mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and 15481 stack alignment. 15482 * mpn/m68k/README: Add notes on this. 15483 * configure.in (SIZEOF_UNSIGNED): New define in config.m4. 15484 * mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew. 15485 Reported by Patrick Pelissier. 15486 15487 * mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid 15488 deprecation warnings from perl 5.8. 15489 15490 * configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6. 15491 If gcc is to be believed the old C3s don't have cmov. 15492 15493 * Makefile.am: Amend comments about not building from libtool 15494 convenience libraries. 15495 15496 * mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename 15497 in missing EPILOGUE error messages. 15498 (m4_file_seen): Amend comments about where used. 15499 15500 * Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to 15501 ansi2knr rules. 15502 15503 * gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in 15504 applications using g++ -Wold-style-cast. 15505 15506 * mpn/z8000/README: New file. 15507 15508 2003-10-22 Kevin Ryde <kevin@swox.se> 15509 15510 * mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023, 15511 CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism, 15512 and use on Cray Unicos alpha too, which has the same problem. 15513 15514 * configure.in (powerpc64-*-darwin*): Make ABI=32 available as the 15515 final fallback, remove mode64 until we know how it will work. 15516 15517 * doc/gmp.texi (Build Options): Add powerpc970 to available CPUs. 15518 (ABI and ISA): Add mode32 for Darwin. 15519 15520 * configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid 15521 known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on 15522 HP-UX. 15523 15524 * configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for 15525 the default 32-bit ABI. Fixes powerpc64-*-aix* which is documented as 15526 choices "aix64 32" but had "aix64 standard". 15527 15528 * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22. 15529 15530 * doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort 15531 and PalmOS calling conventions not supported. Reported by Patrick 15532 Pelissier. 15533 (References): Add Paul Zimmermann's Inria 4475 paper. 15534 15535 2003-10-21 Torbjorn Granlund <tege@swox.com> 15536 15537 * mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate 15538 Itanium 2 getf.sig latency. 15539 15540 2003-10-21 Kevin Ryde <kevin@swox.se> 15541 15542 * tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n, 15543 mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n. Typo in mpn_preinv_divrem_1 15544 conditional. 15545 15546 2003-10-20 Torbjorn Granlund <tege@swox.com> 15547 15548 * mpn/powerpc64/mode32/add_n.asm: New file. 15549 * mpn/powerpc64/mode32/sub_n.asm: New file. 15550 * mpn/powerpc64/mode32/mul_1.asm: New file. 15551 * mpn/powerpc64/mode32/addmul_1.asm: New file. 15552 * mpn/powerpc64/mode32/submul_1.asm: New file. 15553 15554 2003-10-19 Torbjorn Granlund <tege@swox.com> 15555 15556 * longlong.h (AMD64): __x86_64__ => __amd64__. 15557 (64-bit powerpc): Only define carry-dependent macros if 15558 !_LONG_LONG_LIMB. 15559 15560 * acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*. 15561 15562 * configure.in (POWERPC64_PATTERN): Handle *-*-darwin*. 15563 (POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64. 15564 15565 * mpn/powerpc64/mode64/mul_1.asm: Change cal => addi. 15566 * mpn/powerpc64/mode64/addmul_1.asm: Likewise. 15567 * mpn/powerpc64/mode64/submul_1.asm: Likewise. 15568 * mpn/powerpc64/sqr_diagonal.asm: Likewise. 15569 15570 * mpn/powerpc64/mode64/mul_1.asm: Move from "..". 15571 * mpn/powerpc64/mode64/addmul_1.asm: Likewise. 15572 * mpn/powerpc64/mode64/submul_1.asm: Likewise. 15573 * mpn/powerpc64/mode64/divrem_1.asm: Likewise. 15574 * mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise. 15575 * mpn/powerpc64/mode64/add_n.asm: Likewise. 15576 * mpn/powerpc64/mode64/addsub_n.asm: Likewise. 15577 * mpn/powerpc64/mode64/sub_n.asm: Likewise. 15578 * mpn/powerpc64/mode64/addlsh1_n.asm: Likewise. 15579 * mpn/powerpc64/mode64/diveby3.asm: Likewise. 15580 * mpn/powerpc64/mode64/rsh1add_n.asm: Likewise. 15581 * mpn/powerpc64/mode64/sublsh1_n.asm: Likewise. 15582 15583 * mpn/powerpc64/lshift.asm: Handle mode32 ABI. 15584 * mpn/powerpc64/rshift.asm: Likewise. 15585 * mpn/powerpc64/umul.asm: Likewise. 15586 15587 * tune/powerpc64.asm: Make it actually work. 15588 15589 2003-10-19 Kevin Ryde <kevin@swox.se> 15590 15591 * mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant 15592 comparison bug. 15593 15594 * gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw 15595 std::length_error if size is too big. 15596 * tests/cxx/t-rand.cc (check_randinit): Exercise this. 15597 15598 * mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from 15599 mpn/x86/pentium4/sse2/add_n.asm. 15600 15601 * doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++ 15602 Interface Floats): Note std::invalid_argument exception for invalid 15603 strings to constructors and operator=. 15604 (C++ Interface Random Numbers): Note std::length_error exception for 15605 size too big in gmp_randinit_lc_2exp_size. 15606 15607 2003-10-18 Kevin Ryde <kevin@swox.se> 15608 15609 * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18. 15610 15611 * gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors 15612 and operator= taking string or char*): Throw std::invalid_argument if 15613 string cannot be converted. 15614 * tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this. 15615 15616 * cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale 15617 ctype facet for isspace when available. Only accept space at the 15618 start of the input, same as g++ libstdc++. Use ASSERT_NOCARRY to 15619 check result of mpz_set_str etc. 15620 * cxx/ismpf.cc: Don't accept "@" for exponent indicator. 15621 15622 * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove 15623 _open and _mpn variants of mpn_toom3_mul_n, only one style now. 15624 * tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files. 15625 15626 * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro. 15627 (udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it. 15628 15629 * tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character 15630 constants, hex is an ANSI-ism. 15631 15632 * mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per 15633 mpn/generic/mode1o.c. 15634 15635 * mpn/generic/diveby3.c: Add commented out alternative code and notes 15636 for taking the multiply off the dependent chain. Amend/clarify some 15637 of the other comments. 15638 15639 * configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available. 15640 (powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not 15641 available. 15642 15643 * doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not 15644 supported. 15645 (C++ Formatted Input, C++ Formatted Output): Cross reference class 15646 interface on overloading. 15647 15648 * mpn/m68k/README: Add various ideas from doc/tasks.html. 15649 15650 * mpn/m88k/README: New file. 15651 15652 2003-10-16 Torbjorn Granlund <tege@swox.com> 15653 15654 * config.sub: Recognize powerpc970. 15655 15656 2003-10-15 Torbjorn Granlund <tege@swox.com> 15657 15658 * config.guess: Recognize powerpc970 under MacOS. 15659 15660 2003-10-15 Kevin Ryde <kevin@swox.se> 15661 15662 * configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test. 15663 * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro. 15664 (udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it. 15665 15666 * mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE. 15667 * configure.in (amd64-*-*): Use it. 15668 * mpn/amd64/addlsh1_n.asm: Add ALIGN(16). 15669 15670 * mpfr/*: Update to mpfr cvs 2003-10-15. 15671 15672 * mpn/generic/get_d.c: Rewrite, simplifying and truncating towards 15673 zero unconditionally. 15674 * tests/mpn/t-get_d.c: Add various further tests. 15675 * gmp-impl.h (FORCE_DOUBLE): New macro. 15676 15677 * gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into 15678 C++ mangled function names. 15679 15680 * doc/gmp.texi (Build Options): Update notes for new doc subdir. 15681 (Low-level Functions): Note mpn functions don't check for zero limbs 15682 etc, it's up to an application to strip. 15683 15684 * doc/configuration (Configure): mdate-sh now in doc subdir, add 15685 generated fat.h. 15686 15687 2003-10-14 Torbjorn Granlund <tege@swox.com> 15688 15689 * mpn/ia64/lorrshift.asm: Rewrite. 15690 15691 * mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints. 15692 15693 2003-10-13 Torbjorn Granlund <tege@swox.com> 15694 15695 * mpn/ia64/diveby3.asm: New file. 15696 15697 2003-10-13 Kevin Ryde <kevin@swox.se> 15698 15699 * mpn/powerpc32/mod_34lsub1.asm: New file. 15700 15701 * mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in 15702 second operand of mullw, to allow possible early-out, which the 15703 0xAA..AB inverse cannot give. This improvement noticed by Torbjorn. 15704 15705 * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether 15706 local label is purely temporary or appears in object files, for 15707 development purposes. 15708 15709 * doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved 15710 from top-level. 15711 * doc/Makefile.am: New file. 15712 * configure.in (AC_OUTPUT): Add doc/Makefile. 15713 * Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST. 15714 (info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am. 15715 * mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir. 15716 (TEXINFO_TEX): texinfo.tex now in doc subdir. 15717 (AM_MAKEINFOFLAGS): Set -I to doc subdir. 15718 15719 * mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as 15720 UNLIKELY. 15721 15722 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test 15723 for high zero limbs. 15724 15725 2003-10-12 Torbjorn Granlund <tege@swox.com> 15726 15727 * mpn/powerpc64/diveby3.asm: New file (trivial edits of 15728 powerpc32/diveby3.asm). 15729 15730 * mpn/powerpc32/diveby3.asm: Update cycle counts with more processors. 15731 * mpn/powerpc32/sqr_diagonal.asm: Likewise. 15732 15733 * mpn/pa64/add_n.asm: Correct PA8500 cycle counts. 15734 * mpn/pa64/sub_n.asm: Likewise. 15735 15736 * mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo. 15737 * mpn/m68k/lshift.asm: Likewise. 15738 * mpn/m68k/rshift.asm: Likewise. 15739 15740 * mpn/m68k/README: Correct an URL; add some STATUS comments. 15741 15742 * mpn/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well. 15743 15744 * mpn/powerpc32/addlsh1_n.asm: New file. 15745 * mpn/powerpc32/sublsh1_n.asm: New file. 15746 15747 2003-10-12 Kevin Ryde <kevin@swox.se> 15748 15749 * mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files. 15750 * mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32, 15751 invert_half_limb, udiv_qrnnd_half_preinv): New macros. 15752 15753 * gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit, 15754 so as not to depend on signed right shifts being arithmetic. 15755 15756 * mpn/powerpc32/diveby3.asm: New file. 15757 15758 * mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from 15759 udiv_qrnnd_preinv about shift count when int<long. Do the same with 15760 udiv_qrnnd, for consistency. 15761 15762 * Makefile.am (install-data-hook): Print a warning recommending "make 15763 check" to watch out for compiler bugs. Proposed by Torbjorn. 15764 15765 * mpn/ia64/README (mpn_lshift, mpn_rshift): Amend prospective itanium2 15766 speed, 0.75 c/l with shrp plus shl/shr. 15767 15768 * mpn/ia64/popcount.asm: Add comment on optimality. 15769 15770 2003-10-11 Torbjorn Granlund <tege@swox.com> 15771 15772 * mpn/ia64/rsh1aors_n.asm: New file. 15773 15774 * mpn/asm-defs.m4: Handle rsh1aors_n. 15775 15776 * configure.in (tmp_mulfunc): Handle rsh1aors_n. 15777 15778 2003-10-11 Kevin Ryde <kevin@swox.se> 15779 15780 * mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory 15781 access for 0xAAAAAAAB constant. 15782 15783 * gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm 15784 versions using ctpop. 15785 15786 * mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description 15787 and M4_desc_retval used only in comments. 15788 15789 * mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1. 15790 15791 2003-10-09 Torbjorn Granlund <tege@swox.com> 15792 15793 * mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed. 15794 * mpn/powerpc64/sublsh1_n.asm: Likewise. 15795 15796 2003-10-09 Kevin Ryde <kevin@swox.se> 15797 15798 * mpfr/*: Update to mpfr cvs 2003-10-09. 15799 15800 * tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on 15801 systems which use that, eg. hpux 9. 15802 15803 2003-10-07 Kevin Ryde <kevin@swox.se> 15804 15805 * tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf change. 15806 15807 * configure.in: Check for psp_iticksperclktick in struct pst_processor. 15808 * tune/freq.c (freq_pstat_getprocessor): Use this. 15809 15810 * tests/devel/try.c (divisor_array): Add a couple of half-limb values. 15811 15812 * acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to 15813 set result "yes" when cross compiling. 15814 15815 2003-10-06 Torbjorn Granlund <tege@swox.com> 15816 15817 * mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of 15818 mpn_add_1 and mpn_sub_1. 15819 15820 * mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code. 15821 15822 2003-10-05 Torbjorn Granlund <tege@swox.com> 15823 15824 * mpn/pa64/mul_1.asm: Misc comment cleanups. 15825 * mpn/pa64/addmul_1.asm: Likewise. 15826 * mpn/pa64/submul_1.asm: Likewise. 15827 15828 * mpn/pa64/README: Correct cycle counts. 15829 15830 * mpn/pa64/aorslsh1_n.asm: New file. 15831 15832 2003-10-04 Kevin Ryde <kevin@swox.se> 15833 15834 * tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo, 15835 freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of 15836 MHz etc at end of sscanf format string. In particular need this for 15837 freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used 15838 for the frequency. 15839 15840 * tests/misc.c, tests/tests.h (tests_setjmp_sigfpe, 15841 tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target, 15842 tests_dbl_mant_bits): New. 15843 15844 * configure.in (viac3*-*-*): Add gcc VIA c3 options. 15845 15846 * mpfr/*: Update to mpfr cvs 2003-10-04. 15847 15848 * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, 15849 refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps. 15850 * tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n, 15851 refmpn_rsh1sub_n): Add prototypes. 15852 15853 * tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n, 15854 mpn_rsh1add_n, mpn_rsh1sub_n. 15855 15856 2003-10-03 Torbjorn Granlund <tege@swox.com> 15857 15858 * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n, 15859 refmpn_rsh1sub_n): New functions. 15860 15861 2003-10-03 Paul Zimmermann <Paul.Zimmermann@loria.fr> 15862 15863 * mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1 15864 instead of MPN_INCR_/MPN_DECR_U. 15865 15866 2003-10-02 Torbjorn Granlund <tege@swox.com> 15867 15868 * configure.in (ia64*-*-hpux*): Fall back to +O1, not +O. 15869 15870 2003-10-02 Kevin Ryde <kevin@swox.se> 15871 15872 * configure.in (ia64*-*-hpux*): For cc, let +O optimization level 15873 fallback if +O3 doesn't work. 15874 15875 * acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca 15876 when available, to pick up Itanium HP-UX cc internal errors in +O2. 15877 Provoking code by Torbjorn. 15878 15879 2003-10-01 Torbjorn Granlund <tege@swox.com> 15880 15881 * mpn/ia64/gmp-mparam.h: Retune. 15882 15883 * mpn/asm-defs.m4: Handle aorslsh1_n. 15884 15885 * configure.in (tmp_mulfunc): Handle aorslsh1_n. 15886 15887 * mpn/ia64/aorslsh1_n.asm: New file. 15888 15889 * mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and 15890 mpn_sub_n. 15891 * mpn/ia64/add_n.asm: Replace by aors_n.asm. 15892 * mpn/ia64/sub_n.asm: Replace by aors_n.asm. 15893 15894 2003-10-01 Kevin Ryde <kevin@swox.se> 15895 15896 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a 15897 separate case and consider it non-IEEE, since it looks like this is 15898 due to some sort of restricted or incorrect software floats. 15899 15900 * demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in 15901 separate objdir now. 15902 15903 * cxx/dummy.cc: Moved from top-level dummy.cc. 15904 * Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc, 15905 correction to comment about this. 15906 15907 2003-09-30 Torbjorn Granlund <tege@swox.com> 15908 15909 * demos/pexpr.c: Correct documentation of -split. 15910 (TIME): Remove cast of result to double. 15911 (main): Change timing variables to int. 15912 (main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than 15913 100000 digits. 15914 15915 2003-09-28 Torbjorn Granlund <tege@swox.com> 15916 15917 * mpn/*/*.asm: Clean up spacing, tabify. 15918 15919 * mpn/alpha/rshift.asm: Table cycle counts. 15920 * mpn/alpha/lshift.asm: Likewise. 15921 * mpn/alpha/ev5/rshift.asm: Likewise. 15922 * mpn/alpha/ev5/lshift.asm: Likewise. 15923 * mpn/alpha/ev6/add_n.asm: Likewise. 15924 * mpn/alpha/ev6/sub_n.asm: Likewise. 15925 15926 * mpn/ia64/lorrshift.asm: Amend comments about performance. 15927 15928 * mpn/pa64/mul_1.asm: Fix comment typo. 15929 * mpn/pa64/addmul_1.asm: Likewise. 15930 * mpn/pa64/submul_1.asm: Likewise. 15931 15932 * mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break 15933 recurrency. Add remarks about possible further speedup. 15934 * mpn/amd64/sublsh1_n.asm: Likewise. 15935 15936 * mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup. 15937 * mpn/amd64/rsh1sub_n.asm: Likewise. 15938 15939 2003-09-27 Torbjorn Granlund <tege@swox.com> 15940 15941 * mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info. 15942 15943 * mpn/powerpc64/rsh1add_n.asm: New file. 15944 * mpn/powerpc64/rsh1sub_n.asm: New file. 15945 * mpn/powerpc64/rshift.asm: Rewrite. 15946 * mpn/powerpc64/lshift.asm: Rewrite. 15947 15948 2003-09-26 Torbjorn Granlund <tege@swox.com> 15949 15950 * mpn/powerpc64/addlsh1_n.asm: New file. 15951 * mpn/powerpc64/sublsh1_n.asm: New file. 15952 15953 2003-09-25 Torbjorn Granlund <tege@swox.com> 15954 15955 * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n, 15956 speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on 15957 corresponding HAVE_NATIVE_*. 15958 15959 2003-09-25 Kevin Ryde <kevin@swox.se> 15960 15961 * mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB. 15962 15963 * demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and 15964 mpfr_number_p merely returning non-zero, rather than 1 or 0. 15965 15966 * demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta. 15967 15968 * demos/expr/Makefile.am (LDADD): Update comments on $(LIBM). 15969 15970 2003-09-24 Torbjorn Granlund <tege@swox.com> 15971 15972 * tune/speed.c (routine): Add entries for mpn_addlsh1_n, mpn_sublsh1_n, 15973 mpn_rsh1add_n, and mpn_rsh1sub_n. 15974 15975 * tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n, 15976 speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n. 15977 15978 * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n, 15979 speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions. 15980 15981 * gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and 15982 mpn_rsh1sub_n. 15983 15984 * mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n, 15985 rsh1add_n, and rsh1sub_n. 15986 15987 * mpn/powerpc64/*.asm: Add cycle counts in consistent style. Misc 15988 styling edits. 15989 15990 * mpn/amd64/gmp-mparam.h: Retune. 15991 15992 * configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n, 15993 HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n, 15994 HAVE_NATIVE_mpn_rsh1sub_n. 15995 (gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n, 15996 and rsh1sub_n. 15997 15998 * mpn/amd64/addlsh1_n.asm: New file. 15999 * mpn/amd64/sublsh1_n.asm: New file. 16000 * mpn/amd64/rsh1add_n.asm: New file. 16001 * mpn/amd64/rsh1sub_n.asm: New file. 16002 16003 2003-09-24 Kevin Ryde <kevin@swox.se> 16004 16005 * mpfr/*: Update to mpfr cvs 2003-09-24. 16006 16007 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files. 16008 16009 2003-09-23 Torbjorn Granlund <tege@swox.com> 16010 16011 * gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128. 16012 16013 2003-09-23 Kevin Ryde <kevin@swox.se> 16014 16015 * gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const. 16016 16017 2003-09-22 Torbjorn Granlund <tege@swox.com> 16018 16019 * tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define. 16020 * tune/mul_n_open.c (__gmpn_sqr_n): New #define. 16021 16022 * mpn/generic/mul.c (mpn_sqr_n): Move from here... 16023 * mpn/generic/mul_n.c (mpn_sqr_n): ...to here. 16024 (mpn_sqr_n): Allocate workspace for toom3 using TMP_* mechanism except 16025 for very large operands when !WANT_FFT. 16026 16027 * mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes. 16028 16029 * mpn/generic/mul.c: Remove spurious #include <stdio.h>. 16030 16031 * mpn/x86/k7/gmp-mparam.h: Retune. 16032 16033 * mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using 16034 TMP_* mechanism except for very large operands when !WANT_FFT. 16035 16036 * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): 16037 Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n. 16038 (MPN_TOOM3_MAX_N): New #define. 16039 16040 * mpn/amd64/gmp-mparam.h: Retune. 16041 16042 * mpn/Makefile.am (TARG_DIST): Add amd64. 16043 16044 * mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available. 16045 16046 * mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros. 16047 16048 2003-09-22 Kevin Ryde <kevin@swox.se> 16049 16050 * mpfr/*: Update to mpfr cvs 2003-09-22. 16051 16052 2003-09-21 Kevin Ryde <kevin@swox.se> 16053 16054 * mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1, 16055 USE_PREINV_MOD_1): Set to 1 for new asm versions. 16056 16057 * mpfr/*: Update to mpfr cvs 2003-09-21. 16058 16059 2003-09-21 Paul Zimmermann <Paul.Zimmermann@loria.fr> 16060 16061 * mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use 16062 mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to 16063 mpn_addlsh1_n. Avoid all copying, at the expense of some additional 16064 workspace. 16065 16066 * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accommodate 16067 latest toom3 code. 16068 16069 2003-09-19 Kevin Ryde <kevin@swox.se> 16070 16071 * mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm: 16072 New files. 16073 16074 2003-09-16 Kevin Ryde <kevin@swox.se> 16075 16076 * tune/speed.c (run_one): Don't scale the -1.0 not-available return. 16077 Print "n/a" for times not-available. 16078 16079 2003-09-13 Paul Zimmermann <Paul.Zimmermann@loria.fr> 16080 16081 * mpn/generic/mul_n.c (toom3_interpolate): New function. 16082 (mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate. 16083 16084 2003-09-12 Torbjorn Granlund <tege@swox.com> 16085 16086 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused 16087 variables. 16088 (mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last 16089 MPN_DECR_U calls. 16090 16091 2003-09-12 Paul Zimmermann <Paul.Zimmermann@loria.fr> 16092 16093 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite. 16094 16095 2003-09-12 Torbjorn Granlund <tege@swox.com> 16096 16097 * gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate 16098 to use the same form as MPN_TOOM3_MUL_N_TSIZE. 16099 (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3 16100 code requirements. 16101 * mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove. 16102 (USE_MORE_MPN): Remove. 16103 16104 2003-08-31 Kevin Ryde <kevin@swox.se> 16105 16106 * mpfr/*: Update to mpfr cvs 2003-08-31. 16107 16108 2003-08-30 Kevin Ryde <kevin@swox.se> 16109 16110 * mpfr/*: Update to mpfr cvs 2003-08-30. 16111 16112 2003-08-29 Torbjorn Granlund <tege@swox.com> 16113 16114 * mpn/amd64/copyi.asm: New file. 16115 * mpn/amd64/copyd.asm: New file. 16116 * mpn/amd64/README: New file. 16117 16118 2003-08-28 Torbjorn Granlund <tege@swox.com> 16119 16120 * mpn/amd64/lshift.asm: New file. 16121 * mpn/amd64/rshift.asm: New file. 16122 * mpn/amd64/gmp-mparam.h: Retune. 16123 16124 2003-08-23 Kevin Ryde <kevin@swox.se> 16125 16126 * tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value 16127 established. 16128 16129 * mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return 16130 exactness indication, can get that from testing the remainder. 16131 16132 * mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments 16133 about loads and stores and what speed should be possible. 16134 16135 2003-08-22 Torbjorn Granlund <tege@swox.com> 16136 16137 * mpn/amd64/add_n.asm: New file. 16138 * mpn/amd64/sub_n.asm: New file. 16139 * mpn/amd64/mul_1.asm: New file. 16140 * mpn/amd64/addmul_1.asm: New file. 16141 * mpn/amd64/submul_1.asm: New file. 16142 16143 2003-08-19 Kevin Ryde <kevin@swox.se> 16144 16145 * longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main 16146 __GNUC__ block. Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since 16147 these forms are only for ABI=2.0w. 16148 16149 * longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to 16150 avoid bfffo on GCC 3.4 in CPU32 mode. Reported by Bernardo Innocenti. 16151 16152 * longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force 16153 64-bit register destination. Pointed out by Torbjorn. 16154 16155 * mpz/combit.c: Correction to carry handling when extending a 16156 negative, and use __GMPN_ADD_1. Correction to complement limb for a 16157 negative when there's a non-zero low limb. 16158 * tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these. 16159 16160 * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add 16161 get_d_2exp. 16162 * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm, 16163 demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui. 16164 (GMP::Rand::randstate): Accept a randstate object to copy. 16165 * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm, 16166 demos/perl/test.pl: Add combit, rootrem. 16167 16168 2003-08-19 Torbjorn Granlund <tege@swox.com> 16169 16170 * tune/Makefile.am (EXTRA_DIST): Add amd64.asm. 16171 16172 2003-08-17 Kevin Ryde <kevin@swox.se> 16173 16174 * gmpxx.h [__MPFR_H]: Include full <iostream> for inlines. 16175 * tests/cxx/t-headfr.cc: New file, exercising this. 16176 * tests/cxx/Makefile.am: Add it. 16177 16178 * tests/cxx/t-constr.cc: Include config.h for WANT_MPFR. 16179 16180 * gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment. 16181 Reported by Derrick Bass. 16182 * tests/cxx/t-assign.cc (check_mpfr): Exercise this. 16183 16184 * configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of 16185 tests/cxx/t-*.cc. (Was always meant to have been defined.) 16186 * tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr. 16187 16188 * gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode 16189 (struct __gmp_hypot_function): Correction to mpfr_hypot addition. 16190 * tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long 16191 tests. 16192 16193 2003-08-16 Torbjorn Granlund <tege@swox.com> 16194 16195 * configure.in (amd64): New. 16196 16197 * mpn/amd64/gmp-mparam.h: New file. 16198 16199 * tune/amd64.asm: New file, derived in part from tune/pentium.asm. 16200 16201 2003-08-15 Kevin Ryde <kevin@swox.se> 16202 16203 * tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2. 16204 (freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too. 16205 16206 2003-08-14 Kevin Ryde <kevin@swox.se> 16207 16208 * mpq/get_d.c: Use mpn_get_d. 16209 * tests/mpq/t-get_d.c (check_onebit): New test. 16210 16211 * gmp.texi (Notes for Particular Systems): Under x86 cpu types, note 16212 i386 is a fat binary, remove pentium4 recommendation since i386 is now 16213 quite reasonable for p4. 16214 (Notes for Particular Systems): Under Windows DLLs, remove caveat 16215 about --enable-cxx now ok, update .lib creation for new libtool, 16216 remove .exp not needed for MS C. 16217 (Notes for Package Builds): i386 is a fat binary. 16218 (Reentrancy): Remove SCO ctype.h note, don't want to list every system 16219 misfeature, and was quite possibly for non-threading mode anyway. 16220 (Autoconf): Remove notes on gmp 2 detection, too old to want to 16221 encourage anyone to use. 16222 (Karatsuba Multiplication): Correction to threshold increase/decrease 16223 for a and b terms. Reported by Richard Brent and Paul Zimmermann. 16224 Also add various further index entries. 16225 16226 * tune/freq.c (freq_attr_get_invent): New function. 16227 (freq_irix_hinv): Remove, in favour or freq_attr_get_invent. 16228 * configure.in (AC_CHECK_FUNCS): Add attr_get. 16229 (AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h. 16230 16231 2003-08-03 Kevin Ryde <kevin@swox.se> 16232 16233 * tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT. 16234 16235 2003-08-02 Kevin Ryde <kevin@swox.se> 16236 16237 * mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF 16238 problem systems. 16239 16240 * configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no, 16241 since libtool no longer uses it. This was a workaround fixing ctype.h 16242 in SCO 5 shared libraries; not sure if libtool now gets it right on 16243 its own, let's hope so. 16244 16245 * configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no 16246 longer demands HOST_CC. 16247 16248 * configure.in: When C or C++ compiler not found, refer user to 16249 config.log. 16250 16251 * configure.in (i386-*-*): Turn i386 into a fat binary build. 16252 * mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm, 16253 mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c: 16254 New files. 16255 * gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure. 16256 * longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define. 16257 * mpn/asm-defs.m4 (foreach): New macro. 16258 * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define. 16259 * mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat 16260 binaries. 16261 * mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments 16262 about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx. 16263 16264 * configure.in: Add various supports for fat binaries, via fat_path, 16265 fat_functions and fat_thresholds variables. 16266 * acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too. 16267 (GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros. 16268 * gmp-impl.h: Add various supports for fat binaries. 16269 (DECL_add_n etc): New macros. 16270 (mpn_mul_basecase etc): Define only if not already defined. 16271 * mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary. 16272 (MPN): Use m4_unquote, for the benefit of fat binary name expansion. 16273 * doc/configuration: Notes on fat binaries. 16274 * gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always. 16275 (MUL_KARATSUBA_THRESHOLD_LIMIT): New define. 16276 * mpn/generic/mul.c, mpn/generic/mul_n.c: Use these. 16277 * tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c, 16278 tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to 16279 tell fat.h what's being done. 16280 16281 * config.guess (alpha-*-*): Update comments on what configfsf.guess 16282 does and doesn't do for us. 16283 16284 2003-07-31 Kevin Ryde <kevin@swox.se> 16285 16286 * config.guess: Remove $dummy.o files everywhere, in case vendor 16287 compilers produce that even when not asked. 16288 16289 * demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to 16290 avoid C++ keyword. 16291 (coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining 16292 about uninitialized variables. 16293 16294 * demos/perl/INSTALL: Add notes on building with a DLL. 16295 16296 * longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination 16297 is a 64-bit register. Diagnosed by Francois G. Dorais. 16298 16299 2003-07-31 Torbjorn Granlund <tege@swox.com> 16300 16301 * longlong.h [ppc]: Remove nested test for vxworks. 16302 16303 2003-07-24 Kevin Ryde <kevin@swox.se> 16304 16305 * gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for 16306 mpz*long and long*mpz. 16307 * tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong. 16308 16309 * cxx/ismpf.cc: Use std::locale decimal point when available. Expect 16310 localeconv available always. 16311 * tests/cxx/t-locale.cc: Enable check_input tests. 16312 16313 * gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot. 16314 * tests/cxx/t-misc.cc (check_mpfr_hypot): New tests. 16315 16316 * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc, 16317 tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: 16318 Include config.h for WANT_MPFR. 16319 16320 * tests/mpz/bit.c (check_single): Correction to a diagnostic print. 16321 16322 2003-07-24 Niels Möller <nisse@lysator.liu.se> 16323 16324 * mpz/combit.c: New file. 16325 * Makefile.am, mpz/Makefile.am: Add it. 16326 * gmp-h.in (mpz_combit): Add prototype. 16327 * tests/mpz/bit.c (check_single): Exercise mpz_combit. 16328 16329 2003-07-16 Kevin Ryde <kevin@swox.se> 16330 16331 * mpn/generic/get_d.c: Correction to infinity handling for large exp. 16332 16333 2003-07-14 Kevin Ryde <kevin@swox.se> 16334 16335 * mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use 16336 mpn_get_d. 16337 16338 * mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c. 16339 * configure.in, mpn/Makefile.am: Add it. 16340 * gmp-impl.h (mpn_get_d): Add prototype. 16341 16342 * tests/mpn/t-get_d.c: New file. 16343 * tests/mpn/Makefile.am: Add it. 16344 16345 * tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives. 16346 (check_onebit): Add a few more bit sizes. 16347 16348 * tests/misc.c, tests/tests.h (tests_isinf): New function. 16349 16350 2003-07-12 Kevin Ryde <kevin@swox.se> 16351 16352 * configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as 16353 automake does in the actual build. 16354 16355 * acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare 16356 namespace before trying to use. In std iostream test, provoke a 16357 failure from Compaq C++ in pre-standard mode. 16358 16359 2003-07-08 Kevin Ryde <kevin@swox.se> 16360 16361 * acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various 16362 known problems, and indicate to the user the reason for rejecting. 16363 (GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each 16364 compiled program. 16365 16366 2003-07-05 Kevin Ryde <kevin@swox.se> 16367 16368 * config.sub: Add comments to our alias transformations. 16369 16370 * configfsf.sub, configfsf.guess: Update to 2003-07-04. 16371 16372 * acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show 16373 failing program in config.log, per other autoconf tests. 16374 16375 * configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub. 16376 16377 2003-06-28 Kevin Ryde <kevin@swox.se> 16378 16379 * mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round 16380 upwards. 16381 16382 * tests/mpz/t-get_d_2exp.c: New file. 16383 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 16384 * tests/mpf/t-get_d_2exp.c: New file. 16385 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 16386 * tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New 16387 functions. 16388 * tests/misc.c, tests/tests.h (tests_hardware_getround, 16389 tests_hardware_setround): New functions. 16390 16391 2003-06-25 Kevin Ryde <kevin@swox.se> 16392 16393 * mpn/sparc64/dive_1.c: New file. 16394 16395 * mpn/sparc64/sparc64.h: New file. 16396 * mpn/sparc64/mode1o.c: Remove things now in sparc64.h. 16397 16398 * mpfr/*: Update to mpfr cvs 2003-06-25. 16399 16400 * acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro 16401 gcc, don't use ANSI style function definition. 16402 16403 2003-06-22 Kevin Ryde <kevin@swox.se> 16404 16405 * mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend, 16406 handled by PROLOGUE and EPILOGUE. Comment out .callinfo, per other 16407 asm files. 16408 16409 * gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix 16410 long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN. 16411 (mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend. 16412 * tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging 16413 operator/ and operator% sections for clarity. 16414 16415 2003-06-21 Kevin Ryde <kevin@swox.se> 16416 16417 * mpfr/*: Update to mpfr cvs 2003-06-21. 16418 16419 * acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an 16420 ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6. 16421 * configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for 16422 this compiler. 16423 16424 * gmpxx.h (get_d): Remove comments about long double, double is 16425 correct for get_d, a future long double form would be get_ld. 16426 16427 2003-06-19 Kevin Ryde <kevin@swox.se> 16428 16429 * mpfr/*: Update to mpfr cvs 2003-06-19. 16430 16431 * mpn/generic/dive_1.c: Share src[0] fetch among all cases. No need 16432 for separate final umul_ppmm in even case, make it part of the loop. 16433 16434 * mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify. 16435 16436 * mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this 16437 nailifies it. 16438 * tests/mpf/t-set_si.c: Nailify tests. 16439 16440 * mpf/iset_ui.c: Nailify, as per mpf/set_ui.c 16441 * tests/mpf/t-set_ui.c: New file. 16442 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 16443 16444 2003-06-15 Kevin Ryde <kevin@swox.se> 16445 16446 * mpfr/*: Update to mpfr cvs 2003-06-15. 16447 16448 * mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT. 16449 16450 2003-06-12 Kevin Ryde <kevin@swox.se> 16451 16452 * configure.in (--enable-assert): Emit WANT_ASSERT to config.m4. 16453 * mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check 16454 WANT_ASSERT is defined. 16455 16456 * mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9. 16457 16458 * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack, 16459 discard error messages from cp, for the benefit of --disable-shared or 16460 systems not using names libgmp.so.*. 16461 16462 * tests/devel/try.c (try_one): When overlapping, copy source data 16463 after filling dst. Previously probably used only DEADVAL in 16464 overlapping cases. 16465 16466 2003-06-11 Torbjorn Granlund <tege@swox.com> 16467 16468 * mpf/random2.c: Rewrite. Ignore sign of exp parameter. 16469 16470 2003-06-10 Kevin Ryde <kevin@swox.se> 16471 16472 * mpn/sparc64/mode1o.c: New file. 16473 16474 2003-06-09 Torbjorn Granlund <tege@swox.com> 16475 16476 * mpn/powerpc32/lshift.asm: Add more cycle counts. 16477 * mpn/powerpc32/rshift.asm: Add more cycle counts. 16478 16479 * mpn/ia64/addmul_1.asm: Reformat comments for 80 columns. 16480 16481 * gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv. 16482 (udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm. 16483 (udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2 16484 the default. 16485 * tune/speed.c: Corresponding changes. 16486 * tune/speed.h: Likewise. 16487 * tune/common.c: Likewise. 16488 16489 * mpf/get_str.c: Simplify `off' computation. 16490 16491 * longlong.h: Tabify. 16492 16493 2003-06-09 Kevin Ryde <kevin@swox.se> 16494 16495 * gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to 16496 cover all flavours. 16497 * configure.in: Ditto in some comments. 16498 16499 * mpfr/*: Update to mpfr cvs 2003-06-09. 16500 16501 * tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for 16502 the benefit of gcc 3.2 on itanium2-hp-hpux11.22. 16503 16504 * tune/many.pl (mul_2): Add speed routine settings. 16505 (MAKEFILE): Close when done, for the benefit of development hackery. 16506 16507 2003-06-08 Kevin Ryde <kevin@swox.se> 16508 16509 * mpfr/*: Update to mpfr cvs 2003-06-08. 16510 16511 * mpn/x86/x86-defs.m4 (femms): Remove fallback to emms. 16512 (cmovCC, psadbw): Remove simulated versions. 16513 (cmov_available_p, psadbw_available_p): Remove. 16514 This trickery was only ever for development purposes on machines 16515 without those instructions. Removing it simplifies gmp and in 16516 particular avoids complications for fat binary builds. Development 16517 can be done with a wrapper around "as" if really needed. 16518 16519 * mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own 16520 mpn/x86/k6/divrem_1.asm. Amend K6 comments now moved to there. 16521 * mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used. 16522 16523 * mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm. 16524 16525 * mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm. 16526 16527 * mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch 16528 prediction. Put done_zero at end for less wastage in alignment. Use 16529 decl+jnz unconditionally since in fact it's ok on k6. Amend comments. 16530 16531 2003-06-07 Kevin Ryde <kevin@swox.se> 16532 16533 * mpn/generic/mode1o.c: Fix ASSERTs on return value. 16534 16535 * gmp.texi (Build Options): Add viac3 and viac32 cpu types. 16536 (ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed. More indexing. 16537 16538 * configfsf.guess, configfsf.sub: Update to 2003-06-06. 16539 * config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed 16540 by new configfsf.guess. 16541 16542 2003-06-06 Torbjorn Granlund <tege@swox.com> 16543 16544 * mpn/ia64/submul_1.asm: Add branch over .align block. 16545 16546 2003-06-05 Torbjorn Granlund <tege@swox.com> 16547 16548 * longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0. 16549 Allow more immediate operands. 16550 (sub_ddmmss) [pa64]: Likewise. 16551 (add_ssaaaa) [pa32]: Likewise. 16552 (sub_ddmmss) [pa32]: Likewise. 16553 16554 * mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please 16555 picky GNU assembler. 16556 16557 2003-06-05 Kevin Ryde <kevin@swox.se> 16558 16559 * gmp.texi (Integer Special Functions): In mpz_array_init, fix type 16560 shown for integer_array and give an example use. 16561 16562 2003-06-04 Torbjorn Granlund <tege@swox.com> 16563 16564 * mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on 16565 alpha. 16566 16567 2003-06-03 Kevin Ryde <kevin@swox.se> 16568 16569 * mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings. 16570 16571 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test 16572 program, hex is not supported by K&R. 16573 16574 2003-06-02 Torbjorn Granlund <tege@swox.com> 16575 16576 * mpn/mips64/divrem_1.asm: New file. 16577 16578 2003-06-01 Torbjorn Granlund <tege@swox.com> 16579 16580 * mpn/powerpc32/lshift.asm: Reformat code. 16581 * mpn/powerpc32/rshift.asm: Reformat code. 16582 16583 2003-05-30 Kevin Ryde <kevin@swox.se> 16584 16585 * tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to 16586 avoid any chance of losing output on segv etc. 16587 16588 2003-05-28 Torbjorn Granlund <tege@swox.com> 16589 16590 * mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE. 16591 Remove redundant variable prec. 16592 16593 2003-05-26 Torbjorn Granlund <tege@swox.com> 16594 16595 * tests/mpz/convert.c: Test bases up to 62. 16596 16597 * tests/mpf/t-conv.c: Test bases up to 62. 16598 16599 * demos/pexpr.c: Don't iterate to get accurate timing. 16600 16601 * mpf/set_str.c (mpn_pow_1_highpart): Cleanup. 16602 16603 * mp_dv_tab.c: Fix typo. 16604 16605 * mpf/get_str.c: Rewrite (now sub-quadratic). 16606 16607 2003-05-22 Kevin Ryde <kevin@swox.se> 16608 16609 * tests/mpn/t-divrem_1.c: New file. 16610 * tests/mpn/Makefile.am: Add it. 16611 16612 2003-05-22 Torbjorn Granlund <tege@swox.com> 16613 16614 * config.sub: Recognize viac3* processors. 16615 16616 2003-05-20 Torbjorn Granlund <tege@swox.com> 16617 16618 * mpn/sparc64/addmul_2.asm: New file. 16619 16620 2003-05-19 Torbjorn Granlund <tege@swox.com> 16621 16622 * configure.in: Recognize alphaev7* as alphaev67. 16623 16624 * config.guess: Recognize viac3* processors. 16625 * configure.in: Set up path for viac3* processors. 16626 * acinclude.m4 (X86_PATTERN): Include viac3* processors. 16627 16628 2003-05-19 Kevin Ryde <kevin@swox.se> 16629 16630 * tune/freq.c (freq_pstat_getprocessor): New function. 16631 (freq_all): Use it. 16632 * configure.in (AC_CHECK_HEADERS): Add sys/pstat.h. 16633 (AC_CHECK_FUNCS): Add pstat_getprocessor. 16634 16635 2003-05-15 Kevin Ryde <kevin@swox.se> 16636 16637 * mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline", 16638 since the code is a bit too big. gcc doesn't actually inline when 16639 alloca (TMP_ALLOC) is used anyway. 16640 16641 2003-05-13 Kevin Ryde <kevin@swox.se> 16642 16643 * gmp.texi (Notes for Particular Systems): Libtool directory is .libs 16644 not _libs for mingw dll. Reported by Andreas Fabri. 16645 16646 2003-05-07 Kevin Ryde <kevin@swox.se> 16647 16648 * acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code 16649 from gcc -march=pentium4, to check the assembler supports that. 16650 (GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros. 16651 * configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4 16652 (with sse2) is ok. 16653 16654 2003-05-06 Kevin Ryde <kevin@swox.se> 16655 16656 * mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1. 16657 16658 * tune/freq.c (<sys/sysinfo.h>): Include only when needed for 16659 getsysinfo(), to avoid a problem with this file on AIX 5.1. 16660 16661 2003-05-03 Torbjorn Granlund <tege@swox.com> 16662 16663 * mpf/set_str.c: Do not ignore supposedly superfluous digits (in part 16664 reverting last change). 16665 16666 2003-05-03 Kevin Ryde <kevin@swox.se> 16667 16668 * gmp.texi: Use @code for files in @cindex entries, it looks nicer 16669 than @file. 16670 16671 * Makefile.am: Note gmp 4.1.1 and 4.1.2 version info. 16672 16673 * configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray 16674 system setups, letting AC_REQUIRE do its job instead of a hard coded 16675 AC_PROG_EGREP. 16676 16677 * config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which 16678 segfaults on Debian "ash" 0.4.16. 16679 16680 2003-05-01 Kevin Ryde <kevin@swox.se> 16681 16682 * configure.in (AC_CHECK_FUNCS): Add getsysinfo. 16683 (AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h. 16684 * tune/freq.c (freq_getsysinfo): New function. 16685 (freq_all): Use it. 16686 (freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq, 16687 freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set 16688 speed_cycletime before trying to print it, when verbose. 16689 16690 2003-04-28 Torbjorn Granlund <tege@swox.com> 16691 16692 * mpf/set_str.c: Major overhaul. 16693 (mpn_pow_1_highpart): New helper function, meat extracted from 16694 mpf_set_str. 16695 16696 2003-04-24 Kevin Ryde <kevin@swox.se> 16697 16698 * acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4. 16699 16700 * configure, ltmain.sh, aclocal.m4: Update to libtool 1.5. 16701 16702 * longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each, 16703 since gcc only supports one per asm. 16704 16705 * printf/doprnt.c: Add M for mp_limb_t. 16706 * tests/misc/t-printf.c: Exercise this. 16707 16708 * tests/mpz/t-cmp_d.c: Test infinities. 16709 * tests/mpf/t-cmp_d.c: New file. 16710 * tests/mpf/Makefile.am: Add it. 16711 16712 * mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger 16713 than any value. 16714 * mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid. 16715 16716 * configure.in (AC_CHECK_FUNCS): Add raise. 16717 * invalid.c: New file. 16718 * Makefile.am: Add it. 16719 * gmp-impl.h (__gmp_invalid_operation): Add prototype. 16720 (DOUBLE_NAN_INF_ACTION): New macro. 16721 16722 * tests/trace.c, tests/tests.h (d_trace): New function. 16723 * tests/misc.c, tests/tests.h (tests_infinity_d): New function. 16724 * tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui. 16725 16726 * tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various 16727 mp_size_t values for printf %ld in case mp_size_t==int. Use 16728 gmp_printf for mp_limb_t values. 16729 16730 * gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t, 16731 gmp_randstate_t. Note ulong for bit counts and size_t for byte 16732 counts. Don't bother with @noindent. 16733 (Debugging): New valgrind is getting MMX/SSE. 16734 (Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs. 16735 (Float Comparison): mpf_cmp_d behaviour on NaNs and Infs. 16736 (Low-level Functions): Note with mpn_hamdist what hamming distance is. 16737 (Formatted Output Strings): Add type M. 16738 (Internals): Remove remarks on ulong bits and size_t bytes. Move int 16739 field remarks to ... 16740 (Integer Internals, Float Internals): ... here. 16741 16742 2003-04-19 Kevin Ryde <kevin@swox.se> 16743 16744 * configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions. 16745 16746 * mpn/x86/p6/mul_basecase.asm: New file. 16747 16748 2003-04-18 Kevin Ryde <kevin@swox.se> 16749 16750 * configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not 16751 available, and don't use mpn/m68k/mc68020 asm routines. (Avoids 32x32 16752 mul and 64/32 div which trap to the kernel on 68060. Advice by 16753 Richard Zidlicky.) 16754 * mpn/m68k/README: Update notes on directory usage. 16755 16756 * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the 16757 test programs run with a shared libgmpxx on openbsd 3.2. 16758 16759 * gmp.texi (Language Bindings): Add Guile. 16760 16761 2003-04-12 Kevin Ryde <kevin@swox.se> 16762 16763 * configure.in (cygwin*, mingw*, pw32*, os2*): Add 16764 -Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in 16765 latest mingw and libtool. 16766 16767 * acinclude.m4 (GMP_ASM_COFF_TYPE): New macro. 16768 * configure.in (x86s): Use it. 16769 * mpn/x86/x86-defs.m4 (COFF_TYPE): New macro. 16770 (PROLOGUE_cpu): Use it, for the benefit of mingw DLLs. 16771 16772 * gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC. 16773 16774 * gmp.texi (Known Build Problems): Remove windows test program .exe 16775 repeated built, fixed by new libtool. Remove MacOS C++ shared library 16776 creation, fixed by new libtool. 16777 (Notes for Package Builds, Known Build Problems): Remove DESTDIR notes 16778 on libgmpxx, fixed in new libtool. 16779 16780 2003-04-10 Torbjorn Granlund <tege@swox.com> 16781 16782 * configure.in: Match turbosparc. 16783 * config.guess: Recognize turbosparc (just for *bsd for now). 16784 16785 2003-04-09 Kevin Ryde <kevin@swox.se> 16786 16787 * mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX. 16788 16789 * tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via 16790 MP_SIZE_T_MAX, eg. for nails. 16791 16792 * tests/cxx/t-ternary.cc: Split up tests to help compile speed and 16793 memory usage. 16794 16795 * tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong 16796 for seed not uint. 16797 16798 * gmp.texi: Add @: after various abbreviations, more index entries. 16799 (leftarrow): New macro, for non-tex. 16800 (Random State Initialization): Remove commented gmp_randinit_lc, not 16801 going to be implemented. 16802 (Random Number Algorithms): New section. 16803 (References): Add Matsumoto and Nishimura on Mersenne Twister, add 16804 Bertot, Magaud and Zimmermann on GMP Square Root. 16805 16806 2003-04-06 Kevin Ryde <kevin@swox.se> 16807 16808 * tests/mpz/t-gcd_ui.c: New file. 16809 * tests/mpz/Makefile.am: Add it. 16810 16811 * mpz/gcd_ui.c: Correction to return value on longlong limb systems, 16812 limb might not fit a ulong. 16813 16814 2003-04-04 Kevin Ryde <kevin@swox.se> 16815 16816 * configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot 16817 2003-04-02. 16818 16819 2003-04-02 Kevin Ryde <kevin@swox.se> 16820 16821 * configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len, 16822 libtool has addressed this now. 16823 (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK 16824 no longer needs it. 16825 16826 * acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and 16827 ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by 16828 libtool's call to AC_CHECK_TOOL. 16829 16830 2003-04-01 Kevin Ryde <kevin@swox.se> 16831 16832 * configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot 16833 2003-03-31. 16834 16835 * configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool 16836 running F77 probes. 16837 16838 * randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is 16839 in each field. 16840 (randseed_lc): Rename seedp to seedz to avoid confusion with seedp in 16841 the lc function. Suggested by Pedro Gimeno. 16842 (gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE. No need for 16843 "+1" in mpz_init2 of _mp_seed. Don't bother with mpz_init2 for _mp_a. 16844 16845 2003-03-29 Kevin Ryde <kevin@swox.se> 16846 16847 * configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O. 16848 * acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro. 16849 16850 * configure.in (AC_CHECK_TYPES): Add notes on why tested. 16851 16852 * gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros, 16853 use them for all external references to get URLs into HTML output. 16854 (Random State Initialization): Add gmp_randinit_set. 16855 (Random State Miscellaneous): New section. 16856 16857 2003-03-29 Kevin Ryde <kevin@swox.se> 16858 16859 * randbui.c, randmui.c: New files. 16860 * Makefile.am: Add them. 16861 * gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes. 16862 * tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files. 16863 * tests/rand/Makefile.am: Add them. 16864 16865 * gmp-impl.h (gmp_randstate_srcptr): New typedef. 16866 (gmp_randfnptr_t): Add randiset_fn. 16867 * randiset.c: New file. 16868 * Makefile.am: Add it. 16869 * gmp-h.in (gmp_randinit_set): Add prototype. 16870 * randlc2x.c, randmt.c: Add gmp_randinit_set support. 16871 * tests/rand/t-iset.c: New file. 16872 * tests/rand/Makefile.am: Add it. 16873 16874 * tests/misc.c, tests/tests.h (call_rand_algs): New function. 16875 16876 2003-03-27 Kevin Ryde <kevin@swox.se> 16877 16878 * mpz/bin_uiui.c: Use plain "*" for kacc products rather than 16879 umul_ppmm since high not needed, except for an ASSERT now amended. 16880 16881 2003-03-26 Kevin Ryde <kevin@swox.se> 16882 16883 * demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove, 16884 nextbelow, nexttoward): New functions. 16885 * demos/expr/t-expr.c: Exercise these. 16886 16887 * mpfr/*: Update to mpfr cvs 2003-03-26. 16888 16889 * gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc. 16890 16891 * tune/time.c (cycles_works_p): Scope variables down to relevant part 16892 to avoid warnings about unused. 16893 16894 * configfsf.guess, configfsf.sub: Update to 2003-02-22. 16895 * config.guess: Fake a $RANDOM variable when running configfsf.guess, 16896 to workaround a problem on m68k NetBSD 1.4.1. 16897 16898 * mpz/fac_ui.c: Remove unused variable "z1". 16899 16900 * tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5. 16901 16902 2003-03-24 Torbjorn Granlund <tege@swox.com> 16903 16904 * randlc2x.c (randget_lc): Remove write-only variable rn. 16905 * mpf/eq.c: Remove write-only variable usign. 16906 * gen-psqr.c (main): Remove write-only variable numb_bits. 16907 16908 2003-03-17 Torbjorn Granlund <tege@swox.com> 16909 16910 * Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c. 16911 (libmp_la_SOURCES): Add mp_dv_tab.c. 16912 16913 * mpn/alpha/invert_limb.asm: Add a few comments. 16914 16915 * mp_dv_tab.c: New file, defining __gmp_digit_value_tab. 16916 16917 * mpz/set_str.c: Get rid of function digit_value_in_base and use table 16918 __gmp_digit_value_tab instead. 16919 * mpz/inp_str.c: Likewise. 16920 * mpf/set_str.c: Likewise. 16921 * mpbsd/min.c: Likewise. 16922 * mpbsd/xtom.c: Likewise. 16923 16924 * mpz/set_str.c: Allow bases <= 62. Return error for invalid bases. 16925 * mpz/inp_str.c: Likewise. 16926 * mpf/set_str.c: Likewise. 16927 * mpz/out_str.c: Likewise. 16928 * mpz/get_str.c: Likewise. 16929 * mpf/get_str.c: Likewise. 16930 16931 * mpz/inp_str.c: Restructure to allocate more string space just 16932 before needed. 16933 * mpbsd/min.c: Likewise. 16934 16935 * longlong.h (__udiv_qrnnd_c): Remove redundant casts. 16936 (32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various 16937 sparc_v8 spellings. 16938 16939 2003-03-17 Kevin Ryde <kevin@swox.se> 16940 16941 * mpfr/*: Update to mpfr cvs 2003-03-17. 16942 16943 2003-03-15 Kevin Ryde <kevin@swox.se> 16944 16945 * Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC 16946 sources, instead of a libdummy.la. 16947 16948 2003-03-16 Torbjorn Granlund <tege@swox.com> 16949 16950 * config.guess: Recognize supersparc and microsparc for *BSD systems. 16951 Generalize some superscalar recognition patterns. 16952 16953 2003-03-14 Torbjorn Granlund <tege@swox.com> 16954 16955 * mpn/sparc64/udiv.asm: New file. 16956 16957 2003-03-13 Torbjorn Granlund <tege@swox.com> 16958 16959 * mpn/sparc64: Table cycle counts. Update some comments. 16960 16961 * mpn/powerpc64/divrem_1.asm: New file. 16962 16963 2003-03-10 Torbjorn Granlund <tege@swox.com> 16964 16965 * mpn/generic/mul.c (mpn_mul): Don't blindly expect 16966 MUL_KARATSUBA_THRESHOLD to be a constant. 16967 16968 2003-03-07 Torbjorn Granlund <tege@swox.com> 16969 16970 * mpn/generic/mul.c (mpn_mul): New operand splitting code for 16971 avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn. 16972 (MUL_BASECASE_MAX_UN): New #define, default to 500 for now. 16973 16974 2003-03-07 Kevin Ryde <kevin@swox.se> 16975 16976 * Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include. 16977 * gmp.texi (Build Options): Add notes on this. 16978 Reported by Vincent Lefèvre. 16979 16980 2003-03-06 Kevin Ryde <kevin@swox.se> 16981 16982 * configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu, 16983 for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which 16984 doesn't otherwise put the assembler in the right mode for -mcpu=ev6. 16985 16986 2003-03-05 Torbjorn Granlund <tege@swox.com> 16987 16988 * mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers. 16989 16990 * mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations, 16991 accumulate carries and add at the end. 16992 (mpz_powm): Trim tp allocation, now as redc doesn't need carry guard. 16993 16994 2003-02-25 Torbjorn Granlund <tege@swox.com> 16995 16996 * mpn/x86/pentium4/copyd.asm: Correct header comment. 16997 16998 * mpn/arm/addmul_1.asm: Correct cycle counts. 16999 * mpn/arm/submul_1.asm: Likewise. 17000 17001 2003-02-20 Kevin Ryde <kevin@swox.se> 17002 17003 * demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid 17004 infinite loop if k=0 and gcd!=1 reveals a factor. Reported by John 17005 Pongsajapan. 17006 17007 * gmp.texi, fdl.texi: Update to FDL version 1.2. 17008 17009 2003-02-18 Torbjorn Granlund <tege@swox.com> 17010 17011 * mpn/arm/mul_1.asm: Fix typo introduced in last change. 17012 17013 2003-02-17 Torbjorn Granlund <tege@swox.com> 17014 17015 * mpn/ia64/gmp-mparam.h: Retune. 17016 17017 * mpn/sparc64/copyi.asm: Add some header comments. 17018 * mpn/sparc64/copyd.asm: Likewise. 17019 17020 * mpn/arm/mul_1.asm: Put vl operand last for umull/umlal. 17021 Add some header comments. 17022 * mpn/arm/addmul_1.asm: Rewrite. 17023 * mpn/arm/submul_1.asm: Rewrite. 17024 * mpn/arm/gmp-mparam.h: Retune. 17025 17026 2003-02-16 Torbjorn Granlund <tege@swox.com> 17027 17028 * mpn/arm/copyi.asm: New file. 17029 * mpn/arm/copyd.asm: New file. 17030 17031 2003-02-16 Kevin Ryde <kevin@swox.se> 17032 17033 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data 17034 byte seen on an arm system. 17035 17036 2003-02-15 Torbjorn Granlund <tege@swox.com> 17037 17038 * mpn/arm/gmp-mparam.h: Retune. 17039 17040 2003-02-13 Torbjorn Granlund <tege@swox.com> 17041 17042 * mpn/powerpc32/750/com_n.asm: Add more cycle counts. 17043 17044 2003-02-13 Kevin Ryde <kevin@swox.se> 17045 17046 * configure.in (AC_PREREQ): Bump to 2.57. 17047 17048 * configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying 17049 -Wa,-oldas only when necessary. 17050 17051 * configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it 17052 overrides options recent gcc adds for -mcpu, making generated code 17053 fail to assemble. 17054 17055 * tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c. 17056 17057 2003-02-12 Torbjorn Granlund <tege@swox.com> 17058 17059 * mpn/x86/pentium4/sse2/gmp-mparam.h: Retune. 17060 * mpn/x86/k7/gmp-mparam.h: Retune. 17061 * mpn/x86/k6/gmp-mparam.h: Retune. 17062 * mpn/x86/p6/gmp-mparam.h: Retune. 17063 * mpn/x86/p6/mmx/gmp-mparam.h: Retune. 17064 17065 * tests/mpz/t-mul.c (main): Rewrite FFT testing code. 17066 17067 2003-02-10 Torbjorn Granlund <tege@swox.com> 17068 17069 * config.guess: Recognize "power2" systems. 17070 17071 * mpn/powerpc64/gmp-mparam.h: Fix indentation. 17072 * mpn/power/gmp-mparam.h: Retune. 17073 * mpn/alpha/ev6/nails/gmp-mparam.h: Retune. 17074 * mpn/sparc64/gmp-mparam.h: Retune. 17075 * mpn/pa64/gmp-mparam.h: Retune. 17076 * mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune. 17077 * mpn/sparc32/v8/gmp-mparam.h: Retune. 17078 * mpn/mips64/gmp-mparam.h: Retune. 17079 * mpn/alpha/ev6/gmp-mparam.h: Retune. 17080 * mpn/powerpc32/gmp-mparam.h: Retune. 17081 * mpn/powerpc32/750/gmp-mparam.h: Retune. 17082 * mpn/alpha/ev5/gmp-mparam.h: Retune. 17083 * mpn/m68k/gmp-mparam.h: Retune. 17084 * mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD. 17085 17086 * configure.in: Undo this, problem doesn't happen any more: 17087 (mips64*-*-*): Pass just -O1 to cc, to work around compiler bug. 17088 17089 2003-02-03 Kevin Ryde <kevin@swox.se> 17090 17091 * gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens 17092 around macro parameters. Reported by Jason Moxham. 17093 17094 2003-02-01 Kevin Ryde <kevin@swox.se> 17095 17096 * gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n. 17097 Reported by Jason Moxham. 17098 (Formatted Input Strings): Correction to strtoul cross reference 17099 formatting. 17100 (BSD Compatible Functions): Add index entry for MINT. 17101 17102 2003-01-29 Torbjorn Granlund <tege@swox.com> 17103 17104 * gmp-impl.h (mpn_mul_fft): Now returns int. 17105 17106 2003-01-29 Paul Zimmermann <Paul.Zimmermann@loria.fr> 17107 17108 * mpn/generic/mul_fft.c: Major rewrite. 17109 17110 2003-01-25 Kevin Ryde <kevin@swox.se> 17111 17112 * config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr 17113 fails on NetBSD. 17114 (trap): Remove $dummy.core on abnormal termination too. 17115 17116 * mpfr/*: Update to mpfr cvs 2003-01-25. 17117 17118 2003-01-24 Torbjorn Granlund <tege@swox.com> 17119 17120 * mpn/ia64/README: Update cycle counts to match current code. 17121 17122 2003-01-18 Kevin Ryde <kevin@swox.se> 17123 17124 * mpfr/*: Update to mpfr cvs 2003-01-18. 17125 17126 2003-01-17 Torbjorn Granlund <tege@swox.com> 17127 17128 * gmp.texi: Canonicalize URLs. 17129 17130 2003-01-15 Kevin Ryde <kevin@swox.se> 17131 17132 * gmp.texi (Notes for Particular Systems): Add hardware floating point 17133 precision mode. 17134 17135 * mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs 17136 2003-01-15. 17137 17138 2003-01-11 Kevin Ryde <kevin@swox.se> 17139 17140 * mpfr/*: Update to mpfr cvs 2003-01-11. 17141 17142 2003-01-09 Kevin Ryde <kevin@swox.se> 17143 17144 * mpfr/get_str.c: Update to mpfr cvs 2003-01-09. 17145 17146 * doc/configuration: Various updates. 17147 17148 2003-01-06 Torbjorn Granlund <tege@swox.com> 17149 17150 * mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray. 17151 * mpn/alpha/copyd.asm: Likewise. 17152 17153 2003-01-05 Kevin Ryde <kevin@swox.se> 17154 17155 * demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return 17156 value. 17157 17158 * configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with 17159 libtool patch to avoid bash printf option problem when building shared 17160 libraries with cxx. 17161 17162 * configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since 17163 sse2 causes buggy code from gcc 3.2.1 and is only supported on new 17164 enough kernels. 17165 17166 * acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per 17167 report by Krzysztof Kozminski. 17168 17169 * gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r". 17170 17171 * gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast. 17172 (GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3, 17173 mpn_divmod): Use it. Reported by Krzysztof Kozminski. 17174 (mpz_odd_p): No need for the outermost cast to "int". 17175 * tests/cxx/t-cast.cc: New file. 17176 * tests/cxx/Makefile.am: Add it. 17177 17178 2003-01-04 Kevin Ryde <kevin@swox.se> 17179 17180 * mpfr/set_str.c: Update to mpfr cvs 2003-01-04. 17181 17182 * demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str 17183 returning count of characters accepted. 17184 17185 2003-01-03 Torbjorn Granlund <tege@swox.com> 17186 17187 * mpn/alpha/copyi.asm: New file. 17188 * mpn/alpha/copyd.asm: New file. 17189 17190 2003-01-03 Kevin Ryde <kevin@swox.se> 17191 17192 * demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have 17193 changed. 17194 17195 * mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs 17196 2003-01-03. 17197 17198 * gmp.texi (Introduction to GMP): Mention release announcements 17199 mailing list, and put home page and ftp before mailing lists. 17200 17201 2002-12-28 Torbjorn Granlund <tege@swox.com> 17202 17203 * mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify. 17204 17205 2002-12-28 Kevin Ryde <kevin@swox.se> 17206 17207 * acinclude.m4 (M68K_PATTERN): New macro. 17208 (GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends. 17209 * configure.in: Ditto. 17210 17211 * tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid 17212 warnings about char overflows. 17213 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto. 17214 17215 2002-12-28 Pedro Gimeno <pggimeno@wanadoo.es> 17216 17217 * randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding. 17218 (randseed_mt): Add ASSERT checking result of mpz_export. 17219 17220 2002-12-24 Kevin Ryde <kevin@swox.se> 17221 17222 * gmp.texi (Integer Import and Export): Clarify treatment of signs, 17223 reported by Kent Boortz. 17224 17225 * randmt.c: Use gmp_uint_least32_t. 17226 (randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits. 17227 17228 * gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32. 17229 * configure.in (AC_CHECK_TYPES): Add uint_least32_t. 17230 (AC_CHECK_SIZEOF): Add unsigned short. 17231 17232 2002-12-22 Kevin Ryde <kevin@swox.se> 17233 17234 * gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit. 17235 (ULONG_PARITY) [_CRAY, __ia64]: New macros. 17236 * tests/t-parity.c: New test. 17237 * tests/Makefile.am (check_PROGRAMS): Add it. 17238 17239 * longlong.h (count_trailing_zeros) [ia64]: New macro. 17240 17241 * tests/t-count_zeros.c (check_various): Remove unused variable "n". 17242 17243 * mpn/x86/README: Revise notes on PIC, PLT and GOT. 17244 17245 * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt" 17246 to GMP::Rand::randstate. 17247 17248 2002-12-22 Pedro Gimeno <pggimeno@wanadoo.es> 17249 17250 * randmt.c (randseed_mt): Fix bug that might cause the generator to 17251 return all zeros with certain seeds. Fix WARM_UP==0 case. 17252 (gmp_randinit_mt): Initialize to a known state by default. 17253 (randget_mt): Remove check for uninitialized buffer: no longer needed. 17254 (recalc_buffer): Use ?: instead of two-element array. 17255 17256 * tests/rand/t-mt.c: New test. 17257 * tests/rand/Makefile.am (check_PROGRAMS): Add it. 17258 17259 2002-12-21 Kevin Ryde <kevin@swox.se> 17260 17261 * cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h> 17262 and <string.h>. No need for <stdio.h>. 17263 17264 * demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c, 17265 demos/expr/exprza.c: Use mp_get_memory_functions, not 17266 __gmp_allocate_func etc. 17267 * demos/expr/t-expr.c: Don't use gmp-impl.h. 17268 (numberof): New macro. 17269 17270 * gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func, 17271 __gmp_free_func): Move declarations to gmp-impl.h 17272 17273 * mp_get_fns.c: New file. 17274 * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it. 17275 * gmp-h.in (mp_get_memory_functions): Add prototype. 17276 * gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to 17277 "free" not "deallocate" function. 17278 * gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions, 17279 not __gmp_free_func. 17280 17281 * gmp-impl.h [__cplusplus]: Add <cstring> for strlen. 17282 (gmp_allocated_string): Hold length in a field. 17283 * cxx/osdoprnti.cc, cxx/osmpf.cc: Use this. 17284 17285 2002-12-20 Torbjorn Granlund <tege@swox.com> 17286 17287 * tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon 17288 failure. 17289 17290 * mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero. 17291 17292 2002-12-19 Torbjorn Granlund <tege@swox.com> 17293 17294 * mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space 17295 for pp temporary to allow for worst case overestimate of root. 17296 Add some asserts. 17297 17298 * tests/mpz/t-root.c: Generalize and speed up. 17299 17300 2002-12-19 Kevin Ryde <kevin@swox.se> 17301 17302 * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test. 17303 17304 * gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard 17305 I/O mode. 17306 * gmp.texi (Notes for Particular Systems): Compaq C++ must be used in 17307 "standard" iostream mode. 17308 17309 2002-12-18 Torbjorn Granlund <tege@swox.com> 17310 17311 * mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing 17312 little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined. 17313 17314 2002-12-18 Kevin Ryde <kevin@swox.se> 17315 17316 * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New 17317 defines in config.m4. 17318 17319 2002-12-17 Torbjorn Granlund <tege@swox.com> 17320 17321 * printf/printffuns.c (gmp_fprintf_reps): Make it actually work 17322 for padding > 256. 17323 17324 2002-12-17 Kevin Ryde <kevin@swox.se> 17325 17326 * tune/freq.c: Add <string.h> for memcmp. 17327 17328 * mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD. 17329 17330 * gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc. 17331 (Formatted Input Strings): Type "l" is for double too. Hex floats are 17332 accepted for mpf_t. 17333 (Formatted Input Functions): Describe tightened parse rule, clarify 17334 return value a bit. 17335 17336 * scanf/doscan.c: Add hex floats, tighten matching to follow C99, for 17337 instance "0x" is no longer acceptable to "%Zi". 17338 Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't 17339 like them the same. 17340 * tests/misc/t-scanf.c: Update tests. 17341 * tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake 17342 decimal point. 17343 17344 * config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise 17345 ultrasparcs. 17346 17347 * mpfr/tests/dummy.c: New file. 17348 * mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it. 17349 17350 2002-12-14 Kevin Ryde <kevin@swox.se> 17351 17352 * mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz 17353 sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the 17354 ansi2knr setups right for sources in other directories. 17355 17356 * mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr. 17357 17358 2002-12-13 Kevin Ryde <kevin@swox.se> 17359 17360 * mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for 17361 fdl.texi in recent mpfr. 17362 17363 * configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray 17364 conditional AC_EGREP_CPP. 17365 17366 * configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid 17367 problems with new compaq "as" on OSF 5.1. 17368 17369 * mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does 17370 it automatically. 17371 17372 * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by 17373 autoconf 2.57. 17374 17375 * configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of 17376 new mpfr using LIBOBJ. 17377 17378 * configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies 17379 $(top_builddir)/ansi2knr". 17380 * */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in. 17381 17382 * configure, config.in, INSTALL.autoconf: Update to autoconf 2.57. 17383 * */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs: 17384 Update to automake 1.7.2. 17385 17386 * gmp.texi (Build Options): Add hppa64 to cpu types. 17387 (ABI and ISA): Add gcc to hppa 2.0. 17388 (Debugging): Add maximum debuggability config options. 17389 (Language Bindings): Add Arithmos, reported by Johan Vervloet. 17390 (Formatted Output Strings): 128 bits is about 40 digits, ll is only 17391 for long long not long double. 17392 (Formatted Input Strings): ll is only for long long not long double. 17393 17394 * mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0, 17395 under the rule n==c mod d iff exists q satisfying n=c+q*d. 17396 * gmp.texi (Integer Division): Describe this. 17397 Suggested by Jason Moxham. 17398 17399 2002-12-13 Pedro Gimeno <pggimeno@wanadoo.es> 17400 17401 * randlc2x.c (lc): Remove check for seedn < an, which is now 17402 superfluous. Add ASSERT to ensure it's correct. Add ASSERT to check 17403 precondition of __GMPN_ADD. 17404 (gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit 17405 for both seed and a. Simplify seedn < p->_cn case. 17406 17407 * tests/rand/t-lc2exp.c (check_bigs): Test negative seeds. 17408 17409 2002-12-12 Torbjorn Granlund <tege@swox.com> 17410 17411 * mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'. 17412 Add empty `.callinfo'. 17413 17414 2002-12-11 Torbjorn Granlund <tege@swox.com> 17415 17416 * mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a 17417 label. 17418 17419 2002-12-11 Kevin Ryde <kevin@swox.se> 17420 17421 * configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0. 17422 17423 * mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend. 17424 * configure.in (hppa*-*-*): Use it. 17425 17426 * printf/doprnt.c: Comments on "ll" versus "L". 17427 17428 * tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones. 17429 17430 2002-12-11 Torbjorn Granlund <tege@swox.com> 17431 17432 * mpz/get_d.c (limb2dbl): New macro for conversion to `double'. 17433 Define it to something non-trivial for 64-bit hppa. 17434 * mpq/get_d.c: Likewise. 17435 * mpf/get_d.c: Likewise. 17436 17437 * mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l. 17438 17439 2002-12-09 Kevin Ryde <kevin@swox.se> 17440 17441 * tune/Makefile.am: Don't use -static under --disable-static, it tends 17442 not to work. 17443 * configure.in (ENABLE_STATIC): New AM_CONDITIONAL. 17444 17445 * gmp-h.in: Use <iostream> instead of <iosfwd> with Compaq C++ in 17446 pre-standard I/O mode. 17447 17448 * tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests. 17449 17450 2002-12-08 Kevin Ryde <kevin@swox.se> 17451 17452 * configure.in (*-*-ultrix*): Remove forcible --disable-shared, 17453 believe this was a generic problem with libtool, now gone. 17454 17455 2002-12-08 Torbjorn Granlund <tege@swox.com> 17456 17457 * gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation. 17458 17459 2002-12-07 Torbjorn Granlund <tege@swox.com> 17460 17461 * tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in 17462 mpq_cmp_ui calls. 17463 17464 * configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around 17465 compiler bug with mpfr/tests/tdiv. 17466 17467 2002-12-07 Kevin Ryde <kevin@swox.se> 17468 17469 * configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional. 17470 New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler 17471 support for 2.0n. 17472 * acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error 17473 from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions. 17474 (GMP_HPPA_LEVEL_20): New macro. 17475 17476 2002-12-07 Pedro Gimeno <pggimeno@wanadoo.es> 17477 17478 * gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void. 17479 (LIMBS_PER_ULONG, MPN_SET_UI): New macros. 17480 (MPZ_FAKE_UI): Rename couple of parameters. 17481 17482 * randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced 17483 with mpn style _cp and _cn. All callers changed. 17484 (randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case. 17485 Remove return value. 17486 (gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation. 17487 17488 * randmt.c (mangle_seed): New function by Kevin. 17489 (randseed_mt): Use it instead of mpz_powm, for performance. Remove 17490 return value. Remove commented out code (an inferior alternative to 17491 mpz_export). 17492 17493 * randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI. 17494 17495 * tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests. 17496 * tests/rand/t-urndmm.c: Add L to constants in calls, for K&R. 17497 17498 2002-12-06 Torbjorn Granlund <tege@swox.com> 17499 17500 * configure.in: Remove -g. 17501 (hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0. 17502 17503 2002-12-05 Torbjorn Granlund <tege@swox.com> 17504 17505 * mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend. 17506 * mpn/pa64/udiv.asm: Likewise. 17507 17508 2002-12-05 Kevin Ryde <kevin@swox.se> 17509 17510 * mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to. 17511 * mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas 17512 doesn't like ".level 2.0N". 17513 17514 * configure.in (hppa*-*-*): Group path and flags choices, for clarity. 17515 (hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available. 17516 (hppa2.0*-*-*): Ditto -mpa-risc-2-0. 17517 (*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than 17518 the converse of allowing it for hpux1[1-9]; ie. list the bad systems 17519 rather than try to guess the good systems. 17520 (hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers. 17521 (hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or 17522 64-bit build of the compiler. 17523 (hppa64-*-*): Add this as equivalent to hppa2.0-*-*. 17524 * acinclude.m4 (GMP_C_TEST_SIZEOF): New macro. 17525 17526 * tests/tests.h (ostringstream::str): Must null-terminate 17527 ostrstream::str() for the string constructor. 17528 17529 2002-12-04 Torbjorn Granlund <tege@swox.com> 17530 17531 * mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff. 17532 17533 * longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo. 17534 17535 * mpn/powerpc32/powerpc-defs.m4: Define float registers with `f' 17536 prefix. 17537 17538 2002-12-04 Kevin Ryde <kevin@swox.se> 17539 17540 * gmp.texi (Floating-point Functions): Note the mantissa is binary and 17541 decimal fractions cannot be represented exactly. Suggested by Serge 17542 Winitzki. 17543 (Known Build Problems): Note libtool stripping options when linking. 17544 Reported by Vincent Lefevre. 17545 17546 * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a 17547 failure, that's a valid result. 17548 (GMP_ASM_GLOBL): Establish this from the host cpu type. 17549 (IA64_PATTERN): New macro. 17550 (GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI, 17551 GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created. 17552 * configure.in: Use IA64_PATTERN. 17553 17554 2002-12-03 Torbjorn Granlund <tege@swox.com> 17555 17556 * tune/hppa.asm: Use config.m4. 17557 * tune/hppa2.asm: Likewise. 17558 * tune/hppa2w.asm: Likewise. 17559 17560 * mpn/pa64: Use LDEF. 17561 17562 2002-12-03 Kevin Ryde <kevin@swox.se> 17563 17564 * INSTALL: Use return rather than exit in the example programs. 17565 Suggested by Richard Dawe. 17566 17567 * gmp.texi (Build Options): Move non-unix notes to ... 17568 (Notes for Particular Systems): ... here. Mention MS Interix, 17569 reported by Paul Leyland. 17570 (C++ Interface Random Numbers): Add gmp_randinit_mt to examples. 17571 17572 * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first, 17573 for the benefit of hppa hp-ux. 17574 (GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to 17575 construct an asm file, and in case of failure fallback on no 17576 underscore and a warning. 17577 17578 * longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]: 17579 Restrict __asm__ ctlz and cttz to __GNUC__. 17580 17581 * gen-psqr.c (HAVE_CONST, const): New macros. 17582 17583 * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt. 17584 17585 2002-12-02 Torbjorn Granlund <tege@swox.com> 17586 17587 * gmp-impl.h: Split popc_limb again, combined version gives too many 17588 compiler warnings. 17589 17590 2002-12-01 Torbjorn Granlund <tege@swox.com> 17591 17592 * mpn/generic/gcdext.c (div1): Disable unused function. 17593 17594 * mpz/root.c: Don't include stdlib.h or longlong.h. 17595 * mpz/rootrem.c: Likewise. 17596 17597 * extract-dbl.c: abort => ASSERT_ALWAYS. 17598 * mpz/set_d.c: Likewise. 17599 * mpn/generic/tdiv_qr.c: Likewise. 17600 17601 * gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to 17602 `const void *', to match qsort spec. 17603 17604 2002-12-01 Kevin Ryde <kevin@swox.se> 17605 17606 * gmp.texi (Integer Division): Fix a couple of @math's for tex. 17607 Use @dots in more places. 17608 17609 * tests/cxx/t-locale.cc: Test non std::locale systems too. 17610 * tests/cxx/clocale.c: New file, reinstating what was localeconv.c, 17611 and subverting nl_langinfo too. 17612 * tests/cxx/Makefile.am (t_locale_SOURCES): Add it. 17613 17614 * tests/tests.h (ostringstream, istringstream): Provide fakes of these 17615 if <sstream> not available. 17616 * tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove <sstream>. 17617 * configure.in (AC_CHECK_HEADERS) [C++]: Add <sstream>. 17618 17619 2002-11-30 Torbjorn Granlund <tege@swox.com> 17620 17621 * printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up 17622 compiler warnings. 17623 17624 * mpn/ia64/invert_limb.asm: Add `many' hints to return insns. 17625 17626 * mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in 17627 one of them. 17628 17629 * mpn/ia64/popcount.asm: Properly restore register ar.lc. 17630 17631 * longlong.h (umul_ppmm) [ia64]: Form both product parts in asm. 17632 17633 * mpz/bin_uiui.c: Cast umul_ppmm operands. 17634 17635 * scanf/doscan.c (gmpscan): Remove unused label store_get_digits. 17636 17637 * gmp-impl.h: #undef MIN and MAX before #defining. 17638 17639 * mpn/ia64/copyi.asm: Add `;' after bundle declarators. 17640 * mpn/ia64/copyd.asm: Likewise. 17641 17642 * mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler. 17643 17644 2002-11-30 Kevin Ryde <kevin@swox.se> 17645 17646 * configure.in (AC_CHECK_HEADERS): Add nl_types.h. 17647 * tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1. 17648 17649 2002-11-29 Torbjorn Granlund <tege@swox.com> 17650 17651 * tests/devel/addmul_1.c: Provide prototype for mpn_print. 17652 (OPS): Account for function overhead. 17653 * tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise. 17654 17655 * mpn/ia64/addmul_1.asm: Rewrite. 17656 17657 2002-11-28 Torbjorn Granlund <tege@swox.com> 17658 17659 * mpn/ia64/sqr_diagonal.asm: Don't allocate any registers. 17660 17661 * mpn/ia64/submul_1.asm: Adapt to Itanium 2. 17662 17663 * mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code. 17664 17665 * mpn/ia64/add_n.asm: Rewrite. 17666 * mpn/ia64/sub_n.asm: Rewrite. 17667 17668 2002-11-28 Kevin Ryde <kevin@swox.se> 17669 17670 * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather 17671 than libdummy. 17672 * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for 17673 x86call.asm and x86check.c rather than libdummy. 17674 17675 2002-11-27 Torbjorn Granlund <tege@swox.com> 17676 17677 * tests/mpz/t-mul.c: Implement reference Karatsuba multiplication. 17678 Rewrite testing scheme to run fewer really huge tests. 17679 17680 2002-11-26 Torbjorn Granlund <tege@swox.com> 17681 17682 * tests: Decrease repetition count for some of the slowest tests. 17683 17684 * mpn/ia64/divrem_1.asm: New file. 17685 17686 2002-11-25 Torbjorn Granlund <tege@swox.com> 17687 17688 * mpfr/tests/tdiv.c: Decrease number of performed tests. 17689 17690 2002-11-23 Torbjorn Granlund <tege@swox.com> 17691 17692 * mpn/ia64/mul_1.asm: Rewrite. 17693 17694 2002-11-23 Kevin Ryde <kevin@swox.se> 17695 17696 * mpn/ia64/README: Add some references. 17697 17698 * gmp.texi (Build Options): Add itanium and itanium2, mention DocBook 17699 and XML from makeinfo, add texinfo top level cross reference. 17700 (Integer Division): Try to clarify 2exp functions a bit. 17701 (C++ Interface Floats): Giving bad string to constructor is undefined. 17702 (C++ Interface Integers, C++ Interface Rationals): Ditto, and show 17703 default base in prototype, not the description. 17704 17705 * config.sub, config.guess, configure.in (itanium, itanium2): New cpu 17706 types. 17707 17708 * tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress 17709 %zd test on glibc prior to 2.1, it's not supported. 17710 17711 2002-11-22 Torbjorn Granlund <tege@swox.com> 17712 17713 * mpn/ia64/copyi.asm: Optimize for Itanium 2. 17714 * mpn/ia64/copyd.asm: Likewise. 17715 17716 2002-11-20 Torbjorn Granlund <tege@swox.com> 17717 17718 * mpn/ia64/sqr_diagonal.asm: New file. 17719 17720 * mpn/ia64/submul_1.asm: Handle vl == 0 specially. 17721 17722 2002-11-20 Kevin Ryde <kevin@swox.se> 17723 17724 * tests/cxx/t-locale.cc: Test with locales imbued into stream, use 17725 <sstream>, eliminated some C-isms. istream tests disabled, not yet 17726 locale-ized. 17727 * tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c. 17728 * tests/cxx/localeconv.c: Remove file. 17729 17730 * configure.in (AC_CHECK_TYPES) [C++]: Add std::locale. 17731 * printf/doprntf.c: Add decimal point parameter, remove localeconv use. 17732 * gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to 17733 __gmp_doprnt_mpf2 to protect old libgmpxx. 17734 * cxx/osmpf.cc: Use this with ostream locale decimal_point facet. 17735 * printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT. 17736 17737 * gmp-h.in: More comments on __declspec for windows DLLs. 17738 17739 * mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for 17740 decimal point string, same as input chars. 17741 17742 * configure.in (AC_CHECK_HEADERS): Add langinfo.h. 17743 (AC_CHECK_FUNCS): Add nl_langinfo. 17744 * gmp-impl.h (GMP_DECIMAL_POINT): New macro. 17745 * mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't 17746 bother with special code for non-locale systems. 17747 * tests/misc/t-locale.c: Subvert nl_langinfo too. 17748 17749 * configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro. 17750 * mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting 17751 extra underscore for OpenBSD. 17752 * mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes. 17753 Reported by Christian Weisgerber. 17754 17755 * tests/cxx/t-rand.cc (check_randinit): New function, collecting up 17756 constructor tests. 17757 17758 * tests/cxx/t-ostream.cc: Use <sstream> instead of <strstream>, use 17759 compare instead of strcmp. 17760 17761 * gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int. 17762 17763 2002-11-18 Kevin Ryde <kevin@swox.se> 17764 17765 * tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by 17766 Torbjorn. 17767 17768 2002-11-19 Torbjorn Granlund <tege@swox.com> 17769 17770 * mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code. 17771 Streamline prologue. 17772 * mpn/ia64/addmul_1.asm: Likewise. 17773 * mpn/ia64/submul_1.asm: New file. 17774 * mpn/ia64/submul_1.c: Remove. 17775 17776 2002-11-17 Torbjorn Granlund <tege@swox.com> 17777 17778 * mpn/generic/popham.c: New file, using new faster algorithm. 17779 * mpn/generic/popcount.c: Remove. 17780 * mpn/generic/hamdist.c: Remove. 17781 17782 * mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16. 17783 * mpn/ia64/mul_1.asm: Likewise. 17784 17785 * mpn/ia64/addmul_1.asm: Add pred.rel declarations. Resolve RAW 17786 hazards for condition code registers, duplicating code as needed. Add 17787 prediction to all branches. 17788 * mpn/ia64/mul_1.asm: Likewise. 17789 * mpn/ia64/add_n.asm: Likewise. 17790 * mpn/ia64/sub_n.asm: Likewise. 17791 * mpn/ia64/copyi.asm: Likewise. 17792 * mpn/ia64/copyd.asm: Likewise. 17793 17794 * mpn/generic/random2.c: Add a cast to silence some compilers. 17795 17796 2002-11-16 Torbjorn Granlund <tege@swox.com> 17797 17798 * mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed 17799 values). 17800 17801 2002-11-16 Kevin Ryde <kevin@swox.se> 17802 17803 * configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and 17804 is unlikely to ever do so. 17805 * configure.in: Allow ABI=32 for powerpc64. 17806 Reported by David Edelsohn. 17807 17808 2002-11-14 Kevin Ryde <kevin@swox.se> 17809 17810 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c 17811 addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c. 17812 17813 * gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]: 17814 Use __dllexport__ and __dllimport__ to keep out of application 17815 namespace. 17816 17817 2002-11-14 Gerardo Ballabio <gerardo.ballabio@unimib.it> 17818 17819 * gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t, 17820 __gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for 17821 the benefit of g++ prior to 3.2. 17822 17823 2002-11-12 Kevin Ryde <kevin@swox.se> 17824 17825 * gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to 17826 use extern "C" on C function pointer arguments. 17827 17828 2002-11-09 Kevin Ryde <kevin@swox.se> 17829 17830 * configure.in, Makefile.am, printf/Makefile.am, 17831 printf/repl-vsnprintf.c: Handle vsnprintf replacement with C 17832 conditionals. 17833 17834 * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent 17835 HP cc +O3 causes for AC_CHECK_FUNCS. 17836 17837 * gmp.texi (Notes for Particular Systems): Add Sparc app regs. 17838 (Debugging): Note gcc -fstack options to detect overflow. 17839 (Formatted Output Strings, Formatted Input Strings): Format strings 17840 are not multibyte. 17841 17842 2002-11-06 Torbjorn Granlund <tege@swox.com> 17843 17844 * mpn/generic/tdiv_qr.c: Remove a bogus assert. 17845 17846 2002-11-05 Torbjorn Granlund <tege@swox.com> 17847 17848 * mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls. 17849 17850 2002-11-04 Kevin Ryde <kevin@swox.se> 17851 17852 * acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++. 17853 17854 * demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h. 17855 17856 * mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c, 17857 scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c, 17858 demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c, 17859 demos/expr/exprz.c, demos/expr/exprza.c: Add <string.h> for strlen and 17860 memcpy. 17861 17862 2002-11-02 Kevin Ryde <kevin@swox.se> 17863 17864 * longlong.h: Test __x86_64__ not __x86_64. Reported by Andreas 17865 Jaeger. 17866 17867 * mpz/import.c, mpz/export.c: Use char* subtract from NULL to get 17868 pointer alignment, for the benefit of Cray vector systems. 17869 17870 * cxx/ismpf.cc: Use <clocale>. 17871 * tests/cxx/t-locale.cc: No need to conditionalize <clocale>. 17872 17873 * scanf/doscan.c: Don't use isascii, rely on C99 ctype.h. 17874 17875 * gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference 17876 texinfo manual. 17877 (ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD 17878 and OpenBSD sparc64. 17879 (Notes for Package Builds): Cross reference libtool manual. 17880 (Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas. 17881 (Known Build Problems): Add MacOS X C++ shared libraries. 17882 17883 2002-10-31 Kevin Ryde <kevin@swox.se> 17884 17885 * gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl, 17886 tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5, 17887 mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring. 17888 * configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5, 17889 HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7, 17890 HAVE_NATIVE_mpn_addmul_8. 17891 (gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8. 17892 17893 * tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h 17894 (try_one): Do dest setups after sources, for benefit of 17895 dst0_from_src1. 17896 17897 2002-11-01 Torbjorn Granlund <tege@swox.com> 17898 17899 * mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for 17900 sub-division when numerator is more than twice the size of the 17901 denominator. Simplify loop logic for the same case. Clean up a 17902 few comments. 17903 17904 2002-10-29 Torbjorn Granlund <tege@swox.com> 17905 17906 * configure.in (*-cray-unicos*): Pass -hnofastmd again. 17907 17908 2002-10-25 Torbjorn Granlund <tege@swox.com> 17909 17910 * tests/tadd.c: Disable test of denorms. 17911 17912 2002-10-23 Linus Nordberg <linus@swox.se> 17913 17914 * gmp.texi (Introduction to GMP): Update section about mailing 17915 lists. 17916 17917 2002-10-23 Kevin Ryde <kevin@swox.se> 17918 17919 * gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when 17920 __GMP_NO_ATTRIBUTE_CONST_PURE is defined. 17921 * gmp-impl.h (ATTRIBUTE_CONST): Ditto. 17922 * tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE. 17923 17924 * tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes. 17925 * tune/speed.h: Remove various "dummy" variables attempting to keep 17926 "pure" calls live, no longer necessary. They weren't sufficient for 17927 recent MacOS cc anyway. 17928 17929 2002-10-21 Torbjorn Granlund <tege@swox.com> 17930 17931 * mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c. 17932 * mpn/cray/ieee/submul_1.c: Likewise. 17933 17934 2002-10-19 Kevin Ryde <kevin@swox.se> 17935 17936 * configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and 17937 OpenBSD sparc64. Reported by Christian Weisgerber. 17938 (AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD. 17939 17940 * demos/calc/calc.y: Change ={ to {, needed for bison 1.50. 17941 17942 * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: 17943 Should be UDItype. 17944 17945 * mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast 17946 chars through "unsigned char" to zero extend, required by C99 ctype.h. 17947 17948 2002-10-18 Torbjorn Granlund <tege@swox.com> 17949 17950 * tests/mpz/t-root.c: Test also mpz_rootrem. 17951 17952 * mpn/generic/rootrem.c: Avoid overflow problem when n is huge. 17953 17954 * mpz/root.c: Avoid overflow problems in allocation computation; also 17955 simplify it. Misc cleanups. 17956 17957 * mpz/rootrem.c: New file. 17958 * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them. 17959 17960 2002-10-17 Torbjorn Granlund <tege@swox.com> 17961 17962 * gmp-impl.h (popc_limb): Combine variants. 17963 17964 2002-10-14 Kevin Ryde <kevin@swox.se> 17965 17966 * configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h 17967 test, needed by SunOS, and next autoconf will insist headers actually 17968 compile. 17969 17970 2002-10-08 Kevin Ryde <kevin@swox.se> 17971 17972 * tune/time.c (speed_time_init): Allow for Cray times() apparently 17973 being a cycle counter. 17974 17975 * dumbmp.c (mpz_get_str): Fix buf size allocation. 17976 17977 * tests/trace.c, tests/tests.h (mp_limb_trace): New function. 17978 17979 * tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO. 17980 * tests/devel/try.c (malloc_region): Add a cast for SunOS cc. 17981 17982 * configure.in (AC_CHECK_FUNCS): Add strerror. 17983 (AC_CHECK_DECLS): Add sys_errlist, sys_nerr. 17984 * tune/time.c, tests/devel/try.c: Use them. 17985 17986 2002-10-05 Kevin Ryde <kevin@swox.se> 17987 17988 * configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc. 17989 * printf/repl-vsnprintf.c: Use this. 17990 17991 * configure.in (*sparc*-*-*): Collect up various options for clarity, 17992 use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use 17993 -xtarget=native, use cc configs with acc, merge SunOS bundled cc and 17994 SunPRO cc configs. 17995 17996 * gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO. 17997 (MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the 17998 benefit of SunOS cc which requires pointers of the same type on the 17999 two legs of a ?:. 18000 18001 * dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc. 18002 18003 * acinclude.m4: Allow for i960 b.out default cc output. 18004 18005 * gmp.texi (Random State Initialization): Add gmp_randinit_mt. 18006 (Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use. 18007 (Factorial Algorithm): Describe Jason's new code. 18008 (Binomial Coefficients Algorithm): Ideas about improvements 18009 moved to doc/projects.html. 18010 (Contributors): Add Jason Moxham and Pedro Gimeno. 18011 18012 2002-10-03 Kevin Ryde <kevin@swox.se> 18013 18014 * gen-psqr.c: New file. 18015 * Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h. 18016 * mpn/generic/perfsqr.c: Use generated data, put mod 256 data into 18017 limbs to save space, use mpn_mod_34lsub1 when good. 18018 * tests/mpn/t-perfsqr.c: New file. 18019 * tests/mpn/Makefile.am (check_PROGRAMS): Add it. 18020 * tests/mpz/t-perfsqr.c (check_modulo): New test. 18021 (check_sqrt): New function holding current tests. 18022 18023 * configure.in (AC_INIT): Modernize to package name and version here 18024 rather than AM_INIT_AUTOMAKE, add bug report email. 18025 (AC_CONFIG_SRCDIR): New macro. 18026 18027 * gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not 18028 normal in current uses), clarify the comments a bit. 18029 18030 2002-09-30 Kevin Ryde <kevin@swox.se> 18031 18032 * mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC, 18033 same as .S.lo and .asm.lo. 18034 18035 * Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in 18036 test -f stuff to avoid Sun make rewriting them. 18037 18038 2002-09-28 Kevin Ryde <kevin@swox.se> 18039 18040 * tests/devel/try.c, tune/speed.c: Avoid strings longer than C99 18041 guarantees. 18042 18043 * tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize, 18044 refmpn_sqrtrem): New functions. 18045 * tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem. 18046 (compare): Correction to tr->dst_size subscripting. 18047 18048 * dumbmp.c: Add several new functions, allow for initial n<d in 18049 mpz_tdiv_q (now in mpz_tdiv_qr actually). 18050 18051 * gen-bases.c (chars_per_limb): Get GMP_NUMB_BITS for base==2, 18052 similarly other powers of 2, which this was in the past. 18053 * tests/refmpn.c (refmpn_chars_per_limb): Ditto. 18054 * tests/mpn/t-mp_bases.c: Test chars_per_limb for power-of-2 bases too. 18055 18056 * Makefile.am, mpz/Makefile.am: Setups for gen-fac_ui.c generating 18057 mpz/fac_ui.h. 18058 18059 2002-09-28 Jason Moxham <J.L.Moxham@maths.soton.ac.uk> 18060 18061 * dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions. 18062 * gen-fac_ui.c: New file. 18063 * mpz/fac_ui.c: Rewrite. 18064 18065 2002-09-26 Kevin Ryde <kevin@swox.se> 18066 18067 * tests/cxx/localeconv.c: New file, split from t-locale.cc. 18068 * tests/cxx/t-locale.cc: Use it. 18069 * tests/cxx/Makefile.am (t_locale_SOURCES): Add it. 18070 18071 * tests/cxx/Makefile.am: Updates for Gerardo's new test programs. 18072 18073 2002-09-26 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18074 18075 * gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and 18076 double/mpfr comparisons. 18077 18078 * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc, 18079 tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various 18080 tests, including some for mpfr, some split from t-expr.cc. 18081 * tests/cxx/t-locale.cc: Modernize include files. 18082 * tests/cxx/t-ostream.cc: Modernize include files, use cout rather 18083 than printf for diagnostics. 18084 * tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from 18085 t-allfuns.cc. 18086 * tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc. 18087 * tests/cxx/t-prec.cc: New file. 18088 * tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files. 18089 18090 2002-09-25 Torbjorn Granlund <tege@swox.com> 18091 18092 * configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much 18093 performance loss. Let's trust Cray to fix their compilers. 18094 18095 2002-09-24 Torbjorn Granlund <tege@swox.com> 18096 18097 * mpn/powerpc32/add_n.asm: Rewrite. 18098 * mpn/powerpc32/sub_n.asm: Rewrite. 18099 18100 2002-09-24 Pedro Gimeno <pggimeno@wanadoo.es> 18101 18102 * randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t, 18103 make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons 18104 for mpn_mul. 18105 * gmp-impl.h (MPZ_FAKE_UI): New macro. 18106 18107 * randmt.c: Some constants made long for K&R compliance; remove UL at 18108 the end of other constants; use mp_size_t where appropriate; use 18109 mpz_export to split the seed. 18110 18111 * gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow 18112 them to be used as lvalues. 18113 * randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed. 18114 18115 * mpz/urandomm.c: Replace mpn_cmp with MPN_CMP. 18116 18117 * tests/rand/gen.c: Get rid of gmp_errno. 18118 18119 2002-09-24 Kevin Ryde <kevin@swox.se> 18120 18121 * gmp.texi (Custom Allocation): Keep allocate_function etc out of the 18122 function index by using @deftypevr. 18123 More index entries. 18124 18125 2002-09-24 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18126 18127 * gmpxx.h (mpfr_class constructors from strings): Precision was set 18128 incorrectly, fixed. 18129 18130 2002-09-23 Torbjorn Granlund <tege@swox.com> 18131 18132 * mpf/urandomb.c: Don't crash for overlarge nbits argument. 18133 Let nbits==0 mean to fill number with random bits. 18134 18135 2002-09-21 Torbjorn Granlund <tege@swox.com> 18136 18137 * mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction. 18138 18139 2002-09-20 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18140 18141 * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken 18142 mpq/double functions. 18143 18144 2002-09-18 Torbjorn Granlund <tege@swox.com> 18145 18146 * randmt.c (randget_mt): Fix typo. 18147 18148 2002-09-18 Kevin Ryde <kevin@swox.se> 18149 18150 * gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for 18151 the benefit places calling it with RANDS. 18152 18153 * randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety. 18154 18155 * tune/tuneup.c (sqr_karatsuba_threshold): Initialize to 18156 TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization. 18157 18158 * gmp.texi (Integer Comparisons): Remove mention of non-existent 18159 mpz_cmpabs_si, reported by Conrad Curry. 18160 18161 * tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed, 18162 gmp_randseed_ui and mpz_urandomb. 18163 18164 2002-09-18 Pedro Gimeno <pggimeno@wanadoo.es> 18165 18166 * tests/rand/gen.c: Add mt, remove lc and bbs. 18167 18168 * Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and 18169 randraw.c. 18170 18171 * randmt.c: New file. 18172 * gmp-h.in (gmp_randinit_mt): Add prototype. 18173 * randdef.c: Use gmp_randinit_mt. 18174 18175 * gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros. 18176 (gmp_randfnptr_t): New structure. 18177 (_gmp_rand): Now a macro not a function. 18178 * gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c. 18179 (__gmp_randstate_struct): Revise comments on field usage. 18180 * randsd.c, randclr.c: Use function pointer scheme. 18181 * randsdui.c: Use gmp_randseed. 18182 * randraw.c: Remove file. 18183 * randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c 18184 and randraw.c, use function pointer scheme, integrate seed==0/a==0 18185 into main case and fix case where bits(a) < m2exp. 18186 18187 * randlc.c: Remove file, never documented and never worked. 18188 * gmp-h.in (gmp_randinit_lc): Remove prototype. 18189 18190 2002-09-16 Torbjorn Granlund <tege@swox.com> 18191 18192 * mpn/alpha/mod_34lsub1.asm: New file. 18193 18194 2002-09-16 Kevin Ryde <kevin@swox.se> 18195 18196 * configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not 18197 currently used, and #define restrict upsets Microsoft C headers on 18198 win64. Reported by David Librik. 18199 18200 * configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some 18201 unnecessary -march=i486 fallbacks. 18202 18203 * gmp.texi (Notes for Particular Systems): Note cl /MD is required for 18204 Microsoft C and MINGW to cooperate on I/O. Explained by David Librik. 18205 (Language Bindings): Add linbox. 18206 * gmp.texi (Language Bindings): 18207 18208 2002-09-12 Kevin Ryde <kevin@swox.se> 18209 18210 * mpz/aorsmul_i.c: Allow for w==x overlap with nails. Test 18211 BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0. 18212 * tests/mpz/t-aorsmul.c: Test this. 18213 18214 * tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0 18215 * tune/speed.c: Add mpn_mod_34lsub1. 18216 18217 2002-09-10 Pedro Gimeno <pggimeno@wanadoo.es> 18218 18219 * rand.c: Remove old disabled BBS code. 18220 * mpf/urandomb.c: Use BITS_TO_LIMBS. 18221 18222 2002-09-10 Kevin Ryde <kevin@swox.se> 18223 18224 * gmp.texi (Multiplication Algorithms): FFT is now enabled by default. 18225 18226 2002-09-10 Pedro Gimeno <pggimeno@wanadoo.es> 18227 18228 * mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if 18229 _gmp_rand forever returns all "1" bits. 18230 * tests/rand/t-urndmm.c: New file 18231 * tests/rand/Makefile.am (check_PROGRAMS): Add it. 18232 18233 * gmp-impl.h (BITS_TO_LIMBS): New macro. 18234 * mpz/urandomb.c: Use it, and use MPZ_REALLOC. 18235 18236 2002-09-08 Kevin Ryde <kevin@swox.se> 18237 18238 * acinclude.m4 (GMP_GCC_WA_MCPU): New macro. 18239 * configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't 18240 new enough to know ev67. Reported by David Bremner. 18241 18242 2002-07-30 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18243 18244 * gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead. 18245 (__gmp_expr): Reorganise specializations, use __gmp_expr<T,T> not 18246 mpz_class etc. 18247 (mpfr evals): Remove mode parameter, was always 18248 __gmp_default_rounding_mode anyway. 18249 18250 2002-09-07 Kevin Ryde <kevin@swox.se> 18251 18252 * gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of 18253 applications using gcc -Wundef. 18254 18255 * longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas, 18256 since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67 18257 and ev68 which don't need it. Reported by David Bremner. 18258 18259 * gmp.texi (Demonstration Programs): New section, expanding on what 18260 was under "Build Options". 18261 (Converting Floats): Don't need \ for _ in @var within @math. 18262 Add and amend various index entries. 18263 18264 * demos/qcn.c: Add -p prime limit option. 18265 18266 2002-08-30 Kevin Ryde <kevin@swox.se> 18267 18268 * mpz/pprime_p.c: Handle small negatives with isprime, in particular 18269 must do so for n==-2. 18270 * tests/mpz/t-pprime_p.c: New file. 18271 * tests/mpz/Makefile.am: Add it. 18272 18273 2002-08-26 Torbjorn Granlund <tege@swox.com> 18274 18275 * gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs, 18276 reported by Paul Zimmermann. 18277 18278 2002-08-26 Kevin Ryde <kevin@swox.se> 18279 18280 * configure.in: Echo the ABI being tried for the compilers. 18281 (powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too. 18282 (AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c. 18283 18284 2002-08-24 Kevin Ryde <kevin@swox.se> 18285 18286 * configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_): 18287 Setup templates for these using AH_VERBATIM rather than acconfig.h, 18288 preferred by latest autoconf. Prune lists to just things used. 18289 * acconfig.h: Remove file. 18290 18291 * mpn/powerpc32/mode1o.asm: Forgot ASM_START. 18292 18293 * tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid 18294 confusion with autoconf outputs, and turn it into a "const" variable. 18295 18296 2002-08-23 Torbjorn Granlund <tege@swox.com> 18297 18298 * configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on 18299 ABI, not configuration triple. 18300 18301 * mpz/pprime_p.c: Partially undo last change--handle small and 18302 negative numbers in the same test. 18303 18304 2002-08-22 Kevin Ryde <kevin@swox.se> 18305 18306 * gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note 18307 mpn/generic/mul_fft.c is not nails-capable, and don't bother setting 18308 other FFT data for nails. 18309 18310 * configfsf.guess: Update to 2002-08-19. 18311 * configfsf.sub: Update to 2002-08-20. 18312 18313 * config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL 18314 message on AIX. 18315 18316 2002-08-20 Kevin Ryde <kevin@swox.se> 18317 18318 * gmp.texi (Build Options): Add ia64 under cpu types. 18319 (ABI and ISA): Describe IRIX 6 ABI=o32. 18320 (Notes for Particular Systems): Remove -march=pentiumpro, now ok. 18321 (Known Build Problems): Binutils 2.12 is ok for libgmp.a. 18322 (Emacs): New section. 18323 (Language Bindings): Update MLton URL, reported by Stephen Weeks. 18324 (Prime Testing Algorithm): New section. 18325 Don't put a blank line after @item in @table since it can make a page 18326 break between the heading and the entry. 18327 Misc tweaks elsewhere, in particular more index entries. 18328 18329 * mpz/millerrabin.c: Need x to be size+1 for change to urandomm. 18330 18331 * gmp-impl.h: Comments on the use of __GMP_DECLSPEC. 18332 18333 * tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the 18334 benefit of mingw. 18335 18336 * tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb): 18337 Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB. 18338 18339 2002-08-17 Kevin Ryde <kevin@swox.se> 18340 18341 * mpn/powerpc32/mode1o.asm: New file. 18342 * configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro. 18343 * mpn/asm-defs.m4: Use it to help setting up PIC. 18344 18345 * configure.in (AC_PREREQ): Bump to 2.53. 18346 18347 * mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro. 18348 (PROLOGUE_cpu): New macro, giving ALIGN(4) not 8. 18349 18350 2002-08-16 Torbjorn Granlund <tege@swox.com> 18351 18352 * mpn/m68k/lshift.asm: Fix typo in !scale_available_p code. 18353 * mpn/m68k/rshift.asm: Likewise. 18354 18355 2002-08-16 Kevin Ryde <kevin@swox.se> 18356 18357 * configure.in (--enable-profiling=instrument): New option. 18358 * gmp.texi (Profiling): Describe it. 18359 * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal): 18360 Add support. 18361 (call_mcount): Share PIC setups with call_instrument. 18362 * mpn/x86/*.asm: Use ret_internal. 18363 * mpn/asm-defs.m4 (m4_unquote): New macro. 18364 * tests/mpn/t-instrument.c: New file. 18365 * tests/mpn/Makefile.am: Add it. 18366 18367 * mpn/alpha/umul.asm: Add ASM_END. 18368 18369 2002-08-12 Kevin Ryde <kevin@swox.se> 18370 18371 * mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than 18372 using mpz_init etc. 18373 18374 * mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x, 18375 reported by Jason Moxham. Exclude x==n-1, ie. -1 mod n. Use 18376 gmp_randinit_default. 18377 18378 * mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos. 18379 18380 * tests/devel/try.c: Add mpn_copyi and mpn_copyd. 18381 18382 2002-08-09 Kevin Ryde <kevin@swox.se> 18383 18384 * Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp 18385 from MOSTLYCLEANFILES, automake does these itself now. 18386 18387 * */Makefile.in, aclocal.m4, configure, install-sh, missing, 18388 mkinstalldirs: Update to automake 1.6.3. 18389 18390 * mpn/ia64/README: Some notes on assembler syntax. 18391 18392 * mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body. 18393 * mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm, 18394 mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant 18395 instruction. 18396 * mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr. 18397 * mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position. 18398 * mpn/ia64/lorrshift.asm: Add .prologue stuff. 18399 18400 * configure.in (*-*-unicos*): Remove forcible --disable-shared, 18401 libtool gets this right itself now. 18402 18403 2002-08-07 Kevin Ryde <kevin@swox.se> 18404 18405 * mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from 18406 mpn/x86/pentium/mmx/popham.asm. 18407 * mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain 18408 mpn/x86/pentium/popcount.asm for the popcount. 18409 18410 * mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm. 18411 * configure.in (alpha*-*-*): Add umul to extra_functions. 18412 18413 * mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO. 18414 18415 2002-08-05 Torbjorn Granlund <tege@swox.com> 18416 18417 * acconfig.h: Remove spurious undefs for mpn_divrem_newton and 18418 mpn_divrem_classic. 18419 18420 2002-08-05 Kevin Ryde <kevin@swox.se> 18421 18422 * tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c, 18423 tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c, 18424 tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c, 18425 tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More 18426 care with long and mp_size_t parameters, for the benefit of K&R. 18427 18428 * demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm, 18429 demos/perl/test.pl: Add mpz_import and mpz_export. 18430 * demos/perl/GMP.pm: Remove "preliminary" warning. 18431 18432 * mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to 18433 pick up m4 defines etc. 18434 18435 * Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here, 18436 not libgmpxx_la_LIBADD, for the benefit of "make -j2". 18437 18438 * mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not 18439 optimal and might not be sufficient, but seems to work. 18440 18441 2002-08-03 Kevin Ryde <kevin@swox.se> 18442 18443 * gmp.texi (Profiling): Use a table and expand for clarity. 18444 (Integer Special Functions): New section for mpz_array_init, 18445 _mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use. 18446 18447 * configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared, 18448 libtool gets this right itself now. 18449 18450 2002-07-30 Kevin Ryde <kevin@swox.se> 18451 18452 * mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr, 18453 and make final stwu into an stw. 18454 18455 * gmp.texi (Known Build Problems): An easier workaround for DESTDIR, 18456 using LD_LIBRARY_PATH. 18457 (C++ Interface MPFR): Remove mpfrxx.h. 18458 18459 * mpfrxx.h: Remove file. 18460 * Makefile.am: Remove mpfrxx.h. 18461 * tests/cxx/Makefile.am: Add Gerardo's new test programs. 18462 18463 2002-07-30 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18464 18465 * gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc. Reorganise some 18466 macros for maintainability. Merge mpfrxx.h. 18467 * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates. 18468 * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, 18469 tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files. 18470 18471 2002-07-27 Kevin Ryde <kevin@swox.se> 18472 18473 * longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use 18474 __builtin_ffs for now, doesn't seem to work. 18475 18476 * configure.in: Establish CONFIG_SHELL to avoid a problem with 18477 AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*. 18478 18479 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to 18480 mpn_gcd_finda go dead. 18481 18482 * mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs. 18483 18484 2002-07-24 Kevin Ryde <kevin@swox.se> 18485 18486 * demos/primes.c: Use __GMP_PROTO and don't use signed, for the 18487 benefit of K&R. 18488 18489 * demos/calc/calclex.l: Add <string.h> for strcmp. 18490 18491 * mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux* 18492 and should be standard, rather than worrying about RODATA. 18493 18494 * gmp.texi (Function Classes): Add cross references. 18495 (Integer Import and Export): Fix return value grouping. 18496 18497 * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for 18498 ia64. Add notes on what the various styles are for. 18499 18500 * mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not 18501 to kill text on the same line. 18502 (EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro 18503 expansion in the rest of the EPILOGUE line. 18504 18505 2002-07-21 Kevin Ryde <kevin@swox.se> 18506 18507 * tune/speed.h: Fix some missing _PROTOs. 18508 18509 * Makefile.am (DISTCLEANFILES): Add configure.lineno. 18510 18511 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define 18512 HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in 18513 config.m4 too. 18514 * mpn/ia64/invert_limb.asm: Add big-endian data. 18515 18516 * tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type. 18517 18518 2002-07-20 Kevin Ryde <kevin@swox.se> 18519 18520 * mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c: 18521 More care with long and mp_size_t parameters, for the benefit of K&R. 18522 18523 * gmp-impl.h (invert_limb): Use parens around macro arguments. 18524 (mpn_invert_limb): Give prototype and define unconditionally. 18525 18526 * gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New 18527 macros. 18528 * mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go 18529 dead when not wanted. 18530 18531 2002-07-17 Kevin Ryde <kevin@swox.se> 18532 18533 * tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are 18534 that type, for the benefit of hpux ia64 bundled cc ABI=64. 18535 18536 * configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get 18537 the right headers for ansi2knr. 18538 18539 * acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS 18540 with $CCAS and when linking, as done by the makefiles. 18541 (GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics. 18542 18543 * gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*. 18544 (GMP_UINT32): New define, 32 bit type for ieee_double_extract. 18545 * configure.in: Add AC_CHECK_SIZEOF unsigned. 18546 * configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove. 18547 (GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here. 18548 18549 * configure.in, acinclude.m4 (GMP_C_SIZES): Remove. 18550 * acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this 18551 scheme, not required. 18552 * configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for 18553 these unconditionally, check mp_limb_t against gmp-mparam.h values. 18554 * gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on 18555 SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h. 18556 (BITS_PER_ULONG): Define here now. 18557 18558 * gmp.texi (ABI and ISA): Add HP-UX IA-64 choices. 18559 (Random State Initialization): Typo in m2exp described for 18560 gmp_randinit_lc_2exp_size. 18561 (Formatted Output Functions): Clarify gmp_obstack_printf a bit. 18562 (Formatted Input Strings): Typo in %n summary. 18563 18564 * mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since 18565 endianness detection is now cross-compile friendly. 18566 * mpz/out_raw.c (HTON_LIMB_STORE): Ditto. 18567 18568 * mpz/fib_ui.c: Nailify. 18569 * mpz/random.c: Nailify. 18570 18571 * mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent 18572 float rounding gremlin on powerpc. 18573 18574 2002-07-15 Kevin Ryde <kevin@swox.se> 18575 18576 * Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64 18577 make doesn't like that. 18578 18579 * mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after 18580 .mib etc, for the benefit of hpux. 18581 18582 * configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for 18583 consistency. 18584 18585 * gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1. 18586 Reported by nix@esperi.demon.co.uk. 18587 * mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto. 18588 18589 2002-07-13 Kevin Ryde <kevin@swox.se> 18590 18591 * mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm. 18592 18593 * tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): 18594 Always zero for native mpn_divexact_1, mpn_modexact_1_odd. 18595 18596 * gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure, 18597 ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines. 18598 * acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes. 18599 18600 * gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3, 18601 mpn_addmul_4): Add prototypes and defines. 18602 18603 * gmp.texi (Number Theoretic Functions): Clarify return value. 18604 Reported by Peter Keller. 18605 18606 2002-07-10 Kevin Ryde <kevin@swox.se> 18607 18608 * configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of 18609 AM_PROG_LEX, now ok when lex is missing. 18610 18611 * longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab 18612 variant under LONGLONG_STANDALONE. 18613 (count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs. 18614 18615 * gmp-impl.h (popc_limb): Add an ia64 asm version. 18616 (DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG 18617 which is in gcc but means something unrelated in MS Visual C 7.0. 18618 Reported by David Librik. 18619 18620 * mpz/divexact.c: Add an ASSERT that den divides num. 18621 18622 * mpn/asm-defs.m4 (LDEF): New macro. 18623 (INT32, INT64): Use it. 18624 * mpn/pa32/*.asm: Use it. 18625 * mpn/pa32/README: Update notes on labels. 18626 18627 * tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb): 18628 Renamed from refmpn_bswap_limb. 18629 * tests/t-bswap.c: Add tests_start/tests_end for randomization. 18630 18631 * tests/refmpn.c, tests/tests.h (ref_popc_limb): New function. 18632 * tests/t-popc.c: New file. 18633 * tests/Makefile.am: Add it. 18634 18635 * mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not 18636 accepted by ia64-*-hpux*. 18637 18638 * acinclude.m4 (GMP_ASM_BYTE): New macro. 18639 (GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it. 18640 (GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host. 18641 (GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*. 18642 (GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host. 18643 (GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to 18644 test program, required by ia64-*-hpux*. 18645 (GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:", 18646 the former being how it's currently being used in fact. 18647 18648 * configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro. 18649 * configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes. 18650 18651 2002-07-06 Kevin Ryde <kevin@swox.se> 18652 18653 * tests/cxx/t-allfuns.cc: New file. 18654 * tests/cxx/Makefile.am: Add it. 18655 18656 * mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes 18657 to zero. Use _mpz_realloc return value. 18658 18659 * gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input): 18660 Cross reference to Headers and Libraries for libgmpxx stuff. 18661 (Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS. 18662 mpn_set_str takes "unsigned char *", reported by Mark Sofroniou. 18663 (C++ Interface General): Describe linking with libgmpxx and libgmp. 18664 18665 2002-07-01 Kevin Ryde <kevin@swox.se> 18666 18667 * tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in 18668 one(), tune just one at a time and let the callers hand dependencies. 18669 Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD 18670 oddities in tune_sqr() instead. 18671 18672 * mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h, 18673 longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl, 18674 tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r 18675 rather than having variant parameter order for mpn_umul_ppmm and 18676 mpn_udiv_qrnnd on pa64. 18677 18678 * gmp-h.in (mpz_export): Remove a spurious parameter name. 18679 * gmp-impl.h (mpn_rootrem): Use __MPN. 18680 18681 2002-06-29 Kevin Ryde <kevin@swox.se> 18682 18683 * longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the 18684 general mechanism for that suffices. 18685 18686 * mpf/inp_str.c: Fix returned count of chars read, reported by Paul 18687 Zimmermann. Also fix a memory leak for invalid input. 18688 * tests/mpf/t-inp_str.c: New file. 18689 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 18690 18691 * tests/devel/try.c (mpn_mod_34lsub1): Only exists for 18692 GMP_NUMB_BITS%4==0. 18693 (SIZE2_FIRST): Respect option_firstsize2 for "fraction" case. 18694 18695 * mpn/generic/diveby3.c: Further nailifications. 18696 * gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd. 18697 (GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants. 18698 * tests/t-constants.c: Check them. 18699 18700 * gmp-h.in (__GMP_CRAY_Pragma): New macro. 18701 (__GMPN_COPY_REST): Use it. 18702 * gmp-impl.h (CRAY_Pragma): Use it. 18703 18704 2002-06-25 Kevin Ryde <kevin@swox.se> 18705 18706 * mpz/import.c, mpz/export.c: Cast data pointer through "char *" in 18707 alignment tests, for the benefit of Cray vector systems. 18708 18709 * configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok 18710 with current code. 18711 * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove 18712 macros, no longer needed 18713 18714 * acinclude.m4 (GMP_ASM_RODATA): Remove temporary files. 18715 18716 * configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication 18717 through AC_REQUIRE. 18718 18719 2002-06-23 Kevin Ryde <kevin@swox.se> 18720 18721 * tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just 18722 that they're non-zero. 18723 18724 * acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output 18725 exactly, rather than parsing it with GMP_GCC_VERSION_GE. 18726 (GMP_ASM_UNDERSCORE): Use GLOBL_ATTR. 18727 18728 * mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm: 18729 Renamed from udiv_qrnnd.asm, for consistency with other udiv's. 18730 * mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise. 18731 * configure.in (hppa*-*-*): Update extra_functions. 18732 (NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from 18733 nails-neutral list, no longer needed. 18734 18735 * gmp-h.in (__DECC): Add notes on testing this for ANSI-ness. 18736 (__GMP_EXTERN_INLINE): Add static __inline for DEC C. 18737 (mpz_mod_ui): Move up to main section, it's still documented. 18738 18739 2002-06-22 Kevin Ryde <kevin@swox.se> 18740 18741 * mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c, 18742 mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups. 18743 * gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro. 18744 18745 * mpn/generic/mod_34lsub1.c: Nailify. 18746 * tests/devel/try.c (CNST_34LSUB1): Nailify. 18747 * gmp-impl.h (ADDC_LIMB): New macro. 18748 18749 * gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default 18750 base=10 and ndigits=0. 18751 (mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add 18752 versions accepting "const char *". 18753 * mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and 18754 uncommenting set_str and operator=. 18755 * gmp.texi (C++ Interface Integers, C++ Interface Rationals) 18756 (C++ Interface Floats): Update. 18757 18758 * gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions. 18759 (const, signed): Move to near top of file, fixes --enable-alloca=debug 18760 on K&R. 18761 18762 * gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c. 18763 * dumbmp.c (mpz_init_set_ui): New function. 18764 * Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c. 18765 * gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table 18766 (for the benefit of tests/mpz/t-fib_ui.c). 18767 * mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code. 18768 18769 * Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES, 18770 use += more. 18771 18772 * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES): 18773 Don't let "unknown" get into the cache variables. 18774 (GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix. 18775 (GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs. 18776 (GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct 18777 result if CPP_FOR_BUILD overrides the cache variable. 18778 (GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from 18779 GMP_PROG_CC_FOR_BUILD. Allow for "conftest" default compiler output. 18780 * configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this, 18781 separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD. 18782 18783 * configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ... 18784 * Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange 18785 MPN_OBJECTS to be common between libgmp and libmp. 18786 18787 2002-06-20 Torbjorn Granlund <tege@swox.com> 18788 18789 * mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if 18790 basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times 18791 the corresponding *_THRESHOLD. 18792 18793 2002-06-20 Kevin Ryde <kevin@swox.se> 18794 18795 * mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE. 18796 Reported by Paul Zimmermann. 18797 18798 * configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define 18799 to 1", for clarity as per autoconf. 18800 * acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates. 18801 18802 2002-06-20 Gerardo Ballabio <gerardo.ballabio@unimib.it> 18803 18804 * gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and 18805 mpq_class::get_den return mpz_class& as per the documentation. 18806 Reported by Roberto Bagnara. 18807 18808 2002-06-18 Kevin Ryde <kevin@swox.se> 18809 18810 * tests/rand/t-lc2exp.c: New file. 18811 * tests/rand/Makefile.am: Add it, and use tests/libtests.la. 18812 18813 * randraw.c (lc): Pad seed==0 case with zero limbs, return same 18814 (m2exp+1)/2 bits as normal, right shift "c" result as normal. 18815 18816 * configure.in: Don't bother with line numbers in some diagnostics. 18817 (*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity. 18818 18819 * tests/mpz/Makefile.am, tests/mpq/Makefile.am, 18820 tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program 18821 temporaries, to get t-scanf.tmp and reduce future maintenance. 18822 18823 2002-06-16 Torbjorn Granlund <tege@swox.com> 18824 18825 * mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in 18826 new `tmp' parameter. Trim allocation needs by reusing input parameter. 18827 18828 2002-06-15 Torbjorn Granlund <tege@swox.com> 18829 18830 * mpn/sparc32/v9/udiv.asm: New file. 18831 18832 2002-06-15 Kevin Ryde <kevin@swox.se> 18833 18834 * acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw 18835 gcc 3.1 version number. Reported by Jim Fougeron. 18836 18837 * configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make 18838 AC_LIBTOOL_WIN32_DLL work with autoconf 2.53. 18839 18840 * acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value, 18841 not an expression, for the benefit of the gen-bases invocation. 18842 18843 * config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess. 18844 18845 2002-06-15 Paul Zimmermann <Paul.Zimmermann@loria.fr> 18846 18847 * mpfr/set_q.c: Allow for 1 bit numerator or denominator. 18848 18849 2002-06-14 Kevin Ryde <kevin@swox.se> 18850 18851 * configure.in (AC_C_BIGENDIAN): Use new style action parameters. 18852 18853 * randlc2x.c: Allow for a<0, allow for c>=2^m2exp. 18854 * randraw.c (lc): Allow for a==0. 18855 18856 * mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm. Don't know if float 18857 is the best way for v7, but it's what configure has chosen since gmp 3. 18858 * configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all, 18859 in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than 18860 udiv_fp previously used for v9 chips. 18861 18862 * gen-bases.c: New file, derived from mpn/mp_bases.c. 18863 * dumbmp.c: New file, mostly by Torbjorn, some by me. 18864 * configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD, 18865 GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD, 18866 GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros. 18867 (GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD. 18868 * Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c. 18869 * gmp-impl.h: Use mp_bases.h. 18870 * mpn/mp_bases.c: Remove file. 18871 * mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES. 18872 18873 * tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to 18874 double, fixes gcc 3.1 with -O4. Reported by Michael Lee. 18875 * configure.in (AC_C_VOLATILE): New macro. 18876 18877 * tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end. 18878 Don't mix varargs and fixed args functions, not good on x86_64. 18879 Reported by Marcus Meissner. 18880 18881 * Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in 18882 18883 * configure, config.in, INSTALL.autoconf: Update to autoconf 2.53. 18884 * */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure: 18885 Update to automake 1.6.1. 18886 * configfsf.guess, configfsf.sub: Update to 2002-05-29. 18887 18888 2002-06-12 Kevin Ryde <kevin@swox.se> 18889 18890 * acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version. 18891 (GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf. 18892 (GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe. 18893 18894 2002-06-09 Torbjorn Granlund <tege@swox.com> 18895 18896 * randraw.c (lc): Remove broken ASSERT_ALWAYS. 18897 18898 * mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD 18899 values. 18900 * mpn/x86/p6/mmx/gmp-mparam.h: New file. 18901 18902 2002-06-09 Kevin Ryde <kevin@swox.se> 18903 18904 * mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings. 18905 18906 * acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template. 18907 18908 * tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb, 18909 refmpn_big_base): New functions. 18910 * tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted 18911 unless it's being used. 18912 18913 * gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs. 18914 (Known Build Problems): Notes on MacOS and GCC. 18915 (Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong. 18916 (Low-level Functions): mpn_get_str accepts base==256. 18917 (Formatted Output Functions): Note output is not atomic. 18918 (Internals): Note mp_size_t for limb counts. 18919 18920 * mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove 18921 these types from mp.h, not needed. 18922 18923 * mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the 18924 parameter order to make sparc gcc 2.95.2 happy. 18925 18926 * doc/configuration: Notes on bootstrapping. 18927 18928 2002-06-08 Kevin Ryde <kevin@swox.se> 18929 18930 * mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is 18931 not affected by mpfr_set_machine_rnd_mode. 18932 18933 * mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32. 18934 18935 * configure.in (alphev56): Fix to use ev5 path. 18936 18937 2002-06-06 Kevin Ryde <kevin@swox.se> 18938 18939 * gmp-h.in: Use __gmp_const not const, in a number of places. 18940 18941 * configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and 18942 v8, for consistency with v9 choices. 18943 (sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64. 18944 (x86): Move MMX $path munging to before printout. 18945 (CCAS): Move upward to support this. 18946 18947 * gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes, 18948 add a version for arbitrary limb size, use GMP_NUMB_BITS. 18949 (modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS. 18950 18951 * gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros. 18952 (mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the 18953 fetch or mpn call likely, unconditionally calculate the alternative so 18954 as to avoid an "else" clause. 18955 * gmp-impl.h (LIKELY, UNLIKELY): Aliases. 18956 18957 * configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for 18958 MPFR_CONFIGS so it detects fesetround, and let it go through to 18959 $MPFR_LIBS. 18960 * mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND. 18961 18962 * tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer 18963 setups are bogus and have been seen failing on hppa. 18964 18965 * tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c: 18966 Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c. 18967 18968 2002-06-05 Torbjorn Granlund <tege@swox.com> 18969 18970 * tests/mpz/t-powm_ui.c Print proper routine name in error message. 18971 18972 2002-06-03 Kevin Ryde <kevin@swox.se> 18973 18974 * tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support. 18975 (FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor. 18976 (freq_measure): Use for mftb measuring too. 18977 * tune/powerpc.asm, tune/powerpc64.asm: New files. 18978 * configure.in, tune/Makefile.am: Add them. 18979 18980 * gmp-impl.h (popc_limb): Add versions for Cray and fallback for 18981 arbitrary limb size. 18982 18983 * mpn/sparc32/sparc-defs.m4: New file. 18984 * configure.in (sparc*-*-*): Use it. 18985 * acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro. 18986 * configure.in (sparc64): Use it. Also, use -Wc,-m64 for linking. 18987 * mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm, 18988 mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm, 18989 mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm, 18990 mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm, 18991 mpn/sparc64/submul_1.asm: Use REGISTER for .register. 18992 18993 2002-06-01 Kevin Ryde <kevin@swox.se> 18994 18995 * mpz/powm_ui.c: Fix for result range in certain circumstances. 18996 18997 * mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1. 18998 Anomaly pointed out by Alexander Kruppa. 18999 19000 2002-05-31 Torbjorn Granlund <tege@swox.com> 19001 19002 * mpz/export.c: Cast pointer via `unsigned long' when checking 19003 alignment to avoid compiler warnings. 19004 19005 2002-05-29 Kevin Ryde <kevin@swox.se> 19006 19007 * gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary 19008 limb size. 19009 * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define. 19010 19011 2002-05-27 Torbjorn Granlund <tege@swox.com> 19012 19013 * mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning 19014 when possible. Add code for mpn_addmul_5 and mpn_addmul_6. 19015 19016 2002-05-25 Kevin Ryde <kevin@swox.se> 19017 19018 * tune/tuneup.c: Misc nailifications, and disable preinv thresholds 19019 with nails. 19020 * tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and 19021 mpn_divrem_2. 19022 * mpz/powm.c (redc): Nailify q. 19023 19024 * tests/mpn/t-scan.c: Reduce the amount of testing, to go faster. 19025 19026 2002-05-23 Torbjorn Granlund <tege@swox.com> 19027 19028 * Version 4.1 released. 19029 19030 * mpn/alpha/ev6/nails/gmp-mparam.h: New file. 19031 19032 * tests/devel/add_n.c (refmpn_add_n): Nailify. 19033 * tests/devel/sub_n.c (refmpn_sub_n): Nailify. 19034 * tests/devel/addmul_1.c (refmpn_addmul_1): Nailify. 19035 * tests/devel/submul_1.c (refmpn_submul_1): Nailify. 19036 19037 * mpn/alpha/ev6/nails/add_n.asm: New file. 19038 * mpn/alpha/ev6/nails/sub_n.asm: New file. 19039 * mpn/alpha/ev6/nails/mul_1.asm: New file. 19040 * mpn/alpha/ev6/nails/submul_1.asm: New file. 19041 19042 2002-05-22 Torbjorn Granlund <tege@swox.com> 19043 19044 * mpn/alpha/ev6/nails/addmul_1.asm: New file. 19045 19046 * mpz/inp_str.c (mpz_inp_str_nowhite): Nailify. 19047 19048 * mpn/generic/mul_basecase.c: Update pointers before conditional 19049 MAX_LEFT break statements. 19050 19051 2002-05-21 Torbjorn Granlund <tege@swox.com> 19052 19053 * tests/mpz/t-gcd.c: Test mpz_gcd_ui. 19054 19055 * mpz/lcm_ui.c: Nailify. 19056 19057 * mpz/gcd_ui.c: Nailify. Make it work as documented, allowing 19058 NULL to be passed for result parameter. Fix gcd(0,0) case. 19059 19060 * mpz/set_str.c: Nailify. 19061 19062 * randlc2x.c (gmp_randinit_lc_2exp): Nailify. 19063 19064 From Jakub Jelinek: 19065 * longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]: 19066 Make it actually work. 19067 19068 2002-05-18 Torbjorn Granlund <tege@swox.com> 19069 19070 * mpf/ui_div.c: Shut up compiler warning. 19071 19072 * mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and 19073 mpn_addmul_4, as available. 19074 19075 * mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls. 19076 * mpn/alpha/ev6/nails/addmul_3.asm: Likewise 19077 * mpn/alpha/ev6/nails/addmul_4.asm: Likewise. 19078 19079 * configure.in (*-cray-unicos*): Back again to -hscalar0. 19080 (gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3, 19081 and addmul_4. 19082 * acconfig.h: Add #undefs for new optional mpn functions. 19083 19084 2002-05-18 Kevin Ryde <kevin@swox.se> 19085 19086 * gmp.texi (Integer Import and Export): Mention Cray unfilled words. 19087 19088 * mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of 19089 __gmp_extract_double. Reported by Henrik Johansson. 19090 19091 2002-05-17 Torbjorn Granlund <tege@swox.com> 19092 19093 * mpn/alpha/ev6/nails/addmul_2.asm: New file. 19094 * mpn/alpha/ev6/nails/addmul_3.asm: New file. 19095 * mpn/alpha/ev6/nails/addmul_4.asm: New file. 19096 19097 * mpn/generic/dump.c: Rewrite and nailify. 19098 19099 2002-05-16 Kevin Ryde <kevin@swox.se> 19100 19101 * mpfr/Makefile.am (EXTRA_DIST): Add BUGS file. 19102 19103 2002-05-15 Torbjorn Granlund <tege@swox.com> 19104 19105 * configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd 19106 as workaround for compiler bug. 19107 (mips64*-*-*): Pass just -O1 to cc, to work around compiler bug. 19108 19109 2002-05-14 Torbjorn Granlund <tege@swox.com> 19110 19111 * configure.in (*-cray-unicos*): Pass -hscalar0 to work around 19112 compiler bug for mpz/import.c. 19113 19114 2002-05-11 Torbjorn Granlund <tege@swox.com> 19115 19116 * mpz/import.c: Cast pointer via `unsigned long' when checking 19117 alignment to avoid compiler warnings. 19118 19119 * mpn/generic/rootrem.c: Adjust allocation of qp temporary area. 19120 19121 2002-05-09 Kevin Ryde <kevin@swox.se> 19122 19123 * mpz/import.c: Corrections to size store, special case tests, and 19124 general case ACCUMULATE. 19125 * tests/mpz/t-import.c, tests/mpz/t-export.c: More test data. 19126 19127 2002-05-09 Torbjorn Granlund <tege@swox.com> 19128 19129 * mpn/generic/rootrem.c: Use temp space for root, copy value in place 19130 before returning. 19131 * mpz/root.c: Don't allocate extra limb for root value. 19132 * mpz/perfpow.c: Undo last change. 19133 19134 2002-05-08 Torbjorn Granlund <tege@swox.com> 19135 19136 * gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make 19137 it not clash with caller. 19138 19139 * mpn/generic/rootrem.c: New file. 19140 * configure.in (gmp_mpn_functions): Add rootrem and pow_1. 19141 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and 19142 pow_1.c 19143 * gmp-impl.h (mpn_rootrem): Add declaration. 19144 * mpz/perfpow.c: Amend allocations for mpn_rootrem requirements. 19145 * mpz/root.c: Rewrite to use mpn_rootrem. 19146 19147 2002-05-08 Kevin Ryde <kevin@swox.se> 19148 19149 * gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values. 19150 19151 * mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction 19152 part, making the code match the documentation. 19153 19154 * gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub. 19155 19156 2002-05-07 Kevin Ryde <kevin@swox.se> 19157 19158 * mpn/powerpc32/README: New file. 19159 19160 * mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t. 19161 19162 * tune/README: Misc updates including sparc32/v9 smoothness, low res 19163 timebase, and mpn_add_n operand overlaps. 19164 * tune/many.pl: Add udiv.asm support. 19165 19166 * gmp.texi (Build Options): A couple of --build better as --host. 19167 (Known Build Problems, Notes for Package Builds): Add DESTDIR problem. 19168 (Compatibility with older versions): Compatible with 4.x versions. 19169 (Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose. 19170 (Integer Import and Export): New section. 19171 (Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1 19172 for operand of 0. 19173 (Language Bindings): Add GNU Pascal. 19174 (Low-level Functions): Add GMP_NUMB_MAX. 19175 19176 * tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c: 19177 New tests. 19178 * tests/mpz/Makefile.am: Add them. 19179 19180 * mpz/import.c, mpz/export.c: New files. 19181 * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them. 19182 19183 * gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h. 19184 * gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned. 19185 (CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE, 19186 ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros. 19187 (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN. 19188 19189 2002-05-07 Torbjorn Granlund <tege@swox.com> 19190 19191 * mpz/aors_ui.h: Nailify. 19192 19193 * tests/mpz/t-addsub.c: New file. 19194 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub. 19195 19196 * mpz/ui_sub.c: New file. 19197 * mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c. 19198 * Makefile.am (MPZ_OBJECTS): Ditto. 19199 * gmp-h.in (mpz_ui_sub): Add declaration. 19200 19201 * gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc 19202 return value. 19203 19204 * gmp-h.in (mpn_pow_1): Add declaration. 19205 19206 * mpn/generic/pow_1.c: Handle exp <= 1. Reverse rp/tp parity scheme 19207 for bn == 1 arm. 19208 19209 * Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT. 19210 19211 2002-05-06 Torbjorn Granlund <tege@swox.com> 19212 19213 * demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base. 19214 19215 * randraw.c (lc): Remove an unused variable. 19216 19217 * mpn/generic/get_str.c: Clarify an algorithm description. 19218 19219 * tests/mpf/t-trunc.c: Nailify. 19220 * tests/mpf/t-set_si.c: Disable for nails. 19221 19222 * mpf/cmp_si.c: Nailify. 19223 * mpf/cmp_ui.c: Nailify. 19224 * mpf/div.c: Nailify. 19225 * mpf/div_2exp.c: Nailify. 19226 * mpf/div_ui.c: Nailify. 19227 * mpf/eq.c: Nailify. 19228 * mpf/get_d.c: Nailify. 19229 * mpf/get_d_2exp.c: Nailify. 19230 * mpf/get_si.c: Nailify. 19231 * mpf/get_str.c: Nailify. 19232 * mpf/get_ui.c: Nailify. 19233 * mpf/mul_2exp.c: Nailify. 19234 * mpf/random2.c: Nailify. 19235 * mpf/set_q.c: Nailify. 19236 * mpf/set_si.c: Nailify. 19237 * mpf/set_str.c: Nailify. 19238 * mpf/set_ui.c: Nailify. 19239 * mpf/sub.c: Nailify. 19240 * mpf/ui_div.c: Nailify. 19241 * mpf/ui_sub.c: Nailify. 19242 * mpf/urandomb.c: Nailify. 19243 19244 * gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify. 19245 19246 * mpz/get_si.c: Misc variable name changes. 19247 19248 * mpf/fits_u.h: Rewrite - nailify. 19249 * mpf/fits_s.h: Likewise. 19250 19251 * mpz/mod.c: Disambiguate if-statement with extra {}. 19252 19253 * mpf/int_p.c: Fix type of size variables. 19254 * mpf/get_ui: Likewise. 19255 * mpf/get_si: Likewise. 19256 * mpq/equal.c: Likewise. 19257 * mpq/get_d.c: Likewise. 19258 * mpz/cmp_d.c: Likewise. 19259 * mpz/cmpabs_d.c: Likewise. 19260 * mpz/divis_2exp.c: Likewise. 19261 * mpz/kronuz.c: Likewise. 19262 * mpz/kronzu.c: Likewise. 19263 * mpz/kronzs.c: Likewise. 19264 * mpz/kronsz.c: Likewise. 19265 * mpz/scan0.c: Likewise. 19266 * mpz/scan1.c: Likewise. 19267 * mpz/tstbit.c: Likewise. 19268 * mpz/cong_2exp.c: Likewise. 19269 * mpz/divis.c: Likewise. 19270 19271 2002-05-04 Torbjorn Granlund <tege@swox.com> 19272 19273 * mpn/generic/gcd.c: Additional nailify changes. 19274 19275 2002-05-04 Kevin Ryde <kevin@swox.se> 19276 19277 * gmp-h.in (__GNU_MP_VERSION): Set to 4.1. 19278 * Makefile.am (-version-info): Bump for new release. 19279 19280 2002-04-30 Torbjorn Granlund <tege@swox.com> 19281 19282 * mpn/generic/divrem_1.c: Additional nailify changes. 19283 * mpn/generic/mod_1.c: Likewise. 19284 19285 * tests/mpq/t-get_d.c: Print floats with all 16 digits. 19286 19287 * mpq/get_d.c: Nailify. 19288 19289 * tests/mpq/t-set_f.c: Disable for nails. 19290 19291 * mpz/get_d.c: Nailify. 19292 19293 * gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify. 19294 19295 * gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it. 19296 19297 * extract-dbl.c: Nailify. 19298 19299 2002-04-29 Torbjorn Granlund <tege@swox.com> 19300 19301 * mpq/md_2exp.c (mord_2exp): Nailify. 19302 19303 * mpq/cmp_ui.c: Nailify. 19304 19305 * mpq/cmp.c (mpq_cmp): Nailify. 19306 19307 * mpn/generic/gcd.c: Nailify. GNUify code layout. 19308 19309 * mpn/generic/gcdext.c: Nailify. Misc changes. 19310 19311 * tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions. 19312 * tests/mpz/t-gcd.c: Likewise. 19313 19314 * mpz/gcd.c: Nailify. 19315 19316 * mpn/generic/random.c: Nailify. 19317 19318 * gmp-impl.h (modlimb_invert): Nailify. 19319 19320 2002-04-27 Torbjorn Granlund <tege@swox.com> 19321 19322 * mpn/generic/gcdext.c (div2): Remove qh parameter. 19323 (mpn_gcdext): Streamline double-limb code. 19324 Move GCDEXT_THRESHOLD check to after initial division. 19325 19326 2002-04-27 Kevin Ryde <kevin@swox.se> 19327 19328 * gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd 19329 GMP_NUMB_BITS. 19330 19331 * tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix 19332 SGI_CYCLECNTR_SIZE handling. 19333 19334 * demos/expr/exprfr.c: Add nan and inf constants. 19335 * demos/expr/t-expr.c: Exercise them. 19336 19337 2002-04-26 Torbjorn Granlund <tege@swox.com> 19338 19339 * mpz/cmp_ui.c: Fix overflow conditions for nails. 19340 19341 * gmp-h.in (mpz_get_ui): Fix typo from last change. 19342 19343 * mpz/n_pow_ui.c: Adjust allocation for nails. 19344 (GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX. 19345 Fix umul_ppmm invocation for for nails. 19346 19347 2002-04-24 Torbjorn Granlund <tege@swox.com> 19348 19349 * mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of 19350 mpn_divmod. 19351 19352 2002-04-24 Kevin Ryde <kevin@swox.se> 19353 19354 * configure.in (*-*-cygwin*): Give a sensible default command line 19355 limit, to avoid blowups reported by Jim Fougeron on windows 9x. 19356 (--enable-nails): Make the default 2, since mp_bases has data for that. 19357 19358 * mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to 19359 avoid a mis-conversion on alpha gcc 3.0.2. 19360 (_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa. 19361 19362 2002-04-23 Torbjorn Granlund <tege@swox.com> 19363 19364 * mpz/dive_ui.c: Fix typo. 19365 19366 * mpz/fits_s.h: Rewrite. 19367 19368 * mpz/jacobi.c: Nailify. 19369 * mpz/kronuz.c: Additional nailify changes. 19370 * mpz/kronsz.c: Likewise. 19371 19372 2002-04-23 Kevin Ryde <kevin@swox.se> 19373 19374 * demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr. 19375 19376 * mpz/divis_ui.c, mpz/cong_ui.c: Nailify. 19377 * mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify. 19378 * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c, 19379 mpn/generic/divrem_2.c: Nailify ASSERTs. 19380 * mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify. 19381 * mpz/inp_raw.c, mpz/out_raw.c: Nailify. 19382 * mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify. 19383 * mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify. 19384 * gmp-impl.h (NEG_MOD): Nailify. 19385 19386 * gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data. 19387 19388 * mpfr/get_d.c: Patch from Paul to avoid problem with constant folding 19389 in gcc on OSF. 19390 19391 * mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro. 19392 19393 2002-04-22 Torbjorn Granlund <tege@swox.com> 19394 19395 * demos/pexpr.c: Handle "binomial" operator. 19396 19397 * mpz/cmp_ui.c: Move assignments of `up' out of conditionals. 19398 19399 * mpn/generic/gcdext.c: Fix fencepost error in STAT code. 19400 19401 * gmp-impl.h (mpn_com_n): Nailify. 19402 19403 * tests/mpz/t-cdiv_ui.c: New file. 19404 * tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui. 19405 * mpz/cdiv_qr_ui.c: Nailify. 19406 * mpz/cdiv_q_ui.c: Nailify. 19407 * mpz/cdiv_r_ui.c: Nailify. 19408 * mpz/cdiv_ui.c: Nailify. 19409 19410 * tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an 19411 unsigned type. 19412 * tests/misc/t-scanf.c: Likewise. 19413 19414 * mpz/mul_i.h: Rework nails code to handle parameter overlap. 19415 19416 * tests/mpz/t-set_f.c: Disable for nails. 19417 19418 2002-04-21 Torbjorn Granlund <tege@swox.com> 19419 19420 * mpz/set_si.c: Add cast to support LONG_LONG_LIMB. 19421 * mpz/iset_si.c: Likewise. 19422 19423 * mpz/bin_ui.c: Nailify. 19424 * mpz/bin_uiui.c: Nailify. 19425 19426 * mpz/cmpabs_ui.c: Nailify. 19427 19428 * tests/mpz/t-aorsmul.c: Nailify. 19429 * mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better. 19430 19431 2002-04-20 Torbjorn Granlund <tege@swox.com> 19432 19433 * tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui. 19434 * tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui. 19435 19436 * mpz/tdiv_ui.c: Rewrite nails code. 19437 * mpz/fdiv_ui.c: Nailify. 19438 19439 * tests/mpz/t-tdiv_ui.c: Check returned remainders. 19440 * tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes. 19441 19442 * mpz/tdiv_q_ui.c: Remove spurious TMP_* calls. 19443 19444 * mpz/fdiv_qr_ui.c: Nailify. 19445 * mpz/fdiv_q_ui.c: Nailify. 19446 * mpz/fdiv_r_ui.c: Nailify. 19447 19448 * mpz/get_si.c: Misc nailify changes to shut up compiler warnings. 19449 19450 * mpz/ui_pow_ui.c: Fix typo in last change. 19451 19452 2002-04-20 Kevin Ryde <kevin@swox.se> 19453 19454 * tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types. 19455 19456 * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm 19457 (mpn_preinv_divrem_1): New entrypoint. 19458 (mpn_divrem_1): Avoid a branch when testing high<divisor. 19459 * mpn/asm-defs.m4: Add define_mpn(preinv_divrem_1). 19460 * configure.in: Allow divrem_1.asm to provide mpn_preinv_divrem_1. 19461 19462 * gmp-impl.h [nails]: Add #undefs of MUL_KARATSUBA_THRESHOLD etc, to 19463 override CPU gmp-mparam.h. Remove JACOBI_BASE_METHOD override since 19464 it's nails-neutral. 19465 19466 * tests/mpn/t-mp_bases.c: New file. 19467 * tests/mpn/Makefile.am (check_PROGRAMS): Add it. 19468 * tests/t-constants.c: Move MP_BASES constants checks to it. 19469 19470 * mpn/mp_bases.c: Fix big_base_inverted values for nails. 19471 * gmp-impl.h (MP_BASES_BIG_BASE_INVERTED_10, 19472 MP_BASES_NORMALIZATION_STEPS_10): Fix nails values. 19473 (MP_BASES_*): Remove GMP_NUMB_BITS == 30 data. 19474 19475 * mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm: Add 19476 NAILS_SUPPORT indicators. 19477 19478 * configure.in: Grep for NAILS_SUPPORT in cpu-specific code, and look 19479 in "nails" subdirectories, print path used. 19480 * mpn/asm-defs.m4 (NAILS_SUPPORT): New macro. 19481 19482 * mpfr/mpfr-test.h: Include config.h, for the benefit of test programs 19483 not using gmp-impl.h. 19484 19485 2002-04-19 Torbjorn Granlund <tege@swox.com> 19486 19487 * tests/mpz/t-scan.c: Nailify. 19488 19489 * mpz/tdiv_qr_ui.c: Nailify. 19490 * mpz/tdiv_q_ui.c: Nailify. 19491 * mpz/tdiv_r_ui.c: Nailify. 19492 * mpz/tdiv_ui.c: Nailify. 19493 19494 * mpz/cmp_ui.c: Nailify. 19495 19496 * mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings. 19497 19498 * mpz/scan0.c: Nailify. 19499 * mpz/scan1.c: Nailify. 19500 19501 * tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify. 19502 19503 2002-04-18 Torbjorn Granlund <tege@swox.com> 19504 19505 * mpz/aorsmul_i.c: Nailify. 19506 19507 * mpz/cmp_si.c: Nailify (botched). 19508 19509 * mpz/ui_pow_ui.c: Nailify. 19510 19511 * gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify. 19512 19513 * mpz/fits_s.h: Nailify. 19514 19515 * tests/mpz/bit.c (check_tstbit): Nailify. 19516 19517 From Paul Zimmermann: 19518 * mpn/generic/sqrtrem.c: Nailify. 19519 19520 * mpz/n_pow_ui.c: Nailify. 19521 19522 * mpz/cfdiv_r_2exp.c: Nailify. 19523 19524 * randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid 19525 extra MPN_COPY. 19526 19527 2002-04-17 Torbjorn Granlund <tege@swox.com> 19528 19529 * mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition. 19530 19531 * mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4. 19532 19533 * gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast 19534 division. 19535 19536 * mpn/generic/random2.c: Nailify. 19537 19538 * mpz/fac_ui.c: Nailify. 19539 19540 * mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings. 19541 19542 * mpn/generic/sqrtrem.c: Adopt to GNU coding standards. 19543 (mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem. 19544 Partial nailification. 19545 19546 * configure.in: As a temporary hack, clear extra_functions for nails 19547 builds. 19548 19549 * gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc 19550 warnings. 19551 19552 2002-04-17 Kevin Ryde <kevin@swox.se> 19553 19554 * texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2. 19555 * gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out 19556 in one run). 19557 19558 * mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify. 19559 19560 * tests/mpn/t-scan.c: New file. 19561 * tests/mpn/Makefile.am (check_PROGRAMS): Add it. 19562 19563 * tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for 19564 bit index. 19565 (refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New 19566 functions. 19567 19568 * mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case. 19569 19570 2002-04-17 Gerardo Ballabio <gerardo.ballabio@unimib.it> 19571 19572 * gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove 19573 mpfr_class::get_str2, use mp_rnd_t for rounding modes, use 19574 8*sizeof(double) for mpfr_t's holding doubles. 19575 19576 2002-04-17 Torbjorn Granlund <tege@swox.com> 19577 19578 * mpz/powm.c: Nailify. 19579 * mpz/powm_ui.c: Nailify. 19580 19581 2002-04-16 Torbjorn Granlund <tege@swox.com> 19582 19583 * mpz/hamdist.c: Nailify. 19584 * tests/misc.c (urandom): Nailify. 19585 19586 * mpz/get_si.c: Nailify. 19587 * gmp-h.in (mpz_get_ui): Nailify. Streamline (and probably upset 19588 memory checkers). 19589 19590 * gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS 19591 being 28, 60, and 63. 19592 * mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63. 19593 19594 * mpz/iset_si.c: Nailify. 19595 * mpz/iset_ui.c: Nailify 19596 19597 * tests/mpz/convert.c (main): Print test number in error message. 19598 19599 * mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails 19600 field after bignum division. 19601 19602 2002-04-16 Kevin Ryde <kevin@swox.se> 19603 19604 * gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h. 19605 19606 * gmp.texi: Use @documentdescription and @copying, per texinfo 4.2. 19607 (Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite 19608 mpn_set_str description, add nails section. 19609 (C++ Interface General): Remove bool from types that mix with classes. 19610 (Language Bindings): Add STklos, GNU Smalltalk, Regina. 19611 (Binary to Radix, Radix to Binary): Describe new code. 19612 (Assembler Cache Handling): More notes, mostly by Torbjorn. 19613 19614 * macos/configure (%vars): Remove __GMP from substitutions, per change 19615 to main configure. 19616 19617 * mpn/generic/dive_1.c: Nailify. 19618 * mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out 19619 alternate implementation. 19620 * gmp-impl.h (SUBC_LIMB): New macro. 19621 19622 * tests/devel/try.c (validate_divexact_1): Correction to compare. 19623 (udiv_qrnnd): New testing. 19624 (SHIFT_LIMIT): Nailify. 19625 (-b): New option, remove spurious "H" from getopt string. 19626 19627 * mpz/clrbit.c: Nailify. 19628 * tests/mpz/t-hamdist.c: Nailify. 19629 * gmp-impl.h (MPN_FIB2_SIZE): Nailify. 19630 (PP): Nailify conditionals. 19631 * tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify. 19632 19633 * configure.in, acinclude.m4: Establish GMP_NAIL_BITS and 19634 GMP_LIMB_BITS for gmp-h.in configure tests. 19635 19636 * mpfr/*, configure.in: Update to final mpfr 2.0.1. 19637 * mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff. 19638 * mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests. 19639 19640 2002-04-15 Torbjorn Granlund <tege@swox.com> 19641 19642 * mpn/generic/divrem_1.c (EXTRACT): Remove. 19643 19644 * tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string. 19645 19646 * mpz/rrandomb.c: Nailify. Needs further work. 19647 19648 * mpn/generic/mod_1.c: Nailify. 19649 19650 * gmp-impl.h: Set various *_THRESHOLD values to be used for nails to 19651 avoid not yet qualified algorithms. 19652 (MPZ_CHECK_FORMAT): Check that nail part is zero. 19653 19654 * tests/mpz/t-mul.c (main): Test squaring even for huge operands. 19655 (base_mul): Nailify. 19656 (dump_abort): Accept argument for error string. Print product 19657 difference. 19658 19659 * mpn/generic/set_str.c: Nailify. 19660 19661 * gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify. 19662 19663 2002-04-14 Torbjorn Granlund <tege@swox.com> 19664 19665 * randraw.c (lc): Return non-nonsense return value for seed=0 case. 19666 Check for m2exp being non-zero early; remove all other tests of m2exp. 19667 Remove redundant MPN_ZERO call. 19668 Let mpn_rshift put result in place to avoid extra MPN_COPY. 19669 Remove confusing comment before function `lc' describing BBS algorithm. 19670 Misc simplification and cleanups. 19671 Nailify. Needs further work. 19672 19673 * mpz/set_si.c: Nailify. 19674 * mpz/set_ui.c: Nailify. 19675 * mpz/mul_i.h: Nailify. 19676 19677 * tests/mpz/t-mul_i.c: Actually test _ui routines. Add some more test 19678 values. 19679 19680 * mpn/generic/mul_n.c: Finish nailifying toom3 code. 19681 19682 2002-04-13 Kevin Ryde <kevin@swox.se> 19683 19684 * mpfr/*: Update to another new mpfr 2.0.1. 19685 * configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am: 19686 Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build. 19687 19688 * mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a. 19689 19690 2002-04-11 Kevin Ryde <kevin@swox.se> 19691 19692 * mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine. 19693 19694 * mpfr/*, configure.in: Update to new mpfr 2.0.1. 19695 19696 * tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround): 19697 Fixes for nails. 19698 19699 * tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests. 19700 (MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only 19701 check these under USE_PREINV_DIVREM_1. 19702 * tests/t-modlinv.c: Nailify tests. 19703 19704 2002-04-11 Gerardo Ballabio <gerardo.ballabio@unimib.it> 19705 19706 * gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only 19707 need <iosfwd> now. 19708 19709 2002-04-11 Torbjorn Granlund <tege@swox.com> 19710 19711 * mpn/generic/diveby3.c: Nailify. 19712 * gmp-impl.h (MODLIMB_INVERSE_3): Nailify. 19713 19714 * mpn/generic/mul_n.c: Nailify Toom3 code. 19715 19716 2002-04-10 Kevin Ryde <kevin@swox.se> 19717 19718 * gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to 19719 3, as needed by nails case. 19720 19721 * mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl 19722 assert, add rp,n and up,n asserts. 19723 19724 * mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h. 19725 19726 2002-04-10 Torbjorn Granlund <tege@swox.com> 19727 19728 * mpn/generic/divrem_1.c: Nailify. Update mp_size_t variables to use 19729 `n' suffix instead of `size' suffix. 19730 * mpn/generic/divrem_2.c: Likewise. 19731 * mpn/generic/sb_divrem_mn.c: Nailify. 19732 * mpn/generic/tdiv_qr.c: Nailify. 19733 (SHL): Remove silly macro. 19734 19735 * mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by 19736 mpn_incr_u call. Handle nails in ws[n] increment. 19737 * mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise. 19738 19739 * gmp-h.in (GMP_NUMB_MASK): New #define. 19740 (__GMPN_AORS_1): Add version for nails. 19741 19742 * gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h. 19743 (mpn_incr_u): Don't assume `incr' is non-zero. 19744 (mpn_decr_u): Similarly. 19745 19746 2002-04-09 Kevin Ryde <kevin@swox.se> 19747 19748 * mpfr/*, configure.in: Update to mpfr 2.0.1. 19749 19750 * tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails. 19751 * tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function. 19752 19753 * mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert. 19754 19755 * mpn/pa32/hppa1_1/pa7100/addmul_1.asm, 19756 mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid 19757 ELF .size directive. Reported by LaMont Jones. 19758 19759 * tests/mpz/t-set_si.c: Add nails support. 19760 19761 2002-04-05 Torbjorn Granlund <tege@swox.com> 19762 19763 * gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions. 19764 (mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB. 19765 Add GMP_NUMB_BITS == 30 version. 19766 (__gmp_doprnt, etc): Remove parameter names. 19767 19768 * mpn/generic/mul_n.c: Nailify Karatsuba code. 19769 * mpn/generic/get_str.c: Nailify. 19770 * mpn/generic/sqr_basecase.c: Nailify. 19771 * mpn/generic/lshift.c: Nailify. 19772 * mpn/generic/rshift.c: Likewise. 19773 * mpn/generic/add_n.c: Nailify. Revamp non-nail code. 19774 * mpn/generic/sub_n.c: Likewise. 19775 * mpn/generic/mul_1.c: Likewise. 19776 * mpn/generic/addmul_1.c: Likewise. 19777 * mpn/generic/submul_1.c: Likewise. 19778 19779 2002-04-02 Kevin Ryde <kevin@swox.se> 19780 19781 * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]: 19782 Corrections to constraints, and restrict to bigendian. 19783 19784 2002-03-31 Kevin Ryde <kevin@swox.se> 19785 19786 * tests/mpz/dive.c: Better diagnostics. 19787 19788 * tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests. 19789 19790 * tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest): 19791 New functions. 19792 19793 * tests/t-bswap.c: New file. 19794 * tests/Makefile.am (check_PROGRAMS): Add it. 19795 19796 * tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support. 19797 19798 * gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord, 19799 rename "n" to incr per generic versions, restrict to nails==0. 19800 (mpn_incr_u, mpn_decr_u): Add nails support. 19801 (GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros. 19802 19803 * tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New 19804 functions. 19805 * tests/trace.c: Handle NULL operands. 19806 19807 * tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary 19808 nail support. 19809 19810 * tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail, 19811 refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str, 19812 refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb): 19813 New functions. 19814 19815 * gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from 19816 ASSERT_MP_LIMB_T. 19817 19818 * mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put 19819 speeds after the copyright notice, so as to keep that clear. 19820 19821 2002-03-29 Kevin Ryde <kevin@swox.se> 19822 19823 * configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection, 19824 for 32-bit mode. 19825 19826 2002-03-28 Torbjorn Granlund <tege@swox.com> 19827 19828 * mpn: Fix spacing in many files. 19829 19830 * mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c. 19831 * mpn/generic/aors_n.c: Split into add_n.c and sub_n.c. 19832 19833 * mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb. Fix a comment. 19834 * mpn/pa64/sub_n.asm: Likewise. 19835 19836 * mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb. 19837 * mpn/pa64/addmul_1.asm: Likewise. 19838 * mpn/pa64/submul_1.asm: Likewise. 19839 19840 2002-03-28 Kevin Ryde <kevin@swox.se> 19841 19842 * gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp, 19843 reported by epl@unimelb.edu.au. 19844 (References): Update Burnikel and Ziegler URL, reported by Keith 19845 Briggs. 19846 19847 * gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from 19848 AC_SUBSTs, since autoconf says leading "_" in makefile variables is 19849 not portable. 19850 19851 * demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary. 19852 * configure.in, demos/expr/expr-config-h.in: Configs for this. 19853 19854 2002-03-27 Torbjorn Granlund <tege@swox.com> 19855 19856 * mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32. 19857 19858 * configure.in (path_20w): Remove pa64w. 19859 19860 * mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to 19861 that on PA8500. 19862 19863 2002-03-26 Torbjorn Granlund <tege@swox.com> 19864 19865 * mpn/pa32: New name for mpn/hppa. 19866 * configure.in: Corresponding changes. 19867 19868 * mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W. 19869 * mpn/pa64/umul_ppmm.S: Remove. 19870 19871 * mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W. 19872 * mpn/pa64w/udiv_qrnnd.asm: Remove. 19873 19874 2002-03-26 Kevin Ryde <kevin@swox.se> 19875 19876 * mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf 19877 handling in "double", for the benefit of alpha. 19878 19879 * configure (hppa2.0w): Set path to "pa64w pa64". 19880 19881 * acinclude.m4, configure.in (GMP_C_INLINE): New macro. 19882 * acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling. 19883 19884 2002-03-25 Torbjorn Granlund <tege@swox.com> 19885 19886 * mpn/pa64w/add_n.s: Remove. 19887 * mpn/pa64w/sub_n.s: Remove. 19888 * mpn/pa64w/lshift.s: Remove. 19889 * mpn/pa64w/rshift.s: Remove. 19890 * mpn/pa64w/mul_1.S: Remove. 19891 * mpn/pa64w/addmul_1.S: Remove. 19892 * mpn/pa64w/submul_1.S: Remove. 19893 * mpn/pa64w/sqr_diagonal.asm: Remove. 19894 19895 * mpn/pa64/mul_1.asm: New file with twice faster code; generalized 19896 for both 2.0N and 2.0W. 19897 * mpn/pa64/submul_1.asm: Likewise. 19898 * mpn/pa64/mul_1.S: Remove. 19899 * mpn/pa64/submul_1.S: Remove. 19900 19901 * mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W. 19902 19903 * mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W. 19904 * mpn/pa64/sub_n.asm: Likewise. 19905 * mpn/pa64/lshift.asm: Likewise. 19906 * mpn/pa64/rshift.asm: Likewise. 19907 * mpn/pa64/add_n.s: Remove. 19908 * mpn/pa64/sub_n.s: Remove. 19909 * mpn/pa64/lshift.s: Remove. 19910 * mpn/pa64/rshift.s: Remove. 19911 19912 2002-03-24 Kevin Ryde <kevin@swox.se> 19913 19914 * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros. 19915 * mpz/inp_raw.c, mpz/out_raw.c: Use them. 19916 * acconfig.h (HAVE_HOST_CPU): Add some powerpc types. 19917 19918 * mpn/powerpc32/750/com_n.asm: New file. 19919 19920 * mpfr/tests/tout_str.c: Disable random tests, since they fail on 19921 alphaev56-unknown-freebsd4.1 and do nothing by default. 19922 19923 * mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for 19924 the benefit of alpha. 19925 * mpfr/sqrt.c: Clear nan flag on -0. 19926 19927 * demos/factorize.c: Use mpn_random() instead of random(), to avoid 19928 portability problems. 19929 19930 * demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid 19931 warnings. 19932 19933 * demos/pexpr.c (setup_error_handler): Corrections to sigstack code. 19934 19935 * demos/calc/calc.y: Add some `;'s to make bison 1.34 happy. 19936 19937 2002-03-23 Torbjorn Granlund <tege@swox.com> 19938 19939 * mpn/pa64/addmul_1.asm: New file with twice faster code; generalized 19940 for both 2.0N and 2.0W. 19941 19942 2002-03-22 Kevin Ryde <kevin@swox.se> 19943 19944 * tune/time.c: Add SGI hardware counter measuring method, change some 19945 abort()s into ASSERT_FAIL()s. 19946 19947 * configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h. 19948 (AC_CHECK_FUNCS): Add syssgi. 19949 19950 * configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use 19951 -mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so 19952 denorms work. 19953 19954 * mpfr/isinteger.c: Fix a memory leak. 19955 19956 2002-03-21 Torbjorn Granlund <tege@swox.com> 19957 19958 * tune/speed.c (struct choice_t): Make `r' an mp_limb_t. 19959 19960 2002-03-21 Kevin Ryde <kevin@swox.se> 19961 19962 * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an 19963 AH_VERBATIM and better explanation. 19964 * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE 19965 constants. 19966 19967 * gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned 19968 by mpz_gcdext. 19969 19970 * demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an 19971 autoconf test for stack_t. 19972 19973 * configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c, 19974 tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec, 19975 don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and 19976 __GMP_LIBGMP_STATIC. 19977 19978 * gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of 19979 tests/t-constants.c. 19980 19981 * tune/many.pl, tune/speed.h: Remove suffix hack for back.asm. 19982 19983 2002-03-21 Paul Zimmermann <Paul.Zimmermann@loria.fr> 19984 19985 * mpfr/sin_cos.c (mpfr_sin_cos): New file. 19986 * mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it. 19987 * mpfr/tan.c: Fix sign in 2nd and 4th quadrants. 19988 19989 * mpfr/log10.c: Fix hangs on certain inputs. 19990 19991 2002-03-20 Torbjorn Granlund <tege@swox.com> 19992 19993 * demos/pexpr.c (setup_error_handler): Declare `s', the first 19994 sigaltstack parameter, using `stack_t' just on AIX. 19995 19996 2002-03-19 Torbjorn Granlund <tege@swox.com> 19997 19998 * mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead 19999 of the callee-saves r30 and r31. 20000 20001 2002-03-19 Kevin Ryde <kevin@swox.se> 20002 20003 * tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where 20004 previously got the wrong result from "bogomips". 20005 20006 * mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on 20007 750, and smaller too. 20008 * mpn/powerpc32/*.asm: Use L(), add some measured speeds. 20009 20010 * longlong.h (count_trailing_zeros) [vax]: Add a version using ffs, 20011 but commented out. 20012 20013 2002-03-17 Kevin Ryde <kevin@swox.se> 20014 20015 * tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional 20016 ".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops. 20017 Remove mpn_add_n_inplace and mpn_add_n_self. 20018 * tune/many.pl: Fix MULFUNC_PROLOGUE parsing. 20019 20020 * gmp.texi (Known Build Problems): Note `make' problem with long 20021 libgmp.la dependencies list. 20022 20023 * printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent 20024 HAVE_SIZE_T, just use size_t unconditionally. 20025 * printf/doprnt.c (%zd etc): Fix 'z' type parsing. 20026 * tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests. 20027 20028 * configure.in: Use AC_COPYRIGHT. 20029 Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST). 20030 20031 * tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already 20032 gets an ansi2knr rule from nodist_tuneup_SOURCES. 20033 20034 * longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test 20035 HAVE_HOST_CPU_i686 too. 20036 20037 * mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if. 20038 20039 2002-03-14 Kevin Ryde <kevin@swox.se> 20040 20041 * mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm, 20042 mpn/x86/k6/mmx/com_n.asm: Add nails support. 20043 20044 * texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1). 20045 * gmp.texi (@ma): Remove, @math does this now. 20046 20047 * mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective 20048 outer loops. 20049 20050 * configure.in (--enable-cxx): Correction to the default stated in the 20051 help string. 20052 (power*-*-aix*, not powerpc): Use aix.m4, don't run 20053 GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4. 20054 20055 2002-03-13 Torbjorn Granlund <tege@swox.com> 20056 20057 * mpn/sparc32/gmp-mparam.h: New file. 20058 20059 2002-03-13 Kevin Ryde <kevin@swox.se> 20060 20061 * demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos, 20062 sin, rename log2 constant to loge2 to make room for log2 function. 20063 * demos/expr/t-expr.c: More tests. 20064 20065 * mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+". 20066 20067 * mpfr/acos.c: Avoid a memory leak for certain operands. 20068 20069 * acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro. 20070 20071 * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE, 20072 GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX): 20073 Change ac_objext to OBJEXT, which is the documented variable. 20074 20075 * config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc 20076 in the AIX test, since old versions don't have them all. 20077 20078 2002-03-11 Kevin Ryde <kevin@swox.se> 20079 20080 * configure.in (LIBC211): New AC_DEFINE, for mpfr. 20081 20082 * configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2 20083 to fall back on it, but detect it doesn't work with gcc 2.95. Use 20084 single mips-defs.m4 for both mips32 and mips64. 20085 * acinclude.m4 (GMP_GCC_MIPS_O32): New macro. 20086 * mpn/mips32/mips-defs.m4: Renamed from mips.m4. 20087 * mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4). 20088 20089 * mpn/powerpc32/750: New directory. 20090 * configure.in (powerpc740, powerpc750, powerpc7400): Use it. 20091 * mpn/powerpc32/750/gmp-mparam.h: New file. 20092 20093 * config.sub, gmp.texi (ultrasparc1): Remove this, just use plain 20094 "ultrasparc". 20095 20096 2002-03-10 Kevin Ryde <kevin@swox.se> 20097 20098 * mpfr: Update to 20020301, except internal_ceil_exp2.c, 20099 internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c, 20100 i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3. And sqrtrem.c 20101 removed since no longer required. 20102 * mpfr/mpfr.texi: Fix some formatting. 20103 * mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling. 20104 * mpfr/sinh.c: Patch by Paul to fix err calculation when t==0. 20105 * mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be 20106 sorted out. 20107 20108 * configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups 20109 for clarity. 20110 20111 * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New 20112 macros. 20113 20114 2002-03-07 Kevin Ryde <kevin@swox.se> 20115 20116 * gmp.texi (Build Options): Note all the ultrasparcs accepted. 20117 (Language Bindings): Add Math::BigInt::GMP. 20118 20119 * config.sub (ultrasparc2i): New cpu type. 20120 * config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection. 20121 20122 2002-03-05 Kevin Ryde <kevin@swox.se> 20123 20124 * longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67, 20125 alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h). 20126 (count_leading_zeros) [sparclite]: Fix parameter order (as per gcc 20127 longlong.h). 20128 * acconfig.h (HAVE_HOST_CPU_alphaev68): New define. 20129 20130 * config.guess [i?86-*-*]: Suppress error messages if compiler not 20131 found or test program won't run. 20132 [rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test. 20133 20134 2002-03-04 Torbjorn Granlund <tege@swox.com> 20135 20136 * mpn/generic/pow_1.c: New file. 20137 20138 2002-03-03 Kevin Ryde <kevin@swox.se> 20139 20140 * gmp.texi (Build Options): Note compiler must be able to fully link, 20141 add alphapca57 and alphaev68, give a clearer example of MPN_PATH 20142 (Debugging): Add notes on valgrind. 20143 (C++ Formatted Output): Clarify mpf showbase handling, in particular 20144 note "00.4" in octal. 20145 20146 * printf/doprntf.c: Do a showbase on octal float fractions, for 20147 instance "00.4" where previously it gave "0.4". 20148 * tests/cxx/t-ostream.cc: Update. 20149 20150 * gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test 20151 __WIN32__ for Borland C, reported by "delta trinity". 20152 20153 * gmp-h.in, mp-h.in: Use <cstddef> for size_t under C++, suggested by 20154 Hans Aberg some time ago. 20155 * gmp-h.in (<iosfwd>): Move to top of file for clarity. 20156 20157 * Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++. 20158 (CXX_OBJECTS): Add osfuns$U.lo. 20159 * dummy.cc: New file. 20160 * cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX. 20161 (libcxx_la_SOURCES): Add osfuns.cc. 20162 * gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs. 20163 * gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx. 20164 20165 * longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used. 20166 20167 * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to 20168 __totbits for nails. 20169 20170 * gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind. 20171 (JACOBI_0LS): Ditto, and fix parens around arguments. 20172 20173 * mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels 20174 unique, since simplified L() scheme no longer gives that effect. 20175 (notl_or_xorl_GMP_NUMB_MASK): New macro. 20176 Add m4_assert_numargs in a few places. 20177 20178 * configure.in (*sparc*): Fix cycle counter setups for ABI=64. 20179 20180 2002-02-28 Torbjorn Granlund <tege@swox.com> 20181 20182 * mpn/vax/gmp-mparam.h: New file. 20183 20184 2002-02-28 Kevin Ryde <kevin@swox.se> 20185 20186 * gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block, 20187 reported by librik@panix.com. 20188 20189 * gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT): 20190 Use __declspec(dllexport) and __declspec(dllimport) on Borland. 20191 * gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland. 20192 Reported by "delta trinity". 20193 20194 * gmp-impl.h (va_copy): Fall back on memcpy, not "=". 20195 20196 * mpn/generic/pre_mod_1.c: Add a comment about obsolescence. 20197 20198 * tune/time.c (MICROSECONDS_P): Don't trust time differences of 1 20199 microsecond. 20200 20201 * tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for 20202 test data strings, avoids warnings on Sun CC. 20203 20204 2002-02-27 Torbjorn Granlund <tege@swox.com> 20205 20206 * configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to 20207 disable some crazy -fast optimizations. 20208 20209 2002-02-25 Torbjorn Granlund <tege@swox.com> 20210 20211 * configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable 20212 denorm handling under -fast. 20213 20214 2002-02-25 Kevin Ryde <kevin@swox.se> 20215 20216 * configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc, 20217 provide an ev67 -> ev6 fallback. Fix -arch,-tune selection for DEC C. 20218 Allow ~ for space in optional options lists. 20219 20220 * tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler 20221 mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div. 20222 (tune_preinv_mod_1): Ditto with mpn_mod_1. 20223 20224 * tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type" 20225 parameter, try to make the code a bit clearer. 20226 20227 * tune/freq.c: Reduce the period measured for cycles versus 20228 gettimeofday, add cycles versus microsecond getrusage. 20229 20230 * mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong. 20231 20232 2002-02-24 Torbjorn Granlund <tege@swox.com> 20233 20234 * configure.in: For sparc under solaris2.[7-9], pass -fast instead of 20235 other optimization options. 20236 20237 2002-02-23 Kevin Ryde <kevin@swox.se> 20238 20239 * mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro. 20240 (PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl 20241 when GSYM_PREFIX non-empty. 20242 20243 * tune/time.c, tune/speed.h (speed_time_init): Include clock tick 20244 period in speed_time_string. 20245 * tune/time.c, configure.in (clock_gettime): New measuring method. 20246 20247 * tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid 20248 conflicts with a macro version in gmp-impl.h, eg. mpn_com_n. 20249 20250 2002-02-22 Torbjorn Granlund <tege@swox.com> 20251 20252 * demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte. 20253 20254 2002-02-22 Kevin Ryde <kevin@swox.se> 20255 20256 * tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic. 20257 20258 2002-02-20 Torbjorn Granlund <tege@swox.com> 20259 20260 * configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not 20261 `extra_functions'. 20262 20263 * printf/doprnt.c: Conditionally include inttypes.h. 20264 * printf/repl-vsnprintf.c: Likewise. 20265 * scanf/doscan.c: Likewise. 20266 20267 2002-02-20 Kevin Ryde <kevin@swox.se> 20268 20269 * mpn/x86/k7/mmx/com_n.asm: New file. 20270 20271 * mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc, 20272 to ensure they needn't live past the initial allocs in a normal build. 20273 20274 * mpn/generic/mod_34lsub1.c: Note this is for internal use. 20275 20276 2002-02-19 Torbjorn Granlund <tege@swox.com> 20277 20278 * Clean up *_THRESHOLD names. Many files affected. 20279 20280 * mpn/mips32: Asm-ify 32-bit mips code. 20281 Move files from `mips2' to `mips32' directory. 20282 * mpn/mips64: Move files from `mips3' to `mips64' directory. 20283 * configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'. 20284 20285 2002-02-19 Kevin Ryde <kevin@swox.se> 20286 20287 * acinclude.m4, configure.in (GMP_PROG_LEX): New macro. 20288 20289 * tune/tuneup.c (one): Start next threshold at a max of previous ones, 20290 in order to get a good starting point for TOOM3_SQR_THRESHOLD if 20291 KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only). 20292 20293 * configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE 20294 replacing GMP_MPARAM_H_FILENAME. Suggest a new file in a cpu specific 20295 subdirectory rather than mpn/generic. 20296 20297 * acinclude.m4 (POWERPC64_PATTERN): New macro. 20298 * configure.in (powerpc*-*-*): Use it. 20299 (powerpc*-*-*): Use umul in 32L and aix64. 20300 (mips*-*-*): Use umul, 32 and 64 bit versions. 20301 20302 2002-02-18 Torbjorn Granlund <tege@swox.com> 20303 20304 * longlong.h: Add basic x86-64 support. 20305 20306 2002-02-17 Torbjorn Granlund <tege@swox.com> 20307 20308 * demos/pexpr.c: Support `-X' for upper case hex, make `-x' output 20309 lower case hex. 20310 20311 * mpn/mips2/umul.s: Make it actually work. 20312 * mpn/mips3/umul.asm: New file. 20313 20314 * mpn/mips2/gmp-mparam.h: New file. 20315 20316 2002-02-16 Torbjorn Granlund <tege@swox.com> 20317 20318 * mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after 20319 umul_ppmm calls. 20320 20321 2002-02-16 Kevin Ryde <kevin@swox.se> 20322 20323 * config.guess (alpha-*-*): Do alpha exact cpu probes on any system, 20324 and only if configfsf.guess gives a plain "alpha". 20325 20326 * acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64 20327 linker invocation problem. 20328 20329 2002-02-15 Torbjorn Granlund <tege@swox.com> 20330 20331 * mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial 20332 digits using umul_ppmm, then switch to plain multiplication. 20333 20334 * config.guess: Rewrite Alpha subtype detection code for *bsd systems. 20335 20336 2002-02-15 Kevin Ryde <kevin@swox.se> 20337 20338 * gmp.texi (Build Options): Note powerpc exact cpu types. 20339 (Debugging): Advertise DEBUG in memory.c. 20340 20341 * config.sub, config.guess: Add some powerpc exact cpus. 20342 * configure.in: Add configs for them. 20343 20344 * memory.c [__NeXT__]: Remove unused #define of "static". 20345 (__gmp_default_allocate, __gmp_default_reallocate): Print size if 20346 allocation fails, don't use perror. 20347 20348 * gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes. 20349 20350 2002-02-14 Torbjorn Granlund <tege@swox.com> 20351 20352 * mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems. 20353 20354 2002-02-14 Kevin Ryde <kevin@swox.se> 20355 20356 * tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of 20357 alpha. 20358 20359 * macos/README: Bug reports to bug-gmp@gnu.org, clarify MacOS X a bit. 20360 20361 * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE. 20362 20363 * tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in 20364 some diagnostic printouts. 20365 * tune/time.c (speed_cycletime): Note can be 0.0. 20366 20367 2002-02-12 Torbjorn Granlund <tege@swox.com> 20368 20369 * mpn/alpha/mul_1.asm: Add mpn_mul_1c entry. 20370 20371 * mpn/pa64w/sqr_diagonal.asm: Use L() for labels. 20372 20373 2002-02-11 Torbjorn Granlund <tege@swox.com> 20374 20375 * mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to 20376 accommodate tuneup compiles. 20377 20378 2002-02-11 Kevin Ryde <kevin@swox.se> 20379 20380 * mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add 20381 noalign option. 20382 * mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align". 20383 20384 * gmp.texi (Debugging): Notes on Checker. 20385 (Other Multiplication): Move note on float FFTs to here. 20386 (Assembler Floating Point): New text and revisions by Torbjorn, 20387 picture formatting by me. 20388 Simplify tex pictures elsewhere a bit, share heights, eliminate some 20389 gaps at line joins. 20390 20391 2002-02-11 Torbjorn Granlund <tege@swox.com> 20392 20393 * mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction 20394 limbs and use multiplication for digit development. Trim allocation of 20395 buf. Get rid of code for !USE_MULTILIMB. 20396 20397 2002-02-10 Torbjorn Granlund <tege@swox.com> 20398 20399 * mpn/generic/set_str.c (mpn_set_str): Undo this: 20400 Change invocations of mpn_add_1 to instead use mpn_incr_u. 20401 20402 * tests/mpz/convert.c: Free str only after it is used in error message. 20403 20404 * mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10 20405 and generic bases. 20406 20407 * mpn/mp_bases.c: Add entries for base 256. Remove __ prefix from 20408 table name. 20409 * gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making 20410 it __gmpn_bases instead of __gmpn_mp_bases. 20411 (mp_bases): New #define. 20412 * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256. 20413 (SPEED_ROUTINE_MPN_GET_STR): Likewise. 20414 20415 2002-02-09 Torbjorn Granlund <tege@swox.com> 20416 20417 * mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available. 20418 Change invocations of mpn_add_1 to instead use mpn_incr_u. 20419 20420 2002-02-09 Kevin Ryde <kevin@swox.se> 20421 20422 * mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c, 20423 mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c, 20424 mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c, 20425 mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c, 20426 mpz/urandomb.c: Use GMP_NUMB_BITS. 20427 20428 * mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to 20429 stop it appearing uninitialized. 20430 20431 * gmp-h.in (__GMP_NOTHROW): New macro. 20432 (mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs, 20433 mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p, 20434 mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, 20435 mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui, 20436 mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1, 20437 mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap, 20438 mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p, 20439 mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p, 20440 mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si, 20441 mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw, 20442 mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount, 20443 mpn_sub_1): Use it. 20444 20445 * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from 20446 mpn_sizeinbase, and use GMP_NUMB_BITS. 20447 * mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use 20448 MPN_SIZEINBASE. 20449 * mpbsd/mtox.c: Use MPN_SIZEINBASE_16. 20450 20451 * configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove. 20452 * mpn/generic/sizeinbase.c: Remove file. 20453 20454 * gmp-impl.h (MPN_GET_STR_SIZE): Remove. 20455 * tests/mpn/t-g_str_size.c: Remove file. 20456 * tests/mpn/Makefile.am: Update. 20457 20458 * Makefile.am (dist-hook): Don't distribute cvs merge ".#" files. 20459 20460 2002-02-08 Torbjorn Granlund <tege@swox.com> 20461 20462 * configure.in: Override extra_functions for all sparcv8 systems, not 20463 just supersparc. 20464 20465 2002-02-06 Kevin Ryde <kevin@swox.se> 20466 20467 * tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned. 20468 * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in 20469 destination cache priming. 20470 20471 * printf/doprnt.c: Fix parsing of %s and %p conversions. 20472 * tests/misc/t-printf.c (check_misc): Add some tests. 20473 20474 2002-02-03 Torbjorn Granlund <tege@swox.com> 20475 20476 * mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc. 20477 20478 * mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb. 20479 Remove redundant chars_per_limb. Reverse 4 loops in basecase code for 20480 speed. Use MP_BASES_CHARS_PER_LIMB_10. 20481 20482 2002-02-03 Kevin Ryde <kevin@swox.se> 20483 20484 * acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a 20485 cross compile with the native nm, helps OSF for instance. 20486 (GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6, 20487 allow "N" from nm for OSF, allow for "t" for other systems, but prefer 20488 no mention of the symbol at all. 20489 20490 * tune/tuneup.c (print_define_remark): New function. 20491 Turn some "#if"s into plain "if"s. 20492 20493 * tune/tuneup.c, gmp-impl.h, tune/Makefile.am 20494 (GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these. 20495 * mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant 20496 GET_STR_PRECOMPUTE_THRESHOLD. 20497 20498 2002-02-02 Torbjorn Granlund <tege@swox.com> 20499 20500 * mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration. 20501 20502 2002-02-02 Kevin Ryde <kevin@swox.se> 20503 20504 * mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO 20505 to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check. 20506 20507 * tune/set_strb.c, tune/set_strs.c: New files. 20508 * tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them. 20509 * tune/tuneup.c: Tune SET_STR_THRESHOLD. 20510 (DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[]. 20511 20512 2002-02-01 Torbjorn Granlund <tege@swox.com> 20513 20514 * tests/mpz/convert.c: Increase operand size. Add (yet disabled) code 20515 for testing with random strings. 20516 20517 * mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic. 20518 (mpn_dc_get_str, mpn_sb_get_str): New functions. 20519 20520 2002-01-31 Kevin Ryde <kevin@swox.se> 20521 20522 * gmpxx.h (cmp): Renamed from "compare". 20523 20524 * configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling. 20525 (PROLOGUE): Allow new style optional second parameter when grepping. 20526 20527 * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE, 20528 GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX): 20529 Use $ac_objext for object filenames. 20530 (GMP_ASM_UNDERSCORE): Use CCAS to assemble. 20531 20532 * demos/pexpr-config-h.in: New file. 20533 * configure.in: Generate demos/pexpr-config.h. 20534 (AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction, 20535 sigaltstack, sigstack. 20536 * acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New 20537 macros. 20538 * demos/pexpr.c: Use pexpr-config.h, not various #ifdefs. 20539 (setup_error_handler): Use signal if sigaction not available, allow 20540 for SIGBUS missing on mingw. 20541 (main): Use time() for random seed if gettimeofday not available. 20542 (cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE. 20543 20544 2002-01-30 Torbjorn Granlund <tege@swox.com> 20545 20546 * mpn/generic/set_str.c: Rewrite to become sub-quadratic. 20547 (convert_blocks): New function. 20548 20549 2002-01-30 Kevin Ryde <kevin@swox.se> 20550 20551 * gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT, 20552 ASSERT_MPN, ASSERT_MP_LIMB_T): New macros. 20553 20554 * mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data 20555 generator program, share __gmp_fib_table initializers between bit 20556 sizes, cope with bit sizes other than those specifically setup. 20557 * gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding 20558 rearrangement of conditionals. 20559 * tests/mpz/t-fib_ui.c (check_fib_table): New test. 20560 20561 2002-01-28 Kevin Ryde <kevin@swox.se> 20562 20563 * mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use 20564 an expression for _mp_size. 20565 20566 * mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store 20567 dummy values to low limbs to stop them appearing uninitialized. 20568 20569 2002-01-26 Kevin Ryde <kevin@swox.se> 20570 20571 * mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and 20572 Vincent. 20573 20574 2002-01-24 Kevin Ryde <kevin@swox.se> 20575 20576 * configure.in: Extra quoting to get argument help messages right. 20577 20578 * gmp.texi (Efficiency): Suggest hex or octal for input and output. 20579 (Formatted Output Strings): Mention "*" for width and precision. 20580 20581 * mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c. 20582 Use POW2_P, use __mp_bases[base].big_base for log2(base). 20583 * configure.in, mpn/Makefile.am: Add it. 20584 * gmp-impl.h: Add prototype. 20585 * mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c, 20586 mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it. 20587 * mpz/get_str.c: Write directly to user buffer, skip at most one 20588 leading zero, eliminate special case for x==0. 20589 * mpbsd/mtox.c: Allocate exact result space at the start, eliminate 20590 special case for x==0. 20591 * mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase. 20592 20593 * configure.in (--enable-nails): New option. 20594 (GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h 20595 and config.m4. 20596 * gmp-h.in: Add templates. 20597 20598 * mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine 20599 error on AIX xlc. 20600 20601 2002-01-23 Torbjorn Granlund <tege@swox.com> 20602 20603 * mpn/generic/get_str.c: Correct type of `out_len'. 20604 20605 2002-01-22 Kevin Ryde <kevin@swox.se> 20606 20607 * mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs. 20608 20609 * mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift. 20610 20611 * mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0. 20612 20613 2002-01-21 Torbjorn Granlund <tege@swox.com> 20614 20615 * longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative 20616 declaration. 20617 (64-bit powerpc add_ssaaaa): Likewise. 20618 20619 2002-01-20 Kevin Ryde <kevin@swox.se> 20620 20621 * acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc 20622 solaris 2.7 problems. 20623 20624 2002-01-19 Torbjorn Granlund <tege@swox.com> 20625 20626 * demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1. 20627 (cleanup_and_exit): Improve error message wording. 20628 20629 2002-01-19 Kevin Ryde <kevin@swox.se> 20630 20631 * mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with 20632 gmp-impl.h. 20633 20634 2002-01-17 Torbjorn Granlund <tege@swox.com> 20635 20636 * mpfr/mpfr-test.h: Test "__hpux", not "hpux". Mask off mrand48 20637 return value to 31 bits to work around sloppy mpfr #include practices. 20638 20639 * mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h. 20640 Make sure to #include mpfr-test.h from all files that use random(). 20641 20642 2002-01-17 Kevin Ryde <kevin@swox.se> 20643 20644 * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro. 20645 * gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c, 20646 mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c, 20647 printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c, 20648 mpbsd/mtox.c: Some fixes to compile as C++. 20649 20650 * mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter, 20651 replacing COUNT_TRAILING_ZEROS_TIME test. Add a third method too. 20652 * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add 20653 measuring of mpn_jacobi_base methods. 20654 * tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files. 20655 * tune/tuneup.c (JACOBI_BASE_METHOD): Tune this. 20656 * mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro. 20657 20658 * gmp-h.in: Use __gmp prefix on variables in inlines. 20659 20660 * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused. 20661 20662 * mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB. 20663 Use CNST_LIMB for some constants. 20664 20665 2002-01-15 Kevin Ryde <kevin@swox.se> 20666 20667 * tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la. 20668 20669 * printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES. 20670 20671 * mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and 20672 mpf_get_str give the same for ndigits==0. 20673 20674 * mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a 20675 powerpc64 gcc 3.0 -O2 bug. 20676 20677 * tests/memory.c, tests/tests.h (tests_memory_validate): New function. 20678 20679 2002-01-14 Kevin Ryde <kevin@swox.se> 20680 20681 * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c, 20682 mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and 20683 UDIV_TIME, just default to preinv. 20684 * gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto. 20685 (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME 20686 and UDIV_TIME, make default thresholds 0. 20687 (UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros. 20688 * mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME, 20689 UDIV_NORM_PREINV_TIME): Remove macros. 20690 20691 * gmp.texi (Headers and Libraries): New section, being the header 20692 notes from "GMP Basics" and some new stuff. 20693 (Parameter Conventions): Notes on "const" parameters. 20694 (Formatted Output Strings): Add type N, tweak some wording. 20695 20696 * tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0. 20697 20698 2002-01-12 Kevin Ryde <kevin@swox.se> 20699 20700 * mpz/root.c: Add <stdlib.h>, for abort(). 20701 20702 * mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. 20703 * mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c, 20704 tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c, 20705 tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c, 20706 trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c, 20707 tui_div.c: Fixes for K&R. 20708 20709 * tests/misc/t-scanf.c (check_misc, check_misc): 20710 20711 * tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c: 20712 Avoid strings in ASSERT, not enjoyed by K&R. 20713 * gmp-impl.h (ASSERT): Note this. 20714 20715 * tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO. 20716 20717 * mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and 20718 sources in a different directory. 20719 20720 * printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double. 20721 20722 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c, 20723 mul_2.c, pre_divrem_1.c. 20724 20725 * gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n, 20726 mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c, 20727 mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc, 20728 mpn_submul_1c): Move to gmp-impl.h, since they're undocumented. 20729 20730 * gmp-impl.h (mpn_reciprocal): Remove, unused. 20731 20732 * tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS. 20733 20734 2002-01-11 Kevin Ryde <kevin@swox.se> 20735 20736 * mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L(). 20737 20738 2002-01-08 Kevin Ryde <kevin@swox.se> 20739 20740 * mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function 20741 name to EPILOGUE, check for missing or wrong function name EPILOGUE. 20742 * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4, 20743 mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4, 20744 mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a 20745 few more asserts. 20746 * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm, 20747 mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp" 20748 parameter on plain PROLOGUE. 20749 20750 * gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra 20751 limb, and doesn't clobber at all for power of 2 bases. 20752 (Language Bindings): Add python gmpy. 20753 20754 * mpz/get_str.c: Determine realloc size arithmetically. 20755 20756 * mpbsd/mtox.c: Size memory block returned to actual space needed. 20757 * gmp.texi (BSD Compatible Functions): Describe this. 20758 20759 * mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases. 20760 * mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a 20761 missing TMP_FREE. 20762 20763 * mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for 20764 mpn_get_str clobber. 20765 20766 * gmp-impl.h (MPN_GET_STR_SIZE): New macro. 20767 * mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c, 20768 tune/speed.h: Use it. 20769 * tests/mpn/t-g_str_size.c: New test. 20770 * tests/mpn/Makefile.am: Add it. 20771 20772 * gmp-impl.h (POW2_P): New macro. 20773 * mpn/generic/get_str.c, tests/misc.c: Use it. 20774 20775 * printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z. 20776 * tests/misc/t-printf.c: Add tests. 20777 * gmp-impl.h (ASSERT_CODE): New macro. 20778 20779 * tests/mpbsd/t-mtox.c: New test. 20780 * tests/mpbsd/Makefile.am: Add it. 20781 (allfuns_LDADD): Don't link against libgmp when testing everything in 20782 libmp can link. 20783 20784 2002-01-07 Torbjorn Granlund <tege@swox.com> 20785 20786 * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions. 20787 20788 2002-01-06 Kevin Ryde <kevin@swox.se> 20789 20790 * mpn/generic/pre_divrem_1.c: Don't support size==0. 20791 * tests/devel/try.c: Update. 20792 20793 * mpn/generic/get_str.c: Add special case for base==10. 20794 * gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10, 20795 MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New 20796 constants. 20797 * tests/t-constants.c: Add checks. 20798 * mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print 20799 all standard bits-per-limb by default. 20800 20801 * demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use 20802 __GMP_PROTO. 20803 20804 * gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to 20805 keep out of application namespace. 20806 20807 2002-01-04 Torbjorn Granlund <tege@swox.com> 20808 20809 * gmp-impl.h: Move _PROTO declaration to before its first usages. 20810 20811 2002-01-04 Kevin Ryde <kevin@swox.se> 20812 20813 * gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and 20814 don't use #ifndef just define it ourselves. 20815 * gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big 20816 edits internally, for the moment. 20817 20818 2002-01-03 Torbjorn Granlund <tege@swox.com> 20819 20820 * tune/speed.c (usage): Insert "\n\" into a string. 20821 20822 2001-12-30 Torbjorn Granlund <tege@swox.com> 20823 20824 * mpn/pa64/udiv_qrnnd.c: Remove file. 20825 * mpn/pa64w/udiv_qrnnd.c: Remove file. 20826 20827 * gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns 20828 indented by tab). 20829 (MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz". 20830 20831 * gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss, 20832 in one more case. 20833 20834 2001-12-30 Kevin Ryde <kevin@swox.se> 20835 20836 * mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro. 20837 Use "do while" for dig_per_u loop since it's non-zero. 20838 * acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates. 20839 20840 * mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c, 20841 mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h, 20842 tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c, 20843 tune/many.pl (mpn_mul_2): New parameter style. 20844 * gmp-impl.h (mpn_mul_2): Add prototype. 20845 * configure.in (gmp_mpn_functions_optional): Add mul_2. 20846 20847 * longlong.h (__vxworks__): Remove from powerpc tests, not correct, 20848 not on its own at least. 20849 20850 * tune/speed.c: Add "aas" to specify 0xAA..AA data. 20851 20852 * tune/tuneup.c (print_define_end): Indicate "never" and "always". 20853 20854 2001-12-29 Torbjorn Granlund <tege@swox.com> 20855 20856 * mpq/set_d.c: ANSI-fy. 20857 * mpz/invert.c: Use PTR and SIZ (cosmetic change). 20858 20859 * mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word. 20860 20861 2001-12-28 Torbjorn Granlund <tege@swox.com> 20862 20863 * mpn/sparc64/sqr_diagonal.asm: New file. 20864 20865 2001-12-28 Kevin Ryde <kevin@swox.se> 20866 20867 * mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop 20868 only until msize==1. 20869 20870 * tune/tuneup.c: Break up all() for clarity. 20871 (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain 20872 division udiv_qrnnd, not the tuned and possibly preinv version. 20873 20874 * tune/freq.c: Split sysctl and sysctlbyname probes into separate 20875 functions, shorten some identifiers, put descriptions inside 20876 functions, define functions unconditionally and do nothing if 20877 requisites not available. 20878 20879 * mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX. 20880 20881 * acinclude.m4, configure.in (GMP_C_RESTRICT): New macro. 20882 20883 * mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2). 20884 20885 * demos/calc/calc.y: Improve some error messages. 20886 20887 2001-12-28 Torbjorn Granlund <tege@swox.com> 20888 20889 * mpn/sparc64/mul_1.asm: Rename r72 -> r80. 20890 * mpn/sparc64/addmul_1.asm: Likewise. 20891 20892 2001-12-27 Torbjorn Granlund <tege@swox.com> 20893 20894 * mpn/generic/tdiv_qr.c: Misc formatting cleanups. 20895 For switch case 2, replace `dn' with its value (2). 20896 20897 2001-12-25 Torbjorn Granlund <tege@swox.com> 20898 20899 * tests/devel/mul_1.c: Add FIXED_XLIMB. 20900 * tests/devel/addmul_1.c: Likewise. 20901 * tests/devel/submul_1.c: Likewise. 20902 20903 * tests/devel/add_n.c: Improve error message. 20904 Accept command line argument for # of tests. 20905 * tests/devel/sub_n.c: Likewise. 20906 20907 * tests/devel/: Remove CLOCK settings. 20908 20909 * mpn/sparc32/v9/mul_1.asm: Rewrite. 20910 * mpn/sparc32/v9/addmul_1.asm: Rewrite. 20911 * mpn/sparc32/v9/submul_1.asm: Rewrite. 20912 20913 2001-12-24 Torbjorn Granlund <tege@swox.com> 20914 20915 * mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)). 20916 * mpn/sparc64/addmul_1.asm: Likewise. 20917 20918 2001-12-23 Torbjorn Granlund <tege@swox.com> 20919 20920 * mpn/generic/get_str.c: Move final ASSERT to just before zero fill 20921 loop. 20922 20923 2001-12-22 Torbjorn Granlund <tege@swox.com> 20924 20925 * mpn/generic/get_str.c: Move ASSERTs out of loops. Split digit 20926 generation code into two loops, saving a test of msize in the loop. 20927 20928 2001-12-22 Kevin Ryde <kevin@swox.se> 20929 20930 * mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting 20931 function name in local labels. 20932 20933 * mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of 20934 ASSERTs. 20935 20936 * mpn/generic/pre_divrem_1.c: New file. 20937 * configure.in (gmp_mpn_functions): Add it. 20938 * gmp-impl.h (mpn_preinv_divrem_1): Add prototype. 20939 (USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros. 20940 * tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c, 20941 tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and 20942 measuring. 20943 * tune/tuneup.c: Determine USE_PREINV_DIVREM_1. 20944 * tune/pre_divrem_1.c: New file. 20945 * tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function. 20946 20947 * tests/mpz/t-io_raw.c: New file. 20948 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 20949 20950 * mpz/inp_raw.c, mpz/out_raw.c: Rewrite. 20951 * acinclude.m4, configure.in (AC_C_BIGENDIAN): New test. 20952 * gmp-impl.h (BSWAP_LIMB): New macro. 20953 20954 * acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand 20955 executables will run, per AC_PROG_CC. This detects ABI=64 is unusable 20956 in a native sparc solaris 7 build with the kernel in 32-bit mode. 20957 * gmp.texi (ABI and ISA): Add notes on this, add an example configure 20958 setting an ABI. 20959 20960 * tune/tuneup.c, configure.in: Print the gmp-mparam.h filename. 20961 * tune/tuneup.c: Print the CPU frequency. 20962 20963 * tune/time.c, tune/speed.h: Add s390 "stck" method, flatten 20964 conditionals in speed_time_init a bit, use have_* variables to let 20965 some code go dead in speed_starttime and speed_endtime. 20966 20967 * tune/freq.c (speed_cpu_frequency_irix_hinv): New function. 20968 20969 * Makefile.am, configure.in: Restore mpfr. 20970 20971 * configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX. 20972 * demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add 20973 lucnum function. 20974 * demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC), 20975 $(LEX) and $(LEXLIB). 20976 * demos/calc/calcread.c, demos/calc/calc-common.h, 20977 demos/calc/calc-config-h.in, demos/calc/README: New files. 20978 20979 * configure.in: Put demos/expr configs in expr-config.h. 20980 * demos/expr/expr-config-h.in: New file. 20981 * demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs 20982 from expr-config.h. 20983 * demos/expr/Makefile.am: Update. 20984 20985 * demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious 20986 returns. 20987 20988 2001-12-20 Torbjorn Granlund <tege@swox.com> 20989 20990 * mpn/sparc64/mul_1.asm: Trim an instruction. 20991 * mpn/sparc64/addmul_1.asm: Likewise. 20992 20993 * mpn/ia64/add_n.asm: Rewrite. 20994 * mpn/ia64/sub_n.asm: Rewrite. 20995 20996 2001-12-19 Torbjorn Granlund <tege@swox.com> 20997 20998 * mpn/ia64/mul_1.asm: Rewrite. 20999 * mpn/ia64/addmul_1.asm: Rewrite. 21000 * mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS. 21001 21002 * tests/devel/mul_1.c: Improve error message. 21003 Accept command line argument for # of tests. 21004 * tests/devel/addmul_1.c: Likewise. 21005 * tests/devel/submul_1.c: Likewise. 21006 21007 2001-12-18 Torbjorn Granlund <tege@swox.com> 21008 21009 * mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000. 21010 21011 2001-12-18 Kevin Ryde <kevin@swox.se> 21012 21013 * gmpxx.h (gmp_randclass): Don't allow copy constructors or "=", 21014 implementation by Gerardo. 21015 21016 * gmp-h.in (operator<<, operator>>): Remove parameter names from 21017 prototypes, to keep out of user namespace. 21018 21019 * acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++. 21020 21021 2001-12-16 Torbjorn Granlund <tege@swox.com> 21022 21023 * mpn/sparc64/mul_1.asm: Rewrite. 21024 * mpn/sparc64/addmul_1.asm: Rewrite. 21025 * mpn/sparc64/submul_1.asm: Rewrite. 21026 21027 * mpn/sparc64/addmul1h.asm: Remove. 21028 * mpn/sparc64/submul1h.asm: Remove. 21029 * mpn/sparc64/mul1h.asm: Remove. 21030 21031 2001-12-15 Kevin Ryde <kevin@swox.se> 21032 21033 * gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow 21034 __GMP_INLINE_PROTOTYPES for whether to give prototype with inline. 21035 21036 * configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*, 21037 athlon-*-*, pentium4-*-*): Fall back on -march=pentium if 21038 -march=pentiumpro or higher is not good (eg. solaris cmov). 21039 21040 2001-12-12 Torbjorn Granlund <tege@swox.com> 21041 21042 * gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to 21043 powerpc version. 21044 21045 2001-12-12 Kevin Ryde <kevin@swox.se> 21046 21047 * acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc 21048 -march=pentiumpro on solaris 2.8. 21049 21050 * tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros 21051 and count_trailing_zeros macros. 21052 21053 * demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c. 21054 21055 * tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c. 21056 21057 2001-12-10 Torbjorn Granlund <tege@swox.com> 21058 21059 * mpn/s390/addmul_1.asm: New file. 21060 * mpn/s390/submul_1.asm: New file. 21061 * mpn/s390/mul_1.asm: New file. 21062 * mpn/s390/gmp-mparam.h: Update. 21063 21064 2001-12-07 Kevin Ryde <kevin@swox.se> 21065 21066 * gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of 21067 prototypes, for the benefit of Microsoft C. 21068 21069 * gmp.texi (Introduction to GMP): Mention ABI and ISA section. 21070 (Known Build Problems): Recommend GNU sed on solaris 2.6. 21071 (Assigning Integers): Direct feedback to bug-gmp. 21072 (References): Typo Knuth vol 2 is from 1998. 21073 21074 * gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default 21075 and gmp_randinit_lc_2exp_size. 21076 gmp.texi (C++ Interface Random Numbers): Describe them. 21077 21078 * tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is 21079 done when the localconv override doesn't work. Reported by Mike 21080 Jetzer. 21081 21082 * printf/doprnti.c: Don't showbase on a zero mpq denominator. 21083 * tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases. 21084 21085 2001-12-04 Kevin Ryde <kevin@swox.se> 21086 21087 * gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size 21088 for the sparc solaris 2.7 problem. 21089 (Reentrancy): SCO ctype.h affects all text-based input functions. 21090 (Formatted Output Strings): Correction to the mpf example. 21091 (Single Limb Division): Correction, should be q-1 not q+1. 21092 (Extended GCD): Clarify why single-limb is inferior. 21093 (Raw Output Internals): Clarify size is twos complement, note limb 21094 order means _mp_d doesn't get directly read or written. 21095 (Contributors): Clarify mpz_jacobi. 21096 And a couple of formatting tweaks elsewhere. 21097 21098 * tests/cxx/t-headers.cc: New file. 21099 * tests/cxx/Makefile.am: Add it. 21100 21101 * gmpxx.h: Add <strstream>, needed by mpf_class::get_str2. 21102 21103 * gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC. 21104 21105 2001-12-01 Torbjorn Granlund <tege@swox.com> 21106 21107 * Version 4.0 released. 21108 21109 * mpfr/README: Replace contents with explanation of why mpfr is gone. 21110 21111 2001-12-01 Kevin Ryde <kevin@swox.se> 21112 21113 * Makefile.am, configure.in: Temporarily remove mpfr, just leave a 21114 README. 21115 21116 * mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am. 21117 21118 2001-11-30 Gerardo Ballabio <ballabio@sissa.it> 21119 21120 * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files. 21121 * tests/cxx/Makefile.am (check_PROGRAMS): Add them. 21122 21123 2001-11-30 Kevin Ryde <kevin@swox.se> 21124 21125 * mpfr: Update to 2001-11-16. Patch TMP handling of agm.c and sqrt.c, 21126 use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil, 21127 disable an expression style assert in add1.c. 21128 21129 * mpn/s370: Rename to s390. 21130 * configure.in (s3[6-9]0*-*-*): Update. 21131 * mpn/Makefile.am (TARG_DIST): Add s390. 21132 21133 * mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since 21134 change to .h style. 21135 21136 2001-11-29 Torbjorn Granlund <tege@swox.com> 21137 21138 * gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp. 21139 * Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo. 21140 * mpf/Makefile.am: Add get_d_2exp.c. 21141 * mpz/Makefile.am: Add get_d_2exp.c. 21142 21143 2001-11-29 Kevin Ryde <kevin@swox.se> 21144 21145 * mpn/*/gmp-mparam.h: Update measured thresholds. 21146 * mpn/s370/gmp-mparam.h: New file. 21147 21148 * mpz/millerrabin.c: Mark for internal use only, for now. 21149 * gmp.texi (Number Theoretic Functions): Remove documentation. 21150 21151 2001-11-28 Torbjorn Granlund <tege@swox.com> 21152 21153 * mpf/get_d_2exp.c: New file. 21154 * mpz/get_d_2exp.c: New file. 21155 21156 * mpz/realloc2.c: Fix typo. Make more similar to mpz_realloc. 21157 * mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS. 21158 21159 2001-11-27 Gerardo Ballabio <ballabio@sissa.it> 21160 21161 * gmpxx.h, mpfrxx.h: Various updates and improvements. 21162 21163 2001-11-27 Kevin Ryde <kevin@swox.se> 21164 21165 * gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex 21166 for mp_bits_per_limb. 21167 21168 * demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's. 21169 * demos/perl/test.pl: Update for this, and for mpz_perfect_power_p 21170 handling of 0 and 1. 21171 21172 2001-11-26 Torbjorn Granlund <tege@swox.com> 21173 21174 * mpz/realloc.c: Clear variable when decreasing allocation to less than 21175 needed. Misc updates. 21176 21177 2001-11-25 Kevin Ryde <kevin@swox.se> 21178 21179 * tests/misc/t-locale.c: Avoid printf in the normal case, since the 21180 replacement localeconv breaks it on SunOS 4. 21181 21182 * gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx 21183 depends on libgmp from same GMP version. 21184 21185 * acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New 21186 test. 21187 * scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is 21188 writable, if necessary. 21189 21190 * tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always. 21191 * configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required. 21192 21193 * configure.in (none-*-*): Fix default CFLAGS setups. 21194 21195 * doc/configuration: Misc updates. 21196 21197 2001-11-23 Kevin Ryde <kevin@swox.se> 21198 21199 * mpz/init2.c, mpz/realloc2.c: New files. 21200 * Makefile.am, mpz/Makefile.am: Add them. 21201 * gmp-h.in: Add prototypes. 21202 * gmp.texi (Efficiency): Mention these instead of _mpz_realloc. 21203 (Initializing Integers): Add documentation, reword other parts. 21204 21205 2001-11-22 Torbjorn Granlund <tege@swox.com> 21206 21207 * mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop. 21208 * mpn/cray/ieee/submul_1.c: Likewise. 21209 21210 2001-11-20 Kevin Ryde <kevin@swox.se> 21211 21212 * gmp.texi (Known Build Problems): Note an out of memory on DJGPP. 21213 (Function Classes): Update function counts. 21214 Misc tweaks elsewhere. 21215 21216 * configure.in (AC_CHECK_DECLS): Add sscanf. 21217 * tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4. 21218 21219 * tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE 21220 consistency. 21221 21222 * mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake 21223 default, necessary for powerpc64 ABI=aix64. 21224 21225 2001-11-18 Torbjorn Granlund <tege@swox.com> 21226 21227 * mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs. 21228 21229 2001-11-18 Kevin Ryde <kevin@swox.se> 21230 21231 * configure.in (--enable-fft): Make this the default. 21232 * gmp.texi (Build Options): Update. 21233 21234 * Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by 21235 new mpz/powm.c. 21236 21237 * gmp.texi (Random State Initialization): Add gmp_randinit_default and 21238 gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete. 21239 (Random State Seeding): New section, taken from "Random State 21240 Initialization" and "Random Number Functions". 21241 21242 * configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc. 21243 * scanf/fscanffuns.c: Use these, for the benefit of SunOS 4. 21244 21245 * gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to 21246 gmp-impl.h now not required for inlined mpf. 21247 21248 * randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC 21249 selection from rand.c. 21250 * rand.c (gmp_randinit): Use it. 21251 * randdef.c (gmp_randinit_default): New file. 21252 * gmp-impl.h (RANDS): Use it. 21253 (ASSERT_CARRY): New macro. 21254 * gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add 21255 prototypes. 21256 * Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c. 21257 21258 * printf/asprntffuns.c: Include config.h before using its defines. 21259 21260 * gmp-impl.h: Move C++ <string> to top of file to avoid the memset 21261 redefine upsetting configure tests. Remove <iostream> since <iosfwd> 21262 in gmp.h suffices. 21263 21264 2001-11-16 Kevin Ryde <kevin@swox.se> 21265 21266 * gmp.texi (Integer Exponentiation): mpz_powm supports negative 21267 exponents. 21268 (Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted 21269 Input): Decimal point follows locale. 21270 (Formatted Output Strings): %n accepts any type. 21271 (Formatted Input Strings): New section. 21272 (Formatted Input Functions): New section. 21273 (C++ Class Interface): Corrections and clarifications suggested by 21274 Gerardo. 21275 21276 * scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c, 21277 scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c, 21278 scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files. 21279 * gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent 21280 additions. 21281 21282 * tests/misc: New directory. 21283 * tests/misc/Makefile.am: New file. 21284 * tests/misc/t-locale.c: New file. 21285 * tests/misc/t-printf.c: Moved from tests/printf. 21286 * tests/printf: Remove directory. 21287 * configure.in, tests/Makefile.am: Update. 21288 21289 * tests/cxx/t-locale.cc: New file. 21290 * tests/cxx/Makefile.am: Add it. 21291 21292 * mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point. 21293 21294 * acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic 21295 for current libtool, recognise non-PIC style mcount in windows DLLs. 21296 21297 * gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype. 21298 21299 * gmp-impl.h (__gmp_rands, __gmp_rands_initialized, 21300 modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test 21301 programs using them from a windows DLL. 21302 * longlong.h (__clz_tab): Ditto. 21303 21304 * mpn/x86/t-zdisp2.pl: New file. 21305 21306 * mpn/x86/pentium4/README: New file. 21307 21308 2001-11-15 Torbjorn Granlund <tege@swox.com> 21309 21310 * mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1. 21311 * tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm 21312 cases. 21313 21314 2001-11-14 Torbjorn Granlund <tege@swox.com> 21315 21316 * mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no 21317 redc). 21318 * mpz/powm.c: Adjust for negative b, after exponentiation done. Add 21319 (still disabled) code for handling negative exponents. Misc cleanups. 21320 21321 2001-11-14 Kevin Ryde <kevin@swox.se> 21322 21323 * mpf/out_str.c: Use localeconv for the decimal point. 21324 21325 * tests/misc.c (tests_rand_end): Use time() if gettimeofday() not 21326 available (eg. on mingw). 21327 21328 2001-11-11 Kevin Ryde <kevin@swox.se> 21329 21330 * gmp-h.in: Remove parameter names from prototypes, to keep out of 21331 application namespace. 21332 21333 2001-11-08 Kevin Ryde <kevin@swox.se> 21334 21335 * acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on 21336 Solaris 8. 21337 21338 * printf/doprnt.c: Support %n of all types, per glibc. 21339 21340 * gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c, 21341 mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c, 21342 mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order 21343 to leave open the possibility of keeping binary compatibility if mpf 21344 becomes mpfr. 21345 21346 * mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to 21347 force code size for computed jumps. 21348 * mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp 21349 to force good code alignment. 21350 * mpn/x86/x86-defs.m4 (Zdisp): More instructions. 21351 21352 * mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm, 21353 mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets. 21354 21355 * mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0. 21356 21357 2001-11-07 Torbjorn Granlund <tege@swox.com> 21358 21359 * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug. 21360 21361 * mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good 21362 idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm). 21363 21364 2001-11-06 Torbjorn Granlund <tege@swox.com> 21365 21366 * gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'. 21367 (MPN_COPY_DECR): Likewise. 21368 21369 2001-11-05 Torbjorn Granlund <tege@swox.com> 21370 21371 * mpz/powm.c: Call mpn functions, not mpz functions, for computation 21372 mod m. Streamline allocations to use a mixture of stack allocation and 21373 heap allocation. Add currently disabled phi(m) exponent reduction 21374 code. Misc optimizations and cleanups. 21375 21376 2001-11-05 Kevin Ryde <kevin@swox.se> 21377 21378 * mpq/inp_str.c: Remove unused variable "ret". 21379 21380 * mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the 21381 computed jumps hit the right spot on old gas. 21382 21383 * mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero. 21384 21385 * mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way 21386 the first \( \) pair is setup. 21387 (gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc. 21388 Misc tweaks to some comments. 21389 21390 2001-11-03 Torbjorn Granlund <tege@swox.com> 21391 21392 * tests/refmpn.c (refmpn_overlap_p): Reverse return values. 21393 21394 2001-11-02 Kevin Ryde <kevin@swox.se> 21395 21396 * tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no 21397 longer done by configure. 21398 21399 * mpn/x86/pentium4/mmx/popham.asm: New file. 21400 21401 * mpn/x86/x86-defs.m4 (psadbw): New macro. 21402 * mpn/x86/k7/mmx/popham.asm: Use it. 21403 21404 * tests/refmpn.c (refmpn_overlap_p): New function, independent of 21405 MPN_OVERLAP_P. 21406 21407 2001-10-31 Torbjorn Granlund <tege@swox.com> 21408 21409 * tests/mpz/t-powm.c: Print proper error message when finding 21410 discrepancy. 21411 21412 2001-10-31 Kevin Ryde <kevin@swox.se> 21413 21414 * mpn/x86/pentium/mod_34lsub1.asm: New file. 21415 * mpn/x86/k7/mod_34lsub1.asm: New file. 21416 * mpn/x86/mod_34lsub1.asm: New file. 21417 21418 2001-10-30 Kevin Ryde <kevin@swox.se> 21419 21420 * tests/printf/t-printf.c (check_misc): Add checks from the glibc docs. 21421 (check_vasprintf, check_vsnprintf): Run these unconditionally. 21422 21423 * gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro. 21424 * mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for 21425 canonical inputs, where correctness depends on it. 21426 21427 * mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl". 21428 21429 2001-10-27 Torbjorn Granlund <tege@swox.com> 21430 21431 * demos/pexpr.c: Remove some unused variables. 21432 (main): Allocate more buffer space to accommodate minus sign. 21433 21434 2001-10-27 Kevin Ryde <kevin@swox.se> 21435 21436 * gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h, 21437 tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add 21438 mpn_mod_34lsub1. 21439 * tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function. 21440 21441 * mpn/generic/mod_34lsub1.c: New file. 21442 * mpn/x86/k6/mod_34lsub1.asm: New file. 21443 * mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file. 21444 * mpn/x86/x86-defs.m4 (Zdisp): Add another instruction. 21445 21446 * gmp-h.in, gmpxx.h: Use <iosfwd> not whole <iostream>. 21447 21448 * gmp.texi (Known Build Problems): Add note on test programs with 21449 Windows DLLs. 21450 21451 2001-10-26 Kevin Ryde <kevin@swox.se> 21452 21453 * tests/mpq/t-get_d.c: Limit the size of "eps" for vax. 21454 21455 * gmp.texi (maybepagebreak): New macro, use it in a few places. 21456 (Notes for Particular Systems): C++ Windows DLLs are not supported. 21457 (Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared 21458 library problems. 21459 (Autoconf): Tweak version numbers shown. 21460 (Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider 21461 0 and 1 perfect powers, mpz_perfect_power_p accepts negatives. 21462 (Number Theoretic Functions): Add mpz_millerrabin, combined with a 21463 reworded mpz_probab_prime_p. 21464 (Formatted Output Strings): Misc clarifications. 21465 (Formatted Output Functions): gmp_asprintf, gmp_vasprintf, 21466 gmp_snprintf, gmp_vsnprintf always available. 21467 (C++ Formatted Output): Misc rewordings. 21468 (Formatted Input): New chapter. 21469 (C++ Class Interface): New chapter, by Gerardo and me. 21470 (Language Bindings): Update GMP++ now in GMP. 21471 (C++ Interface Internals): New section, by Gerardo and me. 21472 21473 * printf/repl-vsnprintf.c: New file. 21474 * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it 21475 if libc vsnprintf missing or bad. 21476 * configure.in (AC_CHECK_FUNCS): Add strnlen. 21477 21478 * printf/snprntffuns.c, printf/vasprintf.c: Use 21479 __gmp_replacement_vsnprintf if libc vsnprintf not available. 21480 * printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c, 21481 printf/vsnprintf.c: Provide these functions unconditionally. 21482 * acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions 21483 when vsnprintf not available. 21484 21485 2001-10-24 Kevin Ryde <kevin@swox.se> 21486 21487 * configure, aclocal.m4: Regenerate with a libtool patch for a stray 21488 quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin. 21489 21490 * gmp-impl.h (modlimb_invert): More comments. 21491 21492 * printf/doprnt.c, printf/doprnti.c: Use the precision field to print 21493 leading zeros. 21494 * tests/printf/t-printf.c: Test this. 21495 * cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<. 21496 21497 * tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace. 21498 21499 2001-10-23 Torbjorn Granlund <tege@swox.com> 21500 21501 * mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant. 21502 21503 * mpz/millerrabin.c: New file with code from pprime.c. 21504 * mpz/Makefile.am: Compile millerrabin.c. 21505 * Makefile.am (MPZ_OBJECTS): Ditto. 21506 * gmp-h.in: Declare mpz_millerrabin. 21507 21508 2001-10-22 Torbjorn Granlund <tege@swox.com> 21509 21510 * tests/mpz/t-perfsqr.c: New file. 21511 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 21512 21513 * demos/factorize.c (factor): Check for number to factor == 0. 21514 (main): When invoked without arguments, read from stdin. 21515 21516 * mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd). 21517 Treat 0 and 1 as perfect powers. 21518 21519 * mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align. 21520 21521 2001-10-21 Torbjorn Granlund <tege@swox.com> 21522 21523 * mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'. 21524 (mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test. 21525 (mpn_perfect_square_p, O(n) test): Improve comments. Combine remainder 21526 tests for some small primes. Don't share code for different limb 21527 sizes. Use single `if' with many `||' for better code density. 21528 21529 2001-10-22 Kevin Ryde <kevin@swox.se> 21530 21531 * demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static". 21532 21533 * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm 21534 (mpn_popcount_table): Use GSYM_PREFIX. 21535 21536 2001-10-19 Kevin Ryde <kevin@swox.se> 21537 21538 * mpn/x86/*.asm: Add some measured speeds on various x86s. 21539 21540 * tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a 21541 windows DLL, because certain global variable usages won't compile. 21542 21543 * configure.in (AC_CHECK_FUNCS): Add alarm. 21544 * tests/spinner.c: Conditionalize alarm and SIGALRM availability, for 21545 the benefit of mingw32. 21546 21547 * acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size 21548 on COFF. 21549 21550 * acinclude.m4 (GMP_PROG_HOST_CC): New macro. 21551 * configure.in: Use it for windows DLL cross-compiles. 21552 * aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC 21553 in the generated libtool script. 21554 21555 * aclocal.m4, configure: Regenerate with libtool patch to suppress 21556 warnings when probing command line limit on FreeBSD. 21557 21558 * demos/qcn.c (M_PI): Define if not already provided, helps mingw32. 21559 21560 2001-10-17 Kevin Ryde <kevin@swox.se> 21561 21562 * printf/doprnt.c: Use <stdint.h> for intmax_t. 21563 21564 * longlong.h: Recognise __sparcv8 for gcc on Solaris. Reported by 21565 Mark Mentovai <mark@mentovai.com>. 21566 21567 * gmp-impl.h (gmp_allocated_string): No need for inline on member funs. 21568 21569 2001-10-16 Kevin Ryde <kevin@swox.se> 21570 21571 * gmp.texi (Debugging): Add mpatrol. 21572 (Integer Comparisons, Comparing Rationals, Float Comparison): Index 21573 entries for sign tests. 21574 (I/O of Floats): Clarify mpf_out_str exponent is in decimal. 21575 (C++ Formatted Output): mpf_t operator<< exponent now in decimal. 21576 (FFT Multiplication): Use an ascii art sigma. 21577 (Contributors): Add Gerardo Ballabio. 21578 21579 * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t 21580 exponent in decimal, irrespective of ios::hex or ios::oct. 21581 * tests/cxx/t-ostream.cc (check_mpf): Update. 21582 21583 * printf/doprnt.c: Support %lln and %hhn. 21584 21585 * mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the 21586 initial carry (helps the submul_1c case), and improve the comments. 21587 21588 2001-10-11 Kevin Ryde <kevin@swox.se> 21589 21590 * acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro. 21591 21592 * ltmain.sh: Send some rm errors to /dev/null, helps during compiles 21593 on Solaris 2.7 and HP-UX 10. 21594 21595 * tal-notreent.c: Renamed from stack-alloc.c. 21596 * Makefile.am, acinclude.m4, gmp-impl.h: Update. 21597 21598 * gmp-h.in: Don't give both prototypes and inlines, except on gcc. 21599 21600 * gmp-h.in, gmp-impl.h: Use #includes to get necessary standard 21601 classes, add std:: to prototypes. 21602 * cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std". 21603 * acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto. 21604 21605 * tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with 21606 automake patch to avoid Ultrix problem with empty $(TESTS). 21607 21608 * */Makefile.in: Regenerate with automake patch to only rm *_.c in 21609 "make clean" when ansi2knr actually in use, helps DOS 8.3. 21610 21611 * Makefile.in: Regenerate with automake patch to fix stamp-h 21612 numbering, avoiding an unnecessary config.status run. 21613 21614 2001-10-09 Torbjorn Granlund <tege@swox.com> 21615 21616 * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels. 21617 Quote L reloc operator. 21618 21619 * gmp-impl.h: Declare class string. 21620 21621 * mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further 21622 expansion. 21623 21624 * mpn/alpha/ev6/mul_1.asm: New file. 21625 21626 2001-10-09 Kevin Ryde <kevin@swox.se> 21627 21628 * gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs. 21629 (Build Options): Note macos directory. 21630 (Notes for Package Builds): GMP 4 series binary compatible with 3. 21631 (Known Build Problems): Remove $* and ansi2knr note, now fixed, except 21632 possibly under --host=none. 21633 (Formatted Output Strings): Remove -1 prec for all digits. 21634 21635 * mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos). 21636 * mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz. 21637 21638 * printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe 21639 prec -1 meaning all digits. 21640 21641 * acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq". 21642 (GMP_HPC_HPPA_2_0): Print version string to config.log. 21643 21644 * Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice 21645 in NEWS file is too big). 21646 (dist-hook): Don't distribute numbered or unnumbered emacs backups. 21647 21648 * Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff. 21649 21650 2001-10-09 Gerardo Ballabio <ballabio@sissa.it> 21651 21652 * cxx/isfuns.cc: New file. 21653 * gmp-impl.h: Add prototypes. 21654 * cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files. 21655 * gmp-h.in: Add prototypes. 21656 * gmpxx.h, mpfrxx.h: New files. 21657 21658 2001-10-08 Kevin Ryde <kevin@swox.se> 21659 21660 * configure.in (with_tags): Establish a default based on --enable-cxx. 21661 21662 * aclocal.m4: Regenerate with libtool patches for sed char range to 21663 help Cray, LTCC quotes and +Z warnings grep to help HP-UX. 21664 21665 * gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t, 21666 doprnt_final_t): Use _PROTO. 21667 21668 2001-10-05 Torbjorn Granlund <tege@swox.com> 21669 21670 * mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX. 21671 21672 * mpn/hppa: Convert files to `.asm'. 21673 21674 2001-10-05 Kevin Ryde <kevin@swox.se> 21675 21676 * mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use 21677 cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS. 21678 * mpn/cpp-ccas: New file. 21679 * mpn/Makefile.am (EXTRA_DIST): Add it. 21680 21681 * tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses 21682 to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES. Avoids 21683 macro expansion problems on Cray. 21684 21685 * configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier. 21686 21687 2001-10-04 Torbjorn Granlund <tege@swox.com> 21688 21689 * mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was 21690 1-based); shift 2 (was 1) when making bit mask. These two changes 21691 avoid undefined shift counts. 21692 (gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values. 21693 21694 * mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c. 21695 21696 2001-10-04 Kevin Ryde <kevin@swox.se> 21697 21698 * gmp.texi (Build Options): Add --enable-cxx. 21699 (Notes for Particular Systems): Mention pentium4 performance and SSE2. 21700 (Known Build Problems): Remove vax jsobgtr note, no longer needed. 21701 (Converting Floats): Tweak mpf_get_str description. 21702 (Low-level Functions): Correction to mpn_gcdext destination space 21703 requirements. 21704 (C++ Formatted Output): New section. 21705 (Language Bindings): Add ALP 21706 (Contributors): Add Paul Zimmermann's square root, update my things. 21707 21708 * acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler 21709 errors to config.log. 21710 21711 * mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed. 21712 21713 * mpn/x86/*.asm: Change references to old README.family to just README. 21714 21715 * mpz/README: Remove file, now adequately covered in the manual. 21716 21717 2001-10-03 Torbjorn Granlund <tege@swox.com> 21718 21719 * mpn/x86/pentium4/copyi.asm: New file. 21720 * mpn/x86/pentium4/copyd.asm: New file. 21721 21722 * gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR 21723 macros for CRAY systems. 21724 (CRAY _MPN_COPY): Delete. 21725 21726 2001-10-02 Kevin Ryde <kevin@swox.se> 21727 21728 * tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to 21729 avoid compiler warnings on sco. 21730 21731 * mpbsd/Makefile.am: Compile mpz files directly, no copying. 21732 Use mpz/add.c and mpz/sub.c rather than mpz/aors.c. 21733 (INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz). 21734 21735 * mpz/aors.h: Renamed from mpz/aors.c. 21736 * mpz/add.c, mpz/sub.c: New files, using mpz/aors.h. 21737 * mpz/aors_ui.h: Renamed from mpz/aors_ui.c. 21738 * mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h. 21739 * mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c. 21740 * mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files. 21741 * mpz/mul_i.h: Renamed from mpz/mul_siui.c. 21742 * mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h. 21743 * mpz/Makefile.am: Consequent updates. 21744 (INCLUDES): Remove -DOPERATION_$*. 21745 21746 * mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c. 21747 * mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files. 21748 * mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c. 21749 * mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files. 21750 * mpf/Makefile.am: Consequent updates. 21751 (INCLUDES): Remove -DOPERATION_$*. 21752 21753 * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc 21754 as cases in a switch, they're not constant in g++ 3.0. 21755 21756 * mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj): 21757 Locate source file with test -f the same as automake. 21758 (.S): Let CCAS do the preprocessing, and run libtool for .S.lo. 21759 (.asm.lo): Run libtool via m4-ccas to get new style foo.lo right. 21760 (COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake. 21761 * mpn/m4-ccas: New file. 21762 * mpn/Makefile.am (EXTRA_DIST): Add it. 21763 * mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT'). 21764 * mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set. 21765 * configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed. 21766 21767 * acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when 21768 vsnprintf not available. 21769 21770 * mpn/underscore.h: Remove file, not used since m68k converted to asm. 21771 * mpn/Makefile.am (EXTRA_DIST): Remove it. 21772 21773 * tests/refmpz.c: Add <stdlib.h>, for free(). 21774 21775 2001-10-01 Torbjorn Granlund <tege@swox.com> 21776 21777 * mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic 21778 simplifications. 21779 * mpn/x86/pentium4/sse2/addmul_1.asm: Comment. 21780 21781 2001-10-01 Kevin Ryde <kevin@swox.se> 21782 21783 * configure.in (--enable-cxx): New option for C++ support. 21784 Add cxx and tests/cxx subdirectories. 21785 * ltmain.sh, aclocal.m4: Update to libtool 2001-09-30. 21786 21787 * cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc, 21788 cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files. 21789 * Makefile.am: Add them, in new libgmpxx. 21790 * gmp-h.in, gmp-impl.h: Prototypes and support. 21791 * tests/cxx/Makefile.am, tests/cxx/Makefile.in, 21792 tests/cxx/t-ostream.cc: New files. 21793 21794 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL, 21795 SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for 21796 destinations. Found by Torbjorn. 21797 21798 * gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0. 21799 * mp-h.in (__GNU_MP__): Ditto. 21800 * gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0. 21801 21802 * acinclude.m4 (GMP_PROG_CXX_WORKS): New macro. 21803 (GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out. 21804 21805 * gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c. 21806 (GMP_ASPRINTF_T_INIT): New macro. 21807 (GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED(). 21808 * printf/vasprintf.c: Use these. 21809 21810 * printf/asprntffuns.c: New file. 21811 * printf/Makefile.am, Makefile.am: Add it. 21812 * printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h 21813 (__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final): 21814 Move to asprntffuns.c, rename to __gmp and make global, remove 21815 spurious formal parameters from __gmp_asprintf_final. 21816 21817 * configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path. 21818 (*-*-mingw*): Don't assemble with -DPIC (as per cygwin). 21819 21820 * printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal 21821 parameters. 21822 21823 * tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help 21824 Cray vector systems. 21825 21826 * tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to 21827 facilitate cut and paste when re-running. 21828 * tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints. 21829 21830 2001-09-30 Kent Boortz <kent@swox.com> 21831 21832 * macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4. 21833 * gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW. 21834 21835 2001-09-30 Torbjorn Granlund <tege@swox.com> 21836 21837 * mpn/cray/ieee/submul_1.c: Rewrite. Streamline multiplications; 21838 use `majority' logic. 21839 21840 2001-09-27 Torbjorn Granlund <tege@swox.com> 21841 21842 * gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug. 21843 21844 2001-09-26 Torbjorn Granlund <tege@swox.com> 21845 21846 * mpn/x86/pentium4/sse2/gmp-mparam.h: New file. 21847 21848 2001-09-26 Kevin Ryde <kevin@swox.se> 21849 21850 * mpn/x86/pentium4/sse2/dive_1.asm: New file. 21851 * mpn/x86/pentium4/sse2/submul_1.asm: New file. 21852 * mpn/x86/pentium4/sse2/sqr_basecase.asm: New file. 21853 21854 * mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn. 21855 * mpn/x86/pentium/copyi.asm: New file, ditto. 21856 * mpn/x86/pentium/com_n.asm: Rewrite, ditto. 21857 21858 * printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case 21859 vsnprintf trashes it. 21860 * printf/vasprintf.c (gmp_asprintf_format): Ditto. 21861 * gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h. 21862 21863 * tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax 21864 limited float range. 21865 21866 2001-09-23 Torbjorn Granlund <tege@swox.com> 21867 21868 * mpn/vax/lshift.s: Change `jsob*' to `sob*'. 21869 * mpn/vax/rshift.s: Likewise. 21870 21871 2001-09-23 Kevin Ryde <kevin@swox.se> 21872 21873 * mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code. 21874 21875 * printf/doprnt.c: Use va_copy for va_list variables, copy function 21876 parameter in case it's call-by-reference. 21877 21878 * tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function. 21879 (speed_cpu_frequency_table): Use it. 21880 21881 * tune/many.pl (popcount, hamdist): Fix declared return value. 21882 (sb_divrem_mn): Remove a spurious duplicate entry. 21883 (CLEAN): Add tmp-$objbase.c when using that for .h files. 21884 (macro_speed): Give a default for .h files. 21885 Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate. 21886 21887 * tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL, 21888 SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT, 21889 SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N, 21890 SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return 21891 values so gcc 3 won't discard calls to pure or const functions. 21892 (mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE. 21893 21894 2001-09-22 Torbjorn Granlund <tege@swox.com> 21895 21896 * mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder 21897 for real code, hiding the default x86 mul_basecase.asm. 21898 21899 2001-09-22 Kevin Ryde <kevin@swox.se> 21900 21901 * configure.in (AC_PREREQ): Bump to 2.52. 21902 (m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_. 21903 (AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf. 21904 * acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro. 21905 21906 * tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0. 21907 (malloc_region): Need fd=-1 for mmap MAP_ANON on BSD. 21908 21909 2001-09-20 Torbjorn Granlund <tege@swox.com> 21910 21911 * mpz/cong.c (mpz_congruent_p): Fix one-limb c<d test. 21912 21913 * longlong.h: Rewrite __i370__ smul_ppmm; enable also for __s390__. 21914 21915 * configure.in: Add support for IBM 360, 370, 390 families. 21916 21917 2001-09-20 Kevin Ryde <kevin@swox.se> 21918 21919 * mpn/x86/pentium4/sse2/diveby3.asm: New file. 21920 * mpn/x86/pentium4/sse2/mode1o.asm: New file. 21921 21922 2001-09-16 Kevin Ryde <kevin@swox.se> 21923 21924 * printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g. 21925 * tests/printf/t-printf.c (check_f): More test cases. 21926 21927 2001-09-15 Torbjorn Granlund <tege@swox.com> 21928 21929 * gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB. 21930 Postpone zeroing of (cout). 21931 (__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes. 21932 21933 2001-09-14 Kevin Ryde <kevin@swox.se> 21934 21935 * ChangeLog: Merge in tests/rand/ChangeLog. 21936 * tests/rand/ChangeLog: Remove file. 21937 21938 * printf/doprnt.c: Fix handling of a plain format after a GMP one; no 21939 need to protect against negative precision internally. 21940 * tests/printf/t-printf.c (check_misc): More checks. 21941 21942 2001-09-12 Torbjorn Granlund <tege@swox.com> 21943 21944 * mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have 21945 HAVE_NATIVE_... defined. 21946 21947 2001-09-11 Kevin Ryde <kevin@swox.se> 21948 21949 * configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power, 21950 __GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs. 21951 * gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc 21952 code, rather than preprocessor defines. 21953 21954 * acinclude.m4, configure.in (GMP_H_ANSI): New macro. 21955 21956 * gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc. 21957 21958 * gmp-h.in, version.c (gmp_version): Make the pointer "const" as well 21959 as the string. 21960 21961 * acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when 21962 invoked under another name (cc, xlc128, etc). 21963 * acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised. 21964 21965 2001-09-11 Torbjorn Granlund <tege@swox.com> 21966 21967 * gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc. 21968 * mp-h.in: Likewise. 21969 21970 2001-09-10 Torbjorn Granlund <tege@swox.com> 21971 21972 * mpn/x86/pentium4/mmx/lshift.asm: New file. 21973 * mpn/x86/pentium4/mmx/rshift.asm: New file. 21974 21975 * tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug. 21976 (check_decr_data): Likewise. 21977 21978 2001-09-08 Kevin Ryde <kevin@swox.se> 21979 21980 * gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist 21981 behaviour, clarify mpz_popcount a touch. 21982 (Language Bindings): Add mlton, fix alphabetical order. 21983 (Single Limb Division): Describe 2 or 1/2 limbs at a time style. 21984 21985 * configure.in (AC_CHECK_FUNCS): Add mmap. 21986 * tests/devel/try.c (malloc_region): Use mmap if available. 21987 21988 * tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function. 21989 * tests/mpz/t-hamdist.c: New file. 21990 * tests/mpz/Makefile.am: Add it. 21991 21992 * mpz/hamdist.c: Support neg/neg operands. 21993 21994 * macos/Makefile.in: Remove dual compile of mpq/aors.c and 21995 mpn/generic/popham.c. 21996 21997 * gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c. 21998 For 64-bits reuse 0x33...33 constant. 21999 * mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c, 22000 use popc_limb macro, remove unused "i", don't bother with "register" 22001 qualifiers. 22002 * mpn/generic/popham.c: Remove file. 22003 22004 * ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one 22005 ltdll.c generation patch. 22006 * doc/configuration: Misc updates, note libtool patch used. 22007 22008 * mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed 22009 addressing, to get 4.0 c/l flat. 22010 22011 * tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators. 22012 22013 * tests/misc.c (mpz_negrandom): Use given rstate, not RANDS. 22014 22015 2001-09-07 Torbjorn Granlund <tege@swox.com> 22016 22017 * mpn/x86/pentium4/sse2/addmul_1.asm: New file. 22018 22019 2001-09-04 Kevin Ryde <kevin@swox.se> 22020 22021 * tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to 22022 avoid duplicating conditionals. 22023 (speed_cpu_frequency_sco_etchw): New function. 22024 (speed_cpu_frequency_table): Use it. 22025 * tune/README: Mention SCO openunix 8 /etc/hw. 22026 22027 * mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64. 22028 Store back a carry for limb<long. 22029 22030 * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/k7/mmx/mod_1.asm, 22031 mpn/x86/p6/mmx/divrem_1.asm: Fix a couple of comments. 22032 22033 * config.guess: Give m68020 for 68020 or better, not m68k. 22034 * configfsf.guess: Update to 2001-09-04. 22035 22036 2001-09-02 Kevin Ryde <kevin@swox.se> 22037 22038 * configure.in (m68k-*-*): Let m68k mean 68000, not 68020. 22039 * gmp.texi (Notes for Particular Systems): Update. 22040 22041 * gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int 22042 might be only 16 bits. 22043 22044 * tests/mpq/t-aors.c: New file. 22045 * tests/mpq/Makefile.am: Add it. 22046 22047 * tests/refmpq.c: New file. 22048 * tests/Makefile.am: Add it. 22049 * tests/tests.h: Add prototypes. 22050 22051 * mpq/aors.c: Share object code for mpq_add and mpq_sub. 22052 * Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now. 22053 22054 * tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine. 22055 22056 2001-08-30 Kevin Ryde <kevin@swox.se> 22057 22058 * mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4. 22059 22060 * gmp-h.in: Put #define renamings with prototypes. 22061 Remove commented out #defines of gmp-impl.h things. 22062 (mpn_invert_limb): Remove #define, already in gmp-impl.h. 22063 (mpn_lshiftc, mpn_rshiftc): Remove #defines, unused. 22064 (mpn_addsub_nc): Add prototype to #define. 22065 22066 2001-08-28 Kevin Ryde <kevin@swox.se> 22067 22068 * gmp.texi: Switch to GFDL. 22069 (Top): Arrange copyright and conditions to appear here too. For 22070 clarity have all this before the miscellaneous macro definitions. 22071 (Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo 22072 programs. 22073 (Contributors, References): Use @appendix rather than @unnumbered. 22074 (GNU Free Documentation License): New appendix. 22075 (@contents): Move to start of document, use only for tex (not html). 22076 (Debugging): Add leakbug. 22077 (Build Options): Add pentium4. 22078 (I/O of Rationals): Add mpq_inp_str. 22079 22080 * fdl.texi: New file, with two @appendix directive tweaks. 22081 * Makefile.am (gmp_TEXINFOS): Add it. 22082 22083 * tests/mpz/io.c: Check mpz_inp_str return against ftell, send error 22084 messages just to stdout. 22085 22086 * mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function, 22087 and share a __gmp_free_func call. 22088 * mpq/inp_str.c: New file. 22089 * Makefile.am, mpq/Makefile.am: Add it. 22090 * tests/mpq/t-inp_str.c: New file. 22091 * tests/mpq/Makefile.am (check_PROGRAMS): Add it. 22092 22093 * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power, 22094 HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs 22095 for processor families. 22096 * gmp-impl.h: Use them, rather than cpp defines. 22097 22098 * demos/Makefile.am (primes_LDADD): Use $(LIBM), for log(). 22099 22100 * tune/many.pl, tune/Makefile.am: Fix some from clean and distclean. 22101 22102 2001-08-26 Kevin Ryde <kevin@swox.se> 22103 22104 * tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs. 22105 (TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code. 22106 22107 * tests/printf/t-printf.c (check_plain): Don't compare "all digits" 22108 precision against plain printf. 22109 22110 * tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS. 22111 22112 * configure, config.in, INSTALL.autoconf: Update to autoconf 2.52. 22113 * */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to 22114 automake 1.5. 22115 * configfsf.guess, configfsf.sub: Update to 2001-08-23. 22116 22117 2001-08-24 Torbjorn Granlund <tege@swox.com> 22118 22119 * demos/primes.c: Complete rewrite. 22120 22121 2001-08-24 Kevin Ryde <kevin@swox.se> 22122 22123 * longlong.h: Test __ppc__ for apple darwin cc, reported by Jon 22124 Becker. Also test __POWERPC__, PPC and __vxworks__. 22125 22126 * tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC. 22127 22128 2001-08-22 Kevin Ryde <kevin@swox.se> 22129 22130 * configure.in (x86 mmx): Correction to mmx path stripping. 22131 22132 2001-08-17 Kevin Ryde <kevin@swox.se> 22133 22134 * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am, 22135 tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++ 22136 support, for the time being. 22137 * printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc, 22138 osmpz.cc, tests/printf/t-ostream.cc: Remove files. 22139 22140 * printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single 22141 __gmp_doprnt_mpf, rather than a separate ndigits calculation. 22142 * printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi, 22143 tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf. 22144 * printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let 22145 negative "*" style width mean left justify. 22146 22147 * gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro, 22148 extracted from mpf/get_str.c. 22149 22150 * libmp.sym: New file. 22151 * Makefile.am (libmp_la_LDFLAGS): Use it. 22152 (DISTCLEANFILES): Remove asm-syntax.h, no longer generated. 22153 Remove some comments about "make check". 22154 22155 * demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf, 22156 change get_str to string/exponent for floats, remove separate 22157 mpf_get_str. 22158 * demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g"). 22159 * demos/perl/typemap: Fix some duplicate string entries. 22160 * demos/perl/test.pl: Update tests, split overloaded constants into ... 22161 * demos/perl/test2.pl: ... this new file. 22162 * demos/perl/Makefile.PL (clean): Add test.tmp. 22163 22164 2001-08-16 Kevin Ryde <kevin@swox.se> 22165 22166 * printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1 22167 return value handling. 22168 22169 * demos/calc/calc.y: Reposition "%{" so copyright notice gets into 22170 generated files. 22171 22172 * INSTALL: Use gmp_printf. 22173 22174 2001-08-14 Kevin Ryde <kevin@swox.se> 22175 22176 * mpz/inp_str.c: Fix return value (was 1 too big). 22177 * tests/mpz/t-inp_str.c: New file. 22178 * tests/mpz/Makefile.am: Add it. 22179 22180 * mpn/x86/pentium4/sse2/add_n.asm: New file. 22181 * mpn/x86/pentium4/sse2/sub_n.asm: New file. 22182 * mpn/x86/pentium4/sse2/mul_1.asm: New file. 22183 22184 2001-08-12 Kevin Ryde <kevin@swox.se> 22185 22186 * printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return 22187 value (it's a pointer on SunOS 4). 22188 22189 * acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros. 22190 * configure.in: Add pentium4 support. 22191 * mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New 22192 directories. 22193 * mpn/x86/README: Update. 22194 22195 2001-08-10 Torbjorn Granlund <tege@swox.com> 22196 22197 * demos/pexpr.c (setup_error_handler): Catch also SIGABRT. 22198 22199 2001-07-31 Kevin Ryde <kevin@swox.se> 22200 22201 * tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps. 22202 22203 * gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h. 22204 22205 * tune/Makefile.am (EXTRA_DIST): Add many.pl. 22206 22207 2001-07-28 Kevin Ryde <kevin@swox.se> 22208 22209 * gmp.texi (Random Number Functions): Old rand functions no longer use 22210 the C library. 22211 22212 * configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro. 22213 22214 * mpn/generic/get_str.c: Add an ASSERT for high limb non-zero. 22215 22216 2001-07-24 Kevin Ryde <kevin@swox.se> 22217 22218 * gmp.texi (Build Options): Add --enable-cxx. 22219 (Converting Floats): Note mpf_get_str only generates accurately 22220 representable digits. 22221 (Low-level Functions): Note mpn_get_str requires non-zero high limb. 22222 (Formatted Output): New chapter. 22223 (Multiplication Algorithms): Use @quotation with @multitable. 22224 (Toom-Cook 3-Way Multiplication): Ditto. 22225 22226 * tests/memory.c (tests_free_nosize): New function. 22227 * tests/tests.h (tests_allocate etc): Add prototypes. 22228 22229 * tests/printf: New directory. 22230 * tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files. 22231 * configure.in, tests/Makefile.am: Add them. 22232 22233 * configure.in, acinclude.m4 (GMP_PROG_CXX): New macro. 22234 * configure.in (--enable-cxx): New option. 22235 (AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h. 22236 (AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t, 22237 quad_t. 22238 (AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf, 22239 strchr, vsnprintf. 22240 (AC_CHECK_DECLS): Add vfprintf. 22241 22242 * gmp-h.in, gmp-impl.h: Additions for gmp_printf etc. 22243 22244 * printf: New directory. 22245 * printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc, 22246 doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c, 22247 obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c, 22248 printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c, 22249 vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New 22250 files. 22251 * configure.in, Makefile.am: Add them. 22252 22253 * configure.in (HAVE_INLINE): Remove AC_DEFINE, unused. 22254 (AC_CHECK_TYPES): Don't test for void, assume it always exists. 22255 22256 * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro. 22257 * mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it. 22258 22259 * gmp-impl.h (mpn_fib2_ui): Use __MPN. 22260 (MPN_COPY_DECR): Fix an ASSERT. 22261 (CAST_TO_VOID): Remove macro. 22262 22263 * gmp-h.in (mpq_out_str): Give #define even without prototype. 22264 (mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines. 22265 22266 * tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID. 22267 22268 2001-07-23 Torbjorn Granlund <tege@swox.com> 22269 22270 * config.guess: Recognize pentium4. 22271 * config.sub: Recognize pentium4. 22272 22273 2001-07-17 Kevin Ryde <kevin@swox.se> 22274 22275 * gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just 22276 one version. 22277 (__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub. 22278 (mpn_add, mpn_sub): Use them. 22279 (__GMPN_COPY_REST): New macro. 22280 22281 * gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and 22282 __GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of 22283 LSYM_PREFIX. 22284 22285 2001-07-11 Kevin Ryde <kevin@swox.se> 22286 22287 * gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91. 22288 22289 * mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c. 22290 * mpz/fits_u.c: Remove file. 22291 * mpz/Makefile.am, macos/Makefile.in: Update. 22292 22293 * tests/refmpn.c,tests.h (refmpn_copy): New function. 22294 * tests/devel/try.c (TYPE_ZERO): No return value from call. 22295 (TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with 22296 TYPE_MOD_1 and TYPE_MOD_1C. 22297 (MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing. 22298 22299 2001-07-10 Kevin Ryde <kevin@swox.se> 22300 22301 * gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc. 22302 * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto. 22303 * mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files. 22304 22305 * mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on 22306 i386 gcc 2.95.x), remove a bogus comment about quotient. 22307 22308 * errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero, 22309 __gmp_sqrt_of_negative): New functions. 22310 * gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them. 22311 22312 * randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms. 22313 22314 2001-07-07 Kevin Ryde <kevin@swox.se> 22315 22316 * configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin. 22317 22318 * tests/mpbsd/t-itom.c: Renamed from t-misc.c. 22319 * tests/mpbsd/t-misc.c: Remove file. 22320 * tests/mpbsd/Makefile.am: Update. 22321 22322 * tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c. 22323 * tests/mpf/t-misc.c: Remove file. 22324 * tests/mpf/Makefile.am: Update. 22325 22326 * tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c. 22327 * tests/mpz/t-misc.c: Remove file. 22328 * tests/mpz/Makefile.am: Update. 22329 22330 * stack-alloc.c: Add some alignment ASSERTs. 22331 22332 * gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow. 22333 22334 * tests/devel/try.c (MPN_ZERO): Add testing. 22335 * tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring. 22336 22337 * mpn/x86/divrem_1.asm: Update a remark about gcc and "loop". 22338 22339 * tests/mpq/t-cmp_si.c: New file. 22340 * tests/mpq/Makefile.am: Add it. 22341 22342 * tests/misc.c,tests.h (mpq_set_str_or_abort): New function. 22343 22344 * mpq/cmp_si.c: New file. 22345 * Makefile.am, mpq/Makefile.am: Add it. 22346 * gmp-h.in (mpq_cmp_si): Add prototype. 22347 * gmp.texi (Comparing Rationals): Add doco. 22348 22349 * gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add 22350 notes on what symbols are for what systems. 22351 22352 2001-07-06 Torbjorn Granlund <tege@swox.com> 22353 22354 * longlong.h (ibm032 umul_ppmm): Fix typo. 22355 * longlong.h (sparclite sdiv_qrnnd): Fix typo. 22356 22357 2001-07-03 Kevin Ryde <kevin@swox.se> 22358 22359 * mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1. 22360 * mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and 22361 pointer. 22362 22363 * acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h 22364 is wanted at configure time. 22365 * acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE): 22366 New macros. 22367 22368 * gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++. 22369 (mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE. 22370 * gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused. 22371 * mpn/generic/add.c, mpn/generic/sub.c: New files. 22372 * mpn/generic/inlines.c: Remove file. 22373 * configure.in, mpn/Makefile.am: Update. 22374 22375 * gmp.texi (GMP Basics): Note the need for stdio.h to get FILE 22376 prototypes. 22377 22378 2001-07-01 Kevin Ryde <kevin@swox.se> 22379 22380 * gmp.texi (Build Options, Reentrancy): Updates for new 22381 --enable-alloca behaviour. 22382 (Debugging): Describe --enable-alloca=debug. 22383 (Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs. 22384 (Low-level Functions): Give a formula for mpn_gcdext cofactor. 22385 (Factorial Algorithm): New section. 22386 (Binomial Coefficients Algorithm): New section. 22387 Misc tweaks elsewhere. 22388 22389 * mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups, 22390 no functional changes. 22391 22392 * mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values. 22393 * gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when 22394 2*UMUL_TIME < UDIV_TIME. 22395 22396 * mpn/x86/p6/dive_1.asm: New file. 22397 22398 * mpn/x86/dive_1.asm: New file. 22399 * mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always. 22400 22401 * tests/refmpn.c, tests.h (refmpn_zero): New function. 22402 * tests/devel/try.c: Use it. 22403 22404 * tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp. 22405 22406 * tests/mpf/t-get_d.c (main): Use || not |. 22407 22408 * tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c, 22409 tests/mpf/reuse.c: Add string.h. 22410 22411 2001-06-29 Kevin Ryde <kevin@swox.se> 22412 22413 * tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI, 22414 SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling. 22415 22416 * gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE): 22417 Corrections to these to account for adding tD into E. 22418 (MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size 22419 assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them. 22420 (MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder. 22421 22422 * assert.c: Add stdlib.h for abort prototype. 22423 * tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c, 22424 t-gmpmax.c, t-modlinv.c: Ditto. 22425 * tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c, 22426 t-set_str.c, t-sizeinbase.c: Ditto. 22427 * tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto. 22428 * tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c, 22429 t-trunc.c: Ditto. 22430 * tests/mpbsd/allfuns.c, t-misc.c: Ditto. 22431 22432 * mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than 22433 mpn_incr_u. 22434 22435 * tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method. 22436 22437 * mpn/x86/k6/cross.pl: More insn exceptions. 22438 22439 2001-06-23 Kevin Ryde <kevin@swox.se> 22440 22441 * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output 22442 constraints. 22443 22444 * gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant 22445 fits a signed byte. 22446 22447 * tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient 22448 with garbage. 22449 22450 2001-06-20 Kevin Ryde <kevin@swox.se> 22451 22452 * config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error 22453 messages if $CC_FOR_BUILD or program don't work. 22454 22455 * mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0). 22456 * tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0). 22457 22458 * tests/mpn/t-aors_1.c: New file. 22459 * tests/mpn/Makefile.am: Add it. 22460 22461 * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of 22462 mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1, 22463 separate versions for gcc x86, gcc generic, and non-gcc. 22464 (mpn_add_1, mpn_sub_1): Use them. 22465 (mpn_add, mpn_sub): Ditto, to get inlines on all compilers. 22466 (extern "C") [__cplusplus]: Let this encompass the extern inlines too. 22467 * mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h. 22468 * configure.in, mpn/Makefile.am: Add them. 22469 22470 * acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX 22471 rather than AC_DEFINE LSYM_PREFIX. 22472 * gmp-h.in (__GMP_LSYM_PREFIX): New substitution. 22473 (__GMP_ASM_L): New macro. 22474 * gmp-impl.h (ASM_L): Use it. 22475 22476 * acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro. 22477 * gmp-impl.h: Use it for all the malloc based TMP_ALLOCs. 22478 22479 * stack-alloc.h: Remove file. 22480 * tal-reent.c: New file. 22481 * Makefile.am: Update. 22482 22483 * acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add 22484 malloc-reentrant method, use stack-alloc.c as malloc-notreentrant, 22485 make "reentrant" the default. 22486 * gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to 22487 determine the value, and demand only 4 bytes align on 32-bit systems. 22488 * gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of 22489 stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC. 22490 * gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations. 22491 * stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to 22492 here, use gmp-impl.h. 22493 22494 * gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro. 22495 * mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it. 22496 22497 * mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop. 22498 * mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by 22499 Paul, tweaked by me. 22500 * mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2). 22501 22502 * gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE. 22503 22504 * INSTALL: Clarify "make install", tweak formatting a bit. 22505 22506 2001-06-17 Kevin Ryde <kevin@swox.se> 22507 22508 * configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC, 22509 selected with --enable-alloca=debug. 22510 * tal-debug.c: New file. 22511 * configure.in, Makefile.am: Compile stack-alloc.c only for 22512 --disable-alloca. 22513 * assert.c (__gmp_assert_header): New function, split from 22514 __gmp_assert_fail. 22515 22516 * mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary 22517 _mpz_realloc prototype. 22518 22519 * mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3 22520 temporary workspace. 22521 22522 2001-06-15 Kevin Ryde <kevin@swox.se> 22523 22524 * tests/mpz/t-set_f.c: New file. 22525 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 22526 22527 * mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0 22528 test earlier, store SIZ(w) earlier. 22529 22530 * tests/t-count_zeros.c: New file. 22531 * tests/t-gmpmax.c: New file. 22532 * tests/Makefile.am (check_PROGRAMS): Add them. 22533 22534 * mp_clz_tab.c: Compile the table only if longlong.h says it's needed; 22535 add an internal-use-only comment. 22536 * tune/common.c: Force a __clz_tab for convenience when testing. 22537 22538 * mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add 22539 COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm. 22540 22541 * longlong.h (count_leading_zeros) [pentium]: Decide to go with float 22542 method for p54. 22543 (count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB. 22544 (__clz_tab): Provide a prototype only if it's needed. 22545 22546 * tests/trace.c (mpz_trace): Don't use = on structures. 22547 (mpn_trace): Set _mp_alloc when creating mpz. 22548 22549 2001-06-12 Kevin Ryde <kevin@swox.se> 22550 22551 * mpn/x86/divrem_1.asm: Amend some comments about P5 speed. 22552 22553 * tune/README: Clarify reconfigure on gmp-mparam.h update. 22554 22555 * mpn/x86/p6/copyd.asm: New file. 22556 * mpn/x86/p6/README: Update copyd and mod_1. 22557 * mpn/x86/copyd.asm: Amend some comments. 22558 22559 * gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc. 22560 (mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the 22561 generic code on gcc. 22562 22563 * gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros. 22564 * mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them. 22565 * mpz/get_d.c: Add a private mpn_zero_p. 22566 * mpfr/trunc.c: Use own mpn_zero_p. 22567 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p. 22568 * gmp-impl.h (mpn_zero_p): Remove, no longer needed. 22569 22570 * gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an 22571 MPN_CMP alias in gmp-impl.h. 22572 * gmp-h.in (mpn_cmp): Add an inline version. 22573 * mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h. 22574 22575 * acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro. 22576 * configure.in: Call it. 22577 * gmp-impl.h (SItype etc): Use it. 22578 22579 * randraw.c (lc): Change mpn_mul_basecase->mpn_mul, 22580 mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0). 22581 22582 * longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial 22583 register stall on gcc < 3. 22584 22585 * gmp.texi (Introduction to GMP): Add IA-64. 22586 (Notes for Particular Systems): i386 means generic x86. 22587 22588 * tests/t-modlinv.c: Use tests_start and tests_end. 22589 22590 2001-06-10 Kevin Ryde <kevin@swox.se> 22591 22592 * gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b 22593 odd. Separate the jacobi/legendre/kronecker descriptions. 22594 (Low-level Functions): Document mpn_mul_1 "incr" overlaps. 22595 (Language Bindings): New chapter. 22596 22597 * mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b 22598 (it wasn't documented in 3.1.1). 22599 * mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove 22600 separate entrypoints, just #define to mpz_jacobi. 22601 * compat.c (__gmpz_legendre): Add compatibility entrypoint. 22602 22603 * mpn/generic/mul_1.c: Allow "incr" style overlaps. 22604 * tests/devel/try.c (param_init): Test this. 22605 22606 * mpf/mul_ui.c: Do size==0 test earlier. 22607 22608 2001-06-08 Kevin Ryde <kevin@swox.se> 22609 22610 * gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast 22611 ULONG_MAX etc to unsigned long etc before attempting to right shift. 22612 22613 * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX. 22614 * gmp-impl.h (ASM_L): New macro. 22615 (mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized 22616 versions. 22617 22618 * mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa 22619 GNU/Linux too, reported by LaMont Jones <lamont@smallone.fc.hp.com>. 22620 * mpn/hppa/README: Add some notes on this. 22621 * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto. 22622 22623 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c, 22624 fib2_ui.c. 22625 22626 * tests/mpn/t-iord_u.c: New file. 22627 * tests/mpn/Makefile.am (check_PROGRAMS): Add it. 22628 22629 * configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same 22630 as in gmp 3.1. 22631 * gmp.texi (ABI and ISA): Update. 22632 22633 * gmp.texi (Build Options): Misc tweaks. 22634 (Notes for Particular Systems): Describe windows DLL handling. 22635 (Known Build Problems): DJGPP needs bash 2.04. 22636 (Number Theoretic Functions): mpz_invert returns 0<=r<modulus; add 22637 mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui. 22638 (Fibonacci Numbers Algorithm): Update for new formulas used. 22639 (Lucas Numbers Algorithm): New section. 22640 22641 * tune/speed.c,speed.h,common.c,many.pl: Add mpn_fib2_ui, mpz_fib2_ui, 22642 mpz_lucnum_ui, mpz_lucnum2_ui. 22643 * demos/expr/exprz.c,README: Add lucnum. 22644 * demos/perl/GMP.pm,GMP.xs,GMP/Mpz.pm,test.pl: Add fib2, lucnum, 22645 lucnum2. 22646 22647 * tests/mpz/t-lucnum_ui.c: New file. 22648 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 22649 * tests/mpz/t-fib_ui.c: Check mpz_fib2_ui too, updates for new style 22650 MPN_FIB2_SIZE. 22651 22652 * tune/tuneup.c, tune/Makefile.am, gmp-impl.h, mpn/*/gmp-mparam.h: 22653 Remove FIB_THRESHOLD, no longer required. 22654 22655 * mpz/fib2_ui.c, mpz/lucnum_ui.c mpz/lucnum2_ui.c: New files. 22656 * Makefile.am, mpz/Makefile.am: Add them. 22657 * gmp-h.in (mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui): Add 22658 prototypes. 22659 22660 * mpn/generic/fib2_ui.c: New file. 22661 * configure.in (gmp_mpn_functions): Add it. 22662 * gmp-impl.h (mpn_fib2_ui, FIB_TABLE, etc): Add these. 22663 * mpz/fib_ui.c: Rewrite. 22664 22665 * acinclude.m4 (GMP_C_SIZES): Fix _LONG_LONG_LIMB define for mp_limb_t 22666 size test. 22667 (GMP_FUNC_ALLOCA): Add dummy __GMP_BITS_PER_MP_LIMB for gmp-h.in work. 22668 22669 * configure.in (CPPFLAGS): Remove -D__GMP_WITHIN_GMP, don't want it 22670 everywhere. 22671 * Makefile.am, mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, 22672 mpf/Makefile.am, mpbsd/Makefile.am (INCLUDES): Set -D__GMP_WITHIN_GMP. 22673 22674 * configure.in (*-*-msdosdjgpp*): Forcibly disable shared libraries, 22675 to make libtests.la work. 22676 22677 * acconfig.h (_LONG_LONG_LIMB, HAVE_MPFR): Remove dummy defines, no 22678 longer needed. 22679 22680 * mpz/set_ui.c: Store to _mp_d[0] unconditionally. 22681 22682 2001-05-27 Kevin Ryde <kevin@swox.se> 22683 22684 * configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs. 22685 22686 2001-05-26 Kevin Ryde <kevin@swox.se> 22687 22688 * gmp.texi (ABI and ISA, Reentrancy): Minor tweaks 22689 (Notes for Package Builds): Note gmp.h is a generated file. 22690 (Notes for Particular Systems): -march=pentiumpro is used for gcc 22691 2.95.4 and up. 22692 (Assembler Loop Unrolling): Mention non power-of-2 unrolling. 22693 (Internals): New chapter. 22694 * mpf/README: Remove file. 22695 22696 * demos/expr/README: Miscellaneous rewordings. 22697 22698 * demos/perl: New directory. 22699 * demos/Makefile.am: Add it. 22700 * demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap, 22701 GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl: 22702 New files. 22703 22704 * configure, aclocal.m4: Update to autoconf 2.50. 22705 22706 * configure, aclocal.m4, ltmain.sh: Update to libtool 1.4. 22707 22708 * configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to 22709 automake 1.4f. 22710 * Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info. 22711 * mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling. 22712 * mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c 22713 in libmpn_la_SOURCES. 22714 * tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to 22715 libtests_la_SOURCES. 22716 * ltconfig: Remove file, no longer needed. 22717 22718 * Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from 22719 EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS. 22720 * tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES 22721 similarly. 22722 22723 * config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments. 22724 22725 * mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note 22726 non-free programs must be able to be re-linked. 22727 22728 2001-05-20 Kevin Ryde <kevin@swox.se> 22729 22730 * mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm, 22731 mpn/powerpc64/submul_1.asm: Add carry-in entrypoints. 22732 22733 2001-05-17 Kevin Ryde <kevin@swox.se> 22734 22735 * gmp.texi (ge): Fix definition for info. 22736 (Notes for Particular Systems): Mention 68k dragonball and cpu32. 22737 (Efficiency): Add static linking, more about in-place operations, 22738 describe mpq+/-integer using addmul. 22739 (Reporting Bugs): A couple of words about self-contained reports. 22740 (Floating-point Functions): Note exponent limitations of mpf_get_str 22741 and mpf_set_str. 22742 (Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and 22743 mpf_set_prec_raw a bit. 22744 (Float Comparison): Note current mpf_eq deficiencies. 22745 22746 * gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES, 22747 __GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers. 22748 * demos/expr/expr-impl-h.in: Ditto. 22749 22750 * gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if 22751 not already in gmp-mparam.h. 22752 * tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB): 22753 Check these are the same. 22754 22755 * gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec, 22756 mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the 22757 macros. 22758 * mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c, 22759 mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE. 22760 22761 * gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from 22762 gmp-impl.h to gmp-h.in. 22763 (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF 22764 prefix and add a couple of casts. 22765 * gmp-h.in (__GMP_MAX): New macro. 22766 * mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix. 22767 22768 * gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define. 22769 * acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB, 22770 remove AC_DEFINE BITS_PER_MP_LIMB. 22771 22772 2001-05-13 Kevin Ryde <kevin@swox.se> 22773 22774 * gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c: 22775 Remove mpz_si_pow_ui, pending full si support. 22776 * mpz/si_pow_ui.c: Remove file. 22777 22778 2001-05-11 Kevin Ryde <kevin@swox.se> 22779 22780 * mpn/x86/pentium/dive_1.asm: New file. 22781 22782 * mpn/powerpc32/umul.asm: Use r on registers. 22783 * mpn/powerpc64/umul.asm: New file. 22784 * configure.in (powerpc*-*-*): Enable umul in extra_functions. 22785 22786 * tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments 22787 as normal mpn_umul_ppmm. 22788 (refmpn_mul_1c): Update. 22789 * tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support. 22790 22791 * mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support 22792 size==0. 22793 * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto, 22794 and shave a couple of cycles from the PIC entry code. 22795 22796 * mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available) 22797 for size==2, to avoid copying; do vsize==0 test earlier. 22798 22799 * mpf/sub.c: Test r!=u before calling mpf_set. 22800 * mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0. 22801 22802 * mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c, 22803 mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for 22804 count_leading_zeros zero. 22805 22806 * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra 22807 flags are added. 22808 22809 * tests/mpz/t-mul_i.c: New file. 22810 * tests/mpz/Makefile.am: Add it. 22811 22812 * mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb. 22813 22814 * gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0 22815 when n==0. 22816 * mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0. 22817 * gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0. 22818 22819 2001-05-07 Kevin Ryde <kevin@swox.se> 22820 22821 * gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0 22822 when n==0 (use 1 unconditionally). 22823 * tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of 22824 _mp_exp when _mp_size is zero. 22825 22826 * mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem. 22827 22828 * gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p): 22829 Provide these as "extern inline"s. 22830 (__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros. 22831 (mpz_popcount): Use __GMP_ULONG_MAX. 22832 * gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if 22833 not already defined. 22834 * mpz/fits_u.c: Use the code from gmp.h. 22835 22836 2001-05-06 Kevin Ryde <kevin@swox.se> 22837 22838 * mpn/x86/k7/dive_1.asm: New file. 22839 * mpn/x86/k7/gcd_1.asm: New file. 22840 * mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro. 22841 22842 * gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p, 22843 mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide 22844 these as "extern inlines". 22845 Use just one big extern "C" block. 22846 * mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c 22847 mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use 22848 __GMP_FORCE to get code from gmp.h. 22849 22850 2001-05-03 Kevin Ryde <kevin@swox.se> 22851 22852 * extract-dbl.c: Add ASSERT d>=0. 22853 22854 * gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add 22855 mpz_neg etc in-place. 22856 (Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui. 22857 (Initializing Rationals): Add mpq_set_str. 22858 (Low-level Functions): mpn_set_str requires strsize >= 1. 22859 22860 * gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros. 22861 (mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline 22862 versions. 22863 * mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c: 22864 Add suitable __GMP_FORCE to turn off inline versions. 22865 22866 * tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files. 22867 * tests/mpz/Makefile.am: Add them. 22868 22869 * mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c. Add 22870 mpz_submul_ui entrypoint, share more code between some of the 22871 conditionals, use mpn_mul_1c if available. 22872 * mpz/addmul_ui.c: Remove file. 22873 * mpz/aorsmul.c: New file. 22874 * Makefile.am, mpz/Makefile.am: Update. 22875 * gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes. 22876 * gmp-impl.h (mpz_aorsmul_1): Add prototype. 22877 22878 * tests/mpq/t-set_str.c: New file. 22879 * tests/mpq/Makefile.am: Add it. 22880 22881 * mpq/set_str.c: New file. 22882 * Makefile.am, mpq/Makefile.am: Add it. 22883 * gmp-h.in (mpq_set_str): Add prototype. 22884 22885 * mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ". 22886 * mpn/generic/set_str.c: Add ASSERT str_len >= 1. 22887 22888 * gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h. 22889 * gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros. 22890 22891 2001-04-30 Kevin Ryde <kevin@swox.se> 22892 22893 * tests/mpz/t-lcm.c: New file. 22894 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 22895 22896 * mpz/lcm.c: Add one limb special case. 22897 22898 * mpz/lcm_ui.c: New file. 22899 * Makefile.am, mpz/Makefile.am: Add it. 22900 * gmp-h.in (mpz_lcm_ui): Add prototype. 22901 * gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm 22902 now always positive. 22903 22904 * mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in. 22905 22906 * gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R 22907 function defines (ansi2knr will handle mpn/inline.c, and just ansi is 22908 enough for gcc extern inline). 22909 22910 * gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro. 22911 (__MPN): Use it. 22912 * gmp-impl.h (CNST_LIMB): Ditto. 22913 22914 * gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use 22915 ANSI forms on Microsoft C. 22916 (__GMP_HAVE_CONST): New define. 22917 * gmp-impl.h (const, signed): Use it. 22918 22919 * demos/expr/expr-impl-h.in (<stdarg.h>): Use this with Microsoft C. 22920 (HAVE_STDARG): New define. 22921 * demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it. 22922 22923 * acinclude.m4 (GMP_C_STDARG): New macro. 22924 * configure.in: Call it. 22925 * rand.c: Use it. 22926 22927 * configure.in (AC_PROG_CC_STDC): New test. 22928 22929 2001-04-25 Kevin Ryde <kevin@swox.se> 22930 22931 * mpn/x86/k6/mmx/dive_1.asm: New file. 22932 * mpn/x86/x86-defs.m4 (Zdisp): Two more insns. 22933 22934 * mpn/x86/pentium/mul_2.asm: New file. 22935 * mpn/asm-defs.m4: Add define_mpn(mul_2). 22936 * acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates. 22937 22938 * configure.in (ABI): Use AC_ARG_VAR. 22939 22940 * tests/devel/try.c: Run reference function when validate fails. 22941 22942 * mpq/get_str.c: Fixes for negative bases. 22943 * tests/mpq/t-get_str.c: Check negative bases. 22944 * tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New 22945 functions. 22946 22947 2001-04-24 Torbjorn Granlund <tege@swox.com> 22948 22949 * mpz/lcm.c (mpz_lcm): Make result always positive. 22950 22951 * gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations. 22952 22953 2001-04-22 Kevin Ryde <kevin@swox.se> 22954 22955 * mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4. 22956 22957 * mpz/cmp_d.c, mpz/cmpabs_d.c: New files. 22958 * Makefile.am, mpz/Makefile.am: Add them. 22959 * mpf/cmp_d.c, mpf/get_dfl_prec.c: New files. 22960 * Makefile.am, mpf/Makefile.am: Add them. 22961 * gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec): 22962 Add prototypes. 22963 * gmp.texi: Add documentation. 22964 22965 * mpf/set_prc.c: Avoid a realloc call if already the right precision. 22966 22967 * gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros. 22968 * mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c: 22969 Use them. 22970 22971 2001-04-20 Kevin Ryde <kevin@swox.se> 22972 22973 * tests/devel/try.c: Don't test size==0 on mpn_popcount and 22974 mpn_hamdist; add testing for mpn_divexact_1; print some limb values 22975 with mpn_trace not printf. 22976 22977 * mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount 22978 and mpn_hamdist. 22979 * mpn/generic/popham.c: Don't support size==0. 22980 22981 * config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32, 22982 cleanup the nesting a bit. 22983 22984 * gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type. 22985 (Integer Division): Add mpz_divexact_ui. 22986 (Number Theoretic Functions): Fix mpz_nextprime return type. 22987 (Exact Remainder): Divisibility tests now implemented. 22988 And more index entries in a few places. 22989 22990 * tests/mpz/dive_ui.c: New file. 22991 * tests/mpz/Makefile.am (check_PROGRAMS): Add it. 22992 22993 * mpz/dive_ui.c: New file. 22994 * Makefile.am, mpz/Makefile.am: Add it. 22995 * gmp-h.in (mpz_divexact_ui): Add prototype. 22996 22997 * tune/many.pl, tune/speed.h: Add special mpn_back_to_back for 22998 development. 22999 23000 * gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro. 23001 * mpz/divexact.c: Use it. 23002 23003 * gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold. 23004 * tune/tuneup.c: Tune it. 23005 23006 * tune/speed.c,speed.h,common.c,many.pl: Add measuring of 23007 mpn_divexact_1, mpn_copyi, mpn_copyd. 23008 23009 * mpn/generic/dive_1.c: New file. 23010 * configure.in (gmp_mpn_functions): Add it. 23011 * gmp-impl.h (mpn_divexact_1): Add prototype. 23012 * mpn/asm-defs.m4: Add define_mpn(divexact_1). 23013 23014 * tests/mpn: New directory. 23015 * tests/Makefile.am: Add it. 23016 * tests/mpn/Makefile.am: New file. 23017 * configure.in (AC_OUTPUT): Add it. 23018 * tests/mpn/t-asmtype.c: New file. 23019 23020 * configure, config.in: Update to autoconf 2.49d. 23021 23022 * configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert 23023 to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST. 23024 23025 * configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32. 23026 * mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto. 23027 23028 * configure.in (underscore, asm_align): Remove these variables, unused. 23029 (GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication. 23030 * acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support 23031 for actions, no longer needed. 23032 23033 2001-04-17 Kevin Ryde <kevin@swox.se> 23034 23035 * config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo. 23036 23037 * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is 23038 fixed in 2.95.4, so test for that. 23039 (GMP_ASM_TYPE): Amend some comments. 23040 23041 * tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused 23042 variables on GNU/Linux. 23043 23044 * mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if 23045 the name of the file is a macro. 23046 23047 2001-04-15 Kevin Ryde <kevin@swox.se> 23048 23049 * mpn/powerpc64/*.asm: Add speeds on ppc630. 23050 23051 * acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR. 23052 * configure.in: Ensure config.in is the last AM_CONFIG_HEADER, 23053 which autoheader requires. 23054 23055 * mpn/x86/pentium/popcount.asm: New file. 23056 * mpn/x86/pentium/hamdist.asm: New file. 23057 23058 * mpn/asm-defs.m4: (m4_popcount): New macro. 23059 Amend a few comments elsewhere. 23060 23061 * acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for 23062 the right directive. 23063 23064 * tune/speed.c: Print clock speed in MHz, not cycle time. 23065 23066 * configure.in (AC_CHECK_HEADERS): Check for sys/processor.h. 23067 * tune/freq.c (speed_cpu_frequency_processor_info): Require 23068 <sys/processor.h> to exist, to differentiate the different 23069 processor_info on Darwin. 23070 (speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in 23071 speed_cpu_frequency_sysctl. 23072 (speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin. 23073 23074 * gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a 23075 single expression argument for the different operations, necessary for 23076 the Darwin "smart" preprocessor. 23077 23078 * mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and 23079 m4_defbranch. 23080 23081 * tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am, 23082 avoid a possibly undefined array in a diagnostic, add more renaming to 23083 hamdist. 23084 23085 2001-04-13 Kevin Ryde <kevin@swox.se> 23086 23087 * ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d. 23088 * configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and 23089 lt_cv_proc_cc_pic. 23090 23091 * config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model, 23092 detect 68000/68010 with trapf, detect 68302 with bfffo. 23093 23094 2001-04-11 Kevin Ryde <kevin@swox.se> 23095 23096 * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING, 23097 GMP_ASM_M68K_BRANCHES): New macros. 23098 * configure.in: Use them, remove old 68k configs, use mc68020 udiv and 23099 umul. 23100 23101 * mpn/m68k/m68k-defs.m4: New file. 23102 * mpn/m68k/t-m68k-defs.pl: New file. 23103 * mpn/m68k/*.asm: New files, converted from .S. Merge add_n and sub_n 23104 to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1. No 23105 object code changes (except .type and .size now used on NetBSD 1.4). 23106 * mpn/m68k/README: New file. 23107 * mpn/m68k/*.S, */*.S, syntax.h: Remove files. 23108 23109 * configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist. 23110 * tune/README: Update. 23111 23112 * configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc 23113 to cclist, make gcc_cflags -Wa,-mppc optional. 23114 23115 2001-04-06 Kevin Ryde <kevin@swox.se> 23116 23117 * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k. 23118 (gmpasm-mode-syntax-table): Add to comments. 23119 23120 * tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp. 23121 23122 2001-04-04 Kevin Ryde <kevin@swox.se> 23123 23124 * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually 23125 detect the problem, add notes on m68k netbsd 1.4.1. 23126 23127 * gmp.texi (Compatibility with older versions): Note libmp 23128 compatibility. 23129 23130 2001-04-03 Kevin Ryde <kevin@swox.se> 23131 23132 * tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp. 23133 23134 * tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with 23135 refmpn_mul_2. 23136 23137 * tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n 23138 and mpn_mul_2. 23139 * tests/devel/try.c: Add testing of mpn_mul_2, and a 23140 DATA_MULTIPLE_DIVISOR attribute. 23141 23142 * gmp.texi (Build Options): List more m68k's. 23143 (Build Options): Add cross reference to tex2html. 23144 (Notes for Particular Systems): Add m68k means 68020 or up. 23145 (Rational Conversions): New section, with mpq_get_d, mpq_set_d and 23146 mpq_set_f from Miscellaneous, and new mpq_set_str. 23147 (Applying Integer Functions): Move mpq_get_num, mpq_get_den, 23148 mpq_set_num and mpq_set_den from Misc. 23149 (Miscellaneous Rational Functions): Remove section. 23150 (Custom Allocation): Partial rewrite for various clarifications. 23151 (References): Improve line breaks near URLs. 23152 23153 * acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro. 23154 * configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2. 23155 (m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options. 23156 23157 * tests/mpz/t-cmp.c: New file. 23158 * tests/mpz/t-sizeinbase.c: New file. 23159 * tests/mpz/Makefile.am: Add them. 23160 23161 * gmp-impl.h (MPN_CMP): New macro. 23162 * mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too. 23163 23164 * tests/mpq/t-equal.c: New file. 23165 * tests/mpq/t-get_str.c: New file. 23166 * tests/mpq/Makefile.am: Add them. 23167 23168 * mpq/get_str.c: New file. 23169 * Makefile.am, mpq/Makefile.am: Add it. 23170 * gmp-h.in (mpq_get_str): Add prototype. 23171 23172 * mpq/equal.c: Rewrite using inline compare loops. 23173 23174 * tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order. 23175 * mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order. 23176 23177 2001-03-29 Kevin Ryde <kevin@swox.se> 23178 23179 * tests/mpf/t-trunc.c: New file. 23180 * tests/mpf/Makefile.am (check_PROGRAMS): Add it. 23181 * gmp-impl.h (MPF_CHECK_FORMAT): New macro. 23182 23183 * mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in 23184 copy, don't copy if unnecessary. 23185 * mpf/ceilfloor.c: New file likewise, and use common subroutine for 23186 ceil and floor. 23187 * mpf/integer.c: Remove file. 23188 * Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update. 23189 23190 * acinclude.m4 (GMP_GCC_VERSION_GE): New macro. 23191 (GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't 23192 bother checking it's gcc). 23193 (GMP_GCC_ARM_UMODSI): New macro. 23194 * configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters. 23195 (arm*-*-*): Use GMP_GCC_ARM_UMODSI. 23196 * gmp.texi (Notes for Particular Systems): Add arm gcc requirements. 23197 23198 2001-03-28 Kevin Ryde <kevin@swox.se> 23199 23200 * gmp.texi (Converting Integers): Document mpz_getlimbn using absolute 23201 value and giving zero for N out of range, move to end of section. 23202 23203 * tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than 23204 refmpn_divrem_1. 23205 * tests/tests.h: Add some prototypes that were missing. 23206 23207 * mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui. 23208 23209 2001-03-26 Torbjorn Granlund <tege@swox.com> 23210 23211 * mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code 23212 in both arms. Partially combine multiply arms. 23213 23214 2001-03-24 Kevin Ryde <kevin@swox.se> 23215 23216 * longlong.h: Add comments to P5 count_leading_zeros. 23217 23218 * demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p. 23219 23220 2001-03-23 Kevin Ryde <kevin@swox.se> 23221 23222 * gmp.texi (GMPceil, GMPfloor, ge, le): New macros. 23223 (Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them. 23224 (mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and 23225 improve formatting a bit. 23226 (mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n} 23227 for the destination. 23228 Miscellaneous minor rewordings in a few places. 23229 23230 * mpn/arm/arm-defs.m4: New file. 23231 * configure.in (arm*-*-*): Use it. 23232 * mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L() 23233 for local labels. 23234 23235 * mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed). 23236 23237 * gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application 23238 namespace. 23239 23240 * gmp-impl.h (ABS): Add parens around argument. 23241 23242 2001-03-20 Kevin Ryde <kevin@swox.se> 23243 23244 * acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4. 23245 23246 * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro. 23247 * configure.in: Use it. 23248 * mpn/asm-defs.m4: Ditto. 23249 23250 2001-03-18 Kevin Ryde <kevin@swox.se> 23251 23252 * mpn/x86/pentium/logops_n.asm: New file. 23253 23254 * mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on 23255 small sizes, slower on big sizes (about half the time). 23256 * mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86. 23257 * mpn/x86/copyi.asm: Add some comments. 23258 * mpn/x86/k6/README: Update. 23259 23260 * mpn/x86/k6/gcd_1.asm: New file. 23261 23262 * gmp-impl.h (NEG_MOD): Fix type of __dnorm. 23263 23264 * acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE. 23265 23266 2001-03-15 Kevin Ryde <kevin@swox.se> 23267 23268 * gmp.texi (GMPabs): New macro. 23269 (Float Comparison - mpf_reldiff): Use it. 23270 (Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info. 23271 (Reentrancy): Update notes on old random functions. 23272 (Karatsuba Multiplication): Better characterize the effect of basecase 23273 speedups on the thresholds, pointed out by Torbjorn. 23274 23275 * tune/README: Notes on the 1x1 div threshold for mpn_gcd_1. 23276 23277 * tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb, 23278 mpz_errandomb_nonzero, mpz_negrandom): New functions. 23279 (mpz_erandomb, mpz_erandomb_nonzero): Use urandom(). 23280 * tests/spinner.c (spinner_wanted, spinner_tick): Make global. 23281 * tests/tests.h: Update prototypes. 23282 23283 * tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files. 23284 * tests/mpz/Makefile.am (check_PROGRAMS): Add them. 23285 23286 * mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files. 23287 * Makefile.am, mpz/Makefile.am: Add them. 23288 * gmp-impl.h (NEG_MOD): New macro. 23289 * gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p, 23290 mpz_congruent_ui_p): Add prototypes. 23291 * gmp.texi (Integer Division, Efficiency): Add documentation. 23292 23293 * mpq/aors.c: No need for ABS on denominator sizes. 23294 23295 * gmp-impl.h (mpn_divisible_p): Use __MPN. 23296 23297 * gmp-impl.h (LOW_ZEROS_MASK): New macro. 23298 * mpz/divis_ui.c, mpn/generic/divis.c: Use it. 23299 23300 * mpz/setbit.c: Fix normalization for case of a negative ending up 23301 with a zero high limb. 23302 * tests/mpz/bit.c (check_single): New test for this problem. 23303 23304 * configure.in (none-*-*): Fix cclist for default ABI=long. 23305 23306 2001-03-10 Kevin Ryde <kevin@swox.se> 23307 23308 * mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't 23309 matter to the rounding. 23310 23311 * mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come 23312 out branch-free. 23313 23314 2001-03-08 Kevin Ryde <kevin@swox.se> 23315 23316 * tests/devel/try.c (param_init): Fix reference functions for and_n 23317 and nand_n. 23318 23319 * tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc. 23320 * configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom. 23321 * macos/configure (coptions): Remove random/srandom, now unnecessary. 23322 23323 * configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using 23324 AM_CONFIG_HEADER. 23325 (_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs. 23326 * gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's. 23327 * acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h. 23328 * Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done 23329 automatically. 23330 * acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use 23331 __GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST. 23332 23333 * mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the 23334 exponent, ensures full range of values too. 23335 23336 * tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but 23337 don't let it go negative. 23338 23339 * tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to 23340 TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c. 23341 Use a -1 with this too, so size<LIMIT not <=. 23342 23343 2001-03-07 Torbjorn Granlund <tege@swox.com> 23344 23345 * mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0. 23346 * mpn/cray/cfp/addmul_1.c: Likewise. 23347 * mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0. 23348 23349 * tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0 23350 (avoid problems with Cray compilers). 23351 23352 2001-03-06 Torbjorn Granlund <tege@swox.com> 23353 23354 * mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0. 23355 23356 * mpn/cray/ieee/mul_basecase.c: New file. 23357 * mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c. 23358 23359 2001-03-06 Kevin Ryde <kevin@swox.se> 23360 23361 * tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for 23362 the benefit of mpn_tdiv_qr. 23363 23364 * tune/tuneup.c (all): Start karatsuba probing at size==4, for the 23365 benefit of cray t90 ieee which has speed oddities at size==2. 23366 23367 * gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ. 23368 Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places. 23369 23370 * gmp-h.in (__GMP_GNUC_PREREQ) New macro. 23371 (__GMP_ATTRIBUTE_PURE): New macro, use it in many places. 23372 23373 * gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to 23374 gmp-impl.h, use ATTRIBUTE_CONST. 23375 23376 * tune/speed.h (speed_cyclecounter): Inline asm version for i386. 23377 23378 * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second 23379 realloc, first is under w!=u. 23380 23381 2001-03-05 Torbjorn Granlund <tege@swox.com> 23382 23383 * mpn/cray/sub_n.c: Rewrite using `majority' logic. 23384 23385 * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w. 23386 23387 * mpn/cray/ieee/mul_1.c: Rewrite. Streamline multiplications; 23388 use `majority' logic. 23389 * mpn/cray/ieee/addmul_1.c: Likewise. 23390 23391 * mpn/cray/add_n.c: Rewrite using `majority' logic. 23392 23393 2001-03-04 Torbjorn Granlund <tege@swox.com> 23394 23395 * longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP. 23396 (64-bit hppa add_ssaaaa): New. 23397 (64-bit hppa sub_ddmmss): New. 23398 23399 * mpn/cray/ieee/invert_limb.c: New file. 23400 23401 * gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers. 23402 23403 2001-03-03 Kevin Ryde <kevin@swox.se> 23404 23405 * mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h. 23406 * gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic 23407 form by Torbjorn. 23408 23409 * tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c. 23410 * tests/mpz/t-2exp.c: Remove file. 23411 * tests/mpz/Makefile.am (check_PROGRAMS): Update. 23412 23413 * gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes. 23414 * gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp. 23415 23416 * mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add 23417 mpz_cdiv_q_2exp entrypoint. 23418 * mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn, 23419 add mpz_cdiv_r_2exp entrypoint. 23420 * mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files. 23421 * mpz/Makefile.am (libmpz_la_SOURCES): Update. 23422 * Makefile.am (MPZ_OBJECTS): Ditto. 23423 23424 * gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h 23425 (REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros. 23426 * mpz/jacobi.c (jac_or_kron): Use them. 23427 23428 * configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with 23429 dots changed to underscores (necessary for hppa). 23430 23431 * tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files. 23432 * tests/mpz/Makefile.am (check_PROGRAMS): Add them. 23433 23434 * gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p, 23435 mpz_divisible_2exp_p): Add prototypes. 23436 * gmp.texi (Integer Division): Add mpz_divisible_p. 23437 (Efficiency): Add remarks about divisibility testing. 23438 23439 * mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files. 23440 * mpz/Makefile.am (libmpz_la_SOURCES): Add them. 23441 * Makefile.am (MPZ_OBJECTS): Ditto. 23442 23443 * mpn/generic/divis.c: New file. 23444 * configure.in (gmp_mpn_functions): Add it. 23445 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto. 23446 * gmp-impl.h (mpn_divisible_p): Add prototype. 23447 23448 * urandom.h: Remove file. 23449 * Makefile.am (EXTRA_DIST): Remove it. 23450 23451 * tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c, 23452 t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c, 23453 t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c, 23454 t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start. 23455 23456 * tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some 23457 further tests added. 23458 * tests/mpz/t-pow_ui.c: Remove file. 23459 * tests/mpz/Makefile.am (check_PROGRAMS): Update. 23460 23461 * tests/t-modlinv.c: Don't use urandom.h. 23462 * tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto. 23463 * tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto. 23464 * tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c, 23465 t-sqrt.c, t-sub.c: Ditto. 23466 23467 * tests/misc.c (tests_rand_start, tests_rand_end): New functions. 23468 (tests_start, tests_end): Use them. 23469 (urandom): New function. 23470 * tests/tests.h: Add prototypes. 23471 23472 * mpz/random.c: Rewrite using mpz_urandomb and RANDS. 23473 * mpn/generic/random.c: Rewrite using _gmp_rand and RANDS. 23474 * mpn/generic/random2.c: Use RANDS not random() etc. 23475 23476 * gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs. 23477 (gmp_randstate_ptr): New typedef. 23478 (RANDS, RANDS_CLEAR): New macros. 23479 23480 * rands.c: New file. 23481 * Makefile.am (libgmp_la_SOURCES): Add it. 23482 23483 * configure.in (mpn_objs_in_libmp): New AC_SUBST. 23484 * Makefile.am (libmp_la_DEPENDENCIES): Use it. 23485 23486 2001-03-02 Torbjorn Granlund <tege@swox.com> 23487 23488 * mpn/pa64/udiv_qrnnd.asm: New file. 23489 23490 2001-03-01 Kevin Ryde <kevin@swox.se> 23491 23492 * mpbsd/rpow.c: New file. 23493 * mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it 23494 (nodist_libmpbsd_la_SOURCES): Remove pow_ui.c. 23495 * Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo. 23496 (libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo. 23497 23498 * mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui. 23499 * mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd. 23500 23501 * mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c. Use 23502 less temporary memory, strip factors of 2 from the base, use mpn_mul_2 23503 if available. 23504 * mpz/si_pow_ui.c: New file. 23505 * mpz/Makefile.am (libmpz_la_SOURCES): Add them. 23506 * Makefile.am (MPZ_OBJECTS): Ditto. 23507 * gmp-impl.h (mpz_n_pow_ui): Add prototype. 23508 * gmp-h.in (mpz_si_pow_ui): Add prototype. 23509 * gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui. 23510 23511 * acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG. 23512 Correction to mp_limb_t working check. 23513 * configure.in (limb_chosen): New variable. 23514 * tests/t-constants.c (BITS_PER_ULONG): Check this value. 23515 Add some reminders about tests that fail on Cray. 23516 23517 * tests/refmpn.c (refmpn_mul_2): New function. 23518 * tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c 23519 * tests/tests.h: Add prototypes. 23520 23521 * configure.in (none-*-*): Add ABI=longlong. 23522 * doc/configuration (Long long limb testing): Describe it. 23523 23524 * gmp.texi (Low-level Functions): Move some commented out remarks ... 23525 * mpn/generic/mul_basecase.c: ... to here. 23526 23527 * mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__. 23528 23529 * tests/trace.c (mp_trace_start): Print "bin" for binary. 23530 23531 * mpn/generic/dump.c: Add a couple of casts to keep gcc quiet. 23532 23533 * gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments. 23534 23535 * mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable. 23536 23537 * mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs. 23538 23539 2001-02-28 Torbjorn Granlund <tege@swox.com> 23540 23541 * mpn/pa64w/udiv_qrnnd.asm: Tune. 23542 23543 2001-02-27 Torbjorn Granlund <tege@swox.com> 23544 23545 * mpn/pa64w/udiv_qrnnd.asm: New file. 23546 23547 2001-02-26 Torbjorn Granlund <tege@swox.com> 23548 23549 * longlong.h (arm): Optimize sub_ddmmss by testing for constant 23550 operands. 23551 * mpn/arm/invert_limb.asm: New file. 23552 23553 2001-02-24 Torbjorn Granlund <tege@swox.com> 23554 23555 * mpn/generic/lshift.c: Rewrite. 23556 * mpn/generic/rshift.c: Rewrite. 23557 23558 * longlong.h: Use UWtype for external interfaces that expect mp_limb_t. 23559 23560 * longlong.h (arm): #define invert_limb. 23561 23562 * mpn/arm: Make labels have local scope. 23563 23564 * configure.in (arm*-*-*): Set extra_functions. 23565 * longlong.h (arm): #define udiv_qrnnd. 23566 * mpn/arm/udiv.asm: New file. 23567 23568 2001-02-24 Kevin Ryde <kevin@swox.se> 23569 23570 * tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros 23571 and mpn_invert_limb. Add count_leading_zeros, count_trailing_zeros 23572 from a .h file. Correction to modexact_1_odd prototype. Support 23573 ansi2knr. 23574 * tune/speed.h, tune/common.c: Consequent changes. 23575 23576 * demos/expr/*: Make a few more functions available in expressions, 23577 create only libexpr.a, misc minor updates. 23578 23579 * mpn/Makeasm.am: Add some comments about suffix ordering. 23580 23581 * tests/refmpn.c (rshift_make, lshift_make): No need to compare 23582 unsigned to zero. 23583 23584 * mpq/mul.c: Detect and optimize squaring. 23585 23586 2001-02-23 Torbjorn Granlund <tege@swox.com> 23587 23588 * mpn/mips3: Convert files to `.asm'. 23589 23590 * mpn/arm: Convert files to `.asm'. Misc cleanups. 23591 * mpn/arm/submul_1.asm: New file. 23592 23593 2001-02-21 Kevin Ryde <kevin@swox.se> 23594 23595 * tune/tuneup.c (all): Only one compiler print should match, no need 23596 for #undef PRINTED_COMPILER. 23597 23598 * mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul). 23599 23600 * mpz/fib_ui.c: Update some remarks about alternative algorithms. 23601 * gmp.texi (Fibonacci Numbers Algorithm): Ditto. 23602 (Assigning Floats): Clarify mpf_swap swaps the precisions too. 23603 (Low-level Functions): Try to be clearer about negative cofactors. 23604 23605 2001-02-21 Torbjorn Granlund <tege@swox.com> 23606 23607 * mpn/sparc64/copyi.asm: Streamline for small operands. 23608 * mpn/sparc64/add_n.asm: Likewise. 23609 * mpn/sparc64/sub_n.asm: Likewise. 23610 23611 * mpn/sparc64/copyd.asm: New file. 23612 23613 2001-02-20 Torbjorn Granlund <tege@swox.com> 23614 23615 * mpn/sparc64/lshift.asm: Rewrite. 23616 * mpn/sparc64/rshift.asm: Rewrite. 23617 23618 2001-02-19 Torbjorn Granlund <tege@swox.com> 23619 23620 * mpn/sparc64/add_n.asm: Rewrite using `majority' logic. 23621 * mpn/sparc64/sub_n.asm: Likewise. 23622 23623 * tune/tuneup.c (all): Recognise DECC and MIPSpro compilers. 23624 23625 * mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE. 23626 * mpn/pa642/sqr_diagonal.asm: Likewise. 23627 23628 * configure.in (HAVE_ABI_$abi): Disable for now. 23629 23630 * mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX. 23631 23632 * acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities. 23633 23634 2001-02-18 Torbjorn Granlund <tege@swox.com> 23635 23636 * mpn/hppa/hppa1_1/gmp-mparam.h: New file. 23637 * mpn/hppa/hppa2_0/gmp-mparam.h: New file. 23638 23639 * mpn/pa64/sqr_diagonal.asm: New file. 23640 * mpn/pa64w/sqr_diagonal.asm: New file. 23641 * mpn/hppa/hppa1_1/sqr_diagonal.asm: New file. 23642 * mpn/hppa/hppa2_0/sqr_diagonal.asm: New file. 23643 23644 * mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy 23645 FA-pipeline insns. 23646 * mpn/sparc32/v9/sub_n.asm: Likewise. 23647 23648 2001-02-18 Kevin Ryde <kevin@swox.se> 23649 23650 * gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc 23651 tweaks elsewhere. 23652 (Low-level Functions): Use {} notation in mpn_sqrtrem. 23653 (Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD. 23654 23655 * mpfr/isnan.c (mpfr_number_p): Infinity is not a number. 23656 * mpfr/out_str.c: Pass strlen+1 for the block size to free. 23657 * mpfr/get_str.c: Correction for realloc to strlen+1. 23658 23659 * acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't 23660 seem to work for some reason. 23661 23662 2001-02-16 Torbjorn Granlund <tege@swox.com> 23663 23664 * mpn/sparc32/v9/gmp-mparam.h: Retune. 23665 23666 * mpn/sparc32/v9/add_n.asm: New file. 23667 * mpn/sparc32/v9/sub_n.asm: New file. 23668 23669 * mpn/sparc32/v9/mul_1.asm: Tune function entry. 23670 * mpn/sparc32/v9/addmul_1.asm: Likewise. 23671 * mpn/sparc32/v9/submul_1.asm: Likewise. 23672 23673 * mpn/sparc32/v9/sqr_diagonal.asm: New file. 23674 23675 2001-02-16 Kevin Ryde <kevin@swox.se> 23676 23677 * configure.in: Fix flags selection when $CC is a compiler known to us. 23678 23679 * demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now 23680 allows NULL for one parameter. 23681 23682 * mpfr/*: Update to 20010215. 23683 * mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p. 23684 * mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new. 23685 * mpfr/sqrtrem.c: Remove file. 23686 * mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c, 23687 remove sqrtrem.c and srandom.h. 23688 23689 * configfsf.guess: Update to 2001-02-13. 23690 * configfsf.sub: Update to 2001-02-16. 23691 * config.sub (j90, t90): Remove special handing, configfsf.sub now ok. 23692 23693 * Makefile.am (MPF_OBJECTS): Add a couple of missing $U's. 23694 23695 * tune/tuneup.c: Identify compiler used (GCC and Sun C so far). 23696 23697 2001-02-15 Torbjorn Granlund <tege@swox.com> 23698 23699 * mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'. 23700 * mpn/sparc32/v9/addmul_1.asm: Likewise. 23701 * mpn/sparc32/v9/submul_1.asm: Likewise. 23702 23703 2001-02-14 Torbjorn Granlund <tege@swox.com> 23704 23705 * mpn/mips3/mips.m4: New file. 23706 * configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4. 23707 23708 * mpn/powerpc64/sqr_diagonal.asm: New file. 23709 23710 * mpn/mips3/sqr_diagonal.asm: New file. 23711 23712 2001-02-12 Torbjorn Granlund <tege@swox.com> 23713 23714 * mpn/powerpc32/sqr_diagonal.asm: New file. 23715 23716 * mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal. 23717 Fix typo in header comment. 23718 23719 2001-02-12 Kevin Ryde <kevin@swox.se> 23720 23721 * mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use 23722 mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD. 23723 * tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD. 23724 23725 * Makefile.am (libgmp.la, libmp.la): Revert change to build from 23726 mpn/libmpn.la etc, go back to explicitly listed objects. 23727 23728 * configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*. 23729 23730 2001-02-11 Torbjorn Granlund <tege@swox.com> 23731 23732 * mpn/asm-defs.m4 (sqr_diagonal): New define_mpn. 23733 23734 * mpn/alpha/sqr_diagonal.asm: New file. 23735 23736 2001-02-11 Kevin Ryde <kevin@swox.se> 23737 23738 * gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input 23739 plus 1 extra limb. 23740 23741 * mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c, 23742 set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R. 23743 * tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c, 23744 demos/expr/t-expr.c: Ditto. 23745 23746 * configure.in (HAVE_ABI_$abi): New define in config.m4. 23747 23748 * gmp-impl.h (mpn_sqr_diagonal): Add prototype and define. 23749 * tune/speed.c,speed.h,common.c,many.pl: Add measuring of 23750 mpn_sqr_diagonal. 23751 23752 * gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg 23753 movq bug the same as 2.6. 23754 23755 * mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h. 23756 23757 * mpn/x86/README: Merge contents of README.family. 23758 * mpn/x86/README.family: Remove file. 23759 23760 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda, 23761 invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically. 23762 23763 2001-02-10 Torbjorn Granlund <tege@swox.com> 23764 23765 * configure.in (gmp_mpn_functions_optional): List sqr_diagonal. 23766 23767 * mpn/powerpc32/aix.m4: Use unnamed csects. 23768 * mpn/powerpc64/aix.m4: Likewise. 23769 23770 * acconfig.h: Add #undef of mpn_sqr_diagonal. 23771 Remove lots of spacing. 23772 23773 * configure.in (syntax testing section): Match power* instead of 23774 powerpc*. 23775 * mpn/power: Convert files to `.asm'. 23776 Prefix umul_ppmm and sdiv_qrnnd. 23777 Update some comments. 23778 23779 2001-02-09 Kevin Ryde <kevin@swox.se> 23780 23781 * acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and 23782 HAVE_NATIVE_mpn_modexact_1c_odd. 23783 23784 * configure.in (CCAS): Don't override a user selection. 23785 23786 * mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0. 23787 23788 2001-02-08 Torbjorn Granlund <tege@swox.com> 23789 23790 * mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate. 23791 23792 2001-02-07 Kevin Ryde <kevin@swox.se> 23793 23794 * gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented. 23795 23796 * mpn/generic/random2.c (myrandom): Use rand() on mingw. 23797 23798 * mpn/alpha/gmp-mparam.h: Update tuned parameters. 23799 23800 2001-02-05 Torbjorn Granlund <tege@swox.com> 23801 23802 * mpn/alpha/ev6/gmp-mparam.h: Retune. 23803 23804 2001-02-05 Kevin Ryde <kevin@swox.se> 23805 23806 * Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather 23807 than explicitly listed objects. 23808 23809 * urandom.h: Use rand() on mingw. 23810 23811 * mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1. 23812 23813 2001-02-04 Torbjorn Granlund <tege@swox.com> 23814 23815 * mpn/ia64/copyi.asm: New file. 23816 * mpn/ia64/copyd.asm: New file. 23817 23818 2001-02-04 Kevin Ryde <kevin@swox.se> 23819 23820 * mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h, 23821 mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h, 23822 mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h: 23823 Update tuned parameters. 23824 23825 * mpn/x86/i486: New directory. 23826 * configure.in (i486-*-*): Use it. 23827 * mpn/x86/i486/gmp-mparam.h: New file. 23828 23829 * mpn/x86/pentium/mode1o.asm: New file. 23830 * mpn/x86/p6/mode1o.asm: New file. 23831 23832 * tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC). 23833 23834 * gmp.texi (Integer Division): Another rewording of 2exp divisions. 23835 23836 2001-02-03 Torbjorn Granlund <tege@swox.com> 23837 23838 * mpn/arm/gmp-mparam.h: Tune. 23839 23840 * mpn/ia64/popcount.asm: Put a `;;' break at end of main loop. 23841 23842 * configure.in (arm*-*-*): Set gcc_cflags in order to pass 23843 $fomit_frame_pointer. 23844 23845 * tests/mpz/t-mul.c (base_mul): Remove an unused variable. 23846 23847 2001-02-02 Torbjorn Granlund <tege@swox.com> 23848 23849 * demos/pexpr.c (TIME): New macro. 23850 (main): Use TIME--print timing more accurately. 23851 (setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte. 23852 23853 * longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss. 23854 23855 2001-02-02 Kevin Ryde <kevin@swox.se> 23856 23857 * configure.in: Don't remove gmp-mparam.h and mpn source links under 23858 --no-create since in that case they're not re-created. 23859 23860 * demos/expr: New directory. 23861 * Makefile.am (SUBDIRS, allprogs): Add it. 23862 * demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c, 23863 exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h, 23864 expr-impl-h.in, run-expr.c, t-expr.c: New files. 23865 * configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h. 23866 23867 * Makefile.am: Remove mpfr from main libgmp. 23868 * mpfr/Makefile.am: Build and install separate libmpfr.a. 23869 * mpfr/*: Update to mpfr 2001. 23870 23871 * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2. 23872 * Makefile.am (libtool -version-info): Bump appropriately. 23873 * NEWS: Updates. 23874 23875 * tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c, 23876 tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c, 23877 divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames. 23878 * tune/Makefile.am (libspeed_la_SOURCES): Update. 23879 23880 * mpn/x86/*/README, mpn/x86/README.family: Misc updates. 23881 * tune/README: Misc updates. 23882 * doc/configuration: Misc updates. 23883 23884 * mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to 23885 UDIV_NORM_PREINV_TIME. 23886 23887 * mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort. 23888 23889 * rand.c (__gmp_rand_lc_scheme): Add "const". 23890 (struct __gmp_rand_lc_scheme_struct): Make astr "const char *". 23891 23892 * demos/calc/calc.y, demos/calc/calclex.l: Add kron function. 23893 23894 * tests/devel/try.c: Partial rewrite, new scheme of function types, 23895 allow result validation functions, add sqrtrem and jacobi testing. 23896 * tune/many.pl: Corresponding updates. 23897 * tests/devel/Makefile.am: Add a convenience rule for libtests.la. 23898 23899 * tests/refmpz.c: New file. 23900 * tests/Makefile.am: Add it. 23901 * tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions. 23902 * tests/tests.h: Add prototypes. 23903 23904 * mpn/x86/k6/cross.pl: Add a couple more exceptions. 23905 23906 * gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex. 23907 (Introduction to GMP): Mention Cray vector systems. 23908 (Build Options): Describe --enable-mpfr, refer to its manual. Add 23909 Crays under supported CPUs. 23910 (Debugging): Add notes on source file paths. 23911 (Autoconf): New section. 23912 (Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and 23913 mpz_set_f. 23914 (Converting Integers): Note the size mpz_get_str allocates. 23915 (Floating-point Functions): Rewrite introduction, clarifying some 23916 points about precision handling. 23917 (Converting Floats): Note the size mpf_get_str allocates, and that it 23918 gives an empty string for zero. Add mpf_get_si and mpf_get_ui. 23919 (Float Comparison): Give the formula mpf_reldiff calculates. 23920 (Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p. 23921 (Random Number Functions): Misc rewordings for clarity. 23922 (Random State Initialization): Ditto. 23923 (Custom Allocation): Remove note on deallocate_function called with 0, 23924 misc rewording and clarifications. 23925 (Exact Remainder): New section. 23926 (Binary GCD): A few words on initial reduction using division. 23927 (Accelerated GCD): Refer to exact remainder section. 23928 (Extended GCD): Extra remarks on single versus double selection. 23929 (Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd. 23930 (Modular Powering Algorithm): Refer to exact remainder section. 23931 (Assembler SIMD Instructions): Update remarks on MMX. 23932 (Contributors): Amend to "Divide and Conquer" division. 23933 (References): Tweak some formatting. Add "Proof of GMP Fast Division 23934 and Square Root Implementations" by Paul Zimmermann. 23935 23936 2001-01-31 Torbjorn Granlund <tege@swox.com> 23937 23938 * configure.in: Don't ever pass -mips3; let ABI flags imply ISA. 23939 23940 2001-01-31 Kevin Ryde <kevin@swox.se> 23941 23942 * tune/time.c: Remove unnecessary longlong.h. 23943 (speed_endtime): Add some extra diagnostics. 23944 23945 * tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for 23946 the divisor, not mp_limb_t. 23947 * tests/mpz/t-jac.c (try_base): Use %llu for long long limb. 23948 * tests/trace.c: Add <string.h> for strlen. 23949 23950 * tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle 23951 frequency" of 0, allow "BogoMIPS" as well as "bogomips". 23952 23953 * macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects. 23954 23955 2001-01-30 Torbjorn Granlund <tege@swox.com> 23956 23957 * longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc. 23958 23959 2001-01-29 Torbjorn Granlund <tege@swox.com> 23960 23961 * mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'. 23962 * mpn/powerpc64/submul_1.asm: Likewise. 23963 * mpn/powerpc64/mul_1.asm: Likewise. 23964 23965 * configure.in (alpha*-*-*): Amend last change to handle pca*. 23966 23967 2001-01-29 Kevin Ryde <kevin@swox.se> 23968 23969 * tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the 23970 compiler optimize everything away. 23971 23972 * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure 23973 operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv, 23974 mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv, 23975 mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv. 23976 * tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c, 23977 tune/sb_inv.c: New files. 23978 23979 * tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c, 23980 tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD. 23981 23982 * mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD. 23983 * mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD. 23984 23985 * mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files, 23986 just m4 include()ing the P55 code. 23987 * configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path. 23988 23989 2001-01-27 Kevin Ryde <kevin@swox.se> 23990 23991 * configure.in (AC_CHECK_FUNCS): Add srand48. 23992 * tune/speed.c: Use this test. 23993 23994 * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc 23995 --version, warn if the format is unrecognised. 23996 (GMP_COMPARE_GE): Guard against empty $1 not only on last arg. 23997 (GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal 23998 "dnl"s since autoconf thinks they indicate faulty macros. 23999 24000 * mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly 24001 strlen(str)+1 bytes. 24002 * mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when 24003 freeing. 24004 * tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised. 24005 24006 * tests/mpz/t-fits.c: New file. 24007 * tests/mpz/Makefile.am: Add it. 24008 24009 * tests/mpf/t-fits.c: New file. 24010 * tests/mpf/t-get_si.c: New file. 24011 * tests/mpf/t-int.c: New file. 24012 * tests/mpf/Makefile.am: Add them. 24013 24014 * mpf/fits_s.c: New file. 24015 * mpf/fits_u.c: New file. 24016 * mpf/get_si.c: New file. 24017 * mpf/get_ui.c: New file. 24018 * mpf/int_p.c: New file. 24019 * Makefile.am, mpf/Makefile.am: Add them. 24020 * gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add 24021 prototypes. 24022 24023 * tests/memory.c (tests_allocate, tests_reallocate): Guard against 24024 size==0. 24025 24026 * tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and 24027 tests_end. 24028 24029 * gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals. 24030 24031 2001-01-23 Kevin Ryde <kevin@swox.se> 24032 24033 * configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution, 24034 allowing -DPIC to be suppressed on cygwin. 24035 (CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather 24036 than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8. 24037 24038 * mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary 24039 +[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3. 24040 * mpn/x86/README.family: Add notes on the problem. 24041 24042 2001-01-20 Torbjorn Granlund <tege@swox.com> 24043 24044 * configure.in (alpha*-*-*): Default `flavour' to ev4. 24045 24046 2001-01-19 Kevin Ryde <kevin@swox.se> 24047 24048 * assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to 24049 void, since it's no longer used in expressions. 24050 24051 * mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets 24052 tune/many.pl. 24053 24054 * mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and 24055 negative denominators; merge mpz_jacobi and mpz_legendre, add 24056 mpz_kronecker; use mpn directly, add special cases for size==1. 24057 * gmp.texi (Number Theoretic Functions): Update. 24058 * gmp-h.in (mpz_kronecker): Add prototype. 24059 * gmp-impl.h (USE_LEADING_REGPARM): New macro. 24060 * tests/mpz/t-jac.c: Test mpz_kronecker. 24061 * mpz/legendre.c: Remove file. 24062 * Makefile.am, mpz/Makefile.am: Update. 24063 24064 * longlong.h (alpha count_leading_zeros): Use __attribute__ ((const)) 24065 when possible, add parameter to prototype. 24066 (ia64 udiv_qrnnd): Use for all compilers, not just gcc. 24067 (pentium count_trailing_zeros): Use count_leading_zeros. 24068 24069 * acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New 24070 macros. 24071 * configure.in: Use them. 24072 * gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros. 24073 (mpn_invert_limb): Add ATTRIBUTE_CONST. 24074 (__gmp_assert_fail): Add ATTRIBUTE_NORETURN. 24075 24076 2001-01-18 Kevin Ryde <kevin@swox.se> 24077 24078 * gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func, 24079 __gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the 24080 benefit of gmp++.h. 24081 24082 * gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT 24083 and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and 24084 mpf_set_str_or_abort in libtests. 24085 * tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c, 24086 tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c, 24087 tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update. 24088 24089 * mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL). 24090 24091 * tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors. 24092 24093 2001-01-18 Torbjorn Granlund <tege@swox.com> 24094 24095 * demos/pexpr.c (main): Accept -vml option. 24096 (fns): List `hamdist', `pow', `nextprime'. 24097 (mpz_eval_expr): Return -1 for `popc' of negative. 24098 (mpz_eval_expr): Handle `hamdist', `pow', `nextprime'. 24099 24100 2001-01-15 Kevin Ryde <kevin@swox.se> 24101 24102 * mpn/alpha/ev5/mode1o.c: New file. 24103 24104 * tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p 24105 before running speed_cyclecounter. 24106 * tune/speed.h (cycles_works_p): Add prototype. 24107 24108 2001-01-13 Torbjorn Granlund <tege@swox.com> 24109 24110 * tests/rand/t-rand.c (farr): Fix typo. 24111 (zarr): Fix typo. 24112 24113 2001-01-12 Kevin Ryde <kevin@swox.se> 24114 24115 * mpz/kronsz.c: Don't depend on right shifting a negative. 24116 24117 * mpn/x86/gmp-mparam.h: New file. 24118 24119 * mpn/x86/pentium/mmx/mul_1.asm: New file. 24120 24121 2001-01-11 Torbjorn Granlund <tege@swox.com> 24122 24123 * mpz/kronsz.c: Temporary workaround for Cray right shift oddities. 24124 Explicitly compare against zero in tests. 24125 24126 2001-01-10 Kevin Ryde <kevin@swox.se> 24127 24128 * mpz/kronzs.c: Don't depend on right shifting a negative. 24129 24130 2001-01-09 Torbjorn Granlund <tege@swox.com> 24131 24132 * tests/t-constants.c: Disable some undefined tests. 24133 (CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added. 24134 24135 2001-01-09 Kevin Ryde <kevin@swox.se> 24136 24137 * tests/t-constants.c: Add more diagnostics. 24138 (CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64. 24139 24140 * mpn/x86/k6/mode1o.asm: New file. 24141 * mpn/x86/k7/mode1o.asm: New file. 24142 24143 * mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's. 24144 (__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for 24145 GSYM_PREFIX. 24146 * mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl. 24147 24148 * tests/mpz/t-jac.c (check_a_zero): New test. 24149 (check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last 24150 change avoiding a,b=0, both are fine. 24151 (try_2den): Don't use mpz_kronecker_ui for the expected answer. 24152 (try_*): Call abort rather than exit. 24153 24154 * mpz/kronzu.c, mpz/kronzs.c: Fix for a=0. 24155 24156 * tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R. 24157 24158 2001-01-08 Torbjorn Granlund <tege@swox.com> 24159 24160 * urandom.h: Amend 2000-11-21 change to also handle cygwin. 24161 24162 2001-01-08 Kevin Ryde <kevin@swox.se> 24163 24164 * tune/many.pl: Updates for move to tests/devel, add modexact_1_odd, 24165 don't assume C files can't have carry-in entrypoints, remove 24166 $(TRY_TESTS_OBJS) now in libtests. 24167 24168 * tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove 24169 mpn_mod_1_rshift testing. 24170 24171 * tune/tuneup.c (fft_step_size): Test for overflow using the actual 24172 mp_size_t, don't use BITS_PER_INT. 24173 24174 * tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and 24175 change LONG_ONES to LIMB_ONES. 24176 * tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT. 24177 24178 * extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not 24179 BITS_PER_LONGINT. 24180 24181 * mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR. 24182 * mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT. 24183 * tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX 24184 tests with some explicit code. 24185 24186 * mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c 24187 (BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR): 24188 Remove defines, remove probings, remove tests. 24189 24190 * tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning. 24191 24192 * tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd, 24193 mpn_gcd_finda, and an "N" form for mpn_gcd_1. 24194 24195 * tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0. 24196 24197 2001-01-07 Kevin Ryde <kevin@swox.se> 24198 24199 * configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs. 24200 24201 * mpn/generic/mod_1_rs.c: Remove file, no longer needed. 24202 * gmp-h.in (mpn_mod_1_rshift): Remove prototype and define. 24203 24204 * mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO. 24205 24206 * mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use 24207 mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new 24208 JACOBI macros. Various rearrangements supporting all this. 24209 24210 * mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much 24211 bigger than v when size==1, some rearrangements supporting this. 24212 24213 * gmp-impl.h (JACOBI_*): More macros, add some casts to "int". 24214 (MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter. 24215 (mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines. 24216 (MODEXACT_1_ODD_THRESHOLD): New threshold. 24217 (MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros. 24218 24219 * mpn/generic/mode1o.c: New file. 24220 24221 * tests/mpz/reuse.c: Add testing of mpz_divexact_gcd. 24222 * tests/mpz/t-fac_ui.c: Use libtests for memory leak checking. 24223 * tests/mpz/t-fib_ui.c: Add a usage comment. 24224 24225 * tests/mpz/bit.c: Use libtests. 24226 * tests/mpz/t-scan.c: Remove unused subroutines. 24227 * tests/devel/try.c: Use libtests, define PROT_NONE if the system 24228 doesn't. 24229 24230 * tests/spinner.c, tests/x86check.c: Use tests.h. 24231 * tests/trace.c: Use tests.h, add mpf_trace. 24232 * tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned, 24233 refmpn_tstbit, refmpn_neg. 24234 24235 * tune/common.c, tune/speed.h: Update for functions moved to 24236 tests/misc.c. 24237 24238 * tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am, 24239 tests/mpf/Makefile.am: Use tests/libtests.la. 24240 24241 * configure.in (AC_OUTPUT): Update for new directories. 24242 (x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow 24243 ansi2knr on x86check.c. 24244 24245 * tests/Makefile.am: Establish new libtests.la convenience library, 24246 add mpz, mpq, mpf, mpbsd subdirectories. 24247 * tests/tests.h: New file. 24248 * mpn/tests/ref.h,try.h: Remove files, now in tests.h. 24249 24250 * tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf. 24251 * tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests. 24252 * tests/mpf/Makefile.am: Update. 24253 24254 * tests/memory.c: New file. 24255 * tests/misc.c: New file, a few subroutines from the test programs. 24256 24257 * mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to 24258 tests/mpz etc. 24259 * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am 24260 (SUBDIRS): Remove. 24261 24262 * tests/devel: New directory. 24263 * mpn/tests/*.c: Move programs to tests/devel. 24264 * mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update. 24265 24266 * mpn/tests/ref.c: Move to tests/refmpn.c. 24267 * mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests 24268 directory. 24269 24270 * tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants, 24271 simplify ANSI vs K&R stringizing, use correct printf format types, do 24272 all tests before aborting. 24273 24274 2001-01-05 Torbjorn Granlund <tege@swox.com> 24275 24276 * mpn/cray/ieee/gmp-mparam.h: Retune. 24277 24278 2001-01-05 Kevin Ryde <kevin@swox.se> 24279 24280 * configure.in (mp.h): Only create this under --enable-mpbsd. 24281 24282 * demos/calc: New subdirectory, move demos/calc* to it. 24283 * demos/calc/Makefile.am: New file, split from demos/Makefile.am. 24284 * demos/Makefile.am: Update. 24285 * configure.in (AC_OUTPUT): Add demos/calc/Makefile. 24286 24287 * tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test 24288 for how many bits work in a give type, don't assume bits==8*sizeof. 24289 24290 2001-01-04 Kevin Ryde <kevin@swox.se> 24291 24292 * mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain 24293 UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc. 24294 * mpz/fits.c: Remove file. 24295 * mpz/Makefile.am, macos/Makefile.in: Update. 24296 24297 * gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms. 24298 (MPZ_FITS_[SU]TYPE_SDT): Remove these. 24299 (UINT_MAX etc): Provide a full set of defaults. 24300 * gmp-h.in (__GMP_MP_SIZE_T_INT): New define. 24301 24302 * mpz/tests/t-scan.c: New file. 24303 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. 24304 24305 * mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated 24306 memory, support negatives, return ULONG_MAX for no bit found. 24307 * gmp.texi (Integer Logic and Bit Fiddling): Update. 24308 24309 2001-01-03 Torbjorn Granlund <tege@swox.com> 24310 24311 * mpz/tests/dive.c: Generate test operands using new random functions. 24312 * mpz/tests/io.c: Likewise. 24313 * mpz/tests/logic.c: Likewise. 24314 * mpz/tests/t-2exp.c: Likewise. 24315 24316 * stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment. 24317 24318 * stack-alloc.h (__TMP_ALIGN): Append `L'. 24319 24320 * gmp-impl.h: For Cray, #include limits.h. 24321 (LONG_MIN): New #define. 24322 (ULONG_HIGHBIT): #define in terms of ULONG_MAX. 24323 (LONG_HIGHBIT): #define as LONG_MIN. 24324 (USHRT_MAX): New name for USHORT_MAX. 24325 (SHRT_MAX): New name for SHORT_MAX. 24326 (SHRT_MIN): New #define. 24327 (USHORT_HIGHBIT,SHORT_HIGHBIT): Removed. 24328 24329 * mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*; 24330 remove code disabling a test for Cray. 24331 24332 * tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long. 24333 24334 * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'. 24335 (mpn_kara_mul_n): Likewise. 24336 24337 * mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'. 24338 24339 * mpz/tests/t-jac.c 24340 (main, check_squares_zi): Generate test operands using new random 24341 functions. 24342 24343 All changes below on this date for enabling `make; make check' 24344 with C++ compilers: 24345 24346 * mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes. 24347 24348 * mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul): 24349 Provide prototypes. 24350 (dump_abort): Provide prototype and declare properly for C++. 24351 24352 * mpz/tests/t-jac.c: #include stdlib.h and sys/time.h. 24353 24354 * mpz/tests/t-fdiv.c 24355 (dump_abort): Provide prototype and declare properly for C++. 24356 (debug_mp): Provide prototype. 24357 * mpz/tests/t-fdiv_ui.c: Likewise. 24358 * mpz/tests/t-gcd.c: Likewise. 24359 * mpz/tests/t-powm.c: Likewise. 24360 * mpz/tests/t-powm_ui.c: Likewise. 24361 * mpz/tests/t-sqrtrem.c: Likewise. 24362 * mpz/tests/t-tdiv_ui.c: Likewise. 24363 * mpz/tests/t-tdiv.c: Likewise. 24364 24365 * mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h. 24366 Remove #include of longlong.h. 24367 24368 * mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and 24369 conditionally unistd.h. 24370 24371 * mpz/tests/dive.c: #include stdlib.h and sys/time.h. 24372 (dump_abort): Provide prototype and declare properly for C++. 24373 (debug_mp): Provide prototype. 24374 * mpz/tests/logic.c: Likewise. 24375 24376 * mpz/tests/convert.c (debug_mp): Provide prototype. 24377 * mpz/tests/t-root.c (debug_mp): Likewise. 24378 24379 * mpz/tests/bit.c: #include stdlib.h and sys/time.h. 24380 24381 * mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h. 24382 (dump): Provide prototype and declare properly for C++. 24383 24384 * mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h. 24385 (ref_mpq_cmp_ui): Declare properly for C++. 24386 24387 * mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h. 24388 (ref_mpq_cmp): Declare properly for C++. 24389 (dump): Delete unused function. 24390 24391 * mpf/random2.c (myrandom): New function. 24392 (mpf_random2): Use it. 24393 24394 * mpn/generic/random2.c: #include stdlib.h (for random/mrand48). 24395 (myrandom): New function. 24396 (mpn_random2): Use it. 24397 24398 * mpf/tests/t-add.c: #include stdlib.h and sys/time.h. 24399 (oo): Remove unused function. 24400 * mpf/tests/t-conv.c: Likewise. 24401 * mpf/tests/t-sub.c: Likewise. 24402 * mpf/tests/t-dm2exp.c: Likewise. 24403 * mpf/tests/t-muldiv.c: Likewise. 24404 * mpf/tests/t-sqrt.c: Likewise. 24405 24406 * mpf/tests/reuse.c: #include stdlib.h and sys/time.h. 24407 Use PROTO on some typedefs. 24408 (oo): Remove function. 24409 (dump_abort): Call mpf_dump instead of oo. 24410 24411 * mpf/set_str.c: #include stdlib.h (for strtol). 24412 24413 * mpf/random2.c: #include stdlib.h (for random/mrand48). 24414 * mpn/alpha/udiv_arnnd: File deleted. 24415 24416 * Remove K&R function headers. 24417 24418 2001-01-02 Torbjorn Granlund <tege@swox.com> 24419 24420 * mpn/generic/mul.c: Clean up spacing and indentation. 24421 24422 * mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u. 24423 Clean up spacing and indentation. 24424 24425 * extract-dbl.c: Generalize to handle smaller limb sizes. 24426 24427 2001-01-01 Torbjorn Granlund <tege@swox.com> 24428 24429 * mpbsd/mout.c: Output newline after "0". 24430 24431 2000-12-31 Torbjorn Granlund <tege@swox.com> 24432 24433 * ltmain.sh: Remove space between `#!' and `$SHELL' when generating 24434 `libtool'. 24435 24436 * mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray 24437 vector systems. Correct comment. 24438 24439 2000-12-31 Kevin Ryde <kevin@swox.se> 24440 24441 * gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc 24442 2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus. 24443 24444 * configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified 24445 MPN_PATH, amend test program indenting. 24446 (none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in 24447 generic C. 24448 24449 * config.sub (j90, t90): Preserve these, don't let configfsf.sub turn 24450 them into c90. 24451 24452 * config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform 24453 m68k to m68020, since m68k is already interpreted as 68020. 24454 24455 2000-12-30 Kevin Ryde <kevin@swox.se> 24456 24457 * mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary. 24458 24459 * mpz/tstbit.c: Rewrite, slightly simplified. 24460 * mpz/tests/bit.c (check_tstbit): New test, and add a couple more 24461 diagnostics elsewhere. 24462 24463 * configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2. 24464 (ccbase): Only use a known compiler in eval statements (avoids 24465 problems with non-symbol characters). 24466 (ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a 24467 different name. 24468 (cclist): Use same style $abi as other variables. 24469 24470 * acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro. 24471 (GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc. 24472 (GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed. 24473 (GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last 24474 line of a file doesn't leave a tab and no newline. 24475 (GMP_ASM_UNDERSCORE): Add a prototype for C++. 24476 24477 * configure.in (sys/mman.h, mprotect): New tests. 24478 * mpn/tests/try.c: Use them, and HAVE_UNISTD_H too. 24479 24480 * configure.in (getopt.h): Remove test. 24481 * tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since 24482 plain getopt() is in <unistd.h>. 24483 24484 * configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong 24485 rather than using _ABIN32. 24486 24487 2000-12-29 Torbjorn Granlund <tege@swox.com> 24488 24489 * mpz/tests/reuse.c: Rename dump_abort => dump. 24490 * mpz/tests/reuse.c: Generate operands using gmp_rand*. 24491 * mpz/tests/convert.c: Likewise. 24492 24493 * configure.in: Detect T90-ieee systems; move Cray path 24494 selection to after AC_PROG_CC. Invoke AC_PROG_CPP. 24495 * mpn/cray/cfp: New directory. Move cfp specific files here. 24496 * mpn/cray/cfp/mulwwc90.s: New file. 24497 * mpn/cray/cfp/mulwwj90.s: New file. 24498 * mpn/cray/mulww.s: Delete. 24499 24500 2000-12-27 Torbjorn Granlund <tege@swox.com> 24501 24502 * mpn/cray/ieee/mul_1.c: New file. 24503 * mpn/cray/ieee/addmul_1.c: New file. 24504 * mpn/cray/ieee/submul_1.c: New file. 24505 * mpn/cray/ieee/gmp-mparam.h: New file. 24506 24507 * mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME. 24508 24509 * mpn/cray/hamdist.c: New file. 24510 * mpn/cray/popcount.c: New file. 24511 * mpn/cray/rshift.c: New file. 24512 * mpn/cray/lshift.c: New file. 24513 24514 * longlong.h: Add count_leading_zeros for _CRAY. 24515 Reorganize _CRAY stuff. 24516 24517 2000-12-24 Kevin Ryde <kevin@swox.se> 24518 24519 * configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ, 24520 as tune/alpha.asm doesn't suit. 24521 24522 * mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c, 24523 mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n. 24524 24525 2000-12-23 Torbjorn Granlund <tege@swox.com> 24526 24527 * mpn/generic/mul_fft.c: Reformat. 24528 (mpn_fft_neg_modF): Remove. 24529 (mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF. 24530 24531 * mpn/cray/gmp-mparam.h: Retune. 24532 24533 * configure.in (*-cray-unicos*): Pass `-O3 -htask0'. 24534 (vax*-*-*): Fix typo. 24535 24536 * mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*. 24537 * mpn/cray/addmul_1.c: Likewise. 24538 * mpn/cray/submul_1.c: Likewise. 24539 * mpn/cray/add_n.c: Likewise. 24540 * mpn/cray/sub_n.c: Likewise. 24541 24542 * configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O. 24543 (mips*-*-irix[6789]*]): Remove -g from cc_*_cflags. 24544 24545 2000-12-22 Torbjorn Granlund <tege@swox.com> 24546 24547 * mpn/generic/mul_n.c: Delete K&R function headers. 24548 24549 * mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion 24550 between mp_limb_t and mp_size_t. 24551 (mpn_kara_sqr_n): Likewise. 24552 24553 * mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u. 24554 (mpn_kara_sqr_n): Likewise. 24555 24556 * mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign' 24557 to work around GCC 2.8.1 MIPS bug. 24558 24559 * configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags. 24560 24561 2000-12-21 Torbjorn Granlund <tege@swox.com> 24562 24563 * mpn/alpha/invert_limb.asm: Simplify a bit. 24564 Add handling of bigend systems. 24565 * mpn/alpha/unicos.m4: Define `bigend'. 24566 * mpn/alpha/default.m4: Define `bigend' (to expand to nothing). 24567 24568 * tests/t-constants.c (CHECK_CONSTANT): Print using %lx. 24569 24570 * mpn/alpha/gmp-mparam.h: Remove sizes for plain C types. 24571 * mpn/alpha/ev5/gmp-mparam.h: Likewise. 24572 * mpn/alpha/ev6/gmp-mparam.h: Likewise. 24573 24574 * mpn/alpha/unicos.m4: Define LEA. 24575 * mpn/alpha/default.m4: Likewise. 24576 * mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses. 24577 * mpn/alpha/cntlz.asm: Likewise. 24578 24579 * mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower 24580 `ldq_u' + `extbl' instead. 24581 24582 * mpn/alpha/unicos.m4: Define EXTERN. 24583 * mpn/alpha/default.m4: Define EXTERN (to expand to nothing). 24584 * mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the 24585 benefit of Unicos). 24586 24587 2000-12-21 Kevin Ryde <kevin@swox.se> 24588 24589 * mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of 24590 __clz_tab. 24591 24592 2000-12-20 Torbjorn Granlund <tege@swox.com> 24593 24594 * longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP 24595 systems. 24596 24597 2000-12-19 Torbjorn Granlund <tege@swox.com> 24598 24599 * configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags. 24600 24601 * mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from 24602 `size' values. 24603 24604 * configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags. 24605 24606 * demos/pexpr.c (rstate): New variable. 24607 (main): Initialize rstate. 24608 (enum op_t): Add RANDOM. 24609 (fns): Add field for RANDOM. 24610 (mpz_eval_expr): Handle RANDOM. 24611 24612 2000-12-19 Kevin Ryde <kevin@swox.se> 24613 24614 * mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his 24615 Karatsuba Square Root algorithm. 24616 * gmp.texi (Square Root Algorithm): Update. 24617 24618 * tune/many.pl: New file. 24619 24620 * mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn, 24621 mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n, 24622 mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing. 24623 * mpn/tests/ref.c: Cast some "0"s in function calls. 24624 24625 * mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra 24626 variable for loop termination. 24627 24628 * mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following. 24629 * mpn/x86/p6/mod_1.asm: New file. 24630 24631 * mpn/x86/pentium/mod_1.asm: New file. 24632 24633 2000-12-18 Torbjorn Granlund <tege@swox.com> 24634 24635 * configure.in (mips*-*-irix[6789]*): Pass options to compiler using 24636 `-Wc'. 24637 24638 2000-12-18 Kevin Ryde <kevin@swox.se> 24639 24640 * mpn/x86/k6/pre_mod_1.asm: New file. 24641 24642 * tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1 24643 and mpn_mod_1 handling in support of it. 24644 * tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c. 24645 24646 * gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros. 24647 * mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1. 24648 24649 * configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint. 24650 24651 * mpn/alpha/default.m4: Remove some newlines, add some asserts. 24652 (r0 etc, f0 etc): Use defreg and deflit. 24653 (PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX. 24654 * mpn/alpha/unicos.m4: Remove some newlines, add some asserts. 24655 * mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter. 24656 * mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab. 24657 24658 * mpn/asm-defs.m4 (changecom): Comments on portability. 24659 (__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h. 24660 (count_leading_zeros, count_trailing_zeros): New define_mpn's. 24661 (PROLOGUE etc): Comments on usage, add some asserts. 24662 (OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of 24663 lorrshift multifunc. 24664 24665 * mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s 24666 removal, for development purposes. 24667 24668 * mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not 24669 mpz_mul_ui, and note some possible enhancements. 24670 24671 * mpz/tests/t-fac_ui.c: New test. 24672 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. 24673 * macos/Makefile.in: Ditto, and add t-fib_ui too. 24674 24675 * mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered 24676 by new parameter ASSERTs. 24677 24678 * longlong.h (count_trailing_zeros): Assert x!=0. 24679 24680 * doc/configuration: Updates for new configure things, add some notes 24681 on test setups. 24682 24683 2000-12-16 Torbjorn Granlund <tege@swox.com> 24684 24685 * configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit 24686 compiles. 24687 * configure.in: Disable shared libs for *-*-ultrix*. 24688 24689 2000-12-15 Torbjorn Granlund <tege@swox.com> 24690 24691 * configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc. 24692 24693 * gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other 24694 compilers. 24695 24696 * gmp-h.in (__gmp_inline): Remove. 24697 * mp-h.in: Likewise. 24698 * mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'. 24699 24700 * configure.in (mips*-*-irix[6789]*): Define *_ldflags. 24701 24702 2000-12-14 Torbjorn Granlund <tege@swox.com> 24703 24704 * mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd 24705 parameter `dummy'. 24706 24707 * mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement. 24708 * mpn/generic/mod_1.c: Likewise. 24709 24710 2000-12-14 Kevin Ryde <kevin@swox.se> 24711 24712 * config.guess (mips-*-irix[6789]*): Transform to mips64. 24713 (m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020. 24714 24715 2000-12-13 Torbjorn Granlund <tege@swox.com> 24716 24717 * tests/t-constants.c (main): Conditionalize use of PP_INVERTED. 24718 24719 * mpn/mp_bases.c: Handle 4-bit limbs. 24720 (main): Add code for generating tables. 24721 24722 * mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16. 24723 Suffix all 32-bit constant with `L'. 24724 Use CNST_LIMB for 64-bit constants. 24725 24726 2000-12-13 Kevin Ryde <kevin@swox.se> 24727 24728 * gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and 24729 an arbitrary fallback default. 24730 (modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb. 24731 24732 * configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit 24733 limb) on IRIX 6. 24734 24735 * Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is 24736 run first, to pick up any limb size mismatch. 24737 24738 * tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1. 24739 24740 * mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb. 24741 24742 2000-12-12 Torbjorn Granlund <tege@swox.com> 24743 24744 * gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize. 24745 24746 2000-12-11 Torbjorn Granlund <tege@swox.com> 24747 24748 * mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs. 24749 Round existing `double' values properly. 24750 24751 * gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_ 24752 to keep out of user name space. 24753 (__gmp_randata_lc): Likewise. 24754 * randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c: 24755 Corresponding changes. 24756 24757 * gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB 24758 of 2, 4, 8, and 16. 24759 (PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB. 24760 (PP_MASK): Remove. 24761 (PP_MAXPRIME): Remove. 24762 24763 * mpn/generic/perfsqr.c: Generalize PP handling for machines with 24764 limbs of < 32 bits. Allow PP_INVERTED to be undefined. 24765 * mpz/pprime_p.c: Likewise. 24766 24767 2000-12-10 Torbjorn Granlund <tege@swox.com> 24768 24769 * mpn/generic/mul_1.c: Declare parameters in C89 style. 24770 24771 2000-12-10 Kevin Ryde <kevin@swox.se> 24772 24773 * tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS): 24774 Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like 24775 it. 24776 24777 * configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and 24778 ABI=o32. 24779 * mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let 24780 configure determine it, since it varies with ABI=64 or ABI=n32. 24781 * gmp.texi (ABI and ISA): Update. 24782 (mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui. 24783 (mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even. 24784 24785 * mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix 24786 results in certain cases of recursing into a further FFT. 24787 24788 2000-12-09 Torbjorn Granlund <tege@swox.com> 24789 24790 * mpz/cmpabs.c: Remove unused variable. 24791 * mpz/rrandomb.c: Likewise. 24792 * mpz/xor.c: Likewise. 24793 24794 2000-12-07 Torbjorn Granlund <tege@swox.com> 24795 24796 * mpn/generic/gcdext.c: Handle double carry when computing s1. 24797 Merge two code blocks for computing s0 and s1. 24798 24799 2000-12-07 Kevin Ryde <kevin@swox.se> 24800 24801 * configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from 24802 cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae, 24803 whichever works. 24804 24805 * configure.in (*-*-aix[34]*): Disable shared by default, but let 24806 the user override that, if desired. 24807 * gmp.texi (Notes for Particular Systems): Update. 24808 24809 2000-12-06 Torbjorn Granlund <tege@swox.com> 24810 24811 * mpq/cmp_ui.c: Streamline. 24812 24813 2000-12-06 Kevin Ryde <kevin@swox.se> 24814 24815 * tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c, 24816 gcdext_double.c: New files for measuring. 24817 * tune/Makefile.am (libspeed_la_SOURCES): Add them. 24818 * tune/speed.c,speed.h,common.c: Add measuring of them. 24819 (mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring. 24820 24821 * speed.c (getopt_long): Don't use this, just plain getopt. 24822 * configure.in (getopt_long): Remove test. 24823 24824 * gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE, 24825 MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and 24826 assume toom3 square tsize was meant to be the same as the mul (both 24827 are overestimates). 24828 * tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them. 24829 * mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use 24830 TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might 24831 be more realistic size checks. 24832 * tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize. 24833 24834 * mpn/generic/divrem_1.c: Partial rewrite, merge fractional part 24835 calculation, skip a divide step in more cases, introduce 24836 DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD. 24837 * mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more 24838 cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD. 24839 * longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64. 24840 * tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD, 24841 MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these. 24842 * gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this. 24843 * tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c. 24844 24845 * gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME. 24846 * mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c, 24847 mpn/x86/*/gmp-mparam.h: Ditto. 24848 * gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define. 24849 24850 * configure.in (AC_C_INLINE, HAVE_INLINE): New test and define. 24851 * gmp-impl.h (inline): Remove, use config.h. 24852 (_EXTERN_INLINE): Redefine based on HAVE_INLINE. 24853 (mpn_zero_p): Use HAVE_INLINE. 24854 24855 * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user 24856 selected $AR or $NM. 24857 24858 * tune/tuneup.c (all): Print how long the tuning took. 24859 24860 * configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR. 24861 * acinclude.m4 (GMP_ANSI2KNR): Remove. 24862 24863 * Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES. 24864 24865 * gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some 24866 zeros, for the benefit of K&R if long!=int. 24867 24868 * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for 24869 the benefit of cray. 24870 24871 * compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be 24872 mp_limb_t, not int, and need an actual "return". 24873 24874 2000-12-05 Torbjorn Granlund <tege@swox.com> 24875 24876 * mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune. 24877 * mpn/alpha/gmp-mparam.h: Tune for 21064. 24878 24879 * longlong.h: Reformat to avoid newlines within strings. 24880 24881 * gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__. 24882 24883 * configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c. 24884 24885 * Makefile.am: Treat mp.h analogously to gmp.h. 24886 24887 configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc. 24888 24889 * mp-h.in: Renamed from mp.h. 24890 Add #define for _LONG_LONG_LIMB. 24891 Move some other fixes from gmp-h.in. 24892 * mp.h: Removed. 24893 * configure.in: Generate mp.h from mp-h.in like we handle 24894 gmp-h.in/gmp.h. 24895 24896 2000-12-04 Torbjorn Granlund <tege@swox.com> 24897 24898 * acinclude.m4: Fix typo testing for bad HP compiler. 24899 24900 2000-12-03 Torbjorn Granlund <tege@swox.com> 24901 24902 * mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray 24903 CFP systems. 24904 24905 * longlong.h (CRAYIEEE umul_ppmm): New. 24906 24907 * mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64. 24908 (*_THRESHOLD): Tune. 24909 24910 * configure.in: Disable shared libs for *-*-unicos*. 24911 24912 2000-12-03 Kevin Ryde <kevin@swox.se> 24913 24914 * configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during 24915 configure, and use it unconditionally in $(nodist_tuneup_SOURCES). 24916 Fixes a problem with sqr_basecase.lo under --disable-static. 24917 24918 2000-12-01 Torbjorn Granlund <tege@swox.com> 24919 24920 * mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE 24921 Cray systems. 24922 24923 * gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE. 24924 24925 2000-11-30 Torbjorn Granlund <tege@swox.com> 24926 24927 * mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro 24928 invocations. 24929 (ref_mpz_mul): New name from mpz_refmul. Make static. 24930 (base_mul): New name for _mpn_mul_classic. 24931 24932 2000-11-30 Kevin Ryde <kevin@swox.se> 24933 24934 * configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a 24935 notion of ABI, merge compiler and mpn path selection, add flags 24936 selection for AR and NM, let CC without CFLAGS work. 24937 (AC_PROG_CC): Use this, not GMP_SELECT_CC. 24938 * acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine 24939 cc/cflags parameter. 24940 (GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove. 24941 * gmp.texi (Installing GMP): Updates for new scheme. 24942 24943 * configure.in (AC_CANONICAL_HOST): Use this and $host, not $target. 24944 * acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4, 24945 mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to 24946 HAVE_HOST_CPU. 24947 * gmp.texi (Build Options, and elsewhere): Update. 24948 24949 * acinclude.m4 (GMP_COMPARE_GE): New macro. 24950 (GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC. 24951 (GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT. 24952 24953 * acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding 24954 GMP flags. 24955 * configure.in: Use it 24956 24957 * gmp-h.in: Renamed from gmp.h. 24958 (@define_LONG_LONG_LIMB@): Placeholder for instantiation. 24959 (__GNU_MP__): Bump to 3. 24960 * acinclude.m4 (GMP_VERSION): Get version from gmp-h.in. 24961 * configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB. 24962 * gmp.texi.h (ABI and ISA): Mention this. 24963 * acconfig.h (_LONG_LONG_LIMB): Remove undef. 24964 * Makefile.am: Distribute gmp-h.in, not gmp.h. 24965 24966 * configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove, 24967 dragged in by other macros. 24968 (gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing. 24969 (AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool. 24970 * configure.in, acinclude.m4: Remove "" from "`foo`", being 24971 unnecessary and not portable. 24972 24973 * configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link. 24974 (powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation, 24975 but can't build shared and static at the same time. 24976 * Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use 24977 $(GMP_LDFLAGS). 24978 * gmp.texi (Notes for Particular Systems): Update AIX problem 24979 24980 * configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links. 24981 (gmp_srclinks): Build up as needed, not via gmp_links. 24982 24983 * acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here. 24984 * configure.in (asm-defs.m4): Consequent changes. 24985 24986 * acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing 24987 GMP_INCLUDE and GMP_SINCLUDE. 24988 * configure.in (gmp_m4postinc): Remove this scheme, use 24989 GMP_INCLUDE_MPN instead. 24990 24991 * configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no, 24992 until libtool does this itself. 24993 * gmp.texi (Known Build Problems): Remove SCO -lc problem. 24994 24995 * configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29. 24996 * acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF. 24997 * gmp.texi (Known Build Problems): Remove version.c sed/config.h 24998 problem, fixed. 24999 25000 * ltmain.sh, aclocal.m4: Update to libtool 2000-11-25. 25001 * ltconfig: No longer required, but leave an empty dummy for automake. 25002 * gmp.texi (Known Build Problems): Remove SunOS native ar ranlib 25003 problem, fixed. 25004 25005 * */Makefile.in, aclocal.m4: Update to automake 2000-11-25. 25006 * mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS): 25007 Remove dummy, no longer required. 25008 * mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files. 25009 * depcomp: Remove file, no longer required (with no-dependencies). 25010 25011 * texinfo.tex: Update to 2000-11-09. 25012 * gmp.texi (Build Options): Mention PDF from gmp.texi. 25013 * Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex. 25014 25015 * gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67, 25016 hppa2.0n and power among supported CPUs. 25017 25018 2000-11-30 Torbjorn Granlund <tege@swox.com> 25019 25020 * mpz/tests/t-mul.c: Increase max operand size from 2^17 bits 25021 to 2^19 bits. Misc cleanups. 25022 25023 2000-11-26 Kevin Ryde <kevin@swox.se> 25024 25025 * tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of 25026 odd and even sizes. 25027 25028 * longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all 25029 compilers, not just gcc. 25030 25031 * pre_mod_1.c: Use conditional subtract to always skip a division. 25032 (UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h. 25033 25034 2000-11-22 Torbjorn Granlund <tege@swox.com> 25035 25036 * mpn/pa64w/gmp-mparam.h: Retune. 25037 * mpn/pa64/gmp-mparam.h: Retune. 25038 * mpn/sparc64/gmp-mparam.h: Retune. 25039 25040 2000-11-22 Kevin Ryde <kevin@swox.se> 25041 25042 * gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros. 25043 * mpn/generic/gcdext.c: Use them. 25044 25045 * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step. 25046 * tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single 25047 and double. 25048 * tune/Makefile.am (libspeed_la_SOURCES): Add them. 25049 (TUNE_MPN_SRCS): Remove gcdext.c. 25050 * tune/speed.h, tune/common.c, tune/speed.c: Add measuring. 25051 * tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb 25052 is ever better. Should be more accurate, and hopefully faster. 25053 25054 * tune/gcdext_single.c: New file, gcdext forced to single limbs. 25055 * tune/Makefile.am: Add it. 25056 * tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of 25057 invert_limb. 25058 25059 * tune/speed.h (speed_params r): Use mp_limb_t, not long. 25060 * tune/speed.h, tune/common.c: Don't "switch" on "r". 25061 * tune/speed.c (r_string): Accept limb sized constants. 25062 (choice scale): Add a scale factor (eg. "2.33*mpn_add_n"). 25063 * tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to 25064 __mp_bases[10].big_base, being a full limb value. 25065 25066 * configure.in (alphapca56*-*-*): Use ev5 mpn path. 25067 (am29000*-*-*): Remove this, leave the canonical a29k. 25068 (z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical. 25069 (gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64. 25070 25071 * configure.in (alloca): Accept yes/no/detect, generate an error if 25072 "yes" but not available. 25073 * gmp.texi (Build Options): Update. 25074 25075 * acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available. 25076 (GMP_ASM_ALIGN_FILL_0x90): Use it. 25077 25078 * acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris 25079 2.6 "as" movq bug. 25080 * gmp.texi (Notes for Particular Systems): Update x86 MMX note. 25081 25082 2000-11-21 Torbjorn Granlund <tege@swox.com> 25083 25084 * tune/Makefile.am (EXTRA_DIST): List hppa2w.asm. 25085 25086 * tune/hppa2.asm: Change level directive to "2.0n". 25087 * tune/hppa2w.asm: New file. 25088 * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w. 25089 25090 * mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32. 25091 25092 2000-11-21 Kevin Ryde <kevin@swox.se> 25093 25094 * urandom.h (random): No prototype if glibc stdlib.h has already 25095 provided it (avoids an int32_t/long conflict). 25096 25097 * tune/Makefile.am (LDFLAGS): Use -all-static. 25098 (speed-dynamic): Dynamic linked version of speed.c. 25099 * tune/README: Update. 25100 25101 * mpn/generic/gcd.c (find_a): Use native version if available. 25102 * acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef. 25103 * gmp-impl.h (mpn_gcd_finda): Add prototype and define. 25104 * mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn. 25105 * tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda. 25106 * configure.in (gmp_mpn_functions_optional): Add gcd_finda. 25107 * mpn/x86/k6/gcd_finda.asm: New file. 25108 25109 * tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps. 25110 25111 * gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion. 25112 * tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after 25113 gmp-impl.h to force thresholds. 25114 * tune/tuneup.c (print_define, fft): No need for #ifndefs on 25115 thresholds any more. 25116 25117 2000-11-20 Torbjorn Granlund <tege@swox.com> 25118 25119 * mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c. 25120 * mpz/tests/t-powm_ui.c: Likewise. 25121 * mpz/tests/t-pow_ui.c: Likewise. 25122 * mpz/tests/t-root.c: Likewise. 25123 25124 * configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for 25125 all hppa versions. 25126 25127 * mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative 25128 addressing (was r19 relative addressing). 25129 25130 2000-11-18 Torbjorn Granlund <tege@swox.com> 25131 25132 * rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal. 25133 (gmp_randinit): Expect strings in hexadecimal. 25134 25135 2000-11-18 Kevin Ryde <kevin@swox.se> 25136 25137 * configfsf.guess, configfsf.sub: Update to 2000-11-16. 25138 * config.guess (alpha*-*-openbsd*): Do exact cpu detection. 25139 25140 2000-11-14 Torbjorn Granlund <tege@swox.com> 25141 25142 * mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c. 25143 * mpz/tests/t-tdiv_ui.c: Likewise. 25144 * mpz/tests/t-fdiv_ui.c: Likewise. 25145 * mpz/tests/t-sqrtrem.c: Likewise. 25146 * mpz/tests/t-gcd.c: Likewise. 25147 25148 2000-11-13 Kevin Ryde <kevin@swox.se> 25149 25150 * mpn/Makeasm.am: New file, splitting out assembler rules. 25151 * mpn/Makefile.am, tune/Makefile.am: Use it. 25152 25153 * mpn/Makefile.am (@CPP@): Remove this, automake already gives it. 25154 25155 * configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it. 25156 * Makefile.am (MPFR_LIBADD_OPTION): Use it. 25157 * demos/Makefile.am (qcn_LDADD): Ditto. 25158 * tune/Makefile.am (libspeed_la_LIBADD): Ditto. 25159 * tests/rand/Makefile.am (libstat_la_LIBADD): Ditto. 25160 25161 * tune/time.c (timeval_diff_secs): Better calculation. 25162 (read_real_time): New measuring method for AIX power/powerpc. 25163 (speed_endtime): Protect against negative times. 25164 * tune/common.c (speed_measure): Protect against big reps. 25165 * tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff. 25166 * tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros. 25167 * configure.in: (sys/systemcfg.h, read_real_time): New tests. 25168 25169 2000-11-13 Torbjorn Granlund <tege@swox.com> 25170 25171 * mpz/tests/t-mul.c: Remove #include urandom.h. 25172 * mpz/tests/t-tdiv.c: Likewise. 25173 25174 * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: 25175 Declare hppa.asm as just 32 bits (cyclecounter_size=1). 25176 25177 2000-11-12 Torbjorn Granlund <tege@swox.com> 25178 25179 * mpz/tests/t-mul.c 25180 (main): Generate random numbers using gmp_rand* functions. 25181 (main): Distribute random numbers non-uniformly. 25182 (main): Seed by current time if GMP_CHECK_RANDOMIZE is set. 25183 (_mpn_mul_classic): Streamline. 25184 * mpz/tests/t-tdiv.c: Analogous changes. 25185 25186 * demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS. 25187 Also test for __hpux. 25188 25189 2000-11-11 Torbjorn Granlund <tege@swox.com> 25190 25191 * mpn/alpha/ev5/gmp-mparam.h: Retune. 25192 25193 * mpn/alpha/ev6/gmp-mparam.h: Retune. 25194 25195 * mpn/alpha/ev6/add_n.asm: Misc cleanups. 25196 25197 * mpn/alpha/ev6/sub_n.asm: New file. 25198 25199 2000-11-10 Torbjorn Granlund <tege@swox.com> 25200 25201 * configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path. 25202 25203 * mpn/alpha/ev6/add_n.asm: New file. 25204 25205 2000-11-10 Kevin Ryde <kevin@swox.se> 25206 25207 * mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL. 25208 * tune/powm_mod.c, tune/powm_redc.c: New files. 25209 * tune/Makefile.am (libspeed_la_SOURCES): Add them. 25210 * tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc. 25211 25212 * tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod. 25213 * tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm. 25214 25215 2000-11-10 Torbjorn Granlund <tege@swox.com> 25216 25217 * mpn/mips3/gmp-mparam.h: Retune. 25218 25219 * configure.in (os_64bit): Rename to check_64bit_compiler. 25220 25221 2000-11-09 Torbjorn Granlund <tege@swox.com> 25222 25223 * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code 25224 depending on $CC64. 25225 25226 2000-11-09 Kevin Ryde <kevin@swox.se> 25227 25228 * mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1. 25229 Add 1c entrypoint. 25230 * mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple 25231 of cycles at entry and exit. 25232 25233 * configure.in (power1,2,2sc): Support these as synonyms for plain 25234 power. 25235 25236 * acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here. 25237 (GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names. 25238 * configure.in: Consequent changes. 25239 25240 * gmp.texi (Notes for Particular Systems): Remarks about power/powerpc. 25241 (Reentrancy): Remarks about simultaneous writing. 25242 (Reporting Bugs): Ask for configfsf.guess. 25243 25244 2000-11-08 Kevin Ryde <kevin@swox.se> 25245 25246 * acinclude.m4 (GMP_FUNC_ALLOCA): New macro. 25247 * configure.in: Use it. 25248 * gmp-impl.h (alloca): Conditionals and setups as per autoconf 25249 (should make alloca available on more non-gcc compilers). 25250 25251 * acinclude.m4: Misc reformatting, simplify some quoting. 25252 (GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS. 25253 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put 25254 AC_REQUIREs outside AC_CACHE_CHECK. 25255 (GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS. 25256 (GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm 25257 conftes1* conftes2*. 25258 (GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*. 25259 (GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*. 25260 * configure.in: Use GMP_PROG_NM. 25261 25262 * mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE. 25263 (spinner_init): Force output to unbuffered. 25264 25265 * mpn/x86/README.family: Notes about GOT table and imul, misc updates. 25266 * mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul. 25267 * mpn/x86/k6/diveby3.asm: Ditto. 25268 25269 2000-11-06 Torbjorn Granlund <tege@swox.com> 25270 25271 * urandom.h: Simplify and make it work properly for 64-bit 25272 machines also in environments without `random'. 25273 25274 2000-11-04 Torbjorn Granlund <tege@swox.com> 25275 25276 * configure.in [path switch]: Don't match rs6000-*-*, in 25277 particular don't assume POWER. 25278 25279 * tune/tuneup.c (fft): Remove usleep calls. 25280 25281 * config.guess: Don't pass "$@" when it is known to be empty. 25282 25283 * Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub. 25284 25285 2000-11-04 Kevin Ryde <kevin@swox.se> 25286 25287 * configfsf.guess, configfsf.sub: Moved from config.guess and 25288 config.sub. 25289 * config.guess, config.sub: New files, wrappers around around 25290 configfsf versions. 25291 * configfsf.guess: Update to FSF 2000-10-23. 25292 * configfsf.sub: Update to FSF 2000-10-25. 25293 25294 * acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro. 25295 * mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros 25296 conditionalized by GMP_ASM_POWERPC_R_REGISTERS. 25297 * mpn/powerpc32/regmap.m4: Remove file. 25298 * configure.in (powerpc*-*-*): Use all this. 25299 25300 * mpz/divegcd.c: New file, providing mpz_divexact_gcd. 25301 * Makefile.am, mpz/Makefile.am: Add it. 25302 * gmp-impl.h (mpz_divexact_gcd): Add prototype. 25303 * mpq/aors.c,canonicalize.c,div.c,mul.c: Use it. 25304 25305 * longlong.h [pentium] (count_leading_zeros): New macro. 25306 (__clz_tab): Always provide prototype. 25307 * acconfig.h (HAVE_TARGET_CPU_): Add x86s. 25308 25309 * tune/speed.[ch],common.c (count_leading_zeros, 25310 count_trailing_zeros, __udiv_qrnnd_c): Add measuring. 25311 25312 * configure.in (X86_PATTERN): Move from here ... 25313 * acinclude.m4 (X86_PATTERN): ... to here. 25314 (GMP_ASM_RODATA): Use it. 25315 25316 * configure.in (srandom): New test. 25317 * mpn/tests/try.c: Use it. 25318 * tune/speed.c: Ditto, and conditionalize getrusage and headers. 25319 25320 2000-11-02 Kevin Ryde <kevin@swox.se> 25321 25322 * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c 25323 and udiv_w_sdiv.c. 25324 25325 * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate 25326 subtract at the evaluate stage. 25327 25328 2000-11-01 Torbjorn Granlund <tege@swox.com> 25329 25330 * configure.in [compiler switch] (sparc64-*-linux*): Spell 25331 gmp_xoptcflags_gcc properly, and pass same options as for other 25332 sparcv9 configs. 25333 25334 * tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize. 25335 25336 2000-10-31 Torbjorn Granlund <tege@swox.com> 25337 25338 * configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis 25339 from gmp_xoptflags_gcc, this might not be an ultrasparc. 25340 Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus. 25341 25342 2000-10-29 Torbjorn Granlund <tege@swox.com> 25343 25344 * mpn/ia64/lorrshift.asm: New file. 25345 25346 * configure.in: New mulfunc `lorrshift' for lshift and rshift. 25347 25348 2000-10-29 Kevin Ryde <kevin@swox.se> 25349 25350 * mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing 25351 superfluous mpn_sub_n calls. 25352 25353 * configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ, 25354 for the benefit of targets whose only .asm is a cycle counter. 25355 25356 * tune/tuneup.c (fft): Remove bogus usleep calls. 25357 25358 2000-10-28 Torbjorn Granlund <tege@swox.com> 25359 25360 * mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right. 25361 25362 * tune/Makefile.am (EXTRA_DIST): Add ia64.asm. 25363 25364 * tune/ia64.asm: Fix typo. 25365 25366 * add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm: 25367 Preserve ar.lc as required by ABI. 25368 * longlong.h (ia64 udiv_qrnnd): New. 25369 25370 * configure.in [path switch] (ia64*-*-*): Set extra_functions. 25371 * mpn/ia64/invert_limb.asm: New file. 25372 25373 2000-10-27 Torbjorn Granlund <tege@swox.com> 25374 25375 * configure.in [compiler switch]: 25376 Get rid of c89 for all hppa flavours--it is an evil compiler! 25377 25378 * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp. 25379 (SPEED_ROUTINE_MPN_GET_STR): Fix type of wp. 25380 25381 2000-10-27 Kevin Ryde <kevin@swox.se> 25382 25383 * gmp.texi (Fibonacci Number Algorithm): New section. 25384 25385 * mpz/tests/t-fib_ui.c: New file. 25386 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. 25387 25388 * mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and 25389 some lookup tables, much faster at small to moderate sizes. 25390 * gmp-impl.h (MPZ_FIB_SIZE): New macro. 25391 (FIB_THRESHOLD): Establish default here. 25392 * tune/tuneup.c (FIB_THRESHOLD): Start search after the new table 25393 data. 25394 25395 * mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx, 25396 and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_. 25397 25398 * tune/freq.c (speed_cpu_frequency_measure): New test comparing 25399 gettimeofday and speed_cyclecounter, should cover many systems. 25400 25401 2000-10-27 Torbjorn Granlund <tege@swox.com> 25402 25403 * mpn/ia64/gmp-mparam.h: Retune. 25404 25405 2000-10-26 Torbjorn Granlund <tege@swox.com> 25406 25407 * longlong.h (ia64): Set UMUL_TIME and UDIV_TIME. 25408 25409 * mpn/ia64/submul_1.c: Fix typo. 25410 25411 2000-10-25 Kevin Ryde <kevin@swox.se> 25412 25413 * tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting 25414 hw.model for BSD flavours. 25415 * configure.in (sysctl, sys/param.h): New tests. 25416 25417 2000-10-24 Torbjorn Granlund <tege@swox.com> 25418 25419 * tune/freq.c: Explicitly #include config.h before other include files. 25420 25421 * mpz/tests/reuse.c (FAIL2): New #define. 25422 (main): Use FAIL2. Now this test properly returns non-zero exit 25423 status when it fails. 25424 25425 * mpn/powerpc32/gmp-mparam.h: Retune. 25426 * mpn/powerpc64/gmp-mparam.h: Retune. 25427 25428 2000-10-24 Kevin Ryde <kevin@swox.se> 25429 25430 * mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment. 25431 25432 * mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if 25433 gcd gives 1, which should be 60% of the time. 25434 * gmp-impl.h (MPZ_EQUAL_1_P): New macro. 25435 * mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET. 25436 25437 * tune/tuneup.c (xp_block, yp_block): Initialize these with random 25438 data. Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM. 25439 25440 2000-10-23 Torbjorn Granlund <tege@swox.com> 25441 25442 * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case. 25443 25444 * mpn/ia64/gmp-mparam.h: Fill in some parameters. 25445 25446 * mpn/ia64/submul_1.c: New file. 25447 25448 * tune/ia64.asm: New file. 25449 25450 * gmp-impl.h (union ieee_double_extract): Handle ia64. 25451 25452 * mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to 25453 work around buggy ia64-linux. 25454 25455 * longlong.h (ia64 umul_ppmm): Update register flags to match new GCC. 25456 25457 2000-10-22 Torbjorn Granlund <tege@swox.com> 25458 25459 * mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update. 25460 * mpn/alpha/ev6/submul_1.asm: New file. 25461 25462 2000-10-22 Kevin Ryde <kevin@swox.se> 25463 25464 * tune/gcd_bin.c: New file. 25465 * tune/gcd_finda_gen.c: New file. 25466 * tune/Makefile.am (libspeed_la_SOURCES): Add them. 25467 * tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring. 25468 25469 * * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc. 25470 (__gmp_default_allocate etc): Rename from _mp_default_allocate etc. 25471 * gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE, 25472 __GMP_REALLOCATE_FUNC_LIMBS): New macros. 25473 25474 * gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA 25475 since that's the measured average. 25476 * mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD): 25477 Remove default. 25478 25479 2000-10-21 Torbjorn Granlund <tege@swox.com> 25480 25481 * mpn/Makefile.am (TARG_DIST): Add ia64. 25482 25483 2000-10-21 Kevin Ryde <kevin@swox.se> 25484 25485 * *: Change BZ -> DC. 25486 * mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c. 25487 25488 * doc/multiplication: Remove file, now in the manual. 25489 * doc/assembly_code: Ditto. 25490 * tune/README: Remove some parts now in the manual. 25491 25492 * gmp.texi (@m etc): Add and use some new macros. 25493 (Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity 25494 and to emphasise similarities. 25495 (Low-Level Functions - mpn_[lr]shift): Specify count as 1 to 25496 mp_bits_per_limb-1. 25497 (Algorithms): New chapter. 25498 (References): Add some papers. 25499 25500 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some 25501 unused variables. 25502 * mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto. 25503 25504 * tune/freq.c: New file, split from time.c. 25505 * tune/time.c: Rewrite, now more automated. 25506 * configure.in, tune/*: Consequent changes. 25507 25508 2000-10-20 Torbjorn Granlund <tege@swox.com> 25509 25510 * mpn/ia64/default.m4: New file. 25511 * configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4. 25512 25513 * mpn/ia64/mul_1.asm: New file. 25514 * mpn/ia64/addmul_1.asm: New file. 25515 * mpn/ia64/add_n.asm: New file. 25516 * mpn/ia64/sub_n.asm: New file. 25517 * mpn/ia64/popcount.asm: New file. 25518 * mpn/ia64/README: New file. 25519 25520 * mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START. 25521 25522 * configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0 25523 by sed'ing the period into `_'. 25524 25525 * acconfig.h: Add #undefs for hppa targets. 25526 25527 * longlong.h (udiv_qrnnd): Fix typo in last change. 25528 25529 * mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug). 25530 25531 * configure.in [path switch]: 25532 (hppa2.0*-*-*): For non-CC64 case, update path. 25533 25534 * configure.in [compiler switch]: 25535 (hppa2.0w-*-*): Match with same regexp in both places. 25536 (hppa*-*-*): New case. 25537 (all hppa alternatives): Don't inherit default gmp_cflags_cc, 25538 gmp_cflags_c89. 25539 25540 2000-10-18 Torbjorn Granlund <tege@swox.com> 25541 25542 * configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for 25543 alpha*-*-osf*. 25544 25545 * longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C 25546 stringification. 25547 25548 2000-10-15 Kevin Ryde <kevin@swox.se> 25549 25550 * doc/configuration: Updates. 25551 25552 * demos/calc.y: Remove some comments. 25553 25554 2000-10-14 Kevin Ryde <kevin@swox.se> 25555 25556 * gmp.texi (Parameter Conventions, Memory Management): New sections 25557 split from "Variable Conventions". 25558 (Efficiency, Debugging, Profiling): New sections in "GMP Basics". 25559 (Reentrancy): Some rewording, add note on standard I/O. 25560 (Build options): Add --enable-assert and --enable-profiling. 25561 25562 * configure.in (--enable-profiling): New option. 25563 * acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile. 25564 * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support. 25565 25566 * acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*, 25567 to follow autoconf conventions. 25568 25569 * configure.in: Run GMP_CHECK_ASM tests only if needed. 25570 * acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT. 25571 25572 * mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code. 25573 25574 2000-10-13 Kevin Ryde <kevin@swox.se> 25575 25576 * mpq/md_2exp.c: New file. 25577 * mpq/Makefile.am (libmpq_la_SOURCES): Add it. 25578 * Makefile.am (MPQ_OBJECTS): Ditto. 25579 * gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes. 25580 * gmp.texi (Rational Arithmetic): Add documentation. 25581 25582 * mpq/tests/t-md_2exp.c: New file. 25583 * mpq/tests/Makefile.am (check_PROGRAMS): Add it. 25584 25585 * mpn/generic/perfsqr.c: Add/amend some comments. 25586 25587 * gmp.texi (Known Build Problems): Note VERSION problem with old 25588 sed, do some minor rewording. 25589 (Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf, 25590 mention HTML. 25591 (Getting the Latest Version of GMP): Move this ... 25592 (Introduction to GMP): ... to here. 25593 (Compatibility with older versions): Just refer to 2.x and 3.x, not 25594 every minor version. 25595 (Initializing Integers): Note restrictions on mpz_array_init'ed 25596 variables. 25597 (Integer Logic and Bit Fiddling): Note bits are numbered from 0. 25598 25599 * INSTALL.autoconf: New file. 25600 * Makefile.am (EXTRA_DIST): Add it. 25601 25602 * tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New 25603 scheme for recompiled objects used by tune program. Don't use 25604 libgmptune.a, make better use of libtool, work with ansi2knr. 25605 25606 * tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and 25607 s->xp_block, make exponent a fixed size. 25608 25609 2000-10-07 Torbjorn Granlund <tege@swox.com> 25610 25611 * mpn/mips3/gmp-mparam.h: Retune. 25612 25613 * mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change. 25614 25615 2000-10-06 Torbjorn Granlund <tege@swox.com> 25616 25617 * mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles. 25618 * mpn/mips3/sub_n.s: Likewise. 25619 25620 2000-10-04 Torbjorn Granlund <tege@swox.com> 25621 25622 * configure.in (sparc64-*-linux*): Set path according to CC64. 25623 25624 2000-10-04 Kevin Ryde <kevin@swox.se> 25625 25626 * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a 25627 hard-coded ":". 25628 25629 * config.sub: Don't demand "86" in CPU name for SCO. 25630 25631 * configure.in (supersparc-*-*): Remove -DSUPERSPARC. 25632 * longlong.h: Use HAVE_TARGET_CPU_supersparc. 25633 25634 * configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu. 25635 * acconfig.h: Add #undefs, but only for targets of interest. 25636 25637 2000-10-03 Torbjorn Granlund <tege@swox.com> 25638 25639 * mpn/alpha/cntlz.asm: Rewrite. 25640 25641 * mp_clz_tab.c (__clz_tab): Half table size to 128 entires. 25642 * longlong.h (count_leading_zeros): Demand just 128 entries from 25643 __clz_tab. 25644 25645 * configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options 25646 for n32 ABI. 25647 25648 * longlong.h: Move NO_ASM test around all assembly code. 25649 From gcc: 25650 * longlong.h (count_leading_zeros): Sparclite scan instruction was 25651 being invoked incorrectly. 25652 Replace __mc68332__ with __mcpu32__. 25653 Add ARC support. 25654 25655 2000-10-02 Torbjorn Granlund <tege@swox.com> 25656 25657 * mpn/mips3/gmp-mparam.h: Retune for both gcc and cc. 25658 25659 * mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips. 25660 (interpolate3): Cast mp_limb_t variables to mp_limb_signed_t 25661 when testing sign bit. 25662 25663 * mpn/alpha/ev6/gmp-mparam.h: Retune. 25664 * mpn/powerpc32/gmp-mparam.h: Retune. 25665 * mpn/powerpc64/gmp-mparam.h: Retune. 25666 * mpn/x86/pentium/gmp-mparam.h: Retune. 25667 * mpn/x86/pentium/mmx/gmp-mparam.h: Retune. 25668 * mpn/sparc32/v9/gmp-mparam.h: Retune. 25669 * mpn/x86/k6/gmp-mparam.h: Retune. 25670 * mpn/x86/p6/gmp-mparam.h: Retune. 25671 * mpn/x86/k7/gmp-mparam.h: Retune. 25672 * mpn/sparc64/gmp-mparam.h: Retune. 25673 25674 * mpn/m68k/gmp-mparam.h: New file. 25675 * mpn/alpha/ev5/gmp-mparam.h: New file. 25676 25677 * gmp-impl.h (default MPN_COPY): Remove final `;'. 25678 25679 * tune/time.c (speed_endtime): Rewrite. 25680 25681 * tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value, 25682 not 2. 25683 25684 * demos/pexpr.c (setup_error_handler): Fix typo. 25685 25686 * mpz/powm.c (redc): New function, based on old mpz_redc. Don't 25687 multiply here. 25688 (mpz_redc): Remove. 25689 (mpz_powm): Major changes, partially reverting to mpn calls. 25690 Multiply before calling redc. 25691 (mpz_powm): Use TMP_ allocation. 25692 (mpz_powm): Refine calculation of k (width of exponent window). 25693 (mpz_powm): Cast constants to mp_limb_t before left shifting. 25694 25695 * longlong.h: Use ia64 count_leading_zeros just when __GNUC__. 25696 25697 2000-09-29 Kevin Ryde <kevin@swox.se> 25698 25699 * acinclude.m4 (GMP_C_SIZES): New macro. 25700 * configure.in: Use it. 25701 * acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs. 25702 * mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines. 25703 * gmp.texi (Known Build Problems): Remove 64-bit generic C 25704 gmp-mparam.h problem, now fixed. 25705 25706 * configure.in: Only run GMP_PROG_M4 if it's actually needed. 25707 25708 2000-09-27 Torbjorn Granlund <tege@swox.com> 25709 25710 * demos/pexpr.c: Clean up code for systems not supporting 25711 sigaltstack. Handle old Linux without sigaltstack. Properly 25712 disable all stuff related to sigaltstack under Unicos. 25713 25714 * mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and 25715 store insns. Helps old gas. 25716 25717 * longlong.h (count_leading_zeros): Define for ia64. 25718 25719 2000-09-27 Paul Zimmermann <Paul.Zimmermann@loria.fr> 25720 25721 * mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify. 25722 25723 2000-09-27 Kevin Ryde <kevin@swox.se> 25724 25725 * mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to 25726 get .s before .c, which is needed to override ansi2knr .c rules. 25727 25728 * gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description 25729 to match the code (change by Torbjorn). 25730 (mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most 25731 significant limbs must be non-zero. 25732 (mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size 25733 requirements. 25734 (mpn_gcd_1): Clarify value must be non-zero, not just size. 25735 25736 * gmp-impl.h (mpn_zero_p): New inline function. 25737 * mpn/generic/inlines.c: Add gmp-impl.h. 25738 * mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it. 25739 25740 * mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY. 25741 * mpf/add_ui.c: Ditto. 25742 * mpf/add.c: Ditto, and fix test to skip copy. 25743 25744 2000-09-26 Kevin Ryde <kevin@swox.se> 25745 25746 * gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various 25747 parameter restrictions. 25748 25749 * gmp-impl.h (UDIV_PREINV_TIME): New macro. 25750 * mpn/generic/sb_divrem_mn.c: Use it. 25751 * mpn/generic/perfsqr.c: Ditto. 25752 * mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values. 25753 25754 * macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c, 25755 and new multi-function mpz and mpq files. 25756 25757 2000-09-25 Kevin Ryde <kevin@swox.se> 25758 25759 * randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c: 25760 Use mpz_ptr and mpz_srcptr for parameters. 25761 * gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed, 25762 mpz_urandomb, mpz_urandomm): Corresponding change to prototypes. 25763 * randsdui.c: Remove wrong K&R parameters part. 25764 25765 2000-09-12 Kevin Ryde <kevin@swox.se> 25766 25767 * gmp-impl.h (mpn_tdiv_qr): Move prototype from here ... 25768 * gmp.h (mpn_tdiv_qr): ... to here. 25769 25770 * gmp.texi (Miscellaneous Rational Functions): Comment-out and 25771 move version 1 compatibility note to "Compatibility" section. 25772 (Rational Number Functions): Ditto for canonicalization note. 25773 25774 2000-09-10 Kevin Ryde <kevin@swox.se> 25775 25776 * mpn/x86/pentium/com_n.asm: New file. 25777 25778 * gmp.texi (Rational Arithmetic): Add mpq_abs. 25779 (Miscellaneous Rational Functions): Merge and simplify descriptions of 25780 mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den. 25781 25782 * mpq/abs.c: New file. 25783 * mpq/Makefile.am (libmpq_la_SOURCES): Add it. 25784 * Makefile.am (MPQ_OBJECTS): Add it. 25785 * gmp.h (mpq_abs): Add prototype. 25786 25787 * mpq/set_den.c: Don't discard sign when copying, this makes the 25788 code match the manual. 25789 25790 2000-09-07 Torbjorn Granlund <tege@swox.com> 25791 25792 * tune/alpha.asm: Rewrite to actually work right. 25793 25794 2000-09-07 Kevin Ryde <kevin@swox.se> 25795 25796 * tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem, 25797 mpn_get_str, mpn_set_str. 25798 * tune/README: Various updates. 25799 25800 2000-09-06 Torbjorn Granlund <tege@swox.com> 25801 25802 * mpz/fits.c: Correct type of `data'. 25803 25804 2000-09-06 Kevin Ryde <kevin@swox.se> 25805 25806 * gmp.texi (Build Options): Clarify where to find CFLAGS. 25807 (Known Build Problems): Note SCO -lc problem. 25808 25809 * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs. 25810 25811 * doc/multiplication: Corrections and additions suggested by Paul. 25812 25813 * tune/modlinv.c: New file with alternate modlimb_inverts. 25814 * tune/Makefile.am, tune/speed.[ch]: Add measuring of them. 25815 * tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui, 25816 mpz_fib_ui, mpz_fac_ui. 25817 25818 * mpn/x86/t-zdisp.sh: New file. 25819 25820 * tests/t-modlinv.c: New file. 25821 * tests/Makefile.am (check_PROGRAMS): Add it. 25822 25823 * mpq/tests/t-set_f.c: New file. 25824 * mpq/tests/Makefile.am (check_PROGRAMS): Add it. 25825 25826 * gmp-impl.h (MPQ_CHECK_FORMAT): New macro. 25827 * mpq/tests/t-get_d.c: Use it. 25828 25829 * mpq/set_f.c: New file. 25830 * mpq/Makefile.am (libmpq_la_SOURCES): Add it. 25831 * Makefile.am (MPQ_OBJECTS): Ditto. 25832 * gmp.h: Add prototype. 25833 * gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f, 25834 correct return type of mpq_set_d. 25835 25836 2000-09-03 Kevin Ryde <kevin@swox.se> 25837 25838 * mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object 25839 code changes. 25840 * mpz/add_ui.c, mpz/sub_ui.c: Remove files. 25841 * mpz/Makefile.am: Update. 25842 25843 * gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros. 25844 * mpz/fits.c: New file merging six separate fits*.c. 25845 * mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c, 25846 fits_uint_p.c, fits_ulong_p.c: Remove files 25847 * mpz/Makefile.am: Use new fits.c, change object names from 25848 fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings. 25849 * Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo. 25850 25851 * acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA. 25852 * configure.in: Use it. 25853 * mpn/x86/k[67]/mmx/popham.asm: Use it. 25854 25855 * mpn/x86/*/*.asm: Use "TEXT" not ".text". 25856 25857 2000-09-02 Kevin Ryde <kevin@swox.se> 25858 25859 * mpq/aors.c: New file merging add.c and sub.c, no object code changes. 25860 * mpq/add.c, mpq/sub.c: Remove files. 25861 * mpq/Makefile.am: Update. 25862 25863 * mpz/aors.c: New file merging add.c and sub.c, no object code changes. 25864 * mpz/add.c, mpz/sub.c: Remove files. 25865 * mpz/Makefile.am, mpbsd/Makefile.am: Update. 25866 25867 * configure.in: Re-apply "PROLOGUE.*" regexp change for the 25868 benefit of alpha PROLOGUE_GP, lost in path search reorganisation. 25869 25870 * mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT, 25871 movl_text_address): Don't use "1:" style labels. 25872 (Zdisp): Rearrange a bit, switch to all hex. 25873 * mpn/x86/README.family: Note SCO "as" doesn't support "1:" style 25874 local labels, misc rewordings. 25875 25876 2000-08-29 Torbjorn Granlund <tege@swox.com> 25877 25878 * demos/primes.c: Include string.h. 25879 25880 * config.guess (x86 variant recog code): Remove dummy*.o files 25881 generated by some compilers. 25882 25883 2000-08-28 Kevin Ryde <kevin@swox.se> 25884 25885 * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8 25886 warning message suppression, add notes about SCO. 25887 25888 * Makefile.am (MPZ_OBJECTS etc): Move some comments. 25889 25890 2000-08-25 Kevin Ryde <kevin@swox.se> 25891 25892 * mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE. 25893 25894 * gmp.texi (Copying): Refer to Lesser not Library GPL. 25895 (GMP and Reentrancy): Note stack-alloc.c is not reentrant, and 25896 that SCO <ctype.h> is potentially not reentrant. 25897 25898 * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to 25899 link with or without an underscore. 25900 * gmp.texi (Known Build Problems): Remove SunOS 4 native grep 25901 GSYM_PREFIX problem, now fixed. 25902 25903 * gmp-impl.h (MODLIMB_INVERSE_3): New constant. 25904 * mpn/generic/diveby3.c: Use it instead of own INVERSE_3. 25905 * mpn/generic/mul_n.c: Ditto. 25906 * tests/t-constants.c: Check it, and PP_INVERTED too. 25907 25908 * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro. 25909 * configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to 25910 possibly add -march=pentiumpro. 25911 25912 * gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros. 25913 * mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c, 25914 mpz/tests/t-misc.c: Use them. 25915 * mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto. 25916 * mpz/tests/convert.c: Ditto and amend diagnostics slightly. 25917 * mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init. 25918 * mpz/tests/io.c: Differentiate between I/O and data conversion errors. 25919 25920 * mpn/generic/aors_n.c: New file merging add_n and sub_n, no 25921 object code changes. 25922 * mpn/generic/add_n.c: Remove file. 25923 * mpn/generic/sub_n.c: Remove file. 25924 25925 * mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1, 25926 no object code changes. 25927 * mpn/generic/addmul_1.c: Remove file. 25928 * mpn/generic/submul_1.c: Remove file. 25929 25930 * mpn/generic/popham.c: New file merging popcount and hamdist, no 25931 object code changes. 25932 * mpn/generic/popcount.c: Remove file. 25933 * mpn/generic/hamdist.c: Remove file. 25934 25935 2000-08-24 Torbjorn Granlund <tege@swox.com> 25936 25937 * gmp-impl.h (mpn_com_n): Fix typo. 25938 25939 2000-08-23 Torbjorn Granlund <tege@swox.com> 25940 25941 * demos/primes.c (main): Don't call mpz_probab_prime_p for numbers 25942 that are known to be prime after sieving. 25943 (main): Declare and initialize max_s_prime_squared. 25944 (MAX_S_PRIME): Increase. 25945 (ST_SIZE): Increase. 25946 25947 2000-08-23 Kevin Ryde <kevin@swox.se> 25948 25949 * gmp-impl.h (ASSERT_ALWAYS): Change to statement style. 25950 (JACOBI_TWO_U_BIT1): Remove ASSERT. 25951 (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement. 25952 25953 2000-08-21 Torbjorn Granlund <tege@swox.com> 25954 25955 * gmp-impl.h (ASSERT): Use do..while for dummy version. 25956 25957 * mpf/get_str.c: Don't set n_digits from digits_computed_so_far 25958 when the converted operand becomes zero. Misc cleanups. 25959 25960 2000-08-21 Kevin Ryde <kevin@swox.se> 25961 25962 * mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing 25963 TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c. 25964 25965 2000-08-20 Kevin Ryde <kevin@swox.se> 25966 25967 * mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as 25968 "move" for libmp. 25969 * mpbsd/Makefile.am: Use mpz/set.c, not move.c. 25970 * Makefile.am (MPBSD_OBJECTS): Corresponding change. 25971 * mpbsd/move.c: Remove file. 25972 25973 * mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, 25974 mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr 25975 "foo_" objects. Do this with the makefiles to keep the sources 25976 cleaner. 25977 * mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms. 25978 25979 * mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from 25980 gmpasm-delete-from-list, because it's non-destructive. 25981 (gmpasm-font-lock-keywords): Add some more keywords. 25982 25983 2000-08-16 Kevin Ryde <kevin@swox.se> 25984 25985 * tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced 25986 open-coded and mpn #includes of mpn/generic/mul_n.c. 25987 * tune/*: Add measuring of them. 25988 * tune/speed.c: Print command line into *.gnuplot file. 25989 25990 * mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for 25991 using the value, add #ifndef for providing the default. 25992 * mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef. 25993 25994 * tests/t-constants.c: New file. 25995 * tests/Makefile.am (check_PROGRAMS): Add it. 25996 25997 * mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result 25998 doesn't depend on limb size when outside the range of a long 25999 (though such results are not actually documented). 26000 * mpz/tests/t-get_si.c: New file. 26001 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. 26002 26003 * mpn/tests/try.c (call): Cast popcount and hamdist calls, 26004 for the benefit of long long limb. 26005 26006 2000-08-15 Kevin Ryde <kevin@swox.se> 26007 26008 * mp.h (mp_set_memory_functions): Add missing #define. 26009 * mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its 26010 existence. 26011 26012 * mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying 26013 reverted behaviour of mpf_get_prec. 26014 26015 * mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not 26016 MPN_COPY_INCR. 26017 26018 * mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms 26019 produced under ansi2knr. 26020 26021 * configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c 26022 objects when ansi2knr in use. 26023 26024 * mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr. 26025 (libdummy.la): Add this, not built, to create ansi2knr style rules 26026 for all potential .c files. 26027 * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am, 26028 mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am 26029 (AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere). 26030 * Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS, 26031 MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames. 26032 26033 2000-08-03 Torbjorn Granlund <tege@swox.com> 26034 26035 * mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28. 26036 26037 2000-08-02 Torbjorn Granlund <tege@swox.com> 26038 26039 * Version 3.1 released. 26040 26041 * gmp.texi: Rephrase mpf_urandomb documentation. 26042 26043 * mpn/alpha/ev6: New directory with ev6/21264 optimized code. 26044 * mpn/alpha/ev6/addmul_1.asm: New file. 26045 * mpn/alpha/ev6/gmp-mparam.h: New file. 26046 26047 2000-08-02 Kevin Ryde <kevin@swox.se> 26048 26049 * demos/factorize.c (random): Don't use "inline". 26050 26051 * mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c: 26052 Corrections to K&R parts. 26053 26054 * Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION). 26055 * mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h. 26056 26057 * gmp.texi (Known Build Problems): Note problem stripping libgmp.a. 26058 26059 2000-08-02 Kent Boortz <kent@swox.com> 26060 26061 * mpfr: Integrated experimental version of mpfr-0.4. 26062 * configure.in: Changes for option --enable-mpfr. 26063 * Makefile.am: Changes for option --enable-mpfr. 26064 26065 2000-08-01 Torbjorn Granlund <tege@swox.com> 26066 26067 * mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern. 26068 * mpn/generic/hamdist.c: Likewise. 26069 26070 2000-08-01 Kevin Ryde <kevin@swox.se> 26071 26072 * mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing 26073 source and dest regions. 26074 26075 2000-07-31 Torbjorn Granlund <tege@swox.com> 26076 26077 * mpf/get_str.c: Develop three extra digits, not just one. 26078 26079 2000-07-31 Kevin Ryde <kevin@swox.se> 26080 26081 * gmp.texi (References): Add URL for invariant division. 26082 26083 2000-07-30 Kevin Ryde <kevin@swox.se> 26084 26085 * tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for 26086 alpha linux "cycle frequency". 26087 26088 * mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds. 26089 26090 2000-07-29 Kevin Ryde <kevin@swox.se> 26091 26092 * gmp.texi (ABI and ISA): Add sparc64-*-linux*. 26093 * configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags 26094 as under solaris. 26095 26096 * configure.in (--enable-fft): New option, default "no". 26097 * gmp.texi (Build Options): Describe it. 26098 * mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it. 26099 * tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled. 26100 * NEWS: Multiplication optionally using FFT. 26101 26102 * tune/README: Notes on FFT and GCD thresholds, other minor updates. 26103 26104 * Makefile.am: Expunge the macos generated files update stuff. 26105 26106 2000-07-28 Kevin Ryde <kevin@swox.se> 26107 26108 * mpn/x86/*/gmp-mparam.h: Add some FFT thresholds. 26109 26110 2000-07-28 Kent Boortz <kent@swox.se> 26111 26112 * macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories. 26113 * macos/Makefile: Delete file. 26114 * macos/Makefile.cw: Delete file. 26115 * macos/config.h: Delete file. 26116 * macos/Asm/*.s: Delete files. 26117 * macos/configure: Create target directories. Don't transform 26118 '(C)' to '(;)' in a 'dnl' line comment in .asm file. 26119 * Makefile.am: Delete macos targets. 26120 * macos/README: Reflect that we reverted back to a build 26121 process that require ""macos/configure" to run on MacOS. 26122 This imply that MacPerl is needed for a build in MacOS. 26123 26124 2000-07-27 Kevin Ryde <kevin@swox.se> 26125 26126 * mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods 26127 applied. 26128 * configure.in (gmp_mpn_functions): Add it. 26129 * mpn/generic/mul.c, mpn/generic/mul_n.c: Use it. 26130 * doc/multiplication: Describe it (briefly). 26131 26132 * gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds. 26133 (mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full): 26134 New functions. 26135 (numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc, 26136 UNSIGNED_TYPE_MAX etc): New macros. 26137 26138 * tune/*: Add FFT threshold tuning and speed measuring. 26139 * tune/common.c: Avoid huge macro expansions for umul and udiv. 26140 26141 * mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c, 26142 mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c, 26143 mpn/tests/spinner.c: Use new gmp-impl.h macros. 26144 26145 * demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this. 26146 26147 2000-07-27 Torbjorn Granlund <tege@swox.com> 26148 26149 * mpn/ia64/gmp-mparam.h: New file. 26150 26151 2000-07-26 Torbjorn Granlund <tege@swox.com> 26152 26153 * demos/isprime.c: Handle any number of arguments and print 26154 classification for each. Add `-q' option for old behaviour. 26155 26156 2000-07-26 Kevin Ryde <kevin@swox.se> 26157 26158 * gmp.texi (Build Options): Mention djgpp stack size. 26159 (Notes for Package Builds): New section. 26160 (Compatibility with older versions): Update for 3.1, add mpf_get_prec. 26161 26162 * demos/factorize.c [__GLIBC__]: Don't declare random() under glibc. 26163 26164 * gmp.h (gmp_version): Add prototype and define. 26165 26166 * Makefile.am: Keep macos directory generated files up-to-date 26167 during development and on a "make dist". 26168 26169 2000-07-25 Torbjorn Granlund <tege@swox.com> 26170 26171 * mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run. 26172 26173 * mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run. 26174 * mpn/pa64w/gmp-mparam.h: Likewise. 26175 * mpn/mips3/gmp-mparam.h: Likewise. 26176 26177 * tune/hppa2.asm: Fix typo in .level directive. 26178 26179 * configure.in: Add sparc64-*-linux* support (from Jakub Jelinek). 26180 * configure: Regenerate. 26181 26182 * mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area 26183 for return value (from Jakub Jelinek). 26184 * mpn/sparc64/lshift.asm: Likewise. 26185 26186 * mpf/get_prc.c: Revert Aug 8, 1996 change. 26187 26188 * version.c: No longer static. 26189 26190 * mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already 26191 defined. 26192 * mpn/pa64w/gmp-mparam.h: Likewise. 26193 * mpn/arm/gmp-mparam.h: Likewise. 26194 * mpn/mips3/gmp-mparam.h: Likewise. 26195 26196 2000-07-25 Kevin Ryde <kevin@swox.se> 26197 26198 * INSTALL: It's "info -f ./gmp.info" to be sure of hitting the 26199 gmp.info in the current directory. 26200 26201 * Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last 26202 mpz/powm.c fix. 26203 26204 * mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from 26205 addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3 26206 filesystem. 26207 * mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm, 26208 mpn/sparc64/mul_1.asm: Update include_mpn()s. 26209 26210 2000-07-24 Torbjorn Granlund <tege@swox.com> 26211 26212 * Update header of all files previously under the Library GPL 26213 to instead be under the Lesser GPL. 26214 26215 * COPYING.LIB: Now Lesser GPL. 26216 * demos/primes.c: Change license to GPL (was Library GPL). 26217 * demos/isprime.c: Change license to GPL (was Library GPL). 26218 26219 * gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused). 26220 26221 * mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD. 26222 Improve error messages. Decrease reps. 26223 26224 2000-07-22 Kevin Ryde <kevin@swox.se> 26225 26226 * tune/speed.h: Decrease the amount of data used for gcd and powm 26227 measuring, to make the tune go a bit faster. 26228 26229 2000-07-21 Kent Boortz <kent@swox.se> 26230 26231 * macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created 26232 from configure script, now part of dist. 26233 * macos/Makefile 26234 * macos/Makefile.cw 26235 * macos/config.h 26236 * macos/Asm/*.s 26237 New files and directories that is the output from configure. This way 26238 no Perl installation is required to build on MacOS, just MPW. 26239 * macos/configure: Added prefix '__g' to exported assembler labels. 26240 Changed to handle new m4 syntax instead of the old cpp syntax in asm. 26241 * macos/Makefile.in: Corrected 'clean' target, added 'distclean' 26242 and 'maintainer_clean'. Added "mpn/mp_bases.c" to build. 26243 * macos/README: Reflect the new build process without configure. 26244 Corrected the file structure for Apple MPW installation. 26245 26246 2000-07-21 Torbjorn Granlund <tege@swox.com> 26247 26248 * mpf/tests/t-muldiv.c: Relax error limit. Make precision depend 26249 on SIZE. Misc changes. 26250 26251 * configure: Regenerate. 26252 26253 2000-07-20 Kent Boortz <kent@swox.com> 26254 26255 * macos/Makefile.in: Removed hard coded targets, added special 26256 targets found in Makefile.am files. 26257 * macos/configure: Generate targets from top configure script and 26258 Makefile.am files. Made script runnable from Unix for testing. 26259 * macos/README: Notes about search paths for includes, contributed 26260 by Marco Bambini. 26261 * configure.in: Added comment about lines that the "macos/configure" 26262 script depend on. 26263 26264 2000-07-20 Torbjorn Granlund <tege@swox.com> 26265 26266 * mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod' 26267 from result if it is greater than `mod'. 26268 26269 2000-07-19 Torbjorn Granlund <tege@swox.com> 26270 26271 * mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run. 26272 * mpn/alpha/gmp-mparam.h: Likewise. 26273 * mpn/powerpc32/gmp-mparam.h: Likewise. 26274 26275 * tune/hppa.asm: New file. 26276 * tune/hppa2.asm: New file. 26277 * configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and 26278 hppa*-*-*. 26279 * tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm. 26280 26281 * tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker'; 26282 invoke TMP_FREE. 26283 26284 * mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for 26285 reloc/symbol delimiter. 26286 26287 2000-07-16 Torbjorn Granlund <tege@swox.com> 26288 26289 * mpn/powerpc64/gmp-mparam.h: Update with output from tune utility. 26290 * mpn/powerpc64/copyi.asm: New file. 26291 * mpn/powerpc64/copyd.asm: New file. 26292 26293 2000-07-16 Kevin Ryde <kevin@swox.se> 26294 26295 * tune/*: Add measuring for umul_ppmm and udiv_qrnnd. 26296 26297 2000-07-14 Kevin Ryde <kevin@swox.se> 26298 26299 * mpn/x86/k6/k62mmx: New directory. 26300 * configure.in (k6[23]*-*-*): Use it. 26301 * mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from 26302 mmx directory, improve code alignment a bit. 26303 * mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto, 26304 and improve addressing modes for pre-CXT cores. 26305 * mpn/x86/x86-defs.m4 (Zdisp): Add an instruction. 26306 * mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files, 26307 suiting plain K6. 26308 * mpn/x86/README, mpn/x86/k6/README: Updates. 26309 * mpn/x86/k6/mmx/*.asm: Update some comments. 26310 26311 * mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m". 26312 * tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for 26313 the benefit of djgpp. 26314 26315 * */Makefile.in: Regenerate with patched automake that adds 26316 $(EXEEXT) to EXTRA_PROGRAMS. 26317 26318 * mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp. 26319 * config.guess: Recognise pc:*:*:* as an x86, for djgpp. 26320 26321 * configure: Regenerate with patched autoconf to fix temp file 26322 ".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two 26323 sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive 26324 spec). 26325 26326 * mpz/tests/io.c: Use one fp opened "w+", since separately opened 26327 input and output doesn't work on MS-DOS 6.21. 26328 26329 * tests/rand/Makefile.am (allprogs): Pseudo-target to build everything. 26330 (CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES. 26331 (manual-test, manual-bigtest): Add $(EXEEXT) to dependencies. 26332 26333 * tests/rand/*/Makefile.in: Regenerate with patched automake that adds 26334 $(EXEEXT) to EXTRA_PROGRAMS. 26335 26336 2000-07-13 Torbjorn Granlund <tege@swox.com> 26337 26338 * mpz/tests/t-root.c: Also test mpz_perfect_power_p. 26339 Generate `nth' so that there will be fewer trivial values. 26340 26341 * mpz/root.c: Reverse return value in tests for detecting root of +1 26342 and -1. 26343 26344 * mpz/perfpow.c: Use TMP_ALLOC interface. 26345 26346 2000-07-12 Torbjorn Granlund <tege@swox.com> 26347 26348 * mpz/perfpow.c (primes): Make it const. 26349 26350 2000-07-06 Kevin Ryde <kevin@swox.se> 26351 26352 * mpn/x86/k6/cross.pl: New file. 26353 26354 * mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize 26355 all _TIME defines. 26356 * mpn/x86/pentium/mmx/gmp-mparam.h: New file. 26357 * mpn/sparc64/gmp-mparam.h: Update thresholds. 26358 * mpn/sparc32/v9/gmp-mparam.h: Ditto. 26359 26360 2000-07-04 Kevin Ryde <kevin@swox.se> 26361 26362 * NEWS: Updates. 26363 * mpn/x86/*/README: Miscellaneous updates. 26364 26365 * tune/speed-ext.c: New file. 26366 * tune/Makefile.am: Add it. 26367 * tune/README: Updates. 26368 * tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes. 26369 26370 * demos/calc.y,calclex.l: New files. 26371 * demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l. 26372 * demos/Makefile.am: Add them. 26373 26374 * gmp.h (mpq_swap, mpf_swap): Add prototypes and defines. 26375 26376 2000-07-01 Kevin Ryde <kevin@swox.se> 26377 26378 * gmp.texi (ABI and ISA): New section, bringing together ABI notes. 26379 (Build Options): Add MPN_PATH, various updates. 26380 (Build Options): Add note on setting CFLAGS when setting CC. 26381 (Notes for Particular Systems): Add -march=pentiumpro problem. 26382 (Known Build Problems): Note on gmp-mparam.h for 64-bit generic C. 26383 (GMP Variable Conventions): Add some info on user defined functions. 26384 (Reporting Bugs): Minor rewording. 26385 26386 * configure.in (MPN_PATH): Renamed from mpn_path. 26387 26388 * gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines. 26389 * mp[zf]/tests/t-misc.c: Use them. 26390 26391 * mpbsd/tests/t-misc.c: New file. 26392 * mpbsd/tests/Makefile.am: Add it. 26393 26394 * Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info. 26395 * gmp.h (__GNU_MP_VERSION_*): Bump to 3.1. 26396 26397 * mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. 26398 26399 * Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally 26400 omitted in gmp 3.0.x. 26401 * gmp.texi (Custom Allocation): Note this is available in mpbsd, 26402 and some minor rewording. 26403 26404 2000-06-30 Torbjorn Granlund <tege@swox.com> 26405 26406 * demos/factorize.c (random): New function, defined conditionally. 26407 (factor_using_pollard_rho): Use it, not mrand48. 26408 26409 * mpn/cray/README: New file. 26410 26411 2000-06-30 Kevin Ryde <kevin@swox.se> 26412 26413 * mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE. 26414 26415 * mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs. 26416 26417 * gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c: 26418 Use config.h unconditionally, not under HAVE_CONFIG_H. 26419 26420 * demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use 26421 setup_error_handler on djgpp. 26422 26423 * tune/*: Locate data to help direct-mapped caches, add measuring 26424 of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups. 26425 * configure.in (AC_CHECK_FUNCS): Add popen. 26426 26427 2000-06-29 Torbjorn Granlund <tege@swox.com> 26428 26429 * mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or 26430 mpn_rshift. Increase precision when exp is a multiple of 26431 BITS_PER_MP_LIMB primarily to make exp==0 be a noop. 26432 * mpf/div_2exp.c: Analogous changes. 26433 26434 * mpf/tests/t-dm2exp.c: Set u randomly in loop. Perform more 26435 mpf_mul_2exp testing. 26436 26437 * configure.in: Recognize cray vector processors with a broad `*'; 26438 move after alpha* not to match that. 26439 26440 2000-06-28 Kevin Ryde <kevin@swox.se> 26441 26442 * mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr 26443 style, switch from MP_INT to mpz_t, add a couple of error checks. 26444 * mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails. 26445 26446 2000-06-27 Torbjorn Granlund <tege@swox.com> 26447 26448 * mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray 26449 floating point format. 26450 26451 * mpq/tests/t-get_d.c: Decrease default reps to 1000. 26452 26453 * mpf/tests/t-conv.c: Correct type of `bexp'. 26454 26455 * configure.in (cray vector machines): Don't inherit gmp_cflags_cc. 26456 26457 * tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm. 26458 26459 * configure.in (cray vector machines): Set extra_functions. 26460 26461 * mpn/cray/mulww.f: New file with vectorizing cray code. 26462 * mpn/cray/mulww.s: Generated from mulww.f. 26463 * mpn/cray/mul_1.c: New file. 26464 * mpn/cray/addmul_1.c: New file. 26465 * mpn/cray/submul_1.c: New file. 26466 * mpn/cray/add_n.c: New file. 26467 * mpn/cray/sub_n.c: New file. 26468 26469 2000-06-26 Kevin Ryde <kevin@swox.se> 26470 26471 * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually 26472 detects solaris 2.6, and also suppress warning on solaris 2.8. 26473 * configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from 26474 sparc case. 26475 26476 * mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring. 26477 26478 2000-06-21 Kevin Ryde <kevin@swox.se> 26479 26480 * mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use 26481 mp_size_t for n2. 26482 (mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size 26483 parameters and "l" variables. 26484 * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes. 26485 26486 * mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of 26487 -0x80...00 on systems with sizeof(short)==sizeof(int). 26488 26489 * mpz/tests/t-misc.c: Move "bin" test from here ... 26490 * mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too. 26491 * mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin. 26492 26493 * mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is 26494 a limb not a ulong. 26495 * mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too, 26496 since nacc is a limb. 26497 26498 * mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si): 26499 New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si. 26500 * mpf/tests/Makefile.am (check_PROGRAMS): Add it. 26501 26502 * mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si): 26503 New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si. 26504 26505 * mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix 26506 handling of -0x80..00. 26507 * mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto. 26508 26509 2000-06-19 Torbjorn Granlund <tege@swox.com> 26510 26511 * demos/primes.c: Properly handle arguments `m +n'. 26512 26513 2000-06-17 Torbjorn Granlund <tege@swox.com> 26514 26515 * config.sub: Recognize k5 and k6 with common pattern. 26516 26517 * mpq/tests/t-get_d.c: Also test mpq_set_d. Misc improvements. 26518 26519 * mpq/set_d.c: Special case 0.0. Don't call mpn_rshift with 0 count. 26520 Allocate correct amount of memory for numerator. Delete spurious 26521 ASSERT_ALWAYS(1). 26522 26523 2000-06-17 Kevin Ryde <kevin@swox.se> 26524 26525 * mpz/perfsqr.c: Fix so that zero is considered a perfect square. 26526 (Was wrongly calling mpn_perfect_square_p with size==0.) 26527 26528 2000-06-16 Kevin Ryde <kevin@swox.se> 26529 26530 * configure.in: Set k5*-*-* to use basic i386 code until there's 26531 something specific. Add path=x86 as a default for x86s. 26532 26533 * acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate 26534 ALIGN_LOGARITHMIC setting, not a full ALIGN definition. 26535 (GMP_CHECK_ASM_ALIGN_FILL_0x90): New test. 26536 * configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90. 26537 * mpn/asm-defs.m4 (ALIGN): New macro. 26538 * mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition. 26539 26540 * tune/*: Plain "unsigned" for speed_cyclecounter. 26541 * configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes. 26542 * tune/sparc64.asm: Remove file. 26543 26544 2000-06-15 Torbjorn Granlund <tege@swox.com> 26545 26546 * mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'. 26547 * mpn/x86/k7/mmx/copyd.asm: Likewise. 26548 26549 * mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems). 26550 * mpn/x86/k7/mmx/rshift.asm: Likewise. 26551 * mpn/x86/k6/aors_n.asm: Likewise. 26552 * mpn/x86/k7/aors_n.asm: Likewise. 26553 * mpn/x86/k7/mul_basecase.asm: Likewise. 26554 26555 2000-06-13 Torbjorn Granlund <tege@swox.com> 26556 26557 * tune/sparcv9.asm: Tune, deleting two instructions. 26558 26559 * tune/alpha.asm: Update to unified speed_cyclecounter. 26560 26561 2000-06-11 Kevin Ryde <kevin@swox.se> 26562 26563 * mpz/tests/reuse.c (FAIL): Add a K&R version. 26564 Use _PROTO on some typedefs. 26565 * mpz/tests/t-misc.c: Add gmp-impl.h for "const". 26566 26567 * configure.in: Rework mpn multi-function and optional files. 26568 Names standardized, no need for explicit declarations, all picked 26569 up in one $path traversal. 26570 * doc/configuration: Updates. 26571 26572 * tests/rand/t-rand.c (main): Change "usage" to work with K&R. 26573 26574 2000-06-10 Kevin Ryde <kevin@swox.se> 26575 26576 * mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm, 26577 mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add 26578 MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching. 26579 26580 * mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions. 26581 (cmov_available_p): Switch to list CPUs which do have cmov. 26582 * mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm, 26583 mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication. 26584 * mpn/x86/README.family: Various updates. 26585 26586 2000-06-09 Kevin Ryde <kevin@swox.se> 26587 26588 * mpbsd/tests/allfuns.c (main): Call exit() instead of doing return. 26589 26590 * doc/tasks.html, doc/projects.html: Moved from projects directory. 26591 * doc/multiplication: New file. 26592 * Makefile.am (EXTRA_DIST): Remove projects, add doc. 26593 26594 * Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove 26595 unnecessary -lm. 26596 * INSTALL: Remove -lm from instructions. 26597 * demos/Makefile.am (qcn_LDADD): Add -lm. 26598 26599 * tune/*: Add measuring for mpn_divrem_2 and modlimb_invert, 26600 improve addsub_n. Switch to unified speed_cyclecounter. 26601 * configure.in: Update configs for speed_cyclecounter. 26602 26603 * gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros. 26604 * mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c, 26605 tune/speed.c, mpn/tests/ref.c: Use them. 26606 26607 * mpn/tests/spinner.c: Remove setitimer, just alarm is enough. 26608 * configure.in (AC_CHECK_FUNCS): Remove setitimer. 26609 * mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx. 26610 * mpn/tests/ref.[ch] (refmpn_addsub_nc): New function. 26611 * mpn/tests/try.c: Add some support for mpn_addsub_nc. 26612 * mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and 26613 addsub_n_2 which don't currently build. 26614 * mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy. 26615 26616 * tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on 26617 libgmp.la. 26618 (findlc_LDADD): Use libstat.la. 26619 (AUTOMAKE_OPTIONS): Use ansi2knr. 26620 26621 2000-06-08 Torbjorn Granlund <tege@swox.com> 26622 26623 * configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and 26624 higher. 26625 (alpha*-*-*): Likewise. 26626 (alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from 26627 gmp_xoptcflags_gcc. 26628 26629 * mpn/Makefile.am (TARG_DIST): Add pa64w. 26630 26631 * longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE. 26632 26633 2000-06-07 Torbjorn Granlund <tege@swox.com> 26634 26635 * mpz/remove.c: Fail for `src' being zero. 26636 26637 * mpz/tests/reuse.c: Test more functions. 26638 (FAIL): New define. 26639 26640 * mpz/tests/t-powm.c: Loop during operand generation while they 26641 are mathematically ill-defined (used to just skip such tests). 26642 26643 * mpz/powm.c (mpz_redc): Clean up argument declarations. 26644 26645 * configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option. 26646 (sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc): 26647 Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'. 26648 (ia64*-*-*): New. 26649 26650 * mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'. 26651 26652 * mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR. 26653 26654 2000-06-06 Torbjorn Granlund <tege@swox.com> 26655 26656 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): 26657 Use mpn_incr_u for final carry propagation. 26658 26659 * mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL. 26660 26661 * mpz/tests/reuse.c: Major rewrite; test many more functions. 26662 26663 * mpz/powm_ui.c: When exp is 0, change res assign order in order 26664 to handle argument overlap. 26665 * mpz/powm.c: When exp is 0, change res assign order in order 26666 to handle argument overlap. Handle negative exp and mod arguments. 26667 26668 * mpz/gcdext.c: Rework code after mpn_gcdext call to handle 26669 argument overlap. 26670 26671 * mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr 26672 in order to handle argument overlap. 26673 * mpz/cdiv_qr.c: Likewise. 26674 26675 * mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs' 26676 tests. Clean up test for mpf_ui_div. 26677 26678 2000-06-06 Kevin Ryde <kevin@swox.se> 26679 26680 * mpn/x86/p6/sqr_basecase.asm: New file. 26681 * mpn/x86/mod_1.asm: Avoid one conditional jump. 26682 * mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME 26683 and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME. 26684 26685 * mp_minv_tab.c: New file. 26686 * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it. 26687 * gmp-impl.h (modlimb_invert): New macro. 26688 * mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead. 26689 * mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop. 26690 * mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use 26691 MPN_COPY_INCR not MPN_COPY in one place. 26692 26693 2000-06-05 Torbjorn Granlund <tege@swox.com> 26694 26695 * mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp. 26696 (main): Clean up test for mpf_div_ui. 26697 26698 * mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or 26699 mpn_rshift. MPN_COPY => MPN_COPY_INCR. Coerce the two assignments to 26700 r->_mp_size. 26701 26702 * mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap 26703 so requires. MPN_COPY => MPN_COPY_INCR. 26704 26705 * mpf/tests/t-dm2exp.c: Correct type of res_prec. 26706 26707 2000-06-04 Kevin Ryde <kevin@swox.se> 26708 26709 * mpz/bin_uiui.c: Fix result for n==0 and n==k. 26710 * mpz/bin_ui.c: Fix result for k>n, add support for n<0. 26711 * gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to 26712 note n<0 is supported. 26713 26714 * mpz/tests/t-misc.c: New file. 26715 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. 26716 26717 2000-05-31 Kevin Ryde <kevin@swox.se> 26718 26719 * tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on 26720 mpn_gcd_1 and mpn_mul_basecase. 26721 * tune/README: Update. 26722 26723 * tune/alpha.asm: New file, by Torbjorn. 26724 * tune/Makefile.am (EXTRA_DIST): Add it. 26725 * configure.in (alpha*-*-*): Use it. 26726 26727 2000-05-31 Linus Nordberg <linus@swox.se> 26728 26729 * doc/configuration: New file. 26730 26731 2000-05-30 Torbjorn Granlund <tege@swox.com> 26732 26733 * mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2 26734 if available. Don't include longlong.h. 26735 26736 * doc/isa_abi_headache: New file. 26737 26738 2000-05-30 Linus Nordberg <linus@swox.se> 26739 26740 * configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to 26741 find `nm'. (AC_PROG_NM comes with Libtool and is needed to get 26742 the `-B' option (BSD compatible output) included in $NM.) 26743 (AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'. 26744 (Now that NM isn't a cross compilation tool, don't give the 26745 impression that we know how to cross compile.) 26746 (CCAS): Remove spurious comment. 26747 26748 * gmp.texi (Notes for Particular Systems): Remove comment about 26749 using GNU `nm' on AIX since system nm now works. 26750 26751 2000-05-29 Torbjorn Granlund <tege@swox.com> 26752 26753 * mpn/power/mul_1.s: Remove [PR] from first word in function 26754 descriptor. 26755 * mpn/power/addmul_1.s: Likewise. 26756 * mpn/power/submul_1.s: Likewise. 26757 26758 2000-05-28 Kevin Ryde <kevin@swox.se> 26759 26760 * configure.in, tune/*: Change pentium rdtsc cycle scheme to 26761 HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS. 26762 * tune/pentium.asm: Renamed and converted from rdtsc.asm. 26763 * tune/sparcv9.asm: New file, by Torbjorn. 26764 * tune/sparc64.asm: New file. 26765 * tune/tuneup.c: Put a limit on gcdext search. 26766 26767 * gmp.h (mp_set_memory_functions): Add extern "C". 26768 * mp.h (__GNU_MP__): Bump to "3". 26769 * mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]: 26770 Include mp.h for mpbsd compile. 26771 * mpz/gcd.c: Ditto, and remove _mpz_realloc declaration. 26772 26773 * gmp.texi (Integer Functions): Flatten @subsections into @sections. 26774 (Floating-point Functions): Ditto. 26775 (Integer Random Numbers): Split from miscellaneous as a sep section. 26776 (Installing GMP): Make nodes for the sections. 26777 Add more "@cindex"s. 26778 (Known Build Problems): Remove SunOS get_d problem, believed fixed. 26779 (Notes for Particular Systems): Remove HPPA note since now PIC. 26780 (References): URL for Jebelean. 26781 26782 2000-05-27 Torbjorn Granlund <tege@swox.com> 26783 26784 * mpn/pa64w: New directory, contents based on corresponding mpn/pa64 26785 files. 26786 * configure.in (hppa2.0w-*-*): New. 26787 * mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before 26788 including stdio.h. 26789 * gmp-impl.h: Always define DItype and UDItype. 26790 26791 2000-05-27 Kevin Ryde <kevin@swox.se> 26792 26793 * tune/common.c (speed_measure): Correction to array sorting, 26794 better diagnostic when measuring fails. 26795 * tune/time.c: Add microsecond accurate getrusage method. 26796 26797 * tune/time.c (speed_cpu_frequency_processor_info): New function. 26798 * configure.in (AC_CHECK_FUNCS): Add processor_info. 26799 26800 2000-05-26 Linus Nordberg <linus@swox.se> 26801 26802 * gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3 26803 if using GNU nm. 26804 26805 2000-05-26 Torbjorn Granlund <tege@swox.com> 26806 26807 * tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to 26808 avoid signed overflow. 26809 26810 * demos/pexpr.c (setup_error_handler): Don't call sigaltstack on 26811 Unicos. 26812 26813 2000-05-25 Torbjorn Granlund <tege@swox.com> 26814 26815 * insert-dbl.c: Work around GCC 2.8 bug. 26816 * extract-dbl.c: Likewise. 26817 26818 * config.sub: Allow i586, i686, i786 again. 26819 26820 * config.guess: Use X86CPU for lots more systems. 26821 26822 2000-05-25 Linus Nordberg <linus@swox.se> 26823 26824 * mpbsd/tests/dummy.c (main): Call exit() instead of doing return 26825 (some old SysV machines don't get this correct, I've heard.) 26826 26827 2000-05-25 Kevin Ryde <kevin@swox.se> 26828 26829 * mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no 26830 digits in string, so it's the same as a separate init and set_str. 26831 26832 2000-05-24 Torbjorn Granlund <tege@swox.com> 26833 26834 * mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random. 26835 26836 * mpz/divexact.c: Read pointers after reallocation. 26837 Compare `quot' and `den' instead of `qp' and `dp' in overlap check. 26838 Use MPN_COPY_INCR for copying from `np'. 26839 26840 (*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX 26841 versions. 26842 * configure.in (*-cray-unicos*): Disable asm syntax checking; set 26843 compiler explicitly. 26844 * configure.in (hppa*-*-*): Remove code disabling shared libs. 26845 26846 2000-05-24 Linus Nordberg <linus@swox.se> 26847 26848 * acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user 26849 when doing the AIX specific test to avoid "nested output". 26850 26851 2000-05-22 Kevin Ryde <kevin@swox.se> 26852 26853 * mp.h (_PROTO): Copy from gmp.h, use on prototypes. 26854 Add extern "C" too. 26855 * mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr. 26856 * mpbsd/tests/allfuns.c: Don't execute mout, just link to it. 26857 (main): ANSI style definition. 26858 26859 * gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to 26860 something that works on SunOS native cc. Seems to fix the 26861 mp*_get_d problems. 26862 26863 * mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR. 26864 * mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir. 26865 26866 2000-05-21 Kevin Ryde <kevin@swox.se> 26867 26868 * mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code. 26869 * mpn/x86/k7/README: Update. 26870 * mpn/x86/k7/gmp-mparam.h: Tune thresholds. 26871 (COUNT_TRAILING_ZEROS_TIME): New define. 26872 * mpn/x86/k6/gmp-mparam.h: Ditto. 26873 26874 * mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version). 26875 * mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version). 26876 * mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version). 26877 * mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version). 26878 * configure.in (pentium3-*-*): Add p3mmx to $path. 26879 26880 * gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add 26881 mpz_*_kronecker_*. 26882 (Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p. 26883 (Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note 26884 it's now a macro. 26885 (References): Add Henri Cohen. 26886 26887 * gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c, 26888 mpn_submul_1c): Add prototypes. 26889 (mpz_odd_p, mpz_even_p): New macros. 26890 26891 * mpn/asm-defs.m4 (m4wrap_prepend): New macro. 26892 (m4_error): Use it. 26893 (m4_not_for_expansion): Corrections to OPERATION symbols. 26894 More comments about variations between m4 versions. 26895 * mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error 26896 exit under BSD m4, previously m4_error printed the message but the 26897 exit code was 0). 26898 26899 * gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1. 26900 * mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it 26901 static and call it __gmpn_divmod_1_internal. 26902 * mpn/generic/divmod_1.c: Remove file. 26903 * configure.in (gmp_mpn_functions): Remove divmod_1. 26904 * mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c. 26905 * compat.c (mpn_divmod_1): Add compatibility function. 26906 * tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1). 26907 26908 * acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in 26909 variants, remove divmod_1. 26910 26911 * mpn/x86/diveby3.asm: Use imul, update comments. 26912 26913 * demos/qcn.c: New file. 26914 * demos/Makefile.am (EXTRA_PROGRAMS): Add it. 26915 26916 * mpz/tests/t-jac.c: New file. 26917 * mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr. 26918 26919 * mpz/kronsz.c: New file. 26920 * mpz/kronuz.c: New file. 26921 * mpz/kronzs.c: New file. 26922 * mpz/kronzu.c: New file. 26923 * mpz/Makefile.am (libmpz_la_SOURCES): Add them. 26924 * Makefile.am (MPZ_OBJECTS): Add them. 26925 * gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros. 26926 * gmp.h (mpz_*_kronecker_*): New defines and prototypes. 26927 26928 * mpn/generic/jacbase.c: New file. 26929 * mpn/generic/mod_1_rs.c: New file. 26930 * configure.in (gmp_mpn_functions): Add them. 26931 * gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and 26932 prototypes. 26933 * longlong.h (COUNT_TRAILING_ZEROS_TIME): New define. 26934 * mpn/tests/ref.c (refmpn_mod_1_rshift): New function. 26935 * mpn/tests/try.c: Add mpn_mod_1_rshift. 26936 * tune/*: Add measuring for mpn_jacobi_base. 26937 26938 * acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple 26939 inclusion of config.m4. 26940 (GMP_PROG_M4): Put "good" message through to config.log. 26941 26942 * mpz/powm.c: Use a POWM_THRESHOLD for where redc stops. 26943 * tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD. 26944 * gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional 26945 redefinition for use when tuning. 26946 26947 * mpz/powm_ui.c: Use DIVIDE_BY_ZERO. 26948 26949 * mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in 26950 string; this makes it the same as a separate init and set_str. 26951 26952 2000-05-20 Kevin Ryde <kevin@swox.se> 26953 26954 * mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval(). 26955 * mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s. 26956 26957 * mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms. 26958 26959 2000-05-19 Linus Nordberg <linus@swox.se> 26960 26961 * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable 26962 `ac_compile' for our own compile command string since other 26963 Autoconf macros may depend on it. 26964 26965 2000-05-19 Kevin Ryde <kevin@swox.se> 26966 26967 * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix 26968 carry propagation in final coefficient additions. 26969 26970 2000-05-18 Linus Nordberg <linus@swox.se> 26971 26972 * configure.in: Set NM before looking for compiler since 26973 GMP_CHECK_CC_64BIT needs it. 26974 26975 * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target. 26976 (GMP_PROG_CC_FIND): Before checking if the compiler knows how to 26977 produce 64-bit code, verify that it works at all. The background 26978 is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit 26979 mode but fails when doing final link. 26980 (GMP_PROG_CC_WORKS): Report to user what's happening. 26981 26982 2000-05-17 Linus Nordberg <linus@swox.se> 26983 26984 * config.guess: Use X86CPU for x86 Cygwin. 26985 26986 2000-05-16 Kevin Ryde <kevin@swox.se> 26987 26988 * mpn/x86/p6/mmx/divrem_1.asm: New file. 26989 * mpn/x86/p6/mmx/mod_1.asm: New file. 26990 * mpn/x86/p6/README: Update. 26991 * mpn/x86/divrem_1.asm: Update comments. 26992 * mpn/x86/mod_1.asm: Ditto. 26993 26994 2000-05-14 Kevin Ryde <kevin@swox.se> 26995 26996 * tune/speed.h: Run gcd functions on a set of data. 26997 26998 * mpn/tests/try.c: New file. 26999 * mpn/tests/try.h: New file. 27000 * mpn/tests/spinner.c: New file. 27001 * mpn/tests/trace.c: New file. 27002 * mpn/tests/x86call.asm: New file. 27003 * mpn/tests/x86check.c: New file. 27004 * mpn/tests/ref.c (refmpn_hamdist): Allow size==0. 27005 (refmpn_gcd): New function, and other additions supporting it. 27006 * mpn/tests/ref.h: More prototypes. 27007 * mpn/tests/Makefile.am: Add try program, use ansi2knr. 27008 27009 * mpn/x86/k7/mmx/popham.asm: New file. 27010 * mpn/x86/k6/mmx/popham.asm: New file. 27011 * mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x 27012 speedup above 15 limbs. 27013 * mpn/x86/k7/README: Update. 27014 * mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT 27015 K6-2 problems. 27016 * configure.in (k6*-*-*, athlon-*-*): Add popham. 27017 27018 * mpn/x86/pentium/diveby3.asm: New file. 27019 * mpn/x86/pentium/README: Update. 27020 27021 * gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4. 27022 (Reporting Bugs): Ask for config.m4 if asm file related. 27023 (I/O of Rationals): New section, add mpq_out_str. 27024 (References): Add url for on-line gcc manuals. 27025 A few node and menu updates. 27026 27027 * INSTALL: Better command line argument checking for test progs. 27028 Change MP -> GMP. 27029 27030 * configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC): 27031 Put descriptions here, not in acconfig.h. 27032 (CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try). 27033 (HAVE_CALLING_CONVENTIONS): New AC_DEFINE. 27034 (AC_CHECK_HEADERS): Add sys/time.h. 27035 (AC_CHECK_FUNCS): Add getpagesize, setitimer. 27036 (KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the 27037 #define when passing through to config.m4. 27038 * acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC, 27039 HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them 27040 from configure.in. 27041 27042 * acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4 27043 eval(), put messages into config.log. 27044 * mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4. 27045 27046 * mpq/out_str.c: New file. 27047 * mpq/Makefile.am (libmpq_la_SOURCES): Add it. 27048 * Makefile.am (MPQ_OBJECTS): Ditto. 27049 * gmp.h (mpq_out_str): New define and prototype. 27050 27051 2000-05-12 Kevin Ryde <kevin@swox.se> 27052 27053 * configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not 27054 $top_srcdir (which doesn't exist). 27055 * acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_. 27056 * gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do" 27057 (not currently used, probably no ill effect anyway). 27058 27059 2000-05-11 Torbjorn Granlund <tege@swox.com> 27060 27061 * randraw.c (lc): Major overhaul (pending rewrite). 27062 (_gmp_rand): Rewrite. 27063 27064 2000-05-08 Torbjorn Granlund <tege@swox.com> 27065 27066 * mpz/tests/convert.c: Call free via _mp_free_func. 27067 * mpf/tests/t-conv.c: Likewise. 27068 27069 * memory.c: Add code enabled for DEBUG that adds special patterns 27070 around allocated blocks. 27071 27072 2000-05-05 Linus Nordberg <linus@swox.se> 27073 27074 * gmp.texi (Miscellaneous Float Functions): Correct parameter list 27075 for mpf_urandomb(). 27076 27077 * configure.in: Invoke AC_REVISION. 27078 27079 2000-05-05 Kevin Ryde <kevin@swox.se> 27080 27081 * gmp.texi: Use @dircategory and @direntry. 27082 (Installing GMP): Clarification for --target, updates on SunOS 27083 problems. 27084 (Integer Arithmetic): Add mpz_mul_si. 27085 (Initializing Rationals): Add mpq_swap. 27086 (Assigning Floats): Add mpf_swap. 27087 (Low-level Functions): Add mpn_divexact_by3c, and details of what 27088 the calculation actually gives. 27089 (Low-level Functions): Note extra space needed by mpn_gcdext, 27090 clarify the details a bit. 27091 27092 * compat.c: New file, entry points for upward binary compatibility. 27093 (mpn_divexact_by3): Compatibility function. 27094 * Makefile.am (libgmp_la_SOURCES): Add compat.c. 27095 27096 * mpn/tests/ref.c: Rearrange macros for ansi2knr. 27097 (div1): Renamed from div to avoid library function. 27098 (refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount, 27099 refmpn_hamdist): New functions. 27100 * mpn/tests/ref.h: Add extern "C", add new prototypes. 27101 27102 * gmp.h (gmp_randinit, etc): Add extern "C". 27103 (_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui. 27104 (mpn_divexact_by3): Now a macro calling mpn_divexact_by3c. 27105 (mpn_divexact_by3c): New prototype and define. 27106 27107 * mpn/x86/diveby3.asm: Change to mpn_divexact_by3c. 27108 * mpn/x86/k6/diveby3.asm: Ditto. 27109 * mpn/generic/diveby3.c: Ditto. 27110 * mpn/asm-defs.m4: Ditto on the define_mpn. 27111 * acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define. 27112 27113 * mpq/swap.c: New file, derived from mpz/swap.c. 27114 * mpf/swap.c: Ditto. 27115 * mpq/Makefile.am: Add swap.c. 27116 * mpf/Makefile.am: Ditto. 27117 * Makefile.am: Add two new "swap.lo"s. 27118 27119 * mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately 27120 this code hasn't been used anywhere yet). 27121 27122 * mpn/x86/k7/mmx/divrem_1.asm: New file. 27123 * mpn/x86/k7/mmx/mod_1.asm: New file. 27124 * mpn/x86/k7/diveby3.asm: New file. 27125 * mpn/x86/k7/README: Update. 27126 27127 * mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change. 27128 * mpn/x86/k7/mul_basecase.asm: Ditto. 27129 * mpn/x86/p6/aorsmul_1.asm: Ditto. 27130 27131 * mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument. 27132 (cmovCC): New macros, replacing individual cmovCC_reg_reg forms. 27133 (Zdisp): Recognise more instructions. 27134 (shldl,etc): Use m4_instruction_wrapper(). 27135 (ASSERT, movl_text_address): New macros. 27136 27137 * mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new 27138 OpenBSD m4. 27139 (m4_assert_numargs_internal_check): Remove a spurious parameter. 27140 (m4_empty_if_zero): Eval the argument. 27141 (m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam, 27142 m4_instruction_wrapper): New macros. 27143 27144 2000-05-04 Linus Nordberg <linus@swox.se> 27145 27146 * gmp.texi (Reporting Bugs): Be explicit about output from running 27147 a command. 27148 27149 2000-05-02 Torbjorn Granlund <tege@swox.com> 27150 27151 * mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return 27152 from first mpn_bz_div_3_halves_by_2 call. 27153 (mpn_bz_divrem_aux): Likewise. 27154 27155 2000-04-30 Kevin Ryde <kevin@swox.se> 27156 27157 * tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these. 27158 27159 * mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD, 27160 use with >=, adjust default to 17 accordingly. 27161 Use new *_SWAP macros. 27162 27163 * mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from 27164 ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly. 27165 Use new *_SWAP macros. 27166 27167 * mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c, 27168 mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c, 27169 mpn/generic/mul.c: Use new *_SWAP macros. 27170 27171 * stack-alloc.h: Add extern "C" around prototypes. 27172 27173 * gmp-impl.h: (MP_PTR_SWAP, etc): New macros. 27174 (_mp_allocate_func, etc): Use _PROTO. 27175 [TUNE_PROGRAM_BUILD]: More changes in tune program build part. 27176 27177 2000-04-28 Torbjorn Granlund <tege@swox.com> 27178 27179 * mpn/pa64/add_n.s: Add `,entry' to export directive. 27180 * mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S, 27181 mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S, 27182 mpn/pa64/umul_ppmm.S: Likewise. 27183 * mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s. 27184 Add PIC support. 27185 27186 2000-04-29 Kevin Ryde <kevin@swox.se> 27187 27188 * gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New 27189 define. 27190 * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use 27191 TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500. 27192 27193 * memory.c: Use <stdlib.h> for malloc etc, and use _PROTO. 27194 * stack-alloc.c: Don't use C++ reserved word "this". 27195 * urandom.h: Put extern "C" around prototypes. 27196 * mpz/powm.c: Switch a couple of parameters to "const", which they 27197 are, to satisfy g++. 27198 27199 * randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to 27200 help g++. 27201 27202 * stack-alloc.c: Provide dual ANSI/K&R function definitions. 27203 * mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c, 27204 rrandomb.c,set_str.c,ui_pow_ui.c: Ditto. 27205 * mpf/integer.c,set_str.c: Ditto. 27206 * mpbsd/min.c,xtom.c: Ditto. 27207 * mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c, 27208 popcount.c,random.c,random2.c,set_str.c: Ditto. 27209 27210 * rand.c: Use <stdio.h> for NULL. 27211 * mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c, 27212 sqrtrem.c: Ditto 27213 * mpf/sqrt.c,sqrt_ui.c: Ditto. 27214 * mpn/generic/perfsqr.c,sqrtrem.c: Ditto. 27215 27216 * gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare. 27217 (extern "C"): Add around function prototypes. 27218 (mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n): 27219 Add prototypes. 27220 [TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for 27221 use by tune program. 27222 * mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype. 27223 27224 * acinclude.m4 (GMP_C_ANSI2KNR): New macro. 27225 (GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use 27226 $gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets. 27227 * configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES, 27228 for reasons described with its definition. 27229 27230 * demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir). 27231 27232 * mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency. 27233 (FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value. 27234 (mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui. 27235 * tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this. 27236 27237 * configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite 27238 a value just stored). 27239 27240 2000-04-26 Kevin Ryde <kevin@swox.se> 27241 27242 * mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro. 27243 * mpn/sparc32/udiv_nfp.asm: Ditto. 27244 * mpn/sparc32/v8/supersparc/udiv.asm: Ditto. 27245 * mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm. 27246 * mpn/sparc32/v8/umul.asm: Ditto. 27247 * mpn/powerpc32/umul.asm: Ditto. 27248 27249 * mpn/x86/syntax.h: Remove file, since now unused. 27250 27251 * configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS 27252 previously used by .S files. 27253 (x86 extra_functions): Add udiv and umul. 27254 (GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...) 27255 (HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to 27256 accept PROLOGUE_GP on alpha. 27257 27258 * acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb): 27259 New template defines. 27260 * mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s. 27261 * longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if 27262 it's available and an asm macro isn't. 27263 * gmp-impl.h (invert_limb): Ditto. 27264 27265 * gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it. 27266 27267 * acinclude.m4 (GMP_PROG_M4): New macro. 27268 27269 2000-04-25 Linus Nordberg <linus@swox.se> 27270 27271 * gmp.texi (Random State Initialization): Correct arguments to 27272 `gmp_randinit'. 27273 27274 * acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'. Fix 27275 from Kevin. 27276 * aclocal.m4: Regenerate. 27277 27278 2000-04-25 Kevin Ryde <kevin@swox.se> 27279 27280 * mpn/x86/aors_n.asm: Remove parentheses around an immediate that 27281 Solaris "as" doesn't like, change by Torbjorn. 27282 27283 2000-04-24 Kevin Ryde <kevin@swox.se> 27284 27285 * configure.in (AC_CHECK_FUNCS): Add strtoul. 27286 27287 * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger 27288 array for karatsuba temporary space for tune program build. 27289 (mpn_toom3_sqr_n) Remove an unused variable. 27290 27291 * demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. 27292 Add "allprogs:" pseudo-target. 27293 * demos/factorize.c, demos/isprime.c: Switch to ANSI functions, 27294 rely on ansi2knr. 27295 27296 * gmp.texi (Getting the Latest Version of GMP): Add reference to 27297 ftp.gnu.org mirrors list. 27298 * INSTALL: Add arg count check to example programs. 27299 27300 * mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to 27301 FORTRAN-style "C" commenting to support Solaris "as". 27302 * mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn. 27303 * mpn/asm-defs.m4 (C): Update comments. 27304 * mpn/x86/README.family: Add a note on commenting, remove 27305 description of .S files. 27306 27307 * mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use 27308 include_mpn(). 27309 27310 2000-04-23 Torbjorn Granlund <tege@swox.com> 27311 27312 * config.sub: Merge with FSF version of April 23. 27313 27314 * mpn/powerpc32: Use dnl/C instead of `#' for comments. 27315 27316 * config.guess: Get "model" limit between pentium 2 and pentium3 right. 27317 Get rid of code determining `_' prefix; use double labels instead. 27318 * config.guess: Partially merge with FSF version of April 22. 27319 (Don't bring over NetBSD changes for now.) 27320 27321 2000-04-23 Kevin Ryde <kevin@swox.se> 27322 27323 * tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm, 27324 tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files. 27325 * tune/Makefile.in: New file, generated from Makefile.am. 27326 27327 * gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros. 27328 [TUNE_PROGRAM_BUILD] Further mods for tune program builds. 27329 27330 * mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c. 27331 Add rules to build mul_si and mul_ui from a common mul_siui.c. 27332 * mpz/mul_siui.c: New file, derived from and replacing mul_ui.c. 27333 * gmp.h (mpz_mul_si): New prototype and define. 27334 27335 * mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in 27336 CLOCK because cpp can't handle floats in #if's (TIMES is derived 27337 from CLOCK by default). 27338 27339 * mpn/asm-defs.m4 (include_mpn): New macro. 27340 (m4_assert_numargs) Changes to implementation. 27341 27342 * mpf/Makefile.am: Add -DOPERATION_$* for new integer.c. 27343 Remove explicit rules for floor.o etc. 27344 * mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc. 27345 27346 * mpn/Makefile.am: Put "tests" in SUBDIRS. 27347 * mpn/tests/Makefile.am: New file providing rules to build test 27348 programs, nothing done in a "make all" or "make check" though. 27349 * mpn/tests/README: New file. 27350 27351 * acconfig.h (HAVE_PENTIUM_RDTSC): New define. 27352 27353 * configure.in (x86): Rearrange target cases. 27354 Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s). 27355 Remove asm-syntax.h generation not needed. 27356 Remove now unused family=x86. 27357 (sparc) Remove unused family=sparc. 27358 (HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL. 27359 (AM_C_PROTOTYPES) New test, supporting ansi2knr. 27360 (AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for 27361 tune progs. 27362 (AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for 27363 tune progs. 27364 (config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR. 27365 (config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include(). 27366 (gmp_m4postinc) Use include_mpn(). 27367 (gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's. 27368 (MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd. 27369 (PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3). 27370 (KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4. 27371 (AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile. 27372 27373 * Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. 27374 (SUBDIRS): Add tune, reorder directories. 27375 (MPZ_OBJECTS): Add mpz/mul_si.lo. 27376 (libmp_la_SOURCES): Use this for top-level objects, not .lo's. 27377 * ansi2knr.c, ansi2knr.1: New files, provided by automake. 27378 27379 * mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a 27380 multi-function aors_n.asm, no object code change. 27381 * mpn/x86/pentium/aors_n.asm: Ditto. 27382 * mpn/x86/aorsmul_1.asm: Ditto for addmul/submul. 27383 * mpn/x86/pentium/aorsmul_1.asm: Ditto. 27384 27385 * mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm, 27386 mpn/x86/rshift.asm: Convert from .S, no object code change. 27387 * mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm, 27388 mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto. 27389 27390 * gmp.texi (Reporting Bugs): Itemize the list of things to include. 27391 (Miscellaneous Float Functions): Correct typo in mpf_ceil etc 27392 argument types. 27393 Change @ifinfo -> @ifnottex for benefit of makeinfo --html. 27394 Remove unnecessary @iftex's around @tex. 27395 27396 2000-04-22 Torbjorn Granlund <tege@swox.com> 27397 27398 * config.guess: Generalize x86 cpu determination code. 27399 Now works on Solaris. 27400 27401 * mpz/nextprime.c: Rewrite still disabled code. 27402 27403 * configure.in: Specifically match freebsd[3-9]. 27404 27405 2000-04-21 Torbjorn Granlund <tege@swox.com> 27406 27407 * rand.c: Call mpz_clear for otherwise leaking mpz_t. 27408 27409 * mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative 27410 n into code for handling small positive n. Merge variables m and n. 27411 After dividing, simply call mpz_millerrabin. 27412 (isprime): Local variables now use attribute `long'. 27413 (mpz_millerrabin): New static function, based on code from 27414 mpz_probab_prime_p. 27415 (millerrabin): Now simple workhorse for mpz_millerrabin. 27416 27417 2000-04-19 Torbjorn Granlund <tege@swox.com> 27418 27419 * gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__. 27420 27421 2000-04-18 Linus Nordberg <linus@swox.se> 27422 27423 * NEWS: Add info about shared libraries. Remove reference to 27424 gmp_randinit_lc. 27425 27426 2000-04-17 Torbjorn Granlund <tege@swox.com> 27427 27428 * Version 3.0 released. 27429 27430 * mpn/arm/add_n.S: New version from Robert Harley. 27431 * mpn/arm/addmul_1.S: Likewise. 27432 * mpn/arm/mul_1.S: Likewise. 27433 * mpn/arm/sub_n.S: Likewise. 27434 27435 * gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0. 27436 27437 2000-04-17 Linus Nordberg <linus@swox.se> 27438 27439 * configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode 27440 to avoid compiler bug. 27441 (ns32k*-*-*): Fix typo in path. Change by Kevin. 27442 (alpha*-*-osf*): New case. Pass assembly flags for architecture 27443 to gcc. 27444 (alpha*-*-*): Don't bother searching for cc. 27445 * configure: Regenerate. 27446 27447 * Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'. 27448 * Makefile.in: Regenerate. 27449 * mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'. 27450 * mpn/Makefile.in: Regenerate. 27451 27452 2000-04-16 Kevin Ryde <kevin@swox.se> 27453 27454 * README: Updates, and don't duplicate the example in INSTALL. 27455 * INSTALL: Minor updates. 27456 * gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description. 27457 27458 2000-04-16 Linus Nordberg <linus@swox.se> 27459 27460 * configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid 27461 .type/.size in PROLOGUE for ELF_SYNTAX. Override ALIGN definition 27462 from x86/syntax.h. 27463 (gmp_xoptcflags_${CC}): New set of variables, indicating 27464 ``exclusive optional cflags''. 27465 (most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to 27466 ensure that we pass CPU type to older gcc. 27467 (CFLAGS): CFLAGS on the command line was spoiled. 27468 * configure: Regenerate. 27469 27470 2000-04-16 Linus Nordberg <linus@swox.se> 27471 27472 * configure.in: Invoke AC_PROG_LIBTOOL directly. 27473 27474 * acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when 27475 setting CC64 and CFLAGS64. 27476 (GMP_PROG_CC_SELECT): Cache result. 27477 (GMP_PROG_LIBTOOL): Remove. 27478 27479 * aclocal.m4: Regenerate. 27480 * configure: Regenerate. 27481 27482 2000-04-16 Linus Nordberg <linus@swox.se> 27483 27484 * tests/rand/t-rand.c (main): Add non-ANSI function declaration. 27485 Don't use `const'. 27486 27487 2000-04-16 Torbjorn Granlund <tege@swox.com> 27488 27489 * mpn/generic/dump.c: Suppress output of leading zeros. 27490 27491 * mpz/inp_str.c: Fix memory leakage. 27492 27493 * mpz/tests/reuse.c (dss_func_division): Add a final 1. 27494 27495 * longlong.h (alpha count_leading_zeros): Wrap in __MPN. 27496 * mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN). 27497 27498 * longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN. 27499 * mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix. 27500 * mpn/hppa/udiv_qrnnd.s: Likewise. 27501 * mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise. 27502 * mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN). 27503 * mpn/pa64/umul_ppmm.S: Likewise. 27504 * mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN). 27505 * mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN). 27506 * mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN). 27507 27508 * mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling 27509 bug. 27510 27511 * mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1 27512 when computing appropriate quotient; mpn_divrem_1 writes too 27513 many quotient limbs. 27514 27515 * mpn/asm-defs.m4: invert_normalized_limb => invert_limb. 27516 * mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb => 27517 mpn_invert_limb. 27518 * gmp.h: Likewise. 27519 * gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb; 27520 wrap with __MPN. 27521 * longlong.h (alpha udiv_qrnnd): Likewise. 27522 27523 2000-04-16 Kevin Ryde <kevin@swox.se> 27524 27525 * gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add 27526 #defines so the library symbols are __gmp_*. 27527 * errno.c: Include gmp.h. 27528 * gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*. 27529 (__clz_tab): New #define to __MPN(clz_tab). 27530 * stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*. 27531 27532 * Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed 27533 for new mpz_powm (pow in libmp). 27534 (EXTRA_DIST): Add projects directory. 27535 27536 * mpn/*: Change __mpn to __gmpn. 27537 * gmp.h (__MPN): Ditto. 27538 * stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp. 27539 27540 * mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3 27541 i386 register handling bug (same as previously in mpn_divrem_classic). 27542 27543 * mpn/generic/divrem.c: Now contains mpn_divrem, which is not an 27544 internal function, so remove warning comment. 27545 27546 * gmp.texi (Compatibility with Version 2.0.x): Source level only. 27547 27548 2000-04-16 Linus Nordberg <linus@swox.se> 27549 27550 * configure.in (hppa1.0*): Prefer c89 to cc. 27551 * configure: Regenerate. 27552 27553 2000-04-15 Linus Nordberg <linus@swox.se> 27554 27555 * configure.in: If `mpn_path' is set by user on configure command 27556 line, use that as path. 27557 * configure: Regenerate. 27558 27559 2000-04-15 Linus Nordberg <linus@swox.se> 27560 27561 * configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no 27562 64-bit compiler was found. 27563 * configure: Regenerate. 27564 27565 2000-04-15 Linus Nordberg <linus@swox.se> 27566 27567 * configure.in: Honor `CC' and `CFLAGS' set by user on configure 27568 command line. 27569 * acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already. 27570 * aclocal.m4: Regenerate. 27571 * configure: Regenerate. 27572 27573 2000-04-15 Linus Nordberg <linus@swox.se> 27574 27575 * acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output. Remove 27576 commented out code. 27577 * aclocal.m4: Regenerate. 27578 * configure: Regenerate. 27579 27580 * configure.in: Make all `-mcpu' options to gcc optional. 27581 * configure: Regenerate. 27582 27583 * tests/rand/Makefile.am: Don't do anything for target 'all'. 27584 * tests/rand/Makefile.in: Regenerate. 27585 27586 2000-04-15 Kevin Ryde <kevin@swox.se> 27587 27588 * README: Small updates. 27589 * NEWS: Add some things about 3.0. 27590 27591 * mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c. 27592 27593 * Makefile.am: Use -version-info on libraries, not -release. 27594 27595 * mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP. 27596 * mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c. 27597 * Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo. 27598 (libmp_la_DEPENDENCIES): Add mp_clz_tab.lo. 27599 * mpbsd/mdiv.c: Remove file. 27600 27601 * config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr, 27602 mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86, 27603 mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix: 27604 Remove configure fragments not used since change to autoconf. 27605 27606 * mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that 27607 internal functions are changeable and shouldn't be used directly. 27608 27609 2000-04-15 Linus Nordberg <linus@swox.se> 27610 27611 * configure.in: Remove debug output. 27612 * configure: Regenerate. 27613 27614 2000-04-15 Torbjorn Granlund <tege@swox.com> 27615 27616 * mpn/generic/tdiv_qr.c: Don't use alloca directly. 27617 27618 * mpz/tdiv_qr.c: Fix typo. 27619 * mpz/tdiv_r.c: Fix typo. 27620 * mpz/tdiv_q.c: Fix typo. 27621 27622 * configure.in: Disable -march=pentiumpro due to apparent compiler 27623 problems. 27624 27625 * mpz/powm.c: Replace with new code from Paul Zimmermann. 27626 27627 * mpz/tdiv_q.c: Remove debug code. 27628 27629 * mpn/generic/divrem.c: Remove C++ style `//' commented-out code. 27630 * mpn/generic/sb_divrem_mn.c: Likewise. 27631 27632 2000-04-14 Torbjorn Granlund <tege@swox.com> 27633 27634 * mpz/cdiv_q.c: Change temp allocation for new requirements of 27635 mpz_tdiv_qr. 27636 * mpz/fdiv_q.c: Likewise. 27637 27638 * mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3. 27639 27640 * mpz/dmincl.c: Delete file. 27641 * mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr. 27642 * mpz/tdiv_r.c: Likewise. 27643 * mpz/tdiv_q.c: Likewise. 27644 27645 * mpn/generic/tdiv_qr.c: New file. 27646 * mpn/generic/bz_divrem_n.c: New file. 27647 * mpn/generic/sb_divrem_mn.c: New file. 27648 27649 * gmp-impl.h (MPZ_REALLOC): New macro. 27650 (mpn_sb_divrem_mn): Declare. 27651 (mpn_bz_divrem_n): Declare. 27652 (mpn_tdiv_qr): Declare. 27653 27654 * configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n; 27655 add tdiv_qr, bz_divrem_n, and sb_divrem_mn. 27656 * mpn/generic/divrem_newt.c: Delete file. 27657 * mpn/generic/divrem_1n.c: Delete file. 27658 27659 * gmp.h (mpn_divrem_newton): Remove declaration. 27660 (mpn_divrem_classic): Remove declaration. 27661 27662 * gmp.h (mpn_divrem): Remove function definition. 27663 * mpn/generic/divrem.c: Replace mpn_divrem_classic with a 27664 mpn_divrem wrapper. 27665 27666 2000-04-14 Kevin Ryde <kevin@swox.se> 27667 27668 * mpf/dump.c, mpz/dump.c, mpn/generic/dump.c, 27669 mpn/generic/divrem.c, mpn/generic/divrem_1n.c, 27670 mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c, 27671 mpn/generic/mul.c, mpn/generic/mul_basecase.c, 27672 mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c, 27673 mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are 27674 changeable and shouldn't be used directly. 27675 27676 * mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an 27677 exception on zero divisor). 27678 27679 * mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function 27680 definitions. 27681 * mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul. 27682 27683 * gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX 27684 and ranlib on native SunOS. 27685 Particular systems notes about AIX and HPPA shared libraries 27686 disabled. 27687 (MP Basics): Add that undocumented things shouldn't be used. 27688 (Introduction to MP): Add to CPUs listed. 27689 27690 * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C 27691 having "void". 27692 27693 2000-04-13 Linus Nordberg <linus@swox.se> 27694 27695 * mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function 27696 definition. 27697 27698 * configure.in: Disable shared libraries for hppa*. 27699 (mips-sgi-irix6.*): Fix flags for 64-bit gcc. 27700 (hppa2.0*-*-*): Prefer c89 to cc. 27701 * configure: Regenerate. 27702 27703 * gmp.h (gmp_randalg_t): Remove comma after last element. 27704 27705 * tests/rand/t-rand.c: Add copyright notice. 27706 27707 2000-04-13 Kevin Ryde <kevin@swox.se> 27708 27709 * mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c, 27710 mpz/remove.c, mpz/root.c: Add K&R function definitions. 27711 * mpz/rrandomb.c: Fix typo in K&R part. 27712 * stack-alloc.c: Add K&R style function pointer declarations. 27713 27714 * mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives. 27715 Use DIVIDE_BY_ZERO on a "zero'th" root. 27716 27717 * configure: Regenerate with autoconf backpatched to fix --srcdir 27718 absolute path wildcards that bash doesn't like, change by Linus. 27719 27720 * gmp.texi (Integer Arithmetic): Document mpz_nextprime. 27721 (Miscellaneous Integer Functions): Fix mpz_fits_* formatting. 27722 (Installing MP): Comment-out CC and CFLAGS description. 27723 27724 2000-04-13 Linus Nordberg <linus@swox.se> 27725 27726 * rand.c (gmp_randinit): Don't combine va_alist with ordinary 27727 arguments for non STDC. 27728 27729 2000-04-13 Torbjorn Granlund <tege@swox.com> 27730 27731 * mpz/nextprime.c: Use proper names of new random types and functions. 27732 27733 * mpz/rrandomb.c: New file. 27734 * mpz/Makefile.am: List it. 27735 * mpz/Makefile.in: Regenerate. 27736 * Makefile.am: Here too. 27737 * Makefile.in: Regenerate. 27738 * gmp.h: Declare mpz_rrandomb. 27739 27740 2000-04-12 Linus Nordberg <linus@swox.se> 27741 27742 * Makefile.am, demos/Makefile.am, mpbsd/Makefile.am, 27743 mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am, 27744 mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am, 27745 mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am, 27746 tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'. 27747 27748 * Makefile.in, demos/Makefile.in, mpbsd/Makefile.in, 27749 mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in, 27750 mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in, 27751 mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in, 27752 tests/rand/Makefile.in: Regenerate. 27753 27754 2000-04-12 Linus Nordberg <linus@swox.se> 27755 27756 * randlc.c (gmp_randinit_lc): Disable function. 27757 * gmp.texi (Random State Initialization): Remove gmp_randinit_lc. 27758 27759 * acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main 27760 successfully with `-n32' will have to suffice on irix6. 27761 * aclocal.m4: Regenerate. 27762 27763 * configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler. 27764 (mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64' 27765 for 64-bit `cc'. Add options for gcc. 27766 * configure: Regenerate. 27767 27768 * mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'. If 27769 'nbits' doesn't make even limbs, shift up result before 27770 normalizing. 27771 27772 * gmp.h (mpf_urandomb): Add parameter to prototype. 27773 27774 * mpf/urandom.c: Rename file to ... 27775 * mpf/urandomb.c: ... this. 27776 * Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo. 27777 * Makefile.in: Regenerate. 27778 * mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c. 27779 * mpf/Makefile.in: Regenerate. 27780 27781 * config.in: Regenerate for HAVE_DECL_OPTARG. 27782 27783 * randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB. 27784 (lc): Change return type. 27785 Use one temporary storage instead of two. 27786 Handle seed of size 0. 27787 Avoid modulus operation in some cases. 27788 Abort if M is not a power of 2. 27789 Fix bug with 64-bit limbs. 27790 Fix bug with small seed, small A and large M. 27791 27792 * tests/rand/gen.c (main): Include gmp.h. Remove macros MIN, MAX. Add 27793 option '-q'. Don't demand argument N. Change parameters in call 27794 to mpf_urandomb. 27795 27796 * tests/rand/t-rand.c: New file for testing random number generation. 27797 27798 * tests/rand/Makefile.am: Run t-rand for 'make check'. 27799 (test, bigtest): Rename to manual-test, manual-bigtest. 27800 * tests/rand/Makefile.in: Regenerate. 27801 27802 2000-04-12 Kevin Ryde <kevin@swox.se> 27803 27804 * gmp-impl.h: Include config.h before TMP_ALLOC, so 27805 --disable-alloca works. 27806 27807 * mpbsd/Makefile.am: Don't recompile top-level sources here. 27808 * Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead, 27809 add errno.lo and stack-alloc.lo. 27810 27811 * mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4. 27812 * gmp.texi (Installing MP): Update note on SunOS m4 failure. 27813 27814 * acconfig.h: Add copyright notice using @TOP@. 27815 27816 * stack-alloc.c: Use _mp_allocate_func, not malloc. 27817 * gmp.texi (Installing MP): Note this under --disable-alloca. 27818 27819 * gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs. 27820 (Integer Arithmetic): mpz_prime_p not yet implemented, comment out. 27821 (Float Arithmetic): mpf_pow_ui now implemented, uncomment-out. 27822 (Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc. 27823 (Low-level Functions): Add mpn_random2, with mpn_random. 27824 27825 * mpn/m68k/mc68020/udiv.S: Rename from udiv.s. 27826 * mpn/m68k/mc68020/umul.S: Ditto. 27827 27828 * mpn/alpha/umul.asm: Rename from umul.s, remove .file and 27829 compiler identifiers. 27830 27831 * mpn/powerpc32/syntax.h: Removed, no longer used. 27832 27833 * mpn/a29k/udiv.s: Remove .file and compiler identifiers. 27834 * mpn/a29k/umul.s: Ditto. 27835 27836 * mpn/tests/ref.c: Use WANT_ASSERT. 27837 * mpn/tests/ref.h: Use _PROTO. 27838 27839 * mpbsd/configure.in: Removed, no longer required. 27840 27841 * mpf/div.c: Use DIVIDE_BY_ZERO. 27842 * mpf/div_ui.c: Ditto. 27843 * mpf/ui_div.c: Ditto. 27844 * mpq/inv.c: Ditto. 27845 * mpf/sqrt.c: Use SQRT_OF_NEGATIVE. 27846 * mpz/sqrt.c: Ditto. 27847 * mpz/sqrtrem.c: Ditto. 27848 27849 * gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros. 27850 (DIVIDE_BY_ZERO): Use GMP_ERROR. 27851 (__mp_bases): #define to __MPN(mp_bases). 27852 27853 2000-04-11 Linus Nordberg <linus@swox.se> 27854 27855 * tests/rand/stat.c (main): Initialize `l1runs' at declaration. 27856 27857 2000-04-11 Kevin Ryde <kevin@swox.se> 27858 27859 * mpz/fib_ui.c: Add K&R function definitions. 27860 27861 * mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a 27862 shell problem with an empty "for tst in $(TESTS) ; ...". 27863 * mpbsd/tests/dummy.c: New file. 27864 27865 2000-04-10 Torbjorn Granlund <tege@swox.com> 27866 27867 * mpz/bin_uiui.c: Delete several unused variables. 27868 Add copyright notice. 27869 * mpz/bin_ui.c: Add copyright notice. 27870 27871 * longlong.h: Declare __count_leading_zeros for alpha. 27872 27873 2000-04-10 Linus Nordberg <linus@swox.se> 27874 27875 * rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...). 27876 * gmp.h: Change prototype accordingly. 27877 * mpz/pprime_p.c (millerrabin): Change call accordingly. 27878 27879 * configure.in: Check for `optarg'. 27880 * configure: Regenerate. 27881 27882 * mpn/Makefile.am: Remove incorrect comment. 27883 * mpn/Makefile.in: Regenerate. 27884 27885 * gmp.h: Rename most of the random number functions, structs and some 27886 of the struct members. 27887 * rand.c (gmp_randinit): Likewise. 27888 * randclr.c (gmp_randclear): Likewise. 27889 * randlc.c (gmp_randinit_lc): Likewise. 27890 * randlc2x.c (gmp_randinit_lc_2exp): Likewise. 27891 * randraw.c (lc): Likewise. 27892 (_gmp_rand_getraw): Likewise. 27893 * randsd.c (gmp_randseed): Likewise. 27894 * randsdui.c (gmp_randseed_ui): Likewise. 27895 * gmp.texi: Likewise. 27896 27897 * gmp.texi: Use three hyphens for a dash. 27898 (Low-level Functions): Remove documentation for gmp_rand_getraw. 27899 (Random Number Functions): Add info on where to find documentation 27900 on the random number functions. 27901 27902 * tests/rand/Makefile.am (test, bigtest): Quote argument to grep. 27903 * tests/rand/Makefile.in: Regenerate. 27904 27905 * tests/rand/gen.c: Declare optarg, optind, opterr if not already 27906 declared. 27907 (main): Use new names for the random stuff. 27908 (main): Don't use strtoul() if we don't have it. Use strtol() 27909 instead, if we have it. Otherwise, use atoi(). 27910 (main): Use srandom/srandomdev for __FreeBSD__ only. 27911 (main): Use new parameter order to gmp_randinit(). 27912 27913 * tests/rand/stat.c: Declare optarg, optind, opterr if not already 27914 declared. 27915 27916 2000-04-10 Torbjorn Granlund <tege@swox.com> 27917 27918 * mpz/pprime_p.c: Pass 0L for mpz_scan1. mpz_mmod => mpz_mod. 27919 (millerrabin): Use new random interface. 27920 (millerrabin): ... and don't forget to call gmp_randclear. 27921 27922 * mpz/nextprime.c: New file. 27923 * gmp.h: Declare mpz_nextprime. 27924 * mpz/Makefile.am: List nextprime.c. 27925 * mpz/Makefile.in: Regenerate. 27926 * Makefile.am: List mpz/nextprime.lo. 27927 * Makefile.in: Regenerate. 27928 27929 2000-04-10 Kevin Ryde <kevin@swox.se> 27930 27931 * move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change, 27932 mpf/tests/move-if-change: Remove, no longer used. 27933 27934 * Makefile.am (SUBDIRS): Add tests, demos, mpbsd. 27935 (libmp.la): New target, conditional on WANT_MPBSD. 27936 (libgmp_la_LIBADD): Add -lm. 27937 (AUTOMAKE_OPTIONS): Add check-news. 27938 (include_HEADERS): Setup to install gmp.h and possibly mp.h. 27939 (DISTCLEANFILES): Add generated files. 27940 (check): Remove explicit target (now uses check-recursive). 27941 27942 * configure.in: Use AM_CONFIG_HEADER. 27943 Add --enable-mpbsd setting automake conditional WANT_MPBSD. 27944 Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile. 27945 27946 * mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now 27947 using AM_CONFIG_HEADER. 27948 * mpq/Makefile.am: Ditto. 27949 * mpf/Makefile.am: Ditto, and add DISTCLEANFILES. 27950 * mpn/Makefile.am: Shorten INCLUDES, amend some comments. 27951 * mpz/tests/Makefile.am: Use TESTS and $(top_builddir). 27952 * mpf/tests/Makefile.am: Ditto. 27953 * mpq/tests/Makefile.am: Ditto. 27954 * demos/Makefile.am: New file. 27955 27956 * mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in. 27957 * mpbsd/Makefile.in: Now generated from Makefile.am. 27958 * mpbsd/realloc.c: Removed, use mpz/realloc.c instead. 27959 * mpbsd/tests/Makefile.am: New file. 27960 * mpbsd/tests/Makefile.in: New file, generated from Makefile.am. 27961 * mpbsd/tests/allfuns.c: New file. 27962 27963 * gmp.texi (Top): Use @ifnottex, to help makeinfo --html. 27964 (Installing MP): Describe --enable-mpbsd and demo programs. 27965 27966 * tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs. 27967 27968 * tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la). 27969 (EXTRA_PROGRAMS): Not noinst_PROGRAMS. 27970 (INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER. 27971 27972 2000-04-09 Torbjorn Granlund <tege@swox.com> 27973 27974 * mpz/urandomm.c: Get type of count right. 27975 Simplify computation of nbits. 27976 27977 2000-04-08 Torbjorn Granlund <tege@swox.com> 27978 27979 * mpz/urandomb.c: Fix reallocation condition. 27980 Simplify size computation. 27981 27982 2000-04-08 Linus Nordberg <linus@swox.se> 27983 27984 * acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for 27985 HPUX. 27986 (GMP_CHECK_ASM_W32): Ditto. 27987 * aclocal.m4: Regenerate. 27988 27989 * mpn/Makefile.am: Use $(CCAS) for assembling. 27990 (.asm.obj): Add rule. 27991 * mpn/Makefile.in: Regenerate. 27992 27993 * gmp.texi (Miscellaneous Integer Functions): Fix typos. 27994 27995 * configure.in: Never pass `-h' to grep. 27996 (mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler. 27997 (hppa1.0*-*-*): New flag for cc. 27998 (hppa2.0*-*-*): Try to find 64-bit compiler. Chose path, set 27999 CCAS. 28000 * configure: Regenerate. 28001 28002 2000-04-08 Torbjorn Granlund <tege@swox.com> 28003 28004 * mpz/bin_ui.c: Don't depend on ANSI C features. 28005 * mpz/bin_uiui.c: Likewise. 28006 28007 * Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*. 28008 (MPQ_OBJECTS): Add mpq/set_d.lo. 28009 (MPZ_OBJECTS): Add mpz/fits*.lo. 28010 * Makefile.in: Regenerate. 28011 28012 * mpz/cmpabs.c: New name for mpz/cmp_abs.c. 28013 * mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c. 28014 * mpz/Makefile.am: Corresponding changes. 28015 * mpz/Makefile.in: Regenerate. 28016 * gmp.h: mpz_cmp_abs* => mpz_cmpabs*. 28017 28018 * mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features. 28019 28020 * mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT. 28021 28022 * gmp.h (mpq_set_d): Declare correctly. 28023 (mpz_root): Use _PROTO. 28024 (mpz_remove): Use _PROTO. 28025 (mpf_pow_iu): Use _PROTO. 28026 28027 * mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change. 28028 * gmp.h (__MPN): Revert previous change. 28029 28030 * mpz/perfpow.c: De-ANSI-fy. Add copyright notice. 28031 28032 * mpz/set_d.c: Misc cleanups. 28033 28034 * mpq/set_d: New file. 28035 * gmp.h: Declare mpq_set_d. 28036 * mpq/Makefile.am: List set_d.c. 28037 * mpq/Makefile.in: Regenerate. 28038 28039 2000-04-07 Torbjorn Granlund <tege@swox.com> 28040 28041 * mpz/fits_sint_p.c: New file. 28042 * mpz/fits_slong_p.c: New file. 28043 * mpz/fits_sshort_p.c: New file. 28044 * mpz/fits_uint_p.c: New file. 28045 * mpz/fits_ulong_p.c: New file. 28046 * mpz/fits_ushort_p.c: New file. 28047 * gmp.h: Declare mpz_fits_*. 28048 * mpz/Makefile.am: List fits_* files. 28049 * mpz/Makefile.in: Regenerate. 28050 28051 2000-04-06 Kevin Ryde <kevin@swox.se> 28052 28053 * gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4 28054 failure. 28055 28056 * mpn/x86/pentium/gmp-mparam.h: Tune thresholds. 28057 * mpn/x86/p6/gmp-mparam.h: Ditto. 28058 * mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME. 28059 * mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME. 28060 28061 * mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT. 28062 (mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD. 28063 (mpn_toom3_sqr_n): Eliminate second evaluate3. 28064 28065 * gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0. 28066 (tune_mul_threshold,tune_sqr_threshold): Conditionalize 28067 declarations on TUNE_PROGRAM_BUILD. 28068 28069 * mpn/generic/sqr_basecase.c: Add an assert. 28070 28071 2000-04-05 Torbjorn Granlund <tege@swox.com> 28072 28073 * gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but 28074 leave some commented out. 28075 28076 * gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize. 28077 (mpn_com_n): Optimize. 28078 28079 * gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency. 28080 * mpn/asm-defs.m4 (MPN_PREFIX): Likewise. 28081 28082 * gmp.h (GMP_ERROR_ALLOCATE): New errcode. 28083 28084 * gmp-impl.h (MPN_MUL_N_RECURSE): Delete. 28085 (MPN_SQR_RECURSE): Delete. 28086 28087 * gmp-impl.h (TARGET_REGISTER_STARVED): New define. 28088 28089 * gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN. 28090 (mpn_toom3_sqr_n): Likewise. 28091 (mpn_kara_mul_n): Likewise. 28092 (mpn_toom3_mul_n): Likewise. 28093 (mpn_reciprocal): Likewise. 28094 28095 * gmp-impl.h (__gmpn_mul_n): Remove declaration. 28096 (__gmpn_sqr): Likewise. 28097 * gmp.h (mpn_sqr_n): Declare/remap. 28098 * mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr. 28099 28100 * gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here... 28101 * gmp-impl.h: ...to here. 28102 28103 2000-04-05 Linus Nordberg <linus@swox.se> 28104 28105 * gmp.texi (Top): Add `Random Number Functions' to menu. 28106 (Introduction to MP): Fix typo. 28107 (MP Basics): Create menu for all sections. Move `Random Number 28108 Functions' to its own chapter. Add nodes for all sections. 28109 (Function Classes): Mention random generation functions under 28110 miscellaneous. 28111 (Miscellaneous Integer Functions): Update mpz_urandomb, 28112 mpz_urandomm. 28113 (Low-level Functions): Remove mpn_rawrandom. 28114 (Random State Initialization): Update. 28115 28116 * mpf/urandom.c (mpf_urandomb): Remove SIZE parameter. Normalize 28117 result correctly. 28118 28119 * gmp.h (mpf_urandomb): Remove SIZE parameter. 28120 28121 * randraw.c (gmp_rand_getraw): Handle the case where (1) the LC 28122 scheme doesn't generate even limbs and (2) more than one LC 28123 invocation is necessary to produce the requested number of bits. 28124 28125 2000-04-05 Torbjorn Granlund <tege@swox.com> 28126 28127 * mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for 28128 any BITS_PER_MP_LIMB. 28129 (MP_LIMB_T_MAX): New. 28130 (mpn_divexact3_n): Remove. 28131 (interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n. 28132 28133 2000-04-05 Kevin Ryde <kevin@swox.se> 28134 28135 * gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test. 28136 (tune_mul_threshold,tune_sqr_threshold): Add declarations, used in 28137 development only. 28138 28139 * mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now. 28140 28141 2000-04-04 Torbjorn Granlund <tege@swox.com> 28142 28143 * gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default. 28144 (TOOM3_SQR_THRESHOLD): Provide default. 28145 28146 * mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley). 28147 * mpn/generic/mul.c: Rewrite (mostly by Robert Harley). 28148 28149 * configure.in (sparcv9 64-bit OS): Set extra_functions. 28150 28151 2000-04-04 Linus Nordberg <linus@swox.se> 28152 28153 * mpn/generic/rawrandom.c: Remove file and replace with randraw.c 28154 on top level. 28155 (mpn_rawrandom): Rename to gmp_rand_getraw. 28156 28157 * randraw.c: New file; essentially a copy of 28158 mpn/generic/rawrandom.c. 28159 (gmp_rand_getraw): New function (formerly known as mpn_rawrandom). 28160 28161 * mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom --> 28162 gmp_rand_getraw. 28163 * mpz/urandomm.c (mpz_urandomb): Ditto. 28164 * mpf/urandom.c (mpf_urandomb): Ditto. 28165 28166 * gmp.h (gmp_rand_getraw): Add function prototype. 28167 (mpn_rawrandom): Remove function prototype. 28168 28169 * Makefile.am (libgmp_la_SOURCES): Add randraw.c. 28170 * Makefile.in: Regenerate. 28171 28172 * configure.in (gmp_mpn_functions): Remove rawrandom. 28173 * configure: Regenerate. 28174 28175 2000-04-04 Linus Nordberg <linus@swox.se> 28176 28177 * gmp.h (GMP_ERROR enum): Remove comma after last enumeration 28178 since the AIX compiler (xlc) doesn't like that. 28179 28180 * randlc.c (gmp_rand_init_lc): Allocate enough space for seed to 28181 hold any upcoming seed. 28182 * randlc2x.c (gmp_rand_init_lc_2exp): Likewise. 28183 28184 * mpn/generic/rawrandom.c: Remove debugging code. 28185 (mpn_lc): Don't reallocate seed. 28186 28187 * mpz/urandomm.c (mpz_urandomm): Implement function. 28188 28189 * mpz/urandomb.c (mpz_urandomb): Fix typo in function definition. 28190 28191 2000-04-04 Kevin Ryde <kevin@swox.se> 28192 28193 * make.bat: Removed (no longer works, no longer supported). 28194 * mpn/msdos/asm-syntax.h: Removed (was used only by make.bat). 28195 28196 2000-04-03 Torbjorn Granlund <tege@swox.com> 28197 28198 * mpn/generic/brandom.c: New file, replacing random2. 28199 28200 2000-04-02 Torbjorn Granlund <tege@swox.com> 28201 28202 * mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions 28203 into their plain counterparts. 28204 28205 * mpn/sparc64/copyi.asm: Avoid executing ALIGN. 28206 28207 * mpn/sparc64/mul_1.asm: Handle overlap of rp/sp. 28208 * mpn/sparc64/addmul_1.asm: Likewise. 28209 * mpn/sparc64/submul_1.asm: Likewise. 28210 28211 2000-04-01 Linus Nordberg <linus@swox.se> 28212 28213 * gmp.h: Fix function prototypes for randomization functions. 28214 (__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove 28215 unused `bits'. 28216 (__gmp_rand_data_lc): Add `m2exp' as another way of representing 28217 the modulus. 28218 (__gmp_rand_state_struct): Remove unused `size'. 28219 28220 * rand.c (__gmp_rand_scheme): Use better multipliers. Remove test 28221 schemes. Replace `m' with `m2exp'. 28222 (gmp_rand_init): Change parameters and return type. Use `m2exp' 28223 instead of `m'. Set `gmp_errno' on error. Disable BBS algorithm. 28224 28225 * randlc.c (gmp_rand_init_lc): Don't use malloc(). Change 28226 parameters. 28227 28228 * randclr.c (gmp_rand_clear): Don't use free(). Disable BBS 28229 algorithm. Set `gmp_errno' on error. 28230 28231 * randlc2x.c (gmp_rand_init_lc_2exp): New function. 28232 * randsd.c (gmp_rand_seed): New function. 28233 * randsdui.c (gmp_rand_seed_ui): New function. 28234 * randlcui.c: Remove unused file. 28235 28236 * mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite. 28237 (mpn_lc): New static function. 28238 28239 * mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for 28240 determining size of ROP. 28241 28242 * mpf/urandom.c (mpf_urandomb): Add third parameter, nbits. (Not 28243 used yet!) 28244 Change parameter order to mpn_rawrandom(). 28245 28246 * Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c, 28247 randsd.c, randsdui.c. Remove randui.c. 28248 (MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo. Add urandomm.lo. 28249 * Makefile.in: Regenerate. 28250 28251 * mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c --> 28252 urandomb.c. Add urandomm.c. 28253 * mpz/Makefile.in: Regenerate. 28254 28255 * tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc. 28256 Add gen.static. 28257 * tests/rand/Makefile.in: Regenerate. 28258 28259 * tests/rand/gen.c (main): Add mpz_urandomm. Add command line options 28260 `-C', `-m', extend `-a'. Use *mp*_*rand*() with new parameters. Call 28261 gmp_rand_seed(). 28262 28263 2000-04-01 Kevin Ryde <kevin@swox.se> 28264 28265 * acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux. 28266 * configure.in (CCAS): No CFLAGS, they're added when it's used. 28267 (CONFIG_SRCDIR): New define for config.m4. 28268 * mpn/sparc64/addmul_1.asm: Use it for an include(). 28269 * mpn/sparc64/submul_1.asm: Ditto. 28270 * mpn/sparc64/mul_1.asm: Ditto. 28271 28272 2000-03-31 Linus Nordberg <linus@swox.se> 28273 28274 * mpz/urandom.c: Rename to... 28275 * mpz/urandomb.c: ...this. 28276 28277 * mpz/urandomb.c (mpz_urandomb): Change operand order in call to 28278 mpn_rawrandom(). Use ABSIZ() instead of SIZ() when checking size 28279 of ROP. 28280 28281 * mpz/urandomm.c: New file. 28282 28283 2000-03-31 Kevin Ryde <kevin@swox.se> 28284 28285 * acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code 28286 will be omitted. 28287 28288 2000-03-30 Torbjorn Granlund <tege@swox.com> 28289 28290 * mpn/sparc64/mul_1h.asm: New file. 28291 * mpn/sparc64/addmul_1h.asm: New file. 28292 * mpn/sparc64/submul_1h.asm: New file. 28293 * mpn/sparc64/mul_1.asm: Rewrite. 28294 * mpn/sparc64/addmul_1.asm: Rewrite. 28295 * mpn/sparc64/submul_1.asm: Rewrite. 28296 28297 2000-03-28 Torbjorn Granlund <tege@swox.com> 28298 28299 * mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction. 28300 * mpn/sparc32/v9/addmul_1.asm: Likewise. 28301 * mpn/sparc32/v9/submul_1.asm: Likewise. 28302 28303 2000-03-25 Kevin Ryde <kevin@swox.se> 28304 28305 * mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom, 28306 fontify more keywords, turn into a standalone mode. 28307 28308 * stamp-vti: New file, generated together with version.texi. 28309 28310 * acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros. 28311 * configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION. 28312 28313 2000-03-24 Kevin Ryde <kevin@swox.se> 28314 28315 * INSTALL: Updates for new configure system. 28316 28317 * configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu 28318 and -march. 28319 28320 2000-03-23 Torbjorn Granlund <tege@swox.com> 28321 28322 * demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs 28323 for ROOT. 28324 28325 2000-03-23 Kevin Ryde <kevin@swox.se> 28326 28327 * config.guess (i?86:*:*:*): Use uname -m if detection program fails. 28328 28329 * mpn/x86/README: Remove remarks on the now implemented MMX shifts. 28330 * mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1. 28331 28332 * gmp.texi (Installing MP): Corrections to target CPUs. 28333 28334 * version.c: Use VERSION from config.h, add copyright comment, 28335 restore "const" somehow lost. 28336 28337 * configure.in (a29k*-*-*): Fix directory name. 28338 28339 2000-03-22 Torbjorn Granlund <tege@swox.com> 28340 28341 * demos/pexpr.c (op_t): Add ROOT. 28342 (fns): Add ROOT. 28343 (mpz_eval_expr): Add ROOT. 28344 28345 * mpz/root.c: Handle roots of negative numbers. 28346 Fix other border cases. 28347 Fix rare memory leakage. 28348 28349 * errno.c: New file. 28350 28351 2000-03-21 Torbjorn Granlund <tege@swox.com> 28352 28353 * gmp.h (error number enum): New anonymous enum. 28354 (gmp_errno): New. 28355 28356 * gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0. 28357 28358 2000-03-20 Torbjorn Granlund <tege@swox.com> 28359 28360 * mpn/alpha/unicos.m4 (FLOAT64): New define. 28361 * mpn/alpha/default.m4 (FLOAT64): New define. 28362 * mpn/alpha/invert_limb.asm (C36): Use FLOAT64. 28363 28364 2000-03-21 Kevin Ryde <kevin@swox.se> 28365 28366 * mpn/x86/k6/diveby3.asm: Tiny speedup. 28367 28368 * acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro. 28369 * configure.in: Use it, set WANT_SHLDL_CL in config.m4. 28370 * mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using 28371 WANT_SHLDL_CL. 28372 * mpn/x86/k6/mmx/lshift.asm: Use shldl macro. 28373 * mpn/x86/k7/mmx/lshift.asm: Ditto. 28374 * mpn/x86/pentium/mmx/lshift.asm: Ditto. 28375 * mpn/x86/k6/mmx/rshift.asm: Use shrdl macro. 28376 * mpn/x86/k7/mmx/rshift.asm: Ditto. 28377 * mpn/x86/pentium/mmx/rshift.asm: Ditto. 28378 * mpn/x86/README.family: Add a note about this. 28379 28380 2000-03-20 Linus Nordberg <linus@swox.se> 28381 28382 * mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0 28383 correctly. 28384 28385 * configure.in: Fix detection of alpha flavour. 28386 Set compiler options for `sparcv8'. 28387 * configure: Regenerate. 28388 28389 * rand.c (__gmp_rand_scheme): Clean up some. Use slightly better 28390 multipliers. 28391 28392 * configure.in (AC_OUTPUT): Add tests/Makefile and 28393 tests/rand/Makefile. 28394 28395 * acinclude.m4 (AC_CANONICAL_BUILD): Define to 28396 `_AC_CANONICAL_BUILD' to deal with incompatibilities between 28397 Autoconf and Libtool. 28398 (AC_CHECK_TOOL_PREFIX): Likewise. 28399 28400 * Makefile.am (EXTRA_DIST): Add directory `tests'. 28401 28402 * mkinstalldirs: Update (Automake 2000-03-17). 28403 * ltconfig: Update (Libtool 2000-03-17). 28404 * ltmain.sh: Ditto. 28405 28406 * configure: Regenerate with new autoconf/-make/libtool suite. 28407 * aclocal.m4: Ditto. 28408 * config.in: Ditto. 28409 * all Makefile.in's: Ditto. 28410 28411 2000-03-20 Torbjorn Granlund <tege@swox.com> 28412 28413 * demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'. 28414 28415 * mpn/alpha/unicos.m4 (cvttqc): New define. 28416 * mpn/alpha/invert_limb.asm: Use new define for cvttqc. 28417 28418 2000-03-19 Kevin Ryde <kevin@swox.se> 28419 28420 * mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case. 28421 28422 * gmp.texi: Use @include version.texi. 28423 Use @email and @uref. 28424 (Installing MP): Rewrite for new configure. 28425 (Low-level Functions): Add mpn_divexact_by3. 28426 28427 * configure.in (--enable-alloca): New option. 28428 * acconfig.h (USE_STACK_ALLOC): For --disable-alloca. 28429 28430 2000-03-18 Kent Boortz <kent@swox.com> 28431 28432 * macos: New directory with macos port files. 28433 28434 2000-03-17 Torbjorn Granlund <tege@swox.com> 28435 28436 * gmp-impl.h (union ieee_double_extract): Check _CRAYMPP. 28437 28438 * mpn/asm-defs.m4 (invert_normalized_limb): Define. 28439 28440 * mpn/alpha: Translate `.s' files to `.asm'. 28441 28442 * configure: Regenerate. 28443 28444 * mpn/alpha/invert_limb.asm: Replace dash in file name with underscore. 28445 * configure.in: Corresponding change. 28446 28447 * configure.in: Assign special "path" for alphaev6. 28448 28449 * mpn/alpha/unicos.m4: New file. 28450 * configure.in (alpha*-cray-unicos*): [This part of the change 28451 commited 2000-03-13 by linus] 28452 * mpn/alpha/default.m4: New file. 28453 * configure.in (alpha*-*-*): Use it. 28454 28455 2000-03-17 Kevin Ryde <kevin@swox.se> 28456 28457 * mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for 28458 shift-by-1 case, significant speedup. 28459 * mpn/x86/pentium/README: Add shift-by-1 speed. 28460 28461 2000-03-16 Torbjorn Granlund <tege@swox.com> 28462 28463 * config.guess: Handle Cray T3D/E. 28464 28465 2000-03-15 Kevin Ryde <kevin@swox.se> 28466 28467 * mpn/generic/diveby3.c: New file. 28468 * mpn/x86/diveby3.asm: New file. 28469 * mpn/x86/k6/diveby3.asm: New file. 28470 * gmp.h (mpn_divexact_by3): Prototype and define. 28471 * mpn/asm-defs.m4: define_mpn(divexact_by3). 28472 * configure.in (gmp_mpn_functions): Add diveby3. 28473 28474 * mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes. 28475 28476 * configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)). 28477 * gmp-impl.h (ASSERT): Use them. 28478 28479 * mpn/x86/k7/mmx/lshift.asm: New file. 28480 * mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value 28481 handling, add some pictures. 28482 28483 2000-03-14 Torbjorn Granlund <tege@swox.com> 28484 28485 * mpn/sparc32/v8/mul_1.asm: Make PIC actually work. 28486 * mpn/sparc32/v8/addmul_1.asm: Likewise. 28487 28488 * mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if. 28489 * mpn/sparc32/v8/addmul_1.asm: Likewise. 28490 28491 * mpn/asm-defs.m4 (C): New define for comments. 28492 * mpn/sparc32: Start comments with `C'. 28493 28494 * config.guess: Remove `SunOS 6' handling. 28495 Recognize sun4m and sun4d architectures under old SunOS. 28496 28497 2000-03-14 Linus Nordberg <linus@swox.se> 28498 28499 * configure.in (gmp_srclinks): Set to list of links created by 28500 configure. 28501 * configure: Regenerate. 28502 28503 * Makefile.am (libgmp_la_LDFLAGS): Set version info. 28504 (DISTCLEANFILES): Include @gmp_srclinks@. 28505 * Makefile.in: Regenerate. 28506 28507 2000-03-13 Linus Nordberg <linus@swox.se> 28508 28509 * configure.in: Remove some changequote's by quoting the strings 28510 containing `[]'. 28511 Add support for `alpha*-cray-unicos*'. 28512 AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS. 28513 Conditionalize the assembler syntax checks. 28514 * configure: Regenerate. 28515 * config.in: Regenerate. 28516 28517 * acinclude.m4 (GMP_PROG_CCAS): Remove macro. 28518 * aclocal.m4: Regenerate. 28519 28520 2000-03-13 Kevin Ryde <kevin@swox.se> 28521 28522 * mpn/x86/p6/README: New file. 28523 28524 * mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster. 28525 28526 * mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and 28527 handling. 28528 28529 * configure.in: Separate mmx directories for each x86 flavour. 28530 * configure: Regenerate. 28531 28532 2000-03-12 Kevin Ryde <kevin@swox.se> 28533 28534 * mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from 28535 config.m4 so as to pad with nops not zeros on old gas. 28536 28537 * mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias 28538 for emms now). 28539 * mpn/x86/k7/mmx/copyi.asm: Ditto. 28540 * mpn/x86/k7/mmx/rshift.asm: Ditto. 28541 * mpn/x86/x86-defs.m4: Amend comments. 28542 28543 * mpn/x86/mod_1.asm: Add comments on speeds. 28544 28545 * mpn/x86/pentium/mmx/lshift.asm: New file. 28546 * mpn/x86/pentium/mmx/rshift.asm: New file. 28547 * mpn/x86/pentium/README: Add speeds of various routines. 28548 28549 2000-03-10 Linus Nordberg <linus@swox.se> 28550 28551 * configure.in: Reorganize. 28552 Use AC_CHECK_TOOL to find `ar'. 28553 Add post-includes `regmap.m4' and `aix.m4' for AIX targets. 28554 asm-syntax.h is not needed for PPC or sparc anymore. 28555 (powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64 28556 -qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc. Pass `-X 28557 64' to `ar' and `nm'. 28558 (pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if 28559 assembler is not MMX capable. 28560 (pentium[23]): Likewise. 28561 (athlon): Likewise. 28562 (k6*): Likewise. 28563 * configure: Regenerate. 28564 28565 * acinclude.m4 (GMP_PROG_CC_WORKS): New macro. 28566 (GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of 28567 AC_TRY_COMPILER. Make sure that the *first* working 32-bit 28568 compiler is used if no 64-bit compiler is found. 28569 (GMP_CHECK_ASM_MMX): New macro. 28570 * aclocal.m4: Regenerate. 28571 28572 * Makefile.in: Regenerate. (CC_TEST removed.) 28573 * mpf/Makefile.in: Likewise. 28574 * mpn/Makefile.in: Likewise. 28575 * mpq/Makefile.in: Likewise. 28576 * mpz/Makefile.in: Likewise. 28577 * mpf/tests/Makefile.in: Likewise. 28578 * mpq/tests/Makefile.in: Likewise. 28579 * mpz/tests/Makefile.in: Likewise. 28580 28581 * acconfig.h (_LONG_LONG_LIMB): Add. 28582 28583 * gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined. 28584 28585 2000-03-09 Kevin Ryde <kevin@swox.se> 28586 28587 * mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI. 28588 28589 * mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl. 28590 * mpn/x86/k7/mmx/copyi.asm: Ditto. 28591 * mpn/x86/k7/mul_basecase.asm: Ditto. 28592 28593 2000-03-07 Torbjorn Granlund <tege@swox.com> 28594 28595 * config.guess: Better recognize POWER/PowerPC processor type. 28596 28597 2000-03-07 Kevin Ryde <kevin@swox.se> 28598 28599 * mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h. 28600 28601 * mpn/asm-defs.m4: Add comments about SysV m4. 28602 (m4_log2): Don't use <<. 28603 (m4_lshift,m4_rshift): New macros. 28604 28605 2000-03-06 Torbjorn Granlund <tege@swox.com> 28606 28607 * mpn/powerpc32/regmap.m4: Map cr0 => `0', etc. 28608 28609 2000-03-06 Kevin Ryde <kevin@swox.se> 28610 28611 * mpn/tests/ref.c (refmpn_divexact_by3): New function. 28612 * mpn/tests/ref.h: Prototype. 28613 28614 * acconfig.h (WANT_ASSERT): New define. 28615 * configure.in (--enable-assert): Turn on WANT_ASSERT. 28616 * assert.c: New file. 28617 * Makefile.am: Add to build. 28618 * gmp-impl.h (ASSERT): New macro. 28619 (ASSERT_NOCARRY) Renamed from assert_nocarry. 28620 (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS. 28621 * mpn/tests/ref.c: Use ASSERT. 28622 * mpf/get_str.c: Use ASSERT_ALWAYS. 28623 * mpf/set_str.c: Remove old assert macro. 28624 28625 * mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro. 28626 * mpn/x86/p6/aorsmul_1.asm: Use cmov. 28627 28628 * mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code 28629 change, testb was still getting generated. 28630 * mpn/x86/rshift.S: Ditto. 28631 28632 2000-03-03 Torbjorn Granlund <tege@swox.com> 28633 28634 * longlong.h: Add IA-64 support. 28635 28636 * mpn/powerpc32: Misc cleanups. 28637 * mpn/powerpc32/aix.m4: New file (mainly by Linus). 28638 * mpn/powerpc64/aix.m4: New file (mainly by Linus). 28639 * mpn/powerpc64: Translate `.S' files to `.asm'. 28640 28641 * configure.in: Fix tyops. 28642 * configure: Regenerate. 28643 28644 2000-03-02 Torbjorn Granlund <tege@swox.com> 28645 28646 * mpn/powerpc32/regmap.m4: New file. 28647 * mpn/powerpc32: Translate `.S' files to `.asm'. 28648 * configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets 28649 except some weird ones. 28650 28651 2000-03-03 Kevin Ryde <kevin@swox.se> 28652 28653 * mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in 28654 filladapt. 28655 28656 * mpn/x86/pentium/sqr_basecase.asm: New file. 28657 * mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update. 28658 28659 * configure.in: Add --enable-assert, enable k6 logops functions. 28660 28661 * mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as. 28662 * mpn/x86/k6/mmx/copyd.asm: Ditto. 28663 * mpn/x86/README.family: Add a note on this. 28664 28665 2000-03-02 Kevin Ryde <kevin@swox.se> 28666 28667 * mpn/x86/k6/aors_n.asm: Don't use stosl. 28668 * mpn/x86/copyi.asm: Use cld to clear direction flag. 28669 * mpn/x86/divrem_1.asm: Ditto. 28670 * mpn/x86/README.family: Add a note on this. 28671 28672 * mpn/x86/k6/mmx/copyi.asm: Rewrite. 28673 * mpn/x86/k6/mmx/copyd.asm: New file. 28674 * mpn/x86/k6/README: Update, and small amendments. 28675 28676 * mpn/x86/x86-defs.m4 (Zdisp): New macro. 28677 * mpn/asm-defs.m4 (m4_stringequal_p): New macro. 28678 28679 * mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements. 28680 * mpn/x86/k6/aorsmul_1.asm: Ditto. 28681 * mpn/x86/k6/mul_1.asm: Ditto. 28682 * mpn/x86/k6/mul_basecase.asm: Ditto. 28683 * mpn/x86/k7/aors_n.asm: Ditto. 28684 * mpn/x86/k7/aorsmul_1.asm: Ditto. 28685 * mpn/x86/k7/mul_1.asm: Ditto. 28686 * mpn/x86/k7/mul_basecase.asm: Ditto. 28687 * mpn/x86/README.family: Add a note on this. 28688 28689 2000-02-27 Kevin Ryde <kevin@swox.se> 28690 28691 * mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc 28692 2.7.2.3 i386 register handling bug. 28693 28694 * mpn/x86/k6/aors_n.asm: Rewrite. 28695 * mpn/x86/k6/mmx/lshift.asm: Rewrite. 28696 * mpn/x86/k6/mmx/rshift.asm: Rewrite. 28697 * mpn/x86/k6/README: Update. 28698 28699 * mpn/x86/k7/mmx/copyd.asm: Support size==0. 28700 * mpn/x86/k7/mmx/copyi.asm: Ditto. 28701 * mpn/x86/k6/mmx/copyi.asm: Ditto. 28702 * gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and 28703 MPN_COPY_DECR. 28704 * configure.in: Enable x86 copyi, copyd; add k6 com_n. 28705 28706 2000-02-25 Torbjorn Granlund <tege@swox.com> 28707 28708 * demos/pexpr.c (power): Move factorial handing code from `factor' 28709 to `power'. 28710 28711 * demos/factorize.c (factor_using_pollard_rho): Move resetting of `c' 28712 to before checking for a non-zero gcd. 28713 28714 2000-02-25 Kevin Ryde <kevin@swox.se> 28715 28716 * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus. 28717 * mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE. 28718 * mpn/x86/k6/aorsmul_1.asm: Ditto. 28719 * mpn/x86/k7/aors_n.asm: Ditto. 28720 * mpn/x86/k7/aorsmul_1.asm: Ditto. 28721 * mpn/x86/p6/aorsmul_1.asm: Ditto. 28722 28723 * mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0. 28724 28725 * gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n, 28726 mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here 28727 from gmp.h. Use HAVE_NATIVE_mpn_* to make these functions or 28728 inlines. 28729 28730 * gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h. 28731 * gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available. 28732 * gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available. 28733 28734 * mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory. 28735 * mpn/x86/k6/mmx/copyi.asm: Ditto. 28736 * mpn/x86/k6/mmx/lshift.asm: Ditto. 28737 * mpn/x86/k6/mmx/rshift.asm: Ditto. 28738 * mpn/x86/k7/mmx/rshift.asm: Ditto. 28739 * mpn/x86/k6/mmx/logops_n.asm: New file. 28740 * configure.in (k6*-*-*): Add logops_n.asm. 28741 * mpn/x86/k6/README: Update. 28742 28743 * mpn/x86/k7/mmx/copyi.asm: New file. 28744 * mpn/x86/k7/mmx/copyd.asm: New file. 28745 * mpn/x86/k7/README: Update. 28746 28747 2000-02-24 Kevin Ryde <kevin@swox.se> 28748 28749 * mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available. 28750 * mpn/x86/x86-defs.m4 (FRAME_popl): New macro. 28751 28752 * Makefile.am: Add info_TEXINFOS = gmp.texi 28753 28754 * mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0, 28755 conditionalize loop versus decl/jnz. 28756 * mpn/x86/mod_1.asm: Ditto. 28757 * mpn/x86/divmod_1.asm: Removed. 28758 * gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed. 28759 * mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0. 28760 28761 * mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement 28762 expression problem. 28763 * mpn/x86/k6/aorsmul_1.asm: Ditto. 28764 * mpn/x86/k6/mul_1.asm: Ditto. 28765 * mpn/x86/k6/mul_basecase.asm: Ditto 28766 * mpn/x86/k7/aors_n.asm: Ditto. 28767 * mpn/x86/k7/aorsmul_1.asm: Ditto. 28768 * mpn/x86/k7/mul_1.asm: Ditto. 28769 * mpn/x86/k7/mul_basecase.asm: Ditto. 28770 * mpn/x86/k7/rshift.asm: Ditto. 28771 * mpn/x86/p6/aorsmul_1.asm: Ditto. 28772 * mpn/x86/README.family: Describe problem. 28773 28774 2000-02-24 Linus Nordberg <linus@swox.se> 28775 28776 * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to 28777 testcase to avoid nm failure. Try nm before piping to grep. 28778 28779 * acconfig.h: Undef HAVE_NATIVE_func for every mpn function found 28780 in gmp.h. 28781 28782 * configure.in: Invoke AC_CONFIG_HEADERS. 28783 Don't invoke AM_CONFIG_HEADER; it makes autoconf confused. 28784 Dig out entry points declared in assembly code and AC_DEFINE proper 28785 HAVE_NATIVE_func. 28786 28787 * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro. 28788 28789 * mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE. 28790 * mpn/x86/k6/aors_n.asm: Likewise. 28791 28792 * Makefile.am (EXTRA_DIST): Add config.in; needed when we don't 28793 use AM_CONFIG_HEADER in configure.in. 28794 28795 * mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and 28796 gmp-mparam.h. 28797 * mpf/Makefile.am: Likewise. 28798 * mpq/Makefile.am: Likewise. 28799 * mpz/Makefile.am: Likewise. 28800 28801 * mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and 28802 gmp-mparam.h. 28803 * mpq/tests/Makefile.am: Likewise. 28804 * mpz/tests/Makefile.am: Likewise. 28805 28806 * configure: Regenerate. 28807 * aclocal.m4: Regenerate. 28808 * config.in: Regenerate. 28809 * Makefile.in: Regenerate. 28810 * mpf/Makefile.in: Regenerate. 28811 * mpn/Makefile.in: Regenerate. 28812 * mpq/Makefile.in: Regenerate. 28813 * mpz/Makefile.in: Regenerate. 28814 * mpf/tests/Makefile.in: Regenerate. 28815 * mpq/tests/Makefile.in: Regenerate. 28816 * mpz/tests/Makefile.in: Regenerate. 28817 28818 2000-02-23 Kevin Ryde <kevin@swox.se> 28819 28820 * mpn/x86/addmul_1.S: Amend comments, this code no longer used by 28821 PentiumPro. 28822 * mpn/x86/submul_1.S: Ditto. 28823 28824 * mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed. 28825 28826 * mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and 28827 .size for ELF. Rename #define size to n to avoid .size. 28828 * mpn/x86/lshift.S: Ditto. 28829 * mpn/x86/mul_1.S: Ditto. 28830 * mpn/x86/mul_basecase.S: Ditto. 28831 * mpn/x86/rshift.S: Ditto. 28832 * mpn/x86/submul_1.S: Ditto. 28833 * mpn/x86/udiv.S: Ditto. 28834 * mpn/x86/umul.S: Ditto. 28835 * mpn/x86/pentium/add_n.S: Ditto. 28836 * mpn/x86/pentium/addmul_1.S: Ditto. 28837 * mpn/x86/pentium/lshift.S: Ditto. 28838 * mpn/x86/pentium/mul_1.S: Ditto. 28839 * mpn/x86/pentium/mul_basecase.S: Ditto. 28840 * mpn/x86/pentium/rshift.S: Ditto. 28841 * mpn/x86/pentium/sub_n.S: Ditto. 28842 * mpn/x86/pentium/submul_1.S: Ditto. 28843 28844 2000-02-22 Linus Nordberg <linus@swox.se> 28845 28846 * acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for 28847 post-defines. 28848 (GMP_FINISH): Ditto. 28849 (GMP_DEFINE): Add third optional argument specifying location in 28850 outfile. 28851 (GMP_DEFINE_RAW): New macro. 28852 * aclocal.m4: Regenerate. 28853 28854 * configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using 28855 GMP_DEFINE_RAW. 28856 * configure: Regenerate. 28857 28858 * mpz/tests/Makefile.am: New test t-root. 28859 * mpz/tests/Makefile.in: Regenerate. 28860 28861 2000-02-22 Torbjorn Granlund <tege@swox.com> 28862 28863 * mpz/root.c: Complete rewrite; still primitive, but at least correct. 28864 * mpz/tests/t-root.c: New test. 28865 28866 2000-02-22 Kevin Ryde <kevin@swox.se> 28867 28868 * mpn/x86/k7/mul_basecase.asm: New file. 28869 * mpn/x86/k7/README: Add mpn_mul_basecase speed. 28870 * mpn/x86/k7/gmp-mparam.h: New file. 28871 28872 * mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros. 28873 * mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro. 28874 28875 * mpn/x86/k6/aorsmul_1.asm: New file. 28876 * mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version). 28877 * mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version). 28878 28879 * mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and 28880 OPERATION_submul_1. 28881 * mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n. 28882 * configure.in: Declare multi-function files for k6 and p6. 28883 28884 * configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4. 28885 * mpn/asm-defs.m4 (define_not_for_expansion): New macro. 28886 28887 * mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from 28888 mpn/generic/divrem_1.c. 28889 * mpn/generic/divrem_1.c: Ditto. 28890 * configure.in (gmp_mpn_functions): Ditto. 28891 28892 2000-02-21 Torbjorn Granlund <tege@swox.com> 28893 28894 * gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly 28895 written. 28896 28897 2000-02-21 Linus Nordberg <linus@swox.se> 28898 28899 * configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4. 28900 * configure: Regenerate. 28901 28902 2000-02-21 Linus Nordberg <linus@swox.se> 28903 28904 * mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL --> 28905 OPERATION_addmul_1. Change OPERATION_SUBMUL --> 28906 OPERATION_submul_1. 28907 28908 * mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n. 28909 Change OPERATION_SUB --> OPERATION_sub_n. 28910 28911 * mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors. 28912 * mpn/Makefile.in: Regenerate. 28913 28914 * configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn. Link 28915 multi-function files to mpn/<function>.asm and remove function 28916 name from `gmp_mpn_functions'. 28917 * configure: Regenerate. 28918 28919 * acinclude.m4 (GMP_FINISH): Tell user what we're doing. 28920 * aclocal.m4: Regenerate. 28921 28922 2000-02-21 Kevin Ryde <kevin@swox.se> 28923 28924 * gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and 28925 __gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes. 28926 * mpn/x86/mul_basecase.S: Ditto. 28927 * mpn/x86/pentium/mul_basecase.S: Ditto. 28928 28929 * configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too. 28930 28931 2000-02-20 Kevin Ryde <kevin@swox.se> 28932 28933 * acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus. 28934 * mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a 28935 string, change by Linus. 28936 * mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string. 28937 28938 * mpn/x86/k6/gmp-mparam.h: New file. 28939 * mpn/asm-defs.m4 (m4_warning): New macro. 28940 28941 * mpn/x86/README: Amendments per new code and directories. 28942 * mpn/x86/README.family: New file. 28943 * mpn/x86/k6/README: New file. 28944 * mpn/x86/k7/README: New file. 28945 28946 * mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to 28947 mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase. 28948 * mpn/generic/mul_basecase.c: Ditto. 28949 * mpn/generic/sqr_basecase.c: Ditto. 28950 * mpn/generic/mul.c: Ditto. 28951 28952 2000-02-19 Linus Nordberg <linus@swox.se> 28953 28954 * configure.in: Don't try to symlink more than one multi-func 28955 file. 28956 * configure: Regenerate. 28957 28958 2000-02-18 Linus Nordberg <linus@swox.se> 28959 28960 * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE 28961 `GSYM_PREFIX'. Run ACTIONs even when value is found in cache. 28962 (GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'. Run ACTIONs even 28963 when value is found in cache. 28964 * aclocal.m4: Regenerate. 28965 28966 * configure.in: Don't define GSYM_PREFIX or ALIGN. 28967 Add mechanism for multi-function files. 28968 * configure: Regenerate. 28969 28970 2000-02-18 Kevin Ryde <kevin@swox.se> 28971 28972 * configure.in (gmp_m4postinc): Enable x86-defs.m4. 28973 * mpn/x86/k7/mul_1.asm: Fix include. 28974 * mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version). 28975 * mpn/x86/k6/mul_basecase.asm: New file. 28976 * mpn/x86/k6/sqr_basecase.asm: New file. 28977 * mpn/x86/k6/com_n.asm: New file. 28978 * mpn/x86/k6/copyi.asm: New file. 28979 * gmp.texi (Low-level Functions): Clarify mpn overlaps permitted. 28980 * gmp-impl.h (MPN_OVERLAP_P): New macro. 28981 * gmp-impl.h (assert_nocarry): New macro. 28982 * mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c. 28983 * mpn/tests/ref.h: New file. 28984 28985 2000-02-17 Linus Nordberg <linus@swox.se> 28986 28987 * Makefile.am (dist-hook): Don't include any emacs backup files 28988 (*.~*) in dist. 28989 * Makefile.in: Regenerate. 28990 28991 2000-02-17 Torbjorn Granlund <tege@swox.com> 28992 28993 * mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of 28994 getpc function. 28995 * mpn/sparc32/v9/addmul_1.asm: Likewise. 28996 * mpn/sparc32/v9/submul_1.asm: Likewise. 28997 28998 2000-02-17 Kevin Ryde <kevin@swox.se> 28999 29000 * gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n, 29001 mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n, 29002 mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase, 29003 mpn_xor_n, mpn_xorn_n. 29004 29005 * mpn/asm-defs.m4: Many additions making up initial version. 29006 * mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX'). 29007 * mpn/x86/x86-defs.m4: New file. 29008 * mpn/x86/k6/aors_n.asm: New file. 29009 * mpn/x86/k6/divmod_1.asm: New file. 29010 * mpn/x86/k6/divrem_1.asm: New file. 29011 * mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version). 29012 * mpn/x86/k6/lshift.asm: New file. 29013 * mpn/x86/k6/mod_1.asm: New file. 29014 * mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version). 29015 * mpn/x86/k6/mul_1.asm: New file. 29016 * mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version). 29017 * mpn/x86/k6/rshift.asm: New file. 29018 * mpn/x86/k7/aors_n.asm: New file. 29019 * mpn/x86/k7/aorsmul_1.asm: New file. 29020 * mpn/x86/k7/mul_1.asm: New file. 29021 * mpn/x86/k7/rshift.asm: New file. 29022 * mpn/x86/p6/aorsmul_1.asm: New file. 29023 * mpn/x86/copyi.asm: New file. 29024 * mpn/x86/copyd.asm: New file. 29025 * mpn/lisp/gmpasm-mode.el: New file. 29026 29027 2000-02-16 Torbjorn Granlund <tege@swox.com> 29028 29029 * mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC. 29030 * mpn/sparc32/v9/addmul_1.asm: Likewise. 29031 * mpn/sparc32/v9/submul_1.asm: Likewise. 29032 * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. 29033 * mpn/sparc32/udiv_fp.asm: Likewise. 29034 29035 2000-02-16 Linus Nordberg <linus@swox.se> 29036 29037 * configure.in: Add mechanism for including target specific 29038 m4-files in config.m4. 29039 * configure: Regenerate. 29040 29041 * acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except 29042 labels) with a tab character. HP-UX demands it. 29043 (GMP_CHECK_ASM_SIZE): Ditto. 29044 (GMP_CHECK_ASM_LSYM_PREFIX): Ditto. 29045 (GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX. 29046 (GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'. 29047 * aclocal.m4: Regenerate. 29048 29049 2000-02-16 Linus Nordberg <linus@swox.se> 29050 29051 * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as 29052 the prefix only, no argument. 29053 * aclocal.m4: Regenerate. 29054 * configure: Regenerate. 29055 29056 * mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX. 29057 29058 2000-02-15 Linus Nordberg <linus@swox.se> 29059 29060 * acinclude.m4: Prefix all temporary shell variables with 29061 `gmp_tmp_'. 29062 (GMP_PROG_CC_FIND): Use defaults if no arguments are passed. 29063 Quote use of arguments. 29064 (GMP_PROG_CCAS): New macro. 29065 (GMP_INIT): New macro. 29066 (GMP_FINISH): New macro. 29067 (GMP_INCLUDE): New macro. 29068 (GMP_SINCLUDE): New macro. 29069 (GMP_DEFINE): New macro. 29070 (GMP_CHECK_ASM_LABEL_SUFFIX): New macro. 29071 (GMP_CHECK_ASM_TEXT): New macro. 29072 (GMP_CHECK_ASM_DATA): New macro. 29073 (GMP_CHECK_ASM_GLOBL): New macro. 29074 (GMP_CHECK_ASM_TYPE): New macro. 29075 (GMP_CHECK_ASM_SIZE): New macro. 29076 (GMP_CHECK_ASM_LSYM_PREFIX): New macro. 29077 (GMP_CHECK_ASM_W32): New macro. 29078 * aclocal.m4: Regenerate. 29079 29080 * configure.in: Find m4 and nm for target. 29081 Use new macros to create config.m4. 29082 Prefix all temporary shell variables with `tmp_'. 29083 Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler. 29084 * configure: Regenerate. 29085 29086 * Makefile.am (dist-hook): *Really* remove all CVS dirs in 29087 dist. 29088 * Makefile.in: Regenerate. 29089 29090 * mpn/Makefile.am: Add target for building .lo and .o from 29091 .asm. 29092 Pass -DPIC to preprocessor (CPP/m4) when building .lo. 29093 Build .o a second time for target .lo, without -DPIC to 29094 preprocessor. 29095 (SUFFIX): Add `.asm'. 29096 (EXTRA_DIST): Add asm-defs.m4. 29097 * mpn/Makefile.in: Regenerate. 29098 29099 * mpf/Makefile.in: Regenerate. 29100 * mpf/tests/Makefile.in: Regenerate. 29101 * mpq/Makefile.in: Regenerate. 29102 * mpq/tests/Makefile.in: Regenerate. 29103 * mpz/Makefile.in: Regenerate. 29104 * mpz/tests/Makefile.in: Regenerate. 29105 29106 2000-02-15 Torbjorn Granlund <tege@swox.com> 29107 29108 * mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'. 29109 * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. 29110 * mpn/sparc32/v9/addmul_1.asm: Likewise. 29111 * mpn/sparc32/v9/submul_1.asm: Likewise. 29112 * mpn/sparc32/v9/mul_1.asm: Likewise. 29113 29114 * mpn/sparc32/add_n.asm: Rename `size' -> `n'. 29115 * mpn/sparc32/sub_n.asm: Likewise. 29116 29117 * sparc32: Rename `.s' and `.S' files to `.asm'. 29118 * sparc64: Rename `.s' and `.S' files to `.asm'. 29119 29120 2000-02-11 Torbjorn Granlund <tege@swox.com> 29121 29122 * config.sub: Adopt to new config.guess sparc naming conventions. 29123 29124 * config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'. 29125 * config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and 29126 change `sparc8' to `sparcv8'. 29127 29128 * mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE. 29129 * mpn/x86/sub_n.S: Likewise. 29130 29131 * mpn/x86/syntax.h (PROLOGUE): New name for PROLOG. 29132 * mpn/x86/syntax.h (EPILOGUE): New name for EPILOG. 29133 29134 2000-02-11 Linus Nordberg <linus@swox.se> 29135 29136 * configure.in: Better path for 64-bit sparc without 64-bit cc. 29137 Change sparc8 --> sparcv8. 29138 Change sparc9 --> sparcv9. 29139 * configure: Regenerate. 29140 29141 2000-02-10 Linus Nordberg <linus@swox.se> 29142 29143 * configure.in: Use Autoconf. 29144 * Makefile.am: New file. 29145 29146 * AUTHORS: New file. 29147 * COPYING: New file. 29148 * acinclude.m4: New file. 29149 * acconfig.h: New file. 29150 29151 * configure: Generate. 29152 * Makefile.in: Generate. 29153 * aclocal.m4: Generate. 29154 * config.in: Generate. 29155 29156 * install.sh: Remove. 29157 * install-sh: New file from Automake. 29158 * missing: New file from Automake. 29159 * ltconfig: New file from Libtool. 29160 * ltmain.sh: New file from Libtool. 29161 29162 * mpf/Makefile.am: New file. 29163 * mpf/Makefile.in: Generate. 29164 * mpf/configure.in: Remove. 29165 * mpf/tests/Makefile.am: New file. 29166 * mpf/tests/Makefile.in: Generate. 29167 * mpf/tests/configure.in: Remove. 29168 29169 * mpn/Makefile.am: New file. 29170 * mpn/Makefile.in: Generate. 29171 * mpn/configure.in: Remove. 29172 29173 * mpq/Makefile.am: New file. 29174 * mpq/Makefile.in: Generate. 29175 * mpq/configure.in: Remove. 29176 * mpq/tests/Makefile.am: New file. 29177 * mpq/tests/Makefile.in: Generate. 29178 * mpq/tests/configure.in: Remove. 29179 29180 * mpz/Makefile.am: New file. 29181 * mpz/Makefile.in: Generate. 29182 * mpz/configure.in: Remove. 29183 * mpz/tests/Makefile.am: New file. 29184 * mpz/tests/Makefile.in: Generate. 29185 * mpz/tests/configure.in: Remove. 29186 29187 2000-02-10 Torbjorn Granlund <tege@swox.com> 29188 29189 * mpn/x86/add_n.S: Don't use label L0 twice. 29190 * mpn/x86/sub_n.S: Likewise. 29191 29192 2000-01-20 Linus Nordberg <linus@swox.se> 29193 29194 * demos/pexpr.c: Don't use setup_error_handler() in windoze. 29195 29196 2000-01-19 Torbjorn Granlund <tege@swox.com> 29197 29198 * demos/pexpr.c (sigaltstack): #define to sigstack for AIX. 29199 (setup_error_handler): Don't write to ss_size and ss_flags 29200 on AIX. 29201 29202 2000-01-11 Torbjorn Granlund <tege@swox.com> 29203 29204 * mpn/configure.in (hppa2.0*-*-*): Move assignment of 29205 target_makefile_frag to where it belongs. 29206 29207 1999-12-21 Torbjorn Granlund <tege@swox.com> 29208 29209 * longlong.h (v9 umul_ppmm): New #define. 29210 (v9 udiv_qrnnd): New #define. 29211 29212 1999-12-14 Torbjorn Granlund <tege@swox.com> 29213 29214 * mpn/generic/divmod_1.c: Use invert_limb. 29215 * mpn/generic/mod_1.c: Use invert_limb. 29216 29217 * gmp-impl.h (invert_limb): Put definition here. 29218 * mpn/generic/divrem.c (invert_limb): Delete definition. 29219 * mpn/generic/divrem_2.c (invert_limb): Delete definition. 29220 29221 * gmp.h (mpn_divrem): Inhibit for non-gcc. 29222 But declare (undo 1999-11-22 change). 29223 29224 * gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB. 29225 29226 * longlong.h: Move 64-bit hppa code out of __GNUC__ conditional. 29227 29228 * stack-alloc.c (HSIZ): New #define. 29229 (__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack). 29230 29231 1999-12-10 Torbjorn Granlund <tege@swox.com> 29232 29233 * config.sub: Clean up handling of x86 CPUs: Properly recognize 29234 Amd CPUs as unique entities. Use manufacturer's names of 29235 processors ("pentium", etc); still match ambiguous names like 29236 "i586", "i686", "p6" but be conservative in interpreting them. 29237 29238 * configure.in: Recognize x86 CPU types known by config.guess. 29239 * mpn/configure.in: Likewise. Add x86/mmx path component as 29240 appropriate. 29241 (athlon-*-*): Fix typo. 29242 29243 * config.guess: Update x86 recog code to initially match 29244 more than just i386. 29245 Call K6-2 and K6-III for "k62" and "k63" respectively. 29246 29247 * config.guess: Recognize x86 CPU types. 29248 Update code for FreeBSD, NetBSD, OpenBSD, Linux. 29249 29250 1999-12-08 Torbjorn Granlund <tege@swox.com> 29251 29252 * mpf/pow_ui.c: Avoid final squaring in loop. 29253 29254 1999-12-07 Torbjorn Granlund <tege@swox.com> 29255 29256 * gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'. 29257 (udiv_qrnnd_preinv2norm): Likewise. 29258 From Kevin Ryde: 29259 (HAVE_ALLOCA): #define also if defined (alloca). 29260 29261 1999-12-04 Torbjorn Granlund <tege@swox.com> 29262 29263 * mpn/tests/add_n.c: Set OPS from CLOCK. 29264 * mpn/tests/sub_n.c: Likewise. 29265 * mpn/tests/mul_1.c: Likewise. 29266 * mpn/tests/addmul_1.c: Likewise. 29267 * mpn/tests/submul_1.c: Likewise. 29268 29269 * mpn/tests/lshift.c: Update from add_n.c. 29270 * mpn/tests/rshift.c: Likewise. 29271 29272 1999-12-03 Torbjorn Granlund <tege@swox.com> 29273 29274 * mpn/powerpc64/copy.S: New file. 29275 29276 1999-12-02 Torbjorn Granlund <tege@swox.com> 29277 29278 * mpn/sparc64/copy.s: New file. 29279 29280 * mpn/tests/copy.c: New file. 29281 29282 * mpn/configure.in: Recognize more Amd CPUs; Set special paths for 29283 k7 CPU. 29284 29285 * configure.in: Recognize Amd x86 CPUs. 29286 29287 * mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before 29288 writing to res->_mp_size. 29289 29290 * mpn/powerpc64/*.S: Clean up assembly syntax, add function headers. 29291 * mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define. 29292 (KARATSUBA_SQR_THRESHOLD): #define. 29293 29294 * mpn/tests/add_n.c (main): Only print test number if TIMES==1 29295 and not printing. 29296 (main): Don't run reference code if NOCHECK. 29297 * mpn/tests/sub_n.c: Likewise. 29298 * mpn/tests/mul_1.c: Likewise. 29299 * mpn/tests/addmul_1.c: Likewise. 29300 * mpn/tests/submul_1.c: Likewise. 29301 29302 * mpn/tests/lshift.c: (main): Only print test number if TIMES==1 29303 and not printing. 29304 * mpn/tests/rshift.c: Likewise. 29305 29306 1999-11-22 Torbjorn Granlund <tege@swox.com> 29307 29308 * gmp.h (mpz_init_set_str): Declare using __gmp_const. 29309 (mpz_set_str): Likewise. 29310 (mpf_init_set_str): Likewise. 29311 (mpf_set_str): Likewise. 29312 (mpn_set_str): Likewise. 29313 (__gmp_0): Likewise. 29314 (mpn_divrem): Remove separate declaration; it's defined later in 29315 this file. 29316 29317 * gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in 29318 expressions involving more than one term, to handle Sun's compiler 29319 that most helpfully sets __STDC__ to 0. 29320 * gmp-impl.h: Likewise. 29321 * longlong.h: Likewise. 29322 29323 1999-11-21 Torbjorn Granlund <tege@swox.com> 29324 29325 * mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. 29326 (KARATSUBA_SQR_THRESHOLD): #define. 29327 29328 * mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr. 29329 * mpn/sparc64/rshift.s: Likewise. 29330 29331 * mpn/sparc64/addmul_1.s: Propagate carry properly. 29332 * mpn/sparc64/submul_1.s: Likewise. 29333 29334 * mpn/sparc64/sub_n.s: Rewrite. 29335 29336 * mpn/sparc64/sub_n.s: Get operand order for main subcc right 29337 (before scrapping this code for new code). 29338 29339 1999-11-20 Torbjorn Granlund <tege@swox.com> 29340 29341 * mpn/sparc64/add_n.s: Rewrite. 29342 29343 1999-11-17 Torbjorn Granlund <tege@swox.com> 29344 29345 * mpn/x86/syntax.h (PROLOG): New #define. 29346 (EPILOG): New #define. 29347 29348 * gmp.h (mpn_addsub_n): Declare. 29349 * gmp.h (mpn_add_nc): Declare. 29350 * gmp.h (mpn_sub_nc): Declare. 29351 * mpn/powerpc64/addsub_n.S: New file. 29352 29353 1999-11-17 Torbjorn Granlund <tege@swox.com> 29354 29355 * mpn/alpha/gmp-mparam.h 29356 (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef. 29357 (KARATSUBA_SQR_THRESHOLD): Likewise. 29358 29359 1999-11-14 Torbjorn Granlund <tege@swox.com> 29360 29361 * mpn/x86/mul_1.S: Unroll and optimize for P6 and K7. 29362 29363 1999-11-09 Torbjorn Granlund <tege@swox.com> 29364 29365 * mpn/x86/p6/gmp-mparam.h 29366 (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef. 29367 (KARATSUBA_SQR_THRESHOLD): Likewise. 29368 29369 1999-11-05 Torbjorn Granlund <tege@swox.com> 29370 29371 * mpn/generic/addsub_n.c: New file. 29372 29373 1999-11-02 Torbjorn Granlund <tege@swox.com> 29374 29375 * config.guess: Handle alpha:FreeBSD with alpha:NetBSD. 29376 29377 * configure.in (vax*-*-*): New case. 29378 * config/mt-vax: New file. 29379 * mpn/vax/add_n.s: Rewrite. 29380 * mpn/vax/sub_n.s: Rewrite. 29381 29382 1999-10-31 Torbjorn Granlund <tege@swox.com> 29383 29384 * mpn/vax/rshift.s: New file. 29385 * mpn/vax/lshift.s: New file. 29386 29387 1999-10-29 Torbjorn Granlund <tege@swox.com> 29388 29389 * config.sub: Handle k5 and k6. 29390 * mpn/configure.in: Recognize k6. 29391 29392 * mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines. 29393 (main): Tighten error bounds to 14 digits. 29394 29395 * longlong.h (default umul_ppmm, when smul_ppmm exists): 29396 Rename __m0 => __xm0, __m1 => __xm1. 29397 (default smul_ppmm): Likewise. 29398 29399 1999-10-11 Torbjorn Granlund <tege@swox.com> 29400 29401 * config.guess: Reverse the test for POWER vs PowerPC. 29402 * config.guess (sun4m:SunOS:5.*:*): New case. 29403 * config.guess (sun4u:SunOS:5.*:*): New case. 29404 29405 1999-09-29 Torbjorn Granlund <tege@swox.com> 29406 29407 * mpn/generic/divrem_2.c: Clean up comments. 29408 29409 1999-09-23 Torbjorn Granlund <tege@swox.com> 29410 29411 * mpz/tests/Makefile.in: Use move-if-change when generating binaries. 29412 * mpf/tests/Makefile.in: Likewise. 29413 * mpq/tests/Makefile.in: Likewise. 29414 * mpz/tests/move-if-change: New file. 29415 * mpf/tests/move-if-change: New file. 29416 * mpq/tests/move-if-change: New file. 29417 29418 * gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c). 29419 (mpn_decr_u): New macro. 29420 29421 * mpn/generic/mul_n.c (mpn_incr): Delete. 29422 * mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u. 29423 * mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of 29424 mpn_add_1 and mpn_sub_1. 29425 * mpn/generic/sqrtrem.c: Likewise. 29426 * mpz/cdiv_q_ui.c: Likewise. 29427 * mpz/cdiv_qr_ui.c: Likewise. 29428 * mpz/fdiv_q_ui.c: Likewise. 29429 * mpz/fdiv_qr_ui.c: Likewise. 29430 29431 * mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18 29432 bits. 29433 29434 1999-07-27 Torbjorn Granlund <tege@swox.com> 29435 29436 * mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function. 29437 29438 * mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'. 29439 * mpn/Makefile.in: Compile divrem_2.c. 29440 * make.bat: Compile divrem_2.c. 29441 * mpn/configure.in (functions): Add divrem_2. 29442 * gmp.h: Declare mpn_divrem_2. 29443 29444 * mpn/generic/divrem.c: Delete special cases, handle just divisors 29445 of more than 2 limbs. 29446 * gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate. 29447 29448 * mpn/generic/divrem.c: Rework variable usage for better register 29449 allocation. 29450 29451 1999-07-26 Torbjorn Granlund <tege@swox.com> 29452 29453 * mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed. 29454 * mpn/alpha/ev5/sub_n.s: Likewise. 29455 29456 1999-07-21 Torbjorn Granlund <tege@swox.com> 29457 29458 * longlong.h (alpha): Define umul_ppmm for cc. 29459 29460 * gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is 29461 defined. 29462 29463 1999-07-15 Torbjorn Granlund <tege@swox.com> 29464 29465 * longlong.h (powerpc64 count_leading_zeros): Fix typo. 29466 (powerpc64 add_ssaaaa): Fix typos. 29467 (powerpc64 sub_ddmmss): Fix typos. 29468 29469 1999-07-14 Torbjorn Granlund <tege@swox.com> 29470 29471 * mpz/tests/Makefile.in: Pass XCFLAGS when linking. 29472 * mpf/tests/Makefile.in: Likewise. 29473 * mpq/tests/Makefile.in: Likewise. 29474 * mpn/Makefile.in (.S.o): Pass XCFLAGS. 29475 29476 * longlong.h: Add support for 64-bit PowerPC. 29477 * config.sub: Handle "powerpc64". 29478 * configure.in: Likewise. 29479 * mpn/configure.in: Suppress use of config/t-ppc-aix for now, 29480 it seems compiler passes proper options. 29481 * mpn/powerpc64/*.S: New files. 29482 29483 * Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)". 29484 29485 1999-07-07 Torbjorn Granlund <tege@swox.com> 29486 29487 * demos/pexpr.c (factor): Change alloca call to a malloc/free pair. 29488 29489 * mpn/powerpc32/syntax.h: Add #define's for crN. 29490 29491 * gmp.h (gmp_rand_algorithm): Remove spurious `,'. 29492 29493 1999-07-05 Torbjorn Granlund <tege@swox.com> 29494 29495 * mpn/generic/divrem_1.c: Normalize divisor when needed. 29496 29497 1999-07-02 Torbjorn Granlund <tege@swox.com> 29498 29499 * mpn/configure.in (powerpc*-apple-mach): New configuration. 29500 * mpn/powerpc32/*: Add support for apple-macho syntax. 29501 * mpn/powerpc32/syntax.h: New file. 29502 * gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion 29503 of GCC. 29504 29505 1999-05-26 Linus Nordberg <linus@swox.se> 29506 29507 * rand.c (gmp_rand_init): Fix typo. 29508 29509 * mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs, 29510 to keep track of how many rounds to do in loop. Clean up 29511 temporary allocation. Update `seedsize' inside loop. Mask off 29512 the correct number of bits from final result. Init `mcopyp' even 29513 when not normalizing `m'. 29514 29515 * randlc.c (gmp_rand_init_lc): Fix typo (don't call 29516 mpz_init_set_ui()). 29517 29518 * mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when 29519 reallocating. 29520 29521 * tests/rand/Makefile (test, bigtest): Add 33-bit tests. 29522 29523 * tests/rand/gen.c (main): Set precision of variable passed to 29524 mpf_urandomb(). Add option `-p'. 29525 29526 1999-05-25 Linus Nordberg <linus@swox.se> 29527 29528 * randcm.c: Remove. 29529 * randcmui.c: Remove. 29530 * Makefile.in: Remove randcm and randcmui. 29531 * make.bat: Ditto. 29532 * gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and 29533 __gmp_rand_init_common_ui(). 29534 * randlc.c (gmp_rand_init_lc): Don't call 29535 __gmp_rand_init_common(). 29536 29537 * randlcui.c (gmp_rand_init_lc_ui): Don't call 29538 __gmp_rand_init_common_ui(). 29539 29540 * gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'. 29541 * randclr.c (gmp_rand_clear): Remove reference to s->maxval. 29542 * randcm.c (__gmp_rand_init_common): Ditto 29543 29544 * mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs 29545 twice. 29546 29547 * gmp.h (__gmp_rand_dist): Remove. 29548 29549 1999-05-24 Linus Nordberg <linus@swox.se> 29550 29551 * mpn/generic/rawrandom.c: Clean up comments. 29552 29553 * gmp.texi: Add documentation for random number generation. 29554 29555 1999-05-21 Linus Nordberg <linus@swox.se> 29556 29557 * gmp.h: Typedef `gmp_rand_state' as an array with one element. 29558 Change prototypes accordingly. 29559 * gmp-impl.h: Change prototypes using `gmp_rand_state'. 29560 * rand.c (gmp_rand_init): Take `gmp_rand_state' as argument 29561 instead of a pointer to a `gmp_rand_state'. 29562 * mpf/urandom.c (mpf_urandomb): Ditto. 29563 * mpz/urandom.c (mpz_urandomb): Ditto. 29564 * mpn/generic/rawrandom.c (mpn_rawrandom): Ditto. 29565 * randcmui.c (__gmp_rand_init_common_ui): Ditto. 29566 * randlc.c (gmp_rand_init_lc): Ditto. 29567 * randlcui.c (gmp_rand_init_lc_ui): Ditto. 29568 * randui.c (gmp_rand_init_ui): Ditto. 29569 * randcm.c (__gmp_rand_init_common): Ditto. 29570 * randclr.c (gmp_rand_clear): Ditto. 29571 29572 * tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address 29573 of `s'. 29574 29575 1999-05-20 Linus Nordberg <linus@swox.se> 29576 29577 * Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c, 29578 randicom.c --> randcm.c. Add randui.c, randcmui.c, randlcui.c. 29579 * make.bat: Ditto. 29580 29581 * gmp.h: Add prototypes for gmp_rand_init_ui() and 29582 gmp_rand_init_lc_ui(). 29583 * gmp-impl.h: Add prototypes for __gmp_rand_init_common() and 29584 __gmp_rand_init_common_ui(). 29585 29586 * randlc.c, randcm.c, randclr.c, rand.c: Change #include of 29587 <gmp.h> to "gmp.h". 29588 * randclr.c: Include stdlib.h for free(). 29589 * rand.c: Include gmp-impl.h. 29590 29591 1999-05-12 Torbjorn Granlund <tege@swox.com> 29592 29593 * mpn/configure.in: Put generic m68k alternative last. 29594 29595 1999-05-04 Torbjorn Granlund <tege@swox.com> 29596 29597 * demos/pexpr.c (setup_error_handler): Use sigemptyset to create 29598 empty set (for portability). 29599 (fns): Fix typo '#if #if'. 29600 (mpz_eval_expr): Implement FERMAT and MERSENNE. 29601 29602 * demos/pexpr.c: Cast longjmp argument via long to silent warnings on 29603 64-bit hosts. 29604 29605 1999-05-03 Torbjorn Granlund <tege@swox.com> 29606 29607 * demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility. 29608 29609 * demos/pexpr.c (setup_error_handler): New function; take signal 29610 handler setup code from main(), with major modifications to use modern 29611 signal interface. 29612 (main): Remove signal handler setup code; call setup_error_handler. 29613 29614 1999-04-29 Linus Nordberg <linus@swox.se> 29615 29616 * tests/rand/findcl.c (main): Add option '-i' for interval factor. 29617 Separate v and merit lose figures. Add '-v' for version. 29618 29619 1999-04-28 Linus Nordberg <linus@swox.se> 29620 29621 * tests/rand/statlib.c: Change debugging stuff. 29622 29623 * tests/rand/gmpstat.h: Add debug values definitions. 29624 29625 * tests/rand/findcl.c (main): Print low and high merit on startup. 29626 Print version string on startup. Catch SEGV and HUP. Add option -d 29627 for debug. Fix bug making test for v too hard. 29628 (sh_status): New function. 29629 (sh_status): Flush stdout. Add RCSID. 29630 29631 1999-04-27 Linus Nordberg <linus@swox.se> 29632 29633 * tests/rand/Makefile (clean): Add target. 29634 29635 1999-04-27 Linus Nordberg <linus.nordberg@canit.se> 29636 29637 * tests/rand/stat.c: Include gmpstat.h. 29638 Add global int g_debug. 29639 29640 * tests/rand/spect.c: Include <unistd.h>. 29641 29642 * tests/rand/findcl.c (main): Input is `m', not all factors of `m'. 29643 Print only the very first matching multiplier. Include <unistd.h>. 29644 Flush stdout. Print "done." when done. 29645 29646 * tests/rand/spect.c: Move everything but main() to statlib.c. 29647 29648 * tests/rand/findcl.c: New file. 29649 29650 * tests/rand/gmpstat.h: New file. 29651 29652 * tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot, 29653 spectral_test): New functions. 29654 29655 1999-04-27 Torbjorn Granlund <tege@swox.com> 29656 29657 * mpn/configure.in: Fix typo, "sparc-*)" was "sparc)". 29658 29659 1999-04-21 Torbjorn Granlund <tege@swox.com> 29660 29661 * config.sub: Recognize ev6. 29662 29663 1999-04-12 Linus Nordberg <linus.nordberg@canit.se> 29664 29665 * urandom.c: Split up into randclr.c, randi.c, randi_lc.c, 29666 randicom.c. 29667 * randclr.c, randi.c, randi_lc.c, randicom.c: New files. 29668 * Makefile.in: Remove urandom. Add randclr, randi, randi_lc, 29669 randicom. 29670 * make.bat: Ditto 29671 29672 1999-03-31 Torbjorn Granlund <tege@matematik.su.se> 29673 29674 * configure.in (sparc9-*-solaris2.[789]*, etc): New alternative. 29675 * mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*. 29676 29677 1999-03-30 Linus Nordberg <linus.nordberg@canit.se> 29678 29679 * urandom.c (__gmp_rand_scheme): Change NULL->0. 29680 Include "gmp.h" instead of <gmp.h>. 29681 29682 1999-03-29 Linus Nordberg <linus.nordberg@canit.se> 29683 29684 * gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme 29685 struct. 29686 (__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'. 29687 29688 * tests/rand/stat.c (f_freq): Don't print 2nd level results if doing 29689 1st level. 29690 29691 * tests/rand/gen.c (main): Set default algorithm to mpz_urandomb. 29692 (main): Add option -c. 29693 29694 1999-03-24 Linus Nordberg <linus.nordberg@canit.se> 29695 29696 * tests/rand/Makefile (GMPINC): Rename to GMPH. 29697 (GMPH): Add gmp-mparam.h. 29698 (CFLAGS): Add -I$(GMPLIBDIR)/mpn 29699 29700 1999-03-23 Linus Nordberg <linus.nordberg@canit.se> 29701 29702 * Makefile.in: Compile top-dir/urandom.c. 29703 * make.bat: Ditto. 29704 29705 * mpn/Makefile.in: Compile rawrandom.c. 29706 * make.bat: Ditto. 29707 29708 * mpn/configure.in (functions): Add rawrandom. 29709 29710 * gmp.h (__gmp_rand_scheme_struct): Rename to 29711 __gmp_rand_lc_scheme_struct. 29712 (__gmp_rand_data_lc): Remove member 'n'. Allocate a 29713 __gmp_rand_lc_scheme_struct instead of a pointer to one. 29714 Add prototype for gmp_rand_init_lc(), mpn_rawrandom(). 29715 New prototype for mpz_urandomb(). 29716 29717 * urandom.c: New file. 29718 (__gmp_rand_init_common): New function. 29719 (gmp_rand_init_lc): New function. 29720 (gmp_rand_init): Don't init data_lc->n. Call gmp_rand_init_lc() 29721 and __gmp_rand_init_common(). 29722 (gmp_rand_clear): Remove reference to data_lc->n. 29723 29724 * mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file 29725 urandom.c in top-dir. 29726 (mpz_urandomb): Add function parameter nbits. Call mpn_rawrandom(). 29727 29728 * mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom(). 29729 29730 * mpn/generic/rawrandom.c: New file. 29731 (mpn_rawrandom): New function. 29732 29733 1999-03-17 Torbjorn Granlund <tege@matematik.su.se> 29734 29735 * extract-dbl.c: When packing result, adjust exp when sc == 0. 29736 29737 * mpf/tests/t-get_d.c: New file. 29738 * mpf/tests/Makefile.in: Compile t-get_d.c. 29739 29740 1999-03-16 Linus Nordberg <linus.nordberg@canit.se> 29741 29742 * mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the 29743 mpz_t members. 29744 29745 * make.bat: Compile mpz/urandom.c and mpf/urandom.c 29746 29747 * tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp(). 29748 29749 * tests/rand/gen.c: Include unistd.h for getopt. 29750 29751 1999-03-15 Linus Nordberg <linus.nordberg@canit.se> 29752 29753 * mpz/urandom.c (gmp_rand_init): New function. 29754 (gmp_rand_clear): New function. 29755 (mpz_urandomb): New function. 29756 29757 * mpz/Makefile.in: Compile urandom.c 29758 29759 * mpf/urandom.c (mpf_urandomb): New function. 29760 29761 * mpf/Makefile.in: Compile urandom.c. 29762 29763 * gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New 29764 structs for randomization functions. 29765 (gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization 29766 functions. 29767 (mpz_urandomb, mpf_urandomb): Add prototype. 29768 (gmp_rand_init, gmp_rand_clear): Add prototype. 29769 29770 * tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files. 29771 * tests/rand/Makefile, tests/rand/ChangeLog: New files. 29772 29773 1999-03-15 Torbjorn Granlund <tege@matematik.su.se> 29774 29775 * .gdbinit: New file. 29776 29777 * mpz/dump.c: New file. 29778 * mpz/Makefile.in: Compile dump.c. 29779 * make.bat: Likewise. 29780 * gmp.h (mpz_dump): Declare. 29781 29782 1999-03-14 Torbjorn Granlund <tege@matematik.su.se> 29783 29784 * mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact. 29785 29786 * mpz/tests/convert.c: Update to GMP 2 variable syntax. 29787 29788 1999-03-13 Torbjorn Granlund <tege@matematik.su.se> 29789 29790 * mpf/README: New file. 29791 * mpz/README: New file. 29792 29793 * mpf/pow_ui.c: New file. 29794 * mpf/Makefile.in: Compile pow_ui.c. 29795 * make.bat: Likewise. 29796 * gmp.h (mpf_pow_ui): Declare. 29797 29798 1999-03-12 Torbjorn Granlund <tege@matematik.su.se> 29799 29800 * mpn/configure.in: Stage 1 of rewrite. 29801 * mpn/underscore.h: New name for bsd.h. 29802 * mpn/sysv.h: Deleted. 29803 29804 * mpn/m68k/*: Don't include sysdep.h. 29805 29806 * mpn/pa64/README: New file. 29807 29808 1999-03-11 Torbjorn Granlund <tege@matematik.su.se> 29809 29810 * mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax. 29811 Renamed from `.s'. 29812 * mpn/powerpc32/sub_n.S: Likewise. 29813 * mpn/powerpc32/lshift.S: Likewise. 29814 * mpn/powerpc32/rshift.S: Likewise. 29815 * mpn/powerpc32/mul_1.S: Likewise. 29816 * mpn/powerpc32/addmul_1.S: Likewise. 29817 * mpn/powerpc32/submul_1.S: Likewise. 29818 29819 * mpn/powerpc32/umul.S: New file. 29820 * mpn/sparc32/v8/umul.S: New file. 29821 * mpn/sparc32/umul.S: New file. 29822 * mpn/x86/umul.S: New file. 29823 * mpn/x86/udiv.S: New file. 29824 29825 * mpn/Makefile.in (mul_basecase.o): Delete rule. 29826 29827 1999-02-22 Torbjorn Granlund <tege@matematik.su.se> 29828 29829 * configure.in (hppa2.0*-*-*): Force use of GCC. 29830 29831 * extract-dbl.c: Handle IEEE denormalized numbrs. Clean up. 29832 29833 1998-12-02 Torbjorn Granlund <tege@matematik.su.se> 29834 29835 * mpn/Makefile.in (CCAS): New macro. 29836 (.s.o): Use CCAS. 29837 (.S.o): Likewise. 29838 29839 * mpn/Makefile.in (mul_basecase.o): Add dependency. 29840 (sqr_basecase.o): Likewise. 29841 (mod_1.o): Likewise. 29842 29843 * demos/pexpr.c (cputime): Test also __hpux. 29844 (cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE. 29845 29846 * mpz/tests/t-2exp.c: Use urandom, not random. 29847 29848 * mpn/configure.in (arm*-*-*): New alternative. 29849 29850 1998-11-30 Torbjorn Granlund <tege@matematik.su.se> 29851 29852 * gmp-impl.h (union ieee_double_extract): Special case for 29853 little-endian arm. 29854 (LIMBS): Alias for PTR. 29855 29856 1998-11-26 Torbjorn Granlund <tege@matematik.su.se> 29857 29858 * longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'. 29859 (m68k stuff): Clean up; add coldfire support. 29860 29861 1998-11-23 Torbjorn Granlund <tege@matematik.su.se> 29862 29863 * mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. 29864 (KARATSUBA_SQR_THRESHOLD): #define. 29865 29866 * mpn/sparc32/v9/README: New file. 29867 29868 1998-11-20 Torbjorn Granlund <tege@matematik.su.se> 29869 29870 * mpn/x86/README: New file. 29871 29872 * mpn/arm/gmp-mparam.h: New file. 29873 * mpn/pa64/gmp-mparam.h: New file. 29874 * mpn/hppa/gmp-mparam.h: New file. 29875 * mpn/x86/pentium/gmp-mparam.h: New file. 29876 * mpn/sparc32/v9/gmp-mparam.h: New file. 29877 * mpn/powerpc32/gmp-mparam.h: New file. 29878 * mpn/x86/p6/gmp-mparam.h: New file. 29879 29880 * mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. 29881 (KARATSUBA_SQR_THRESHOLD): #define. 29882 29883 * mpn/configure.in: Point to x86/p6 when appropriate. 29884 29885 * mpn/power/umul.s: New file. 29886 * mpn/power/sdiv.s: New file. 29887 * mpn/pa64/addmul_1.S: New file. 29888 * mpn/pa64/submul_1.S: New file. 29889 * mpn/pa64/mul_1.S: New file. 29890 * mpn/pa64/udiv_qrnnd.c: New file. 29891 * mpn/pa64/umul_ppmm.S: New file. 29892 * mpn/mips2/umul.s: New file. 29893 * mpn/m68k/mc68020/umul.s: New file. 29894 * mpn/m68k/mc68020/udiv.s: New file. 29895 * mpn/hppa/hppa1_1/umul.s: New file. 29896 * mpn/alpha/umul.s: New file. 29897 * mpn/a29k/udiv.s: New file. 29898 * mpn/a29k/umul.s: New file. 29899 29900 1998-11-17 Torbjorn Granlund <tege@matematik.su.se> 29901 29902 * mpn/x86/mul_basecase.S: New file for non-pentiums. 29903 * mpn/x86/mul_basecase.S: Move to mpn/x86/pentium. 29904 29905 1998-11-16 Torbjorn Granlund <tege@matematik.su.se> 29906 29907 * make.bat: Compile mul_basecase.c and sqr_basecase.c. 29908 29909 1998-11-10 Torbjorn Granlund <tege@matematik.su.se> 29910 29911 * mpz/invert.c: Defer writing to parameter `invert' until 29912 end. 29913 29914 1998-11-03 Torbjorn Granlund <tege@matematik.su.se> 29915 29916 * mpn/pa64/udiv_qrnnd.c: Handle more border cases. 29917 29918 1998-10-29 Torbjorn Granlund <tege@matematik.su.se> 29919 29920 * insert-dbl.c: Special case biased exponents < 1; Get boundary for 29921 Inf right. 29922 29923 * longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define. 29924 29925 1998-10-28 Torbjorn Granlund <tege@matematik.su.se> 29926 29927 * mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604. 29928 * mpn/powerpc32/addmul_1.s: Likewise. 29929 * mpn/powerpc32/lshift.s: Likewise. 29930 29931 1998-10-23 Torbjorn Granlund <tege@matematik.su.se> 29932 29933 * config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus. 29934 29935 * mpn/sparc32/v9/submul_1.s: New file. 29936 29937 1998-10-21 Torbjorn Granlund <tege@matematik.su.se> 29938 29939 * mpn/config/mt-pa2hpux: New file. 29940 * mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code. 29941 29942 * config.sub: Recognize hppa2.0 as CPU type. 29943 29944 * longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd. 29945 * mpn/pa64/mul_1.S: New file. 29946 * mpn/pa64/addmul_1.S: New file. 29947 * mpn/pa64/submul_1.S: New file. 29948 * mpn/pa64/umul_ppmm.S: New file. 29949 * mpn/pa64/udiv_qrnnd.c: New file. 29950 29951 1998-10-20 Torbjorn Granlund <tege@matematik.su.se> 29952 29953 * mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui. 29954 29955 * mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls. 29956 * mpz/gcd_ui.c: Likewise. 29957 * mpz/add_ui.c: Likewise. 29958 * mpz/sub_ui.c: Likewise. 29959 29960 1998-10-19 Torbjorn Granlund <tege@matematik.su.se> 29961 29962 * mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t 29963 index. 29964 29965 1998-10-17 Torbjorn Granlund <tege@matematik.su.se> 29966 29967 * mpn/sparc32/v9/mul_1.s: Misc cleanups. 29968 * mpn/sparc32/v9/addmul_1.s: Misc cleanups. 29969 29970 1998-10-16 Torbjorn Granlund <tege@matematik.su.se> 29971 29972 * mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print. 29973 29974 * mpz/tests/t-powm.c (SIZE): Increase to 50. 29975 (EXP_SIZE): New parameter; use it for computing exp_size. 29976 29977 1998-10-15 Torbjorn Granlund <tege@matematik.su.se> 29978 29979 * mpn/generic/divrem_newt.c: Use TMP_ALLOC interface. 29980 29981 * mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining 29982 assembly variants of SQRT. 29983 29984 1998-10-14 Torbjorn Granlund <tege@matematik.su.se> 29985 29986 * mpn/tests: Clean up timing routines. Don't include longlong.h 29987 where it is not needed. 29988 (mpn_print): Handle printing when _LONG_LONG_LIMB. 29989 * mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2 29990 and do it whether TIMES != 1 or not. 29991 29992 * mpn/generic/mul_n.c: Delay assignment of `sign' for lower 29993 register pressure. 29994 29995 * mpn/sparc32/v9/mul_1.s: New file. 29996 29997 * config/mt-sprc9-gcc: New file. 29998 * configure.in: Use it. 29999 30000 * mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a 30001 sparc v9 CPU. 30002 * mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with 30003 a sparc v9 CPU. 30004 30005 * mpf/sub.c: In initial code for ediff == 0, limit precision 30006 before jumping to `normalize'. 30007 30008 1998-10-13 Torbjorn Granlund <tege@matematik.su.se> 30009 30010 * mpn/hppa/hppa2_0/add_n.s: New file. 30011 * mpn/hppa/hppa2_0/sub_n.s: New file. 30012 * mpn/configure.in: Handle hppa2.0 (32-bit code for now). 30013 30014 * config.guess: Update from egcs 1.1. 30015 (9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0 30016 machines. 30017 30018 1998-10-07 Torbjorn Granlund <tege@matematik.su.se> 30019 30020 * mpz/root.c (mpz_root): New file. 30021 * mpz/Makefile.in: Compile it. 30022 * make.bat: Likewise. 30023 * gmp.h (mpz_root): Declare. 30024 30025 * mpz/perfpow.c: New file. 30026 * mpz/Makefile.in: Compile it. 30027 * make.bat: Likewise. 30028 * gmp.h (mpz_perfect_power_p): Declare. 30029 30030 * mpz/remove.c: New file. 30031 * mpz/Makefile.in: Compile it. 30032 * make.bat: Likewise. 30033 * gmp.h (mpz_remove): Declare. 30034 30035 * mpz/bin_ui.c: New file. 30036 * mpz/Makefile.in: Compile it. 30037 * make.bat: Likewise. 30038 * gmp.h (mpz_bin_ui): Declare. 30039 30040 * mpz/bin_uiui.c: New file. 30041 * mpz/Makefile.in: Compile it. 30042 * make.bat: Likewise. 30043 * gmp.h (mpz_bin_uiui): Declare. 30044 30045 1998-09-16 Torbjorn Granlund <tege@matematik.su.se> 30046 30047 * longlong.h: Test for __powerpc__ in addition to _ARCH_PPC. 30048 30049 Sat Sep 5 17:22:28 1998 Torbjorn Granlund <tege@matematik.su.se> 30050 30051 * mpf/cmp_si.c: Compare most significant mantissa limb before 30052 trying to deduce anything from the limb count. 30053 * mpf/cmp_ui.c: Likewise. 30054 30055 Tue Aug 18 10:24:39 1998 Torbjorn Granlund <tege@matematik.su.se> 30056 30057 * mpz/pprime_p.c (mpz_probab_prime_p): Add new code block 30058 for doing more dividing. 30059 30060 Sat Aug 15 18:43:17 1998 Torbjorn Granlund <tege@matematik.su.se> 30061 30062 * mpn/generic/divrem_newt.c: New name for divrem_newton.c. 30063 * mpn/Makefile.in: Corresponding changes. 30064 * mpn/configure.in: Likewise. 30065 30066 Wed Aug 12 23:07:09 1998 Torbjorn Granlund <tege@matematik.su.se> 30067 30068 * config.guess: Handle powerpc for NetBSD. 30069 30070 Tue Jul 28 23:10:55 1998 Torbjorn Granlund <tege@matematik.su.se> 30071 30072 * mpz/fib_ui.c: New file. 30073 * mpz/Makefile.in: Compile it. 30074 * make.bat: Likewise. 30075 * gmp.h (mpz_fib_ui): Declare. 30076 30077 Wed Jun 17 22:52:58 1998 Torbjorn Granlund <tege@matematik.su.se> 30078 30079 * make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'. 30080 30081 Wed Jun 3 11:27:32 1998 Torbjorn Granlund <tege@matematik.su.se> 30082 30083 * config/mt-pwr: New file. 30084 * config/mt-ppc: New file. 30085 * configure.in: Use the new files. 30086 30087 Tue Jun 2 13:04:17 1998 Torbjorn Granlund <tege@matematik.su.se> 30088 30089 * mpn/sparc32/v9/addmul_1.s: New file. 30090 * mpn/config/mt-sprc9: New file. 30091 * mpn/configure.in: Use mt-sprc9. 30092 30093 Tue May 26 11:24:18 1998 Torbjorn Granlund <tege@matematik.su.se> 30094 30095 * demos/factorize.c (factor_using_pollard_rho): Pass correct 30096 parameters in recursive calls; join the two recursion arms. 30097 30098 * mpf/set_q.c: Set result sign. 30099 When normalizing the numerator, don't allow it to increase in size 30100 beyond prec. 30101 30102 Tue May 19 17:28:14 1998 Torbjorn Granlund <tege@matematik.su.se> 30103 30104 * demos/factorize.c (factor_using_division): Call fflush 30105 also for the factor 2. 30106 30107 Mon May 18 15:51:01 1998 Torbjorn Granlund <tege@matematik.su.se> 30108 30109 * make.bat: Pass -fomit-frame-pointer. Do not pass -g. 30110 30111 Tue May 5 01:42:50 1998 Torbjorn Granlund <tege@matematik.su.se> 30112 30113 * mpz/Makefile.in (LOCAL_CC): Remove definition. 30114 30115 * gmp.h: Get rid of GMP_SMALL stuff. 30116 * mpz/Makefile.in: Likewise. 30117 * mpq/Makefile.in: Likewise. 30118 * mpf/Makefile.in: Likewise. 30119 30120 * mpz/invert.c: Fix typo in comment. 30121 30122 Mon May 4 23:05:32 1998 Torbjorn Granlund <tege@matematik.su.se> 30123 30124 * mpn/generic/sqrtrem.c: Check that __arch64__ is not defined 30125 before defining sparc SQRT. 30126 30127 Mon Apr 20 19:16:17 1998 Torbjorn Granlund <tege@matematik.su.se> 30128 30129 * mpn/generic/gcdext.c: Allow gp to be NULL. 30130 30131 1998-04-03 Torbjorn Granlund <tege@matematik.su.se> 30132 30133 * mpn/configure.in: Recognize `alphaev5*', not `alphaev5'. 30134 30135 * config.guess: Handle CPU variants for NetBSD. 30136 30137 Mon Mar 16 13:07:54 1998 Torbjorn Granlund <tege@matematik.su.se> 30138 30139 * mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP, 30140 not mpz_tdiv_r_ui (which expects an `unsigned long'). 30141 (mpz_probab_prime_p): Change type of `r' to mp_limb_t. 30142 30143 Thu Mar 12 17:19:04 1998 Torbjorn Granlund <tege@matematik.su.se> 30144 30145 * gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations. 30146 30147 * config.guess: Update from FSF version. 30148 * config.sub: Likewise. 30149 30150 * config.guess: Add special handling of alpha-*-NetBSD. 30151 30152 Wed Mar 11 00:55:34 1998 Torbjorn Granlund <tege@matematik.su.se> 30153 30154 * mpz/inp_str.c: Update from set_str.c. 30155 Properly increment `nread' when skipping minus sign. 30156 30157 * mpz/set_str.c: Check for empty string after having skipped 30158 leading zeros. 30159 30160 Mon Mar 9 19:28:00 1998 Torbjorn Granlund <tege@matematik.su.se> 30161 30162 * mpz/set_str.c: Skip leading zeros. 30163 30164 Wed Mar 4 19:29:16 1998 Torbjorn Granlund <tege@matematik.su.se> 30165 30166 * gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui. 30167 30168 * demos/factorize.c: Rewrite. 30169 30170 1998-02-04 Torbjorn Granlund <tege@matematik.su.se> 30171 30172 * configure.in (i[3456]86* etc): Check if using gcc before 30173 choosing mt-x86. 30174 30175 * configure.in (m68*-*-*): New alternative. 30176 * config/mt-m68k: New file. 30177 30178 * mpn/alpha/invert-limb.s: Put tables in text segment, 30179 since not all systems support "rdata". 30180 30181 Wed Feb 4 02:20:57 1998 Torbjorn Granlund <tege@matematik.su.se> 30182 30183 * gmp.h (__GNU_MP_VERSION_SNAP): New #define. 30184 (__GNU_MP_VERSION_MINOR): Now 1. 30185 30186 Wed Jan 28 22:29:36 1998 Torbjorn Granlund <tege@tunnis.tmg.se> 30187 30188 * longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION. 30189 30190 Wed Jan 28 20:28:19 1998 Torbjorn Granlund <tege@sophie.matematik.su.se> 30191 30192 * mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors. 30193 30194 Mon Jan 26 01:39:02 1998 Torbjorn Granlund <tege@tunnis.tmg.se> 30195 30196 * mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small 30197 numbers specifically; check small factors, then perform a fermat test. 30198 30199 Tue Jan 13 14:58:28 1998 Torbjorn Granlund <tege@tunnis.tmg.se> 30200 30201 * longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb 30202 and udiv_qrnnd_preinv. 30203 30204 Wed Jan 7 01:52:54 1998 Torbjorn Granlund <tege@tunnis.tmg.se> 30205 30206 * mpn/configure.in (alpha*, extra_functions): Add invert-limb and 30207 remove udiv_qrnnd. 30208 30209 * mpn/tests/divrem.c: Get allocations right. 30210 30211 * mpn/generic/divrem.c: Conditionally pre-invert most significant 30212 divisor limb. 30213 30214 Tue Jan 6 23:08:54 1998 Torbjorn Granlund <tege@tunnis.tmg.se> 30215 30216 * mpn/generic/divrem_1.c: Rename variables to comply to conventions. 30217 Make `i' have type `mp_size_t'. 30218 30219 Tue Dec 30 22:21:42 1997 Torbjorn Granlund <tege@matematik.su.se> 30220 30221 * mpz/tdiv_qr_ui.c: Return the remainder. 30222 * mpz/tdiv_r_ui.c: Likewise. 30223 * mpz/tdiv_q_ui.c: Likewise. 30224 * gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui, 30225 mpz_tdiv_q_ui. 30226 30227 * mpz/tdiv_ui.c: New file. 30228 * mpz/Makefile.in: Compile it. 30229 * make.bat: Likewise. 30230 * gmp.h (mpz_tdiv_ui): Declare. 30231 30232 Fri Nov 7 04:21:15 1997 Torbjorn Granlund <tege@matematik.su.se> 30233 30234 * mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc. 30235 30236 * demos/isprime.c: New file. 30237 30238 Sat Nov 1 19:32:25 1997 Torbjorn Granlund <tege@matematik.su.se> 30239 30240 * mpz/cmp_abs.c: New file. 30241 * mpz/Makefile.in: Compile it. 30242 * make.bat: Likewise. 30243 * gmp.h (mpz_cmp_abs): Declare. 30244 30245 * mpz/cmp_abs_ui.c: New file. 30246 * mpz/Makefile.in: Compile it. 30247 * make.bat: Likewise. 30248 * gmp.h (mpz_cmp_abs_ui): Declare. 30249 30250 Sat Sep 27 04:49:52 1997 Torbjorn Granlund <tege@tunnis.tmg.se> 30251 30252 * mpz/fdiv_r_2exp.c: Get allocation for `tmp' right. 30253 30254 * mpz/fdiv_q_2exp.c: In final result adjustment code, handle 30255 that intermediate result is zero. 30256 30257 * mpz/tests/t-2exp.c: New file. 30258 * mpz/tests/Makefile.in: Handle t-2exp.c. 30259 30260 Fri Sep 26 16:29:21 1997 Torbjorn Granlund <tege@tunnis.tmg.se> 30261 30262 * mpz/divexact.c: Fix typo in test for whether to copy numerator to 30263 quotient and move that statement to after handling quotient and 30264 denominator overlap. Misc cleanups. 30265 30266 * mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift 30267 calls to `unsigned int'. 30268 * mpz/divexact.c: Likewise. 30269 30270 Mon Sep 22 02:19:52 1997 Torbjorn Granlund <tege@pro.tmg.se> 30271 30272 * mpz/tests/t-powm.c: Decrease `reps' to 2500. 30273 30274 * mpz/tests/t-pow_ui.c: New file. 30275 * mpz/tests/Makefile.in: Handle t-pow_ui.c. 30276 30277 * mpz/ui_pow_ui.c: Get special cases for exponent and base right. 30278 30279 * mpz/pow_ui.c: Increase temp space allocation by 1 limb. 30280 Split `rsize' into two variables; compute space allocation into 30281 `ralloc'. 30282 30283 Sun Sep 7 04:15:12 1997 Torbjorn Granlund <tege@pro.tmg.se> 30284 30285 * mpn/pa64/lshift.s: New file. 30286 * mpn/pa64/rshift.s: New file. 30287 * mpn/pa64/sub_n.s: New file. 30288 30289 Sat Sep 6 19:14:13 1997 Torbjorn Granlund <tege@gmp.tmg.se> 30290 30291 * mpn/pa64/add_n.s: New file. 30292 * mpn/pa64: New directory. 30293 30294 Tue Aug 19 16:17:09 1997 Torbjorn Granlund <tege@pro.tmg.se> 30295 30296 * mpz/swap.c: New file. 30297 * mpz/Makefile.in: Compile it. 30298 * make.bat: Likewise. 30299 * gmp.h (mpz_swap): Declare. 30300 30301 * mpn/generic/mul_n.c: Push assignment of x and y pointers into the 30302 if/else clauses in several places. (Decreases register pressure.) 30303 30304 Mon Aug 18 03:29:50 1997 Torbjorn Granlund <tege@pro.tmg.se> 30305 30306 * mpn/thumb/add_n.s: New file. 30307 * mpn/thumb/sub_n.s: New file. 30308 * mpn/arm/add_n.s: New file. 30309 * mpn/arm/sub_n.s: New file. 30310 30311 * mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size 30312 if most significant limb is zero. 30313 * mpz/powm_ui.c: Likewise. 30314 30315 Fri Aug 15 02:13:57 1997 Torbjorn Granlund <tege@pro.tmg.se> 30316 30317 * mpn/arm/m/mul_1.s: New file. 30318 * mpn/arm/m/addmul_1.s: New file. 30319 30320 * mpn/powerpc32/mul_1.s: Rewrite. 30321 30322 * mpn/alpha/mul_1.s: Prefix labels with `.'. 30323 30324 Mon Aug 11 02:37:16 1997 Torbjorn Granlund <tege@pro.tmg.se> 30325 30326 * mpn/powerpc32/add_n.s: Rewrite. 30327 * mpn/powerpc32/sub_n.s: Rewrite. 30328 30329 Sun Aug 10 17:07:15 1997 Torbjorn Granlund <tege@pro.tmg.se> 30330 30331 * mpn/powerpc32/addmul_1.s: Delete obsolete comments. 30332 * mpn/powerpc32/submul_1.s: Likewise. 30333 30334 Fri Jul 25 20:07:54 1997 Torbjorn Granlund <tege@pro.tmg.se> 30335 30336 * mpz/addmul_ui.c: New file. 30337 * mpz/Makefile.in: Compile it. 30338 * make.bat: Likewise. 30339 * gmp.h (mpz_addmul_ui): Declare. 30340 30341 * mpz/setbit.c: Add missing code after final `else'. 30342 30343 Tue Jul 22 17:45:01 1997 Torbjorn Granlund <tege@tunnis.tmg.se> 30344 30345 * mpn/sh/add_n.s: Fix typo. 30346 * mpn/sh/sub_n.s: Likewise. 30347 30348 * longlong.h (ns32k count_trailing_zeros): Fix typo. 30349 30350 * insert-dbl.c: Check for exponent overflow and return Inf. 30351 30352 * mpz/get_d.c: Rewrite to avoid rounding errors. 30353 30354 Thu May 29 11:51:07 1997 Torbjorn Granlund <tege@pro.tmg.se> 30355 30356 * mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure 30357 their allocation suffices. 30358 * mpq/sub.c: Likewise. 30359 30360 Wed Apr 16 02:24:25 1997 Torbjorn Granlund <tege@pro.tmg.se> 30361 30362 * demos/pexpr.c: New file. 30363 30364 * mpn/generic/mul_n.c: Misc optimizations from Robert Harley. 30365 30366 * gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define. 30367 30368 Sat Apr 12 17:54:04 1997 Torbjorn Granlund <tege@pro.tmg.se> 30369 30370 * mpz/tstbit.c: New file. 30371 * mpz/Makefile.in: Compile it. 30372 * make.bat: Likewise. 30373 * gmp.h (mpz_tstbit): Declare. 30374 30375 * mpz/tests/logic.c: Use MPZ_CHECK_FORMAT. 30376 * mpz/tests/bit.c: New test. 30377 * mpz/tests/Makefile.in: Handle bit.c. 30378 30379 * mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1. 30380 30381 * gmp-impl.h (MPZ_CHECK_FORMAT): New #define. 30382 30383 Thu Apr 10 00:30:14 1997 Torbjorn Granlund <tege@tmg.se> 30384 30385 * longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2. 30386 30387 Wed Apr 9 18:23:31 1997 Torbjorn Granlund <tege@pro.tmg.se> 30388 30389 * gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here... 30390 * longlong.h: ...to here. 30391 30392 Sun Mar 30 12:16:23 1997 Torbjorn Granlund <tege@matematik.su.se> 30393 30394 * mpn/generic/next_prime.c: New file. 30395 30396 * mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED. 30397 * gmp-impl.h: Put them here. 30398 30399 Fri Mar 28 08:18:05 1997 Torbjorn Granlund <tege@matematik.su.se> 30400 30401 * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for 30402 for x86, but leave disabled for now. 30403 30404 Fri Feb 28 02:39:47 1997 Torbjorn Granlund <tege@matematik.su.se> 30405 30406 * mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler 30407 for assembly phase. 30408 (.s.o): Pass SFLAGS. 30409 30410 Wed Feb 26 06:46:08 1997 Torbjorn Granlund <tege@matematik.su.se> 30411 30412 * mpn/configure.in: For Pentium Pro, use default code, not Pentium 30413 optimized code. 30414 30415 * mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro. 30416 * mpn/x86/submul_1.S: Likewise. 30417 30418 Thu Feb 13 08:26:09 1997 Torbjorn Granlund <tege@matematik.su.se> 30419 30420 * mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from 30421 integer.c). 30422 * make.bat: Likewise. 30423 30424 Wed Feb 5 05:58:44 1997 Torbjorn Granlund <tege@matematik.su.se> 30425 30426 * mpn/configure.in (alpha*): Add cntlz to extra_functions. 30427 30428 Wed Feb 4 03:30:45 1997 Torbjorn Granlund <tege@matematik.su.se> 30429 30430 * mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc). 30431 30432 Mon Feb 3 14:21:36 1997 Torbjorn Granlund <tege@matematik.su.se> 30433 30434 * make.bat: Fix typo, set_dfl_prc => set_dfl_prec. 30435 30436 Sun Feb 2 02:34:33 1997 Torbjorn Granlund <tege@matematik.su.se> 30437 30438 * mpf/out_str.c: After outputting `-', decrement n_digits. 30439 30440 Wed Jan 8 02:50:20 1997 Torbjorn Granlund <tege@quiet.matematik.su.se> 30441 30442 * mpn/generic/divrem.c: qextra_limbs => qxn. 30443 30444 Wed Dec 18 07:50:46 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30445 30446 * mpz/tests/t-tdiv.c (SIZE): Increase to 200. 30447 30448 Tue Dec 17 19:32:48 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30449 30450 * mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem. 30451 * gmp.h (mpn_divrem): New function. 30452 * mpn/generic/divrem_newton.c: New file. 30453 * mpn/configure.in (functions): Add divrem_newton. 30454 * make.bat: Likewise. 30455 30456 Thu Dec 12 17:55:13 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30457 30458 * gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_. 30459 30460 Sat Dec 7 09:40:06 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30461 30462 * mpn/alpha/invert-limb.s: New file. 30463 30464 Thu Dec 5 01:25:31 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30465 30466 * mpz/ui_pow_ui.c (mpz_pow2): New (static) function. 30467 (mpz_ui_pow_ui): Rewrite. 30468 30469 * make.bat: `pre_mod_1.c' => `pre_mod_.c'. Fix typo in path to 30470 gmp-mpar.h. 30471 30472 Fri Nov 15 00:49:55 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30473 30474 * mpz/ui_pow_ui.c: Rewrite for better speed. 30475 30476 Fri Nov 1 16:36:56 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30477 30478 * Makefile.in (recursive make rules): Use `&&' instead of `;' as 30479 delimiter. 30480 30481 Fri Oct 25 17:12:36 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30482 30483 * gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline. 30484 30485 Thu Oct 24 15:08:19 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30486 30487 * mpn/fujitsu/rshift.c: Fix typo in loop boundaries. 30488 30489 Fri Oct 18 03:13:54 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30490 30491 * mpn/configure.in: Recognize `nextstep' for m68k variants; likewise 30492 for x86 variants. 30493 30494 * mpn/x86/syntax.h (INSND): New macro. 30495 * mpn/x86/[lr]shift.S: Use INSND. 30496 * mpn/x86/pentium/[lr]shift.S: Likewise. 30497 * mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS. 30498 30499 * gmp-impl.h: In code for determining endianness, test also 30500 __BIG_ENDIAN__ and __hppa__. Remove test of __NeXT__. 30501 30502 Wed Oct 16 03:50:34 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30503 30504 * mpf/set_str.c: Let `prec' determine precision used in 30505 exponentiation code; decrease allocation accordingly. 30506 30507 * mpn/vax: Change `jsob*' to `sob*' in all files. 30508 30509 Tue Oct 15 03:54:06 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30510 30511 * longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient 30512 to DImode (divu.d generates a 64-bit quotient). 30513 30514 * configure.in (m88110*): Fix typo. 30515 30516 * mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow. 30517 30518 * gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from 30519 float to double. 30520 * mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly 30521 field. 30522 30523 * mpf/get_str.c: Let `prec' determine precision used in 30524 exponentiation code; decrease allocation accordingly. 30525 30526 Sun Oct 13 03:31:53 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30527 30528 * longlong.h: Major cleanup. 30529 (__udiv_qrnnd_c): Compute remainders using multiply and subtract, 30530 not explicit `%' operator. 30531 (C umul_ppmm): Get rid of a redundant __ll_lowpart. 30532 30533 * mpz/invert.c: Properly detect all operands that would yield an 30534 undefined inverse; make sure the inverse is always positive. 30535 30536 * mpz/xor.c: New file. 30537 * mpz/Makefile.in: Compile it. 30538 * make.bat: Likewise. 30539 * gmp.h (mpz_xor): Declare. 30540 30541 * mpz/tests/logic.c: Also test mpz_xor. 30542 30543 * mpz/lcm.c: Special case for when either operand equals 0. 30544 30545 Sat Oct 12 01:57:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30546 30547 * mpn/generic/gcd.c (find_a): Don't inline on x86. 30548 30549 * Makefile.in (CFLAGS): Default to just `-g'. 30550 30551 * configure.in: Recognize 386 and 486 wherever other x86 cpus are 30552 recognized. 30553 * configure.in: Use mt-x86 for all x86 cpus. 30554 * config/mt-x86: New file. 30555 30556 * mpn/alpha/cntlz.s: New file. 30557 30558 Tue Oct 8 00:16:18 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30559 30560 * longlong.h: Define smul_ppmm for Fujitsu vpp/uxp. 30561 Rewrite umul_ppmm to actually work on the hardware. 30562 30563 * mpn/x86/sub_n.S: Avoid parens around displacement of `leal'. 30564 * mpn/x86/add_n.S: Likewise. 30565 30566 * mpn/x86/syntax.h (R): Define differently depending on __STDC__. 30567 30568 Mon Oct 7 16:48:08 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30569 30570 * longlong.h: Don't test for __NeXT__ in outer 68k conditional; 30571 add test for __m68k__. 30572 30573 Sun Oct 6 00:59:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30574 30575 * gmp.h: Declare mpn_random. 30576 * make.bat: Compile mpn/generic/random.c. 30577 30578 * longlong.h: Define umul_ppmm for Fujitsu vpp/uxp. 30579 30580 * gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))' 30581 with test also for __GNUC_MINOR__. 30582 30583 * gmp.h: Don't define macros using __builtin_constant_p when using 30584 NeXT's compiler. 30585 30586 Fri Oct 4 16:53:50 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30587 30588 * mpz/lcm.c: New file. 30589 * mpz/Makefile.in: Compile it. 30590 * make.bat: Likewise. 30591 * gmp.h (mpz_lcm): Declare. 30592 30593 Wed Sep 25 00:06:21 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30594 30595 * mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is 30596 within limits of an `unsigned long int'. 30597 30598 * mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'. 30599 30600 Tue Sep 24 18:58:20 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30601 30602 * mpz/powm_ui.c: Make result always positive. 30603 30604 * urandom.h (urandom): Make it return mp_limb_t. 30605 30606 * gmp-impl.h (CNST_LIMB): New macro. 30607 * mpn/mp_bases.c: Use CNST_LIMB. 30608 * mpn/generic/hamdist.c (popc_limb): Likewise. 30609 * mpn/generic/popcount.c (popc_limb): Likewise. 30610 * mpn/generic/perfsqr.c: Likewise. 30611 30612 Fri Sep 20 03:08:10 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30613 30614 * mpz/pprime_p.c: When n <= 3, don't clear out n before using it. 30615 30616 Wed Sep 18 11:22:45 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30617 30618 * mpn/fujitsu/mul_1.c: New file. 30619 * mpn/fujitsu/addmul_1.c: New file. 30620 * mpn/fujitsu/sub_n.c: New file. 30621 * mpn/fujitsu/add_n.c: Mew file. 30622 30623 Sun Sep 15 03:13:02 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30624 30625 * mpn/generic/random.c: New file. 30626 * mpn/configure.in (functions): Add `random'. 30627 30628 * gmp-impl.h (MPN_COPY): Define as annotated inline function for 30629 Crays and Fujitsu VPPs. 30630 30631 * gmp.h (mp_size_t): Define as `int' for non-MPP Cray. 30632 (mp_exp_t): Likewise. 30633 30634 * configure.in: Add support for Fujitsu VPP machines. 30635 * mpn/configure.in: Likewise. 30636 * config.guess: Likewise. 30637 * config.sub: Likewise. 30638 30639 * mpn/fujitsu/rshift.c: New file. 30640 * mpn/fujitsu/lshift.c: New file. 30641 * mpn/fujitsu: New directory, for Fujitsu VPP machines. 30642 30643 Wed Sep 11 11:34:38 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30644 30645 * mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n. 30646 Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter 30647 list to work with __gmpn_mul_basecase. 30648 (__gmpn_sqr): New name for impn_sqr_n. 30649 Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter 30650 list to work with __gmpn_sqr_basecase. 30651 (mpn_mul_n): Update calls to match new names and parameter conventions. 30652 * gmp-impl.h (MPN_MUL_N_RECURSE): Likewise. 30653 (MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE. 30654 Update calls to match new names and parameter conventions. 30655 * mpn/generic/mul.c: Never perform multiply explicitly here, call 30656 __gmpn_mul_basecase instead. 30657 Update calls to match new names and parameter conventions. 30658 30659 * mpn/x86/mul_basecase.S: New file. 30660 * mpn/generic/mul_basecase.c: New file. 30661 * mpn/generic/sqr_basecase.c: New file. 30662 30663 Wed Sep 4 02:59:21 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30664 30665 * mpz/set_str.c: Let `0b' and `0B' mean base 2. 30666 30667 Fri Aug 30 00:44:00 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30668 30669 * longlong.h (x86 umul_ppmm): Work around GCC bug that was 30670 triggered by Aug 28 change. 30671 30672 * mpbsd/min.c (digit_value_in_base): New function. 30673 30674 * mpz/set_str.c: Refine allocation size computation, use 30675 chars_per_bit_exactly instead of chars_per_limb. 30676 30677 * mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc. 30678 30679 Wed Aug 28 02:52:14 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30680 30681 * longlong.h (x86 umul_ppmm): Don't cast result operands. 30682 (x86 udiv_qrnnd): Likewise. 30683 (default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm. 30684 (default umul_ppmm): New #define using smul_ppmm. 30685 (vax smul_ppmm): New #define. 30686 (vax umul_ppmm): Delete. 30687 (POWER umul_ppmm): Delete. 30688 (IBM 370 smul_ppmm): New #define. 30689 (IBM 370 umul_ppmm): Delete. 30690 (IBM RT/ROMP smul_ppmm): New #define. 30691 (IBM RT/ROMP umul_ppmm): Delete. 30692 30693 Tue Aug 27 01:03:25 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30694 30695 * gmp-impl.h (__gmp_0): Make it `const'. 30696 30697 * mpn/Makefile.in (clean mostlyclean): Comment out recursive clean 30698 of `tests'. 30699 30700 * mpn/generic/mul.c: Identify when we do squaring, and call 30701 impn_sqr_n_basecase/impn_sqr_n as appropriate. Use 30702 KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD. 30703 Don't #define KARATSUBA_THRESHOLD. 30704 30705 * mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD. 30706 (impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by 30707 Robert Harley. 30708 (impn_sqr_n_basecase): Rewrite. 30709 30710 * gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define. 30711 (KARATSUBA_SQR_THRESHOLD): Likewise. 30712 (MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD. 30713 (MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD. 30714 30715 * configure.in: Fix typo in last change. 30716 30717 Mon Aug 26 22:25:18 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30718 30719 * mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'. 30720 * mpf/random2.c: Likewise. 30721 30722 Sun Aug 25 00:07:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se> 30723 30724 * mpz/tests/t-mul.c: Also test squaring. 30725 30726 Fri Aug 16 05:12:08 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30727 30728 * mp_clz_tab.c (__clz_tab): Declare as `const'. 30729 * version.c (gmp_version): Likewise. 30730 * mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise. 30731 30732 Thu Aug 15 02:34:47 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30733 30734 * gmp.h: Fix typo, `mips__' => `__mips'. 30735 30736 * mpf/set_str.c: Allow a number to start with a period, if next 30737 position contains a digit. 30738 30739 Tue Aug 13 18:41:25 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30740 30741 * mpz/gcdext.c: Get cofactor sign right for negative input operands. 30742 Clean up code for computing tt. 30743 30744 * mpz/invert.c: Get rid of variable `rv'. 30745 30746 * mpz/divexact.c: Test for zero divisor in special case for zero 30747 dividend. 30748 30749 Mon Aug 12 18:04:07 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30750 30751 * mpz/?div_*_ui.c: Special case for division by 0. 30752 * mpz/tdiv_q.c: Likewise. 30753 30754 Sat Aug 10 14:45:26 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30755 30756 * mpz/dmincl.c: Special case for division by 0. 30757 30758 * mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle 30759 it when computing size after mpn_divmod_1 call. 30760 30761 * mp_bpl.c: (__gmp_junk): New variable. 30762 (__gmp_0): New constant. 30763 30764 * gmp-impl.h (DIVIDE_BY_ZERO): New #define. 30765 30766 Fri Aug 9 20:03:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30767 30768 * mpz/divexact.c: Test for dividend being zero before testing 30769 for small divisors. 30770 30771 Thu Aug 8 13:20:23 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30772 30773 * configure.in: Require operating system specification for cpus 30774 where assembly syntax differs between system. 30775 30776 * Makefile.in (many targets): Change `-' action prefix to `@'. 30777 30778 * mpn/Makefile.in: (distclean): Fix typo. 30779 30780 * mpq/cmp_ui.c: Rename function to _mpq_cmp_ui. 30781 (mpq_cmp_ui): #undef deleted. 30782 * mpz/cmp_si.c: Rename function to _mpz_cmp_si. 30783 (mpz_cmp_si): #undef deleted. 30784 * mpz/cmp_ui.c: Rename function to _mpz_cmp_ui. 30785 (mpz_cmp_ui): #undef deleted. 30786 * Makefile.in: Corresponding changes. 30787 30788 * mpf/get_prc.c: Return the *highest* precision achievable. 30789 30790 * mpf/get_str.c: Complete rewrite. 30791 30792 * mpf/set_str.c (swapptr): New #define. 30793 (assert): New #define. 30794 * mpf/set_str.c: Set prec to one more than the saved _mp_prec. 30795 Misc cleanups. 30796 30797 * mpz/set_str.c: #include string.h. 30798 * mpf/out_str.c: #include string.h. 30799 * mpbsd/xtom.c: #include string.h and ctype.h. 30800 * mpbsd/mout.c: #include string.h. 30801 30802 Wed Aug 7 11:46:04 EDT 1996 Ken Weber <kweber@mcs.kent.edu> 30803 30804 * mpn/generic/gcd.c: Reorder mpn_gcd argument list. 30805 * mpz/gcd.c: Change call to mpn_gcd. 30806 * gmp.texi: Update manual entry on mpn_gcd. 30807 * mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod 30808 reentrant. 30809 30810 Wed Aug 7 02:15:38 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30811 30812 * mpf/get_str.c: Rewrite code for converting integral part of a 30813 number with both an integral and fractional part. 30814 30815 * mpf/set_str.c: Get rid of variable xxx. New variables madj and radj. 30816 In exp_in_base==0 case, add madj to msize for EXP field. 30817 30818 * mpz/tests/t-gcd.c: Test deleted. Rename t-gcd2.c to t-gcd.c. 30819 Increase reps to 2000. 30820 * mpz/tests/t-gcd2.c: Get rid of mpz_refgcd. 30821 30822 * mpf/set_str.c: Ignore excess limbs in MP,MSIZE. 30823 30824 Thu Jul 25 04:39:10 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30825 30826 * mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32". 30827 30828 Wed Jul 24 02:27:02 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30829 30830 * mpn/generic/gcdext.c: Reorganize and clean up. Get rid of all 30831 signed limb arithmetic. 30832 30833 Mon Jul 22 02:39:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30834 30835 * mpn/generic/gcdext.c (mpn_gcdext): For large enough operands, 30836 work with most significant *two* limbs. 30837 (div2): New function (two variants). 30838 (THRESHOLD): New #define. 30839 30840 * mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call. 30841 30842 * longlong.h (alpha UMUL_TIME): Now 30. 30843 (alpha UDIV_TIME): Now 350. 30844 (x86 UMUL_TIME): Now 10 (let Pentium decide). 30845 (SuperSPARC UDIV_TIME): Override default. 30846 30847 * extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here. 30848 30849 * extract-dbl.c: New name for extract-double.c. 30850 * insert-dbl.c: New name for insert-double.c. 30851 * Makefile.in: Corresponding changes. 30852 * make.bat: Likewise. 30853 30854 * mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp. 30855 * mpq/Makefile.in: Likewise. 30856 * mpf/Makefile.in: Likewise. 30857 30858 Sat Jul 20 01:35:18 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30859 30860 * mpz/getlimbn.c: Take ABS of integer->_mp_size. 30861 30862 * mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb. 30863 30864 Thu Jul 18 00:31:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30865 30866 * mpn/generic/popcount.c (popc_limb): Use different masking trick 30867 for first step (due to David Seal). 30868 * mpn/generic/hamdist.c (popc_limb): Likewise. 30869 30870 Wed Jul 17 23:21:48 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30871 30872 * mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs. 30873 30874 Sun Jul 14 17:47:46 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30875 30876 * configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8. 30877 30878 Thu Jul 11 14:05:54 1996 J.T. Conklin <jtc@rtl.cygnus.com> 30879 30880 * longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd 30881 for the '020, '030, '040, and '332. Define count_leading_zeros 30882 for the '020, '030, '040, and '060. 30883 30884 Sun Jul 14 15:24:53 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30885 30886 From Joe Keane: 30887 * mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp. 30888 30889 Fri Jul 12 17:11:17 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30890 30891 * mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it 30892 disabled for now. 30893 30894 * mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE. 30895 30896 Wed Jul 10 03:17:45 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30897 30898 * cre-mparam.c: Delete obsolete file. 30899 30900 * gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32. 30901 * longlong.h: Test __mips instead of __mips__. 30902 30903 Sun Jul 7 23:19:13 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30904 30905 * longlong.h (_PROTO): Define, unless already defined. 30906 (alpha __udiv_qrnnd): Declare using _PROTO. 30907 (hppa __udiv_qrnnd): Likewise. 30908 (sparc __udiv_qrnnd): Likewise. 30909 30910 Mon Jul 1 01:44:30 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30911 30912 * config.guess: Update from master version; add Cray x90 handling. 30913 30914 Wed Jun 26 05:35:02 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30915 30916 * mpn/power/add_n.s (__mpn_add_n): Work around GAS bug. 30917 * mpn/power/sub_n.s (__mpn_sub_n): Likewise. 30918 30919 * insert-double.c: Rework loop to avoid potential overflow. 30920 30921 * mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs. 30922 30923 * mpq/tests/t-get_d.c (SIZE): Special case for vax. 30924 30925 * gmp.h (mpX_cmp_ui): #define also when ! __GNUC__. 30926 30927 Mon Jun 24 17:13:21 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30928 30929 * longlong.h (vax sdiv_qrnnd): Fix typo. 30930 30931 Sat Jun 15 01:33:33 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30932 30933 * gmp.h: Support `small' and `large' type and function variants, 30934 controlled by GMP_SMALL. 30935 30936 * mpz/Makefile.in (.c.o): Compile each function twice, for small and 30937 large variant. 30938 (MPZS_OBJS): New variable. 30939 (libmpz.a): Include MPZS_OBJS in archive. 30940 * mpf/Makefile.in: Analogous changes. 30941 * mpq/Makefile.in: Analogous changes. 30942 30943 * gmp.h: Prefix all functions with __gmp, to allow namespace-clean 30944 internal calls. 30945 30946 * mp.h: Rip out __MP_SMALL__ stuff. 30947 (__mpz_struct): mp_size_t => int. 30948 30949 * mpz/invert.c: #include "gmp-impl.h". 30950 Use MPZ_TMP_INIT, not mpz_init. 30951 30952 * mpz/gcdext.c: Rewrite to call mpn_gcdext. 30953 30954 Fri Jun 14 18:05:29 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30955 30956 * mpn/generic/gcdext.c (s0size): New parameter. 30957 * gmp.h (mpn_gcdext): Update prototype. 30958 30959 * mpn/generic/gcdext.c: Major rewrite. 30960 30961 Mon Jun 10 00:14:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30962 30963 * mpn/generic/dump.c: Add missing `else'. 30964 30965 Fri Jun 7 03:35:12 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30966 30967 * Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html. 30968 30969 Thu Jun 6 19:00:53 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30970 30971 * Version 2.0.2 released. 30972 30973 * install.sh: New file. 30974 * Makefile.in (INSTALL): Use install.sh. 30975 (install-normal): New name for target `install'. 30976 (install): New dummy target. 30977 30978 * mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0). 30979 * mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0). 30980 30981 * config/mt-linux (AR_FLAGS): New file. 30982 * configure.in: Use config/mt-linux for all linux systems. 30983 30984 Tue Jun 4 03:42:18 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 30985 30986 * Version 2.0.1 released. 30987 30988 * mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type. 30989 30990 * extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if. 30991 30992 * insert-double.c: Don't #include stdlib.h. 30993 30994 * gmp-impl.h (union ieee_double_extract): Test sparc and __sparc. 30995 Do not test __sparc__. 30996 30997 * mpf/reldiff.c: Change declaration to work around irix5 compiler bug. 30998 * mpq/equal.c: Likewise. 30999 31000 * mpn/generic/gcd.c: Delete spurious comma at end of enumeration. 31001 31002 * mpn/generic/gcdext.c: Add K&R declaration syntax. 31003 * stack-alloc.h: Likewise. 31004 * insert-double.c: Likewise. 31005 * extract-double.c: Likewise. 31006 * mpf/tests/reuse.c: Likewise. 31007 * mpz/tests/reuse.c: Likewise. 31008 * mpf/tests/t-sub.c: Likewise. 31009 * mpf/tests/t-add.c: Likewise. 31010 * mpf/tests/t-muldiv.c: Likewise. 31011 * mpf/tests/t-conv.c: Likewise. 31012 * mpf/tests/ref.c: Likewise. 31013 31014 * mpn/config/t-oldgas: Renamed from t-freebsd. 31015 * mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux 31016 configurations. 31017 31018 * mpn/powerpc32/mul_1.s: Really clear cy before entering loop. 31019 * mpn/powerpc32/*.s: Fix power/powerpc syntax issues. 31020 31021 * mpn/config/t-ppc-aix: New file. 31022 * mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power. 31023 31024 Wed May 29 02:07:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31025 31026 * gmp.h (mp_bits_per_limb): Change qualifier from `const' to 31027 __gmp_const. 31028 31029 * gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter. 31030 * mpf/iset_str.c: Likewise. 31031 31032 Mon May 27 00:15:58 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31033 31034 * gmp-impl.h: Declare __gmp_extract_double. 31035 31036 * mpz/set_q.c: Delete unused variables. 31037 31038 * gmp.h (mpq_equal): Declare. 31039 31040 * mpf/eq.c: mpf_cmp2 -> mpf_eq. 31041 31042 Fri May 24 03:20:44 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31043 31044 * mpz/iset_d.c: Don't include <math.h>. 31045 31046 * insert-double.c (__gmp_scale2): New name for scal2. 31047 * mpz/get_d.c: Corresponding change. 31048 * mpf/get_d.c: Likewise. 31049 * mpq/get_d.c: Likewise. 31050 * gmp-impl.h: Declare __gmp_scale2. 31051 31052 * mpn/generic/scan0.c: Clarify comment. 31053 31054 * mpz/set_q.c: New file. 31055 * Makefile.in: Compile it. 31056 * make.bat: Likewise. 31057 * gmp.h: Declare mpz_set_q. 31058 31059 * insert-double.c: New file. 31060 * Makefile.in: Compile it. 31061 * make.bat: Likewise. 31062 31063 * mpz/get_d.c: New file. 31064 * mpz/Makefile.in: Compile it. 31065 * make.bat: Likewise. 31066 * gmp.h: Declare mpz_get_d. 31067 31068 * mpf/get_d.c: New file. 31069 * mpf/Makefile.in: Compile it. 31070 * make.bat: Likewise. 31071 * gmp.h: Declare mpf_get_d. 31072 31073 * make.bat: Compile things in alphabetical order. 31074 31075 * gmp-impl.h (MP_BASE_AS_DOUBLE): New #define. 31076 (LIMBS_PER_DOUBLE): New #define. 31077 31078 * extract-double.c: New file. 31079 * Makefile.in: Compile it. 31080 * make.bat: Likewise. 31081 * mpz/set_d.c: Rewrite to use __gmp_extract_double. 31082 * mpf/set_d.c: Likewise. 31083 31084 * mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up. 31085 31086 Wed May 22 02:48:35 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31087 31088 * gmp-impl.h: Rework code for defining ieee_double_extract. 31089 (IEEE_DOUBLE_BIG_ENDIAN): Macro removed. 31090 (_GMP_IEEE_FLOATS): New macro. 31091 * mpn/vax/gmp-mparam.h: Delete. 31092 31093 * mpn/config/t-pwr-aix: New file. 31094 * mpn/configure.in: Use t-pwr-aix for aix 4 and later. 31095 31096 Mon May 20 16:30:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31097 31098 * gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols. 31099 31100 * mpf/tests/t-add.c (oo): Add some `l' printf modifiers. 31101 * mpf/tests/t-sub.c (oo): Likewise. 31102 * mpf/tests/t-conv.c (oo): Likewise. 31103 * mpf/tests/t-sqrt.c (oo): Likewise. 31104 31105 * mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables. 31106 31107 * mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers. 31108 31109 Fri May 17 02:24:43 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31110 31111 * mpz/set_d.c: Call _mpz_realloc. 31112 31113 * mpq/set_z.c: New file. 31114 * mpq/Makefile.in: Compile it. 31115 * make.bat: Likewise. 31116 * gmp.h: Declare mpq_set_z. 31117 31118 * mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in. 31119 * mpf/Makefile.in (test): Delete spurious target. 31120 * mpq/Makefile.in (test): Likewise. 31121 31122 * mpf/out_str.c: Use `e' to separate exponent when base <= 10. 31123 31124 * mpn/configure.in: Treat ultrasparc just like sparc v8, 31125 until 64-bit compilers are ready. 31126 31127 * mpf/set_d.c: Make it work for 64-bit machines. 31128 31129 Thu May 16 20:53:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31130 31131 * gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian 31132 machines. 31133 * mpn/x86/gmp-mparam.h: Delete file. 31134 31135 * configure.in: Treat microsparc like sparc8. 31136 31137 * urandom.h: Test __alpha instead of __alpha__, since the former 31138 is the standard symbol. 31139 * mpn/generic/random2.c: Likewise. 31140 * mpf/random2.c: Likewise. 31141 31142 Tue May 14 13:42:39 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) 31143 31144 * mpz/set_f.c: New file. 31145 * mpz/Makefile.in: Compile it. 31146 * gmp.h: Declare mpz_set_f. 31147 31148 * mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms. 31149 31150 Tue May 14 13:03:07 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) 31151 31152 * make.bat: Add all new files. 31153 31154 Sun May 12 22:24:36 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31155 31156 * mpf/set_z.c: New file. 31157 * mpf/Makefile.in: Compile it. 31158 * gmp.h: Declare mpf_set_z. 31159 31160 Sat May 11 19:26:25 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31161 31162 * gmp.h: Declare mpf_set_q. 31163 31164 * mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call. 31165 31166 Fri May 10 17:37:38 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31167 31168 * mpf/set_q.c: New file. 31169 * mpf/Makefile.in: Compile it. 31170 31171 * config.sub: Recognize sparc8. 31172 31173 Wed May 8 09:19:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31174 31175 * mpf/tests/t-dm2exp.c: New file. 31176 31177 * mpf/tests/t-add.c: Correct header comment. 31178 * mpf/tests/t-sub.c: Likewise. 31179 * mpf/tests/t-sqrt.c: Likewise. 31180 31181 * mpf/div.c: Misc variable name cleanups. 31182 * mpf/div_ui.c: Base more closely on mpf/div.c. 31183 * mpf/ui_div.c: Likewise. 31184 31185 * mpz/tests/Makefile.in (check): Depend on Makefile. 31186 * mpq/tests/Makefile.in (check): Likewise. 31187 * mpf/tests/Makefile.in (check): Likewise. 31188 31189 * mpf/tests/t-muldiv.c: New file. 31190 * mpf/tests/Makefile.in: Compile and run `t-muldiv'. 31191 (t-ref.o): Delete spurious rule. 31192 31193 * mpf/sqrt.c: Properly detect negative input operand. 31194 31195 * mpf/sqrt_ui.c: Delete spurious header comment. 31196 * mpf/sqrt.c: Likewise. 31197 * mpz/sqrt.c: Likewise. 31198 31199 * mpz/tests/reuse.c (main): Read `reps' from command line. 31200 31201 * mpf/tests/reuse.c: New file. 31202 * mpf/tests/Makefile.in: Compile and run `reuse'. 31203 31204 * mpf/mul_ui.c: Disable code for removing low zero limbs. 31205 31206 * mpf/div.c: Fix condition for when vp and qp overlaps. 31207 31208 * mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs. 31209 31210 * mpf/out_str.c: Don't output '\n' after exponent. 31211 31212 * mpf/add_ui.c: New special case for when U is completely cancelled. 31213 31214 Wed Apr 24 05:33:28 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31215 31216 * Version 2.0 released. 31217 31218 * All files: Update FSF's address. 31219 31220 * Makefile.in (gmp_toc.html): New name for gmp.html. 31221 (TAGS): Depend on force. 31222 31223 * mpf/tests/t-conv.c: Pass -base to mpf_set_str. 31224 31225 Sat Apr 20 03:54:06 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31226 31227 * Makefile.in (ps): New target, depend on gmp.ps. 31228 31229 Fri Apr 19 14:03:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31230 31231 * mpf/out_str.c: Print `@' before exponent, not `e'. 31232 31233 * make.bat: Update from Makefiles. 31234 31235 Thu Apr 18 01:22:05 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31236 31237 * mpf/set_str.c: If parameter `base' is negative, expect exponent 31238 to be decimal, otherwise in the same base as the mantissa. 31239 31240 Wed Apr 17 17:28:36 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31241 31242 * mpf/set_dfl_prec.c: Don't return anything. 31243 * gmp.h: Corresponding changes. 31244 31245 * mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts. 31246 * mpf/init2.c: Likewise. 31247 * mpf/get_prc.c: Likewise. 31248 * mpf/set_prc.c: Likewise. 31249 * mpf/set_prc_raw.c: Likewise. 31250 * mpz/popcount.c: Likewise. 31251 * mpz/hamdist.c: Likewise. 31252 * mpz/scan1.c: Likewise. 31253 * mpz/scan0.c: Likewise. 31254 * mpn/generic/popcount.c: Likewise. 31255 * mpn/generic/hamdist.c: Likewise. 31256 * mpn/generic/scan1.c: Likewise. 31257 * mpn/generic/scan0.c: Likewise. 31258 * gmp.h: Likewise. 31259 31260 * mpf/eq.c: New file, based on mpf/diff.c. 31261 * mpf/diff.c: Delete. 31262 * mpf/Makefile.in: Corresponding changes. 31263 * gmp.h: Likewise. 31264 31265 * mpf/reldiff.c: New file. 31266 * mpf/Makefile.in: Compile it. 31267 * gmp.h: Declare mpf_reldiff. 31268 31269 * mpz/iset_d.c: New file. 31270 * mpz/Makefile.in: Compile it. 31271 * gmp.h: Declare mpz_init_set_d. 31272 31273 Tue Apr 16 16:28:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31274 31275 * Makefile.in (gmp.html): Pass -acc to texi2html. 31276 31277 Mon Apr 15 16:20:24 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31278 31279 * mpf/set_str.c: Switch off code for defaulting the base from the 31280 leading characters. 31281 31282 * gmp.h (mp?_sign): Delete. 31283 (mp?_sgn): New macros. 31284 31285 Fri Apr 12 17:23:33 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31286 31287 * Makefile.in (gmp.dvi): Delete tmp.* at end of rule. 31288 31289 Wed Apr 10 22:52:02 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) 31290 31291 * mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t. 31292 * gmp.h: Corresponding change. 31293 31294 * gmp.h (mp_bits_per_limb): Make it const. 31295 31296 Sat Mar 30 01:20:23 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31297 31298 * configure.in: Re-enable recognition of with_gcc. 31299 31300 * mpf/Makefile.in (.c.o): Pass XCFLAGS. 31301 * mpn/Makefile.in (.c.o): Likewise. 31302 * mpz/Makefile.in (.c.o): Likewise. 31303 * mpq/Makefile.in (.c.o): Likewise. 31304 * mpbsd/Makefile.in (.c.o): Likewise. 31305 * mpf/tests/Makefile.in (.c.o): Likewise. 31306 * mpz/tests/Makefile.in (.c.o): Likewise. 31307 * mpq/tests/Makefile.in (.c.o): Likewise. 31308 31309 * Makefile.in (XCFLAGS): Default to empty. 31310 (FLAGS_TO_PASS): Pass on XCFLAGS. 31311 (.c.o): Pass XCFLAGS. 31312 31313 * config/mt-m88110 (XCFLAGS): Define instead of CC. 31314 * config/mt-sprc8-gcc (XCFLAGS): Likewise. 31315 * config/mt-supspc-gcc (XCFLAGS): Likewise. 31316 31317 * configure: Don't default CC to "gcc -O2" is -with-gcc=no was 31318 specified. 31319 31320 Mon Mar 25 01:07:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31321 31322 * urandom.h: Test for __SVR4 in addition to __svr4__. 31323 31324 * mp_bpl.c (mp_bits_per_limb): Declare as `const'. 31325 31326 * Makefile.in (CFLAGS): `-O2' => `-O'. 31327 * mpn/Makefile.in (CFLAGS): Likewise. 31328 31329 * gmp-impl.h: Get rid of obsolete field access macros. 31330 31331 * mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris 31332 cc compiler bug. 31333 31334 * gmp.h (__MPN): Make it work also for non-ANSI compilers. 31335 31336 Thu Mar 21 01:07:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31337 31338 * mpf/sub.c: New special case for ediff <= 1 before generic code. 31339 Simplify generic code for ediff == 0. 31340 Rename uexp => exp. 31341 31342 Mon Mar 11 18:24:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31343 31344 * mpf/tests/*.c: Use ref_mpf_sub for error calculation. 31345 * mpf/tests/Makefile.in: Link ref.o to all executables. 31346 31347 * mpf/tests/t-sub.c: Make u = v + 1 with 50% probability. 31348 31349 Sun Mar 10 21:03:17 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) 31350 31351 * mpf/get_str.c: In digit development loop for fractions, change 31352 loop condition from `<' to `<='. 31353 31354 Thu Mar 7 04:58:11 1996 Torbjorn Granlund <tege@tiny.matematik.su.se> 31355 31356 * mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning. 31357 31358 Wed Mar 6 01:10:42 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31359 31360 * mpf/tests/t-sqrt.c: New file. 31361 * mpf/tests/Makefile.in: Corresponding changes. 31362 31363 * mpf/sqrt.c: Special case for square root of zero. 31364 31365 * mpq/add.c: Clean up variable names. 31366 * mpq/sub.c: Update from mpq/add.c. 31367 31368 * mpz/divexact.c: abs => ABS. 31369 * mpz/gcd.c: Likewise. Rewrite final fixup code, to decrease 31370 allocation. Misc cleanups. 31371 31372 Tue Mar 5 22:24:56 1996 Torbjorn Granlund <tege@matematik.su.se> 31373 31374 * mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout. 31375 31376 * gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes. 31377 31378 * mpn/configure.in: Use t-freebsd also for netbsd. 31379 31380 Mon Mar 4 15:13:28 1996 Torbjorn Granlund <tege@matematik.su.se> 31381 31382 * mpq/Makefile.in (cmp.o): Depend on longlong.h. 31383 31384 * mpq/equal.c: New file. 31385 * mpq/Makefile.in: Corresponding changes. 31386 31387 * mpf/tests/t-add.c: New file. 31388 * mpf/tests/t-sub.c: Renamed from t-addsub.c. 31389 * mpf/tests/ref.c: New file. 31390 * mpf/tests/Makefile.in: Corresponding changes. 31391 31392 * gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines. 31393 31394 Sun Mar 3 07:45:46 1996 Torbjorn Granlund <tege@matematik.su.se> 31395 31396 * mpf/set_str.c: In exponentiation code, allocate 3 extra 31397 limbs, not just 2. 31398 31399 * mpf/get_str.c: Allocate sufficient space for tstr. 31400 When calculating exp_in_base, round result down. 31401 31402 * mpf/tests/t-conv.c: New file. 31403 * mpf/tests/Makefile.in: Corresponding changes. 31404 31405 * mp_bpl.c: New file. 31406 * gmp.h: Declare it. 31407 * Makefile.in: Corresponding changes. 31408 31409 Sat Mar 2 06:27:56 1996 Torbjorn Granlund <tege@matematik.su.se> 31410 31411 * mpf/set_prc_raw.c: New file. 31412 * mpf/set_prc.c: Renamed from set_prec.c. 31413 * mpf/get_prc.c: New file. 31414 * mpf/Makefile.in: Corresponding changes. 31415 * gmp.h: Declare new functions. 31416 31417 * mpn/generic/gcdext.c: Add copyright header. 31418 31419 Fri Mar 1 01:22:24 1996 Torbjorn Granlund <tege@matematik.su.se> 31420 31421 * mpn/configure.in: For ppc601, search "power" before "powerpc32". 31422 31423 * mp?/Makefile.in (AR_FLAGS): New variable. 31424 (libmp?.a): Use it. 31425 31426 * make.bat: New file. 31427 * mpn/msdos: New directory. 31428 * mpn/msdos/asm-syntax.h: New file. 31429 31430 * mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h. 31431 31432 * config.sub: Recognize [ctj]90-cray. 31433 31434 * mpn/configure.in: Recognize [ctj]90-cray-unicos*. 31435 31436 * mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros. 31437 31438 * mpn/generic/gcd.c: Split increment from use of USIZE to avoid 31439 undefined behaviour. 31440 31441 Thu Feb 29 04:11:24 1996 Torbjorn Granlund <tege@matematik.su.se> 31442 31443 * Makefile.in (install-info-files): Update for new install-info 31444 behaviour. 31445 31446 * mpn/power/add_n.s: Rewrite. 31447 * mpn/power/sub_n.s: Rewrite. 31448 31449 Wed Feb 28 01:34:30 1996 Torbjorn Granlund <tege@matematik.su.se> 31450 31451 * mpz/pow_ui.c: Compute allocation more aggressively for small bases. 31452 * mpz/ui_pow_ui.c: Likewise. 31453 31454 * mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1. 31455 31456 * mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB. 31457 * mpn/generic/gcd.c: Likewise. 31458 (SIGN_BIT): Compute differently. 31459 31460 Mon Feb 26 00:07:36 1996 Torbjorn Granlund <tege@matematik.su.se> 31461 31462 * All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t. 31463 31464 * Makefile.in (install, install-bsdmp, install-info-files): Depend 31465 on installdirs. chmod all installed files. 31466 31467 Sun Feb 25 01:47:41 1996 Torbjorn Granlund <tege@matematik.su.se> 31468 31469 * mpbsd/configure.in: Delete debugging code. 31470 31471 * All Makefile.in: Update clean targets. 31472 31473 * Makefile.in (AR_FLAGS): New variable. 31474 (libgmp.a): Use it. 31475 (libmp.a): Likewise. 31476 31477 * VERSION: Delete file. 31478 31479 * Makefile.in (installdirs): New target. 31480 * mkinstalldirs: New file (from the texinfo package). 31481 31482 * Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables. 31483 (MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables. 31484 (install-info): New target. 31485 (install, install-bsdmp): Depend on install-info. 31486 ($(srcdir)/gmp.info): Changed from plain gmp.info; put info files 31487 into source directory. 31488 (distclean, mostlyclean): New targets. 31489 (maintainer-clean): New name for realclean. 31490 (uninstall): New target. 31491 (TAGS): New target. 31492 (info, dvi): New targets. 31493 (.PHONY): Assign. 31494 31495 * Makefile.in (install, install-bsdmp): Use INSTALL_DATA. 31496 31497 * mp{n,z,f,bsd}/move-if-change: Delete. 31498 31499 * mpbsd/Makefile.in (stamp-stddefh): Delete target. 31500 31501 * Makefile.in (.c.o): Pass CFLAGS last. 31502 * mpbsd/Makefile.in (.c.o): Likewise. 31503 * mpf/Makefile.in (.c.o): Likewise. 31504 * mpq/Makefile.in (.c.o): Likewise. 31505 * mpz/Makefile.in (.c.o): Likewise. 31506 * mpn/Makefile.in (.c.o): Likewise. 31507 (.S.o): Likewise. 31508 31509 * memory.c: Change allocation error message. 31510 31511 * Makefile.in (install): Prefix gmp.h with $(srcdir). 31512 (install-bsdmp): Prefix mp.h with $(srcdir). 31513 31514 * mp{n,z,f,bsd}/{configure,config.sub}: Delete. 31515 31516 * Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation 31517 (install targets): Install gmp.info-N. 31518 31519 Sat Feb 24 03:36:52 1996 Torbjorn Granlund <tege@matematik.su.se> 31520 31521 * mpf/get_str.c: Fix typo. 31522 31523 * mpz/legendre.c: Clarify expression with extra parens. 31524 31525 * version.c (gmp_version): Not static. 31526 31527 * mpf/iset_str.c: Properly return error code. 31528 31529 * mpf/add.c: Delete unused variables. 31530 * mpf/inp_str.c: Likewise. 31531 * mpq/get_d.c: Likewise. 31532 31533 * mpn/generic/dump.c: #include <stdio.h>. 31534 * mpf/dump.c: Likewise. 31535 * mpf/set_str.c: #include <ctype.h>. 31536 (strtol): Declare. 31537 31538 * gmp.h: mpn_sqrt => mpn_sqrtrem. 31539 31540 * Makefile.in (clean, realclean): Clean in mpbsd. 31541 (check): Test in mpf. 31542 31543 * mpf/Makefile.in (clean): Clean in tests. 31544 * mpq/Makefile.in (clean): Clean in tests. 31545 31546 * mpf/tests/Makefile.in: New file. 31547 * mpf/tests/configure.in: New file. 31548 * mpf/tests/t-addsub.c: New file. 31549 31550 * mpf/sub_ui.c: Simply call mpf_sub for now. 31551 31552 * mpf/sub.c: Increase prec by 1. 31553 * mpf/ui_sub.c: Likewise. 31554 31555 Fri Feb 23 00:59:54 1996 Torbjorn Granlund <tege@matematik.su.se> 31556 31557 * mpf/ui_sub.c: Fix typos. 31558 31559 * mpf/get_str.c: When allocating space for tmp, allow for an extra 31560 limb. In code for fraction conversion, add special case for bases 31561 that are a power of 2. 31562 31563 * mpf/out_str.c: Output leading "0.". 31564 Default base to 10, before computing string allocation. 31565 31566 * mpf/get_str.c: Make variables for string size have type size_t. 31567 * gmp.h: Corresponding change. 31568 31569 * mpf/random2.c: Allow creation of prec+1 large mantissas. 31570 31571 * mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0. 31572 Fix typo in MPN_COPY offset. 31573 * mpf/sub_ui.c: Analogous changes. 31574 31575 * mpf/set_prec.c: Rewrite. 31576 31577 * mpf/init2.c: Compute precision as in set_prec.c. 31578 31579 * mpf/div_2exp.c: Special case for u == 0. 31580 * mpf/mul_2exp.c: Likewise. Write r->_mp_size always. 31581 31582 * mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem. 31583 * mpf/sqrt.c: Likewise. When computing new exponent, round quotient 31584 towards -infinity. 31585 31586 * mpf/add.c: Fix typos. 31587 * mpf/sub.c: Fix typos. 31588 31589 Thu Feb 22 00:24:48 1996 Torbjorn Granlund <tege@matematik.su.se> 31590 31591 * mpz/Makefile.in (stamp-stddefh): Delete target. 31592 (test): Delete target. 31593 * Makefile.in (stamp-stddefh): Delete target. 31594 (cre-stddefh.o): Delete target. 31595 (gmp.dvi): Set TEXINPUTS before invoking tex. 31596 31597 * cre-stddefh.c: Delete. 31598 31599 * mpz/sqrt.c: Fix typo. 31600 31601 * mpz/powm.c: Special case for mod == 0. 31602 * mpz/powm_ui.c: Likewise. 31603 31604 * mpz/get_si.c: Handle -0x80000000 correctly. 31605 31606 * mpz/inp_str.c: Now returns size_t. 31607 Make it return number of bytes read or error indication. 31608 * mpf/inp_str.c: Likewise. 31609 31610 * mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications. 31611 * mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base. 31612 * mpz/inp_binary.c: Delete. 31613 31614 * mpn/Makefile.in (XCFLAGS): Remove variable. 31615 (.c.o): Don't pass XCFLAGS. 31616 (SFLAGS): Set to nothing. 31617 (.S.o): Pass SFLAGS, not XCFLAGS. 31618 31619 * mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS. 31620 31621 * mpf/out_str.c: Make return number of bytes written or error 31622 indication. 31623 * mpz/out_str.c: Likewise. 31624 * gmp.h: Corresponding changes. 31625 31626 * gmp.h (__mpz_struct): mp_size_t => int. 31627 (__mpq_struct): Likewise. 31628 (__mpf_struct): Likewise. 31629 (mp_size_t): int => long int. 31630 31631 * mpn/cray: New directory. 31632 * mpn/cray/gmp-mparam.h: New file. 31633 * mpn/configure.in: Recognize cray variants. 31634 31635 * Makefile.in: Set defaults for prefix, libdir, etc. 31636 (install): New target. 31637 (install-bsdmp): New target. 31638 (gmp.html): New target. 31639 31640 * stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison. 31641 31642 Wed Feb 21 04:35:02 1996 Torbjorn Granlund <tege@matematik.su.se> 31643 31644 * gmp.h: Sort mpn declarations. 31645 (mpn_gcdext): Add declaration. 31646 31647 * mpn/generic/divrem_1.c: New file. 31648 * mpn/Makefile.in (divrem_1.o): New rule. 31649 * configure.in (functions): Add divrem_1. 31650 31651 * mpn/generic/divmod.c: Delete file. 31652 * mpn/configure.in (functions): Delete divmod. 31653 * Makefile.in (divmod.o): Delete rule. 31654 * gmp.h (mpn_divmod): New #define. 31655 31656 * gmp.h (mpn_next_bit_set): Delete spurious declaration. 31657 31658 * mpn/generic/divrem.c (default case): In code assigning 31659 most_significant_q_limb, move reassignment of n0 into if statement. 31660 31661 * gmp.h (mpf_inp_str): Fix typo. 31662 (mpf_out_str): Make prototype match reality. 31663 * mpf/inp_str.c: New file. 31664 * mpf/out_str.c: New file. 31665 * mpf/Makefile.in: Compile new files. 31666 31667 * mpn/Makefile.in (dump.o): Fix dependency path. 31668 (inlines.o): Likewise. 31669 31670 * mpn/configure.in: Make m68060 be the same as m68000. Clean up 31671 m68k configs. 31672 31673 Tue Feb 20 01:35:11 1996 Torbjorn Granlund <tege@matematik.su.se> 31674 31675 * mpn/generic/sqrtrem.c: Renamed from sqrt. 31676 * mpn/configure.in (functions): Corresponding change. 31677 * mpn/Makefile.in: Likewise. 31678 * mpz/sqrtrem.c: Likewise. 31679 * mpz/sqrt.c: Likewise. 31680 * mpn/generic/perfsqr.c: Likewise. 31681 31682 * Makefile.in (clean): Also remove libmp.a. 31683 Don't compile cre-conv-tab.c or mp_bases.c. 31684 cre-conv-tab.c: Delete file. 31685 (gmp.ps): New rule. 31686 31687 * mpn/mp_bases.c: New file. 31688 * mpn/Makefile.in: Compile mp_bases.c. 31689 31690 * mpz/set_str.c: Skip initial whitespace. 31691 * mpf/set_str.c: Likewise. 31692 * mpbsd/xtom.c: Likewise. 31693 31694 * gmp.h: Add missing mpz declarations. 31695 Delete all formal parameter names from declarations. 31696 31697 * mpn/Makefile.in: Add dependencies for .c files. 31698 31699 * Makefile.in (check): Write recursive make calls separately, not as 31700 a loop. 31701 (FLAGS_TO_PASS): New variable. Use it for most recursive makes. 31702 31703 Mon Feb 19 01:02:20 1996 Torbjorn Granlund <tege@matematik.su.se> 31704 31705 * mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete 31706 lines starting with #. 31707 (CPP): Set to $(CC) -E to avoid gcc dependency. 31708 31709 * mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX. 31710 31711 * mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment 31712 code. 31713 * mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise. 31714 31715 * gmp.h: Fix typos in #defines of recently added mpn functions. 31716 31717 * mpz/inp_str.c: Skip all whitespace, not just plain space. 31718 * mpbsd/min.c: Likewise. 31719 31720 * mpn/configure.in (functions): Add gcdext. 31721 * mpn/generic/gcdext.c: New file. 31722 31723 * mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp. 31724 31725 * gmp.h: Surround mpn declarations with extern "C" { ... }. 31726 31727 * Makefile.in (check): New target. 31728 31729 * mpq/get_d.c: Update comments. Use rsize instead of dsize + N_QLIMBS 31730 when possible. Add special case for nsize == 0. 31731 31732 * gmp.h (mpq_get_d): Add declaration. 31733 (mpq_canonicalize): Likewise. 31734 (mpq_cmp_ui): Likewise. 31735 (mpf_diff): Likewise. 31736 (mpf_ui_sub): Likewise. 31737 (mpf_set_prec): Likewise. 31738 (mpf_random2): Likewise. 31739 31740 * gmp.h (mpz_cmp_ui): New #define. 31741 (mpz_cmp_si): New #define. 31742 (mpq_cmp_ui): New #define. 31743 (mpz_sign): New #define. 31744 (mpq_sign): New #define. 31745 (mpf_sign): New #define. 31746 (mpq_numref): New #define. 31747 (mpq_denref): New #define. 31748 31749 * mpq/set_z.c: File deleted. 31750 * mpq/Makefile.in: Corresponding changes. 31751 31752 Sun Feb 18 01:34:47 1996 Torbjorn Granlund <tege@matematik.su.se> 31753 31754 * mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc. 31755 31756 * mpz/inp_binary.c: Default stream to stdin. 31757 * mpz/inp_str.c: Likewise. 31758 * mpz/inp_raw.c: Likewise. 31759 * mpz/out_binary.c: Default stream to stdout. 31760 * mpz/out_raw.c: Likewise. 31761 * mpz/out_str.c: Likewise. 31762 31763 * mpbsd/realloc.c: New file. 31764 * mpbsd/Makefile.in: Corresponding changes. 31765 31766 * mpbsd/min.c: Rewrite (base on mpz/inp_str.c). 31767 * mpbsd/mtox.c: Rewrite (base on mpz/get_str.c). 31768 31769 * mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output 31770 spaces in each 10th position. 31771 * mpbsd/xtom.c: Rewrite (base on mpz/set_str). 31772 31773 * mpq/tests/Makefile.in (st-cmp): New file. 31774 * mpq/tests/configure.in (srcname): New file. 31775 31776 * mpz/tests/configure.in (srcname): Fix typo. 31777 31778 * mpq/cmp.c: Add check using number of significant bits, to avoid 31779 general multiplication. 31780 31781 Sat Feb 17 11:58:30 1996 Torbjorn Granlund <tege@matematik.su.se> 31782 31783 * mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls. 31784 31785 * mpq/tests: New directory. 31786 * mpq/tests/t-cmp.c: New file. 31787 * mpq/tests/t-cmp_ui.c: New file. 31788 31789 * mpz/tests/dive.c (main): Generate zero numerator. 31790 (get_random_size) : Delete. 31791 31792 * mpz/divexact.c: Add special case for 0/x. 31793 31794 * gmp.h (mpz_mod): Add declaration. 31795 31796 Fri Feb 16 18:18:39 1996 Andreas Schwab <schwab@informatik.uni-dortmund.de> 31797 31798 * mpn/m68k/*: Rewrite code not to use the INSN macros. 31799 (L): New macro to properly prefix local labels for ELF. 31800 31801 Fri Feb 16 00:20:56 1996 Torbjorn Granlund <tege@matematik.su.se> 31802 31803 * gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for 31804 fields. 31805 * mpn/generic/inlines.c (_FORCE_INLINES): New #define. Delete 31806 conditional __GNUC__. 31807 * gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1): 31808 Only define these if __GNUC__ || _FORCE_INLINES. 31809 * mpf/random2.c: Add missing parameter in non-ANSI header. 31810 * mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug 31811 in AIX compilers. 31812 * mpq/get_d.c: #define N_QLIMBS. 31813 * mpz/divexact.c: Obscure division by 0 to silent compiler warnings. 31814 * stack-alloc.c: Cast void* pointer to char* before doing arithmetic 31815 on it. 31816 31817 * Makefile.in (mpbsd/libmpbsd.a): New rule. 31818 * configure.in (configdirs): Add mpbsd. 31819 31820 * gmp.h: Add declarations for a few missing mpn functions. 31821 31822 * Makefile.in (libmp.a): New rule. 31823 31824 * mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c" 31825 * gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block. 31826 * mp.h: Likewise. Update typedefs from gmp.h. 31827 * mpbsd/configure.in: New file. 31828 * mpbsd/Makefile.in: New file. 31829 * mpbsd/configure: Link to master configure. 31830 * mpbsd/config.sub: Link to master config.sub. 31831 31832 * Makefile.in: Set RANLIB_TEST. 31833 * (libgmp.a): Use it. 31834 * (libgmp.a): Do ranlib before moving the libgmp.a to the build 31835 directory. 31836 * mp?/Makefile.in: Don't use or set RANLIB. 31837 31838 Thu Feb 15 16:38:41 1996 Torbjorn Granlund <tege@matematik.su.se> 31839 31840 * mpz/add_ui.c: MP_INT => mpz_t. 31841 * mpz/cmp_ui.c: Likewise. 31842 * mpz/fac_ui.c: Likewise. 31843 * mpz/inp_binary.c: Likewise. 31844 * mpz/inp_raw.c: Likewise. 31845 * mpz/legendre.c: Likewise. 31846 * mpz/jacobi.c: Likewise. 31847 * mpz/out_binary.c: Likewise. 31848 * mpz/out_raw.c: Likewise. 31849 * mpz/random2.c: Likewise. 31850 * mpz/random.c: Likewise. 31851 * mpz/realloc.c: Likewise. 31852 31853 * mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0), 31854 __mpz_odd_less1_2factor => mpz_scan1(X,1). 31855 * mpz/ntsup.c: File deleted. 31856 * mpz/Makefile.in: Corresponding changes. 31857 31858 * mpz/pprime_p: Use mpz_scan1 to avoid looping. 31859 31860 * mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'. 31861 * mpz/pprime_p.c: Pass long to *_ui functions. 31862 * mpz/gcdext.c: Likewise. 31863 * mpz/fdiv_r_2exp.c: Likewise. 31864 * mpz/fac_ui.c: Likewise. 31865 31866 * mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0. 31867 31868 * mpz/tests/Makefile.in (st-sqrtrem): Fix typo. 31869 31870 * mpz/cmp_ui.c: #undef mpz_cmp_ui. 31871 * mpz/cmp_si.c: #undef mpz_cmp_si. 31872 * gmp.h (mpz_cmp_ui): New #define. 31873 (mpz_cmp_si): New #define. 31874 31875 Wed Feb 14 22:11:24 1996 Torbjorn Granlund <tege@matematik.su.se> 31876 31877 * gmp.h: Test __cplusplus in addition to __STDC__. 31878 * gmp-impl.h: Likewise. 31879 31880 * gmp.h: Surround declarations with extern "C" { ... }. 31881 31882 Tue Feb 13 15:20:45 1996 Torbjorn Granlund <tege@matematik.su.se> 31883 31884 * mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE. 31885 * mpz/tdiv_r_2exp.c: Likewise. 31886 31887 * mpz/fdiv_r_2exp.c: New file. 31888 * mpz/fdiv_q_2exp.c: New file. 31889 * mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c. 31890 * mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c 31891 * mpz/Makefile.in: Corresponding changes. 31892 31893 * mpz/scan0.c,scan1.c: New files. 31894 * mpz/Makefile.in: Compile them. 31895 31896 * gmp.h (mpn_normal_size): Delete. 31897 31898 * config.guess: Update from Cygnus version. 31899 31900 * mpn/m68k/rshift.S: Use INSN2 macro for lea instructions. 31901 * mpn/m68k/lshift.S: Likewise. 31902 31903 * mpn/configure.in: Fix configuration for plain 68000. 31904 31905 Mon Feb 12 01:06:06 1996 Torbjorn Granlund <tege@matematik.su.se> 31906 31907 * mpz/tests/t-powm.c: Generate negative BASE operand. 31908 31909 * mpz/powm.c: Make result always positive. 31910 31911 Sun Feb 11 01:44:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31912 31913 * mpz/tests/*.c: Add t- prefix. 31914 * mpz/tests/Makefile.in: Corresponding changes. 31915 * mpz/tests/configure.in: Update srctrigger. 31916 31917 * mpz/tests/gcd.c: Generate negative operands. 31918 * mpz/tests/gcd2.c: Likewise. 31919 31920 * mpz/gcdext.c: At end, if G is negative, negate all G, S, and T. 31921 31922 Thu Feb 8 17:16:12 UTC 1996 Ken Weber <kweber@mat.ufrgs.br> 31923 31924 * mp{z,n}/gcd.c: Change mpn_gcd interface. 31925 * gmp.h: Ditto. 31926 * gmp.texi: update documentation. 31927 31928 Mon Feb 7 23:58:43 1996 Andreas Schwab <schwab@informatik.uni-dortmund.de> 31929 31930 * mpn/m68k/{lshift,rshift}.S: New files. 31931 * mpn/m68k/syntax.h: New ELF_SYNTAX macros. 31932 (MEM_INDX, R, PROLOG, EPILOG): New macros. 31933 * mpn/m68k/*.S: Use R macro with register name. Use PROLOG and EPILOG 31934 macros. Rename `size' to `s_size' or s1_size to avoid clash with ELF 31935 .size directive. 31936 * mpn/configure.in: New target m68k-*-linux*. 31937 31938 Wed Feb 7 07:41:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31939 31940 * Makefile.in (cre-conv-tab): Workaround for SunOS make. 31941 31942 * mpz/tests/reuse.c: New file. 31943 * mpz/tests/Makefile.in: Handle reuse.c. 31944 31945 Tue Feb 6 11:56:24 UTC 1996 Ken Weber <kweber@mat.ufrgs.br> 31946 31947 * mpz/gcd.c: Fix g->size when one op is 0 and g == other op. 31948 31949 Tue Feb 6 01:36:39 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31950 31951 * gmp.h (mpz_divexact): Delete parameter names. 31952 (mpz_lcm): Delete spurious declaration. 31953 31954 * mpz/dmincl.c: Fix typo. 31955 31956 Mon Feb 5 01:11:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31957 31958 * mpn/generic/gcd.c (gcd_2): Declare consistently. 31959 31960 * mpz/tdiv_q.c: Optimize division by a single-limb divisor. 31961 * mpz/dmincl.c: Likewise. 31962 31963 * mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size. 31964 * mpz/sub.c: Likewise. 31965 * mpn/generic/sqrt.c: Likewise. 31966 31967 * mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the 31968 destination arrays. 31969 31970 Fri Feb 2 02:21:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31971 31972 * mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files. 31973 * mpz/Makefile.in: Compile them. 31974 31975 * mpn/Makefile.in (INCLUDES): Don't search in `generic'. 31976 31977 Thu Feb 1 02:15:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31978 31979 Change from Ken Weber: 31980 * mpz/divexact.c: Make it work when quot is identical to either input. 31981 31982 * mpf/ui_sub.c: New file. 31983 * mpf/Makefile.in: Compile it. 31984 31985 * gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC. 31986 * mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since 31987 these use MPZ_TMP_INIT. 31988 * mpz/mod.c: Likewise. 31989 * mpq/{add,sub}.c: Likewise. 31990 * mpq/canonicalize: Likewise. 31991 31992 * mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t. 31993 * mpq/canonicalize.c: Likewise. 31994 31995 Wed Jan 31 01:45:00 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 31996 31997 * mpn/generic/gcd.c: Misc changes from Ken. 31998 31999 * mpz/tests/gcd2.c: New file. 32000 * mpz/tests/Makefile.in: Handle gcd2.c. 32001 32002 * mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize, 32003 not orig_vsize. Fix parameter declaration. 32004 32005 * mpz/mod_ui.c: Delete file. 32006 * mpz/Makefile.in: Don't try to compile mod_ui. 32007 32008 * mpz/cdiv_*_ui.c): Make them work right. 32009 * gmp.h: Declare cdiv*. 32010 32011 Tue Jan 30 02:22:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32012 32013 * mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c, 32014 cdiv_r_ui.c,cdiv_ui.c}: New files. 32015 * mpz/Makefile.in: Compile them. 32016 32017 * All files: Make file permissions right. 32018 32019 Changes from Ken Weber: 32020 * mpn/generic/accelgcd.c: Delete. 32021 * mpn/generic/bingcd.c: Delete. 32022 * mpn/generic/numbits.c: Delete. 32023 * mpn/generic/gcd.c: New file. 32024 * mpn/configure.in (functions): Update accordingly. 32025 * mpz/divexact.c: New file. 32026 * mpz/Makefile.in: Compile divexact.c. 32027 * mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn. 32028 * gmp.h: declare new functions, delete obsolete declarations. 32029 * mpz/tests/dive.c: New file. 32030 * mpz/tests/Makefile.in: Handle dive.c. 32031 32032 Mon Jan 29 03:53:24 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32033 32034 * mpz/random.c: Handle negative SIZE parameter. 32035 32036 * mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c. 32037 * mpz/tests/tst-mdm(_ui).c: Delete. 32038 * mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui). 32039 * mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming. 32040 * mpz/tests/Makefile.in: Corresponding changes. 32041 * mpz/tests/configure.in: Update srctrigger. 32042 32043 * mpn/generic/divmod.c: Update from divrem. 32044 * mpn/generic/divrem.c: Misc cleanups. 32045 32046 Sun Jan 28 03:25:08 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32047 32048 * All files: Use new TMP_ALLOC interface. 32049 32050 * mpz/powm_ui.c: Make Jan 25 changes to powm.c also here. 32051 32052 * mpz/tests/powm_ui.c: New file. 32053 * mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui. 32054 32055 * Makefile.in: Update dependency list. 32056 * mpf/Makefile.in: Likewise. 32057 * mpz/Makefile.in: Likewise. 32058 * mpq/Makefile.in: Likewise. 32059 * Makefile.in: Set RANLIB simply to ranlib, and allow configure 32060 to override it. 32061 32062 * mpz/Makefile.in (conf): Delete spurious target. 32063 (mp_bases.c): Delete. 32064 (cre-conv-tab rules): Delete. 32065 32066 * Makefile.in (cre-conv-tab): Greatly simplify. 32067 32068 Sat Jan 27 13:38:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32069 32070 * stack-alloc.c: New file. 32071 * stack-alloc.h: New file. 32072 32073 * gmp.h (__gmp_inline): Define using __inline__. 32074 32075 Thu Jan 25 00:28:37 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32076 32077 * mpn/generic/scan0.c: New file. 32078 * mpn/generic/scan1.c: Renamed from next_bit.c. 32079 * mpn/configure.in (functions): Include scan0 and scan1. 32080 32081 * mpn/m68k/*: #include sysdep.h. Use C_GLOBAL_NAME. 32082 32083 * configure: Update from Cygnus version. 32084 * config.guess: Likewise. 32085 * config.sub: Likewise. 32086 * configure: Pass --nfp to recursive configures. 32087 32088 * mpz/tests/tst-*.c: Adjust SIZE and reps. 32089 32090 * mpz/powm.c: Move esize==0 test earlier. 32091 In final reduction of rp,rsize, don't call mpn_divmod unless 32092 reduction is really needed. 32093 32094 * mpz/tests/tst-powm.c: Fix thinko in checking code. 32095 32096 * All files: Get rid of `__' prefix from mpn_* calls and declarations. 32097 * gmp.h: #define __MPN. 32098 * gmp.h: Use __MPN in #defines for mpn calls. 32099 32100 * mpn/generic/mul_n.c: Prepend `i' to internal routines. 32101 * gmp-impl.h: Add #defines using __MPN for those internal routines. 32102 32103 * mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n. 32104 32105 Wed Jan 24 13:28:19 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32106 32107 * mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S. 32108 * mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S. 32109 * mpn/sparc32/v8/supersparc: New directory. 32110 * mpn/sparc32/v8/supersparc/udiv.S: New file. 32111 32112 Tue Jan 23 01:10:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32113 32114 This major contribution is from Ken Weber: 32115 * mpn/generic/accelgcd.c: New file. 32116 * mpn/generic/bdivmod.c: New file. 32117 * mpn/generic/bingcd.c: New file. 32118 * mpn/generic/gcd_1.c: Rewrite. 32119 * mpn/generic/numbits.c: New file (to go away soon). 32120 * mpz/gcd.c: Rewrite. 32121 * mpz/tests/tst-gcd.c (SIZE): Now 128. 32122 * gmp.h: Declare new functions. 32123 * mpn/configure.in (functions): List new files. 32124 * gmp-impl.h (MPN_SWAP): Delete. 32125 (MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete. 32126 (MPN_COMPL_INCR, MPN_COMPL): Delete. 32127 32128 Mon Jan 22 02:04:59 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32129 32130 * gmp.h (mpn_name): New #define. 32131 32132 * mpn/m88k/mc88110/addmul_1.s: New file. 32133 * mpn/m88k/mc88110/add_n.S: New file. 32134 * mpn/m88k/mc88110/sub_n.S: New file. 32135 32136 * mpn/m88k/sub_n.s: Correctly initialize carry. 32137 32138 * mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'. 32139 32140 Sun Jan 21 00:04:35 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32141 32142 * mpn/sparc64/addmul_1.s: New file. 32143 * mpn/sparc64/submul_1.s: New file. 32144 * mpn/sparc64/rshift.s: New file. 32145 32146 Sat Jan 20 00:32:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32147 32148 * mpz/iset.c: Fix typo introduced Dec 25. 32149 32150 Wed Jan 17 13:16:44 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32151 32152 * config/mt-sprc8-gcc: New name for mt-sparc8-gcc. 32153 * config/mt-sparcv8-gcc: Delete. 32154 * configure.in: Corresponding changes. 32155 32156 Tue Jan 16 16:31:01 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32157 32158 * gmp-impl.h: #include alloca.h when necessary. 32159 32160 * longlong.h: Test __alpha instead of __alpha__, since the former 32161 is the standard symbol. 32162 32163 Mon Jan 15 18:06:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se> 32164 32165 * mpn/sparc64/mul_1.s: Swap operands of mulx instructions. 32166 * mpn/sparc64/lshift.s: New file. 32167 32168 Fri Dec 29 17:34:03 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32169 32170 * mpn/x86/pentium/add_n.S: Get rid of #defines for register names. 32171 * mpn/x86/pentium/sub_n.S: Likewise. 32172 32173 Thu Dec 28 03:16:57 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32174 32175 * mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update 32176 of loop induction variable and load insn at beginning of loop. 32177 * mpn/x86/pentium/addmul_1.S: Likewise. 32178 * mpn/x86/pentium/submul_1.S: Likewise. 32179 32180 Mon Dec 25 23:22:55 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32181 32182 * All files: Prefix user-visible structure fields with _mp_. 32183 32184 Fri Dec 22 20:42:17 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32185 32186 * mpn/configure.in (m68k configs): Terminate path variable with 32187 plain "m68k". 32188 32189 Fri Dec 22 03:29:33 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32190 32191 * mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to 32192 clean things up. 32193 32194 * mpn/configure.in (m68k configs): Update #include path for new 32195 mpn directory organization. 32196 32197 Tue Dec 12 02:53:02 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32198 32199 * gmp.h: Prefix all structure field with _mp_. 32200 * gmp-impl.h: Define access macros for these fields. 32201 32202 Sun Dec 10 00:47:17 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32203 32204 * mpn/alpha/addmul_1.s: Prefix labels with `.'. 32205 * mpn/alpha/submul_1.s: Likewise. 32206 * mpn/alpha/[lr]shift.s: Likewise. 32207 * mpn/alpha/udiv_qrnnd.S: Likewise. 32208 * mpn/alpha/ev5/[lr]shift.s: Likewise. 32209 32210 * mpn/alpha/ev5/lshift.s: Fix typos. 32211 32212 Fri Dec 1 14:28:20 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32213 32214 * mpn/Makefile.in (.SUFFIXES): Define. 32215 32216 Wed Nov 29 23:11:57 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32217 32218 * mpn/sparc64/{add_n.s, sub_n.s}: New files. 32219 32220 Tue Nov 28 06:03:13 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32221 32222 * mpn/x86/syntax.h: Handle ELF_SYNTAX. 32223 Rename GAS_SYNTAX => BSD_SYNTAX. 32224 32225 * mpn/configure.in: Handle linuxelf and SysV for x86 variants. 32226 32227 Mon Nov 27 01:32:12 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32228 32229 * mpn/hppa/hppa1_1/pa7100/submul_1.S: New file. 32230 32231 Sun Nov 26 04:30:47 1995 Torbjorn Granlund <tege@noisy.matematik.su.se> 32232 32233 * mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file. 32234 32235 * mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores. 32236 * mpn/sparc32/sub_n.S: Likewise. 32237 32238 Fri Nov 17 00:18:46 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32239 32240 * mpn/configure.in: Handle m68k on NextStep. 32241 32242 Thu Nov 16 02:30:26 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32243 32244 * mpn: Reorganize machine-specific directories. 32245 * mpn/configure.in: Corresponding changes. 32246 (sh, sh2): Handle these. 32247 (m68k targets): Create asm-syntax.h. 32248 32249 Thu Nov 9 02:20:50 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32250 32251 * mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort. 32252 (____mpn_mul_n): Likewise. 32253 32254 Tue Nov 7 03:25:12 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32255 32256 * mpf/get_str.c: In exponentiation code (two places), don't swap 32257 input and output areas when calling mpn_mul_1. 32258 * mpf/set_str.c: Likewise. 32259 32260 Fri Nov 3 02:35:58 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32261 32262 * mpf/Makefile.in: Make sure all objects are listed in dependency list; 32263 delete spurious entries. 32264 32265 * mpf/mul.c: Handle U or V being 0. Allow prec+1 for result precision. 32266 32267 * mpf/set_prec.c: New computation of limb precision. 32268 * mpf/set_dfl_prec.c: Likewise. 32269 32270 * mpf/random2.c: Fix typo computing exp. 32271 * mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of 32272 the user-requested number of digits, n_digits. 32273 32274 Thu Nov 2 16:25:07 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32275 32276 * mpn/generic/divrem.c (case 2): Don't move np vector back, it is 32277 never read. 32278 (default case): Put most significant limb from np in new variable n2; 32279 decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize]. 32280 32281 Wed Nov 1 02:59:53 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32282 32283 * mpn/sparc/[lr]shift.S: New files. 32284 32285 Tue Oct 31 00:08:12 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32286 32287 * mpz/gcd_ui.c: Set w->size unconditionally when v is zero. 32288 32289 * gmp-impl.h (assert): Delete definition. 32290 32291 * mpf/sub.c: Delete all assert calls. Delete variable `cy'. 32292 32293 * mpf/neg.c: Use prec+1 as precision. Optimize for when arguments 32294 are the same. 32295 * mpf/abs.c: Likewise. 32296 * mpf/{set,neg,abs}.c: Make structure and variable names similar. 32297 32298 Mon Oct 30 12:45:26 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32299 32300 * mpf/random2.c (random): Test __SVR4 in addition to __svr4__. 32301 * mpn/generic/random2.c (random): Likewise. 32302 32303 Sun Oct 29 01:54:28 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32304 32305 * mpf/div.c: Special handle U or V being 0. 32306 32307 * mpf/random2.c: New file. 32308 32309 * longlong.h (i860 rshift_rhlc): Define. 32310 (i960 udiv_qrnnd): Define. 32311 (i960 count_leading_zeros): Define. 32312 (i960 add_ssaaaa): Define. 32313 (i960 sub_ddmmss): Define. 32314 (i960 rshift_rhlc): Define. 32315 32316 Sat Oct 28 19:09:15 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32317 32318 * mpn/pentium/rshift.S: Fix and generalize condition for when to use 32319 special code for shift by 1. 32320 * mpn/pentium/lshift.S: Likewise. 32321 32322 Thu Oct 26 00:02:56 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32323 32324 * gmp.h: #undef __need_size_t. 32325 * mp.h: Update from gmp.h. 32326 32327 Wed Oct 25 00:17:27 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32328 32329 * mpf/Makefile.in: Compile set_prec.c. 32330 * mpf/realloc.c: Delete this file. 32331 * mpf/Makefile.in: Delete mentions of realloc.c. 32332 32333 * gmp.h (__mpf_struct): Get rid of `alloc' field. 32334 * mpf/clear.c: Likewise. 32335 * mpf/init*.c: Likewise. 32336 * mpf/set_prec.c: Likewise. 32337 * mpf/iset*.c: Likewise. 32338 32339 * mpf/iset_str.c: New file. 32340 32341 * mpn/configure.in: Handle pyramid. 32342 32343 * mpf/set.c: Use prec+1 as precision. 32344 32345 * mpf/set_prec.c: New file. 32346 32347 Tue Oct 24 00:56:41 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32348 32349 * mpn/generic/divrem.c: New file. Will replace mpn/generic/divmod.c 32350 when rest of source is converted. 32351 * mpn/configure.in (functions): Add `divrem' 32352 * mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size. 32353 32354 * mpf/get_str.c: Completely rewritten. 32355 * mpf/add.c: Fix several problems. 32356 * mpf/sub.c: Compare operands from most significant end until 32357 first difference, exclude skipped limbs from computation. 32358 Accordingly simplify normalization code. 32359 * mpf/set_str.c: Fix several problems. 32360 * mpf/dump.c: New file. 32361 * mpf/Makefile.in: Compile dump.c. 32362 * mpf/init2.c: Set prec field correctly. 32363 32364 Sun Oct 22 03:02:09 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32365 32366 * cre-conv-tab.c: #include math.h; don't declare log and floor. 32367 32368 Sat Oct 21 23:04:10 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32369 32370 * mpf/mul_ui.c: Handle U being 0. 32371 32372 Wed Oct 18 19:39:27 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32373 32374 * mpn/generic/set_str.c: Correctly handle input like "000000000000". 32375 Misc cleanups. 32376 32377 Tue Oct 17 15:14:13 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32378 32379 * longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where 32380 appropriate. 32381 32382 Mon Oct 16 19:14:43 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32383 32384 * mpf/add.c: Rewrite. 32385 * mpf/set_str.c: New file. Needs more work. 32386 32387 Sat Oct 14 00:14:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32388 32389 * mpf/div_2exp.c: Vastly simplify. 32390 * mpf/mul_2exp.c: Likewise. 32391 32392 * mpf/sub.c: Rewrite. 32393 32394 * gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment. 32395 32396 * mpf/dump.c: Free allocated memory. 32397 32398 * gmp-impl.h (assert): Define. 32399 32400 Wed Oct 11 13:31:00 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32401 32402 * mpn/pentium/rshift.S: Install new code to optimize shift-by-1. 32403 32404 Tue Oct 10 00:37:21 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32405 32406 * mpn/pentium/lshift.S: Install new code to optimize shift-by-1. 32407 32408 * mpn/powerpc32/{lshift.s,rshift.s}: New files. 32409 32410 * configure.in: Fix typo. 32411 32412 Sat Oct 7 08:17:09 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32413 32414 * longlong.h (smul_ppmm): Correct type of __m0 and __m1. 32415 32416 Wed Oct 4 16:31:28 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32417 32418 * mpn/configure.in: Handle alphaev5. 32419 * mpn/ev4: New name for alpha subdir. 32420 * mpn/ev5: New subdir. 32421 * mpn/ev5/lshift.s: New file. 32422 32423 Tue Oct 3 15:06:45 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32424 32425 * mpn/alpha/mul_1.s: Avoid static increments of pointers; use 32426 corresponding offsets in ldq and stq instructions instead. 32427 (Loop): Swap cmpult and stq to save one cycle on EV5. 32428 32429 * mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s, 32430 submul_1.s}: Don't check results if NOCHECK is defined. 32431 32432 Mon Oct 2 11:40:18 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32433 32434 * longlong.h (mips umul_ppmm [32 and 64 bit versions]): 32435 Make new variants, based on GCC version number, that use `l' and `h' 32436 constraints instead of explicit mflo and mfhi instructions 32437 32438 Sun Oct 1 00:17:47 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32439 32440 * mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8. 32441 * mpn/mc88100/sub_n.s: Likewise. 32442 32443 * config/mt-m88110: New file. 32444 * configure.in: Use it. 32445 32446 * mpn/mc88110/mul_1.s: Fix thinko. 32447 32448 Sat Sep 30 21:28:19 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32449 32450 * mpz/set_d.c: Declare `size' at function start. 32451 32452 * experimental: New directory for mpx and mpz2. 32453 32454 * mpz/tdiv_q.c: Clarify comments. 32455 * mpz/{mod.c,mod_ui.c}: New file, for math mod function. 32456 32457 * mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files. 32458 32459 * mpn/sh/{add_n.s,sub_n.s}: New files. 32460 32461 * mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files. 32462 32463 * mpn/i960/{add_n.s,sub_n.s}: New files. 32464 32465 * mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh, 32466 to save cycles on EV5. 32467 * mpn/alpha/submul_1.s: Ditto. 32468 * mpn/alpha/mul_1.s: Ditto. 32469 32470 Thu Sep 28 02:48:59 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32471 32472 * gmp.h (mp_limb, mp_limb_signed): Define as `long long' if 32473 _LONG_LONG_LIMB is defined. 32474 32475 * longlong.h (m88110): Test __m88110__, not __mc88110__ 32476 32477 * mpn/mc88110/mul_1.s: Rewrite. 32478 32479 Tue Sep 26 23:29:05 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32480 32481 * config.sub: Update from current Cygnus version. 32482 32483 * mpn/configure.in: Recognize canonical m88*, not mc88*. 32484 32485 Fri Sep 22 14:58:05 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32486 32487 * mpz/set_d.c: New file. 32488 * mpz/Makefile.in: Build new files. 32489 32490 * mpq/get_d.c: Replace usage of scalbn with ldexp. 32491 32492 * mpn/{vax,i386}/gmp-mparam.h: New files. 32493 * gmp-impl.h (ieee_double_extract): Define here. 32494 * mpf/set_d.c (ieee_double_extract): Not here. 32495 32496 Thu Sep 21 00:56:36 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32497 32498 * longlong.h (C umul_ppmm): Use UWtype, not USItype for temps. 32499 (udiv_qrnnd): For cases implemented with call to __udiv_qrnnd, 32500 protect with new symbol LONGLONG_STANDALONE. 32501 (68000 umul_ppmm): Use %# prefix for immediate constants. 32502 32503 Wed Sep 20 15:36:23 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32504 32505 * mpn/generic/divmod_1.c: Handle 32506 divisor_limb == 1 << (BITS_PER_MP_LIMB - 1) 32507 specifically also when normalization_steps != 0. 32508 32509 Mon Sep 18 15:42:30 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32510 32511 * mpq/get_d.c: New file. 32512 32513 Sun Sep 17 02:04:36 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32514 32515 * longlong.h (pyr): Botch up for now. 32516 32517 Sat Sep 16 00:11:50 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32518 32519 * mpn/clipper/mul_1.s: New file. 32520 * mpn/clipper/add_n.s: New file. 32521 * mpn/clipper/sub_n.s: New file. 32522 * mpn/configure.in: Handle clipper*-*-*. 32523 32524 * mpn/configure.in: Recognize rs6000-*-*. 32525 32526 Fri Sep 15 00:41:34 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32527 32528 * mpn/alpha/add_n.s: New file. 32529 * mpn/alpha/sub_n.s: New file. 32530 32531 * mpn/mips3: New name for mpn/r4000. 32532 * mpn/mips2: New name for mpn/r3000. 32533 * mpn/configure.in: Corresponding changes. 32534 32535 * mpn/generic/perfsqr.c (primes): Delete. 32536 (residue_map): Delete. 32537 32538 Thu Sep 14 00:07:58 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32539 32540 * mpn/r3000/sub_n.s: Fix typo. 32541 32542 * dm_trunc.c: Delete spurious file. 32543 32544 * mpz/out_binary.c: Fix typo. 32545 32546 * mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000. 32547 32548 * gmp-impl.h: For sparc and sgi, include alloca.h. 32549 32550 * mpn/z8000/mul_1.s: Replace `test r' with `and r,r'. Replace 32551 `ldk r,#0' with `xor r,r'. 32552 32553 Wed Sep 6 00:58:38 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32554 32555 * mpz/inp_binary.c: New file. 32556 * mpz/out_binary.c: New file. 32557 * mpz/Makefile.in: Build new files. 32558 32559 Tue Sep 5 22:53:51 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32560 32561 * gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc 32562 and size fields. 32563 32564 Sat Sep 2 17:47:59 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32565 32566 * mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic. 32567 * mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files, 32568 derived from r4000 code. 32569 32570 Fri Sep 1 05:35:52 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32571 32572 * mpn/r3000/mul_1.s: Fix typo. 32573 32574 * mpn/powerpc32: Fix some old vs new mnemonic issues. 32575 32576 * mpn/powerpc32/{add_n.s,sub_n.s}: New files. 32577 * mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files. 32578 32579 Wed Aug 30 10:43:47 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32580 32581 * mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add. 32582 * mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files. 32583 32584 * config.guess: Update to latest FSF revision. 32585 32586 Mon Aug 28 02:18:13 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32587 32588 * mpz/out_str.c: Cast str to char * in fputs call. 32589 32590 * gmp-impl.h: Define UQItype, SItype, and USItype also 32591 when not __GNUC__. 32592 32593 Fri Aug 25 01:45:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32594 32595 * mpn/i386/syntax.h: Renamed from asm-syntax.h. 32596 * mpn/mc68020/syntax.h: Renamed from asm-syntax.h. 32597 * mpn/configure.in: Corresponding changes. 32598 32599 Sun Aug 13 19:20:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se> 32600 32601 * mpn/generic/random2.c: Test __hpux, not hpux. 32602 32603 Sat Apr 15 20:50:33 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32604 32605 * mpn/sparc/add_n.S: Make it work for PIC. 32606 * mpn/sparc/sub_n.s: Likewise. 32607 * mpn/sparc8/addmul_1.S: Likewise. 32608 * mpn/sparc8/mul_1.S: Likewise. 32609 * mpn/i386/add_n.S: Likewise. 32610 * mpn/i386/sub_n.S: Likewise. 32611 32612 Thu Apr 13 23:15:03 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32613 32614 * mpn/configure.in: Don't search power subdir for generic ppc configs. 32615 Add some ppc cpu-specific configs. Misc clean up. 32616 32617 Mon Apr 10 00:16:35 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32618 32619 * mpz/ui_pow_ui.c: Delete spurious code to handle negative results. 32620 32621 Sun Apr 9 12:38:11 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32622 32623 * longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C, 32624 not in asm. 32625 32626 * mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT. 32627 32628 Tue Mar 28 00:19:52 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32629 32630 * mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too. 32631 32632 Fri Mar 17 23:29:22 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32633 32634 * longlong.h (SH umul_ppmm): Define. 32635 32636 Thu Mar 16 16:40:44 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32637 32638 * mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case 32639 to help CSE. 32640 32641 Fri Mar 10 20:03:49 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32642 32643 * mpn/powerpc32/mul_1.s: Clear cy before entering loop. 32644 Rearrange loop to save a cycle. 32645 * mpn/powerpc32/addmul_1.s: New file. 32646 * mpn/powerpc32/submul_1.s: New file. 32647 32648 Fri Feb 17 22:44:45 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32649 32650 * mpn/configure.in: Set target_makefile_frag for freebsd 32651 in new case stmt. 32652 * mpn/config/t-freebsd: New file. 32653 * mpn/Makefile.in: Add #### for frag insertion. 32654 (XCFLAGS): Clear by default. 32655 (.c.o, .S.o rules): Pass XCFLAGS. 32656 32657 Tue Feb 7 16:27:50 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32658 32659 * longlong.h (68000 umul_ppmm): Merge improvements from henderson. 32660 32661 Tue Jan 24 04:23:20 1995 Torbjorn Granlund (tege@tiny.cygnus.com) 32662 32663 * longlong.h (default umul_ppmm): Store input parameters in temporaries 32664 to avoid reading them twice. 32665 (default smul_ppmm): New definition. 32666 32667 Thu Dec 29 04:20:07 1994 Jim Meyering (meyering@comco.com) 32668 32669 * generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration 32670 of unused variable. 32671 * generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise. 32672 * mpz/powm.c (pow): Likewise. 32673 32674 * mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause 32675 to placate `gcc -Wall'. 32676 * mpz/ior.c (mpz_ior): Likewise. 32677 32678 Wed Dec 28 13:31:40 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32679 32680 * mpn/m*68*/*.S: #include asm-syntax.h, not asm.h. 32681 32682 Mon Dec 26 17:15:36 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32683 32684 * longlong.h: Test for more symbols, in __mc68000__ case. 32685 32686 * mpn/mpn/config.sub: Recognize m68060. 32687 * mpn/configure.in: Change mc* to m* for 68k targets. 32688 * mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file. 32689 32690 Mon Dec 19 01:56:30 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32691 32692 * config.sub: Recognize pentium as a valid CPU. 32693 * mpn/configure.in: Handle pentium specifically, to use new assembly 32694 code. 32695 32696 Mon Dec 19 00:13:01 1994 Jim Meyering (meyering@comco.com) 32697 32698 * gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO 32699 is defined. 32700 * gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else. 32701 32702 Mon Dec 19 00:04:54 1994 Kent Boortz (boortz@sics.se) 32703 32704 * Makefile.in (recursive makes): Pass CFLAGS. 32705 32706 Sun Dec 18 22:34:49 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32707 32708 * mpn/pentium: New directory. 32709 32710 * mpz/pprime.c: Make sure to mpz_clear all temporaries. 32711 32712 * longlong.h: Don't use udiv instruction when SUPERSPARC is defined. 32713 * configure.in: Handle supersparc*-. 32714 * config/mt-supspc-gcc: New file. 32715 * config/mt-sparc8-gcc: New name for mt-sparcv8-gcc. 32716 32717 Mon Dec 12 22:22:10 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32718 32719 * mpn/i386/*.S: #include "asm-syntax.h", not "asm.h". 32720 #include sysdep.h before asm-syntax.h. 32721 32722 * mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it. 32723 * mpn/i386/asm-syntax.h: Likewise. 32724 32725 * mpn/mc68020/asm-syntax.h: New name for asm.h. 32726 * mpn/i386/asm-syntax.h: New name for asm.h. 32727 32728 Tue Dec 6 21:55:25 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32729 32730 * mpz/array_init.c: Fix typo in declaration. 32731 32732 Fri Nov 18 19:50:52 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32733 32734 * mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES. 32735 32736 Mon Nov 14 00:34:12 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32737 32738 * mpn/generic/random2.c (random): Test for __svr4__. 32739 32740 Wed Oct 12 23:28:16 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32741 32742 * cre-conv-tab.c (main): Avoid upper-case X in printf format string. 32743 32744 Tue Aug 23 17:16:35 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32745 32746 * mpz/perfsqr.c: Use mpn_perfect_square_p. 32747 * mpn/generic/perfsqr.c: New file. 32748 32749 Wed Jul 6 13:46:51 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32750 32751 * mpz/array_init.c: New file. 32752 * mpz/Makefile.in: Compile array_init. 32753 * gmp.h: Declare mpz_array_init. 32754 32755 Mon Jul 4 01:10:03 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32756 32757 * mpz/add.c: Fix bogus comment. 32758 * mpz/sub.c: Likewise. 32759 32760 Sat Jul 2 02:14:56 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32761 32762 * mpn/generic/pre_mod_1.c: New file. 32763 * mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster. 32764 32765 Fri Jul 01 22:10:19 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) 32766 32767 * longlong.h (arm umul_ppmm): Fix typos in last change. Mark 32768 hard-coded registers with "%|" 32769 32770 Thu Jun 30 03:59:33 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32771 32772 * mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs. 32773 Use __mpn_mod_1. 32774 * mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop. 32775 32776 Wed Jun 29 18:45:41 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32777 32778 * mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2. 32779 32780 * mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long. 32781 32782 * gmp.h: Use "defined (__STDC__)" consistently. 32783 32784 Tue Jun 28 18:44:58 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32785 32786 * gmp.h (mpz_get_si): Don't use "signed" keyword for return type. 32787 32788 * mpz/tests/Makefile.in: Use CFLAGS for linking. 32789 32790 * Makefile.in (CFLAGS): Use -O2 here. 32791 * mpn/Makefile (CFLAGS): Not here. 32792 32793 * mpq/cmp_ui.c: Fix typo. 32794 * mpq/canonicalize.c: Fix typo. 32795 * mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly. 32796 * mpn/generic/gcd_1.c: Fix braino in last change. 32797 32798 Mon Jun 27 16:10:27 1994 Torbjorn Granlund (tege@rtl.cygnus.com) 32799 32800 * mpz/gcd_ui.c: Change return type and return result. 32801 Allow destination param to be NULL. 32802 * gmp.h: Corresponding change. 32803 * mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1. 32804 32805 Tue Jun 14 02:17:43 1994 Torbjorn Granlund (tege@tiny.cygnus.com) 32806 32807 * mpn/i386/asm.h (ALIGN): Make it take a parameter. 32808 * mpn/i386/*.S: Use ALIGN to align all loops. 32809 32810 * mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression. 32811 (Makes old versions of GAS happy.) 32812 32813 Sat May 28 01:43:54 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32814 32815 * Many files: Delete unused variables and labels. 32816 * mpn/generic/dump.c: cast printf width argument to int. 32817 32818 Wed May 25 00:42:37 1994 Torbjorn Granlund (tege@thepub.cygnus.com) 32819 32820 * mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls. 32821 (xmod): Ignore return value of __mpn_divmod. 32822 (xmod): Improve normalization code. 32823 32824 Sat May 21 01:30:09 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32825 32826 * mpz/gcdext.c: Cosmetic changes. 32827 32828 * mpz/fdiv_ui.c: New file. 32829 32830 Fri May 20 00:24:53 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32831 32832 * mpz/tests/Makefile.in: Use explicit rules for running tests, 32833 not a shell loop. 32834 (clean): Delete stmp-*. 32835 32836 * mpz/Makefile.in: Update. 32837 32838 * mpz/div_ui.c: Don't include longlong.h. 32839 * mpz/dm_ui.c: Likewise. 32840 32841 * mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c, 32842 mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files. Code partly from deleted 32843 mdm.c, mdm_ui.c, etc, partly rewritten. 32844 * mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete. 32845 * mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c, 32846 mpz/mmod_ui.c: Delete. 32847 32848 * mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c, 32849 mpz/tdiv_r.c, mpz/tdiv_r_ui.c: 32850 New names for files implementing truncating division. 32851 * mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify. 32852 32853 * mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC 32854 instead. 32855 (clean): Delete tmp-*. 32856 32857 Thu May 19 01:37:44 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32858 32859 * mpz/cmp.c: Call __mpn_cmp. 32860 32861 * mpz/popcount.c: Fix typo. 32862 32863 * mpz/powm_ui.c: Simplify main loop. Keep principal operand size 32864 smaller than MSIZE when possible. 32865 * mpz/powm.c: Likewise. 32866 32867 * mpn/generic/sqrt.c: Move alloca calls into where the memory is 32868 needed. Simplify. 32869 32870 * gmp.h: (_PROTO): New macro. 32871 Add many function declarations; use _PROTO macro in all declarations. 32872 32873 * mpf/*.c: Prepend mpn calls with __. 32874 32875 Wed May 18 20:57:06 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32876 32877 * mpf/*ui*.c: Make ui argument `long' for consistency with mpz 32878 functions. 32879 32880 * mpf/div_ui.c: Simplify. 32881 32882 Tue May 17 01:05:14 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32883 32884 * mpz/*.c: Prepend mpn calls with __. 32885 32886 * mpz/mul_ui.c: Use mpn_mul_1. 32887 32888 Mon May 16 17:19:41 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32889 32890 * mpn/i386/mul_1.S: Use C_GLOBAL_NAME. 32891 * mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S: 32892 Nuke use of LAB. 32893 32894 Sat May 14 14:21:02 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32895 32896 * gmp-impl.h: Don't define abort here. 32897 32898 * mpz/pow_ui.c: Increase temporary allocation. 32899 * mpz/ui_pow_ui.c: Likewise. 32900 32901 * gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy. 32902 32903 * All Makefile.in: Delete spurious -I arguments. 32904 Update dependencies. 32905 32906 * mpz/popcount.c: New file. 32907 * mpz/hamdist.c: New file. 32908 32909 * All configure: Latest version from Cygnus. 32910 32911 * mpq/Makefile.in: New file. 32912 * mpq/configure.in: New file. 32913 * Makefile.in, configure.in: Enable compilation of mpq. 32914 32915 * mpq/set_z.c: Fix typos. 32916 * mpq/canonicalize.c: Fix typos. 32917 * mpq/cmp_ui.c: Fix typos. 32918 32919 * mpf/add_ui.c: Read U->D into UP always. Delete spurious MPN_COPY. 32920 * mpf/sub_ui.c: Likewise. 32921 32922 * gmp-impl.h: Don't redefine alloca. 32923 32924 * COPYING.LIB: Renamed from COPYING. 32925 32926 Wed May 11 01:45:44 1994 Torbjorn Granlund (tege@adder.cygnus.com) 32927 32928 * mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range 32929 shift counts. Fix typo when testing negative_result. 32930 * mpz/powm.c: Likewise. 32931 32932 * mpz/ui_pow_ui.c: New file. 32933 * mpz/Makefile.in: Update. 32934 32935 * mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible. 32936 32937 * mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls. 32938 * mpz/gcd.c: Declare mpn_xmod. 32939 32940 * mpz/powm.c: Major changes to accommodate changed mpn semantics. 32941 * mpz/powm_ui.c: Update from mpz/powm.c. 32942 32943 * mpz/tests/tst-io.c: New file. 32944 * mpz/tests/tst-logic: New file. 32945 * mpz/tests/Makefile.in: Update. 32946 32947 * mpz/inp_str.c: Get base right when checking for first digit. 32948 * mpz/inp_str.c: Allocate more space for DEST when needed. 32949 32950 * mpz/com.c: Use mpn_add_1 and mpn_sub_1. 32951 * mpz/and.c, mpz/ior.c: Likewise. Simplify somewhat. 32952 32953 * mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1. 32954 Rename parameters to be consistent with mpz/sub_ui. 32955 General simplifications. 32956 * mpz/sub_ui.x: Likewise. 32957 32958 Tue Aug 10 19:41:16 1993 Torbjorn Granlund (tege@prudens.matematik.su.se) 32959 32960 * mpf: New directory. 32961 * mpf/*.c: Merge basic set of mpf functions. 32962 32963 * Many logs missing... 32964 32965 Sun Apr 25 18:40:26 1993 Torbjorn Granlund (tege@pde.nada.kth.se) 32966 32967 * memory.c: Use #if instead of #ifdef for __STDC__ for consistency. 32968 * bsd/xtom.c: Likewise. 32969 32970 * mpz/div.c: Remove free_me and free_me_size and their usage. 32971 Use mpn_divmod for division; corresponding changes in return value 32972 convention. 32973 * mpz/powm.c: `carry_digit' => `carry_limb'. 32974 * bsd/sdiv.c: Clarify comment. 32975 32976 Sun Apr 25 00:31:28 1993 Torbjorn Granlund (tege@pde.nada.kth.se) 32977 32978 * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'. 32979 32980 Sat Apr 24 16:23:33 1993 Torbjorn Granlund (tege@pde.nada.kth.se) 32981 32982 * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'. 32983 32984 * gmp-impl.h: #define ABS. 32985 * (Many files): Use ABS instead of abs. 32986 32987 * mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c, 32988 mpz/pow_ui.c: Cast 1 to mp_limb before shifting. 32989 32990 * mpz/perfsqr.c: Use #if, not plain if for exclusion of code for 32991 non-32-bit machines. 32992 32993 Tue Apr 20 13:13:58 1993 Torbjorn Granlund (tege@du.nada.kth.se) 32994 32995 * mpn/generic/sqrt.c: Handle overflow for intermediate quotients by 32996 rounding them down to fit. 32997 32998 * mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings. 32999 33000 * mpz/inp_str.c (char_ok_for_base): New function. 33001 (mpz_inp_str): Use it. 33002 33003 Sun Mar 28 21:54:06 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) 33004 33005 * mpz/inp_raw.c: Allocate x_index, not xsize limbs. 33006 33007 Mon Mar 15 11:44:06 1993 Torbjorn Granlund (tege@pde.nada.kth.se) 33008 33009 * mpz/pprime.c: Declare param `const'. 33010 * gmp.h: Add declarations for mpz_com. 33011 33012 Thu Feb 18 14:10:34 1993 Torbjorn Granlund (tege@pde.nada.kth.se) 33013 33014 * mpq/add.c, mpq/sub.c: Call mpz_clear for t. 33015 33016 Fri Feb 12 20:27:34 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) 33017 33018 * mpz/inp_str.c: Recog minus sign as first character. 33019 33020 Wed Feb 3 01:36:02 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) 33021 33022 * mpz/iset.c: Handle 0 size. 33023 33024 Tue Feb 2 13:03:33 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) 33025 33026 * mpz/mod_ui.c: Initialize dividend_size before it's used. 33027 33028 Mon Jan 4 09:11:15 1993 Torbjorn Granlund (tege@sics.se) 33029 33030 * bsd/itom.c: Declare param explicitly 'signed'. 33031 * bsd/sdiv.c: Likewise. 33032 33033 * mpq/cmp.c: Remove unused variable tmp_size. 33034 * mpz/powm_ui.c: Fix typo in esize==0 if stmt. 33035 * mpz/powm.c: Likewise. 33036 33037 Sun Nov 29 01:16:11 1992 Torbjorn Granlund (tege@sics.se) 33038 33039 * mpn/generic/divmod_1.c (mpn_divmod_1): Handle 33040 divisor_limb == 1 << (BITS_PER_MP_LIMB - 1) 33041 specifically. 33042 33043 * Reorganize sources. New directories mpn, mpn/MACH, mpn/generic, 33044 mpz, mpq, bsd. Use full file name for change logs hereafter. 33045 33046 Wed Oct 28 17:40:04 1992 Torbjorn Granlund (tege@jupiter.sics.se) 33047 33048 * longlong.h (__hppa umul_ppmm): Fix typos. 33049 (__hppa sub_ddmmss): Swap input arguments. 33050 33051 * mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in 33052 initializator. 33053 33054 Sun Oct 25 20:30:06 1992 Torbjorn Granlund (tege@jupiter.sics.se) 33055 33056 * mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3 33057 specifically (used to consider all negative numbers prime). 33058 33059 * mpz_powm_ui: `carry_digit' => `carry_limb'. 33060 33061 * sdiv: Handle zero dividend specifically. Replace most code in 33062 this function with a call to mpn_divmod_1. 33063 33064 Fri Sep 11 22:15:55 1992 Torbjorn Granlund (tege@tarrega.sics.se) 33065 33066 * mpq_clear: Don't free the MP_RAT! 33067 33068 * mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg. 33069 33070 Thu Sep 3 01:47:07 1992 Torbjorn Granlund (tege@jupiter.sics.se) 33071 33072 * All files: Remove leading _ from mpn function names. 33073 33074 Wed Sep 2 22:21:16 1992 Torbjorn Granlund (tege@jupiter.sics.se) 33075 33076 Fix from Jan-Hein Buhrman: 33077 * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented. 33078 33079 * mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its 33080 life. 33081 33082 Sun Aug 30 18:37:15 1992 Torbjorn Granlund (tege@jupiter.sics.se) 33083 33084 * _mpz_get_str: Use mpz_sizeinbase for computing out_len. 33085 * _mpz_get_str: Don't remove leading zeros. Abort if there are some. 33086 33087 Wed Mar 4 17:56:56 1992 Torbjorn Granlund (tege@zevs.sics.se) 33088 33089 * gmp.h: Change definition of MP_INT to make the & before params 33090 optional. Use typedef to define it. 33091 * mp.h: Use typedef to define MINT. 33092 33093 Tue Feb 18 14:38:39 1992 Torbjorn Granlund (tege@zevs.sics.se) 33094 33095 longlong.h (hppa umul_ppmm): Add missing semicolon. Declare type 33096 of __w1 and __w0. 33097 33098 Fri Feb 14 21:33:21 1992 Torbjorn Granlund (tege@zevs.sics.se) 33099 33100 * longlong.h: Make default count_leading_zeros work for machines > 33101 32 bits. Prepend `__' before local variables to avoid conflicts 33102 with users' variables. 33103 33104 * mpn_dm_1.c: Remove udiv_qrnnd_preinv ... 33105 * gmp-impl.h: ... and put it here. 33106 * mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd. 33107 33108 Tue Feb 11 17:20:12 1992 Torbjorn Granlund (tege@zevs.sics.se) 33109 33110 * mpn_mul: Enhance base case by handling small multiplicands. 33111 * mpn_dm_1.c: Revert last change. 33112 33113 Mon Feb 10 11:55:15 1992 Torbjorn Granlund (tege@zevs.sics.se) 33114 33115 * mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed. 33116 33117 Fri Feb 7 16:26:16 1992 Torbjorn Granlund (tege@zevs.sics.se) 33118 33119 * mpn_mul: Replace code for base case. 33120 33121 Thu Feb 6 15:10:42 1992 Torbjorn Granlund (tege@zevs.sics.se) 33122 33123 * mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by 33124 pre-inverting divisor. 33125 33126 Sun Feb 2 11:10:25 1992 Torbjorn Granlund (tege@zevs.sics.se) 33127 33128 * longlong.h: Make __LLDEBUG__ work differently. 33129 (_IBMR2): Reinsert old code. 33130 33131 Sat Feb 1 16:43:00 1992 Torbjorn Granlund (tege@zevs.sics.se) 33132 33133 * longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code 33134 using floating point operations. Don't define 33135 UDIV_NEEDS_NORMALIZATION any longer. 33136 33137 Fri Jan 31 15:09:13 1992 Torbjorn Granlund (tege@zevs.sics.se) 33138 33139 * longlong.h: Define UMUL_TIME and UDIV_TIME for most machines. 33140 * longlong.h (#ifdef __hppa): Define umul_ppmm. 33141 33142 Wed Jan 29 16:41:36 1992 Torbjorn Granlund (tege@zevs.sics.se) 33143 33144 * mpn_cmp: Only one length parameter, assume operand lengths are 33145 the same. Don't require normalization. 33146 * mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for 33147 new mpn_cmp definition. 33148 33149 Tue Jan 28 11:18:55 1992 Torbjorn Granlund (tege@zevs.sics.se) 33150 33151 * _mpz_get_str: Fix typo in comment. 33152 33153 Mon Jan 27 09:44:16 1992 Torbjorn Granlund (tege@zevs.sics.se) 33154 33155 * Makefile.in: Add new files. 33156 33157 * mpn_dm_1.c: New file with function _mpn_divmod_1. 33158 * mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1. 33159 * mpz_div_ui: Likewise. 33160 33161 * mpn_mod_1.c: New file with function _mpn_mod_1. 33162 * mpz_mod_ui: Use _mpn_mod_1. 33163 33164 Thu Jan 23 18:54:09 1992 Torbjorn Granlund (tege@zevs.sics.se) 33165 33166 Bug found by Paul Zimmermann (zimmermann@inria.inria.fr): 33167 * mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui): 33168 Handle dividend == 0. 33169 33170 Wed Jan 22 12:02:26 1992 Torbjorn Granlund (tege@zevs.sics.se) 33171 33172 * mpz_pprime.c: Use "" for #include. 33173 33174 Sun Jan 19 13:36:55 1992 Torbjorn Granlund (tege@zevs.sics.se) 33175 33176 * mpn_rshiftci.c (header): Correct comment. 33177 33178 Wed Jan 15 18:56:04 1992 Torbjorn Granlund (tege@zevs.sics.se) 33179 33180 * mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1) 33181 to make space for ignored quotient at the end. (The quotient might 33182 always be an extra limb.) 33183 33184 Tue Jan 14 21:28:48 1992 Torbjorn Granlund (tege@zevs.sics.se) 33185 33186 * mpz_powm_ui: Fix comment. 33187 * mpz_powm: Likewise. 33188 33189 Mon Jan 13 18:16:25 1992 Torbjorn Granlund (tege@zevs.sics.se) 33190 33191 * tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target. 33192 33193 Sun Jan 12 13:54:28 1992 Torbjorn Granlund (tege@zevs.sics.se) 33194 33195 Fixes from Kazumaro Aoki: 33196 * mpz_out_raw: Take abs of size to handle negative values. 33197 * mpz_inp_raw: Reallocate before reading ptr from X. 33198 * mpz_inp_raw: Store, don't read, size to x->size. 33199 33200 Tue Jan 7 17:50:25 1992 Torbjorn Granlund (tege@zevs.sics.se) 33201 33202 * gmp.h, mp.h: Remove parameter names from prototypes. 33203 33204 Sun Dec 15 00:09:36 1991 Torbjorn Granlund (tege@zevs.sics.se) 33205 33206 * tests/Makefile.in: Prepend "./" to file names when executing 33207 tests. 33208 33209 * Makefile.in: Fix many problems. 33210 33211 Sat Dec 14 01:00:02 1991 Torbjorn Granlund (tege@zevs.sics.se) 33212 33213 * mpn_sqrt.c: New file with _mpn_sqrt. 33214 * mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt. 33215 * msqrt.c: Delete. Create from mpz_sqrtrem.c in Makefile.in. 33216 * mpz_do_sqrt.c: Delete. 33217 * Makefile.in: Update to reflect these changes. 33218 33219 * Makefile.in, configure, configure.subr: New files 33220 (from bothner@cygnus.com). 33221 * dist-Makefile: Delete. 33222 33223 * mpz_fac_ui: Fix comment. 33224 33225 * mpz_random2: Rewrite a bit to make it possible for the most 33226 significant limb to be == 1. 33227 33228 * mpz_pprime.c (mpz_probab_prime_p): Remove \t\n. 33229 33230 Fri Dec 13 23:10:02 1991 Torbjorn Granlund (tege@zevs.sics.se) 33231 33232 * mpz_do_sqrt: Simplify special case for U == 0. 33233 * m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p): 33234 Rename _mpz_impl_sqrt to _mpz_do_sqrt. 33235 33236 Fri Dec 13 12:52:28 1991 Torbjorn Granlund (tege@zevs.sics.se) 33237 33238 * gmp-impl.h (MPZ_TMP_INIT): Cast to the right type. 33239 33240 Thu Dec 12 22:17:29 1991 Torbjorn Granlund (tege@zevs.sics.se) 33241 33242 * mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several 33243 variables to mp_size. 33244 33245 Wed Dec 11 22:00:34 1991 Torbjorn Granlund (tege@zevs.sics.se) 33246 33247 * mpn_rshift.c: Fix header comments. 33248 33249 Mon Dec 9 17:46:10 1991 Torbjorn Granlund (tege@zevs.sics.se) 33250 33251 Released 1.2. 33252 33253 * gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value. 33254 33255 * dist-Makefile: Add missing dependency for cre-mparam. 33256 33257 * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c, 33258 mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment. 33259 33260 * dist-Makefile (clean): clean in tests subdir too. 33261 * tests/Makefile: Define default values for ROOT and SUB. 33262 33263 * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand 33264 2 constraint. 33265 33266 Mon Nov 11 00:06:05 1991 Torbjorn Granlund (tege@zevs.sics.se) 33267 33268 * mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0. 33269 33270 Sat Nov 9 23:47:38 1991 Torbjorn Granlund (tege@zevs.sics.se) 33271 33272 Released 1.1.94. 33273 33274 * dist-Makefile, Makefile, tests/Makefile: Merge tests into 33275 distribution. 33276 33277 Fri Nov 8 22:57:19 1991 Torbjorn Granlund (tege@zevs.sics.se) 33278 33279 * gmp.h: Don't use keyword `signed' for non-ANSI compilers. 33280 33281 Thu Nov 7 22:06:46 1991 Torbjorn Granlund (tege@zevs.sics.se) 33282 33283 * longlong.h: Cosmetic changes to keep it identical to gcc2 version 33284 of longlong.h. 33285 * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and 33286 sub_ddmmss. 33287 33288 Mon Nov 4 00:36:46 1991 Torbjorn Granlund (tege@zevs.sics.se) 33289 33290 * mpn_mul: Fix indentation. 33291 33292 * mpz_do_sqrt: Don't assume 32 bit limbs (had constant 33293 4294967296.0). 33294 * mpz_do_sqrt: Handle overflow in conversion from double returned 33295 by SQRT to mp_limb. 33296 33297 * gmp.h: Add missing function definitions. 33298 33299 Sun Nov 3 18:25:25 1991 Torbjorn Granlund (tege@zevs.sics.se) 33300 33301 * mpz_pow_ui: Change type of `i' to int. 33302 33303 * ChangeLog: Add change log entry. 33304 * ChangeLog: Add change log entry. 33305 * ChangeLog: Add change log entry. 33306 * ChangeLog: Add change log entry. 33307 * ChangeLog: Add change log entry. 33308 * ChangeLog: Add change log entry. 33309 * ChangeLog: Add change log entry. 33310 * ChangeLog: Add change log entry. 33311 Stack overflow. 33312 33313 * mpz_pow_ui.c: Fix typo in comment. 33314 33315 * dist-Makefile: Create rpow.c from mpz_powm_ui.c. 33316 * mpz_powm_ui.c: Add code for rpow. 33317 * rpow.c: Delete this file. The rpow function is now implemented 33318 in mpz_powm_ui.c. 33319 33320 * mpz_fac_ui.c: New file. 33321 * gmp.h, dist-Makefile: Add stuff for mpz_fac_ui. 33322 33323 Bug found by John Amanatides (amana@sasquatch.cs.yorku.ca): 33324 * mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with 33325 the first argument not smaller than the second. 33326 33327 Tue Oct 29 13:56:55 1991 Torbjorn Granlund (tege@zevs.sics.se) 33328 33329 * cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output 33330 header text. 33331 33332 Mon Oct 28 00:35:29 1991 Torbjorn Granlund (tege@zevs.sics.se) 33333 33334 * mpz_random2: Handle size == 0. 33335 33336 * gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to 33337 chars_per_bit_exactly, and change its definition. 33338 * cre-conv-tab.c (main): Output field according to its new 33339 definition. 33340 * mpz_out_str, _mpz_get_str, mpz_sizeinb, mout: 33341 Use chars_per_bit_exactly. 33342 33343 * mpz_random2: Change the loop termination condition in order to 33344 get a large most significant limb with higher probability. 33345 33346 * gmp.h: Add declaration of new mpz_random2 and mpz_get_si. 33347 * mpz_get_si.c: New file. 33348 * dist-Makefile: Add mpz_random2 and mpz_get_si. 33349 33350 * mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a 33351 power of 2, giving exact result. 33352 33353 * mpn_mul: Fix MPN_MUL_VERIFY in various ways. 33354 * mpn_mul: New macro KARATSUBA_THRESHOLD. 33355 * mpn_mul (karatsuba's algorithm): Don't write intermediate results 33356 to prodp, use temporary pp instead. (Intermediate results can be 33357 larger than the final result, possibly writing into hyperspace.) 33358 * mpn_mul: Make smarter choice between Karatsuba's algorithm and the 33359 shortcut algorithm. 33360 * mpn_mul: Fix typo, cy instead of xcy. Unify carry handling code. 33361 33362 Sun Oct 27 19:57:32 1991 Torbjorn Granlund (tege@zevs.sics.se) 33363 33364 * mpn_mul: In non-classical case, choose Karatsuba's algorithm only 33365 when usize > 1.5 vsize. 33366 33367 * mpn_mul: Break between classical and Karatsuba's algorithm at 33368 KARATSUBA_THRESHOLD, if defined. Default to 8. 33369 33370 * mpn_div: Kludge to fix stray memory read. 33371 33372 Sat Oct 26 20:06:14 1991 Torbjorn Granlund (tege@zevs.sics.se) 33373 33374 * mpz_gcdext: Handle a = b = 0. Remove memory leakage by calling 33375 mpz_clear for all temporary variables. 33376 33377 * mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that 33378 function's argument constraints. Compute wsize correctly. 33379 33380 * mpz_gcd: Fix typo in comment. 33381 33382 * memory.c (_mp_default_allocate, _mp_default_reallocate): Call 33383 abort if allocation fails, don't just exit. 33384 33385 Fri Oct 25 22:17:20 1991 Torbjorn Granlund (tege@zevs.sics.se) 33386 33387 * mpz_random2.c: New file. 33388 33389 Thu Oct 17 18:06:42 1991 Torbjorn Granlund (tege@zevs.sics.se) 33390 33391 Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be): 33392 * mpq_cmp: Take sign into account, don't just compare the 33393 magnitudes. 33394 * mpq_cmp: Call _mpn_mul in the right way, with the first argument 33395 not smaller than the second. 33396 33397 Wed Oct 16 19:27:32 1991 Torbjorn Granlund (tege@zevs.sics.se) 33398 33399 * mpz_random: Ensure the result is normalized. 33400 33401 Tue Oct 15 14:55:13 1991 Torbjorn Granlund (tege@zevs.sics.se) 33402 33403 * mpz_clrbit: Support non-ANSI compilers. 33404 33405 Wed Oct 9 18:03:28 1991 Torbjorn Granlund (tege@zevs.sics.se) 33406 33407 * longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints. 33408 33409 Tue Oct 8 17:42:59 1991 Torbjorn Granlund (tege@zevs.sics.se) 33410 33411 * mpz_mdm_ui: Add comments. 33412 33413 * mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init. 33414 * mpz_init_ui: Change spacing and header comment. 33415 33416 Thu Oct 3 18:36:13 1991 Torbjorn Granlund (tege@zevs.sics.se) 33417 33418 * dist-Makefile: Prepend `./' before some filenames. 33419 33420 Sun Sep 29 14:02:11 1991 Torbjorn Granlund (tege@zevs.sics.se) 33421 33422 Released 1.1 (public). 33423 33424 * mpz_com: New name of mpz_not. 33425 * dist-Makefile: Change mpz_not to mpz_com. 33426 33427 Tue Sep 24 12:44:11 1991 Torbjorn Granlund (tege@zevs.sics.se) 33428 33429 * longlong.h: Fix header comment. 33430 33431 Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege@zevs.sics.se) 33432 33433 Released 1.0.92. 33434 33435 * mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba 33436 case. 33437 33438 * longlong.h (m68000 umul_ppmm): Clobber one register less by 33439 slightly rearranging the code. 33440 33441 Sun Sep 1 18:53:25 1991 Torbjorn Granlund (tege@zevs.sics.se) 33442 33443 * dist-Makefile (stamp-stddefh): Fix typo. 33444 33445 Sat Aug 31 20:41:31 1991 Torbjorn Granlund (tege@zevs.sics.se) 33446 33447 Released 1.0.91. 33448 33449 * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c, 33450 mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions. 33451 * gmp.h, gmp.texi: Define the new functions. 33452 33453 Fri Aug 30 08:32:56 1991 Torbjorn Granlund (tege@zevs.sics.se) 33454 33455 * mpz_gcdext: Compute t argument from the other quantities at the 33456 end, of the function, not in the loop. New feature: Allow t to be 33457 NULL. 33458 33459 * mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't 33460 include "mp.h". Use type name `MP_INT' always. 33461 33462 * dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c. 33463 33464 Wed Aug 28 00:45:11 1991 Torbjorn Granlund (tege@zevs.sics.se) 33465 33466 * dist-Makefile (documentation): Go via tmp.texi to avoid the 33467 creation of gmp.dvi if any errors occur. Make tex read input 33468 from /dev/null. 33469 33470 Fri Aug 23 15:58:52 1991 Torbjorn Granlund (tege@zevs.sics.se) 33471 33472 * longlong.h (68020, i386): Don't define machine-dependent 33473 __umulsidi3 (so the default definition is used). 33474 * longlong.h (all machines): Cast all operands, sources and 33475 destinations, to `unsigned long int'. 33476 * longlong.h: Add gmicro support. 33477 33478 Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege@zevs.sics.se) 33479 33480 * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE. 33481 * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm. 33482 * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs. 33483 * _mpz_get_str.c: Add code to do division by big_base using only 33484 umul_qrnnd, if that is faster. Use UMUL_TIME and UDIV_TIME to 33485 decide which variant to use. 33486 33487 Wed Aug 21 15:45:23 1991 Torbjorn Granlund (tege@zevs.sics.se) 33488 33489 * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the 33490 nops. (Saves two insn.) 33491 33492 * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid 33493 branch, and to permit input/output register overlap. 33494 33495 * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition. 33496 * longlong.h (__29k__ umul_ppmm): Split asm instructions into two 33497 asm statements (gives better code if either the upper or lower 33498 part of the product is unused. 33499 33500 Tue Aug 20 17:57:59 1991 Torbjorn Granlund (tege@zevs.sics.se) 33501 33502 * _mpz_get_str.c (outside of functions): Remove 33503 num_to_ascii_lower_case and num_to_ascii_upper_case. Use string 33504 constants in the function instead. 33505 33506 Mon Aug 19 00:37:42 1991 Torbjorn Granlund (tege@zevs.sics.se) 33507 33508 * cre-conv-tab.c (main): Output table in hex. Output 4 fields, not 33509 3, for components 0 and 1. 33510 33511 * gmp.h: Add declaration of mpq_neg. 33512 33513 Released 1.0beta.13. 33514 33515 * _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before 33516 comparing to enum literals SPC and EOF. This makes the code work 33517 for compilers where `char' is unsigned. (Bug found by Brian 33518 Beuning). 33519 33520 Released 1.0beta.12. 33521 33522 * mpz_mod_ui: Remove references to quot. Remove quot_ptr, quot_size 33523 declarations and assignment code. 33524 33525 Sun Aug 18 14:44:26 1991 Torbjorn Granlund (tege@zevs.sics.se) 33526 33527 * mpz_mod_ui: Handle dividend < 0. 33528 33529 Released 1.0beta.11. 33530 33531 * mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same 33532 general structure, variable names, etc. 33533 33534 * sdiv: Un-normalize the remainder in n1 before it is negated. 33535 33536 * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of 33537 udiv_qrnnd. 33538 33539 * mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment 33540 the quotient size if the dividend size is incremented. (Bug found 33541 by Brian Beuning.) 33542 33543 * mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION. 33544 (Bug found by Brian Beuning.) 33545 33546 * mpz_mod_ui: Replace "digit" by "limb". 33547 33548 * mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case 33549 for non-32-bit machines (PP is hardwired for such machines). 33550 * mpz_perfsqr.c (outside of functions): Define PP value with an L. 33551 33552 * mpn_mul.c (_mpn_mul): Add verification code that is activated if 33553 DEBUG is defined. Replace "digit" by "limb". 33554 * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp 33555 after the addition. 33556 * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size 33557 and v0_size, and according to the result, swap arguments in 33558 recursive call. (Don't violate mpn_mul's own argument 33559 constraints.) 33560 33561 Fri Aug 16 13:47:12 1991 Torbjorn Granlund (tege@zevs.sics.se) 33562 33563 Released 1.0beta.10. 33564 33565 * longlong.h (IBMR2): Add udiv_qrnnd. 33566 33567 * mpz_perfsqr: Remove unused variables. 33568 33569 * mpz_and (case for different signs): Initialize loop variable i! 33570 33571 * dist-Makefile: Update automatically generated dependencies. 33572 * dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h, 33573 etc to dependency file lists. 33574 33575 * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x 33576 `unsigned long int'. 33577 * longlong.h: Add `int' after `unsigned' and `long' everywhere. 33578 33579 Wed Aug 14 18:06:48 1991 Torbjorn Granlund (tege@zevs.sics.se) 33580 33581 * longlong.h: Add ARM, i860 support. 33582 33583 * mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb. 33584 33585 Tue Aug 13 21:57:43 1991 Torbjorn Granlund (tege@zevs.sics.se) 33586 33587 * _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase), 33588 mpz_out_str.c, mout.c: Remove declaration of __mp_bases. 33589 * gmp-impl.h: Put it here, and make it `const'. 33590 * cre-conv-tab.c (main): Make struct __mp_bases `const'. 33591 33592 Mon Aug 12 17:11:46 1991 Torbjorn Granlund (tege@zevs.sics.se) 33593 33594 * cre-conv-tab.c (main): Use %lu in printf for long ints. 33595 33596 * dist-Makefile: Fix cre-* dependencies. 33597 33598 * cre-conv-tab.c (main): Output field big_base_inverted. 33599 33600 * gmp-impl.h (struct bases): New field big_base_inverted. 33601 * gmp-impl.h (struct bases): Change type of chars_per_limb_exactly 33602 to float (in order to keep the structure smaller). 33603 33604 * mp.h, gmp.h: Change names of macros for avoiding multiple 33605 includes. 33606 33607 Fri Aug 9 18:01:36 1991 Torbjorn Granlund (tege@zevs.sics.se) 33608 33609 * _mpz_get_str: Only shift limb array if normalization_steps != 0 33610 (optimization). 33611 33612 * longlong.h (sparc umul_ppmm): Use __asm__, not asm. 33613 * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0 33614 and m1 (overlap between output and input operands did not work). 33615 * longlong.h: Add VAX, ROMP and HP-PA support. 33616 * longlong.h: Sort the machine dependent code in alphabetical order 33617 on the CPU name. 33618 * longlong.h: Hack comments. 33619 33620 Thu Aug 8 14:13:36 1991 Torbjorn Granlund (tege@zevs.sics.se) 33621 33622 Released 1.0beta.9. 33623 33624 * longlong.h: Define BITS_PER_LONG to 32 if it's not already 33625 defined. 33626 * Define __BITS4 to BITS_PER_LONG / 4. 33627 * Don't assume 32 bit word size in "count_leading_zeros" C macro. 33628 Use __BITS4 and BITS_PER_LONG instead. 33629 33630 * longlong.h: Don't #undef internal macros (reverse change of Aug 3). 33631 33632 * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm 33633 even for plain mc68000. 33634 33635 * mpq_div: Flip the sign of the numerator *and* denominator of the 33636 result if the intermediate denominator is negative. 33637 33638 * mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations. 33639 33640 * mpz_and.c: Compute the result size more conservatively. 33641 * mpz_ior.c: Likewise. 33642 33643 * mpz_realloc: Never allocate zero space even if NEW_SIZE == 0. 33644 33645 * dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from 33646 BSDMP_SRCS. 33647 33648 * dist-Makefile: Create mult.c from mpz_mul.c. 33649 * mult.c: Delete this file. 33650 33651 * _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was 33652 not done properly if the input string had many leading zeros). 33653 33654 Sun Aug 4 16:54:14 1991 Torbjorn Granlund (tege@zevs.sics.se) 33655 33656 * dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets 33657 work with VPATH and GNU MP. 33658 33659 * mpz_gcd: Don't call mpz_set; inline its functionality. 33660 33661 * mpq_mul, mpq_div: Fix several serious typos. 33662 33663 * mpz_dmincl, mpz_div: Don't normalize the quotient if it's already 33664 zero. 33665 33666 * mpq_neg.c: New file. 33667 33668 * dist-Makefile: Remove obsolete dependencies. 33669 33670 * mpz_sub: Fix typo. 33671 33672 Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be): 33673 * mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd 33674 is just 1. 33675 * mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases. 33676 33677 Sat Aug 3 23:45:28 1991 Torbjorn Granlund (tege@zevs.sics.se) 33678 33679 * longlong.h: Clean up comments. 33680 * longlong.h: #undef internal macros. 33681 33682 Fri Aug 2 18:29:11 1991 Torbjorn Granlund (tege@zevs.sics.se) 33683 33684 * mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1. 33685 * mpq_set_si, mpq_set_ui: Cosmetic formatting changes. 33686 33687 * mpz_dmincl.c: Normalize the remainder before shifting it back. 33688 33689 * mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend. 33690 33691 * mpn_div.c: Fix comment. 33692 33693 * mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate 33694 type, in order to work for both GNU and Berkeley functions. 33695 33696 * dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm, 33697 madd.c from mpz_add.c, msub.c from mpz_sub.c. 33698 respectively. 33699 * pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these. 33700 * mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and 33701 Berkeley function name variants. 33702 * dist-Makefile: Add created files to "clean" target. 33703 33704 Tue Jul 16 15:19:46 1991 Torbjorn Granlund (tege@zevs.sics.se) 33705 33706 * mpq_get_den: No need for absolute value of the size, the 33707 denominator is always positive. 33708 33709 * mpz_get_ui: If the operand is zero, return zero. Don't read the 33710 limb array! 33711 33712 * mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it 33713 is the size of the remainder. 33714 33715 Mon Jul 15 11:08:05 1991 Torbjorn Granlund (tege@zevs.sics.se) 33716 33717 * Several files: Remove unused variables and functions. 33718 33719 * gmp-impl.h: Declare _mpz_impl_sqrt. 33720 33721 * mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if 33722 UDIV_NEEDS_NORMALIZATION. (Fix from Brian Beuning.) 33723 33724 * mpz_dm_ui.c, sdiv: Replace *digit with *limb. 33725 33726 * mpz_ior: Add missing else statement in -OP1 | -OP2 case. 33727 * mpz_ior: Add missing else statement in OP1 | -OP2 case. 33728 * mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case. 33729 * mpz_ior: Duplicate _mpz_realloc code. 33730 33731 * mpz_and: Add missing else statement in -OP1 & -OP2 case. 33732 * mpz_and: Rewrite OP1 & -OP2 case. 33733 * mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case. 33734 33735 * mpz_gcdext: Loop in d1.size (not b->size). (Fix from Brian 33736 Beuning.) 33737 33738 * mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call. (Fix from 33739 Brian Beuning.) 33740 33741 Fri Jul 12 17:10:33 1991 Torbjorn Granlund (tege@zevs.sics.se) 33742 33743 * mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c, 33744 mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c: 33745 New files. 33746 33747 * mpz_dmincl.c: Remove second re-allocation of rem->d. It 33748 was never executed. 33749 33750 * dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as 33751 some unixes' test doesn't have the -r option). 33752 33753 * *.*: Cast allocated pointers to the appropriate type (makes old C 33754 compilers happier). 33755 33756 * cre-conv-tab.c (main): Divide max_uli by 2 and multiply again 33757 after conversion to double. (Kludge for broken C compilers.) 33758 33759 * dist-Makefile (stamp-stddefh): New target. Test if "stddef.h" 33760 exists in the system and creates a minimal one if it does not 33761 exist. 33762 * cre-stddefh.c: New file. 33763 * dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh. 33764 * dist-Makefile (clean): Add some more. 33765 * gmp.h, mp.h: Unconditionally include "stddef.h". 33766 33767 Thu Jul 11 10:08:21 1991 Torbjorn Granlund (tege@zevs.sics.se) 33768 33769 * min: Do ungetc of last read character. 33770 * min.c: include stdio.h. 33771 33772 * dist-Makefile: Go via tmp- files for cre* redirection. 33773 * dist-Makefile: Add tmp* to "clean" target. 33774 33775 * dist-Makefile: Use LOCAL_CC for cre*, to simplify cross 33776 compilation. 33777 33778 * gmp.h, mp.h: Don't define NULL here. 33779 * gmp-impl.h: Define it here. 33780 33781 Wed Jul 10 14:13:33 1991 Torbjorn Granlund (tege@zevs.sics.se) 33782 33783 * mpz_mod_2exp: Don't copy too much, overwriting most significant 33784 limb. 33785 33786 * mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when 33787 reallocating res, if op[12]_ptr got their value from alloca. 33788 33789 * mpz_and, mpz_ior: Clear up comments. 33790 33791 * cre-mparam.c: Output parameters for `short int' and `int'. 33792 33793 * mpz_and, mpz_ior: Negate negative op[12]_size in several places. 33794 33795 Tue Jul 9 18:40:30 1991 Torbjorn Granlund (tege@zevs.sics.se) 33796 33797 * gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t. 33798 (Fix for Sun lossage.) 33799 33800 * gmp.h: Add declaration of mpq_clear. 33801 33802 * dist-Makefile: Check if "ranlib" exists, before using it. 33803 * dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c. 33804 * mpz_powm: Fix typo, "pow" instead of "mpz_powm". 33805 33806 Fri Jul 5 19:08:09 1991 Torbjorn Granlund (tege@zevs.sics.se) 33807 33808 * move: Remove incorrect comment. 33809 33810 * mpz_free, mpq_free: Rename to *_clear. 33811 * dist-Makefile: Likewise. 33812 * mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise. 33813 33814 * mpz_dmincl.c: Don't call "move", inline its functionality. 33815 33816 Thu Jul 4 00:06:39 1991 Torbjorn Granlund (tege@zevs.sics.se) 33817 33818 * Makefile: Include dist-Makefile. Fix dist target to include 33819 dist-Makefile (with the name "Makefile" in the archive). 33820 33821 * dist-Makefile: New file made from Makefile. Add new mpz_... 33822 functions. 33823 33824 * mpz_powincl.c New file for mpz_powm (Berkeley MP pow) 33825 functionality. Avoids code duplication. 33826 * pow.c, mpz_powm.c: Include mpz_powincl.c 33827 33828 * mpz_dmincl.c: New file containing general division code. Avoids 33829 code duplication. 33830 * mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include 33831 mpz_dmincl.c. 33832 33833 * _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined. 33834 Instead, write the overlapping memory copying inline. 33835 33836 * mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit). 33837 33838 * longlong.h: Don't use #elif. 33839 * mpz_do_sqrt.c: Likewise. 33840 33841 * longlong.h: Use __asm__ instead of asm. 33842 * longlong.h (sparc udiv_qrnnd): Make it to one string over several 33843 lines. 33844 33845 * longlong.h: Preend __ll_ to B, highpart, and lowpart. 33846 33847 * longlong.h: Move array t in count_leading_zeros to the new file 33848 mp_clz_tab.c. Rename the array __clz_tab. 33849 * All files: #ifdef for traditional C compatibility. 33850 33851 Wed Jul 3 11:42:14 1991 Torbjorn Granlund (tege@zevs.sics.se) 33852 33853 * mpz_and: Initialize res_ptr always (used to be initialized only 33854 when reallocating). 33855 33856 * longlong.h (umul_ppmm [C variant]): Make __ul...__vh 33857 `unsigned int', and cast the multiplications. This way 33858 compilers more easily can choose cheaper multiplication 33859 instructions. 33860 33861 * mpz_mod_2exp: Handle input argument < modulo argument. 33862 * mpz_many: Make sure mp_size is the type for sizes, not int. 33863 33864 * mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul, 33865 mpq_div: Change mpz_init* interface. Structure pointer as first 33866 arg to initialization function, no longer *return* struct. 33867 33868 Sun Jun 30 19:21:44 1991 Torbjorn Granlund (tege@zevs.sics.se) 33869 33870 * Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14 33871 character file name length limit. 33872 33873 * Most files: Rename MINT to MP_INT. Rename MRAT to MP_RAT. 33874 * mpz_sizeinb.c: New file with function mpz_sizeinbase. 33875 * mp_bases.c: New file, with array __mp_bases. 33876 * _mpz_get_str, _mpz_set_str: Remove struct bases, use extern 33877 __mp_bases instead. 33878 * mout, mpz_out_str: Use array __mp_bases instead of function 33879 _mpz_get_cvtlen. 33880 * mpz_get_cvtlen.c: Remove. 33881 * Makefile: Update. 33882 33883 Sat Jun 29 21:57:28 1991 Torbjorn Granlund (tege@zevs.sics.se) 33884 33885 * longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay. 33886 * longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss. 33887 * longlong.h (__sparc__): Don't call .umul; expand asm instead. 33888 Don't define __umulsidi3 (i.e. use default definition). 33889 33890 Mon Jun 24 17:37:23 1991 Torbjorn Granlund (tege@amon.sics.se) 33891 33892 * _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case): 33893 Swap 't' and 's'. 33894 33895 Sat Jun 22 13:54:01 1991 Torbjorn Granlund (tege@zevs.sics.se) 33896 33897 * mpz_gcdext.c: New file. 33898 33899 * mpn_mul: Handle carry and unexpected operand sizes in last 33900 additions/subtractions. (Bug trigged when v1_size == 1.) 33901 33902 * mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c). 33903 * mpq_*: Call mpz_init*. 33904 33905 * mpz_pow_ui, rpow: Use _mpn_mul instead of mult. Restructure. 33906 33907 Wed May 29 20:32:33 1991 Torbjorn Granlund (tege@zevs.sics.se) 33908 33909 * mpz_get_cvtlen: multiply by size. 33910 33911 Sun May 26 15:01:15 1991 Torbjorn Granlund (tege@bella.nada.kth.se) 33912 33913 Alpha-release 0.95. 33914 33915 Fixes from Doug Lea (dl@g.oswego.edu): 33916 * mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE). Adjust PROD_SIZE 33917 correctly. 33918 * mpz_div: Prepend _ to mpz_realloc. 33919 * mpz_set_xs, mpz_set_ds: Fix typos in function name. 33920 33921 Sat May 25 22:51:16 1991 Torbjorn Granlund (tege@bella.nada.kth.se) 33922 33923 * mpz_divmod_ui: New function. 33924 33925 * sdiv: Make the sign of the remainder correct. 33926 33927 Thu May 23 15:28:24 1991 Torbjorn Granlund (tege@zevs.sics.se) 33928 33929 * Alpha-release 0.94. 33930 33931 * mpz_mul_ui: Include longlong.h. 33932 33933 * mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead 33934 of msqrt. 33935 33936 * mpz_impl_sqrt: Don't call "move", inline its functionality. 33937 33938 * mdiv: Use MPN_COPY instead of memcpy. 33939 * rpow, mpz_mul, mpz_mod_2exp: Likewise. 33940 * pow.c: Likewise, and fix bug in the size arg. 33941 33942 * xtom: Don't use mpz_alloc, inline needed code instead. Call 33943 _mpz_set_str instead of mpz_set_str. 33944 33945 * Makefile: Make two libraries, libmp.a and libgmp.a. 33946 33947 Thu May 22 20:25:29 1991 Torbjorn Granlund (tege@zevs.sics.se) 33948 33949 * Add manual to distribution. 33950 * Fold in many missing routines described in the manual. 33951 * Update Makefile. 33952 33953 Wed May 22 13:48:46 1991 Torbjorn Granlund (tege@zevs.sics.se) 33954 33955 * mpz_set_str: Make it handle 0x prefix OK. 33956 33957 Sat May 18 18:31:02 1991 Torbjorn Granlund (tege@zevs.sics.se) 33958 33959 * memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE 33960 arguments. 33961 * mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func. 33962 * min: Likewise. 33963 33964 Thu May 16 20:43:05 1991 Torbjorn Granlund (tege@zevs.sics.se) 33965 33966 * memory.c: Make the default allocations functions global. 33967 * mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the 33968 default memory function. 33969 33970 Wed May 8 20:02:42 1991 Torbjorn Granlund (tege@zevs.sics.se) 33971 33972 * mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D 33973 even if no normalization is needed. 33974 * mpz_div: Rework reallocation scheme, to avoid excess copying. 33975 33976 * mpz_sub_ui.c, mpz_add_ui.c: New files. 33977 33978 * mpz_cmp.c, mpz_cmp_ui.c: New files. 33979 33980 * mpz_mul_2exp: Handle zero input MINT correctly. 33981 33982 * mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT. 33983 33984 * mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O. 33985 33986 Tue May 7 15:44:58 1991 Torbjorn Granlund (tege@zevs.sics.se) 33987 33988 * mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT. 33989 * mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT. 33990 * gcd, mpz_gcd: Likewise. 33991 33992 * gcd, mpz_gcd: Handle common 2 factors correctly. 33993 33994 Mon May 6 20:22:59 1991 Torbjorn Granlund (tege@zevs.sics.se) 33995 33996 * gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy. 33997 33998 * gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros. 33999 34000 Sun May 5 15:16:23 1991 Torbjorn Granlund (tege@zevs.sics.se) 34001 34002 * mpz_div: Remove test for QUOT == 0. 34003 34004 Sun Apr 28 20:21:04 1991 Torbjorn Granlund (tege@zevs.sics.se) 34005 34006 * pow: Don't make MOD normalization in place, as it's a bad idea to 34007 write on an input parameter. 34008 * pow: Reduce BASE if it's > MOD. 34009 * pow, mult, mpz_mul: Simplify realloc code. 34010 34011 Sat Apr 27 21:03:11 1991 Torbjorn Granlund (tege@zevs.sics.se) 34012 34013 * Install multiplication using Karatsuba's algorithm as default. 34014 34015 Fri Apr 26 01:03:57 1991 Torbjorn Granlund (tege@zevs.sics.se) 34016 34017 * msqrt: Store in ROOT even for U==0, to make msqrt(0) defined. 34018 34019 * mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and 34020 left, respectively. 34021 * gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp. 34022 34023 * mlshift.c, mrshift.c: Remove. 34024 34025 Wed Apr 24 21:39:22 1991 Torbjorn Granlund (tege@zevs.sics.se) 34026 34027 * mpn_mul: Check only for m2_size == 0 in function header. 34028 34029 Mon Apr 22 01:31:57 1991 Torbjorn Granlund (tege@zevs.sics.se) 34030 34031 * karatsuba.c: New file for Karatsuba's multiplication algorithm. 34032 34033 * mpz_random, mpz_init, mpz_mod_2exp: New files and functions. 34034 34035 * mpn_cmp: Fix header comment. 34036 34037 Sun Apr 21 00:10:44 1991 Torbjorn Granlund (tege@zevs.sics.se) 34038 34039 * pow: Switch off initial base reduction. 34040 34041 Sat Apr 20 22:06:05 1991 Torbjorn Granlund (tege@echnaton.sics.se) 34042 34043 * mpz_get_str: Don't generate initial zeros for initial word. 34044 Used to write outside of allocated storage. 34045 34046 Mon Apr 15 15:48:08 1991 Torbjorn Granlund (tege@zevs.sics.se) 34047 34048 * _mpz_realloc: Make it accept size in number of mp_digits. 34049 * Most functions: Use new _mpz_realloc definition. 34050 34051 * mpz_set_str: Remove calls _mp_free_func. 34052 34053 * Most functions: Rename mpn_* to _mpn_*. Rename mpz_realloc to 34054 _mpz_realloc. 34055 * mpn_lshift: Redefine _mpn_lshift to only handle small shifts. 34056 * mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift. 34057 * msqrt, mp*_*shift*: Define cnt as unsigned (for speed). 34058 34059 Sat Apr 6 14:05:16 1991 Torbjorn Granlund (tege@musta.nada.kth.se) 34060 34061 * mpn_mul: Multiply by the first digit in M2 in a special 34062 loop instead of zeroing the product area. 34063 34064 * mpz_abs.c: New file. 34065 34066 * sdiv: Implement as mpz_div_si for speed. 34067 34068 * mpn_add: Make it work for second source operand == 0. 34069 34070 * msub: Negate the correct operand, i.e. V before swapping, not 34071 the smaller of U and V! 34072 * madd, msub: Update abs_* when swapping operands, and not after 34073 (optimization). 34074 34075 Fri Apr 5 00:19:36 1991 Torbjorn Granlund (tege@black.nada.kth.se) 34076 34077 * mpn_sub: Make it work for subtrahend == 0. 34078 34079 * madd, msub: Rewrite to minimize mpn_cmp calls. Ensure 34080 mpn_cmp is called with positive sizes (used to be called 34081 incorrectly with negative sizes sometimes). 34082 34083 * msqrt: Make it divide by zero if fed with a negative number. 34084 * Remove if statement at end of precision calculation that was 34085 never true. 34086 34087 * itom, mp.h: The argument is of type short, not int. 34088 34089 * mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer. 34090 34091 * mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h. 34092 34093 * Add COPYING to distribution. 34094 34095 * mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files. 34096 34097 Fri Mar 15 00:26:29 1991 Torbjorn Granlund (tege@musta.nada.kth.se) 34098 34099 * Add Copyleft headers to all files. 34100 34101 * mpn_mul.c, mpn_div.c: Add header comments. 34102 * mult.c, mdiv.c: Update header comments. 34103 34104 * mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c, 34105 mpq_free.c: New files for rational arithmetics. 34106 34107 * mpn_lshift.c: Avoid writing the most significant word if it is 0. 34108 34109 * mdiv.c: Call mpn_lshift for the normalization. 34110 * mdiv.c: Remove #ifdefs. 34111 34112 * Makefile: Add ChangeLog to DISTFILES. 34113 34114 * mpn_div.c: Make the add_back code work (by removing abort()). 34115 * mpn_div.c: Make it return if the quotient is size as compared 34116 with the difference NSIZE - DSIZE. If the stored quotient is 34117 larger than that, return 1, otherwise 0. 34118 * gmp.h: Fix mpn_div declaration. 34119 * mdiv.c: Adopt call to mpn_div. 34120 * mpz_div.c: New file (developed from mdiv.c). 34121 34122 * README: Update routine names. 34123 34124 Thu Mar 14 18:45:28 1991 Torbjorn Granlund (tege@musta.nada.kth.se) 34125 34126 * mpq_mul.c: New file for rational multiplication. 34127 34128 * gmp.h: Add definitions for rational arithmetics. 34129 34130 * mpn_div: Kludge the case where the high numerator digit > the 34131 high denominator digit. (This code is going to be optimized later.) 34132 34133 * New files: gmp.h for GNU specific functions, gmp-common.h for 34134 definitions common for mp.h and gmp.h. 34135 34136 * Ensure mp.h just defines what BSD mp.h defines. 34137 34138 * pow.c: Fix typo for bp allocation. 34139 34140 * Rename natural number functions to mpn_*, integer functions to 34141 mpz_*. 34142 34143 Tue Mar 5 18:47:04 1991 Torbjorn Granlund (tege@musta.nada.kth.se) 34144 34145 * mdiv.c (_mp_divide, case 2): Change test for estimate of Q from 34146 "n0 >= r" to "n0 > r". 34147 34148 * msqrt: Tune the increasing precision scheme, to do fewer steps. 34149 34150 Tue Mar 3 18:50:10 1991 Torbjorn Granlund (tege@musta.nada.kth.se) 34151 34152 * msqrt: Use the low level routines. Use low precision in the 34153 beginning, and increase the precision as the result converges. 34154 (This optimization gave a 6-fold speedup.)