12020-11-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 2 3 * tests/run-tests: Update WINEPATH, instead of overwriting it. 4 52020-10-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 6 7 * mini-mpq.c (mpq_canonical_sign): Use the correct type for size. 8 92020-10-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 10 11 * mini-mpq.c (mpq_out_str): Return 0 when base is out of range. 12 * mini-gmp.c (mpz_out_str): Likewise. (spotted by Paul Eggert) 13 14 * tests/t-str.c: Test out-of-range bases for mpz_out_str. 15 * tests/t-mpq_str.c: Likewise, for mpq_out_str. 16 172020-10-06 Niels Möller <nisse@lysator.liu.se> 18 19 * tests/run-tests: Better support for make check on wine or cygwin. 20 212020-09-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 22 23 * tests/t-mpq_double.c (mpq_get_d_exact_p): Cleanup. 24 25 * mini-gmp.h: Update FILE tests from gmp-h (tx Vincent Lefèvre). 26 272020-05-21 Torbjörn Granlund <tg@gmplib.org> 28 29 * tests/t-mpq_muldiv_2exp.c (testmain): Cast printf args to right type. 30 31 * tests/t-double.c: Provide default M_PI definition. 32 332020-05-19 Torbjörn Granlund <tg@gmplib.org> 34 35 * tests/hex-random.h (enum hex_random_op): Remove final ",". 36 372019-12-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 38 39 * mini-gmp/mini-gmp.c (mpn_invert_3by2): Remove shortcuts. 40 412019-11-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 42 43 * mini-gmp/mini-gmp.c (mpn_invert_3by2): Shortcut for short limbs. 44 452019-11-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 46 47 * mini-gmp/mini-gmp.c (gmp_clz, gmp_popcount_limb, mpz_export): 48 Avoid undefined behaviour with small limb sizes. 49 502019-09-30 Niels Möller <nisse@lysator.liu.se> 51 52 * tests/t-gcd.c (gcdext_valid_p): Stricter checks for gcdext 53 corner cases. 54 552018-12-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 56 57 * mini-gmp/mini-gmp.c: Support for micro-gmp. 58 592018-11-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 60 61 * mini-gmp/mini-gmp.c: Silence a couple of warnings. 62 632018-10-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 64 65 * mini-gmp.c (mpz_probab_prime_p): BPSW test for primality. 66 67 * tests/hex-random.c (hex_random_lucm_op): New function. 68 * tests/hex-random.h: Declare it. 69 * tests/mini-random.c (mini_random_lucm_op): New function. 70 * tests/mini-random.h: Declare it. 71 * mini-gmp/tests/t-lucm.c: New test 72 * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add t-lucm. 73 742018-09-07 Niels Möller <nisse@lysator.liu.se> 75 76 * tests/t-div.c (testmain): Add missing const declarations. 77 782018-05-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 79 80 * mini-gmp.c (mpz_get_d): Convert a fixed number of 81 bits (GMP_DBL_MANT_BITS) to avoid rounding. 82 83 * mini-mpq.c (mpq_mul): Use mpq_nan_init. 84 85 * tests/t-double.c (test_matissa): Tests converted bits. 86 872018-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it> 88 89 * mini-mpq.c: New file, mini-implementation of mpq_t. 90 * mini-mpq.h: New file, definitions for mpq_t. 91 * tests/t-mpq_addsub: New tests for mpq_add and sub. 92 * tests/t-mpq_muldiv: New tests for mpq_mul and div. 93 * tests/t-mpq_muldiv_2exp: New tests for mpq_*_2exp. 94 952018-03-11 Niels Möller <nisse@lysator.liu.se> 96 97 * mini-gmp.c (mpn_div_qr_2_preinv): Drop separate rp argument. 98 Clobber input np, and store remainder in np[0] and np[1]. This is 99 all the current caller needs, and it eliminates one allocation in 100 the common case of un-normalized d. 101 (mpn_div_qr_2): Delete #if:ed out function. 102 (mpn_div_qr_preinv): Update the only call site for 103 mpn_div_qr_2_preinv. 104 1052018-02-10 Niels Möller <nisse@lysator.liu.se> 106 107 * mini-gmp.c (mpn_div_qr_1_preinv): When qp is non-NULL, reuse 108 area for shifted input, to avoid an allocation. 109 1102018-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 111 112 * mini-gmp.c (gmp_popcount_limb): Micro-optimisations. 113 * tests/t-comb.c (checkWilson): Check also mpz_2fac_ui. 114 1152017-12-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 116 117 * mini-gmp.c (mpz_mfac_ui, mpz_2fac_ui): New functions. 118 * mini-gmp.h: Declare them. 119 * mini-gmp.c (mpz_fac_ui): Use mpz_mfac_ui. 120 1212017-07-23 Niels Möller <nisse@lysator.liu.se> 122 123 * mini-gmp.c (GMP_MPN_OVERLAP_P): New macro, copy of 124 MPN_OVERLAP_P, from gmp-impl.h. 125 (mpn_mul): Assert that output area doesn't overlap with the input. 126 1272017-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 128 129 * mini-gmp.c (mpz_sizeinbase, mpz_get_str, mpz_set_str): Support 130 bases up to 62. 131 * tests/t-str.c: Update tests accordingly. 132 1332016-11-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 134 135 * mini-gmp.c (mpz_get_si): fewer branches, safer forumla for negatives. 136 137 * tests/t-signed.c: Removed a typo 138 1392016-11-24 Niels Möller <nisse@lysator.liu.se> 140 141 * tests/hex-random.c (mkseed): Produce a 48-bit mpz_t value, 142 regardless of word size. 143 (hex_random_init): Use gmp_randseed instead of gmp_randseed_ui, 144 and support seeds exceeding an unsigned long. 145 146 * tests/hex-random.c (mkseed): New function, using /dev/urandom 147 for random seed when available. 148 (hex_random_init): Use it. 149 1502016-11-23 Niels Möller <nisse@lysator.liu.se> 151 152 * mini-gmp.c (GMP_CMP): New macro. 153 (mpz_sgn, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs_ui): Use it. 154 1552016-11-22 Niels Möller <nisse@lysator.liu.se> 156 157 * tests/t-invert.c (test_3by2, test_2by1): New functions, 158 extracted from testmain. 159 (testmain): Add test with inputs which triggered the 160 mpn_invert_3by2 bug (see 2016-11-16 entry). 161 1622016-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 163 164 * tests/t-signed.c: compare different signs, and after overflow. 165 1662016-11-20 Niels Möller <nisse@lysator.liu.se> 167 168 * tests/t-signed.c: Reorganize testcase, to avoid undefined 169 behaviour with signed overflow. 170 1712016-11-19 Niels Möller <nisse@lysator.liu.se> 172 173 * tests/run-tests: Set up LD_LIBRARY_PATH and DYLD_LIBRARY_PATH 174 for tests only, based on TEST_LIBRARY_PATH. 175 176 * tests/mini-random.h: Use name "../mini-gmp.h" for include, so we 177 don't need any -I options to the compiler. 178 179 * tests/Makefile: Pass CFLAGS to the linker, as 180 recommended by the GNU coding standard. 181 (CPPFLAGS): New variable, with empty default value. 182 (CFLAGS): Remove the -I flag involving MINI_GMP_DIR, to leave free 183 for overriding on make command line. 184 (EXTRA_CFLAGS): Deleted variable, no longer needed. 185 1862016-11-18 Torbjörn Granlund <tg@gmplib.org> 187 188 * tests/Makefile: Pass EXTRA_CFLAGS to linker as a intermediate fix. 189 1902016-11-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 191 192 * tests/t-str.c: free a pointer to avoid memory leaks. 193 1942016-11-16 Niels Möller <nisse@lysator.liu.se> 195 196 * mini-gmp.c (mpn_invert_3by2): Fix arithmetic overflow 197 bug, and improve documentation of the algorithm. 198 1992016-11-15 Niels Möller <nisse@lysator.liu.se> 200 201 * tests/t-limbs.c (testmain): Skip tests with zero product. 202 203 * tests/hex-random.c (hex_random_init): Added fflush call. 204 2052016-11-15 Torbjörn Granlund <tg@gmplib.org> 206 207 * tests/Makefile (TESTS): New variable, allowing separation of 208 compilation and running of tests. 209 * tests/run-tests: Allow empty tests list. 210 2112016-11-14 Marco Bodrato <bodrato@mail.dm.unipi.it> 212 213 * tests/t-str.c: Some more test cases. 214 * tests/t-pprime_p.c: Use shorter operands, with different sizes. 215 2162016-11-01 Torbjörn Granlund <tg@gmplib.org> 217 218 * tests/hex-random.c: Reinstate gmp.h inclusion. 219 2202016-08-22 Niels Möller <nisse@lysator.liu.se> 221 222 * mini-gmp.c (mpn_set_str_other): Always return size >= 1, with 223 unnormalized result in the case the input digits are all zero. 224 Fixes crash on a large number of leading zeros, reported by Axel 225 Miller. 226 (mpz_set_str): Normalize as needed, after above change. Return 227 failure for inputs string with no digits, i.e., empty except for 228 optional sign, base prefix and white space. 229 2302016-01-01 Marco Bodrato <bodrato@mail.dm.unipi.it> 231 232 * mini-gmp.c: Silence warnings due to (un)signed types. 233 * tests/testutils.c: Likewise. 234 * tests/t-logops.c: Likewise. 235 * tests/t-cmp_d.c: Likewise. 236 * tests/t-reuse.c: Likewise. 237 * tests/t-cong.c: Likewise. 238 2392015-11-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 240 241 * mini-gmp.c: Lazy allocation for mpz_t. 242 (mpz_rootrem): Exploit lazy allocation to avoid init2. 243 2442015-11-06 Marco Bodrato <bodrato@mail.dm.unipi.it> 245 246 * mini-gmp.c (mpn_com, mpn_neg): New functions. 247 * mini-gmp.h: Declare them. 248 * mini-gmp.c (mpz_div_r_2exp): Use mpn_neg. 249 2502015-10-29 Marco Bodrato <bodrato@mail.dm.unipi.it> 251 252 * mini-gmp.c: Removed a typo (spotted by Paul Zimmermann). 253 2542015-05-30 Marco Bodrato <bodrato@mail.dm.unipi.it> 255 256 * mini-gmp.h: Declare mpn_zero_p. 257 * mini-gmp.c: Define mpn_zero_p as a function, not a macro. 258 2592014-08-27 Niels Möller <nisse@lysator.liu.se> 260 261 * mini-gmp.c (mpz_abs_sub_bit): Do full normalization, 262 needed if mpz_clrbit clears the most significant one bit. 263 2642014-07-28 Marco Bodrato <bodrato@mail.dm.unipi.it> 265 266 * mini-gmp.c: Remove some useless variables. 267 2682014-05-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 269 270 * mini-gmp.c: +1 in the init2 argument before setbit. 271 2722014-05-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 273 274 * mini-gmp.c: Micro-optimisations. 275 2762014-03-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 277 278 * mini-gmp.c (mpz_probab_prime_p): Micro-optimisation. 279 2802014-03-06 Niels Möller <nisse@lysator.liu.se> 281 282 * mini-gmp.c (gmp_millerrabin): New internal function. 283 (mpz_probab_prime_p): New function. 284 * mini-gmp.h (mpz_probab_prime_p): Declare it. 285 * tests/t-pprime_p.c: New test program. 286 * tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p. 287 2882014-03-03 Niels Möller <nisse@lysator.liu.se> 289 290 * mini-gmp.c (mpz_congruent_p): New function. 291 * mini-gmp.h: Declare it. 292 * tests/t-cong.c: New file, based on tests/mpz/t-cong.c. 293 * tests/Makefile (CHECK_PROGRAMS): Added t-cong. 294 295 * tests/testutils.c (dump): New function. Deleted static 296 functions in other files. 297 (mpz_set_str_or_abort): Moved function here, from... 298 * tests/t-cmp_d.c: ... old location. 299 300 * tests/t-reuse.c (dump3): Renamed, from ... 301 (dump): ...old name. 302 3032014-02-21 Marco Bodrato <bodrato@mail.dm.unipi.it> 304 305 * mini-gmp.c (mpn_sqrtrem): New function. 306 * mini-gmp.h: Declare it. 307 * tests/t-sqrt.c: Test it. 308 3092014-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 310 311 * mini-gmp.c (mpz_div_qr): init + set = init_set . 312 3132014-02-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 314 315 * tests/t-limbs.c: New test for mpz_limbs_*. 316 * tests/Makefile (CHECK_PROGRAMS): Add it. 317 3182014-02-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 319 320 * mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify 321 mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions. 322 (mpn_perfect_square_p): New function. 323 * mini-gmp.h: Declare them. 324 325 * tests/t-mul.c: Use roinit and limbs_read to test mpn. 326 * tests/t-sqrt.c: Test also mpn_perfect_square_p. 327 3282014-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it> 329 330 * mini-gmp.c (mpn_rootrem): Allow NULL argument. 331 332 * mini-gmp.c (mpn_zero): New function. 333 (mpz_perfect_square_p): New function. 334 * mini-gmp.h: Declare them. 335 336 * tests/t-sqrt.c: Test mpz_perfect_square_p. 337 * tests/t-root.c: Test also 1-th root, allow perfect powers. 338 3392014-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 340 341 * tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui} 342 * tests/Makefile: Add t-aorsmul. 343 3442014-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 345 346 * mini-gmp.c (mpn_popcount): New function. 347 (mpz_popcount): Use it. 348 (mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added. 349 * mini-gmp.h: Declare them. 350 3512014-01-16 Niels Möller <nisse@lysator.liu.se> 352 353 * mini-gmp.c (mp_bits_per_limb): New const value. 354 * mini-gmp.h: Declare it. 355 3562013-03-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 357 358 * mini-gmp.c: Write loops in a cleaner way. 359 3602013-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it> 361 362 * mini-gmp.c (mpz_div_q_2exp): Adjust only if needed. 363 (mpn_common_scan): New service function to unify scan loops. 364 (mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan. 365 (mpz_make_odd): Simplify, assume in-place operation on positive. 366 (mpn_scan0, mpn_scan1): New functions. 367 * mini-gmp.h (mpn_scan0, mpn_scan1): New declarations. 368 * tests/t-scan.c: Test also mpn_scan0 and mpn_scan1. 369 3702013-02-25 Niels Möller <nisse@lysator.liu.se> 371 372 * tests/t-double.c (testmain): Declare double variables as 373 volatile, to drop extended precision. 374 375 * tests/testutils.c (testfree): New function. Use it everywhere 376 where test programs deallocate storage allocated via the mini-gmp 377 allocation functions, including uses of mpz_get_str for various 378 test failure messages. 379 3802013-02-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 381 382 * mini-gmp.c: Move asserts to work-around a compiler bug. 383 (mpz_export): Reorder branches. 384 (mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place). 385 386 * tests/t-reuse.c: Fix typo causing the same negation condition to 387 be applied to all operands. (See 2013-02-03, Torbjorn) 388 3892013-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it> 390 391 * mini-gmp.c (mpz_mul): Read sizes just once. 392 (mpn_set_str_other): Remove a redundant variable. 393 (mpz_abs_add): Use SWAP once, to order sizes. 394 (mpz_mul_ui): Micro-optimisation. 395 (mpz_rootrem): Use _init2 before _setbit. 396 (mpz_set_str): Optimise-out a variable. 397 (mpz_import): Normalise only if needed. 398 (mpn_div_qr_1): Speed-up the d=1 case, delaying a branch. 399 4002013-02-12 Marco Bodrato <bodrato@mail.dm.unipi.it> 401 402 * mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code. 403 404 * mini-gmp.c: Reduce branches. 405 4062013-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it> 407 408 * mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify. 409 (mpz_set_str): Behaviour more adherent to the real GMP. 410 411 * tests/t-str.c: Cast size_t to unsigned long, for printf. 412 * tests/t-import.c: Likewise. 413 * tests/t-comb.c: Remove an unused var. 414 * tests/t-div.c: Remove unused args passed to fprintf. 415 * tests/t-double.c: Use float immediates with float vars. 416 4172013-01-22 Niels Möller <nisse@lysator.liu.se> 418 419 * mini-gmp.c (mpz_cmp_d): Simplified, just sort out signs, then 420 call mpz_cmpabs_d. 421 422 * tests/testutils.h: Include stdio.h and stdlib.h. 423 (numberof): New define. 424 425 * tests/t-cmp_d.c: New file, copied from tests/mpz/t-cmp_d.c with 426 minor changes. 427 * tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d, 428 429 * mini-gmp.c (mpz_cmpabs_d): New function. 430 * mini-gmp.h: Declare it. 431 4322013-01-21 Niels Möller <nisse@lysator.liu.se> 433 434 * tests/t-str.c (testmain): Test mpz_out_str, using 435 the tmpfile function for i/o. 436 4372013-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it> 438 439 * tests/testutils.c (testhalves): New function, test default 440 memory functions. 441 * tests/testutils.h (testhalves): Declare it 442 * tests/t-logops.c: Use testhalves. 443 444 * mini-gmp.c (mpz_init_set_str): New function. 445 * mini-gmp.h (mpz_init_set_str): Declare it. 446 * tests/t-str.c: Test mpz_init_set_str. 447 4482013-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it> 449 450 * tests/t-double.c (testmain): Get the current free 451 function using mp_get_memory_functions. 452 * tests/t-str.c (testmain): Likewise. 453 454 * tests/testutils.h (tu_free): Remove declaration. 455 456 * tests/testutils.c (block_check, tu_free): Mark static. 457 4582013-01-18 Niels Möller <nisse@lysator.liu.se> 459 460 * tests/t-str.c (test_small): New function, exercising 461 parsing of whitespace and base prefixes. 462 (testmain): Call it. 463 464 * tests/t-gcd.c (gcdext_valid_p): Fixed memory leak. 465 466 * tests/t-double.c (testmain): Call tu_free rather than 467 free, for storage allocated by mpz_get_str. 468 * tests/t-str.c (testmain): Likewise. 469 470 * tests/testutils.c (block_init, block_check): New functions. 471 (tu_alloc, tu_realloc, tu_free): New functions. 472 (main): Use mp_set_memory_functions. 473 * tests/testutils.h (tu_free): Declare. 474 475 * tests/testutils.h: New file, declarations for test programs. 476 477 * tests/testutils.c (main): New file, with shared main 478 function for all the test programs. Also includes mini-gmp.c. 479 Calls testmain after initialization. All other test programs 480 updated to define testmain rather than main. 481 4822013-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it> 483 484 * tests/t-signed.c: Slightly larger coverage. 485 * tests/t-double.c: Test also mpz_init_set_d. 486 4872013-01-18 Torbjorn Granlund <tege@gmplib.org> 488 489 * tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p. 490 491 * tests/t-div.c: Test also mpz_mod, mpz_mod_ui. Compare 492 mpz_divisible_p just to ceil, to save time. 493 494 * mini-gmp.c: Prefix some names with GMP_. 495 4962013-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it> 497 498 * tests/t-double.c: Test mpz_cmp_d. 499 * mini-gmp.c (mpz_cmp_d): Correct multiword comparison. 500 501 * mini-gmp.c (mpz_set_str): Handle the empty string. 502 * tests/t-str.c: Test base <= 0. 503 5042013-01-15 Niels Möller <nisse@lysator.liu.se> 505 506 * tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d. 507 * tests/t-invert.c (main): Likewise. 508 509 * tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr. 510 511 * tests/hex-random.h (enum hex_random_op): New value OP_SQR. 512 513 * tests/mini-random.c (mini_random_op3): Renamed, from... 514 (mini_random_op): ... old name. Updated callers. 515 (mini_random_op2): New function. 516 517 * tests/hex-random.c (hex_random_op3): Renamed, from... 518 (hex_random_op): ... old name. Updated callers. 519 (hex_random_op2): New function. 520 5212013-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it> 522 523 * tests/t-logops.c: Improve popcount/hamdist testing. 524 * tests/t-signed.c: Test more cases. 525 5262013-01-14 Niels Möller <nisse@lysator.liu.se> 527 528 * tests/t-str.c (main): Added tests for mpn_get_str and 529 mpn_set_str. 530 5312013-01-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 532 533 * tests/t-comb.c: New test program, testing both 534 mpz_fac_ui and mpz_bin_uiui. 535 * tests/Makefile (CHECK_PROGRAMS): Added t-comb. 536 537 * mini-gmp.c (mpz_mul_si): Simplify. 538 (mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2. 539 540 * mini-gmp.c (NEG_CAST): New macro. 541 (mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST. 542 543 * mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using 544 the _ui variant. 545 546 * tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui. 547 548 * tests/t-mul.c: Test also mpz_mul_si. 549 * tests/t-sub.c: Test also mpz_ui_sub. 550 551 * mini-gmp.c (mpz_fits_slong_p): Correct range. 552 * tests/t-signed.c: New test program, for get/set/cmp_si. 553 * tests/Makefile (CHECK_PROGRAMS): Added t-signed. 554 555 * mini-gmp.c (mpz_hamdist): Handle different sizes. 556 * tests/t-logops.c: Test also popcount and hamdist. 557 5582013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 559 560 * mini-gmp.c (mpz_export, mpz_import): Less restrictive ASSERTs. 561 * tests/t-import.c: Test also size=0 or count=0. 562 5632013-01-10 Torbjorn Granlund <tege@gmplib.org> 564 565 * tests/t-import.c (main): Don't drop off function end. 566 5672013-01-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 568 569 * mini-gmp.c (mpz_export): Support op=0 countp=NULL. 570 5712013-01-08 Niels Möller <nisse@lysator.liu.se> 572 573 * tests/t-import.c: New test program, testing both 574 mpz_import and mpz_export. 575 * tests/Makefile (CHECK_PROGRAMS): Added t-import. 576 577 * tests/mini-random.c (mini_rrandomb_export): New function. 578 * tests/mini-random.h: Declare it. 579 * tests/hex-random.c (hex_rrandomb_export): New function. 580 * tests/hex-random.h: Declare it. 581 582 * mini-gmp.c (mpz_export): Compute accurate word count up 583 front, to avoid generating any high zero words. 584 5852013-01-07 Marco Bodrato <bodrato@mail.dm.unipi.it> 586 587 * README: Document base limitation for conversions. 588 * mini-gmp.c (mpz_set_str): Remove goto. 589 (mpz_import, mpz_export): Correctly use order/endianness. 590 5912013-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it> 592 593 From shuax: 594 * mini-gmp.c (mpz_import): Reset limb after storing it. 595 5962012-11-22 Niels Möller <nisse@lysator.liu.se> 597 598 * tests/run-tests: Copied latest version from GNU Nettle. 599 Minor fix to the use of $EMULATOR, and proper copyright notice. 600 6012012-06-24 Marco Bodrato <bodrato@mail.dm.unipi.it> 602 603 * mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve 604 adjustment condition. 605 6062012-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it> 607 608 * mini-gmp.c (mpz_realloc): remove a branch. 609 6102012-05-25 Marco Bodrato <bodrato@mail.dm.unipi.it> 611 612 * tests/t-div.c: Test all _qr, _q, _r variants. 613 * tests/t-lcm.c: Test the _ui variant. 614 615 * mini-gmp.c (mpz_mod, mpz_mod_ui): New functions. 616 * mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes. 617 6182012-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it> 619 620 * mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem. 621 6222012-04-13 Marco Bodrato <bodrato@mail.dm.unipi.it> 623 624 * mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions. 625 * mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial implementation. 626 6272012-04-11 Marco Bodrato <bodrato@mail.dm.unipi.it> 628 629 * mini-gmp.h (mpz_root, mpz_rootrem): define (correctly). 630 * mini-gmp.c (mpz_rootrem): Extended code from _root. 631 (mpz_root): Use mpz_rootrem. 632 (mpz_mul_ui): Correctly handle negative operands. 633 634 * tests/Makefile (CHECK_PROGRAMS): add t-root. 635 * tests/t-root.c: New file. 636 * tests/t-reuse.c: Enable root{,rem} tests. 637 6382012-04-10 Marco Bodrato <bodrato@mail.dm.unipi.it> 639 640 * mini-gmp.c (mpz_root): New, support negative operands. 641 * mini-gmp.h (mpz_root): define. 642 (mpz_out_str): Test also __STDIO_LOADED (for VMS). 643 * mpz/2fac_ui.c: Cosmetic change. 644 645 * tests/t-reuse.c: New test case, based on tests/mpz/reuse.c. 646 647 * mini-gmp.c (mpz_cdiv_r_ui): New function. 648 (mpz_fdiv_r_ui): New function. 649 (mpz_tdiv_r_ui): New function. 650 (mpz_powm_ui): New function. 651 (mpz_pow_ui): New function. 652 (mpz_ui_pow_ui): Use mpz_pow_ui. 653 (mpz_gcdext): Fixed input/output overlap, for the case of one 654 input being zero. 655 (mpz_sqrtrem): Fix for the case r NULL, U zero. 656 6572012-02-28 Niels Möller <nisse@lysator.liu.se> 658 659 * tests/Makefile (srcdir, MINI_GMP_DIR): New make variables. These 660 can be overridden when using a separate build directory. 661 (EXTRA_CFLAGS): Renamed, was OPTFLAGS. 662 663 * mini-gmp.c (mpz_abs_add): Don't cache limb pointers 664 over MPZ_REALLOC, since that breaks in-place operation. Bug 665 spotted by Torbjörn. 666 (mpz_and, mpz_ior, mpz_xor): Likewise. 667 (mpz_cmp): Fixed comparison of negative numbers. 668 6692012-02-26 Niels Möller <nisse@lysator.liu.se> 670 671 * mini-gmp: New subdirectory. For use by GMP bootstrap, and as a 672 fallback for applications needing bignums but not high 673 performance. 674