xref: /netbsd-src/external/lgpl3/gmp/dist/mini-gmp/ChangeLog (revision 2718af68c3efc72c9769069b5c7f9ed36f6b9def)
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