xref: /netbsd-src/external/lgpl3/mpfr/dist/ChangeLog (revision 3f351f34c6d827cf017cdcff3543f6ec0c88b420)
12023-01-06  Vincent Lefevre  <vincent@vinc17.net>
2
3	Updated version to 4.2.0.
4
52023-01-05  Vincent Lefevre  <vincent@vinc17.net>
6
7	[src/zeta.c] For s < 1/2, use mpfr_sinpi now that it is available.
8
9	This replaces the use of mpfr_sin with a multiplication by π and
10	resolves a potential (but very unlikely) underflow issue; a comment
11	is updated, with an explanation about that.
12
132023-01-05  Vincent Lefevre  <vincent@vinc17.net>
14
15	Updated copyright notice for all the Makefile.am files.
16
17	To be similar to the other files, added:
18	* Contributed by the AriC and Caramba projects, INRIA.
19	* This file is part of the GNU MPFR Library.
20
21	(These Makefile.am files still have their special license.)
22
232023-01-05  Vincent Lefevre  <vincent@vinc17.net>
24
25	Copyright notice update: added 2023.
26
27	Command used:
28	  perl -pi -e 's/ (\d{4}-)?(2022)(?= Free Software)/
29	               " ".($1||"$2-").($2+1)/e' **/*(^/)
30	under zsh, reverting doc/texinfo.tex (copied from GNU Texinfo)
31	and the tools/mbench directory (not distributed with MPFR).
32	Removed 2022 from the example in the doc/README.dev file.
33
342023-01-04  Vincent Lefevre  <vincent@vinc17.net>
35
36	[src/zeta.c] Updated a comment about mpfr_sinpi.
37
38	[doc/mpfr.texi] Updated the month.
39
402022-12-17  Vincent Lefevre  <vincent@vinc17.net>
41
42	[tools/mpfrlint] Updated the __gmp_ test.
43
44	* No longer exclude '^tests/tabort_defalloc': this is no longer needed
45	  since commit 41bed90365fd1296cd05f49c813ab0a0b151a62e in 2017.
46	* Exclude a new comment.
47
482022-12-15  Vincent Lefevre  <vincent@vinc17.net>
49
50	[tests/tsprintf.c] Added a comment about a possible test failure.
51
52	In short, if the error is like
53	  repl-vsnprintf.c:389: GNU MP assertion failed: len < total_width
54	this is a GMP (or MPIR) issue in __gmp_replacement_vsnprintf.
55
56	References:
57	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html
58	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00027.html
59	  https://gmplib.org/list-archives/gmp-bugs/2022-October/005200.html
60
612022-12-15  Vincent Lefevre  <vincent@vinc17.net>
62
63	Documentation: update about requirements for building MPFR.
64
65	* doc/mpfr.texi: mentioned C++ compilers and the potential issue
66	  with type punning via union.
67	* INSTALL: completed (0) to be similar to what doc/mpfr.texi says.
68
692022-12-15  Vincent Lefevre  <vincent@vinc17.net>
70
71	[tools/update-version] Fixed replacements in "INSTALL".
72
73	Due to commit 4885b57add174f390eff29abe14d12fb5ebd6a61, only the first
74	of the 4 replacements in INSTALL was done.
75
762022-12-14  Vincent Lefevre  <vincent@vinc17.net>
77
78	[configure.ac] Added a comment about a possible AM_PROG_AR failure.
79
80	The reason is that on some platforms, GMP chooses a non-default mode
81	(a.k.a. ABI). MPFR has some workaround thanks to GMP_CC and GMP_CFLAGS
82	provided by GMP, but this may not be sufficient, e.g. on power-aix. In
83	such a case, the user needs to either force GMP to use the default mode
84	or provide an AR variable for MPFR's configure; see INSTALL file.
85
862022-12-13  Vincent Lefevre  <vincent@vinc17.net>
87
88	ChangeLog update with tools/update-changelog
89
90	[doc/README.dev] "To make a release": update.
91
92	[NEWS] Update for the 4.2.0 release: binary compatibility.
93
94	[doc/README.dev] "To make a release": update about <branch>-root tag.
95
96	[README] Updated URL of the README.dev file (for the 4.2 branch).
97
98	Updated version to 4.2.0-rc1.
99
100	ChangeLog update with tools/update-changelog
101
102	[src/Makefile.am] Updated -version-info to 8:0:2 for MPFR 4.2.0.
103
104	[manual] Section "API Compatibility": lexicographic order.
105
1062022-12-13  Vincent Lefevre  <vincent@vinc17.net>
107
108	[NEWS,doc/mpfr.texi] Clarification for mpfr_pown.
109
110	Note: Though implemented as a macro, it is mainly documented as a
111	function (not as a macro) because it cannot be distinguished from
112	a function (for instance, one can take the function pointer).
113
1142022-12-13  Vincent Lefevre  <vincent@vinc17.net>
115
116	[tests/tget_flt.c] Added a comment.
117
1182022-12-13  Vincent Lefevre  <vincent@vinc17.net>
119
120	[doc/README.dev] Updated a pathname.
121
122	This should have been done with the source reorganization on 2010-08-17
123	(see commit a6c9580d75b967e0d121d606edf03515ada45a7a).
124
1252022-12-12  Vincent Lefevre  <vincent@vinc17.net>
126
127	Updated doc/texinfo.tex to 2022-12-10.11
128
129	The only change concerning MPFR is that in the PDF manual, the
130	section titles in the table of contents are now clickable.
131
1322022-12-12  Vincent Lefevre  <vincent@vinc17.net>
133
134	[tests/tstdint.c] Added missing conditional config.h inclusion.
135
136	The consequence of the missing inclusion is that on build systems that
137	need config.h (some MS Windows ones?), this test would be skipped.
138
1392022-12-12  Vincent Lefevre  <vincent@vinc17.net>
140
141	[doc/README.dev] Clarification about the need of config.h inclusion.
142
143	[tests/tstdint.c] Updated comment.
144
1452022-12-12  Vincent Lefevre  <vincent@vinc17.net>
146
147	[tests/tstdint.c] Added a comment.
148
149	In short, this test allows one to detect that mpfr.h can be included
150	without any other inclusion before. For instance, it can detect any
151	unprotected use of FILE in the mpfr.h header file.
152
1532022-12-12  Vincent Lefevre  <vincent@vinc17.net>
154
155	[doc/mpfr.texi] Added comment about the update of the version string.
156
1572022-12-12  Vincent Lefevre  <vincent@vinc17.net>
158
159	Revert "changed %.8e into %a to avoid potential decimal output bug"
160
161	This reverts commit e18ebe062042c01ad44b238df212f229bd251cd6.
162
163	We currently still support C90 (in particular, here this concerns
164	the C library of the platform).
165
1662022-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
167
168	changed %.8e into %a to avoid potential decimal output bug
169
170	(cf https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00015.html)
171
1722022-12-12  Vincent Lefevre  <vincent@vinc17.net>
173
174	[src/mpfr-cvers.h] Added a comment about (major,minor) tests.
175
1762022-12-12  Vincent Lefevre  <vincent@vinc17.net>
177
178	[tests/mpfr-test.h] Improved the change done a few hours earlier.
179
180	The code introduced by commit 558a246e612fa230623fb0dfa0570b1c626a103c
181	was changing the conditions under which IGNORE_CPP_COMPAT is defined
182	(to ignore -Wc++-compat with a GCC pragma). Let's simplify it by using
183	our __MPFR_GNUC() macro. The only possible change of behavior is that
184	this excludes Intel's compiler (which is probably better as testing
185	the GCC version on Intel's compiler doesn't make sense).
186
187	Note concerning the behavior of Intel icx 2021.3.0 under Linux: Before
188	the above commit, it was not excluded; but after this above commit, it
189	was excluded as it identifies itself as GCC 4.2.1 (like Clang). With
190	this new change, it is still excluded. Anyway, it ignores -Wc++-compat
191	and doesn't complain on the GCC pragmas, so the above choice currently
192	doesn't matter.
193
1942022-12-11  Vincent Lefevre  <vincent@vinc17.net>
195
196	Avoid a testsuite build failure with GCC older than 4.6.
197
198	In tests/mpfr-test.h, we must not define IGNORE_CPP_COMPAT for
199	GCC < 4.6 as it does not allow "#pragma GCC diagnostic" inside
200	functions. Moreover, let's define it for all Clang versions,
201	including MS Windows (where __GNUC__ is not defined).
202
203	Changes based on information and a patch by Bruno Haible:
204	  https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00007.html
205
2062022-12-09  Vincent Lefevre  <vincent@vinc17.net>
207
208	[autogen.sh] Improved comment about the INSTALL file.
209
210	[autogen.sh] Updated comment about the INSTALL file.
211
2122022-12-07  Vincent Lefevre  <vincent@vinc17.net>
213
214	[Makefile.am] Corrected a note about version-ext.sh in EXTRA_DIST.
215
216	In short, since commit a6e9d69047a358bfd1aaa1418d9999b8abe0bb62,
217	version-ext.sh should no longer be needed in EXTRA_DIST because
218	it will no longer be executed. But since this script is small,
219	we distribute it just in case it would be used.
220
2212022-12-06  Vincent Lefevre  <vincent@vinc17.net>
222
223	Fixed version-ext.sh usage, avoiding "make check" failure and incorrect
224	version information.
225
226	The use of version-ext.sh could be incorrect when the MPFR source tree
227	was in a Git working tree:
228	  * "make check" could fail in some cases, see the bug report by
229	    Trevor Spiteri:
230	       https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00000.html
231	  * Version information output by "make check" could be incorrect.
232
233	Changes:
234	* tests/Makefile.am: For output_info, we now also check whether
235	  $(top_srcdir)/.git is readable in order to avoid escaping the
236	  MPFR source tree. In particular, if one extracts an MPFR tarball
237	  within a Git working tree (e.g. after "make dist"), then running
238	  "make check" in this extracted source tree will work as expected,
239	  giving correct version information.
240	* tests/Makefile.am, version-ext.sh: Updated comments. In particular,
241	  moved a comment from tests/Makefile.am to version-ext.sh; this should
242	  have been done in commit 0d3abf10458ca4fdd26daa77a02f7f1f4e361deb,
243	  i.e. when version-ext.sh was created.
244
2452022-12-06  Vincent Lefevre  <vincent@vinc17.net>
246
247	[doc/mpfr.texi] Removed useless leading spaces in examples.
248
249	All examples should have at least one line that does not have
250	leading spaces. Texinfo already indents examples in all cases.
251
2522022-12-06  Vincent Lefevre  <vincent@vinc17.net>
253
254	[doc/mpfr.texi] Removed useless single quotes in an example.
255
256	Texinfo changes these quotes to U+2019 RIGHT SINGLE QUOTATION MARK
257	with TeX output (PDF), and it is no part of ASCII, which might yield
258	issues in case of reuse in actual code. The subsequent example does
259	not use quotes, so let's do the same.
260
2612022-12-06  Vincent Lefevre  <vincent@vinc17.net>
262
263	[doc/mpfr.texi] Updated the month.
264
2652022-12-06  Vincent Lefevre  <vincent@vinc17.net>
266
267	[doc/mpfr.texi] Added a FIXME about the @need issue.
268
269	Context:
270	  https://lists.gnu.org/archive/html/bug-texinfo/2022-11/msg00228.html
271
2722022-11-30  Vincent Lefevre  <vincent@vinc17.net>
273
274	[doc/mpfr.texi] 2 replacements of ASCII "-" by @minus{}.
275
276	Note: these should be the last remaining issues with the minus sign.
277
2782022-11-30  Vincent Lefevre  <vincent@vinc17.net>
279
280	[doc/mpfr.texi] 3 replacements of ASCII "-" by @minus{}.
281
2822022-11-28  Vincent Lefevre  <vincent@vinc17.net>
283
284	[src/mpfr-impl.h] Added a comment for the umul_hi(h, x, y) macro.
285
286	Say that MPFR_NEED_LONGLONG_H needs to be defined to use it.
287
288	This macro is defined unconditionally (this is not an issue) because
289	MPFR_NEED_LONGLONG_H has been undefined earlier in mpfr-impl.h (why?),
290	so we can no longer test MPFR_NEED_LONGLONG_H.
291
2922022-11-28  Vincent Lefevre  <vincent@vinc17.net>
293
294	Get rid of the _mulx_u64 intrinsic.
295
296	It was found that this intrinsic has issues with ICC, Cygwin, and more
297	generally, the Microsoft toolchain; even MPFR's strong detection at
298	configure time (an AC_RUN_IFELSE test) was not sufficient. Moreover,
299	_mulx_u64 is useless as umul_ppmm from mpfr-longlong.h does the same
300	thing from the spec point of view (and thus was used as the fallback).
301	So, if there is a reliable way to use the mulx instruction whenever
302	possible (including via compiler optimization and the use of __int128
303	when available, as done by GCC's _mulx_u64 implementation), this
304	should be done in the umul_ppmm definition. Alternatively, we could
305	redefine umul_ppmm for the use of __int128 when possible.
306
307	Context and references:
308	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00008.html
309	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00027.html
310	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00030.html
311	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00031.html
312	  https://stackoverflow.com/a/54815033/3782797
313
314	* src: corrected the umul_hi(h, x, y) macro (the only code that was
315	  using _mulx_u64) and moved it from invert_limb.h and invsqrt_limb.h
316	  to mpfr-impl.h.
317	* tests/tversion.c: removed the output info about _mulx_u64.
318	* acinclude.m4: removed the check for _mulx_u64.
319
3202022-11-25  Vincent Lefevre  <vincent@vinc17.net>
321
322	[NEWS] Added release name for 4.2.0: "fondue savoyarde".
323
324	mpfr-longlong.h update from the current GMP development code.
325
3262022-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
327
328	[doc/mini-gmp] updated svn revision to git revision
329	[tools/bench/README] likewise
330
3312022-11-23  Vincent Lefevre  <vincent@vinc17.net>
332
333	[tools/build-patch] Update for patches generated by git.
334
335	Such patches are of the form
336	  --- a/path/name
337	  +++ b/path/name
338	so with need to use the -p1 patch option if the --- line
339	starts with "--- a/".
340
3412022-11-23  Vincent Lefevre  <vincent@vinc17.net>
342
343	[tools/build-patch] Updated a comment for Git.
344
3452022-11-22  Vincent Lefevre  <vincent@vinc17.net>
346
347	Fix mpfr_custom_get_kind() macro bug.
348
349	* src/mpfr.h: in the mpfr_custom_get_kind() macro, changed mpfr_ptr to
350	  mpfr_srcptr for _x to agree with the function prototype, in order to
351	  avoid a compilation failure of user code in some cases. This bug was
352	  introduced by commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e, which
353	  introduced the temporary variable _x to avoid an incorrect number of
354	  evaluations of the x argument.
355	* tests/tstckintc.c: improved the tests to detect this bug.
356
357	This should fix mpfr bug #1.
358
359	Bug initially reported by FX Coudert:
360	  https://github.com/CGAL/cgal/issues/7064
361
362	It affects Fedora Linux:
363	  https://bugzilla.redhat.com/show_bug.cgi?id=2144197
364
3652022-11-17  Vincent Lefevre  <vincent@vinc17.net>
366
367	ChangeLog update with tools/update-changelog
368
3692022-11-17  Vincent Lefevre  <vincent@vinc17.net>
370
371	[doc/mpfr.texi] Changed a @need command due to a bug in @need.
372
373	A page break was introduced for "@need 800" while there was the
374	space for 12 lines of text + 3 paragraph skips, as seen after the
375	change. That's much more than the 8/10 in needed by "@need 800".
376	So the page break was incorrect!
377
3782022-11-17  Vincent Lefevre  <vincent@vinc17.net>
379
380	[doc/mpfr.texi] Added @need commands to prevent page breaks.
381
3822022-11-17  Vincent Lefevre  <vincent@vinc17.net>
383
384	[doc/mpfr.texi] Hack to improve TeX output (PDF).
385
386	Define a @fptt macro to fix the TeX output (PDF) issue mentioned
387	in commit 1877cf9aef96c2280aab60f67e5e7302676d199a (if the style
388	of HTML output is fixed to be more like TeX output, this code will
389	need an update).
390
3912022-11-17  Vincent Lefevre  <vincent@vinc17.net>
392
393	[doc/mpfr.texi] Added a note about a TeX output (PDF) issue.
394
395	This affects "[]", which appears in the mpfr_sum and mpfr_dot
396	function prototypes.
397
3982022-11-16  Vincent Lefevre  <vincent@vinc17.net>
399
400	Consistency: s/non(zero|positive|negative)/non-$1/
401
402	Changed non(zero|positive|negative) to non-zero, etc. for consistency
403	(target files: src & tests directory, doc/README.dev, doc/mpfr.texi).
404	Did it this way because the former was in minority (21 vs 165) and
405	the IEEE 754-2019 standard uses a hyphen.
406
4072022-11-16  Vincent Lefevre  <vincent@vinc17.net>
408
409	[doc/mpfr.texi] Final typographic and style corrections.
410
411	Actually a bit more than that, since this affected the textual part
412	of the PDF file (used for searching and copy-paste): the underscore
413	character needs to be in something like @code or @samp to be present
414	in this textual part.
415
4162022-11-16  Vincent Lefevre  <vincent@vinc17.net>
417
418	Updated version to 4.2.0-dev with the new tools/update-version.
419
420	All the expected replacements have now *really* been done thanks to
421	commit a4dec8938b85afbca2d448ae2dd4e0d3ab72b00c.
422
4232022-11-16  Vincent Lefevre  <vincent@vinc17.net>
424
425	[tools/update-version] Fixed replacements in "doc/mpfr.texi".
426
427	The change done in commits 4885b57add174f390eff29abe14d12fb5ebd6a61
428	and 7eda345244f503359d14cd5bae1ed42865d39ee8 was incorrect as there
429	are 2 identical replacements to do in "doc/mpfr.texi", not just one.
430	The previous code changed lines separately. But for the check of
431	failing replacements, a global change on the full file is needed;
432	thus the 2 identical replacements were expected to be done at the
433	same time, so that the "g" modifier is needed on the regexp.
434
4352022-11-15  Vincent Lefevre  <vincent@vinc17.net>
436
437	Updated doc/texinfo.tex to 2022-11-13.08
438
439	[TODO] Added URL for the Clang multiprecision arithmetic builtins.
440
4412022-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
442
443	[TODO] add reference to __builtin_addcll
444
4452022-11-11  Vincent Lefevre  <vincent@vinc17.net>
446
447	[doc/README.dev] "To make a release": mention the README file.
448
4492022-11-10  Vincent Lefevre  <vincent@vinc17.net>
450
451	Updated version to 4.2.0-dev with the new tools/update-version.
452
453	All the expected replacements have now been done in doc/mpfr.texi,
454	thanks to commit 7eda345244f503359d14cd5bae1ed42865d39ee8.
455
4562022-11-10  Vincent Lefevre  <vincent@vinc17.net>
457
458	[tools/update-version] Updated a replacement.
459
460	This was needed due to a change done on 2018-09-07 in doc/mpfr.texi
461	(commit 84796030c7c732e8e66e5e650ec929c541dd207f / SVN r13153), as
462	said in the previous commit.
463
4642022-11-10  Vincent Lefevre  <vincent@vinc17.net>
465
466	[tools/update-version] Check for failing replacements.
467
468	This script currently fails due to a change done on 2018-09-07 in
469	doc/mpfr.texi (commit 84796030c7c732e8e66e5e650ec929c541dd207f /
470	SVN r13153), and this issue remained unnoticed until now,
471	in particular due to the absence of checking for failing
472	replacements.
473
474	The penultimate non-patchlevel release was done on 2017-12-25, i.e.
475	before this change, and no patchlevel releases have been done yet
476	for the latest release, so that no current releases are affected by
477	this issue, but the 4.1.1 release candidate is affected.
478
4792022-11-09  Vincent Lefevre  <vincent@vinc17.net>
480
481	Updated doc/texinfo.tex to 2022-11-07.17 (from GNU Texinfo 7.0).
482
4832022-11-08  Vincent Lefevre  <vincent@vinc17.net>
484
485	[doc/mpfr.texi] Updated comment about an issue with math operators.
486
487	[doc/mpfr.texi] Added a comment about an issue with math operators.
488
489	[doc/mpfr.texi] Another typographic improvement.
490
4912022-11-08  Vincent Lefevre  <vincent@vinc17.net>
492
493	[doc/mpfr.texi] Added a comment for \mathop with a single character.
494
495	Workaround to avoid an alignment issue described at
496	  https://tex.stackexchange.com/questions/41261/mathop-shifts-the-baseline-declaremathoperator-doesnt
497	when the math operator @EXP{} was just "E".
498
4992022-11-08  Vincent Lefevre  <vincent@vinc17.net>
500
501	[doc/mpfr.texi] More typographic corrections and improvements.
502
503	Also did some changes to improve the consistency.
504
5052022-11-07  Vincent Lefevre  <vincent@vinc17.net>
506
507	[doc/mpfr.texi] Added a comment (ref to the GNU Texinfo spacing bug).
508
5092022-11-07  Vincent Lefevre  <vincent@vinc17.net>
510
511	[doc/mpfr.texi] More typographic corrections for math expressions.
512
513	* Note a spacing bug in texi2dvi from GNU Texinfo 6.8 with macros
514	  (found while testing).
515	* Define macro @EXP (and \EXP in TeX).
516	* Typographic corrections for math expressions.
517
5182022-11-07  Vincent Lefevre  <vincent@vinc17.net>
519
520	[doc/mpfr.texi] Added a comment.
521
522	[doc/mpfr.texi] Improved typography and English usage.
523
524	[doc/mpfr.texi] More documentation for the @m{T,N} macro.
525
5262022-11-04  Vincent Lefevre  <vincent@vinc17.net>
527
528	[src/set_zero.c] IEEE 754 terminology in a comment.
529
5302022-11-04  Vincent Lefevre  <vincent@vinc17.net>
531
532	[doc/mpfr.texi] Improved consistency about infinity and zero.
533
534	Note: one writes "+0", but "positive zero", not "plus zero", etc.
535	See the IEEE 754 standard.
536
5372022-11-03  Vincent Lefevre  <vincent@vinc17.net>
538
539	[doc/mpfr.texi] Minor corrections related to infinity.
540
541	This completes commit 75041697429ba467c448195b4f0863d0eb92e20c
542	done in 2021-02.
543
5442022-11-03  Vincent Lefevre  <vincent@vinc17.net>
545
546	[doc/mpfr.texi] Style corrections.
547
5482022-11-03  Vincent Lefevre  <vincent@vinc17.net>
549
550	[doc/mpfr.texi] Style improvement for TeX (PDF) output.
551
552	For mpfr_acosu, mpfr_asinu, mpfr_atanu and mpfr_atan2u, make the style
553	similar to the one for mpfr_cosu, mpfr_sinu and mpfr_tanu.
554
5552022-11-03  Vincent Lefevre  <vincent@vinc17.net>
556
557	[doc/mpfr.texi] More use of @tm (typographic corrections).
558
5592022-11-01  Vincent Lefevre  <vincent@vinc17.net>
560
561	[doc/mpfr.texi] Updated the month.
562
563	[doc/mpfr.texi] Completed the description of the @mm macro.
564
5652022-11-01  Vincent Lefevre  <vincent@vinc17.net>
566
567	[doc/mpfr.texi] Improved typography for the formatted output functions.
568
569	For what is displayed (or output text), @samp{...} should be used,
570	as already done in some cases (note: never enclose @samp{...} with
571	quotes as this is already done in the Texinfo processing).
572
5732022-11-01  Vincent Lefevre  <vincent@vinc17.net>
574
575	[doc/mpfr.texi] Improved the readability of an example.
576
5772022-11-01  Vincent Lefevre  <vincent@vinc17.net>
578
579	[doc/mpfr.texi] More typographic corrections for TeX (PDF) output.
580
581	* Define a @mm{T} macro to be used for math symbols outside of @m,
582	  @tm, @code or similar (but not for the "+" in "C++").
583	* Use this macro when applicable.
584	* Add missing @tm for some simple math expressions.
585
5862022-10-28  Vincent Lefevre  <vincent@vinc17.net>
587
588	[doc/mpfr.texi] Added tm macro and improved math typography.
589
5902022-10-27  Vincent Lefevre  <vincent@vinc17.net>
591
592	[tools/nightly-test] Corrections and cleanup.
593
594	In particular, reverted most changes done in SVN r9832
595	(commit 1ca64e34907c5a968ca7fcc3d22cdca2ede7f28b):
596	  * switch back to /bin/sh (bash is not needed by this script);
597	  * do not use --enable-decimal-float and --enable-float128 with
598	    a C++ compiler as they are not supported (configure fails).
599
600	And for the "git clone" command:
601	  * take the BRANCH argument into account;
602	  * use --depth 1 to avoid an unnecessary full clone.
603
604	Better g++ detection (e.g. g++-12 or /usr/bin/g++, not just g++).
605
6062022-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
607
608	[tools/nightly-test] change to git
609
6102022-10-26  Vincent Lefevre  <vincent@vinc17.net>
611
612	[doc/mpfr.texi] Cosmetic consistency change in the .texi source.
613
614	Let's use the same code for "start of header" and "end of header".
615
6162022-10-25  Vincent Lefevre  <vincent@vinc17.net>
617
618	[doc/mpfr.texi] Updated @m{T,N} macro, with comments.
619
620	The @m{T,N} macro is used for math formatting and textual equivalent
621	(human-readable text). However, it was generating emphasis in HTML,
622	which was unexpected. This commit removes the use of @math for the
623	Info and HTML output (for Info, this does not change anything, and
624	for HTML, this removes the incorrect emphasis). It also updates the
625	documentation and adds a comment about the history of this macro and
626	various issues related to it.
627
6282022-10-24  Vincent Lefevre  <vincent@vinc17.net>
629
630	Updated doc/texinfo.tex to 2022-10-18.18
631
632	Update from the texinfo Git repository.
633	  * The generated mpfr.html and mpfr.info files remain the same.
634	  * For mpfr.pdf, there are some spacing improvements.
635
6362022-10-11  Vincent Lefevre  <vincent@vinc17.net>
637
638	[doc/mpfr.texi] Updated the month.
639
6402022-10-11  Vincent Lefevre  <vincent@vinc17.net>
641
642	[doc/mpfr.texi] Fix formatting for mpfr_can_round.
643
644	Consistency changes and use of no-break space (@tie{}).
645
646	Note: Once @math{...} has been clarified/fixed, apply the suggestions
647	by Ivan Panchenko:
648	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
649
6502022-10-11  Vincent Lefevre  <vincent@vinc17.net>
651
652	[doc/mpfr.texi] Consistency correction for mpfr_get_str_ndigits.
653
654	Use @math{m} (instead of just m) as already used a bit earlier.
655
656	But the use of @math may need to be revised. See
657	https://lists.gnu.org/archive/html/bug-texinfo/2022-10/msg00045.html
658
6592022-10-11  Vincent Lefevre  <vincent@vinc17.net>
660
661	[doc/mpfr.texi] Improved spacing.
662
663	2 changes suggested by Ivan Panchenko at
664
665	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
666
667	but do not use @math{...} as with HTML output, it puts everything
668	in italics with <em class='math'>...</em>, which is incorrect for
669	things like digits.
670
671	However, this behavior of @math{...} is not what is documented in
672	the GNU Texinfo 6.8 manual, which says:
673
674	  The '@math' command has no special effect on the Info output or (by
675	  default) the HTML output, merely outputting the contents verbatim.
676
6772022-10-11  Vincent Lefevre  <vincent@vinc17.net>
678
679	[doc/mpfr.texi] Added a comment about the use of @math{...}.
680
6812022-10-11  Vincent Lefevre  <vincent@vinc17.net>
682
683	[doc/mpfr.texi] Fixed italicization for mpfr_eint.
684
685	An issue reported by Ivan Panchenko:
686	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
687
688	I also had to fix the occurrences of k in @ifnottex for HTML.
689
6902022-10-11  Vincent Lefevre  <vincent@vinc17.net>
691
692	Fixed some minor mistakes.
693
694	* Minor mistakes in doc/mpfr.texi reported by Ivan Panchenko:
695	    https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
696	  (spacing and italicization not fixed yet).
697	* Fixed similar mistakes in the other files.
698
6992022-10-11  Vincent Lefevre  <vincent@vinc17.net>
700
701	mpfrlint: updated text checking (spelling...)
702
7032022-10-05  Vincent Lefevre  <vincent@vinc17.net>
704
705	ChangeLog update with tools/update-changelog
706
707	[tools/update-changelog] Use UTC to generate the ChangeLog file.
708
7092022-10-05  Vincent Lefevre  <vincent@vinc17.net>
710
711	[tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository.
712
713	Remove all the cherry-pick information from what can be found in
714	the 4.1 branch.
715
7162022-10-05  Vincent Lefevre  <vincent@vinc17.net>
717
718	[doc/README.dev] "To make a release": precision about the tag.
719
720	[doc/README.dev] "To make a release": correction about the tag.
721
722	[tests/tnrandom.c] Fixed compilation failure with mini-gmp.
723
7242022-10-05  Vincent Lefevre  <vincent@vinc17.net>
725
726	[tools] Improvement for the ChangeLog generation.
727
728	* tools/gitlog-to-changelog: modified regexp for --strip-cherry-pick
729	  to support some log message in the MPFR Git repository (currently,
730	  only commit 4c5973c2f0153a3a4708cab79ed142e72c4a50eb, but similar
731	  ones could occur in the future).
732	* tools/update-changelog: use this --strip-cherry-pick option.
733
7342022-10-05  Vincent Lefevre  <vincent@vinc17.net>
735
736	[doc/README.dev] "To make a release": update for the ChangeLog file.
737
738	See commit 1dc281851408fc7d330576327545857c93392521 for the reason.
739
7402022-10-05  Vincent Lefevre  <vincent@vinc17.net>
741
742	[doc/README.dev] "To make a release": update for abi-compliance-checker.
743
744	Added an example of use of build-multi and abi-compliance-checker
745	for the 4.1.1 release candidate.
746
7472022-10-05  Vincent Lefevre  <vincent@vinc17.net>
748
749	Fix for "make dist" / "make distcheck" about ChangeLog regeneration.
750
751	The "ChangeLog: FORCE" rule in Makefile.am was incompatible with
752	GNU Automake's "make dist" / "make distcheck" because GNU Automake
753	creates a "distdir-am: $(DISTFILES)" rule, which was regenerating
754	the ChangeLog file in "make dist"; such a change is not allowed
755	(it fails with "make distcheck") and not wanted anyway.
756	Issue introduced by commit 52652c41978089be57aca658bacf19b758c73be4.
757
758	* Added tools/update-changelog sh script to update the ChangeLog file.
759	* Makefile.am: replaced the incorrect rule mentioned above by a rule
760	  update-changelog to run tools/update-changelog; added a comment.
761
7622022-10-05  Vincent Lefevre  <vincent@vinc17.net>
763
764	[doc/README.dev] "To make a release": update for abi-compliance-checker.
765
7662022-10-05  Vincent Lefevre  <vincent@vinc17.net>
767
768	[doc/README.dev] "To make a release": update about build-multi.
769
770	Needed due to the switch from InriaForge to Inria GitLab.
771
7722022-10-04  Vincent Lefevre  <vincent@vinc17.net>
773
774	[tests/tnrandom.c] Improved the support non-default seed.
775
776	As suggested by mpfrlint, use a different randstate rather than
777	re-seeding mpfr_rands (with a fixed seed). So the corresponding
778	test no longer needs to be at the end.
779
7802022-10-04  Vincent Lefevre  <vincent@vinc17.net>
781
782	[tests/tnrandom.c] Added a comment for tnrandom with an argument.
783
784	This concerns a slowness of mpfr_clear() in the MPFR tests due to
785	the O(n) search in tests_memory_find(), used to detect memory leaks.
786
7872022-10-04  Vincent Lefevre  <vincent@vinc17.net>
788
789	[tests/tnrandom.c] Support non-default seed (GMP_CHECK_RANDOMIZE).
790
791	This fixes a failure due to 4c5973c2f0153a3a4708cab79ed142e72c4a50eb
792	when GMP_CHECK_RANDOMIZE is set.
793
7942022-10-04  Vincent Lefevre  <vincent@vinc17.net>
795
796	[doc/README.dev] "To make a release": added note about GMP_CHECK_RANDOMIZE.
797
7982022-10-03  Vincent Lefevre  <vincent@vinc17.net>
799
800	[doc/update-faq] Ensure that the code is run from the doc directory.
801
802	[tools/coverage] Typo.
803
804	[doc/README.dev] Updated "To make a release".
805
806	Updated URLs.
807
808	Updated URLs.
809
810	Updated URLs.
811
8122022-10-03  Vincent Lefevre  <vincent@vinc17.net>
813
814	[doc/README.dev] Corrected "To make a release".
815
816	The addition of the <branch>-root tag applies only after a branch
817	is created, i.e. for non-patchlevel releases (item 0).
818
8192022-09-14  Vincent Lefevre  <vincent@vinc17.net>
820
821	Updated doc/texinfo.tex to 2022-09-14.01
822
823	Update from the texinfo Git repository.
824	  * The generated mpfr.html and mpfr.info files remain the same.
825	  * For mpfr.pdf, this version fixes all the issues I've reported.
826
8272022-09-09  Vincent Lefevre  <vincent@vinc17.net>
828
829	[doc/README.dev] Updated "To make a release".
830
831	[src/mpfr-impl.h] Added TODO for MPFR_MAYBE_UNUSED.
832
8332022-09-07  Vincent Lefevre  <vincent@vinc17.net>
834
835	[doc/README.dev] New C2x draft (N3054).
836
8372022-09-05  Vincent Lefevre  <vincent@vinc17.net>
838
839	[doc/README.dev] Updated "To make a release" (about texinfo.tex).
840
841	[autogen.sh] Added a comment about files we handle in the repository.
842
8432022-09-05  Vincent Lefevre  <vincent@vinc17.net>
844
845	[doc/.gitignore] Removed /texinfo.tex since it is in the repository.
846
847	doc/texinfo.tex was added to the Subversion repository on 2017-11-27
848	and the svn:ignore property should have been updated at this time,
849	but I forgot.
850
8512022-09-03  Vincent Lefevre  <vincent@vinc17.net>
852
853	[tests/RRTest.c] Replaced "egrep" by "grep -E" in comment.
854
855	In the GNU grep 3.8 release notes:
856	  The egrep and fgrep commands, which have been deprecated since
857	  release 2.5.3 (2007), now warn that they are obsolescent and should
858	  be replaced by grep -E and grep -F.
859
8602022-08-27  Vincent Lefevre  <vincent@vinc17.net>
861
862	[doc/README.dev] Changed "trunk" (Subversion) to "master" (Git).
863
864	[doc/README.dev] New C2x draft (N3047).
865
8662022-08-26  Vincent Lefevre  <vincent@vinc17.net>
867
868	[tools/announce-text] Updated key ID for the future releases.
869
8702022-08-19  Vincent Lefevre  <vincent@vinc17.net>
871
872	[codespell.ignore] Ignore RO and SIZ (codespell 2.2.0).
873
874	Corrected spelling mistake found by codespell 2.2.0
875
8762022-08-16  Vincent Lefevre  <vincent@vinc17.net>
877
878	Cleanup about decimal floating constants matching ".0d".
879
880	In general, the trailing 0 is not needed, and even not wanted
881	(this has the effect to decrease the quantum by 1 compared to the
882	"natural value"), though the quantum is not yet specified in MPFR.
883
884	In tests/tget_set_d64.c, kept this trailing 0 in mpfr_set_decimal64,
885	but added similar tests without this trailing 0.
886
8872022-08-08  Vincent Lefevre  <vincent@vinc17.net>
888
889	version-ext.sh: replaced a remaining "sed" by "$SED".
890
891	Thanks to Trevor Spiteri for noticing that.
892
8932022-08-08  Vincent Lefevre  <vincent@vinc17.net>
894
895	version-ext.sh: handle the case where no Git branches are found.
896
897	This should solve the issue reported on 2022-08-08 by Trevor Spiteri:
898	https://sympa.inria.fr/sympa/arc/mpfr/2022-08/msg00002.html
899
9002022-07-08  Vincent Lefevre  <vincent@vinc17.net>
901
902	doc/mpfr.texi: Updated the month.
903
9042022-07-08  Vincent Lefevre  <vincent@vinc17.net>
905
906	[manual] Added a note for mpfr_nexttoward (exceptions, sign of 0).
907
908	Also applies to mpfr_nextabove and mpfr_nextbelow, whose description
909	refers to mpfr_nexttoward.
910
911	See additional details in the comment in the src/next.c source.
912
9132022-07-08  Vincent Lefevre  <vincent@vinc17.net>
914
915	[src/next.c] Updated comment (exceptions and sign of 0).
916
917	Concerned functions: mpfr_nexttoward, mpfr_nextabove, mpfr_nextbelow.
918
919	Clarification was needed due to the differences between the
920	IEEE 754-1985, IEEE 754-2008/2019 and ISO C99+ standards on
921	similar functions (nextafter, nextUp, nextDown).
922
9232022-07-06  Vincent Lefevre  <vincent@vinc17.net>
924
925	[configure.ac] Update about GNU gold ld and LD_RUN_PATH.
926
927	* Comment update: added URL of the upstream bug report.
928	* Mention the GNU gold linker in the warning.
929
9302022-06-13  Vincent Lefevre  <vincent@vinc17.net>
931
932	[README] Replaced "Subversion" by "Git".
933
934	[doc/README.dev] Completed the update for Git.
935
936	[doc/README.dev] Moved and clarified a paragraph about the tests.
937
9382022-06-11  Vincent Lefevre  <vincent@vinc17.net>
939
940	Fixed tsprintf %a tests when GMP and libc produce different outputs.
941
942	With some 32-bit mingw-w64 implementations, the GMP and libc
943	formatted output functions produce different outputs for %a (this
944	is not completely specified by the C standard). In the MPFR tests
945	introduced by commit 22db634294c27eabbc0c55b04267d3ab5bc9a648 on
946	2022-05-19, the comparison is done between the MPFR result, which
947	is based on GMP, and the libc result; hence a failure.
948
949	So, changed the 4 concerned tests of tests/tsprintf.c to compare
950	the MPFR result with the GMP result (for the other tests on the
951	C native types, it is still better to compare MPFR with libc).
952
953	Bug report:
954	  https://sympa.inria.fr/sympa/arc/mpfr/2022-06/msg00004.html
955
9562022-06-10  Vincent Lefevre  <vincent@vinc17.net>
957
958	[tools/announce-text] Completed the update for Git.
959
960	[tools/announce-text] Check that one has an annotated tag at origin.
961
962	[tools/announce-text] Update.
963
964	[tools/announce-text] Minor git-related simplification.
965
966	[tools/announce-text] Started the update for Git.
967
968	[tools/announce-text] Removed code and text related to InriaForge (obsolete).
969
9702022-06-08  Vincent Lefevre  <vincent@vinc17.net>
971
972	Updated www.open-std.org URLs: http → https.
973
9742022-06-07  Vincent Lefevre  <vincent@vinc17.net>
975
976	[doc/README.dev] New C2x draft (N2912).
977
9782022-06-02  Vincent Lefevre  <vincent@vinc17.net>
979
980	[doc/README.dev] Updated "To make a release".
981
982	This completes the update for Git and Inria GitLab. But the
983	tools/announce-text script has not been updated yet.
984
9852022-06-02  Vincent Lefevre  <vincent@vinc17.net>
986
987	[tools/export-release] Completed the script.
988
989	Fix the timestamps so that each file or directory has a timestamp
990	corresponding to its last change.
991
9922022-06-02  Vincent Lefevre  <vincent@vinc17.net>
993
994	Added tools/export-release sh script.
995
996	Export some release identified by a Git tag in order to get a tarball.
997
9982022-06-02  Vincent Lefevre  <vincent@vinc17.net>
999
1000	[mbench] Updated Copyright lines.
1001
1002	Added tools/mbench/.gitignore file.
1003
1004	[mbench/Makefile] Added missing dependencies on timp.h
1005
10062022-06-02  Vincent Lefevre  <vincent@vinc17.net>
1007
1008	[mbench/timp.h] Bug fix for "make rt" on 32-bit machines. Reindent.
1009
1010	For the code used when USE_CLOCK_MONOTONIC is defined ("make rt"):
1011	If both time_t (type of tv_sec) and long are 32-bit types, there was
1012	an overflow in the timp_rdtsc() macro, due to the multiplication of
1013	the tv_sec (coming from CLOCK_MONOTONIC, thus typically larger than 5)
1014	by the value 1000000000 (≈ 2^32 / 4.3) of type unsigned long, because
1015	this multiplication would be done on 32 bits. Changed the type of the
1016	constant to unsigned long long so that the operations are done with
1017	the target type unsigned long long (at least).
1018
10192022-06-02  Vincent Lefevre  <vincent@vinc17.net>
1020
1021	[mbench] Removed trailing whitespace.
1022
10232022-06-01  Vincent Lefevre  <vincent@vinc17.net>
1024
1025	[doc/README.dev] Updated "To make a release" (about ChangeLog).
1026
1027	ChangeLog update with "make ChangeLog"
1028
1029	[tools/ck-copyright-notice] Better indentation.
1030
1031	[tools/ck-copyright-notice] Support the future ChangeLog format.
1032
10332022-06-01  Vincent Lefevre  <vincent@vinc17.net>
1034
1035	[tools/ck-copyright-notice] Better error handling.
1036
1037	Note: One currently gets a failure with the future ChangeLog format,
1038	obtained with gitlog-to-changelog (via "make ChangeLog").
1039
10402022-06-01  Vincent Lefevre  <vincent@vinc17.net>
1041
1042	Support ChangeLog regeneration from a Git working tree.
1043
1044	* Added tools/gitlog-to-changelog file from Gnulib.
1045	* Makefile.am: added a rule for the Changelog file.
1046
1047	Needed as the GNU MPFR repository has been converted to Git.
1048
1049	The '%B%n' format string is used rather than the default '%s%n%b%n'
1050	because Git's commit message convention is not always followed
1051	(in particular before the conversion of the repository to Git).
1052
1053	Note: In the future, if there is any change to do to a Git commit
1054	message (typo, etc.), the --amend option could be used.
1055
10562022-05-30  Vincent Lefevre  <vincent@vinc17.net>
1057
1058	Started to update doc/README.dev for Git.
1059
10602022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1061
1062	[manual] Clarify the description of the formatted output functions.
1063
1064	Emphasize the fact that the conv specifier F is not supported, except
1065	for the type specifier R (for mpfr_t arguments).
1066
10672022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1068
1069	[src/vasprintf.c] Consistency with the non-support of %F by GMP.
1070
1071	The F conversion specifier as defined by the C standard is not
1072	supported by the GMP formatted output functions because it is
1073	already used as the type specifier for mpf_t (which comes before
1074	the conversion specifier). Let's take this fact into account.
1075
1076	Note: this conversion specifier is still allowed with MPFR numbers
1077	(e.g., "%RF") to avoid breaking the compatibility (it has never
1078	been an issue).
1079
10802022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1081
1082	[tests/tsprintf.c] native_types: added tests to differentiate %G from %g.
1083
1084	The tested value -1.25 had the same output -1.25 with %g and %G.
1085	Added 7.62939453125e-6 (= 2^(-17)), whose output by %g and %G has
1086	an exponent introduced by 'e' and 'E' respectively.
1087
10882022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1089
1090	[tests/tsprintf.c] native_types: added tests for %a, %A, %la, %lA
1091
10922022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1093
1094	[tests/tsprintf.c] Added/fixed native_types tests.
1095
1096	* Added tests of %E and %G.
1097	* Removed the test of %lF, which is not supported by GMP (and yields
1098	  a heap buffer overflow, detected by AddressSanitizer): even though
1099	  there would be no ambiguity in this particular case, it is not
1100	  supported because the standard F conversion specifier isn't due to
1101	  the use of the F type specifier for mpf_t.
1102
11032022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1104
1105	[tests/tsprintf.c] Correction for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG
1106
1107	Reverted commit 2b60707d22717e0f582be5de680d7fa7004e2512 and added
1108	tests for the missing %lE, %lF, %lG in native_types, protected by
1109	a #if (see commit ecd3279f3dfd281fc8e51aac7509b76b27497a6c) as they
1110	may need an ISO C99 compiler.
1111
1112	Note: The test of %la and %lA was incorrect because the first digit
1113	is unspecified (and really depends on the C library). A test could
1114	be added in the future, perhaps also with a configure test, because
1115	the compiler may support ISO C99 but not the C library (there was
1116	an issue like that at least with old versions of Solaris).
1117
11182022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1119
1120	[tests/tsprintf.c] native_types: test %le, %lf, %lg only with C99+
1121
1122	… since the l length modifier for the FP types (a, A, e, E, f, F, g, G
1123	conversion specifiers) has been added in ISO C99.
1124
11252022-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1126
1127	[tests/tsprintf.c] added tests for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG
1128
11292022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1130
1131	[src/vasprintf.c] Bug fix for the l length modifier with FP type.
1132
1133	The l length modifier is now supported with the a, A, e, E, f, F, g, G
1134	conversion specifiers, as required by the ISO C standard on printf and
1135	other formatted output functions. As specified, it is just ignored.
1136
1137	For that, to improve code maintainability, the CASE_LONG_ARG() macro
1138	was simplified:
1139	  * The c and s conversion specifiers are always supported by this
1140	    macro (this is a potential fix for implementations with incomplete
1141	    wide-character handling, without any guarantee to work).
1142	  * A MPFR_RET_NEVER_GO_HERE() for unsupported conversion specifiers
1143	    has been added (if specinfo_is_valid() is consistent with this
1144	    macro, one should effectively never reach this case).
1145
11462022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1147
1148	[src/vasprintf.c] Made case ordering consistent (no change of behavior).
1149
1150	The "case" ordering in specinfo_is_valid() and in CONSUME_VA_ARG() for
1151	integer specifiers and for floating-point specifiers was not the same.
1152	Improved code readability by using the same order across the code
1153	(also OK with CASE_LONG_ARG()).
1154
11552022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1156
1157	[tests/tsprintf.c] native_types: test %le, %lf, %lg.
1158
1159	These tests are currently failing. Bug reported by Paul Zimmermann
1160	for %la (but %a and %la are not currently tested, because of their
1161	possible lack of support in the C library).
1162
11632022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1164
1165	[tests/tsprintf.c] native_types: same tests for i as for d.
1166
1167	[tests/tnrandom.c] With mini-gmp, disable the tests that check the values.
1168
1169	[acinclude.m4] Added a comment about the unreliable NAN != NAN check.
1170
11712022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1172
1173	[tests/cmp_str.c] In mpfr_cmp_str, check that s is a valid number.
1174
1175	In the tests, the string provided to mpfr_cmp_str is normally a
1176	valid number (the common use is to check that a result is equal to
1177	some hardcoded value given by a string). A string s that does not
1178	represent a valid number probably has a typo, and the consequence
1179	was that in such a case, any non-NaN result was regarded as correct.
1180
11812022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1182
1183	[tests/tsubnormal.c] Removed invalid testcase bug20220518.
1184
1185	The testcase bug20220518 added in
1186	  commit 7640a832fbf0b7f9057889e076cf7f42fe4f8e58
1187	was invalid as the mpfr_subnormalize input was not in the current
1188	exponent range (it had exponent -1074 while emin = -1073).
1189
1190	As usual, inputs outside the current exponent range are not supported
1191	(the mpfr_subnormalize description in the manual is explicit:
1192	"The subnormal exponent range is from ‘emin’ to ‘emin+PREC(X)-1’.").
1193	Supporting values outside the current exponent range is not needed
1194	in practice (see examples in the manual).
1195
11962022-05-19  Vincent Lefevre  <vincent@vinc17.net>
1197
1198	[tests/tsubnormal.c] Code style in coverage().
1199
1200	[tests/tsubnormal.c] Added missing cleanup at the end of bug20220518.
1201
1202	[tests/tsubnormal.c] Simplified bug20220518.
1203
1204	[tests/tsubnormal.c] C90 compatibility.
1205
12062022-05-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1207
1208	[tests/tsubnormal.c] added test case that exhibits a bug in mpfr_subnormalize
1209	[src/subnormal.c] fixed typo
1210
12112022-05-18  Vincent Lefevre  <vincent@vinc17.net>
1212
1213	[tests/tnrandom.c] Check some mpfr_nrandom values to detect changes.
1214
1215	The values should be the same on different machines and with
1216	different MPFR versions (or this would be an ABI change).
1217
12182022-05-17  Vincent Lefevre  <vincent@vinc17.net>
1219
1220	For version-ext.sh, use "$SED" instead of "sed".
1221
1222	* tests/Makefile.am: pass $SED to version-ext.sh.
1223	* version-ext.sh: use $SED (default to "sed").
1224
12252022-05-17  Vincent Lefevre  <vincent@vinc17.net>
1226
1227	Fixed version-ext.sh when in an origin/* remote branch.
1228
12292022-05-13  Vincent Lefevre  <vincent@vinc17.net>
1230
1231	Tests: the check of subnormal support is done when running the tests.
1232
1233	The check of support for double and float subnormals was done at
1234	configure time, but it could not be done when cross-compiling.
1235	Since it is useful only for the tests, it is better to do it when
1236	running the tests.
1237
1238	* tests/tests.c: added have_subnorm_dbl() and have_subnorm_flt()
1239	  functions to check support for double and float subnormals;
1240	  removed such a check from mpfr_test_init().
1241	* tests/mpfr-test.h: declare these functions.
1242	* tests/tget_flt.c: use have_subnorm_flt() instead of HAVE_SUBNORM_FLT.
1243	* tests/tset_d.c, tests/tsprintf.c: removed the useless test of
1244	  HAVE_SUBNORM_DBL (this was a minor optimization).
1245	* acinclude.m4: updated comment about the check of subnormal support;
1246	  minor improvement in the check for float subnormals.
1247	  Note: keep the check just for build information (it might be useful
1248	  for debugging or in case of a related bug report).
1249	* tools/mpfrlint: check that the HAVE_SUBNORM_* macros are not used.
1250
12512022-05-13  Vincent Lefevre  <vincent@vinc17.net>
1252
1253	[acinclude.m4] Updated comment about the check of subnormal numbers.
1254
1255	* Removed text about DBL_HAS_SUBNORM and FLT_HAS_SUBNORM (which
1256	  was added in commit 3ee30bcf34bfb5d042e5a1aa9b7cf8a42b51cb91
1257	  on 2019-10-01) since these macros should be made obsolescent:
1258	  https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2981.htm
1259	  And their use would be incorrect in C++ (different meaning):
1260	  https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2988.pdf
1261	* A bit more details.
1262	* Added a FIXME for better cross-compiling support.
1263
12642022-05-10  Vincent Lefevre  <vincent@vinc17.net>
1265
1266	doc/mpfr.texi: Updated the month.
1267
1268	[NEWS] Mention the fixes of the macros of the custom interface.
1269
12702022-05-10  Vincent Lefevre  <vincent@vinc17.net>
1271
1272	Improved 2 macros of the custom interface and updated manual.
1273
1274	* src/mpfr.h: The mpfr_custom_init() and mpfr_custom_move() macros
1275	  could not be used in contexts where an expression was expected.
1276	  This limitation was not necessary and is now removed.
1277	* doc/mpfr.texi: In commit 743a63c480318f60ac2a953007bac08f37b7d71d,
1278	  the manual was clarified about the macros of the custom interface,
1279	  i.e. behaving like macros, which may evaluate arguments multiple
1280	  times or none. This was incomplete and error prone, in addition
1281	  to being undocumented in the current MPFR versions. Almost all
1282	  issues have now been fixed (the only minor limitation is that the
1283	  mpfr_custom_init_set() macro is not usable in contexts where an
1284	  expression is expected, but this cannot yield unnoticed bugs).
1285	  So, changed the manual to reflect these fixes and added an item
1286	  in Section "API Compatibility" (also removed an obsolete comment
1287	  about that from src/mpfr.h).
1288
12892022-05-08  Vincent Lefevre  <vincent@vinc17.net>
1290
1291	Improved a comment.
1292
12932022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1294
1295	[doc/README.dev] Added text about tests of function-like macros.
1296
12972022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1298
1299	In comments, changed "stack interface" to "custom interface".
1300
1301	* src/mpfr.h: changed "stack interface" and "mpfr_stack interface"
1302	  to "(the) custom interface".
1303	* src/stack_interface.c: changed "mpfr_stack" to "custom interface".
1304
1305	The mpfr_stack_ prefix was changed to mpfr_custom_ in 2005
1306	(see commit 0a010e55364d1cc3681273eee70c91dab0a61946) and
1307	the MPFR manual says "Custom Interface".
1308
13092022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1310
1311	Other corrections about the custom interface.
1312
1313	This time, the build of tstckintc was failing with "gcc -Wc++-compat"
1314	because __cplusplus is not defined.
1315
1316	* tests/tstckintc.c: use the same solution as already done in
1317	  tcopysign.c (commit 3dbf3387669030b264317202806fc3d938704618),
1318	  i.e. ignore -Wc++-compat with "GCC diagnostic" pragmas when
1319	  testing with void * arguments.
1320	  Also simplified the code thanks to the VOIDP_CAST macro that
1321	  was introduced at that time (cast to void * except in C++):
1322	  commit 9076e47ceb41c60cab526870757f2098ced5c26d.
1323
1324	Everything should now be OK.
1325
13262022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1327
1328	Other corrections about the custom interface.
1329
1330	In C++, implicit pointer conversions are forbidden. This made the
1331	build of tstckintc fail with g++ and -DMPFR_USE_NO_MACRO in CFLAGS.
1332
1333	* src/mpfr.h: do not attempt to support implicit pointer conversions
1334	  with a C++ compiler in the macros, since this is not supported by
1335	  the functions, i.e. removed 2 useless casts; this is a bit like the
1336	  code like before commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.
1337	* tests/tstckintc.c: test a "void *" argument instead of mpfr_ptr only
1338	  in C, not C++ (which cannot work if -DMPFR_USE_NO_MACRO is used).
1339	  Note: for newx and newx2, revert to the code that was before the
1340	  commit mentioned above.
1341
13422022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1343
1344	Testsuite: C++11 compatibility (GCC's -Wliteral-suffix).
1345
1346	With "g++ -Werror", several .c files in the "tests" directory were
1347	yielding
1348
1349	  error: invalid suffix on literal; C++11 requires a space between
1350	  literal and string macro [-Werror=literal-suffix]
1351
13522022-05-06  Vincent Lefevre  <vincent@vinc17.net>
1353
1354	Fixed build failure of user code using mpfr_custom_get_kind() / g++.
1355
1356	* src/mpfr.h: added missing cast in the mpfr_custom_get_kind() macro
1357	  (invalid C++ code, but this is in a GNU __extension__ block, thus
1358	  unfortunately, it was not detected by "gcc -Werror=c++-compat";
1359	  see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499>).
1360
1361	Bug introduced in commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.
1362
13632022-05-05  Vincent Lefevre  <vincent@vinc17.net>
1364
1365	Fixed issues with the macro versions of the custom interface.
1366
1367	* src/mpfr.h: fixed issues with the mpfr_custom_* macros:
1368	    - a "void *" argument instead of mpfr_ptr could make the
1369	      compilation fail (with the function, the conversion is
1370	      implicit, thus this should be accepted by the macro);
1371	    - some arguments could be evaluated 0 times, which is wrong
1372	      if their evaluation has side effects.
1373	* tests/tstckintc.c: added various tests to check these kinds
1374	  of issues.
1375
13762022-05-05  Vincent Lefevre  <vincent@vinc17.net>
1377
1378	Avoid a -Wsign-conversion warning that could occur in user code.
1379
1380	Issue reported by Andreas Enge concerning PariTwine.
1381
1382	* src/mpfr.h: added a cast in the mpfr_custom_get_size() macro so that
1383	  a size_t * size_t product is done instead of mpfr_prec_t * size_t
1384	  (where mpfr_prec_t is signed and size_t is unsigned, triggering a
1385	  warning when GCC's -Wsign-conversion is used).
1386
13872022-05-05  Vincent Lefevre  <vincent@vinc17.net>
1388
1389	Fixed mpfr_custom_get_size() macro and added non-regression test.
1390
1391	* src/mpfr.h: added missing cast in mpfr_custom_get_size() macro.
1392	* tests/tstckintc.c: added testcases (would fail on LP64 platforms).
1393
13942022-04-22  Vincent Lefevre  <vincent@vinc17.net>
1395
1396	[mpfr-impl.h] Rounding mode macros: added assertion; updated comments.
1397
13982022-04-22  Vincent Lefevre  <vincent@vinc17.net>
1399
1400	Updated TODO to improve mpfr_pow_si/sj for negative n.
1401
1402	I thought that there would be some drawbacks with the underflow
1403	by computing the power before the division, but this actually
1404	seems to be more or less equivalent (mpfr_pow_general is already
1405	used for MPFR_RNDN).
1406
1407	Also, removed the suggestion with rescaling as this may not be
1408	possible for large values of n compared to the maximum exponent.
1409
14102022-04-17  Vincent Lefevre  <vincent@vinc17.net>
1411
1412	Corrected comment about the ".POSIX" line in all Makefile.am files.
1413
14142022-04-08  Vincent Lefevre  <vincent@vinc17.net>
1415
1416	[TODO] Added idea of implementation for to_chars.
1417
14182022-04-07  Vincent Lefevre  <vincent@vinc17.net>
1419
1420	[manual] For sqrt and rec_sqrt, mention the relation with rootn.
1421
1422	Updated TODO about rootn (now that mpfr_rootn_si is implemented).
1423
14242022-04-06  Vincent Lefevre  <vincent@vinc17.net>
1425
1426	[src/pow_si.c] Added a static assertion and comments about code improvement.
1427
14282022-04-06  Vincent Lefevre  <vincent@vinc17.net>
1429
1430	[src/log_ui.c] Updated comments to better understand that the code is correct.
1431
1432	Note: these are the same as in the 4.1 branch (commit 8f357dd48).
1433	So the ULONG2LONG macro was not necessary, but let's keep it for
1434	maintainability. This does not change for GCC and Clang. But tcc
1435	even generates shorter x86_64 code with this macro.
1436
14372022-04-06  Vincent Lefevre  <vincent@vinc17.net>
1438
1439	[tests/tpow.c] Improved/added bad_cases tests of mpfr_pow_ui/si (x^n).
1440
1441	* For n odd, generate negative values y (thus x) with a probability
1442	  1/2 (instead of a very low probability), as there is no reason to
1443	  favor positive values in this case.
1444	* Added bad_cases tests of mpfr_pow_si with n negative (with the help
1445	  of mpfr_rootn_si). This was the TODO from commit 58fc9fb0e.
1446
14472022-04-06  Vincent Lefevre  <vincent@vinc17.net>
1448
1449	[tests] In some bad_cases messages, output the name of the function.
1450
1451	This is useful for tests with several bad_cases invocations,
1452	such as tpow, troot and trootn_si.
1453
14542022-04-06  Vincent Lefevre  <vincent@vinc17.net>
1455
1456	[tests/{troot,trootn_si}.c] Added a comment about bad_cases.
1457
14582022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1459
1460	Added /trootn_si to tests/.gitignore
1461
14622022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1463
1464	src/root.c: for mpfr_rootn_si with k = -2, use mpfr_rec_sqrt.
1465
1466	The mpfr_rec_sqrt code is faster than the generic mpfr_rootn_si code
1467	for k = -2.
1468
1469	Also added a TODO: if MPFR_WANT_ASSERT >= 2, do both computations
1470	and compare the results.
1471
14722022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1473
1474	tests/trootn_si.c: fixed typo in error messages.
1475
14762022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1477
1478	src/pow_ui.c: bug fix with mini-gmp and limb < unsigned long.
1479
1480	The initial precision was too small for large values of n.
1481	→ tpow and trootn_si no longer fail.
1482
14832022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1484
1485	tests/tpow.c: better generic tests for mpfr_pow_ui and mpfr_pow_si.
1486
1487	Changed INT_RAND_FUNCTION, in particular to use randulong / randlong
1488	for mini-gmp, yielding an assertion failure when MINI_GMP_LIMB_TYPE
1489	is shorter than "long".
1490
14912022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1492
1493	mpfrlint: ignore mini-gmp in some test.
1494
14952022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1496
1497	mpfr_rootn_si(): bug fix for n = LONG_MIN; added generic tests.
1498
1499	* src/root.c: bug fix in mpfr_rootn_si() for n = LONG_MIN
1500	  (integer overflow on -n, triggered by the generic tests).
1501	* tests/trootn_si.c: added generic tests.
1502	  Note: they currently yield an assertion failure in pow_ui.c with
1503	  mini-gmp when MINI_GMP_LIMB_TYPE is shorter than "long".
1504
15052022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1506
1507	[tests] Add randulong and randlong functions (useful with mini-gmp).
1508
1509	To get a random unsigned long, randlimb() is currently used, but with
1510	mini-gmp, a limb may be shorter than an unsigned long, so that one
1511	does not get all the possible "unsigned long" values. So these new
1512	randulong() and randlong() functions should now be used instead.
1513
15142022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1515
1516	Define a ULONG2LONG() macro to convert from unsigned long to long.
1517
1518	The conversion is done with the two's complement rule
1519	(i.e. modular arithmetic) in a portable way.
1520	  * doc/README.dev: mention this macro (the technique was already
1521	    described).
1522	  * src/log_ui.c: use this macro instead of non-portable code due to
1523	    the case n = LONG_MAX + 1.
1524	  * src/mpfr-impl.h: define this macro.
1525
15262022-04-05  Vincent Lefevre  <vincent@vinc17.net>
1527
1528	trootn_si.c: more mpfr_rootn_si tests on special values
1529
1530	doc/mpfr.texi: Updated the month.
1531
1532	New function mpfr_rootn_si
1533
15342022-04-04  Vincent Lefevre  <vincent@vinc17.net>
1535
1536	[src/root.c] Updated a comment for mpfr_rootn_ui.
1537
1538	This comment was correct for mpfr_root, but I forgot to update it when
1539	changing this function to mpfr_rootn_ui (where this case differs) in
1540	commit 117c726a863e243634c8e5fbaae0265cac90a4a1.
1541
15422022-04-04  Vincent Lefevre  <vincent@vinc17.net>
1543
1544	[tests/troot.c] Added a comment.
1545
1546	[tests/tpow.c] Added a TODO about tests with bad_cases.
1547
1548	[tests/tpow.c] Corrected messages.
1549
1550	[tests/tpow.c] For rootN, use mpfr_root and mpfr_rootn_ui randomly.
1551
15522022-04-04  Vincent Lefevre  <vincent@vinc17.net>
1553
1554	[tests] Define RAND_BOOL() macro (random boolean) and use it.
1555
1556	In the tests directory:
1557	* mpfr-test.h: define RAND_BOOL() macro, with type int.
1558	* mpfr-test.h and various .c files: replace "randlimb () & 1" and
1559	  "randlimb () % 2" by "RAND_BOOL ()".
1560	* tfprintf.c, tsprintf.c: use the same code as tprintf.c.
1561
15622022-04-04  Vincent Lefevre  <vincent@vinc17.net>
1563
1564	In the tests, fixed "randlimb () % 1", mistaken for "randlimb () & 1".
1565
1566	This occurred only in tests/tfmma.c (5 occurrences), with the
1567	consequence of fewer cases of different kinds in the tests.
1568
1569	Such a kind of mistake is now detected by mpfrlint (commit 2a90f0c91).
1570
15712022-04-04  Vincent Lefevre  <vincent@vinc17.net>
1572
1573	mpfrlint: detect "% 1" (modulo 1), which always gives 0.
1574
1575	This is probably mistaken for "& 1" or "% 2", as currently in
1576	"tests/tfmma.c".
1577
15782022-03-30  Vincent Lefevre  <vincent@vinc17.net>
1579
1580	[TODO] Moved and updated item.
1581
1582	Since this is about functions in IEEE 754-2019, it makes more sense
1583	to have this item after the new functions of IEEE 754-2008.
1584
15852022-03-30  Vincent Lefevre  <vincent@vinc17.net>
1586
1587	[TODO] Updated item (with non-public URL removed).
1588
15892022-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1590
1591	[TODO] added item
1592
15932022-03-29  Vincent Lefevre  <vincent@vinc17.net>
1594
1595	Fixed version-ext.sh, in particular when used after "./autogen.sh".
1596
1597	After running autogen.sh, version-ext.sh incorrectly detected files
1598	as modified. Solution: refresh the git index before git diff-index.
1599
16002022-03-28  Vincent Lefevre  <vincent@vinc17.net>
1601
1602	[acinclude.m4] Fix/improve MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.
1603
1604	With a GCC snapshot, -Werror=infinite-recursion was yielding an
1605	error in AC_CHECK_LIB for function "main". So, define MPFR_HAVE_LIB
1606	to be used instead of AC_CHECK_LIB when it is not needed to test any
1607	function. So, use it in MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.
1608	Also updated MPFR_CHECK_LIBM from the current libtool.m4 code, as
1609	done in the past.
1610
16112022-03-24  Vincent Lefevre  <vincent@vinc17.net>
1612
1613	[get_d128.c] Updated FIXME comment.
1614
16152022-03-24  Vincent Lefevre  <vincent@vinc17.net>
1616
1617	Added a TODO efficiency item about the size of the MPFR library.
1618
1619	Reduce the size of the MPFR library generated by GCC by avoiding
1620	operations on _Decimal128 in get_d128.c when its encoding is BID.
1621
16222022-02-18  Vincent Lefevre  <vincent@vinc17.net>
1623
1624	[algorithms.tex] Cleanup: ^\infty → ^{\infty}
1625
1626	Using a command after _ (subscript) or ^ (superscript) is discouraged
1627	as it might break with future TeX versions, as already seen.
1628	Discussion:
1629	  https://tug.org/pipermail/tex-live/2022-February/047780.html
1630
16312022-02-18  Vincent Lefevre  <vincent@vinc17.net>
1632
1633	[algorithms.tex] Updated 2 URLs in comments (http → https).
1634
16352022-02-03  Vincent Lefevre  <vincent@vinc17.net>
1636
1637	Updated a comment: added a ref to WG14/N2921 about large bit-fields.
1638
16392022-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1640
1641	[src/nrandom.c] added reference
1642
16432022-01-18  Vincent Lefevre  <vincent@vinc17.net>
1644
1645	Updated the FIXME in acinclude.m4 for MPFR_CHECK_LIBM.
1646
16472022-01-18  Vincent Lefevre  <vincent@vinc17.net>
1648
1649	Added FIXME in acinclude.m4 for MPFR_CHECK_LIBM.
1650
1651	With a GCC snapshot:
1652	  error: infinite recursion detected [-Werror=infinite-recursion]
1653
16542022-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1655
1656	[TODO] removed an item (done in the web page for each release)
1657
16582022-01-14  Vincent Lefevre  <vincent@vinc17.net>
1659
1660	doc/mpfr.texi: Updated the month.
1661
16622022-01-12  Vincent Lefevre  <vincent@vinc17.net>
1663
1664	[tests] Added a comment about the output of pointer values.
1665
16662022-01-10  Vincent Lefevre  <vincent@vinc17.net>
1667
1668	[doc/README.dev] Updated "To make a release".
1669
1670	Added a paragraph about config.guess and config.sub.
1671
16722022-01-06  Vincent Lefevre  <vincent@vinc17.net>
1673
1674	Added a TODO to improve mpfr_pow_si/sj.
1675
1676	Computing POW_U before the division (instead of after) would reduce
1677	the error in the intermediate result.
1678
16792022-01-06  Vincent Lefevre  <vincent@vinc17.net>
1680
1681	Updated a comment about a clang bug.
1682
1683	Updated a comment about a clang bug.
1684
16852022-01-06  Vincent Lefevre  <vincent@vinc17.net>
1686
1687	Copyright notice update: added 2022.
1688
1689	Command used:
1690	  perl -pi -e 's/ (\d{4}-)?(2021)(?= Free Software)/
1691	               " ".($1||"$2-").($2+1)/e' **/*(^/)
1692	under zsh.
1693	Removed 2021 from the example in the doc/README.dev file.
1694
16952021-12-26  Vincent Lefevre  <vincent@vinc17.net>
1696
1697	README.dev: added C2x draft URL (N2731).
1698
1699	Corrected style (spurious space before comma).
1700
17012021-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1702
1703	gnu style
1704
17052021-11-25  Vincent Lefevre  <vincent@vinc17.net>
1706
1707	Move code for git info to its own shell script "version-ext.sh".
1708
1709	* New version-ext.sh file: sh script to output MPFR version information
1710	  for a Git working tree (old code from tests/Makefile.am).
1711	* tests/Makefile.am: replace some output_info code by the use of this
1712	  script.
1713	* Makefile.am: add version-ext.sh to EXTRA_DIST as a consequence
1714	  (a comment explains why).
1715	* README: list this new version-ext.sh file as a consequence.
1716
17172021-11-25  Vincent Lefevre  <vincent@vinc17.net>
1718
1719	Another fix in the code for git info output by "make check".
1720
1721	tests/Makefile.am: in output_info, replaced "grep" by "$(GREP)".
1722
17232021-11-25  Vincent Lefevre  <vincent@vinc17.net>
1724
1725	Fixed git info output by "make check".
1726
1727	tests/Makefile.am: when discarding excluded branches, the match should
1728	be done on the full branch name, not a subword; so, added the -x grep
1729	option (specified by POSIX).
1730
17312021-11-25  Vincent Lefevre  <vincent@vinc17.net>
1732
1733	Updated tests_run_within_valgrind() comment in "tests/tests.c".
1734
17352021-11-23  Vincent Lefevre  <vincent@vinc17.net>
1736
1737	README.dev: added note about the formally proven code and requirements.
1738
1739	Update of INSTALL file about CompCert.
1740
17412021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1742
1743	doc/mpfr.texi: Updated the month.
1744
17452021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1746
1747	For git info output by "make check", check for modifications.
1748
1749	tests/Makefile.am: updated output_info code to add " (modified)"
1750	when the working tree has been modified (compared to HEAD).
1751
17522021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1753
1754	Added info to doc/README.dev about <branch>-root tags.
1755
17562021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1757
1758	Removed a usless comment about git info output by "make check".
1759
1760	tests/Makefile.am: removed the comment about the unimplemented
1761	solution with possible *-branch tags (I think that it would not
1762	work well with merges).
1763
17642021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1765
1766	Improved code to output git info from "make check".
1767
1768	tests/Makefile.am: updated output_info code and comment.
1769	We now use <branch>-root tags to find to correct branch, by excluding
1770	branches created after the current HEAD.
1771
17722021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1773
1774	Fixed git info output by "make check".
1775
1776	tests/Makefile.am: in output_info, added a "|| true" on a shell command
1777	that may fail (grep with no matches).
1778
17792021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1780
1781	Added a FIXME for git info output by "make check".
1782
1783	The recent additions to tests/Makefile.am work well for master (and
1784	detached HEAD state), but not for the 4.1 branch, where $gitb gets
1785	empty, even though testing from an interactive shell (/bin/sh = dash)
1786	does not show any issue.
1787
17882021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1789
1790	Improved git info output by "make check".
1791
1792	tests/Makefile.am: modified output_info to output:
1793	  * the detected branch, which also works in detached HEAD state
1794	    (for old commits that can be found in multiple branches,
1795	    "master" is prefered over the other branches);
1796	  * the total commit count;
1797	  * the commit id (hash).
1798
17992021-11-22  Vincent Lefevre  <vincent@vinc17.net>
1800
1801	Add git info with "git describe" for "make check" (to be improved).
1802
1803	tests/Makefile.am: in output_info, add git info, but this does not
1804	output the branch. For instance, on master, one gets something like
1805	"4.1-root-491-g2933fad3a", and something similar on the 4.1 branch.
1806	As the solution needs to work in detached HEAD state, we may want to
1807	add *-branch tags to identify the first commit of a branch, and use
1808	  git describe --match '*-branch'
1809	instead of
1810	  git describe --match '*-root'
1811
18122021-11-15  Vincent Lefevre  <vincent@vinc17.net>
1813
1814	Documentation: some improvements about the "decimal-point character".
1815
1816	* doc/README.dev: update about the use in the MPFR manual (mpfr.texi).
1817	* doc/mpfr.texi: minor correction.
1818
18192021-11-05  Vincent Lefevre  <vincent@vinc17.net>
1820
1821	[doc/algorithms.tex] Add \pdfglyphtounicode{lscript}{2113} for \ell.
1822
1823	Otherwise one gets a grave accent (thus "s − l" cannot be found).
1824	If the "ℓ" is still an issue, one could alternatively use
1825	  \pdfglyphtounicode{lscript}{006C}
1826	to get an "l" (but "l" also matches "ℓ" in xpdf and atril).
1827
18282021-11-05  Vincent Lefevre  <vincent@vinc17.net>
1829
1830	[doc/algorithms.tex] Add some ToUnicode mappings.
1831
1832	This fixes some regressions compared to old LaTeX versions (in 2009).
1833
18342021-10-24  Vincent Lefevre  <vincent@vinc17.net>
1835
1836	doc/mpfr.texi: Updated the month.
1837
18382021-10-24  Vincent Lefevre  <vincent@vinc17.net>
1839
1840	mpfrlint: fixed git usage.
1841
1842	The change done in 52138701d9b920d608871b20d4bee30f59adede6 wasn't
1843	working when the latest commit wasn't on "doc/mpfr.texi".
1844
18452021-10-24  Vincent Lefevre  <vincent@vinc17.net>
1846
1847	mpfrlint: update for git.
1848
1849	This is used to check that the doc/mpfr.texi UPDATED-MONTH value is
1850	up-to-date by comparing it with the date of the latest commit.
1851
18522021-10-24  Vincent Lefevre  <vincent@vinc17.net>
1853
1854	In mpfr.texi, added a "@." to avoid a warning from mpfrlint.
1855
1856	Note: This is not needed at the end of a paragraph like here, but
1857	this is a general warning, just in case text is added or moved.
1858
18592021-10-24  Vincent Lefevre  <vincent@vinc17.net>
1860
1861	mpfr.texi cleanup: removed the obsolete @refill command.
1862
1863	This command was needed in the past, but it now generates a warning
1864	"@refill is obsolete" (as of Texinfo 6.8 - 2021-07-03).
1865	It is no longer needed, as least since Texinfo 4.2:
1866	https://ftp.gnu.org/old-gnu/Manuals/texinfo-4.2/html_node/Refilling-Paragraphs.html
1867
18682021-10-19  Vincent Lefevre  <vincent@vinc17.net>
1869
1870	Added .mailmap file.
1871
18722021-10-17  Vincent Lefevre  <vincent@vinc17.net>
1873
1874	Added a TODO/FIXME to add Git information to "make check".
1875
1876	Partial update of doc/README.dev due to the migration to Inria GitLab.
1877
1878	Updated README due to the migration to Inria GitLab.
1879
18802021-09-27  Vincent Lefèvre  <vincent@vinc17.net>
1881
1882	[src/mparam_h.in] Updated comment about GCC.
1883
18842021-09-24  Vincent Lefèvre  <vincent@vinc17.net>
1885
1886	[INSTALL] Update about MinGW: the old mingw.org website no longer
1887	exists, and MinGW has actually been replaced by Mingw-w64, which
1888	is for both 32-bit and 64-bit Windows.
1889
1890	[README] Updated URLs.
1891
18922021-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1893
1894	missing url
1895
1896	added new preprint
1897
18982021-09-16  Vincent Lefèvre  <vincent@vinc17.net>
1899
1900	[doc/mpfr.texi] Updated the month.
1901
19022021-09-16  Vincent Lefèvre  <vincent@vinc17.net>
1903
1904	[doc/mpfr.texi] Corrected garbled mpfr_set* description.
1905
1906	Thanks to Rob for noticing:
1907	  https://sympa.inria.fr/sympa/arc/mpfr/2021-09/msg00003.html
1908
1909	The cause is a sentence that was inserted at the wrong place in r8225
1910	(2012-06-25).
1911
19122021-09-14  Vincent Lefèvre  <vincent@vinc17.net>
1913
1914	[src/inp_str.c] Added a FIXME on a deprecated use of ungetc.
1915
19162021-09-13  Vincent Lefèvre  <vincent@vinc17.net>
1917
1918	Autoconf / AX_PTHREAD related update and cleanup.
1919
1920	* m4/ax_pthread.m4: update to AX_PTHREAD 31, fixing a change
1921	  from AX_PTHREAD 29, which has eventually been regarded as
1922	  a bug (workaround in r14481).
1923	* configure.ac: removed the now unneeded AC_CANONICAL_TARGET;
1924	  updated the corresponding comment.
1925
19262021-09-09  Vincent Lefèvre  <vincent@vinc17.net>
1927
1928	[TODO] More about intrinsics (e.g. _addcarry_u64).
1929
1930	[TODO] + use intrinsics when available (needs a configure test).
1931
19322021-09-07  Vincent Lefèvre  <vincent@vinc17.net>
1933
1934	[tests/tests.c] In a comment with a GMP_CHECK_RANDOMIZE value, mention
1935	the SVN revision and date, as this value may no longer be valid in the
1936	future (when tests are added or changed).
1937
1938	[tests/tests.c] Fixed bad_cases when y is ±0 (rare case).
1939
19402021-08-23  Vincent Lefèvre  <vincent@vinc17.net>
1941
1942	[doc/README.dev] Updated/reduced note about MinGW and stdio.
1943
19442021-08-23  Vincent Lefèvre  <vincent@vinc17.net>
1945
1946	[INSTALL] Updated information about MinGW and the formatted output
1947	functions (printf, etc.).
1948
1949	Thanks to Pali Rohár for the information about -std=c89.
1950
19512021-08-23  Vincent Lefèvre  <vincent@vinc17.net>
1952
1953	[tests/tget_set_d128.c] Removed a useless C99 comment, which makes
1954	the MPFR build fail with "i686-w64-mingw32-gcc -std=c89" (e.g. via
1955	./configure --host=i686-w64-mingw32, and -std=c89 in CFLAGS).
1956
1957	[tests/tsprintf.c] In locale_da_DK(), also try da_DK.utf8 (preferably):
1958	in Debian/unstable, da_DK no longer exists.
1959
19602021-08-20  Vincent Lefèvre  <vincent@vinc17.net>
1961
1962	[doc/mpfr.texi] Updated the month.
1963
1964	[doc/mpfr.texi] Corrected latest change (typography).
1965
1966	[doc/mpfr.texi] Detail the mpfr_min and mpfr_max description.
1967
19682021-08-03  Vincent Lefèvre  <vincent@vinc17.net>
1969
1970	[tests/tget_flt.c] Avoid a warning about unused function equal_flt
1971	when HAVE_SUBNORM_FLT is not defined.
1972
1973	[tests/tget_flt.c] Code style: replaced "… == 0" by "! …" on
1974	the Boolean _p functions.
1975
19762021-08-03  Vincent Lefèvre  <vincent@vinc17.net>
1977
1978	[tests/tget_flt.c] Removed bug_icx (duplicate test).
1979
1980	What was tested was just mpfr_get_flt on a NaN mpfr_t. But this was
1981	already tested in main(). And one gets the same result and error with
1982	icx (without -fp-model=strict). Moreover, the old test was correctly
1983	protected by "#if !defined(MPFR_ERRDIVZERO)", needed because NaN is
1984	defined by 0.0 / 0.0.
1985
19862021-08-03  Vincent Lefèvre  <vincent@vinc17.net>
1987
1988	[tests/tget_flt.c] In bug_icx: replaced mpfr_set_flt, whose float
1989	argument was yielding an underflow (not portable), by mpfr_set_si_2exp
1990	(it is mpfr_get_flt that is tested, not mpfr_set_flt).
1991
1992	[tests/tget_flt.c] Added FIXME for test added in r14552.
1993
1994	[tests/tget_flt.c] Portability correction.
1995
19962021-08-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
1997
1998	need -fp-model=strict for icx
1999
20002021-07-27  Vincent Lefèvre  <vincent@vinc17.net>
2001
2002	[TODO] Mention "[[noreturn]]".
2003
20042021-07-15  Vincent Lefèvre  <vincent@vinc17.net>
2005
2006	[src/ieee_floats.h] URL update (http → https).
2007
20082021-07-01  Vincent Lefèvre  <vincent@vinc17.net>
2009
2010	[tools/mpfrlint] Detect when the return value of fclose() or fflush()
2011	is compared with -1 instead of EOF.
2012
20132021-06-30  Vincent Lefèvre  <vincent@vinc17.net>
2014
2015	[tests/tprintf.c] Portability correction (EOF is not necessarily -1).
2016
20172021-06-21  Vincent Lefèvre  <vincent@vinc17.net>
2018
2019	Punctuation (missing comma after "however").
2020
2021	[doc/README.dev] No longer use /tmp in examples so that the reader is
2022	not encouraged to use it. Punctuation.
2023
20242021-06-08  Vincent Lefèvre  <vincent@vinc17.net>
2025
2026	[acinclude.m4] Fixed subnormal detection (issue found with icx).
2027
20282021-06-03  Vincent Lefèvre  <vincent@vinc17.net>
2029
2030	[tests/tget_d.c] Improved error messages.
2031
20322021-06-03  Vincent Lefèvre  <vincent@vinc17.net>
2033
2034	[tests/tget_d.c] Error message when check_inf_nan() fails for NaN.
2035
2036	Note: With "icx -O2" (at least), 8 tests are now failing with
2037	Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317).
2038	But no failures when the compiler is invoked as "clang".
2039
20402021-06-02  Vincent Lefèvre  <vincent@vinc17.net>
2041
2042	[doc/mpfr.texi] Updated the month.
2043
20442021-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2045
2046	[doc/mpfr.texi] some figures about slowdown with C++ interface
2047
20482021-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2049
2050	[tests/data/j1] added more tests
2051
2052	[tests/tests.c] fixed bug introduced in r13787, which invalidated data_check
2053	in some cases
2054
20552021-05-20  Vincent Lefèvre  <vincent@vinc17.net>
2056
2057	[doc/mpfr.texi] Completed mpfr_fmodquo and mpfr_remquo description.
2058
2059	[src/rem1.c] Improved comments.
2060
20612021-05-17  Vincent Lefèvre  <vincent@vinc17.net>
2062
2063	[tests/tsprintf.c] Cosmetic revert of blank line removal in r14519.
2064
20652021-05-17  Vincent Lefèvre  <vincent@vinc17.net>
2066
2067	[src/vasprintf.c] Fixed buffer_cat: replaced incorrect assertion len > 0
2068	by a test.
2069
2070	Note that len == 0 is possible when outputting an integer 0 (either a
2071	native one or mpfr_prec_t) with precision field = 0. The consequence
2072	of this bug:
2073	  * In debug mode (MPFR_ASSERTD assertion checking), one would get an
2074	    assertion failure.
2075	  * Otherwise, there should be no side effects since the code was valid
2076	    for len == 0, possibly except with LTO (very unlikely, though).
2077
2078	This incorrect assertion was added on 2009-03-13 in r6099.
2079
20802021-05-17  Vincent Lefèvre  <vincent@vinc17.net>
2081
2082	[tests/tsprintf.c] Similarly to r14514, added tests of native integer 0
2083	with precision field 0 (also yields a call to buffer_cat with len = 0).
2084
2085	[tests/tsprintf.c] For various test functions, changed the return type
2086	from int to void (when the value is never used).
2087
20882021-05-16  Vincent Lefèvre  <vincent@vinc17.net>
2089
2090	[src/vasprintf.c] Updated comment about the output for the 'a'/'A'
2091	conversion specifier.
2092
2093	[doc/mpfr.texi] Formatted output functions (mpfr_*printf): completed
2094	the specification concerning the precision (this was needed because
2095	the conversion specifier 'b' does not exist in C).
2096
20972021-05-12  Vincent Lefèvre  <vincent@vinc17.net>
2098
2099	[src/vasprintf.c] Added a comment about the output for the 'a'/'A'
2100	conversion specifier, which is completely unintuitive. FIXME?
2101
2102	[doc/mpfr.texi] Punctuation.
2103
2104	[tests/tsprintf.c] Added tests of specifier 'P' with precision field 0.
2105
21062021-05-11  Vincent Lefèvre  <vincent@vinc17.net>
2107
2108	[TODO] More about mpfr_fda / mpfr_fds.
2109
2110	[TODO] + Fused divide-add and fused divide-subtract (mpfr_fda, mpfr_fds).
2111
21122021-05-03  Vincent Lefèvre  <vincent@vinc17.net>
2113
2114	[doc/mpfr.texi,src/mpfr.h] Detail about the mpfr_pown implementation.
2115
21162021-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2117
2118	[NEWS] added missing mpfr_pown (alias for mpfr_pow_sj)
2119
2120	[manual] added mpfr_powm in NEWS
2121	(https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00000.html)
2122
21232021-05-03  Vincent Lefèvre  <vincent@vinc17.net>
2124
2125	[doc/mpfr.texi] Updated the month (due to r14505).
2126
21272021-04-30  Vincent Lefèvre  <vincent@vinc17.net>
2128
2129	[src/sin.c] Added a TODO about range reduction.
2130
21312021-04-26  Vincent Lefèvre  <vincent@vinc17.net>
2132
2133	[tests/tstrtofr.c] Check more infinity strings.
2134
21352021-04-26  Vincent Lefèvre  <vincent@vinc17.net>
2136
2137	[doc] Update about "case insensitive" and issue with Turkish locales
2138	for "I" / "i".
2139
2140	  * mpfr.texi: added "with the rules of the C locale" in the
2141	    mpfr_strtofr description.
2142	  * README.dev: completed information about Turkish locales.
2143
21442021-04-24  Vincent Lefèvre  <vincent@vinc17.net>
2145
2146	[tests/tpowr.c] Added generic tests.
2147
2148	[src/exceptions.c] Corrected latest comment.
2149
21502021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2151
2152	[src/exceptions.c] Replaced comment about logging (the issue was due to
2153	the mpfr_check_range macro).
2154
2155	[src/exceptions.c] Completed comment about a logging issue.
2156
2157	[src/exceptions.c] Added a comment about a logging issue.
2158
2159	[src/mpfr-impl.h] Logging: output the flags at "IN" and "OUT".
2160
2161	[tests/tsgn.c] Also test in a very reduced exponent range.
2162
2163	[tests/tsgn.c] Also test the flags.
2164
21652021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2166
2167	[src/get_str.c] Fixed bug in mpfr_get_str_ndigits introduced in r14494.
2168
2169	Note: the issue (an uninitialized variable) was detected by GCC 6.5.0;
2170	recent GCC versions miss the -Wmaybe-uninitialized warning.
2171
21722021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2173
2174	mpfr_get_str_ndigits: added an assertion / exploitable compiler hint.
2175
2176	[src/get_str.c] Improved mpfr_get_str_ndigits code structure.
2177
21782021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2179
2180	In various functions, use mpfr_equal_p() instead of mpfr_cmp() == 0.
2181
2182	Note: In these cases, the test should be false if one of the arguments
2183	is NaN (it is not always clear whether NaN is impossible, but just in
2184	case, mpfr_equal_p is safer, in particular if the code around changes;
2185	and this is more readable too).
2186
21872021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2188
2189	[src/get_str.c] Use mpfr_equal_p() instead of mpfr_cmp() == 0.
2190
2191	[tests] Added tpowr to svn:ignore property.
2192
21932021-04-23  Vincent Lefèvre  <vincent@vinc17.net>
2194
2195	Fixed bug in mpfr_get_str_ndigits.
2196
2197	* src/get_str.c: use MPFR_SAVE_EXPO_MARK / MPFR_SAVE_EXPO_FREE to fix
2198	  2 issues in mpfr_get_str_ndigits: the inexact flag could be raised
2199	  (bug reported by Pierre Chatelier[*]); undefined behavior in a very
2200	  reduced exponent range.
2201	* tests/tget_str.c: check the above issues in the tests.
2202
2203	[*] https://sympa.inria.fr/sympa/arc/mpfr/2021-04/msg00000.html
2204
22052021-04-16  Vincent Lefèvre  <vincent@vinc17.net>
2206
2207	[src/mpfr-impl.h] Added cast to int for __LINE__ in formatted output.
2208
2209	The standard just says that __LINE__ in an integer constant. So its
2210	type might be larger than int, even though the value is representable
2211	in an int (like in MPFR). This concerns logging code, only available
2212	for GCC compatible compilers, so that there should not be any issue
2213	without the cast, but just in case...
2214
22152021-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2216
2217	[tests/thypot.c] added one test
2218
22192021-03-19  Vincent Lefèvre  <vincent@vinc17.net>
2220
2221	Added m4/ax_pthread.m4 file, and related updates.
2222
2223	Added m4/ax_pthread.m4 from
2224	  https://github.com/autoconf-archive/autoconf-archive
2225	and updated:
2226	  * acinclude.m4 (in particular, set CXX and CXXFLAGS)
2227	  * doc/README.dev
2228
22292021-03-19  Vincent Lefèvre  <vincent@vinc17.net>
2230
2231	[configure.ac] Avoid an issue with ordering of macros we don't use
2232	explicitly, which appears with ax_pthread.m4 29, i.e. with
2233	  https://github.com/autoconf-archive/autoconf-archive/commit/2567e0ce0f3a11b535c6b527386197fb49ff172b
2234
22352021-03-18  Vincent Lefèvre  <vincent@vinc17.net>
2236
2237	[acinclude.m4] Added a comment about AX_PTHREAD.
2238
22392021-03-18  Vincent Lefèvre  <vincent@vinc17.net>
2240
2241	Get rid of obsolescent AC_HEADER_TIME. Cleanup about sys/time.h usage.
2242
2243	The AC_HEADER_TIME macro is obsolescent in autoconf 2.69 (2012),
2244	and autoconf 2.71 (2021) outputs a warning, which makes autogen.sh
2245	fail due to "--warnings=all,error", so let's avoid the warnings.
2246	This macro defines TIME_WITH_SYS_TIME, used only in tests/tests.c
2247	(but actually not needed). We actually have two cases:
2248	  1. HAVE_GETTIMEOFDAY is defined: we use gettimeofday(), which
2249	     needs <sys/time.h>.
2250	  2. Otherwise: we use time(), which needs <time.h>.
2251
2252	Based on that, we can simplify the condition in tests/tests.c for
2253	the inclusion of time-related headers, and we no longer need to
2254	check the <sys/time.h> availability. If gettimeofday() is defined
2255	but <sys/time.h> is not available (which shouldn't occur), then
2256	the current gettimeofday() usage may be incorrect anyway.
2257
2258	Changes:
2259	  * acinclude.m4:
2260	      - no longer use AC_HEADER_TIME;
2261	      - no longer check the sys/time.h header.
2262	  * tests/tests.c: simplify the inclusion of time-related headers.
2263
22642021-03-18  Vincent Lefèvre  <vincent@vinc17.net>
2265
2266	[tools/mpfrlint] Detect mpn_mul_n with identical 2nd and 3rd arguments,
2267	which can be replaced by the faster mpn_sqr.
2268
22692021-03-16  Vincent Lefèvre  <vincent@vinc17.net>
2270
2271	Replaced "intensional" by "intentional" in comments.
2272
2273	Untabify and remove trailing spaces.
2274
22752021-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2276
2277	[src/rec_sqrt.c] replace a call to mpn_mul_n with identical arguments by
2278			 a call to mpn_sqr + similar changes in other files
2279			 (thanks Fredrik Johansson)
2280
2281	[tests/trec_sqrt.c] added timing test
2282
22832021-03-09  Vincent Lefèvre  <vincent@vinc17.net>
2284
2285	[doc/mpfr.texi] Updated the month.
2286
2287	[src/mpfr.h] Comment: no need to write "user" with uppercase letters.
2288
22892021-03-08  Vincent Lefèvre  <vincent@vinc17.net>
2290
2291	[tests/{tset_si.c,tset_sj.c}] Fix when -DMPFR_USE_NO_MACRO is used.
2292
2293	The mpfr_get_exp() function checks that the argument is a regular
2294	number, but the corresponding macro doesn't. The test code was
2295	calling mpfr_get_exp() on 0, thus failed with MPFR_USE_NO_MACRO
2296	defined. Here, the code was correct with the macro, because the
2297	value was not used for the particular case 0.
2298
2299	This is fixed by testing 0 earlier (and doing a goto, but the code
2300	has fewer tests and should be simpler to understand). Moreover,
2301	mpfr_get_exp has been replaced by MPFR_GET_EXP, so that the argument
2302	is checked with --enable-assert.
2303
23042021-03-08  Vincent Lefèvre  <vincent@vinc17.net>
2305
2306	[tests/{texceptions.c,tset_exp.c}] Forgot to protect the tests with
2307	casts to "void *", invalid in C++ (completing r14460 and r14461).
2308
23092021-03-08  Vincent Lefèvre  <vincent@vinc17.net>
2310
2311	Clarification about the custom interface and macros.
2312
2313	* doc/mpfr.texi: added some text in Section "Custom Interface".
2314	* src/mpfr.h: replaced the remaining FIXME by another comment.
2315
23162021-03-08  Vincent Lefèvre  <vincent@vinc17.net>
2317
2318	[tests] Ignore GCC's -Wc++-compat in the tests that are invalid in C++
2319	(these tests are enabled only if __cplusplus is not defined).
2320
23212021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2322
2323	[tests] In C++, do not cast to "void *" in the tests of macros.
2324
2325	These casts make the build of these tests fail with a C++ compiler.
2326	But this means that the use of macros will not introduce any issue
2327	concerning the type of the arguments, i.e. with a C++ compiler, the
2328	tests are still complete after this change.
2329
2330	However, GCC's -Werror=c++-compat still cannot be used.
2331	To avoid this issue, diagnostic pragmas will be needed.
2332
23332021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2334
2335	[src/mpfr.h] Fixed mpfr_set macro (now only available with __GNUC__).
2336
23372021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2338
2339	[tests/tset.c] Added tests of the mpfr_set macro.
2340
2341	Without MPFR_USE_NO_MACRO, the compilation currently fails because
2342	the second argument is not converted to mpfr_srcptr when MPFR_SIGN
2343	is applied.
2344
23452021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2346
2347	[src/mpfr.h] Fixed mpfr_copysign and mpfr_signbit macros.
2348
23492021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2350
2351	Added tests of mpfr_copysign, mpfr_setsign and mpfr_signbit macros.
2352
2353	Without MPFR_USE_NO_MACRO, the compilation of these tests in tcopysign.c
2354	currently fails because some arguments are not converted to mpfr_srcptr.
2355
23562021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2357
2358	[src/ubf.c] Forgot a cast from UBF pointer to mpfr_t pointer.
2359
2360	This became visible with the fix of the mpfr_get_prec macro in r14454.
2361
23622021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2363
2364	[src/mpfr.h] Fixed mpfr_get_prec and mpfr_get_exp macros.
2365
23662021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2367
2368	Added tests of mpfr_get_prec and mpfr_get_exp macros.
2369
2370	Without MPFR_USE_NO_MACRO, the compilation of these tests
2371	in texceptions.c and tset_exp.c currently fails because
2372	the argument is not converted to mpfr_srcptr.
2373
23742021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2375
2376	[src/mpfr.h] Better implementation of macros changed in r14451.
2377	__GNUC__ is no longer needed.
2378
23792021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2380
2381	[src/mpfr.h] Fixed some macros implementing functions.
2382
2383	Macros mpfr_nan_p, mpfr_inf_p, mpfr_zero_p and mpfr_regular_p were
2384	incorrect since they yielded a compilation error when the argument
2385	was of type void *, for instance. Their definition as macros is now
2386	available only with __GNUC__.
2387	The tisnan test r14448 should no longer fail.
2388
2389	Also added a comment for mpfr_sgn, which is correct since documented
2390	as a macro.
2391
23922021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2393
2394	[tests/tisnan.c] Added commented code for testing compilation errors.
2395
23962021-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2397
2398	[src/mpfr.h] fixed typo
2399
24002021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2401
2402	[tests/tisnan.c] Check that when mpfr_nan_p, mpfr_inf_p, mpfr_number_p,
2403	mpfr_zero_p and mpfr_regular_p is implemented as a macro, it behaves
2404	like a function.
2405
2406	[src/mpfr.h] Added a comment and a FIXME for functions implemented
2407	as macros.
2408
24092021-03-06  Vincent Lefèvre  <vincent@vinc17.net>
2410
2411	Reverted r14445: This is about functions implemented as macros, and
2412	in this case, a macro must behave like a function.
2413
2414	In particular, each argument must be evaluated one time exactly.
2415	Macros that behave differently will need to be fixed.
2416
2417	Tests should also be added like the one in tests/tset_si.c with the
2418	comment:
2419
2420	  /* Note: the ++'s below allow one to check that the corresponding
2421	     arguments are evaluated only once by the macros. */
2422
24232021-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2424
2425	[doc/mpfr.texi] document that functions defined as macros might evaluate
2426			their arguments several times
2427	(see https://sympa.inria.fr/sympa/arc/mpfr/2021-03/msg00007.html)
2428
2429	[src/mpfr.h] fixed typo
2430
24312021-03-04  Vincent Lefèvre  <vincent@vinc17.net>
2432
2433	[TODO] Clarification.
2434
2435	[TODO] Updated item on pkg-config due to a bug in pkg-config.
2436
2437	[TODO] Added "add some option to use pkg-config...".
2438
24392021-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2440
2441	[src/invsqrt_limb.h] use "unsigned short" for table T[] instead of mp_limb_t.
2442	On araignee.loria.fr, this saves about 1 cycle, when GMP 6.2.1 and MPFR are
2443	configured with --disable-shared, using mbench.
2444
2445	Before this change (medium of 5 runs, with turbo-boost disabled):
2446	$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
2447	 mpfr_sqrt:         48 /    53.39 /    60
2448	$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
2449	 mpfr_sqrt:         75 /    81.44 /    89
2450
2451	After this change:
2452	$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
2453	 mpfr_sqrt:         48 /    52.37 /    60
2454	$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
2455	 mpfr_sqrt:         75 /    80.27 /    88
2456
24572021-02-15  Vincent Lefèvre  <vincent@vinc17.net>
2458
2459	[tests/mpfr-test.h] Added mpfr_cmp_si_2exp0 macro (check NaN).
2460	[tests/tj1.c] Replaced mpfr_cmp_si_2exp by mpfr_cmp_si_2exp0.
2461
2462	[tests/tdigamma.c] Use mpfr_cmp_ui0 to detect NaN.
2463
2464	[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.
2465
24662021-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2467
2468	[src/jyn_asympt.c] fixed bug when s=0 at the end of the for loop
2469	[tests/tj1.c] added corresponding non-regression test
2470
2471	[src/digamma.c] fixed a bug in mpfr_digamma_reflection when the approximations
2472			of Digamma(1-x) and Pi*cot(Pi*x) cancel exactly
2473	[tests/tdigamma.c] added corresponding non-regression test
2474
2475	renamed mpfr_compound to mpfr_compound_si, since in C2X, compoundn takes
2476	an intmax_t and not a long, thus we can later implement mpfr_compoundn
2477	taking as input an intmax_t
2478
24792021-02-10  Vincent Lefèvre  <vincent@vinc17.net>
2480
2481	[tests/texpm1.c] Improved special tests.
2482
24832021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2484
2485	[src/pow_sj.c] removed spurious comment
2486
24872021-02-09  Vincent Lefèvre  <vincent@vinc17.net>
2488
2489	[src/{pow_sj.c,pow_uj.c}] Added missing "#ifdef _MPFR_H_HAVE_INTMAX_T".
2490
2491	[doc/mpfr.texi] General cleanup, in particular related to the IEEE 754
2492	standard. Added IEEE Standard 754-2019 to the references.
2493
2494	[src/pow_{si,sj,ui,uj}.c] Fixed logging for mpfr_pow_{sj,uj}.
2495
2496	[src/pow_uj.c] untabify
2497
2498	[tests/tpow.c] Replaced mpfr_cmp_ui by versions that can detect NaN.
2499	Note: this is particularly important to check that pow(NaN,0) returns 1,
2500	not NaN.
2501
2502	[src/pow_uj.c] Some corrections in the mpfr_mpz_set_uj helper function,
2503	still with limitations (which could be avoided by sharing code with
2504	mpfr_set_uj_2exp).
2505
25062021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2507
2508	forgot to commit those files
2509
2510	added mpfr_powr
2511
25122021-02-09  Vincent Lefèvre  <vincent@vinc17.net>
2513
2514	[src/{pow_si.c,pow_ui.c}] untabify
2515
25162021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2517
2518	added mpfr_pow_uj and mpfr_pow_sj
2519	now mpfr_pown is an alias for mpfr_pow_sj
2520
25212021-02-09  Vincent Lefèvre  <vincent@vinc17.net>
2522
2523	[doc/mpfr.texi,src/mpfr.h] Added a FIXME for mpfr_pown, which should
2524	be an alias of mpfr_pow_sj (not implemented yet) to follow ISO C2x,
2525	where pown is defined with intmax_t n.
2526
25272021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2528
2529	added mpfr_pown (alias for mpfr_pow_si)
2530
25312021-02-08  Vincent Lefèvre  <vincent@vinc17.net>
2532
2533	[src/mpfr.h] Updated comments on the types for mpfr_prec_t/mpfr_exp_t.
2534
2535	  * For mpfr_prec_t, removed the comment saying that under Windows 64,
2536	    "long long" could be used (this would imply that mpfr_prec_t and
2537	    mpfr_exp_t will not fit in a long, and this is not supported yet,
2538	    see below).
2539
2540	  * For mpfr_exp_t and _MPFR_EXP_FORMAT == 4, changed an unclear note
2541	    and added other information; in particular, this value is currently
2542	    not supported since the MPFR code assumes that mpfr_exp_t fits in a
2543	    long.
2544
25452021-02-08  Vincent Lefèvre  <vincent@vinc17.net>
2546
2547	[tests] Added texp2m1 and texp10m1 to svn:ignore property.
2548
2549	[src/jyn_asympt.c] Use mpfr_set4 instead of mpfr_set or mpfr_neg.
2550
2551	[tests/tj0.c] Latest test: also check the flags.
2552
2553	[src/digamma.c] Added a comment about the bug fixed in r14399.
2554
2555	[tests/tdigamma.c] Latest test: also check the flags.
2556
2557	[tests/tdigamma.c] Moved the r14399 test to its own test function.
2558	Note: for this one, there is no need to use the maximum exponent range.
2559
2560	[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.
2561
25622021-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2563
2564	[src/jyn_asympt.c] fixed bug when sin(z)+cos(z) or sin(z)-cos(z) round to 0
2565	[tests/tj0.c] added corresponding non-regression test
2566
2567	[src/digamma.c] fixed bug in mpfr_digamma_positive when t-u is zero
2568	[tests/tdigamma.c] added corresponding non-regression test
2569
25702021-02-08  Vincent Lefèvre  <vincent@vinc17.net>
2571
2572	[src/digamma.c] Fix: increased GUARD from 20 to 30.
2573	[tests/tdigamma.c] Added 2 precisions for which GUARD=20 is not
2574	sufficient, yielding a "too much memory" error.
2575
25762021-02-07  Vincent Lefèvre  <vincent@vinc17.net>
2577
2578	[src/digamma.c] Punctuation in a comment.
2579
25802021-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2581
2582	[src/digamma.c] fixed bug20210206
2583
25842021-02-06  Vincent Lefèvre  <vincent@vinc17.net>
2585
2586	[src/digamma.c] Added a FIXME for mpfr_digamma_positive: q can be
2587	too large, e.g. equal to the maximum exponent!
2588
2589	[src/digamma.c] In mpfr_digamma_positive, log the value of q.
2590
2591	[src/digamma.c] In mpfr_digamma_positive, do not compute the precision q
2592	until we are certain that it will be used.
2593
2594	[src/digamma.c] In mpfr_digamma_positive, added an assertion, as a
2595	precision is set from the exponent of x, and I suppose that it may
2596	be larger than MPFR_PREC_MAX when mpfr_exp_t > mpfr_prec_t.
2597
2598	[tests/tdigamma.c] Added testcase for a bug found by test_generic.
2599
2600	[tests/tgeneric.c] Added debug info.
2601
26022021-02-05  Vincent Lefèvre  <vincent@vinc17.net>
2603
2604	[src/exp2m1.c] Use block-level flags.
2605
26062021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2607
2608	added new function mpfr_exp10m1
2609
2610	[tests/texp2m1.c] added a test for exact values
2611
26122021-02-05  Vincent Lefèvre  <vincent@vinc17.net>
2613
2614	[TODO] Added mpfr_mul_uj and mpfr_mul_sj.
2615
2616	[src/log.c] Optimization: avoid a temporary variable for a*2^m;
2617	use an alias to a instead. In corner cases, this could yield a
2618	new internal TMD for the mpfr_div when the precision of a is
2619	very large, but this is avoided by changing the RNDN to RNDF.
2620	The error bound of 2 ulp on the mpfr_div should still be valid
2621	(it should now actually be 1 ulp).
2622
26232021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2624
2625	added new function mpfr_exp2m1 for 2^x-1
2626
26272021-02-05  Vincent Lefèvre  <vincent@vinc17.net>
2628
2629	[tests/tversion.c] Fixed length modifier in error messages.
2630
2631	[src/log10p1.c] In mpfr_log10p1_small: an "else" case is better than
2632	a "goto"; do not initialize inex to an arbitrary value.
2633
2634	[src/compound.c] Exact cases: additional detail in the comment.
2635
2636	[src/compound.c] Exact cases: this is simpler without a separate
2637	function (the t = 0 was artificial). Added full explanations.
2638
26392021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2640
2641	[src/compound.c] removed FIXME corresponding to previous commit
2642
2643	[src/compound.c] fixed infinite loop for exact results like compound(0.5,2)
2644			 which are not powers of 2
2645
26462021-02-05  Vincent Lefèvre  <vincent@vinc17.net>
2647
2648	[src/compound.c] Fixed 2 issues with mpfr_compound_near_one:
2649	  * this function must be called in the extended exponent range,
2650	    to be sure that 1 is representable;
2651	  * it wasn't setting the inexact flag, and this is now done via
2652	    mpfr_check_range.
2653
2654	[src/compound.c] Added missing MPFR_ZIV_FREE before the "return" in
2655	the Ziv loop.
2656
2657	[tests/tcompound.c] Added generic tests with n = 2 and n = 3.
2658	They trigger a failure: bad inexact flag for mpfr_compound2.
2659
2660	[src/compound.c] Added a FIXME: possible infinite loop when the result
2661	is exact.
2662
2663	[src/compound.c] Optimize the easy case n = 1.
2664
2665	[src/compound.c] Special cases: fixed compound(-Inf,0) and improved
2666	comments.
2667
2668	[tests/tcompound.c] More tests of compound(x,n) for x < -1, showing
2669	a failure on compound(-Inf,0).
2670
2671	[doc/README.dev] Note that the logging feature (--enable-logging)
2672	needs GCC to build MPFR, and it is not available with mini-gmp,
2673	since mpfr_fprintf cannot be defined with mini-gmp.
2674
26752021-02-04  Vincent Lefèvre  <vincent@vinc17.net>
2676
2677	[tests/tcompound.c] Fixed a test in the case mpfr_exp_t < long.
2678
2679	[tests/tcompound.c] Corrected an error message.
2680
2681	[src/compound.c] Fixed bug found by clang:
2682	compound.c:32:29: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
2683	  if (rnd_mode == MPFR_RNDN || MPFR_RNDF
2684	                            ^  ~~~~~~~~~
2685
2686	[tests/tatan2u.c] Fixed a bug (as of C99, for *decimal* constants, one
2687	must use a suffix that contains "U" if the constant cannot be signed).
2688
2689	[tests/tcompound.c] Corrected the conditions of a test for machines
2690	with 32-bit long. Added comments.
2691
2692	[tests] Added tlog10p1 to svn:ignore property.
2693
2694	[tests/tatan2u.c] Improved comment in bug20210203 about type sizes.
2695
2696	[tests/tatan2u.c] Make sure that the bug20210203 test is run only
2697	when the value for u is representable.
2698
26992021-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2700
2701	[TODO] added section number
2702
2703	[src/compound.c] fixed case n < 0 and underflow
2704	[tests/tcompound.c] added corresponding non-regression tests
2705
2706	compound(NaN,0) is 1
2707
27082021-02-04  Vincent Lefèvre  <vincent@vinc17.net>
2709
2710	[src/compound.c] Correction for n = LONG_MIN. Added FIXMEs.
2711
27122021-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2713
2714	[tests/tcompound.c] fixed comment
2715
27162021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2717
2718	[src/atan2u.c] fixed error analysis
2719
27202021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2721
2722	[src/compound.c] Portability.
2723
2724	[tests/tatan2u.c] Make sure that 64-bit constants are supported before
2725	using one.
2726
2727	[src/log10p1.c] Improved checking / debugging support.
2728
27292021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2730
2731	[tests/tatan2u.c] added a test which currently fails
2732
2733	[src/log2p1.c] added note about underflow
2734
2735	added a new function mpfr_log10p1 to compute log10(1+x)
2736
2737	[tests/tlog2p1.c] set the precision locally to one test
2738
2739	[doc/mpfr.texi] document atan2u and atan2pi
2740
27412021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2742
2743	[doc/mpfr.texi] Typography.
2744
2745	[doc/mpfr.texi] In Section "Added Functions", do not put the patchlevel
2746	in MPFR versions (changed "4.2.0" to "4.2").
2747
2748	[src/log2p1.c] Bug fix: memory accessed after it is cleared.
2749
2750	[src/log2p1.c] More logging.
2751
27522021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2753
2754	[doc/mpfr.texi] document mpfr_compound
2755
27562021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2757
2758	[src/set_prec.c] Log the precision.
2759
27602021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2761
2762	[src/compound.c] completed the general case
2763	[tests/tcompound.c] added one hard-coded test
2764
27652021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2766
2767	[tests] Added tcompound and tlog2p1 to svn:ignore property.
2768
2769	[tests/tlog2p1.c] Use mpfr_cmp_si0 to detect NaN.
2770
2771	[tests/tcompound.c] Do not use mpfr_printf in the tests.
2772
27732021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2774
2775	[src/log2p1.c] use ULSIZE as in atan2u.c
2776
2777	[src/atan2u.c] better explain the choice of prec in mpfr_atan2u_aux3
2778
27792021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2780
2781	[src/compound.c] Fixed logging.
2782
27832021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2784
2785	[src/atan2u.c] simplified code
2786
27872021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2788
2789	[src/atan2u.c] Support unsigned long != 64-bit type. Avoid a warning.
2790
27912021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2792
2793	[tests/tlog2p1.c] added tests for exact cases
2794
2795	added log2p1 and compound (mpfr_compound is not finished yet)
2796
2797	[src/log1p.c] fixed comment
2798
2799	[src/atan2u.c] deal with underflow and overflow in y/x
2800
28012021-02-03  Vincent Lefèvre  <vincent@vinc17.net>
2802
2803	[src/atan2u.c] Added a FIXME: the code is incorrect if y/x yields
2804	an overflow or an underflow.
2805
2806	[src/atan2u.c] Fixed 2 bugs in mpfr_atan2u_aux2. Minor changes.
2807
2808	[src/atan2u.c] Minor corrections in comments.
2809
28102021-02-02  Vincent Lefèvre  <vincent@vinc17.net>
2811
2812	[tests] Added tatan2u and tatanu to svn:ignore property.
2813
2814	[tests/tatan2u.c] Do not use mpfr_printf in the tests.
2815
2816	[src/atan2u.c] Use MPFR_RET_NEVER_GO_HERE.
2817
2818	[tests]
2819	  * tgeneric.c: cleanup about the type of the arguments; added support
2820	    for functions with 3 arguments (x1,x2,u), such as mpfr_atan2u.
2821	  * tatan2u.c: enabled the generic tests (test_generic).
2822
28232021-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2824
2825	[src/atan2u.c] fixed atan2u with respect to the four quadrants
2826	[tests/tatan2u.c] added corresponding non-regression tests
2827
2828	added mpfr_atan2u (work in progress)
2829
2830	[src/atanu.c] fixed bug for u=0
2831	[tests/tatanu.c] added non-regression test case
2832
28332021-02-02  Vincent Lefèvre  <vincent@vinc17.net>
2834
2835	Changed "plus/minus infinity" to "positive/negative infinity".
2836
2837	[tools/mpfrlint] In the "+/- infinity" test (just added), also check
2838	the doc/algorithms.tex file.
2839
2840	[tools/mpfrlint] Added a test for the use of "plus/minus infinity"
2841	instead of "positive/negative infinity".
2842
2843	[doc/mpfr.texi] Minor corrections related to infinity. The IEEE 754-2019
2844	standard says "positive/negative infinity", not "plus/minus infinity".
2845
28462021-02-01  Vincent Lefèvre  <vincent@vinc17.net>
2847
2848	[doc/mpfr.texi] Typos.
2849
2850	[{src,tests}/Makefile.am] Untabified values of variables to avoid
2851	wrapping in diffs on 80 columns.
2852
28532021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2854
2855	[TODO] asinpi, acospi and atanpi are done (and their *u variants)
2856
2857	[src/atanu.c] added comment
2858
2859	[src/acosu.c] simplified the code when x is tiny
2860
2861	added mpfr_atanu and mpfr_atanpi
2862
28632021-02-01  Vincent Lefèvre  <vincent@vinc17.net>
2864
2865	[doc/mpfr.texi] Correction about mpfr_get_* and NaN.
2866
28672021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2868
2869	[src/asinu.c] improved a comment
2870
2871	[src/asinu.c] fixed typo
2872
2873	[src/asinu.c] resolved FIXME
2874	[tests/tasinu.c] added more underflow tests
2875
28762021-02-01  Vincent Lefèvre  <vincent@vinc17.net>
2877
2878	[src/set_ld.c] Replaced a useless goto.
2879
2880	Code readability.
2881
28822021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2883
2884	[src/set_ld.c] added comment about LONGDOUBLE_NAN_ACTION
2885
28862021-02-01  Vincent Lefèvre  <vincent@vinc17.net>
2887
2888	[doc/mpfr.texi] Typography.
2889
2890	[doc/mpfr.texi] Updated the month.
2891
28922021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2893
2894	[src/get_ld.c] forgot get_ld in previous commit
2895
2896	make it clear that we don't propagate the sign bit in mpfr_get_d and mpfr_set_d
2897	and similar functions for binary32, decimal64 and binary128
2898
2899	added asinu and asinpi
2900
2901	[src/asinu.c] return NaN for u=0 and |x| > 1
2902	[tests/tasinu.c] added more tests
2903
2904	[src/acosu.c] for u=0 and |x| > 1, return NaN
2905	[tests/tacosu.c] added corresponding test
2906
29072021-01-31  Vincent Lefèvre  <vincent@vinc17.net>
2908
2909	[tests] Use RND_LOOP.
2910	Changes with:
2911	  perl -pi -e 's/^( *)for *\((\w+) *= *0 *; *\2 *< *MPFR_RND_MAX *; *\2 *\+\+\) *$/\1RND_LOOP (\2)/' *.c
2912
2913	[tests] Added tacosu and tasinu to svn:ignore property.
2914
2915	[tests/mpfr-test.h] Added mpfr_cmp_si0 macro (check NaN).
2916	[tests/tasinu.c] Replaced mpfr_cmp_ui / mpfr_cmp_si by the ...0 version.
2917
2918	[tests/tasinu.c] Replaced mpfr_cmp by !mpfr_equal_p.
2919
2920	[tests/tacosu.c] Replaced mpfr_cmp by !mpfr_equal_p.
2921
2922	[tests/tacosu.c] Fixed failing test with --with-mini-gmp
2923	and -DMINI_GMP_LIMB_TYPE=int under Linux/x86_64.
2924
2925	[tools/mpfrlint] Detect the use of mpfr_set_emin / mpfr_set_emax
2926	when set_emin / set_emax could be used (checking failures).
2927
2928	[tests/tdiv.c] Use set_emax rather than mpfr_set_emax with a test.
2929
2930	[tests/*.c] When not in a test, use set_emin and set_emax rather than
2931	mpfr_set_emin and mpfr_set_emax, in order to check failures.
2932	Done with: perl -pi -e 's/^ *\Kmpfr_(set_e(min|max) *\()/\1/' *.c
2933
2934	[tests/tests.c] Improved error message in set_emin / set_emax to
2935	better support platforms where mpfr_exp_t > long int.
2936
2937	[tests/tcot.c] Use set_emin and set_emax rather than mpfr_set_emin and
2938	mpfr_set_emax with a test (test done in set_emin / set_emax).
2939
2940	[src/{acosu.c,asinu.c,cosu.c,sinu.c,tanu.c}] Typos in comments.
2941
2942	[tests/tasinu.c] Use set_emin rather than mpfr_set_emin.
2943
29442021-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2945
2946	[src/acosu.c] fixed case x=-1/2 which was wrong
2947	[tests/tacosu.c] added test cases
2948
29492021-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2950
2951	[tests/tacosu.c] reduced number of generic tests
2952	[tests/tasinu.c] likewise
2953
2954	[src/asinu.c] fixed case x=-1 and underflow case
2955	[tests/tasinu.c] added test for underflow
2956
29572021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2958
2959	added asinu (work in progress, not yet usable)
2960
2961	[doc/mpfr.texi] improve description of mpfr_acosu
2962
2963	[src/acosu.c] fixed another typo
2964
2965	[src/acosu.c] fixed typo
2966
29672021-01-29  Vincent Lefèvre  <vincent@vinc17.net>
2968
2969	[src/acosu.c] Simplified code.
2970
2971	[tests/tgeneric.c] Added a cast for printf.
2972
2973	[tests/tgeneric.c] Corrected indentation.
2974
2975	[tests/tgeneric.c] Corrected indentation.
2976
29772021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2978
2979	added cosu and cospi in the manual and NEWS
2980
2981	new function mpfr_acosu (still to be added in NEWS and mpfr.texi)
2982
29832021-01-29  Vincent Lefèvre  <vincent@vinc17.net>
2984
2985	[src/{cosu.c,sinu.c,tanu.c}] Function logging: added missing u.
2986
2987	[TODO] LIA-2 URL after redirection (i.e. https).
2988
29892021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
2990
2991	[TODO] added pointer to LIA-2
2992
29932021-01-26  Vincent Lefèvre  <vincent@vinc17.net>
2994
2995	[INSTALL,doc/update-faq,tools/announce-text] With wget, use
2996	the --no-config option as the user's .wgetrc file may significantly
2997	change the behavior and possibly yield errors. See discussion at
2998	<https://lists.debian.org/debian-user/2021/01/msg01021.html>.
2999
30002021-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3001
3002	[TODO] update about powr, rootn and rsqrt
3003
3004	[TODO] update about reserved cr_xxx names from C standard
3005
30062021-01-14  Vincent Lefèvre  <vincent@vinc17.net>
3007
3008	[src/{cosu.c,sinu.c,tanu.c}] Range reduction: improved a test, renamed
3009	a variable (e to p, as this is more like a precision), and updated
3010	comments, making the code and comments similar for these 3 functions.
3011
3012	Added function logging for mpfr_fmod_ui and mpfr_sqrt_ui.
3013
30142021-01-14  Vincent Lefèvre  <vincent@vinc17.net>
3015
3016	[tests/memory.c] Call "fflush (NULL)" before abort() in order to flush
3017	all the output streams, in particular the log file (when there is one),
3018	so that setting MPFR_LOG_FLUSH (which may be inefficient) is not needed
3019	to debug tests that end with a memory error.
3020
3021	This fixes a regression with glibc 2.27+: the streams are no longer
3022	flushed by abort(), as permitted by POSIX; see the abort(3) man page.
3023
30242021-01-14  Vincent Lefèvre  <vincent@vinc17.net>
3025
3026	[src] Fixed typo in mpfr_printf format from MPFR_LOG_FUNC for several
3027	functions.
3028
3029	[doc/mpfr.texi] Completed mpfr_fmod_ui description.
3030
3031	[src/cosu.c] Fixed bug when the reduced argument is 0.
3032
3033	[tests/tcosu.c] Added tests that give a reduced argument equal to 0.
3034
3035	[src/cosu.c] Fixed memory leak with very small reduced arguments.
3036
30372021-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3038
3039	[tests/tcosu.c] increase nmax in test_generic call
3040	[tests/tsinu.c] likewise
3041	[tests/ttanu.c] likewise
3042
30432021-01-13  Vincent Lefèvre  <vincent@vinc17.net>
3044
3045	[tests/{tcosu.c,tsinu.c,ttanu.c}] For the generic tests, no need
3046	to reduce emax any longer, now that the fast range reduction has
3047	been implemented.
3048
3049	[src/tanu.c] Implemented range reduction for mpfr_tanu.
3050
3051	[src/{cosu.c,sinu.c}] Corrected the position of a comment.
3052
3053	[src/cosu.c] Implemented range reduction for mpfr_cosu.
3054
30552021-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3056
3057	[src/sinu.c] removed FIXME (done)
3058
30592021-01-13  Vincent Lefèvre  <vincent@vinc17.net>
3060
3061	[NEWS,doc/mpfr.texi] For the new trigonometric functions mpfr_cosu,
3062	mpfr_sinu, mpfr_tanu, mpfr_cospi, mpfr_sinpi, mpfr_tanpi, removed the
3063	"experimental" mention. In mpfr.texi, also added missing functions to
3064	Section "Added Functions" (API Compatibility).
3065
3066	[doc/mpfr.texi] Style consistency: more "[unsigned] long int"
3067	instead of just "[unsigned] long".
3068
3069	[doc/mpfr.texi] Style: use always "[unsigned] long int" in prototypes
3070	rather than sometimes just "[unsigned] long".
3071
3072	[NEWS,doc/mpfr.texi] New function mpfr_fmod_ui.
3073
30742021-01-13  Vincent Lefèvre  <vincent@vinc17.net>
3075
3076	Implemented range reduction for mpfr_sinu (and defined mpfr_fmod_ui).
3077
3078	This is done by computing x mod u; and a new function mpfr_fmod_ui
3079	has been defined for this purpose. As mpfr_fmod_ui could be useful
3080	to the user, its declaration is put in src/mpfr.h, with the intent
3081	to document this new function later.
3082
3083	In the src directory:
3084	  * Added fmod_ui.c file (mpfr_fmod_ui function) based on sqrt_ui.c
3085	    (hence the same copyright line).
3086	  * Makefile.am: added fmod_ui.c to libmpfr_la_SOURCES.
3087	  * mpfr.h: added mpfr_fmod_ui.
3088	  * sinu.c: implemented range reduction for mpfr_sinu.
3089
30902021-01-13  Vincent Lefèvre  <vincent@vinc17.net>
3091
3092	[tests/tsinu.c] Added tests where x/u is a "big" integer, so that
3093	the reduced argument is 0 (exactly).
3094
3095	[tests/tsinu.c] Added a test on a large input such that x mod u may need
3096	more precision than x. This will be important to test range reduction.
3097
3098	[src/sqrt_ui.c] Coding style.
3099
3100	[src/{cosu.c,sinu.c,tanu.c}] Changed MPFR_PREC to MPFR_GET_PREC.
3101
31022021-01-12  Vincent Lefèvre  <vincent@vinc17.net>
3103
3104	[tests/{tcosu.c,tsinu.c,ttanu.c}] C90 compatibility for the tests with
3105	large inputs (added in r14236). Also avoid the hardcoded size by using
3106	the numberof() macro.
3107
31082021-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3109
3110	[tests/tcosu.c] added hard-coded tests with large inputs
3111	[tests/tsinu.c] likewise
3112	[tests/ttanu.c] likewise
3113
31142021-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3115
3116	[src/set_ld.c] added pointer to "double double" format
3117
31182021-01-04  Vincent Lefèvre  <vincent@vinc17.net>
3119
3120	[doc] Updated FAQ.html with update-faq.
3121
31222021-01-03  Vincent Lefèvre  <vincent@vinc17.net>
3123
3124	[doc/mpfr.texi] Updated the month.
3125
3126	Copyright notice update: added 2021 with
3127	  perl -pi -e 's/ (\d{4}-)?(2020)(?= Free Software)/
3128	               " ".($1||"$2-").($2+1)/e' **/*(^/)
3129	under zsh. Removed 2020 from the example in the doc/README.dev file.
3130
3131	[src/mpfr-impl.h] Removed a now useless test on __clang__, corresponding
3132	to a bug fixed in Clang 3.4 (see <https://bugs.debian.org/705583>).
3133
31342020-12-20  Vincent Lefèvre  <vincent@vinc17.net>
3135
3136	Optimize mpfr_abs, mpfr_copysign and mpfr_setsign in the case of reused
3137	argument, like what was already done for mpfr_neg: one can just set the
3138	sign and handle NaN instead of calling mpfr_set4.
3139	Completed tests/tcopysign.c to test with a reused argument.
3140
3141	[src/cosu.c] Avoid a possible integer overflow (triggered by the tests
3142	with UBsan) from r14225.
3143
31442020-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3145
3146	fixed initial precision in sinu, cosu and tanu
3147	also in cosu, treat special case when 2*pi*x/u is small
3148
31492020-12-17  Vincent Lefèvre  <vincent@vinc17.net>
3150
3151	[tests/tgeneric.c] Removed the use of __func__ as it is not supported
3152	by ISO C90 (it was not really useful here, though).
3153
3154	[tests/tcosu.c] Increased the maximum precision for test_generic and
3155	added a comment about this.
3156
3157	[tests] Added tcosu, tsinu and ttanu to svn:ignore property.
3158
3159	For the generic tests, output the number of normal cases and the total
3160	if the MPFR_TGENERIC_STAT environment variable is defined.
3161	Added description to the README.dev file.
3162
3163	[tests/tcosu.c] Increased the number of generic tests. This should make
3164	the warning "Too few normal cases in generic tests" much less common.
3165
3166	[tests]
3167	  * Added data/tan2pi: hardest-to-round cases of tanu with u = 1
3168	    in double precision, interval [0,1/4].
3169	  * ttanu.c: test tan2pi values with u = 1.
3170
3171	[tests/ttanu.c] C89 compatibility.
3172
31732020-12-16  Vincent Lefèvre  <vincent@vinc17.net>
3174
3175	[doc/mpfr.texi] Removed spurious blank line; .texi source reformat.
3176
3177	[doc/mpfr.texi] Typography: "resp." must be followed by "@:".
3178
3179	[doc/check-typography] Also check "resp.".
3180
3181	[doc/mpfr.texi] Removed misplaced @tie{}.
3182
31832020-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3184
3185	[doc/mpfr.texi] fixed another typo
3186
3187	[doc/mpfr.texi] fixed typos
3188
3189	added sinpi, cospi, tanpi
3190
3191	added new function mpfr_tanu
3192
3193	[src/sinu.c] improved comment
3194
31952020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3196
3197	[src/sinu.c] added reference
3198
3199	[src/sinu.c] fixed compiler warning
3200	[src/cosu.c] deal with other exact cases
3201	[tests/tcosu.c] added tests for other exact cases
3202
3203	[src/sinu.c] fixed bug in detection of pi/6 and friends
3204
32052020-12-15  Vincent Lefèvre  <vincent@vinc17.net>
3206
3207	[NEWS] mpfr_cosu and mpfr_sinu: improved item.
3208
32092020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3210
3211	[tests/tsinu.c] added more tests
3212
3213	[src/sinu.c] fixed case where 2xpi/u is +/-pi/6 mod pi
3214	[tests/tsinu.c] added corresponding test case
3215
32162020-12-15  Vincent Lefèvre  <vincent@vinc17.net>
3217
3218	[tests]
3219	  * Added data/{cos2pi,sin2pi}: hardest-to-round cases of cosu and sinu
3220	    with u = 1 in double precision, interval [0,1/2].
3221	  * tcosu.c, tsinu.c: test cos2pi and sin2pi values with u = 1.
3222
3223	[tests/tests.c] test5rm(): mention test5rm in the error message.
3224
3225	[src/{cosu.c,sinu.c}] Added function logging.
3226
32272020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3228
3229	added new function mpfr_cosu
3230
3231	[src/sinu.c] fixed typo in comment
3232
3233	[tests/tsinu.c] fixed typos in comments
3234
32352020-12-15  Vincent Lefèvre  <vincent@vinc17.net>
3236
3237	[src/sin_cos.c] Code improvement:
3238	  * replaced a MPFR_PREC(c) by m since the precision of c was set to m;
3239	  * as a consequence, the initial precision of xr in the Ziv loop will
3240	    always be m (whether expx >= 2 or not), so that one can use this
3241	    precision for the mpfr_init2.
3242
32432020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3244
3245	[src/sinu.c] forgot to count the rounding error in mpfr_sin (t, t, MPFR_RNDA)
3246
3247	[src/sinu.c] fixed issue with case t=0
3248
32492020-12-15  Vincent Lefèvre  <vincent@vinc17.net>
3250
3251	[src/{sin.c,sin_cos.c}]
3252	  * Do not initialize variables with the default precision, which
3253	    could have been set to a large value by the user; this would
3254	    be a waste of memory.
3255	  * In sin.c, do not initialize xr in the case where this variable
3256	    will not be used (in sin_cos.c, let's initialize it with the
3257	    minimum precision as it is used with different purposes).
3258
3259	[src/{ai.c,yn.c}] Do not initialize variables with the default
3260	precision, which could have been set to a large value by the
3261	user; this would be a waste of memory.
3262
3263	[tools/mpfrlint] Added a test to detect when mpfr_init or mpfr_inits is
3264	used, i.e. when a variable is initialized with the default precision.
3265	This should not be done as the default precision could have been set to
3266	a large value by the user, so that this is a waste of memory.
3267
3268	[src/sinu.c] Correction: variables must not be initialized with the
3269	default precision, which could have been set to a large value by the
3270	user, and this would be a waste of memory.
3271
32722020-12-14  Vincent Lefèvre  <vincent@vinc17.net>
3273
3274	[src/sinu.c] Fixed 2 bugs:
3275	  * in case of underflow, the flags were not set;
3276	  * mpfr_odd_p(t) could be called with t = 0, which is unsupported.
3277
32782020-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3279
3280	[src/sinu.c] fixed typo (thanks Jeffrey Sarnoff)
3281
32822020-12-14  Vincent Lefèvre  <vincent@vinc17.net>
3283
3284	[src/sinu.c] Added a FIXME: the range reduction should be done in this
3285	function (that's the whole point of sinu compared to sin, besides a
3286	smaller rounding error).
3287
3288	[tests/tsinu.c] Added a FIXME concerning the size of the exponent.
3289
3290	[doc/mpfr.texi] Typographic correction of math formulas.
3291
3292	[doc/mpfr.texi] mpfr_sinu: corrections and improvements.
3293
3294	[doc/mpfr.texi] Updated the month.
3295
32962020-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3297
3298	[NEWS] added mpfr_sinu
3299	[doc/mpfr.texi] improve documentation of mpfr_sinu, and say it is experimental
3300
3301	added mpfr_sinu (work in progress)
3302
33032020-12-13  Vincent Lefèvre  <vincent@vinc17.net>
3304
3305	[src/zeta.c] Minor correction of a comment.
3306
33072020-12-02  Vincent Lefèvre  <vincent@vinc17.net>
3308
3309	[src/mpfr.h] Added a comment about Intel's compiler ICC and the
3310	unsupported returns_nonnull attribute.
3311
33122020-11-15  Vincent Lefèvre  <vincent@vinc17.net>
3313
3314	[TODO] Added an item to add "const" in prototypes in the manual.
3315
3316	[doc/mpfr.texi] mpfr_subnormalize: define EXP(x) and PREC(x).
3317
3318	[doc/mpfr.texi] More detailed beginning of "Nomenclature and Types",
3319	which now specifies the convention for the significand and the exponent.
3320
3321	[doc/mpfr.texi] Updated the month.
3322
3323	[doc/mpfr.texi] Document the mpfr_srcptr type.
3324
33252020-10-28  Vincent Lefèvre  <vincent@vinc17.net>
3326
3327	[tests/talloc-cache.c] Check that malloc() doesn't return a null pointer
3328	(in order to avoid an error with GCC's -fanalyzer, dev version).
3329
33302020-10-23  Vincent Lefèvre  <vincent@vinc17.net>
3331
3332	[src/invert_limb.h] Added a comment about r14171.
3333
3334	[src/invert_limb.h] Fixed potential issues introduced in 14170.
3335	  * The code isn't valid with 16-bit int (allowed by ISO C). So,
3336	    make sure with MPFR_STAT_STATIC_ASSERT that unsigned int is
3337	    large enough for invert_limb_table2.
3338	    Note: since the code is under "#if GMP_NUMB_BITS == 64",
3339	    this is unlikely to affect any system in practice, as
3340	    GMP_NUMB_BITS == 32 (or 16, if supported) should be better
3341	    on such a system.
3342	  * Make sure that the "<< 11" shifts do not overflow.
3343
33442020-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3345
3346	[src/invert_limb.h] patch from Alexei Sibidanov, which reduces memory usage,
3347	without degrading performance
3348
33492020-10-23  Vincent Lefèvre  <vincent@vinc17.net>
3350
3351	[doc/README.dev] Replaced WG14 N2405 reference by the new N2579.
3352
33532020-10-21  Vincent Lefèvre  <vincent@vinc17.net>
3354
3355	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
3356
3357	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
3358
3359	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
3360
33612020-10-19  Vincent Lefèvre  <vincent@vinc17.net>
3362
3363	[doc/mpfr.texi] Updated mpfr_rootn_ui description about "agree with
3364	the rootn function", now that IEEE 754-2019 is there (needed as
3365	rootn was underspecified in IEEE 754-2008, so that TS 18661-4
3366	incorrectly specified the case rootn(-inf, n even); see WG14 N2309
3367	from the C FP group for the correction).
3368
33692020-10-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3370
3371	fixed typo
3372
33732020-10-08  Vincent Lefèvre  <vincent@vinc17.net>
3374
3375	[doc/README.dev] Added a note about _Float128 vs long double.
3376
3377	[src/mpfr-impl.h] Added a TODO for the numberof() macro: make it a
3378	constant expression and possibly change its type "long" to "ptrdiff_t".
3379
3380	[doc/mpfr.texi] Minor changes in Section "Formatted Output Functions".
3381
3382	[NEWS] Update.
3383
3384	[doc/mpfr.texi] Section "API Compatibility", formatted output functions
3385	(mpfr_printf, etc.): completed r14155.
3386
3387	[doc/mpfr.texi] Updated the month.
3388
3389	[src/vasprintf.c] Improved comment for READ_INT.
3390
33912020-10-07  Vincent Lefèvre  <vincent@vinc17.net>
3392
3393	Fixed the formatted output functions (mpfr_printf, etc.) in the case
3394	the precision consists only of a period.
3395	  * doc/mpfr.texi: correction and clarifications (be closer to ISO C);
3396	    note the change in Section "API Compatibility".
3397	  * src/vasprintf.c: fixed the bug.
3398	  * tests/tsprintf.c: update.
3399
34002020-10-07  Vincent Lefèvre  <vincent@vinc17.net>
3401
3402	[src] Consistency: in prototypes, changed
3403	  mpz_t to mpz_ptr (mpfr-impl.h, pool.c);
3404	  mpfr_random_deviate_t to mpfr_random_deviate_ptr (random_deviate.c).
3405
3406	Note: This completes the changes I had done in r14103 (2020-08-21) for
3407	mpfr_t. This time, the issue was detected by a GCC 11 snapshot, thanks
3408	to the -Warray-parameter option (included in -Wall), which was added
3409	on 2020-09-19 in GCC commit 6450f07388f9fe575a489c9309c36012b17b88b0.
3410
34112020-10-07  Vincent Lefèvre  <vincent@vinc17.net>
3412
3413	[src/vasprintf.c] Updated a comment.
3414
3415	Added tests/gen-printf-dot-prec Perl script to generate a .c file
3416	showing printf and mpfr_printf output with:
3417	  * a missing precision field;
3418	  * a precision field with just a period (".");
3419	  * a precision field with an explicit precision 0 (".0").
3420
34212020-09-27  Vincent Lefèvre  <vincent@vinc17.net>
3422
3423	[tests/tset_z_2exp.c] Fixed typo detected by GCC.
3424
3425	[src/set_z_2exp.c] Fixed overflow/underflow detection in exponent ranges
3426	where emax < 0 or emin >= 0 (bug introduced in r14145).
3427
3428	[tests/tset_z_2exp.c] Added some tests in a reduced exponent range (and
3429	improved existing tests).
3430	Note: Due to an incorrect change in set_z_2exp.c r14145, various tests
3431	are failing with mini-gmp (for which mpfr_set_z_2exp is used more often
3432	because a long does not fit into a limb) in unusual exponent ranges. So
3433	such tests were obviously missing in tset_z_2exp.c before this commit.
3434
34352020-09-25  Vincent Lefèvre  <vincent@vinc17.net>
3436
3437	[src/set_z_2exp.c] Fix: avoid possible integer overflows.
3438
3439	[tests/tset_z_2exp.c] Test a result.
3440
3441	[doc/README.dev] Added how to convert an unsigned integer to the
3442	corresponding signed integer with the two's complement rule (i.e.
3443	modular arithmetic) but in a portable way.
3444
3445	[tests] Updated svn:ignore property due to the rename in r14125.
3446
34472020-09-24  Vincent Lefèvre  <vincent@vinc17.net>
3448
3449	[tests/tset_z_2exp.c] Added another test that fails with just
3450	"-m32 -fsanitize=undefined -fno-sanitize-recover".
3451	This corresponds to what is described in the FIXME in src/set_z_2exp.c
3452	(about the modified tnrandom.c test yielding an integer overflow).
3453
3454	[tests/tset_z_2exp.c] Added a test that triggers an integer overflow
3455	in set_z_2exp.c with MPFR_CHECK_LARGEMEM=1 when MPFR is compiled with
3456	"-m32 -fsanitize=undefined -fno-sanitize-recover -D_MPFR_EXP_FORMAT=4"
3457	in CFLAGS:
3458	  set_z_2exp.c:71:26: runtime error: signed integer overflow:
3459	  134217726 * 32 cannot be represented in type 'long int'
3460
34612020-09-23  Vincent Lefèvre  <vincent@vinc17.net>
3462
3463	[src/exp2.c] Added support for -D_MPFR_EXP_FORMAT=4 in the 32-bit ABI,
3464	i.e. 32-bit long, so that the MPFR compilation no longer fails due to
3465	a static assertion in this file. Note: many tests fail (not texp2),
3466	but at least this allows some testing of various functions.
3467
34682020-09-23  Vincent Lefèvre  <vincent@vinc17.net>
3469
3470	[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.
3471
3472	The change done in r13668 seems to be a bit wrong (at least unclear).
3473	This was done after finding
3474	https://fr.osdn.net/projects/mingw/lists/archive/users/2019-January/000199.html
3475	saying that __USE_MINGW_ANSI_STDIO became deprecated, during a
3476	discussion on the vsnprintf() behavior:
3477	https://gmplib.org/list-archives/gmp-bugs/2020-January/004716.html
3478
3479	However, it seems that printf() conformity issues have completely been
3480	resolved only recently, in version 8.
3481	http://mingw-w64.org/doku.php says:
3482	  Version 8 has been released
3483	  v8.0.0: 2020-09-18
3484	  Notable changes:
3485	  [...]
3486	    * __USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11
3487	      mode when not using UCRT by Pali Rohár
3488	  [...]
3489
3490	Compiling
3491	  #include <stdio.h>
3492	  int main (void) { volatile double d = -1.25; printf ("%e\n", d); }
3493	gives with mingw-w64 version 7: -1.250000e+000
3494	  and with mingw-w64 version 8: -1.250000e+00
3495
3496	So, when testing MPFR with mingw-w64 version 8 but with GMP still built
3497	with mingw-w64 version 7 (and static libraries), one gets a failure in
3498	tsprintf:
3499	  Error in mpfr_vsprintf (s, "%e", ...);
3500	  expected: "-1.250000e+00"
3501	  got:      "-1.250000e+000"
3502	because the expected result has changed (it comes from sprintf used in
3503	the MPFR test, which is now ISO-compliant).
3504
35052020-09-18  Vincent Lefèvre  <vincent@vinc17.net>
3506
3507	[src/set_z_2exp.c] Added a FIXME: possible integer overflow, which
3508	can be reproduced with a 32-bit ABI by defining MPFR_PREC_MAX as
3509	((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 63)) and in tnrandom.c,
3510	using "test_special (MPFR_PREC_MAX);".
3511
35122020-09-16  Vincent Lefèvre  <vincent@vinc17.net>
3513
3514	[doc/mpfr.texi] Updated the month.
3515
3516	[doc/mini-gmp] Say that the build with mini-gmp may require ISO C99+
3517	features (as "long long" is currently needed by src/get_ld.c in the
3518	case GMP_NUMB_BITS == 8).
3519
3520	For consistency, changed "C89" to "C90" in comments of *.{c,h} files.
3521
3522	[doc/mpfr.texi] Changed C89 to C90, as when mentioning ISO, one must
3523	say C90 (C89 is the ANSI version). The GCC manual uses "C90" rather
3524	than "C89", so this is probably better anyway.
3525
3526	[src/get_ld.c] Bug fix with GMP_NUMB_BITS == 8 (thus mini-gmp) and
3527	32-bit long (e.g. with -m32 on x86_64).
3528
35292020-09-15  Vincent Lefèvre  <vincent@vinc17.net>
3530
3531	Renamed some .c files for consistency:
3532	  src/get_z_exp.csrc/get_z_2exp.c
3533	  src/set_z_exp.csrc/set_z_2exp.c
3534	  tests/tset_z_exp.ctests/tset_z_2exp.c
3535	and updated src/Makefile.am and tests/Makefile.am files.
3536
3537	[src/random_deviate.c] The latest change r14123 was actually incorrect:
3538	the real issue was non-portable code (with an incorrect comment) to
3539	convert an unsigned integer to a signed, negative integer. Incorrect
3540	behavior could occur with some C implementations and/or when mpfr_exp_t
3541	does not have the same size as long. So, fixed this portability issue,
3542	and avoid an assertion failure in a very rare case.
3543
3544	[src/random_deviate.c] Corrected an assertion. → Test failures.
3545
3546	[tests/tests.c] Added a note about tests done in "src/init2.c".
3547
3548	[src/init2.c] Check that __MPFR_EXP_MAX  == MPFR_EXP_MAX too.
3549
3550	[tests/tget_z.c] Updated comment to mention that mpfr_get_z_2exp is
3551	tested by this file.
3552
3553	[src/mpfr-mini-gmp.c] Fixed bug in gmp_urandomb_ui when the parameter n
3554	is equal to the width of unsigned long.
3555	Note: This case occurs in function random_deviate_generate() from
3556	src/random_deviate.c with a 32-bit ABI (thus 32-bit unsigned long)
3557	since n = W, which is defined as 32.
3558
35592020-09-14  Vincent Lefèvre  <vincent@vinc17.net>
3560
3561	[src/mpfr-mini-gmp.c] Simplified gmp_randseed_ui (note: the code in
3562	r14114 and r14115 was not the intended one due to the wrong variable
3563	in srand).
3564
3565	[src/mpfr-mini-gmp.c] Corrected latest change for gmp_randseed_ui.
3566
3567	With mini-gmp, use the standard rand() and srand() functions instead of
3568	the POSIX (thus less portable) lrand48() and srand48().
3569
35702020-09-10  Vincent Lefèvre  <vincent@vinc17.net>
3571
3572	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
3573	Note: this includes URL updates.
3574
3575	Updated URLs.
3576
3577	[src/sub1sp.c] Updated a URL (http → https).
3578
3579	[doc/README.dev] Updated URLs.
3580
3581	[configure.ac] Updated a URL (http → https).
3582
3583	[configure.ac] Updated a URL concerning the "Intel® C++ Compiler 9.0
3584	for Linux Release Notes" (the URL was not archived).
3585
3586	Updated a freebsd.org URL (bug tracker).
3587
35882020-08-21  Vincent Lefèvre  <vincent@vinc17.net>
3589
3590	[src,tests] Consistency: in prototypes, changed
3591	  const mpfr_t  to  mpfr_srcptr
3592	  mpfr_t        to  mpfr_ptr
3593	(except for mpfr_t *), as this is equivalent (the array is converted
3594	to a pointer) and the mpfr_srcptr/mpfr_ptr form is the usual one.
3595
35962020-08-20  Vincent Lefèvre  <vincent@vinc17.net>
3597
3598	[doc/README.dev] Added a note about "string + integer" expressions.
3599
3600	[tests/tsprintf.c] Replaced another occurrence of the code triggering
3601	the warning "adding 'int' to a string does not append to the string
3602	[-Wstring-plus-int]" with Clang (at least with 3.5 and above).
3603
36042020-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3605
3606	fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
3607	aarch64-unknown-linux-android):
3608
3609	tsprintf.c:1613:27: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
3610	        strcat (buf, ",0" + (j % 3 != 0));
3611	                     ~~~~~^~~~~~~~~~~~~~
3612
36132020-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3614
3615	fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
3616	aarch64-unknown-linux-android):
3617
3618	./tgeneric.c:208:40: warning: implicit conversion from 'mp_limb_t' (aka 'unsigned long') to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Wimplicit-int-float-conversion]
3619			(double) randlimb () / MPFR_LIMB_MAX;
3620	                                     ~ ^~~~~~~~~~~~~
3621	../src/mpfr-impl.h:1277:28: note: expanded from macro 'MPFR_LIMB_MAX'
3622	#define MPFR_LIMB_MAX     ((mp_limb_t) -1)
3623	                           ^~~~~~~~~~~~~~
3624
36252020-08-09  Vincent Lefèvre  <vincent@vinc17.net>
3626
3627	[doc/mpfr.texi] Updated the month.
3628
3629	[doc/mpfr.texi] In the paragraph about cases that are hard to round,
3630	also mention potentially exact cases.
3631
36322020-07-20  Vincent Lefèvre  <vincent@vinc17.net>
3633
3634	[doc/README.dev] Added a paragraph on the issue with GCC and
3635	conversions between binary and decimal types.
3636
3637	[src/get_d128.c] Updated FIXME comment (after r14087).
3638
3639	[src/get_d128.c] Removed unused variable due to r14087.
3640
3641	[src/get_d128.c] For the special values, avoid double to _Decimal128
3642	conversions, as for such conversions, GCC generates from 2 to 3 MB in
3643	the shared library when the decimal encoding is BID, and there will be
3644	no fix in GCC:
3645	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173
3646	We now use computations on _Decimal128 constants directly, which could
3647	thus be done at compile time. We expect no problems similar to double,
3648	as the _Decimal128 implementation should follow the IEEE 754 rules.
3649	This commit should avoid a large part of the problem reported at:
3650	  https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21849&group_id=136
3651
36522020-07-15  Vincent Lefèvre  <vincent@vinc17.net>
3653
3654	[tests/tset_ld.c] Improved an error message.
3655
36562020-07-13  Vincent Lefèvre  <vincent@vinc17.net>
3657
3658	[tests/tests.c] Simplified the d_trace and ld_trace functions:
3659	we do not need a union (with its potentional padding) as there
3660	are no aliasing issues with unsigned char.
3661
3662	[tests/tset_ld.c] Fixed mpfr_out_str usage in error messages
3663	(see the change in r12520).
3664
3665	[tests/tget_ld_2exp.c] Corrected a function call in an error message.
3666
3667	[examples/version.c] "Compiler:" line: detect TCC (__TINYC__ macro).
3668	(merged r14078 from tests/tversion.c)
3669
3670	[tests/tversion.c] "Compiler:" line: detect TCC (__TINYC__ macro).
3671
36722020-07-12  Vincent Lefèvre  <vincent@vinc17.net>
3673
3674	[src/get_d128.c] Updated the FIXME.
3675
3676	[src/get_d128.c] Added a FIXME to work around GCC bug 96173.
3677
36782020-07-10  Vincent Lefèvre  <vincent@vinc17.net>
3679
3680	[src/jyn_asympt.c] Added an assertion.
3681
3682	[doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that
3683	  --enable-assert=full should not be used (too expensive, not needed).
3684	[tests/tjn.c] Added a related comment for the expensive bug20200703
3685	  test (which may take more than 1 hour with --enable-assert=full).
3686
3687	[tests/tjn.c] Corrected indentation.
3688
36892020-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3690
3691	[tests/tjn.c] added another test
3692
3693	[src/jyn_asympt.c] fixed previous commit
3694
3695	[src/jyn_asympt.c] partly solved the slowness of jn(733333,733333)
3696
36972020-07-03  Vincent Lefèvre  <vincent@vinc17.net>
3698
3699	[src/jyn_asympt.c] Replaced some MPFR_EXP by MPFR_GET_EXP.
3700
3701	[src/jyn_asympt.c] Added a log message.
3702
3703	[tests/tjn.c] Added testcase for bug reported by Alex Coplan:
3704	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96044
3705	mpfr_jn is very slow or doesn't terminate on (733333,733333).
3706
37072020-07-01  Vincent Lefèvre  <vincent@vinc17.net>
3708
3709	[NEWS] For MPFR 4.1.0, added an item saying that TLS can safely be
3710	(re-)enabled on Sparc.
3711
37122020-06-29  Vincent Lefèvre  <vincent@vinc17.net>
3713
3714	[tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS.
3715	The MPFR library itself is not affected, only a particular test. Normal
3716	code using the MPFR library should not be affected either, as the bug
3717	occurs when accessing __gmpfr_flags directly (and the public mpfr.h
3718	header file does not provide any macro that accesses an internal
3719	variable directly). So a workaround for the tests is the best solution.
3720
37212020-06-18  Vincent Lefèvre  <vincent@vinc17.net>
3722
3723	[NEWS] Update for the next release.
3724
3725	[src/mpfr-longlong.h] Mention applied patch (in r14035).
3726
37272020-06-17  Vincent Lefèvre  <vincent@vinc17.net>
3728
3729	[src/mpfr-longlong.h] Applied patch on
3730	  https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html
3731	to fix add_ssaaaa and sub_ddmmss on arm / aarch64 (after a
3732	reverse-merge of r14032 and r13997), in order to resolve
3733	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html
3734	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html
3735
3736	[tests/tcmp_ui.c] Added a comment about a failing test with tcc if
3737	one adds tcc support for macros using __builtin_constant_p in mpfr.h
3738	by testing __TINYC__.
3739	Bug report against tcc: https://savannah.nongnu.org/bugs/?58606
3740
37412020-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3742
3743	[src/mpfr-longlong.h] disable buggy sub_ddmmss for aarch64
3744
37452020-06-15  Vincent Lefèvre  <vincent@vinc17.net>
3746
3747	[doc/mpfr.texi] Corrected and detailed the description of
3748	mpfr_get_str_ndigits.
3749
3750	[src/get_str.c] Since the mpfr_get_str_ndigits function is in the
3751	public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition
3752	on the argument b in order to get an assertion failure (by default)
3753	if this condition is not satisfied.
3754
37552020-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3756
3757	[doc/mpfr.texi] specify the range of b for mpfr_get_str_ndigits
3758
37592020-06-14  Vincent Lefèvre  <vincent@vinc17.net>
3760
3761	[tests/tdigamma.c] Increase the number of tests.
3762
37632020-06-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3764
3765	[src/digamma.c] fixed bug found while testing mpfr-4.1.0-rc1
3766
37672020-06-14  Vincent Lefèvre  <vincent@vinc17.net>
3768
3769	[src/digamma.c] Added a FIXME.
3770
3771	[src/digamma.c] Replaced mpfr_get_exp by MPFR_GET_EXP.
3772
3773	[src/digamma.c]
3774	  * Replaced some MPFR_EXP by MPFR_GET_EXP to check that the MPFR number
3775	    has an exponent (i.e. it is not a special value).
3776	    → Assertion failure in tdigamma (on x86_64).
3777	    Note: this might be the cause of an unexpected loop (infinite loop?)
3778	    on a Debian 10.4 POWER9 machine:
3779	      https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00025.html
3780	  * Added an integer overflow check on a precision.
3781
37822020-06-13  Vincent Lefèvre  <vincent@vinc17.net>
3783
3784	[tests/tset_ld.c] In a test specific to x86 extended precision, in case
3785	of incorrect result, detect whether Valgrind is used and one gets the
3786	result obtained with Valgrind due to
3787	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215
3788	  https://bugs.kde.org/show_bug.cgi?id=421262
3789	(long double behaves as double); in this case, output a message without
3790	an error since Valgrind is the only cause of the miscalculation.
3791
3792	[tests/tset_ld.c] bug_20160907 (tests on subnormals):
3793	  * Replaced an assertion by a test with detailed output.
3794	  * Corrected a value in a test, which did not match the comment.
3795
3796	[tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as
3797	Valgrind complains due to the large allocation size.
3798	  * mpfr-test.h, tests.c: added tests_run_within_valgrind() function to
3799	    guess whether the test runs within Valgrind.
3800	  * tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77)
3801	    if this function returns true.
3802
3803	[configure.ac] Improvements concerning the default CFLAGS with GCC.
3804	  * Add -Wc++-compat option to CFLAGS with GCC ≥ 4.1 not in C++ mode.
3805	    Changes based on Bruno Haible's patch suggested at
3806	      https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
3807	    (with some autoconf related fixes).
3808	  * Output the $CFLAGS value that is eventually used.
3809
3810	[configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler
3811	is GCC not in C++ mode (reverting the change done in r13406) since this
3812	option is not available before GCC 4.1:
3813	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
3814
3815	[doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL.
3816
3817	[tests/tfpif.c] Updated comment about the bug detected on AIX.
3818
3819	[tools/announce-text] For release candidates, automatically adapt the
3820	flow of the text.
3821
3822	[NEWS] Updated mpfr.org URLs (http → https).
3823
3824	[tools/announce-text] Better line lengths for release candidates.
3825
38262020-06-12  Vincent Lefèvre  <vincent@vinc17.net>
3827
3828	[README] Added URL of the official GNU MPFR website and a note about the
3829	future migration, since InriaForge will shut down in December 2020.
3830
3831	[tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252,
3832	useless since r5253).
3833
3834	[tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where
3835	an fclose failed due to a previous read failure. At the same time,
3836	check that a read failure no longer occurs. Note: the read failure
3837	made mpfr_fpif_import fail, but this is a test where it is expected
3838	to fail, i.e. we now check that it fails for a good reason.
3839	[*] gcc119.fsffrance.org on the GCC Compile farm.
3840
3841	[tools/update-version] Improved a message.
3842
3843	[src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which
3844	makes codespell complain in particular.
3845
3846	[tools/mpfrlint] Improved the __GMP_DECLSPEC test:
3847	  * No longer exclude "src/mpfr.h".
3848	  * Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h".
3849
3850	[doc/mpfr.texi] Updated the month.
3851
3852	Updated version to 4.2.0-dev.
3853
3854	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
3855
38562020-06-11  Vincent Lefèvre  <vincent@vinc17.net>
3857
3858	Renamed mpfr_total_order to mpfr_total_order_p for consistency with the
3859	other predicates (by convention, the function name should end with _p).
3860
3861	[NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits.
3862
3863	[doc/README.dev] Updated "To make a release".
3864
3865	[doc/README.dev] Updated "To make a release".
3866
3867	[src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0.
3868
3869	[NEWS] Additional details, in particular binary compatibility.
3870
3871	[NEWS] Some improvements.
3872
38732020-06-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3874
3875	[doc/mini-gmp] one more test is skipped now
3876
3877	[doc/mini-gmp] add test results with reduced limb size (int)
3878
38792020-06-11  Vincent Lefèvre  <vincent@vinc17.net>
3880
3881	[doc/README.dev] Updated "To make a release".
3882
38832020-06-10  Vincent Lefèvre  <vincent@vinc17.net>
3884
3885	[NEWS] Added release name for 4.1.0: "épinards à la crème".
3886
3887	[doc/mini-gmp] English usage improvement.
3888
3889	Fixed 2 issues with tests/tvalist.c:
3890	  1. When building with mini-gmp (--with-mini-gmp=DIR) without
3891	     optimizations (-O0), the build of tvalist was failing because
3892	     the formatted output functions are not supported (this issue
3893	     wasn't noticed with optimizations due to dead code elimination).
3894	     Fix: this test is disabled with mini-gmp (not needed anyway).
3895	  2. Dead code elimination with optimizations partly broke the goal
3896	     of this test, i.e. checking that mpfr_vfprintf was available.
3897	     This dead code was introduced in r7648 "Make sure that fct is
3898	     used (avoid a warning)." (where fct = mpfr_vfprintf) but was
3899	     actually not sufficient.
3900	     Fix: call mpfr_vfprintf unconditionally, but on an empty string
3901	     in order to avoid output to stdout.
3902	In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could
3903	be simplified as a consequence.
3904
3905	Removed '# undef HAVE_STDARG' before '# include "config.h"' when it
3906	was used, as it was not always undefined (e.g. in tests/tsprintf.c)
3907	and there are no reasons to undefine this macro specifically.
3908	Note: this code was introduced in r2665 (2004-02-06), perhaps for
3909	the MPFR build inside GMP, which has been dropped a long time ago.
3910
3911	[tests/tvalist.c] Updated a comment.
3912
3913	[tests/tvalist.c] Correction when config.h is used (code copied from
3914	src/inits.c).
3915
39162020-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
3917
3918	[doc/mini-gmp] review
3919
39202020-06-10  Vincent Lefèvre  <vincent@vinc17.net>
3921
3922	[NEWS] Typo in option name.
3923
3924	[src/mpfr-longlong.h]
3925	  * Updated comment about this file and the changes against GMP 6.2.0.
3926	  * Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not
3927	    needed since it is defined in gmp.h as used also there, but this is
3928	    useful in case some future gmp.h version no longer defines it).
3929
3930	[src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h
3931	between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251,
3932	11042, 11025, and 10727, as these changes are present in the diff.
3933
3934	[configure.ac] With mini-gmp, also check the availability of srand48.
3935
3936	[src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use
3937	a portable version of the conversion from unsigned long to long.
3938
3939	[doc/mini-gmp] Note also that the random functions are not thread-safe.
3940
3941	[doc/mini-gmp] Major update.
3942
3943	[NEWS] Removed a FIXME (no problems found).
3944
39452020-06-09  Vincent Lefèvre  <vincent@vinc17.net>
3946
3947	[tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX.
3948
3949	[src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is
3950	not defined, update the flags (needed for the possible overflow).
3951
3952	[tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with
3953	mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short").
3954
3955	[tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec.
3956
3957	[src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB
3958	in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=...
3959
3960	[src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the
3961	use of uint64_t in src/get_ld.c, while <stdint.h> was not included:
3962	replaced it by "unsigned long long", which does not need a specific
3963	header (an exact 64-bit type is not needed, we just need at least a
3964	64-bit width, which unsigned long long is guaranteed to have).
3965	Note: unsigned long long may not be available with a pre-C99 compiler,
3966	but this is not worse than uint64_t. This limitation is currently OK
3967	as GMP_NUMB_BITS == 8 support is just for testing.
3968
3969	[acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and
3970	MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar:
3971	  * Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this
3972	    is safer than AC_COMPILE_IFELSE, as it will detect undefined
3973	    function-like macros.
3974	  * Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX
3975	    too in order to make sure that a static assertion is used (not
3976	    the MPFR_ASSERTN fallback).
3977	Note: These constitute redundant safeguards because if MPFR_ASSERTN
3978	is used, it will be regarded as a function since the macro is not
3979	defined in this context, and linking will fail as a consequence.
3980	But this redundancy will protect more against MPFR code evolution.
3981
3982	[acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing
3983	MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e.
3984	by requiring static assertions: because AC_COMPILE_IFELSE is used
3985	(i.e. just compiling, no linking), the test could incorrectly succeed
3986	when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value
3987	of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case,
3988	MPFR_ASSERTN() was used instead of a static assertion, and since the
3989	macro was not defined here, MPFR_ASSERTN was regarded as a function
3990	(without a prototype), which was fine for compiling (except when the
3991	compiler is configured to regard warnings such as missing prototype
3992	as errors). In short, one could get "yes" while long was larger than
3993	mp_limb_t.
3994	Note: In uncommon cases (non-standard compiler...), one can still get
3995	"no" while a long fits in mp_limb_t, but this isn't much an issue as
3996	the MPFR code should work in such a case. Moreover, src/mpfr-impl.h
3997	will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice.
3998
3999	Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather
4000	useless, and it had drawbacks. Details:
4001	  * In src/mpfr-sassert.h, the default definition of this macro in the
4002	    MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this
4003	    macro was unused, this wasn't noticeable... except in the configure
4004	    test for static assertions, which failed in some cases (e.g. with
4005	    CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings")
4006	    for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT
4007	    undefined, while static assertions were actually working.
4008	  * Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not
4009	    defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which
4010	    would yield invalid code as
4011	      MPFR_DECL_STATIC_ASSERT(some_assertion);
4012	    would yield an extra ";" (about the same issue as above). Given
4013	    the fact that the portable MPFR_USE_STATIC_ASSERT code does not
4014	    work with this compiler, it is not clear whether this is fixable
4015	    in a completely reliable way.
4016	  * MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT
4017	    after moving it to the statement section of a function, with almost
4018	    no drawbacks (just a bit readability in some cases?).
4019	  * When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT
4020	    will check the assertion at run time (for free, since the result is
4021	    known at compile time), while MPFR_DECL_STATIC_ASSERT would not be
4022	    able to do anything useful.
4023	Changes:
4024	  * acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT.
4025	  * src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions.
4026	  * tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition.
4027
40282020-06-08  Vincent Lefèvre  <vincent@vinc17.net>
4029
4030	[acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say
4031	that using MPFR_ASSERTN (as the code tries to do if static assertions
4032	are not supported, but currently fails) would be incorrect.
4033
4034	[acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if
4035	intmax_t is defined (assuming that it is iff uintmax_t is defined).
4036
4037	[tests/tversion.c] Also output the results of the detection of
4038	"long within limb" and "intmax_t within limb".
4039
40402020-06-04  Vincent Lefèvre  <vincent@vinc17.net>
4041
4042	[configure.ac] Removed an obsolete FIXME, which is probably wrong.
4043
4044	[configure.ac] Updated a comment, replacing a resolved FIXME.
4045
4046	[acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved
4047	exit status.
4048
4049	[acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also
4050	needs to take the printf length modifier in argument.
4051
4052	[acinclude.m4] Improved the code to determine the format of double,
4053	resolving the FIXME. The issue was that it used an AC_RUN_IFELSE,
4054	so that the format could not be determined when cross-compiling.
4055	The code to determine the format of long double did not have such
4056	an issue: the object file was analyzed by an awk script. Since a
4057	long double can have the same format as a double, this code was
4058	already able to recognize a double, in particular. So the change
4059	consisted in slightly adapting this code to accept the tested type
4060	as an argument ("double" or "long double", the mpfr_cv_… variable
4061	name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for
4062	the detection of the format of double.
4063
4064	[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup:
4065	  * Removed an unused AH_VERBATIM.
4066	  * Removed "not available" condition, no longer possible since r13936.
4067
4068	[acinclude.m4] Fix concerning r13935: also removed code that tested
4069	the availability of long double. This code was useless since it was
4070	just outputting "not available" if long double was missing, and one
4071	would get an error later since MPFR requires long double. But since
4072	long double is in ISO C89, it is useless to add a test just to return
4073	an error for pre-C89 compilers.
4074
4075	[acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only
4076	  purpose is to define a HAVE_LONG_DOUBLE macro.
4077	[configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer
4078	  needed with the change in acinclude.m4.
4079
40802020-06-03  Vincent Lefèvre  <vincent@vinc17.net>
4081
4082	[configure.ac] Minor change in a comment.
4083
4084	Cleanup about the function detection by autoconf.
4085	  * acinclude.m4: removed the detection of memmove, memset and strtol,
4086	    which was not used (a macro "HAVE_..." was defined... to be removed
4087	    in configure.ac!); for AC_CHECK_FUNCS, remove options starting with
4088	    "-Werror" as they can yield a spurious failure due to the way this
4089	    test is done (this occurred on memmove and memset with GCC due to
4090	    builtins, and similar issues could still occur in practice with the
4091	    remaining functions in the AC_CHECK_FUNCS list).
4092	  * configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer
4093	    needed since strtol has been removed from the AC_CHECK_FUNCS list.
4094
4095	[acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed
4096	the exit status values 1..3 to 81..83 in order to avoid confusion, as
4097	low values can typically be returned in case of compile or link error.
4098
40992020-06-02  Vincent Lefèvre  <vincent@vinc17.net>
4100
4101	[tests/memory.c] Updated a comment.
4102
4103	[src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not
4104	included directly; MPFR_NEED_LONGLONG_H must be defined instead.
4105
4106	[acinclude.m4] To complete r13928, one also needs to define
4107	MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used.
4108
4109	[src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h
4110	is not included directly; MPFR_NEED_INTMAX_H must be defined instead.
4111
41122020-06-01  Vincent Lefèvre  <vincent@vinc17.net>
4113
4114	Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing
4115	a new macro MPFR_NEED_INTMAX_H, which should be defined instead of
4116	using: #include "mpfr-intmax.h"
4117
4118	Details on the bugs fixed:
4119	  * The code added in r13916 forgot a #include <limits.h> since this
4120	    code does a test on ULLONG_MAX. With the cleanup, <limits.h> is
4121	    already always included by mpfr-impl.h (early enough).
4122	  * In src/get_str.c and tests/memory.c, a #include "config.h" was
4123	    missing before #include "mpfr-intmax.h"; this issue would affect
4124	    platforms where "config.h" is needed and where <inttypes.h> or
4125	    <stdint.h> does not exist or does not work.
4126
41272020-06-01  Vincent Lefèvre  <vincent@vinc17.net>
4128
4129	[tests/tgamma.c] For the non-regression test added in r13907, one
4130	also needs to temporarily increase the memory limit, thus require
4131	MPFR_CHECK_LARGEMEM too.
4132
41332020-05-26  Vincent Lefèvre  <vincent@vinc17.net>
4134
4135	[acinclude.m4] If decimal floats are explicitly disabled, do not do
4136	the check of the bit-field ordering for _Decimal128.
4137
4138	[acinclude.m4] Fixed detection of bit-field ordering for _Decimal128:
4139	a compiler error with exit status 1 was mixed up with little endian.
4140
41412020-05-24  Vincent Lefèvre  <vincent@vinc17.net>
4142
4143	[src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998)
4144	with native /usr/bin/cc, which knows the long long type but defines
4145	ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc.
4146
4147	[tests/tget_ld_2exp.c] Reverted r13914 as we still need to support
4148	pre-C99 compilers (and this change was useless).
4149	If C99 syntax is needed, there should be a configure test, and the
4150	code should be conditional.
4151
41522020-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4153
4154	[tests/tget_ld_2exp.c] put expected value in hex in bug20180904()
4155
41562020-05-20  Vincent Lefèvre  <vincent@vinc17.net>
4157
4158	[doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE.
4159
41602020-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4161
4162	[tests/tgamma.c] added comment about bug fix
4163
4164	[src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal()
4165			  (avoid failures for n <= 10000)
4166
4167	[src/bernoulli.c] fix bug with non-regression test added in r13907
4168
4169	[src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be
4170	                  wrong in the error analysis of mpfr_bernoulli_internal()
4171
4172	[doc/README.dev] added MPFR_CHECK_EXPENSIVE
4173	[tests/tgamma.c] use MPFR_CHECK_EXPENSIVE
4174
4175	added non-regression test for bug reported by Frithjof Blomquist
4176
41772020-05-04  Vincent Lefèvre  <vincent@vinc17.net>
4178
4179	[tools/mpfrlint] Use of codespell: better workaround to python ugliness.
4180
41812020-04-27  Vincent Lefèvre  <vincent@vinc17.net>
4182
4183	[doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd
4184	radices β are actually not concerned since in such radices, β^k
4185	is always odd, so that the exponent does not matter.
4186
4187	[doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note
4188	about the even-rounding rule in particular cases: 1-digit precision
4189	and odd radices.
4190	Note: A short explanation was already in the mpfr_get_str description,
4191	which is where the issue could occur at the time the minimum precision
4192	of MPFR numbers was 2. Now that the minimum precision is 1, this rule
4193	in such special cases is more general.
4194
4195	[doc/mpfr.texi] + "than": also in a comment.
4196
4197	[doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to"
4198	to the more common "{less,greater} than or equal to".
4199
42002020-04-26  Vincent Lefèvre  <vincent@vinc17.net>
4201
4202	[doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference
4203	to Section "Rounding".
4204
4205	[doc/mpfr.texi] s/can not/cannot/
4206
4207	[doc/mpfr.texi] Improved Section "Rounding" even more:
4208	  * Added a note about the sign of the result (important for 0).
4209	  * Described the directed rounding modes (BTW, this notion of
4210	    "directed rounding modes" was used but never defined).
4211
4212	[doc/mpfr.texi] Improved the description of the rounding modes:
4213	  * Be more clear that MPFR_RNDN uses the even rounding rule.
4214	  * In "two representable numbers", add "consecutive".
4215	  * Be more general than radix 2 (due to conversions to a string).
4216	  * Consistent typography.
4217
42182020-04-25  Vincent Lefèvre  <vincent@vinc17.net>
4219
4220	[doc/mpfr.texi]
4221	  * mpfr_init2: mention mpfr_prec_round; added a note about
4222	    memory allocation.
4223	  * mpfr_prec_round: clarification ("new allocation" could be
4224	    surprising since one needs less memory).
4225
42262020-04-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4227
4228	[doc/mpfr.texi] document that mpfr_prec_round does no new allocation
4229			in case the allocated memory is enough
4230
42312020-04-22  Vincent Lefèvre  <vincent@vinc17.net>
4232
4233	[src/atan.c] Removing the FIXME: I can't see anything wrong in the
4234	MPFR code. This could be a bug in GCC's analyzer (which is currently
4235	experimental). And GCC bug 94713 in the analyzer prevents debugging
4236	as it makes impossible to track uninitialized values: warnings do not
4237	occur the first time an uninitialized value occurs.
4238
4239	[src/atan.c] Added an assertion.
4240
4241	[src/atan.c] Reduce the number of mpz_get_ui calls with assertions.
4242
4243	[src/atan.c] Added a FIXME.
4244
42452020-04-14  Vincent Lefèvre  <vincent@vinc17.net>
4246
4247	[doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f"
4248	under Debian/unstable.
4249	Note: The generated mpfr.html and mpfr.info files remain the same.
4250	In mpfr.pdf, there are minor changes concerning horizontal spacing
4251	in paragraphs with a URL.
4252
42532020-04-11  Vincent Lefèvre  <vincent@vinc17.net>
4254
4255	[tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that
4256	became visible with r13878 now that the encoding of decimal floats
4257	can be detected at compile time. But by fixing the defined macros
4258	manually, this issue could be visible before r13878.
4259
42602020-04-10  Vincent Lefèvre  <vincent@vinc17.net>
4261
4262	Reworked decimal support and detection, resolving FIXMEs.
4263	  * INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can
4264	    take new values. Change of macro DPD_FORMAT (DPD was assumed in
4265	    case of cross-compilation, which could be wrong) to 3 new macros:
4266	    DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE.
4267	  * doc/README.dev: documented these 3 new macros.
4268	  * src/mpfr-impl.h: the detection of the BID encoding can now be
4269	    done at compile time when GCC defines __DECIMAL_BID_FORMAT__
4270	    (as on x86); support of the 3 new macros.
4271	  * src/{get_d64.c,set_d64.c,set_d128.c}: update.
4272	  * tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update.
4273
42742020-04-08  Vincent Lefèvre  <vincent@vinc17.net>
4275
4276	Updated URLs of the GCC mailing-list archives.
4277
42782020-04-06  Vincent Lefèvre  <vincent@vinc17.net>
4279
4280	[src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I
4281	already noticed a probable bug in the AC_FUNC_ALLOCA description,
4282	but forgot about it).
4283
4284	[doc/mpfr.texi] Updated the month.
4285
4286	[doc/mpfr.texi] Formatted output functions: added a comment with the URL
4287	of the bug report.
4288
4289	[NEWS,doc/mpfr.texi] Documented the improvement in the formatted output
4290	functions (mpfr_printf, etc.) with an empty precision field, about
4291	trailing zeros.
4292
42932020-04-03  Vincent Lefèvre  <vincent@vinc17.net>
4294
4295	[tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN.
4296
4297	[tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random
4298	precision was too small, so that an input for the test was not computed
4299	exactly (I had modified the values of the inputs for better tests, but
4300	forgot to change the minimum precision). Also check that the inputs are
4301	computed exactly (which is what I often do, but here, I had forgotten),
4302	in order to make errors like the above one easier to understand in case
4303	the test will have to be modified later.
4304	Note: With the incorrect input, the mpfr_sub1 result and flags were
4305	actually correct, so that this was only a bug in the test.
4306
43072020-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4308
4309	[INSTALL] update CompCert instructions
4310
43112020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4312
4313	[INSTALL] fixed CompCert instructions
4314
43152020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4316
4317	[tests/tset_ld.c] Reverted r13858: the check_overflow test was already
4318	in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi,
4319	which had mpfr_cv_c_long_double_format='IEEE double, little endian'.
4320	The issue should be investigated.
4321	Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits,
4322	but this should not cause a failure in the tests.
4323
4324	[tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed
4325	for the x87 extended precision, so enable it only in this case.
4326
43272020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4328
4329	[tests/tsub.c] modify test_ubf() to always hit a current failing test
4330
43312020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4332
4333	[configure.ac] Fixed the change done in r13853 (about removed macros),
4334	making the code simpler and more maintainable at the same time.
4335
43362020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4337
4338	[INSTALL] added configuration for CompCert test
4339
43402020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4341
4342	[src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy
4343	on old i386 systems (the tests were not using this workaround).
4344
43452020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4346
4347	[tests/tget_ld_2exp.c] fixed for case where long double = double
4348	[tests/tset_ld.c]      likewise
4349
43502020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4351
4352	[configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS,
4353	thus must be invoked after LDFLAGS has been determined completely.
4354
43552020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4356
4357	[INSTALL] now all tests pass with compcert
4358
4359	[acinclude.m4] added missing LDFLAGS for long double test
4360
43612020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4362
4363	[doc/README.dev] Added HAVE_ALLOCA description.
4364
4365	[configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used
4366	by MPFR to determine the default MPFR_ALLOCA_MAX value.
4367
43682020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4369
4370	[INSTALL] update CompCert instructions
4371
43722020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4373
4374	[tests/tversion.c] Output whether MPFR is built with the GMP build,
4375	and the MPFR_ALLOCA_MAX value if not.
4376
4377	[src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is
4378	not available (as detected by the configure script), then set the
4379	default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used.
4380
43812020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4382
4383	[INSTALL] added instructions for CompCert
4384
43852020-04-02  Vincent Lefèvre  <vincent@vinc17.net>
4386
4387	[doc/README.dev] Updated MPFR_ALLOCA_MAX description.
4388
4389	[src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time),
4390	do not reference alloca() since we don't need it.
4391
43922020-03-31  Vincent Lefèvre  <vincent@vinc17.net>
4393
4394	[doc/mpfr.texi] About mpfr_printf with %Re and empty precision field,
4395	added a comment with URLs of the discussion and the bug report.
4396
43972020-03-30  Vincent Lefèvre  <vincent@vinc17.net>
4398
4399	[src/sub1.c] Typo in a comment.
4400
4401	[configure.ac] Updated message output when the gmp.h vs libgmp test
4402	fails: another cause may be that LD_RUN_PATH is not honored (problem
4403	seen under OpenBSD 6.6 / gcc302.fsffrance.org).
4404
44052020-03-27  Vincent Lefèvre  <vincent@vinc17.net>
4406
4407	[tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...).
4408
4409	[src/set_uj.c] Fixed underflow detection.
4410
4411	[src/set_uj.c] Added early overflow detection to avoid a possible
4412	integer overflow. Added a FIXME (incorrect underflow detection).
4413
4414	[tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp
4415	in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
4416	MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
4417	MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but
4418	also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c,
4419	to be fixed...
4420
4421	[src/set_sj.c] Coding style.
4422
4423	[src] Moved the definition of the numberof() macro from mpfr-gmp.h to
4424	mpfr-impl.h in order to always use our own. Also make sure that the
4425	type is signed, so that the value can be used in arbitrary expressions
4426	without the risk of silently switching to unsigned arithmetic.
4427
44282020-03-26  Vincent Lefèvre  <vincent@vinc17.net>
4429
4430	[tests/texpm1.c] Updated the bad_cases() parameters to increase the
4431	proportion of generated bad cases.
4432
4433	[tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument.
4434
4435	[doc/mpfr.texi] Updated the month.
4436
4437	Consistency: "a UBF" → "an UBF" since UBF stands for "unbounded float".
4438
4439	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
4440
4441	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.
4442
4443	[src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment
4444	could yield undefined behavior on platforms where mpfr_exp_t has
4445	trap representations); this is also a general improvement.
4446
4447	[tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by
4448	replacing x[…] by p[…] (but this doesn't eliminate the problem itself).
4449
4450	[src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but
4451	there isn't any other acceptable solution.
4452	Note: when trying to build MPFR without --enable-assert, with GCC and
4453	CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c
4454	currently fails because of that.
4455
44562020-03-25  Vincent Lefèvre  <vincent@vinc17.net>
4457
4458	[tests/tsub.c] Fixed tests on UBF.
4459
4460	[src/sub1.c] Fixed underflow handling in case c small (can occur only
4461	with UBF).
4462
4463	[tests/tfma.c] Minor correction.
4464
4465	[tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior
4466	with RNDF changed after a bug fix.
4467
4468	[tests/tsub.c] Completed tests for UBF (currently fail).
4469
4470	[src/sub1.c] Bug fix for UBF and MPFR_RNDF.
4471
4472	[src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case:
4473	added early underflow/overflow checking to avoid integer overflow or
4474	errors due to special exponent values.
4475
4476	[tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp
4477	in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
4478	MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
4479	MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when
4480	MPFR_LONG_WITHIN_LIMB is defined.
4481
44822020-03-24  Vincent Lefèvre  <vincent@vinc17.net>
4483
4484	[tests/tsub.c] More tests on UBF. The results are not checked yet,
4485	but running the tests with UBsan could allow one to trigger bugs
4486	(such as the one fixed in r13806).
4487
4488	[src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in
4489	the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with
4490	UBF. Fixed this bug with an early underflow detection in the UBF case.
4491
4492	[tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix,
4493	this was triggering an integer overflow.
4494
4495	[tests/tsub.c] Corrected a function name.
4496
4497	[tests/tsub.c] More tests on UBF, in particular with an exponent change
4498	(including subnormal → normal and normal → overflow due to that).
4499
4500	[tests/tsub.c] Tests on UBF: underflow/overflow cases done.
4501
45022020-03-23  Vincent Lefèvre  <vincent@vinc17.net>
4503
4504	[tests/tsub.c] More tests on UBF.
4505
4506	[src/mpfr-impl.h] UBF: reordered macro definitions.
4507
4508	[src]
4509	  * mpfr-impl.h: define MPFR_UBF_GET_EXP macro.
4510	  * add1.c, sub1.c: use this macro.
4511
4512	[src/sub1.c] Detect an underflow case (before the main detection) to
4513	avoid a possible integer overflow with UBF.
4514
4515	[tests/tsub.c] Added comments.
4516
4517	[tests/tsub.c] First tests on UBF.
4518
4519	[src/agm.c] Avoid a potential integer overflow with huge precisions.
4520
45212020-03-16  Vincent Lefèvre  <vincent@vinc17.net>
4522
4523	[src/root.c] Removed useless cast in a comparison, as both operands are
4524	non-negative.
4525
4526	[src/rem1.c]
4527	  * Portability fix: when mpfr_exp_t <= long (which is the default),
4528	    an addition was done in unsigned integer arithmetic instead of
4529	    signed integer arithmetic, with a conversion back to a signed
4530	    type, i.e. with potentially implementation-defined behavior.
4531	    There could also be an integer overflow on huge-precision values
4532	    if mp_bitcnt_t > unsigned long.
4533	  * Updated a comment.
4534
4535	[src/pow.c]
4536	  * Portability fix: when mpfr_exp_t <= long (which is the default),
4537	    an addition with a negative result was done in unsigned integer
4538	    arithmetic instead of signed integer arithmetic, with a conversion
4539	    back to a signed type, i.e. with implementation-defined behavior.
4540	    There could also be an integer overflow on huge-precision values
4541	    if mp_bitcnt_t > unsigned long.
4542	  * Updated comments.
4543
4544	[src/cos.c] Updated a comment.
4545
4546	[src/cos.c] Updated a comment.
4547
4548	[src/const_log2.c] Corrected type for the return value of mpz_scan1.
4549
45502020-03-13  Vincent Lefèvre  <vincent@vinc17.net>
4551
4552	[tests/tests.c] Revert a change done in r13783 for function bad_cases():
4553	  no longer fail if a generated value does not correspond to a bad case.
4554	  But fail if the MPFR_CHECK_BADCASES environment variable is defined
4555	  and too few bad cases are generated (less than 90%).
4556	[doc/README.dev] Document MPFR_CHECK_BADCASES.
4557
4558	[tests] Update to test the ternary value in test5rm() when possible,
4559	and support the exact cases.
4560	  * tests.c:
4561	      - test5rm(): modified the prototype again and the behavior.
4562	        Now, either only one test is done and the ternary value is
4563	        not checked, or the test is done in the 5 rounding modes and
4564	        the ternary value is checked.
4565	      - data_check(): corresponding update; updated description.
4566	      - bad_cases(): test the exact cases too.
4567	  * tatanh.c: for the bad_cases() call, reduce emax to avoid errors in
4568	    the generation of bad cases due to the rounding of tanh(y) to 1,
4569	    which does not correspond to a bad case for atanh, but to an exact
4570	    case.
4571	  * tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in
4572	    the generation of bad cases due to the rounding of expm1(y) to -1,
4573	    which does not correspond to a bad case for log1p, but to an exact
4574	    case.
4575	  * trec_sqrt.c: corrected the bad_cases() call to avoid negative
4576	    numbers.
4577	Note: the following tests
4578	  GMP_CHECK_RANDOMIZE=5 ./tacos
4579	  GMP_CHECK_RANDOMIZE=6 ./tatan
4580	  GMP_CHECK_RANDOMIZE=4 ./tcos
4581	currently fail, but because of a change in r13783 (see associated log
4582	for the reason). To be fixed later.
4583
4584	[tests/tests.c] Modified the prototype of test5rm() to support a
4585	parameter "exact". Therefore the parameter "test_one" is now a boolean
4586	(the value 2 is no longer supported, as redundant with "exact"), and
4587	about data_check() with rnd = '*', the loop is now done in test5rm(),
4588	i.e. test5rm() is called with test_one being false.
4589
45902020-03-12  Vincent Lefèvre  <vincent@vinc17.net>
4591
4592	[tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters
4593	as in troot.c for "rootn[2]", allowing inexact cases.
4594
4595	[tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters
4596	as in troot.c for "rootn[3]", allowing inexact cases.
4597
4598	[tests]
4599	  * tests.c, function bad_cases(): updated/added debug messages;
4600	    assume that the parameters are chosen in such a way that this
4601	    test always generates hard-to-round cases (including exact cases),
4602	    i.e. exit with an error if one does not get a bad case, otherwise
4603	    this can leave unexpected failures unnoticed (either due to a bug
4604	    in the MPFR library or due to poorly chosen parameters such as in
4605	    troot.c until now).
4606	    Note: ideally, this would require a proof, but it is better to get
4607	    (unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE
4608	    value than missing important tests.
4609	  * troot.c, bad_cases() invocation:
4610	      - corrected the pos parameter: when n is even, it is useless to
4611	        generate a negative number as the function is not defined (the
4612	        inverse function generates a positive number, and the mismatch
4613	        now yields a failure due to the change in bad_cases); when n is
4614	        odd, generate as many negative numbers as positive ones.
4615	      - for n ≤ 5, reduce the psup parameter in order to also generate
4616	        inexact cases, instead of always exact cases.
4617
4618	[tests/tests.c] Added a TODO for bad_cases, as the exact cases are not
4619	tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776
4620	is not really useful yet, as the cbrt bad cases are only exact cases.
4621
4622	[tests/tests.c]
4623	  * test5rm: removed additional useless tests added in r6037 in the
4624	    case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the
4625	    description was a bit incorrect and this was used only by
4626	      - data/digamma, where this yielded only duplicate tests (mode *);
4627	      - data/li2, where mode z is used on a few tests and could be
4628	        replaced by mode Z (i.e. test_one false) if need be;
4629	    updated description and added details.
4630	  * data_check: corrected/updated description.
4631
4632	[tests/tests.c] Minor change in an initialization.
4633
4634	[tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message.
4635
4636	[acinclude.m4] Added a FIXME: in case of cross-compiling, the guess
4637	"DPD" can be wrong, e.g. for the build with MinGW under Linux. One
4638	does not get a failure just because of other issues in the code,
4639	forcing the portable implementation of the decimal functions.
4640
46412020-03-11  Vincent Lefèvre  <vincent@vinc17.net>
4642
4643	Added bad_cases tests for mpfr_cbrt.
4644
4645	[src/cbrt.c] Improved the algorithm in the case the precision of the
4646	input is larger than 3n, where n is the precision of the output, + 1
4647	if the rounding mode is MPFR_RNDN: instead of truncating the output,
4648	call mpz_root on the truncated input.
4649
4650	[tests/tcbrt.c] Test the ternary value on other exact cases.
4651
4652	[tests/tcbrt.c] Test the ternary value on special cases.
4653
4654	[src/cbrt.c] Description of the algorithm: improvement; corrected the
4655	end, which was incorrect and did not match the code (the comment was
4656	introduced in r2057 and was already incorrect in the round-down case;
4657	then the round-to-nearest case was improved in r2070, but the comment
4658	was not updated).
4659
4660	[src/cbrt.c] Description of the algorithm: correction; added a TODO.
4661
46622020-03-10  Vincent Lefèvre  <vincent@vinc17.net>
4663
4664	[src/cbrt.c] Description of the algorithm: corrected indentation;
4665	renamed variable r to t in order to avoid confusion with the code
4666	(where r has a different meaning).
4667
4668	[src/cbrt.c] Clarified a comment.
4669
4670	[src/cbrt.c] Resolved the second FIXME and simplified the code
4671	(basically by removing duplicate code).
4672
4673	[src/cbrt.c] Description of the algorithm:
4674	  * Since there was no upper bound on s, let's remove the upper bound
4675	    on m (this now matches the code).
4676	  * Replaced the FIXME by one due to the lack of upper bound on s.
4677
4678	[src/cbrt.c] Added another FIXME as the code does not match the
4679	algorithm described in a comment.
4680
4681	[src/cbrt.c] Improved a condition to avoid operations that correspond
4682	to a no-op.
4683
4684	[src/cbrt.c] Added an assertion.
4685
4686	[src/cbrt.c] Code cleanup and simplification. Added logging messages and
4687	a FIXME about a comment (coming from r2057 with its associated code).
4688
4689	[src/cbrt.c] Removed a useless cast on a comparison operand, since
4690	both operands are non-negative.
4691
4692	[src/atan.c] Added assertions.
4693
4694	[tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal
4695	for the codespell invocation.
4696
46972020-03-09  Vincent Lefèvre  <vincent@vinc17.net>
4698
4699	[src/eint.c] Bug fix: possible integer overflow with some
4700	C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values)
4701	due to the use of incorrect integer types.
4702
4703	[src/eint.c] Added other logging messages.
4704
4705	[src/eint.c] Added some logging messages.
4706
47072020-03-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4708
4709	[tests/tsin.c] added one test
4710
47112020-03-04  Vincent Lefèvre  <vincent@vinc17.net>
4712
4713	[src/sub1.c] cancel: also log its value; range checking/tracking.
4714
4715	[src/cmp2.c] Added a comment giving the range of the value returned
4716	in "cancel" and explaining why there is no integer overflow in the
4717	computation of this value.
4718
4719	[src/cmp2.c] Comment: some absolute values are not needed (again).
4720
4721	[src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
4722
4723	[src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.
4724
47252020-03-03  Vincent Lefèvre  <vincent@vinc17.net>
4726
4727	[src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even
4728	more; corrected/updated comments (in the case high_dif = 0, one can have
4729	dif = 1 if c has entirely been taken into account, so that the comment
4730	"dif > 1 here" was incorrect; only dif >= 1 is needed anyway).
4731
4732	[src/cmp2.c] Changed high_dif to type int since it is manipulated like
4733	a boolean. Updated comments.
4734
47352020-03-02  Vincent Lefèvre  <vincent@vinc17.net>
4736
4737	[src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments.
4738
4739	[src/cmp2.c] Updated comments.
4740
47412020-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4742
4743	[src/mpfr.h] added comment
4744
47452020-03-02  Vincent Lefèvre  <vincent@vinc17.net>
4746
4747	[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment.
4748
4749	[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed
4750	comment (the previous comment was not obsolete, but misleading).
4751
47522020-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4753
4754	[src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default
4755		     under Linux x86_64)
4756
47572020-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4758
4759	[src/sin.c] increase initial precision even more
4760
47612020-03-01  Vincent Lefèvre  <vincent@vinc17.net>
4762
4763	[tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection.
4764
4765	[tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui.
4766
47672020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4768
4769	[src/sin.c] increase initial precision when x is large
4770
47712020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4772
4773	[src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making
4774	argument reduction in mpfr_sin for huge x very slow.
4775
4776	Before:
4777	$ ./mfv5 -p113 -e16384 -d-2 mpfr_sin
4778	 mpfr_sin:	 3289620 / 3576511.59 / 6841956
4779
4780	After this commit:
4781	 mpfr_sin:	 166868 / 182661.01 / 343224
4782
47832020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4784
4785	[tests/tpow.c] added one test
4786
4787	added value -2 for option -d to generate random number with exponent
4788	exactly e. Example:
4789	$ mfv5 -p113 -e16384 -d-2 -v mpfr_sin
4790
47912020-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4792
4793	[tests/tpow.c] added a test
4794
4795	[tests/tsin.c] fixed and completed check_binary128()
4796
47972020-02-28  Vincent Lefèvre  <vincent@vinc17.net>
4798
4799	[src/cmp2.c] Started to review mpfr_cmp2. Minor changes.
4800
4801	[src/cmp2.c] Detailed a comment concerning UBF.
4802
48032020-02-27  Vincent Lefèvre  <vincent@vinc17.net>
4804
4805	[tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better
4806	than mpfr_cmp as it makes the test fail on a NaN result).
4807
48082020-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4809
4810	[tests/tsin.c] added one test with precision 128
4811
48122020-02-27  Vincent Lefèvre  <vincent@vinc17.net>
4813
4814	[src/mpfr.h] Updated a comment (underscore version of attribute name).
4815
4816	[tools/mpfrlint] Detect the use of the non-underscore version of the
4817	attribute names in mpfr.h (see README.dev).
4818
48192020-02-25  Vincent Lefèvre  <vincent@vinc17.net>
4820
4821	[src/mpfr.h] Use the underscore version of the attribute names.
4822	[doc/README.dev] Added information on this subject.
4823
4824	[TODO] Added item on GNU Automake and -I options.
4825
48262020-02-14  Vincent Lefèvre  <vincent@vinc17.net>
4827
4828	[src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1
4829	(this macro does not allocate anything, and MPFR_TMP_INIT just after
4830	can allocate more than 1 limb).
4831
4832	[TODO] About the use of MPFR_MANT(x).
4833
48342020-02-13  Vincent Lefèvre  <vincent@vinc17.net>
4835
4836	[TODO] Typo.
4837
48382020-02-12  Vincent Lefèvre  <vincent@vinc17.net>
4839
4840	[tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN.
4841
4842	[tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test
4843	in 4 different contexts, combinations of:
4844	  * flags all unset or flags all set;
4845	  * usual exponent range or reduced exponent range.
4846	Minor corrections in the old tests.
4847
4848	[tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different
4849	contexts, combinations of:
4850	  * flags all unset or flags all set;
4851	  * usual exponent range or reduced exponent range.
4852
48532020-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4854
4855	[tests/tcmpabs.c] added tests for mpfr_cmpabs_ui
4856
48572020-02-12  Vincent Lefèvre  <vincent@vinc17.net>
4858
4859	[src/mpfr-impl.h]
4860	  * MPFR_ALIAS: use the comma operator instead of "do ... while (0)"
4861	    so that this macro can be used in an expression context.
4862	  * MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS.
4863
4864	[src/mpfr.h] Added prototype for mpfr_cmpabs_ui.
4865
4866	[doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions"
4867	(API Compatibility).
4868
4869	[tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs.
4870
4871	[doc/mpfr.texi] Typo from r13708.
4872
48732020-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4874
4875	[NEWS] mention new mpfr_cmpabs_ui
4876
4877	added new function mpfr_cmpabs_ui
4878
4879	renamed cmp_abs.c to cmpabs.c
4880
48812020-02-12  Vincent Lefèvre  <vincent@vinc17.net>
4882
4883	[TODO] Typo.
4884
4885	[TODO] + Serialization / Deserialization (suggested by Frédéric Pétrot).
4886	I've also added an idea of implementation to reuse most of the code and
4887	change very little.
4888
4889	[src/ubf.c]
4890	  * Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3
4891	    (as in the default configuration).
4892	  * Updated comments.
4893
4894	[src/mpfr-impl.h] Added UBF-related comments.
4895
4896	[src/mpfr-impl.h] Added UBF-related comments.
4897
4898	[src/mpfr-impl.h] Added a comment for UBF and types.
4899
49002020-02-11  Vincent Lefèvre  <vincent@vinc17.net>
4901
4902	[src/mpfr-impl.h] Added a comment for INEXPOS.
4903
4904	[src/mpfr-impl.h] INEXPOS and VSIGN code improvement.
4905
4906	Removed duplicate macro definitions.
4907
4908	[tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d.
4909
4910	[src/sub1.c] Got rid of some goto's. Added log messages.
4911
49122020-02-10  Vincent Lefèvre  <vincent@vinc17.net>
4913
4914	[src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via
4915	mpfr_fmma or mpfr_fmms) was not tested in the case c small.
4916	Note: this completes r11418 and r12752 for underflow detection.
4917
4918	[src/sub1.c] Added log messages and checked the UBF cases yielding
4919	exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX.
4920
49212020-02-08  Vincent Lefèvre  <vincent@vinc17.net>
4922
4923	[src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier).
4924
4925	[tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing.
4926
49272020-02-06  Vincent Lefèvre  <vincent@vinc17.net>
4928
4929	[src/fmma.c] Reverted the mpfr_check_range from r13688.
4930	The exponent range has not been extended by mpfr_fmma_aux, and the
4931	result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return
4932	results in the current range. If the result of mpfr_fmma_aux is not
4933	in the current range, this is due to a bug in one of these functions.
4934	Note: mpfr_add and mpfr_sub accept UBF inputs.
4935
49362020-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4937
4938	[src/fmma.c] fixed bug (result might be out of exponent range)
4939	[tests/tfmma.c] added non-regression test
4940
49412020-02-03  Vincent Lefèvre  <vincent@vinc17.net>
4942
4943	[doc/mpfr.texi] Updated the month.
4944
4945	[doc/mpfr.texi] In the paragraph "MPFR internal data such as flags",
4946	no longer mention caches as caches may now also be global when MPFR
4947	has been compiled as thread safe (locking is used). Caches have been
4948	discussed earlier in the section anyway.
4949
49502020-01-23  Vincent Lefèvre  <vincent@vinc17.net>
4951
4952	[INSTALL] URL update.
4953
49542020-01-20  Vincent Lefèvre  <vincent@vinc17.net>
4955
4956	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
4957
4958	[tests/Makefile.am] Updated a comment; in particular, replaced the two
4959	obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones.
4960
4961	[INSTALL] Removed reference to a gmane.org URL, which no longer exists.
4962
49632020-01-16  Vincent Lefèvre  <vincent@vinc17.net>
4964
4965	[src/beta.c,tests/ttanh.c] towards → toward (for consistency).
4966
49672020-01-10  Vincent Lefèvre  <vincent@vinc17.net>
4968
4969	[tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW,
4970	now output only if MinGW is used.
4971
4972	[doc/README.dev] Concerning MinGW, added a sentence about the use of
4973	the __USE_MINGW_ANSI_STDIO macro, confirming the existing note.
4974
4975	[TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO.
4976
4977	[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.
4978
4979	[doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666
4980	(we still need the extra two bytes and to take -@Inf@ into account).
4981
49822020-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
4983
4984	[mpfr.texi] fixed out-dated documentation for mpfr_get_str
4985
49862020-01-09  Vincent Lefèvre  <vincent@vinc17.net>
4987
4988	[doc/README.dev] In the latest update, forgot to remove the CC=...
4989
4990	[doc/README.dev] Update about the test under Wine.
4991
4992	[acinclude.m4,configure.ac]
4993	  * Moved the code that tries to determine the format of double from
4994	    configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just
4995	    before the one for long double.
4996	  * Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot
4997	    run the test when cross-compiling; use a test like for long double
4998	    instead.
4999
5000	[acinclude.m4] English usage.
5001
5002	[acinclude.m4] Updated messages about the format of "long double".
5003	[configure.ac] Ditto for "double". Added missing AC_MSG_RESULT.
5004
5005	[tests/tversion.c] Updated/fixed an output line to match the other ones.
5006
5007	[tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an
5008	empty precision field.
5009
5010	[src/vasprintf.c] Fixed output precision bug with decimal output
5011	(i.e. e, f and g conversion specifiers) and an empty precision field
5012	on the value 0.
5013
5014	[tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0.
5015
5016	[tests/tsprintf.c] Added a test with %Re and an empty precision field
5017	on the value 0; it currently fails.
5018
50192020-01-08  Vincent Lefèvre  <vincent@vinc17.net>
5020
5021	[tools/ck-copyright-notice] Added a note about the mpfr.pc.in file.
5022
5023	Copyright notice update: added 2020 with
5024	  perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/
5025	               " ".($1||"$2-").($2+1)/e' **/*(^/)
5026	under zsh. Removed 2019 from the example in the doc/README.dev file.
5027
5028	[TODO] + base conversion with the round-trip property using a minimal
5029	precision, such as the to_chars functions from the C++ standard.
5030
5031	[doc/mpfr.texi] Updated the month.
5032
5033	[doc/mpfr.texi] Formatted output: improved the text concerning the
5034	empty precision field, i.e. focus on the chosen precision rather
5035	than the round-trip property (as the rounding mode is not necessarily
5036	to nearest).
5037
5038	[doc/mpfr.texi] Formatted output with %Re (empty precision field):
5039	added a reference to mpfr_get_str_ndigits.
5040
5041	[src/vasprintf.c] Simplified the conditions under which trailing zeros
5042	are kept (the spec_g variable is no longer needed as a consequence).
5043
5044	[tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but
5045	with a variable of smaller precision in order to get the same output
5046	as before.
5047
5048	[tests/tsprintf.c] Updated other two tests (in da_DK locale).
5049
50502020-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5051
5052	fixed tests for new more precise semantics for mpfr_printf ("%Re", x),
5053	and documented it
5054
5055	[src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number
5056			  of decimal digits independent from x
5057
50582019-12-24  Vincent Lefèvre  <vincent@vinc17.net>
5059
5060	[INSTALL,doc/mpfr.texi] Typography.
5061
50622019-10-10  Vincent Lefèvre  <vincent@vinc17.net>
5063
5064	[doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2,
5065	as the old Rule 3 (now Rule 4) uses it directly (proof updated).
5066
5067	[doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8.
5068
5069	[doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in
5070	the proof.
5071
5072	[doc/algorithms.tex] Actually assume that no underflows nor overflows
5073	occur for the whole section "Error calculus".
5074
5075	[doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to
5076	assume no underflows nor overflows) and its proof, and generalized
5077	it with absolute values (like in the previous rules).
5078
50792019-10-07  Vincent Lefèvre  <vincent@vinc17.net>
5080
5081	[doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and
5082	much simpler proof.
5083
5084	[doc/algorithms.tex] Section 2 (Error calculus): When n was a precision,
5085	replaced it by p as this is the usual notation (see Section 1) and n
5086	sometimes had a double meaning.
5087
50882019-10-04  Vincent Lefèvre  <vincent@vinc17.net>
5089
5090	[tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9.
5091
5092	[tests/tcmp_ui.c] Added a comment: failure of a test with the
5093	clang-9 1:9-1 Debian package.
5094
50952019-10-01  Vincent Lefèvre  <vincent@vinc17.net>
5096
5097	Clean-up concerning the tests of subnormals for double and float.
5098	  * acinclude.m4: renamed variables
5099	      mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt
5100	      mpfr_cv_have_denorms     to mpfr_cv_have_subnorm_dbl
5101	    and improved messages.
5102	  * acinclude.m4, tests/tget_flt.c: renamed macro
5103	      HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT
5104	  * acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro
5105	      HAVE_DENORMS     to HAVE_SUBNORM_DBL
5106	  * doc/README.dev: updated / completed the corresponding documentation.
5107	  * tests/tget_d.c: renamed function check_denorms to check_subnorm.
5108
5109	[acinclude.m4] Updated comment about the tests for subnormal numbers.
5110
5111	[acinclude.m4] Added a comment about the tests for subnormal numbers.
5112
51132019-09-24  Vincent Lefèvre  <vincent@vinc17.net>
5114
5115	[doc/Makefile.am] Added missing texinfo.tex prerequisite.
5116
51172019-09-16  Vincent Lefèvre  <vincent@vinc17.net>
5118
5119	[tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c:
5120	The output is not tested (thus coverage data are meaningless).
5121
51222019-09-10  Vincent Lefèvre  <vincent@vinc17.net>
5123
5124	[src/{add1sp.c,sub1sp.c}] Get rid of useless goto's.
5125
51262019-09-06  Vincent Lefèvre  <vincent@vinc17.net>
5127
5128	[doc/mpfr.texi] Updated the month.
5129
5130	[src/hypot.c] Replaced a TODO by a FIXME.
5131
5132	The mpfr_out_str function now accepts bases from -2 to -36, in order to
5133	follow mpfr_get_str and GMP's mpf_out_str functions.
5134
5135	[doc/mpfr.texi] Changed an incorrect use of @xref, which must always
5136	occur at the beginning of a sentence (use "see @ref{...}" instead).
5137
5138	[doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence
5139	referencing the power functions (since x^n is an arithmetic function).
5140
51412019-09-05  Vincent Lefèvre  <vincent@vinc17.net>
5142
5143	[doc/mpfr.texi] Removed the useless "Float ..." index entries.
5144
5145	[doc/mpfr.texi] Moved the mpfr_pow class of functions from
5146	"Arithmetic Functions" to "Transcendental Functions".
5147
5148	[doc/mpfr.texi] Added "Float transcendental functions" to the index
5149	for consistency ("transcendental functions" implies floating point,
5150	but the user should expect to find it with the other index terms
5151	starting with "Float").
5152
5153	[doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just
5154	"Arithmetic Functions".
5155
5156	[doc/mpfr.texi] Transcendental functions: added a sentence to the
5157	important note (about cases theoretically very hard to round).
5158
5159	[doc/mpfr.texi] Renamed Section "Special Functions" to
5160	"Transcendental Functions" (as after changes in r13605 and r13606,
5161	it now contains only the transcendental functions), and slightly
5162	rewrote its important note.
5163
5164	[doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool
5165	and mpfr_mp_memory_cleanup from "Special Functions" to a new section
5166	"Memory Handling Functions".
5167
5168	[doc/mpfr.texi]
5169	  * Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms,
5170	    mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to
5171	    "Basic Arithmetic Functions" (as these are functions based on
5172	    +, -, *, / and roots).
5173	  * Added a FIXME for mpfr_pow: does this function really belong
5174	    to "Basic Arithmetic Functions"?
5175
5176	[doc/mpfr.texi] Improved warning about huge precisions.
5177
5178	[src/mul.c] For the --enable-assert=full test, also test the flags
5179	(like what has been done for mpfr_add1sp and mpfr_sub1sp).
5180
5181	[src/sub1sp.c] For the --enable-assert=full test, improved output of
5182	ternary value and flags, like in r13582 for mpfr_add1sp.
5183
5184	[src/add1sp.c] Cosmetic change (consistent ordering).
5185
51862019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5187
5188	[tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n
5189	[src/sub1sp.c] fixed that bug
5190
51912019-09-04  Vincent Lefèvre  <vincent@vinc17.net>
5192
5193	[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows.
5194
5195	[NEWS] More details about mpfr_add and mpfr_sub.
5196
51972019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5198
5199	[NEWS] mention that mpfr_sub was also improved for 128 bits
5200
5201	[NEWS] coverage improved to 98.6% on x86_64
5202
5203	[tests/tadd1sp.c] improve coverage
5204
52052019-09-04  Vincent Lefèvre  <vincent@vinc17.net>
5206
5207	[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had
5208	a spurious ";" at the end of conftest.c, which made its compilation
5209	fail with -pedantic -Werror (using gcc or clang).
5210
52112019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5212
5213	[src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n)
5214
52152019-09-04  Vincent Lefèvre  <vincent@vinc17.net>
5216
5217	[acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation
5218	with GCC's and clang's LTO (-flto). This new test is inspired by the one
5219	used by GMP for the double type.
5220	Thanks to Paul Mulders for a preliminary version of the patch for MPFR.
5221
52222019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5223
5224	[src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS
5225		       (still to be tested)
5226
52272019-09-03  Vincent Lefèvre  <vincent@vinc17.net>
5228
5229	[tests/tadd1sp.c] bug20190903:
5230	  * Fixed the second test for GMP_NUMB_BITS != 64.
5231	  * Updated comments.
5232
52332019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5234
5235	[src/add1sp.c] improved comment
5236
52372019-09-03  Vincent Lefèvre  <vincent@vinc17.net>
5238
5239	[src/add1sp.c] mpfr_add1sp2n: improved a comment.
5240
5241	[src/add1sp.c] Fixed the bug.
5242
5243	[tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too.
5244
5245	[tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t
5246	value, the ternary value and the flags, in order to get a failure
5247	even without "--enable-assert=full".
5248
5249	[tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf
5250	that calls mpfr_clear_flags first, so that if --enable-assert=full
5251	is used, the flags can be better checked too (and automatically).
5252	Now tadd1sp outputs with --enable-assert=full, as wanted:
5253	  add1  : ternary = -1, flags = inexact (8)
5254	  add1sp: ternary =  0, flags = none (0)
5255
5256	[src]
5257	  * exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with
5258	    --enable-assert=full (for better flags output in add1sp.c, etc.).
5259	  * mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2.
5260	  * add1sp.c: improve output of ternary value and flags.
5261
5262	[tests/tadd1sp.c] Updated comments of bug20190903.
5263
5264	[tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n
5265	(corresponding to the FIXME), yielding a failure with
5266	"--enable-assert=full".
5267	Note 1: The computed values are equal (with MPFR_RNDN), but one gets
5268	  Inexact sp = 0 | Inexact = -1
5269	  Flags sp = 10 | Flags = 10
5270	Note 2: The fact that the flags do not match the ternary value in the
5271	error message is due to a missing mpfr_clear_flags in the test.
5272
5273	[src/add1sp.c] mpfr_add1sp2n:
5274	  * Code refactoring, eliminating the unnecessary goto's.
5275	  * In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb.
5276	  * Improved code consistency.
5277	  * Added a FIXME about suspicious code. → Find a failing test and fix
5278	    the code, or explain the code if it is correct.
5279
52802019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5281
5282	[src/add1sp.c] fix for bug20190903
5283
52842019-09-03  Vincent Lefèvre  <vincent@vinc17.net>
5285
5286	[src/add1sp.c] Corrected a comment.
5287
5288	[tests/tadd1sp.c] More random tests in the special precisions
5289	GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger
5290	the bug due to r13574).
5291
5292	[tests/tadd1sp.c] Added testcase for bug due to r13574 (found with
5293	the other test programs, using --enable-assert=full).
5294
52952019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5296
5297	[src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb)
5298
52992019-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5300
5301	[src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax
5302
5303	added sub1sp1_extracted.c (not ready yet)
5304
53052019-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5306
5307	added github source for Jianyang Pan formal proof
5308
53092019-08-21  Vincent Lefèvre  <vincent@vinc17.net>
5310
5311	[tests/mpfr-test.h] At the end, with GCC, undef volatile if defined.
5312	Explanations:
5313	  With GCC, a macro "volatile" can be defined to test some special code
5314	  in mpfr-impl.h (code for compilers that define such a macro), but the
5315	  volatile keyword is necessary in some tests to avoid some GCC bugs.
5316	  Thus we need to undef this macro (if defined). We do that at the end,
5317	  so that mpfr-impl.h (included earlier) is not affected by this undef.
5318
5319	[tests/tget_set_d128.c] Updated a test with a non-canonical encoding:
5320	  * More meaningful name ("noncanonical" instead of "coverage").
5321	  * Output details in case of failure.
5322	  * Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64
5323	    and _Decimal128 constant (BID only).
5324
53252019-08-20  Vincent Lefèvre  <vincent@vinc17.net>
5326
5327	[doc/README.dev] Update concerning the "decimal-point character".
5328
5329	[doc/mpfr.texi] Changed "decimal point" to "decimal-point character",
5330	which is the term used in the ISO C standard. This is better as this
5331	character is also used with non-decimal bases: "decimal-point" is
5332	just the name of this character (as initially defined for base 10)
5333	and does not imply a number written in decimal.
5334
5335	[doc/mpfr.texi] Compatibility With MPF: added an item on the difference
5336	of the output format between mpf_out_str and mpfr_out_str.
5337
5338	[doc/mpfr.texi] Rewrote and completed the mpfr_out_str description.
5339
53402019-08-20  Vincent Lefèvre  <vincent@vinc17.net>
5341
5342	[src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the
5343	converted value is 0, it was not output, contrary to what is described
5344	in the MPFR manual. Note that this does not change the value of the
5345	printed string, so that this has no effect on applications that just
5346	re-read the value (with MPFR or another code).
5347	This was regarded as a bug rather than an error in the documentation,
5348	thus the output now looks more similar to what printf with %e yields;
5349	the GMP function mpf_out_str also outputs the exponent 0.
5350	Short discussion:
5351	  https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html
5352
5353	Note: The tests still pass, as this function is currently not really
5354	tested.
5355
53562019-08-14  Vincent Lefèvre  <vincent@vinc17.net>
5357
5358	[INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO.
5359
5360	[tests/tversion.c] When building with MinGW, output a line about it:
5361	MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition.
5362
5363	[src/set_d128.c] Moved a definition under the #if where it is used.
5364
53652019-08-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5366
5367	improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>)
5368
53692019-08-12  Vincent Lefèvre  <vincent@vinc17.net>
5370
5371	[doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0.
5372
5373	[doc/mpfr.texi] About mpfr_get_str / mpfr_out_str:
5374	  * In the mpfr_get_str description, changed argument "b" to "base" for
5375	    consistency with similar functions (now, only mpfr_get_str_ndigits
5376	    has b as this looks better in the formula). Also added a link to
5377	    mpfr_get_str_ndigits.
5378	  * In the mpfr_out_str description, replaced the ambiguous and even
5379	    incorrect sentence "enough digits so that op can be read back
5380	    exactly" (issues with trailing zeros and with the directed rounding
5381	    modes) by text similar to the one in the mpfr_get_str description
5382	    (keeping the reference to mpfr_get_str).
5383
5384	[src/out_str.c] Coding style (e is not a boolean).
5385
53862019-08-09  Vincent Lefèvre  <vincent@vinc17.net>
5387
5388	[tests/tout_str.c] Use mpfr_print_rnd_mode in a message.
5389
5390	[tests/tout_str.c] Code simplification: a test from r1888 on a
5391	random value was unnecessary (the log message of r1888 did not
5392	even correspond to the change).
5393
5394	[tests/tout_str.c] GNU coding style.
5395
5396	[tests/tout_str.c] Added missing newline characters in the output
5397	after calls to mpfr_out_str.
5398
5399	[tests/tout_str.c] By default, output the results to a file instead of
5400	/dev/null (this was already done only if opening /dev/null failed), so
5401	that they can be checked later. Fixed 2 issues at the same time:
5402	  * Do not close stdout (when an argument was provided).
5403	  * Remove the file at the end.
5404
5405	[tests/tfpif.c] GNU coding style.
5406
5407	[tests/tfpif.c] Added a comment about the use of perror.
5408
5409	[tests/tfpif.c] Also check fclose failure when the file has been opened
5410	for writing (typically an error in case the buffer cannot be written to
5411	the file). Call perror after all fopen/src_fopen/fclose failures to get
5412	the reason of the failure.
5413
5414	[tests/tfpif.c] In case of failure of fopen or src_fopen, write the
5415	error message on stderr (as one should do for errors not directly
5416	related to the tests, such as memory allocation and I/O errors).
5417	Also improved the error messages and made them consistent.
5418
54192019-08-06  Vincent Lefèvre  <vincent@vinc17.net>
5420
5421	[doc/mpfr.texi] Updated the month.
5422
54232019-08-05  Vincent Lefèvre  <vincent@vinc17.net>
5424
5425	[doc/mpfr.texi] Improved consistency with @item.
5426
54272019-08-02  Vincent Lefèvre  <vincent@vinc17.net>
5428
5429	For Makefile.am and each one in SUBDIRS, added the .POSIX target to
5430	select the POSIX behavior (since we do not require GNU "make").
5431	See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html
5432
5433	[tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES
5434	should still be written as a list of words separated by a space).
5435
5436	Fixed src/get_patches.c generation that was changed in r13542.
5437	  * src/Makefile.am, tools/get_patches.sh: since get_patches.sh is
5438	    no longer run from $(top_srcdir), the PATCHES absolute pathname
5439	    now needs to be passed in argument.
5440	  * src/Makefile.am: fixed the get_patches.c rule (the automatic
5441	    variable $< was used with the meaning "first prerequisite" of
5442	    GNU Make; an "exit 1" was missing, so that a failure did not
5443	    abort "make" immediately).
5444	  * tools/get_patches.sh: detect errors with "set -e".
5445
54462019-07-31  Vincent Lefèvre  <vincent@vinc17.net>
5447
5448	[src/Makefile.am] Define get_patches.c as a built source to avoid a
5449	non-portable make rule ("/" character in target), causing an error
5450	in FreeBSD with its "make" command. This change should be OK as the
5451	get_patches.sh script that generates get_patches.c is very simple
5452	and portable. As a consequence, put get_patches.c in CLEANFILES.
5453	See:
5454	  https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html
5455
5456	[Makefile.am] Fixed dist-hook for ck-mparam, which was run from a
5457	read-only directory with "make distcheck" while a temporary file
5458	is created in the current directory, yielding a failure (ck-mparam
5459	has been run in dist-hook since r12533 on 2018-04-03).
5460
5461	[tools/ck-mparam] Updated comment to warn that the source tree that is
5462	checked is the one that contains this script, not the one corresponding
5463	to the current working directory (the rule for the other scripts in the
5464	tools directory is currently different).
5465
5466	[tools/ck-mparam] This script can now be run from any directory (which
5467	must still be writable). This change has been done to be able to run
5468	it from the build directory, as if it is run via "make distcheck" and
5469	a dist-hook rule, then neither the top-level directory nor the tools
5470	directory is writable.
5471
54722019-07-23  Vincent Lefèvre  <vincent@vinc17.net>
5473
5474	[tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets
5475	are affected).
5476
5477	[tests/tget_set_d64.c] Improved a comment.
5478
54792019-07-22  Vincent Lefèvre  <vincent@vinc17.net>
5480
5481	[tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of
5482	non-canonical _Decimal64 constant.
5483
5484	[src/set_d64.c] In decimal64_to_string, log the memory representation
5485	of the _Decimal64 argument.
5486
5487	[src/set_d64.c] In decimal64_to_string, log the various fields of the
5488	_Decimal64 argument whose memory data is regarded as a double (as this
5489	is the current implementation of this function).
5490
5491	[tests/tget_set_d64.c] More output details in the noncanonical test.
5492
5493	[tests/tget_set_d64.c] Improved the noncanonical test, but this does not
5494	solve the failure with gcc-snapshot.
5495
5496	[tests/tget_set_d64.c] More meaningful name of a test with a
5497	non-canonical encoding and more details (fails with Debian's
5498	gcc-snapshot 10.0.0 20190718, trunk revision 273586).
5499
55002019-07-12  Vincent Lefèvre  <vincent@vinc17.net>
5501
5502	[doc/README.dev] "To make a release": mention -Wsuggest-attribute=...
5503	options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR).
5504
5505	Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be
5506	similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names.
5507
55082019-07-10  Vincent Lefèvre  <vincent@vinc17.net>
5509
5510	[doc/README.dev] Update concerning the MPFR manual:
5511	  * Updated information about the papersize issues (should be fixed,
5512	    but manual checking is recommended).
5513	  * Detailed English typography.
5514	  * Removed mention of the old texinfo bug 33329 (Debian bug 583558).
5515
55162019-07-08  Vincent Lefèvre  <vincent@vinc17.net>
5517
5518	[codespell.*] Update for codespell 1.15.0.
5519
5520	Fixed spelling mistakes found by codespell 1.15.0.
5521
55222019-07-06  Vincent Lefèvre  <vincent@vinc17.net>
5523
5524	[acinclude.m4] Added missing "const" qualifier to "char *" in a test;
5525	needed with GCC's "-Wwrite-strings -Werror".
5526
55272019-07-02  Vincent Lefèvre  <vincent@vinc17.net>
5528
5529	[src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when
5530	MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member
5531	(ISO C99) instead of a zero-length array (GNU extension, forbidden in
5532	ISO C).
5533
5534	[tests/*.c] Added missing "const" qualifier to "char *" when this
5535	involves string literals (detected by using GCC's -Wwrite-strings
5536	option, via the default -Wdiscarded-qualifiers warning).
5537
55382019-07-01  Vincent Lefèvre  <vincent@vinc17.net>
5539
5540	[acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect
5541	clang's LTO.
5542	Note: no longer use $FGREP (see r13513) as its status is unclear on
5543	non-POSIX systems (though very probably available when $EGREP is).
5544
5545	[acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the
5546	format is unknown and it is detected that LTO has been used, output
5547	"recognition prevented by LTO".
5548	Note: at the same time, since AC_PROG_FGREP was needed, replaced
5549	$EGREP by $FGREP when applicable.
5550
5551	[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a
5552	warning saying that this does not work with GCC's LTO (gcc -flto ...).
5553
55542019-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5555
5556	[src/sub1sp.c] simplified code of sub1sp1 for bx = cx
5557
55582019-06-06  Vincent Lefèvre  <vincent@vinc17.net>
5559
5560	[src/sub1sp.c] About r13506-13509 and optimization: added a comment
5561	about Clang after some tests (without giving details, as in practice,
5562	this is more complex... but this is the general idea).
5563
55642019-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5565
5566	[src/sub1sp.c] fixed typo
5567
55682019-06-06  Vincent Lefèvre  <vincent@vinc17.net>
5569
5570	[src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization
5571	on x86/x86_64 (see r13506 and r13507).
5572
5573	[src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the
5574	new code and give more information to the compiler; added comments
5575	about this optimization issue.
5576
55772019-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5578
5579	[src/sub1sp.c] small speedup (following discussion with Félix Breton)
5580
55812019-06-01  Vincent Lefèvre  <vincent@vinc17.net>
5582
5583	[doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS.
5584
5585	[doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description.
5586
5587	[src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_*
5588	macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test
5589	code not relying on IEEE floats.
5590
55912019-05-24  Vincent Lefèvre  <vincent@vinc17.net>
5592
5593	[src/mpfr-impl.h] Code simplification with the generic
5594	LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not
5595	needed as used only once, thus removed). Improved the related comment.
5596
5597	[src] Instead of including <float.h> in volatile.c (r13493), do that
5598	unconditionally in mpfr-impl.h to make sure that macro definitions
5599	in this header file are always correct: some definitions depend on
5600	various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG.
5601
56022019-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5603
5604	applied patch from #21762
5605	(https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136)
5606
56072019-05-15  Vincent Lefèvre  <vincent@vinc17.net>
5608
5609	[doc/README.dev] Added another URL on undefined behavior.
5610
56112019-04-30  Vincent Lefèvre  <vincent@vinc17.net>
5612
5613	[doc/README.dev] Note that -static-libasan does not work with MPFR.
5614
5615	[doc/README.dev] Update about the use of GCC's "-fsanitize=address".
5616
56172019-04-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5618
5619	[src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux
5620
5621	Note: This bug was introduced in r12066.
5622
56232019-04-29  Vincent Lefèvre  <vincent@vinc17.net>
5624
5625	[tools/ck-version-info] Minor corrections in a comment.
5626
5627	[doc/README.dev] Update about the VERSION file:
5628	  * Added a paragraph on the meaning of the "-dev" suffix.
5629	  * Removed a confusing and useless "-dev" in an example.
5630
5631	[tools/ck-news] Changed the condition of the test for FIXME or TODO:
5632	Previously it was disabled only for -dev versions. Now it is enabled
5633	only for releases and release candidates. This will allow snapshots,
5634	for which the NEWS file may still contain a FIXME or TODO.
5635
5636	[tools/ck-version-info] Corrected check. Added explanations in comments.
5637
5638	[tools/ck-version-info] Better error message if $vinfo is not defined.
5639
5640	[src/Makefile.am] Added a comment.
5641
56422019-04-25  Vincent Lefèvre  <vincent@vinc17.net>
5643
5644	[doc/mpfr.texi] Updated the month.
5645
5646	[doc/mpfr.texi] Updated the list of rounding modes in the description
5647	of the mpfr_print_rnd_mode function. Choose the same order as in the
5648	"Rounding Modes" section in "MPFR Basics".
5649
5650	[tools/mpfrlint] Lists of rounding modes: also check with the
5651	"Rounding Modes" section in "MPFR Basics".
5652
5653	[src/print_rnd_mode.c] Added a comment to remember to update the manual.
5654
5655	[tools/mpfrlint] Check that the lists of rounding modes in
5656	src/print_rnd_mode.c and doc/mpfr.texi are identical.
5657
5658	[src/mpfr.h] Added a blank line (grouping of function declarations).
5659
5660	Added support for GCC's returns_nonnull attribute (with GCC 4.9+).
5661
5662	[TODO] Update about GCC's nonnull and returns_nonnull attributes.
5663
56642019-04-16  Vincent Lefèvre  <vincent@vinc17.net>
5665
5666	New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings
5667	with GCC 7+. This macro also makes the code more readable by bringing
5668	the attention on an unusual fallthrough in a switch case.
5669	  * src/mpfr-impl.h: define this macro.
5670	  * src/vasprintf.c: use this macro in a case of fallthrough.
5671
56722019-04-15  Vincent Lefèvre  <vincent@vinc17.net>
5673
5674	[src/vasprintf.c] Minor bug fix: when an integer is to be read for
5675	  the field width or precision, regard strings like "17*" as invalid
5676	  instead of regarding it as "*" (ignoring the integer that precedes,
5677	  except in case of overflow). In C's printf, such an invalid string
5678	  yields undefined behavior, but in MPFR, we normally print the
5679	  invalid format specifier as a literal string in such a case.
5680	  Bug detected with -Wimplicit-fallthrough from GCC 7+.
5681	[tests/tsprintf.c] Added non-regression test.
5682
56832019-04-02  Vincent Lefèvre  <vincent@vinc17.net>
5684
5685	[configure.ac] Updated --enable-logging description.
5686
5687	[acinclude.m4] When logging support is requested, run a test to check
5688	that code with nested functions and the 'cleanup' attribute can be
5689	compiled, as these features are needed.
5690
5691	[configure.ac] AC_ARG_ENABLE(float128,...): updated comment and
5692	description.
5693
5694	[configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...).
5695	  * Removed information about very old GCC versions.
5696	  * _Decimal128 is considered too, in addition to _Decimal64.
5697	  * No longer just a GCC extension, but part of ISO/IEC TS 18661.
5698	  * Added a FIXME for new options about _Decimal64 and _Decimal128.
5699
5700	[configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be.
5701
57022019-03-29  Vincent Lefèvre  <vincent@vinc17.net>
5703
5704	[src/vasprintf.c]
5705	  * Corrected FIXME by modifying the assertion. The failure could occur
5706	    only when mpfr_intmax_t has the same size as int (which is the case
5707	    when long = int and either intmax_t and long long are not available
5708	    or intmax_t = long = int), and only when INT_MIN is provided as a
5709	    field width argument.
5710	  * Related to that, updated a test to improve optimization.
5711	  * Added comments.
5712
5713	[src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure
5714	with sizeof(mpfr_intmax_t) = 4 (which was not tested until now).
5715
57162019-03-29  Vincent Lefèvre  <vincent@vinc17.net>
5717
5718	Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc.
5719
5720	The issues were:
5721	  * The build of the tests (make check) could fail with CFLAGS implying
5722	    "-std=c90 -Werror=format", i.e. if intmax_t was available but the
5723	    use of the "j" printf length modifier made the compilation fail
5724	    (its unconditional use was incorrect anyway).
5725	  * MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h,
5726	    with inconsistent usage.
5727
5728	Detailed changes:
5729	  * acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which
5730	    could be incorrect (large numbers were not tested to select its
5731	    value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf()
5732	    in addition to gmp_sprintf() as it is now also used in the tests;
5733	    updated some comments and messages.
5734	  * src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had
5735	    been added due to
5736	      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698
5737	    with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8
5738	    (released 6 years ago), so that they are no longer needed.
5739	  * src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now
5740	    the largest integer type available and fully working (in particular
5741	    with printf), thus it may be smaller than intmax_t.
5742	  * doc/README.dev: updated the description of mpfr_intmax_t, etc.
5743	  * tests/tversion.c: output sizeof(mpfr_intmax_t) too.
5744	  * Various .c files in src and tests related to (u)intmax_t: use
5745	    INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698
5746	    (mentioned above) no longer occurs and mpfr_intmax_t may be smaller
5747	    than intmax_t; use the "j" printf length modifier instead of
5748	    MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J"
5749	    (only the tests are concerned, so that this is not an issue).
5750
57512019-03-28  Vincent Lefèvre  <vincent@vinc17.net>
5752
5753	[src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's
5754	memory sanitizer.
5755
5756	[src/urandomb.c] Added a FIXME (use-of-uninitialized-value with
5757	Clang's memory sanitizer).
5758
57592019-03-13  Vincent Lefèvre  <vincent@vinc17.net>
5760
5761	[src/printf.c] Removed unused definitions.
5762
57632019-03-01  Vincent Lefèvre  <vincent@vinc17.net>
5764
5765	[doc/README.dev] Update about coverage:
5766	  * Mention not to enable optimizations.
5767	  * Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as
5768	    this is what is used by the tools/coverage script (note: this
5769	    is a synonym when compiling, but also allows the right options
5770	    to be used when linking, thus might be better in doubt).
5771
57722019-02-04  Vincent Lefèvre  <vincent@vinc17.net>
5773
5774	[tests] Use MPFR_DBL_* macros when necessary.
5775
5776	[tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}".
5777
5778	[tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones.
5779
5780	[tools/mpfrlint] Improved message about division by zero.
5781
5782	[doc/README.dev] Improved description of MPFR_ERRDIVZERO.
5783	[tools/mpfrlint] Added a comment about division by zero.
5784
5785	[tools/mpfrlint] Check that native FP division by zero is not used.
5786
57872019-01-31  Vincent Lefèvre  <vincent@vinc17.net>
5788
5789	[src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP)
5790	as usual and like in check-gmp-symbols.
5791
57922019-01-30  Vincent Lefèvre  <vincent@vinc17.net>
5793
5794	[configure.ac] Updated comment about default options in CFLAGS for GCC.
5795
5796	Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS).
5797	  * configure.ac: remove -pedantic unconditionally; since r7044, it was
5798	    removed only when logging was enabled, as at that time only logging
5799	    was using C extensions.
5800	  * NEWS: added a line about this change.
5801	  * INSTALL: updated the note about CC / CFLAGS, removing the obsolete
5802	    reference to GMP 4.3.0 at the same time.
5803
58042019-01-28  Vincent Lefèvre  <vincent@vinc17.net>
5805
5806	[tools/announce-text] Corrected subject for Release Candidate > 1.
5807
58082019-01-25  Vincent Lefèvre  <vincent@vinc17.net>
5809
5810	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
5811
5812	[NEWS] Update about shared caches.
5813
5814	[NEWS] Added: "Shared caches: cleanup."
5815
5816	[src/mpfr-thread.h] Fixed the lock macros:
5817	  * in case of failure, one must abort, otherwise this would generally
5818	    be undefined behavior;
5819	  * added missing "do {} while (0)" (currently not mandatory).
5820
5821	[src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and
5822	the shared cache.
5823
5824	[acinclude.m4] Avoid a warning with the pthread_rwlock_t test,
5825	as it is an error with -Werror.
5826
5827	[acinclude.m4] Fixed another C++ compatibility issue detected by
5828	the -Werror=c++-compat GCC option (it led the "long double" format
5829	to be unknown).
5830
58312019-01-24  Vincent Lefèvre  <vincent@vinc17.net>
5832
5833	[tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum)
5834	detected by the -Werror=c++-compat GCC option.
5835
58362019-01-23  Vincent Lefèvre  <vincent@vinc17.net>
5837
5838	[configure.ac] By default (i.e. if CFLAGS is not already set), if
5839	the compiler is GCC not in C++ mode, add the -Wc++-compat warning
5840	since we expect the code to compile with a C++ compiler.
5841
58422019-01-13  Vincent Lefèvre  <vincent@vinc17.net>
5843
5844	[tests/tcheck.c] Corrected meaningless error message.
5845
5846	[doc/mpfr.texi] Minor correction for non-tex versions.
5847	Thanks to Trevor Spiteri for the bug report.
5848
58492019-01-09  Vincent Lefèvre  <vincent@vinc17.net>
5850
5851	Moved the compatibility test of the configure options even earlier, from
5852	acinclude.m4 to configure.ac, just after the code that defines them.
5853	Also added an associated AC_MSG_CHECKING message for better clarity.
5854
5855	[acinclude.m4] Simplified a message.
5856
5857	[tests/tversion.c] When the shared cache is enabled, also output the
5858	lock method (this information has been lost in r13032).
5859
5860	[acinclude.m4] When checking support for POSIX threads (pthread), also
5861	check that pthread_rwlock_t is supported, as it is needed by MPFR and
5862	conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>).
5863
5864	Cleaned up configure code related to threading and the shared cache.
5865	  * acinclude.m4:
5866	      - detect incompatibilities between configure options at the
5867	        beginning of MPFR_CONFIGS, forcing enable_thread_safe to
5868	        "no" or "yes" when necessary, so that the subsequent code
5869	        can rely on that;
5870	      - check ISO C11 thread support and/or POSIX thread support
5871	        only when necessary;
5872	      - handle --enable-shared-cache early in MPFR_CONFIGS, because
5873	        the use of POSIX threads (pthread) may need to change CC,
5874	        CFLAGS, and LIBS (thus affecting other tests);
5875	      - test $enable_shared_cache instead of $mpfr_want_shared_cache;
5876	      - removed the now useless MPFR_CHECK_SHARED_CACHE function.
5877	  * configure.ac: no longer set the mpfr_want_shared_cache variable,
5878	    as enable_shared_cache (now used) already has the same usage.
5879	Note: currently,
5880	  ./configure --enable-shared-cache CFLAGS="-std=c99"
5881	still succeeds and still makes the compilation fail. This seems to
5882	be due to a limitation of AX_PTHREAD, which just tests linking, not
5883	compilation.
5884
5885	[acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache
5886	was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread
5887	(autoconf-archive). This is not guaranteed to work, but according to
5888	the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC",
5889	not setting it will probably not work either.
5890
5891	[src/mpfr-impl.h] Added a comment about the cache-related types, which
5892	depend on the locking methods.
5893
58942019-01-08  Vincent Lefèvre  <vincent@vinc17.net>
5895
5896	[tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in
5897	the GCC trunk.
5898
58992019-01-07  Vincent Lefèvre  <vincent@vinc17.net>
5900
5901	[tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as
5902	the -u option is not supported by NetBSD.
5903
5904	Updated files:
5905	  * COPYING from https://www.gnu.org/licenses/gpl-3.0.txt
5906	  * COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt
5907	These are URL updates and cosmetic changes.
5908
5909	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
5910	Note: For r5400, this changes an incorrect update done via r13372 back
5911	to the old log message, as the URL in this log message here describes
5912	a change in one of the files.
5913
5914	[doc/README.dev] Updated some URL's (http → https).
5915
5916	[doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f".
5917
5918	Updated the www.gnu.org URL's (http → https) on all the files with:
5919	  perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.)
5920	under zsh.
5921
5922	[tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build
5923	is still affected with the latest gcc-snapshot version (20190102-1)
5924	when using --with-gmp-build=... together with --enable-assert.
5925
59262019-01-04  Vincent Lefèvre  <vincent@vinc17.net>
5927
5928	[tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build
5929	seems no longer affected by recent gcc-snapshot versions.
5930
59312019-01-01  Vincent Lefèvre  <vincent@vinc17.net>
5932
5933	[doc/mpfr.texi] Updated the month.
5934
5935	Copyright notice update: added 2019 with
5936	  perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/
5937	               " ".($1||"$2-").($2+1)/e' **/*(^/)
5938	under zsh. Removed 2018 from the example in the doc/README.dev file.
5939
59402018-12-31  Vincent Lefèvre  <vincent@vinc17.net>
5941
5942	[tests/tfmma.c] Added double_rounding test to trigger errors before
5943	the fix in mpfr_set_1_2 (set.c r13347).
5944
5945	[src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once.
5946
5947	[src/set.c] Clarified the mpfr_set_1_2 description.
5948
5949	[src/set.c] For mpfr_set_1_2, corrected the comments and simplified the
5950	generic algorithm (there is no need to distinguish the rounding modes,
5951	except for the double-rounding test, and this simplification avoids the
5952	non-portable inex | inex2).
5953
59542018-12-20  Vincent Lefèvre  <vincent@vinc17.net>
5955
5956	[doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by
5957	mini-gmp.h and yields a failure when building mini-gmp.c (which has
5958	its own definition of GMP_LIMB_BITS, equivalent but not identical).
5959
5960	[configure.ac] Support mini-gmp with reduced limb size, in the case
5961	GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of
5962	mp_limb_t instead of the size of unsigned long.
5963
5964	[doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'"
5965	error.
5966
59672018-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5968
5969	[doc/mini-gmp] added note about using mini-gmp (development version) with
5970		       reduced limb size
5971
5972	[src/set.c] fixed double-rounding bug in mpfr_set_1_2
5973	[tests/tset.c] added corresponding tests
5974
5975	[tests/tset.c] added a test of test_set_1_2(), which currently fails
5976
5977	[tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation
5978
59792018-12-13  Vincent Lefèvre  <vincent@vinc17.net>
5980
5981	[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
5982
5983	[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.
5984
5985	[TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj.
5986
5987	[TODO] Removed obsolete "check again coverage" from 2007.
5988
59892018-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
5990
5991	[src/sqr.c] fixed same issue as in r13338 and r13339
5992
5993	[src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t)
5994		    (same issue as in r13338)
5995
59962018-12-12  Vincent Lefèvre  <vincent@vinc17.net>
5997
5998	[src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code;
5999	corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an
6000	issue: the expression b1 - 1 + cc was computed in unsigned arithmetic,
6001	then converted to mpfr_exp_t, with an implementation-defined result
6002	when -1 was expected, i.e. with b1 = cc = 0).
6003
6004	[src/mul.c] Corrected a typo in a comment.
6005
6006	[src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2.
6007
60082018-12-11  Vincent Lefèvre  <vincent@vinc17.net>
6009
6010	[src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB
6011	not defined), no longer assume GMP_NUMB_BITS <= 32.
6012
6013	[src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior
6014	on shift counts, which must be nonnegative and smaller than the width
6015	of the type of the shifted value).
6016
60172018-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6018
6019	[src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp)
6020
6021	[src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb
6022
60232018-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6024
6025	[doc/mini-gmp] added remark about random functions
6026
6027	[tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8
6028	and GMP_CHECK_RANDOMIZE=1544431052619574)
6029
60302018-12-10  Vincent Lefèvre  <vincent@vinc17.net>
6031
6032	[tools/mpfrlint] Added a test for some avoidable use of gmp_printf.
6033
60342018-12-07  Vincent Lefèvre  <vincent@vinc17.net>
6035
6036	[tests]
6037	  * mpfr-test.h, tests.c: added n_trace function to output a mpn.
6038	  * tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...),
6039	    which is not available with mini-gmp.
6040
60412018-12-06  Vincent Lefèvre  <vincent@vinc17.net>
6042
6043	[tests/tcan_round.c] Corrected all the error messages for mini-gmp.
6044
6045	[tests/tcan_round.c] Corrected error message for mini-gmp.
6046
60472018-12-05  Vincent Lefèvre  <vincent@vinc17.net>
6048
6049	[tests/tpow_z.c] Another fix and minor improvements.
6050
6051	[tests/tpow_z.c] Fixed a test (midpoint case) that was failing
6052	with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569.
6053
6054	[tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary
6055	value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8
6056	and GMP_CHECK_RANDOMIZE=1544025040809270).
6057
6058	[tests/tpow_z.c] Improved error message.
6059
6060	[src/mpfr-mini-gmp.c] Added missing "void" in function prototype.
6061
6062	[configure.ac] When building against mini-gmp, check the availability of
6063	lrand48, in particular because it is not part of the ISO C standard.
6064
60652018-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6066
6067	[src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error)
6068
6069	[src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad)
6070			      and fixed gmp_urandomm_ui
6071
60722018-12-05  Vincent Lefèvre  <vincent@vinc17.net>
6073
6074	[src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN
6075	unconditionally, as n == 0 is always forbidden.
6076
60772018-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6078
6079	[src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the
6080			      compilation fail for 8-bit limbs, while the code
6081			      was valid for n <= 256 in that case
6082
60832018-12-04  Vincent Lefèvre  <vincent@vinc17.net>
6084
6085	[src/mpfr-mini-gmp.c] Fixed types.
6086
6087	[src/mpfr-mini-gmp.c] Added a static assertion to make sure that
6088	the MPFR_ASSERTD added in r13312 is valid.
6089
60902018-12-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6091
6092	[src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values
6093
60942018-12-03  Vincent Lefèvre  <vincent@vinc17.net>
6095
6096	[src/set_d.c] Improved comment.
6097
60982018-11-29  Vincent Lefèvre  <vincent@vinc17.net>
6099
6100	[tests/Makefile.am] About r13308, added references to the bugs.
6101
6102	[tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield
6103	error messages when running the tests with LOG_COMPILER=wine (for builds
6104	with MinGW).
6105
6106	[tests/tversion.c] Updated a comment about an output issue with MinGW,
6107	with the test run under Wine (which is really the cause of the issue).
6108
61092018-11-28  Vincent Lefèvre  <vincent@vinc17.net>
6110
6111	[tests/tstrtofr.c] In case of failure of some particular test, output
6112	the probable cause of this failure (GCC bug 86554) with a workaround.
6113
61142018-11-27  Vincent Lefèvre  <vincent@vinc17.net>
6115
6116	[tests/tversion.c] Updated a comment about a printf issue with MinGW.
6117
6118	[src/strtofr.c] Added a FIXME about the error analysis (info that was
6119	part of the FIXME resolved in r13303 and inadvertently dropped).
6120
6121	[src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to
6122	bug20181127 with 8-bit limbs (micro-gmp/8).
6123
6124	[tests/tstrtofr.c] Added bug20181127 (test found with random_tests),
6125	which fails with 8-bit limbs (micro-gmp/8).
6126
6127	[src/mpfr-impl.h] Added a comment with a warning concerning the
6128	  meaning of MPFR_EXP_FSPEC.
6129	[tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test
6130	  for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2.
6131
6132	[tests/tdiv.c] Fixed bad format string for an error message, detected
6133	with -D_MPFR_PREC_FORMAT=2 (using -Werror...).
6134
61352018-11-26  Vincent Lefèvre  <vincent@vinc17.net>
6136
6137	[tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests
6138	mpfr_set_str() only. This test was introduced in r13164.
6139
61402018-11-23  Vincent Lefèvre  <vincent@vinc17.net>
6141
6142	[TODO] + More UBF functions.
6143
6144	[doc/mpfr.texi] Updated the month.
6145
6146	[src/strtofr.c] Changed some unsigned long to unsigned int.
6147
6148	[src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential
6149	integer overflow in very high precision if mp_size_t < mpfr_prec_t.
6150
61512018-11-22  Vincent Lefèvre  <vincent@vinc17.net>
6152
6153	[src/strtofr.c] Updated FIXME, due to new tests added to
6154	tests/tstrtofr.c in r13278-13279,13286-13288.
6155
6156	[src/nbits_ulong.c] Added missing initialization from r13269
6157	when MPFR_LONG_WITHIN_LIMB is not defined.
6158
6159	[tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to
6160	the old mpfr_get_str description (see r13283).
6161	Note: with the later fix r13289, a test still fails with 8-bit limbs
6162	(incorrect exponent, possibly corresponding to the FIXME just before
6163	"exp = GMP_NUMB_BITS - count;" in src/strtofr.c).
6164
6165	[tests/tstrtofr.c] Added comments, including a FIXME.
6166
6167	[tests/tstrtofr.c] Resolved the FIXME for the random tests, and
6168	increased the number of tests to trigger a failure.
6169
6170	MPFR manual: corrected/completed the mpfr_get_str description in order
6171	to follow the historical behavior and GMP's mpf_get_str function.
6172	(Discussion in the Trier meeting.)
6173
6174	[src/get_str.c] Code style.
6175
6176	[doc/README.dev] Update about issues with mixing signed/unsigned types.
6177
6178	[doc/README.dev] Added a note about the disallowed conversions between
6179	function pointers and other kinds of pointers (including to void *).
6180
61812018-11-20  Vincent Lefèvre  <vincent@vinc17.net>
6182
6183	[tests/tstrtofr.c] Added a FIXME, which explains the current failure.
6184	But there is currently an inconsistency in mpfr_get_str, whose digits
6185	are not specified:
6186	  https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html
6187
6188	[tests/tstrtofr.c] Added random tests, which currently fail.
6189
61902018-11-19  Vincent Lefèvre  <vincent@vinc17.net>
6191
6192	[src/round_prec.c] mpfr_can_round_raw: improved the code structure about
6193	rnd1 and rnd2, making clear that they are not changed several times;
6194	avoid the use of cc with 2 different meanings in the same code path.
6195
61962018-11-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6197
6198	[src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a
6199			   directed rounding, and the input is exact
6200
62012018-11-16  Vincent Lefèvre  <vincent@vinc17.net>
6202
6203	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment.
6204	In short, the current tstrtofr.c tests seem to always be hard-to-round
6205	cases. The consequence is that some parts of the code are run, but not
6206	completely tested, because for these cases, some intermediate results,
6207	potentially incorrect, are thrown out due to the next Ziv iteration!
6208
6209	[src/strtofr.c] parsed_string_to_mpfr: minor changes.
6210
6211	[src/strtofr.c] parsed_string_to_mpfr: added log messages.
6212
6213	[src/strtofr.c] Minor change to use MPFR_ASSERTD.
6214
6215	[src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for
6216	MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0).
6217
6218	[src/nbits_ulong.c] Code refactoring. Added {pre,post}condition.
6219
6220	[src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast.
6221
6222	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again,
6223	another issue).
6224
6225	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there
6226	is another issue to solve first).
6227
6228	Removed trailing whitespace.
6229
6230	[src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code
6231	in this function or incomplete tests).
6232
6233	Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment
6234	is ensured by the code itself, and GCC cannot check just from a cast).
6235
6236	[src/strtofr.c] parsed_string_to_mpfr: updated comments.
6237
62382018-11-15  Vincent Lefèvre  <vincent@vinc17.net>
6239
6240	[src/strtofr.c] parsed_string_to_mpfr: more code review, with minor
6241	changes and corrections + a FIXME.
6242
6243	[src/strtofr.c] Typo.
6244
6245	[src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8.
6246
6247	[src/strtofr.c] Updated a comment: the issue with mpn_set_str found
6248	in 2013-12 (see r8722) was actually an error in the GMP manual.
6249
6250	[src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments.
6251
62522018-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6253
6254	[tests/tcan_round.c] fixed some TODOs, which exposes a bug
6255
62562018-11-15  Vincent Lefèvre  <vincent@vinc17.net>
6257
6258	[src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected
6259	comments; added an assertion; minor change of a test.
6260
62612018-11-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6262
6263	[src/mulders.c] fixed issue with --enable-gmp-internals
6264	[tune/tuneup.c] likewise
6265	(see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html)
6266
62672018-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6268
6269	[src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html
6270
62712018-10-07  Vincent Lefèvre  <vincent@vinc17.net>
6272
6273	[codespell.ignore] Also ignore "ue" (codespell 1.14).
6274
62752018-10-01  Vincent Lefèvre  <vincent@vinc17.net>
6276
6277	[configure.ac,src/Makefile.am] About the --with-mini-gmp support, since
6278	there are some advantages with the new code, one will probably not go
6279	back. Thus removed the references to the Automake 1.15 bug and to the
6280	old code. Also removed the mini_gmp_path=. workaround needed with the
6281	old code (even with Automake 1.16), which had been added in r13217.
6282	Also slightly improved the setup for mini-gmp.
6283
6284	[doc/with-mini-gmp.patch] Updated comment.
6285
6286	[configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in
6287	Automake 1.15 automatic dependency tracking: instead of using mini-gmp
6288	directly in an external directory with a $(mini_gmp_path) variable in
6289	src/Makefile.am, make the configure script add symbolic links to the
6290	mini-gmp sources in the build directory, and use these symbolic links
6291	for the MPFR build (as if they were plain files).
6292	Tested under various conditions: static and shared; separate source and
6293	build directories; changing the mini-gmp version without "make clean".
6294
62952018-09-28  Vincent Lefèvre  <vincent@vinc17.net>
6296
6297	Added doc/with-mini-gmp.patch file (for the developers):
6298	Modifications to configure.ac and src/Makefile.am that had been done
6299	for --with-mini-gmp support. This is kept for the reference, as changes
6300	may be needed as a workaround to a bug fixed in GNU Automake 1.16, and
6301	other future changes might break things (to remember what was working
6302	at this time).
6303
63042018-09-20  Vincent Lefèvre  <vincent@vinc17.net>
6305
6306	[doc/mini-gmp] Update.
6307
63082018-09-19  Vincent Lefèvre  <vincent@vinc17.net>
6309
6310	[Makefile.am] Distribute the doc/mini-gmp file.
6311	[configure.ac] For --with-mini-gmp, say:
6312	  "(experimental, please read doc/mini-gmp file)"
6313
6314	[src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files
6315	(not part of MPFR) are not put in the tarballs by "make dist".
6316
6317	Removed --enable-mini-gmp configure option.
6318	  * NEWS: say that it is replaced by --with-mini-gmp.
6319	  * configure.ac: --enable-mini-gmp removed.
6320	  * doc/mini-gmp: update.
6321
6322	[src/mpfr-mini-gmp.c] Missing #else (from r13156).
6323
6324	[configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this
6325	macro is not already defined in mini-gmp.h (this is done a bit like
6326	with --enable-mini-gmp, but the handling in this option is buggy as
6327	GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally,
6328	though is most cases the contents of the macros are the same).
6329
6330	[configure.ac] Do not split "Setup GMP detection". When building
6331	MPFR against mini-gmp, do not run any "Setup GMP detection" test
6332	(in particular, no longer check gmp.h, as it is useless).
6333
6334	[src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition,
6335	and this macro needs to be usable in preprocessor tests, and sizeof and
6336	types are not available at this level. GMP_NUMB_BITS must be defined by
6337	mini-gmp.h, by the configure script, or by the user.
6338
6339	[tools/mpfrlint] Update due to r13221.
6340
63412018-09-18  Vincent Lefèvre  <vincent@vinc17.net>
6342
6343	[tests/Makefile.am] Run tversion at the beginning of the tests,
6344	then show its output and svnversion's output too.
6345
6346	[src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that
6347	does not define GMP_NUMB_BITS, such as the official one).
6348
6349	[tests/random2.c] Avoid undefined behavior on shift count.
6350
6351	[src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro.
6352
6353	[configure.ac] Avoid a configure failure with automatic dependency
6354	tracking when --with-mini-gmp is not used (bug in Automake?).
6355
6356	[NEWS] + Mini-gmp support via the --with-mini-gmp configure option.
6357
63582018-09-17  Vincent Lefèvre  <vincent@vinc17.net>
6359
6360	Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp
6361	configure option to build MPFR against mini-gmp (instead of GMP).
6362
6363	[doc/mini-gmp] Update.
6364
6365	Merged the latest changes from the trunk.
6366
6367	[src/mul_ui.c] Better code organization (with the MPFR_RET at the right
6368	place). Corrected indentation after #else.
6369
63702018-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6371
6372	[src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused)
6373	[src/mul_ui.c] fixed compiler warning for limb < long
6374
63752018-09-17  Vincent Lefèvre  <vincent@vinc17.net>
6376
6377	[src/Makefile.am] Update for mini-gmp (install mini-gmp.h).
6378
6379	Merged the latest changes from the trunk (bug fix for 8-bit limb).
6380
6381	[tests/random2.c] Fix for 8-bit limb.
6382
6383	Merged the latest changes from the trunk.
6384
6385	[tests/tests.c] Define only one buffer in test_version().
6386
6387	[tests/random2.c] Improved code by using MPFR_LIMB_* macros.
6388
6389	[src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int
6390	(e.g. 16-bit or 8-bit limb), as in such a case, integer promotion
6391	transforms mp_limb_t to int.
6392
63932018-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6394
6395	[tests/tests.c] fixed compiler warning
6396
63972018-09-14  Vincent Lefèvre  <vincent@vinc17.net>
6398
6399	Merged the latest changes from the trunk (bug fixes).
6400
6401	[src/get_si.c] Code refactoring/simplification like what has been
6402	done for get_ui.c in r13185, fixing also an integer overflow when
6403	MPFR_LONG_WITHIN_LIMB is not defined.
6404
6405	[tests/random2.c] Fix for 16-bit limb.
6406
6407	[src/add1.c] Fix for 16-bit limb.
6408
6409	[src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081.
6410
6411	Completed --with-mini-gmp support (not fully tested).
6412
6413	Merged the latest changes from the trunk.
6414
6415	[src/Makefile.am] Moved a comment in a better place.
6416
6417	[configure.ac] Define MINI_GMP Automake conditional (AM_CONDITIONAL).
6418
64192018-09-14  Vincent Lefèvre  <vincent@vinc17.net>
6420
6421	Started to implement --with-mini-gmp (building mini-gmp and linking
6422	not correctly handled yet, thus "make check" failure is expected).
6423
6424	[Added during the Subversion to Git conversion]
6425	This commit includes a merge of r13191 from the trunk.
6426
64272018-09-14  Vincent Lefèvre  <vincent@vinc17.net>
6428
6429	[configure.ac] Typo.
6430
6431	[configure.ac] Updated comments about configure options for mini-gmp.
6432
64332018-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6434
6435	[tests/tsin.c] reduce REDUCE_EMAX with mini-gmp
6436
64372018-09-13  Vincent Lefèvre  <vincent@vinc17.net>
6438
6439	[src/get_ui.c] Added assertions.
6440
6441	[src/get_ui.c] Code refactoring/simplification.
6442
6443	[src/sin_cos.c] Added assertions protecting against buffer overflow.
6444
64452018-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6446
6447	[src/sin_cos.c] fix for small limb size
6448
64492018-09-12  Vincent Lefèvre  <vincent@vinc17.net>
6450
6451	[src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp,
6452	we must not declare it (otherwise one would get a link failure instead
6453	of a compilation failure if gmp_version is used by mistake).
6454
6455	[tests/tests.c] Improved change in r13179 for mini-gmp.
6456
6457	[configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is
6458	used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp
6459	(future option) is given.
6460
64612018-09-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6462
6463	[tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0)
6464
64652018-09-12  Vincent Lefèvre  <vincent@vinc17.net>
6466
6467	[src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is
6468	included only in mpfr-impl.h, which already does these #include's.
6469
6470	[src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP
6471	are not both defined.
6472
6473	[src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include
6474	is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is
6475	defined).
6476
6477	[src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor
6478	test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions.
6479
6480	[src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts.
6481
6482	[src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short
6483	and was yielding a segmentation fault).
6484
64852018-09-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6486
6487	[src/rec_sqrt.c] fixed for 8-bit limb
6488
6489	[tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS
6490
6491	[src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done
6492
6493	[tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs
6494
64952018-09-11  Vincent Lefèvre  <vincent@vinc17.net>
6496
6497	[src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual.
6498
64992018-09-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6500
6501	[src/strtofr.c] fix for 8-bit limb
6502
6503	[src/strtofr.c] added comment
6504
65052018-09-10  Vincent Lefèvre  <vincent@vinc17.net>
6506
6507	[doc/mpfr.texi] Updated the month.
6508
65092018-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6510
6511	[src/strtofr.c] fix from r13163 was incorrect
6512	[tests/tget_str.c] added a testcase, and fixed an error message
6513
65142018-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6515
6516	[src/strtofr.c] resolved a FIXME
6517
6518	[tests/tdiv_ui.c] fixed corner_cases() test
6519
6520	[src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long
6521
65222018-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6523
6524	[tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64
6525
6526	[src/mpfr-mini-gmp.c] fixed another compiler warning
6527
6528	[src/get_ui.c] fixed compiler warning
6529
6530	some fixes for 8-bit limb support
6531
6532	adapt to 8-bit limbs (work in progress)
6533
6534	[tests/tl2b.c] extend to 8-bit limb
6535
6536	[src/mpfr-gmp.h] fix for 8-bit limb
6537
65382018-09-07  Vincent Lefèvre  <vincent@vinc17.net>
6539
6540	[doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various
6541	places to avoid unwanted line breaking.
6542
6543	[doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to
6544	match IEEE 754-2008. Also improved the description of mpfr_rootn_ui,
6545	mentioning the P754/D2.41 draft of the next IEEE 754 standard because
6546	IEEE 754-2008 is incomplete.
6547
65482018-09-06  Vincent Lefèvre  <vincent@vinc17.net>
6549
6550	[tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp.
6551
65522018-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6553
6554	[src/rint.c] fixed bug with 16-bit limb
6555	             (found by trint with GMP_CHECK_RANDOMIZE=1536206745598891)
6556
6557	[tests/tdiv.c] fixed test_20151023()
6558
65592018-09-06  Vincent Lefèvre  <vincent@vinc17.net>
6560
6561	Removed trailing whitespace.
6562
6563	[src/get_ld.c] Removed incorrect and useless assertions (manl
6564	has exactly 32 bits, thus a shift count of 32 bits is invalid,
6565	but also useless).
6566
65672018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6568
6569	[src/get_ld.c] fixed (hopefully definitively) for 16-bit limb
6570
65712018-09-05  Vincent Lefèvre  <vincent@vinc17.net>
6572
6573	[src/set_d64.c] 2 fixes concerning rp[]:
6574	  * If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one
6575	    uses mp_limb_t (> 32 bits) instead of unsigned int.
6576	  * Otherwise use unsigned long as an unsigned int might be on 16 bits.
6577
6578	[src/mpfr-impl.h] Indentation.
6579
6580	[src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c".
6581
6582	[src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed.
6583
6584	[tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?).
6585
65862018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6587
6588	[src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong)
6589	[src/mpfr-impl.h] added prototype for mpfr_nbits_ulong
6590	[src/pow_si.c] fixed for 16-bit limb
6591
6592	[src/get_d64.c] fixed for 16-bit limb
6593	[src/set_d64.c] likewise
6594	[tests/tget_set_d64.c] improved error message
6595
65962018-09-05  Vincent Lefèvre  <vincent@vinc17.net>
6597
6598	[src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long
6599	instead of unsigned int since shift counts can be up to 16 and an int
6600	might be on 16 bits only.
6601
66022018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6603
6604	[src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined
6605
6606	[src/exp_2.c] fix for 16-bit limb
6607	[tests/texp.c] improve error message
6608
6609	[src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump
6610	[tests/terandom_chisq.c] more details in case of error
6611
6612	[src/random_deviate.c] fixed typo
6613
66142018-09-04  Vincent Lefèvre  <vincent@vinc17.net>
6615
6616	[tests/tset_z_exp.c] Avoid a GCC bug.
6617
6618	[tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains.
6619
6620	[src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t.
6621
66222018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6623
6624	[tests/tset_ld.c] give more digits in case of error
6625	[tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb)
6626
6627	[src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!)
6628
6629	[tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t
6630
6631	[src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS
6632
66332018-09-04  Vincent Lefèvre  <vincent@vinc17.net>
6634
6635	[src/div.c] Code simplification.
6636
6637	[src/round_prec.c] MPFR_LIMB is actually useless now...
6638
6639	[src/round_prec.c] Code style and potential correction for 16-bit limb.
6640
6641	[src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because
6642	the uu argument may be out of range and there is no guarantee that
6643	mpfr_sqrt can handle that. Improved consistency; code refactoring.
6644
66452018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6646
6647	[src/round_prec.c] fixed for 16-bit limb
6648	[tests/tcan_round.c] improve error message
6649
6650	[src/sqrt_ui.c] fixed for 16-bit limb
6651
66522018-09-04  Vincent Lefèvre  <vincent@vinc17.net>
6653
6654	[src/get_si.c] Make sure that a left shift is done on an unsigned type
6655	(as a left shift on a 0 of signed type was not specified by C90).
6656
66572018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6658
6659	[src/div.c] fix for 16-bit limbs, and added comments
6660
6661	[src/rint.c] fix for 16-bit limb
6662
6663	[tests/tdiv.c] more detailed error message
6664
6665	[src/get_si.c] forgot cast when long > limb
6666
6667	[src/get_ui.c] forgot cast when long > limb
6668
66692018-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6670
6671	[src/odd_p.c] fix for 16-bit limb
6672
6673	[tests/tbeta.c] exit at the first error
6674
6675	[src/get_si.c] adapt to 16-bit limbs
6676	[src/get_ui.c] likewise
6677
6678	[src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs
6679	[src/cmp_ui.c] likewise
6680
66812018-09-03  Vincent Lefèvre  <vincent@vinc17.net>
6682
6683	[tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by
6684	  abort(), thus with a core dump.
6685	[doc/README.dev] Document MPFR_TESTS_ABORT.
6686
66872018-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6688
6689	[tests/tgeneric.c] revert 13107 (abort might lose some data in open files)
6690	[src/mul_ui.c] fixed for 16-bit limb and reduced exponent range
6691
6692	[tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb
6693
6694	[src/isinteger.c] fix for 16-bit limb
6695
6696	[src/cmp_si.c] fixed error for 16-bit limb
6697	[src/cmp_ui.c] adapted to 16-bit limb
6698
66992018-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6700
6701	[src/cmp_si.c] adapt for 16-bit limb
6702
67032018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6704
6705	[src/mul_ui.c] adapt for 16-bit limb
6706
67072018-08-31  Vincent Lefèvre  <vincent@vinc17.net>
6708
6709	[src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t
6710	is defined as an unsigned short) with MPFR_LIMB_LSHIFT.
6711
6712	[src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift,
6713	making sure that the shifted argument is unsigned (needed due to the
6714	integer promotion rules when mp_limb_t is defined as an unsigned short).
6715	[src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT.
6716
6717	[src/mpfr-impl.h] Corrected a comment and added a warning.
6718
67192018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6720
6721	[src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb
6722
6723	[src/set_si_2exp.c] support 16-bit limbs
6724
67252018-08-31  Vincent Lefèvre  <vincent@vinc17.net>
6726
6727	[src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078).
6728
67292018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6730
6731	[src/mpfr-gmp.h] missing cast
6732
6733	removed TEST_FLAGS stuff
6734
67352018-08-31  Vincent Lefèvre  <vincent@vinc17.net>
6736
6737	[doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro.
6738
6739	[doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT.
6740
6741	[doc/README.dev] Reverted r13090: this was already mentioned at the
6742	right place (do not mix up macros and environment variables).
6743
67442018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6745
6746	[src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb
6747	[src/mul.c] fixed for 16-bit limb
6748	[src/ui_div.c] likewise
6749
6750	[README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout
6751
67522018-08-31  Vincent Lefèvre  <vincent@vinc17.net>
6753
6754	[src/mpfr-impl.h] Fix for MS Windows.
6755
6756	[src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if
6757	__GMP_SHORT_LIMB is not defined, as required by the current code.
6758
6759	[src/mpfr-gmp.h] Untabified.
6760
67612018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6762
6763	[src/mpfr-impl.h] fixed wrong #ifdef
6764
6765	[src/mpfr-mini-gmp.c] fix for 16-bit limb
6766
6767	[src/add1.c] fix for 16-bit limb
6768	[tests/tadd.c] more output in case of error
6769
6770	[src/add1.c] fixed compiler warning
6771
6772	[src/mpfr-gmp.h] removed leftover debug statement
6773	[src/mpfr-impl.h] added MPFR_LIMB macro
6774	[src/sub1sp.c] fix for 16-bit limb
6775
67762018-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6777
6778	[src/mpfr-gmp.h] more changes for 16-bit limb
6779	[src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long
6780
6781	[mpfr-gmp.h] added comment
6782
6783	[mpfr-mini-gmp.c] fix for 16-bit limb
6784
6785	[src/set_ui_2exp.c] fix for 16-bit limb
6786
67872018-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6788
6789	[src/round_p.c] gmp_fprintf is not defined in mini-gmp
6790
6791	[tests/tadd.c] fix for 16-bit limb
6792
6793	[src/add1.c] revert previous commit since it does not remove the warning:
6794	add1.c: In function ‘mpfr_add1’:
6795	add1.c:407:30: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context]
6796	           if (difs && (cprev << (GMP_NUMB_BITS - difs)))
6797	                       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
6798
6799	[src/add1.c] fixed compiler warning (with gcc 8.2.0)
6800
68012018-08-29  Vincent Lefèvre  <vincent@vinc17.net>
6802
6803	[tests/tdiv_ui.c] Added a comment about a spurious failure
6804	with MPFR_RNDF if RND_LOOP_NO_RNDF were not used.
6805
68062018-08-28  Vincent Lefèvre  <vincent@vinc17.net>
6807
6808	[tests/tsinh.c] Fixed test introduced in r13047.
6809
6810	[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066
6811	for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a
6812	significand allocated in the stack is not freed before the associated
6813	mpfr_t object).
6814
6815	[src/div_ui.c] Extend the exponent range in the case where
6816	MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME.
6817	Note: a test was already there in tdiv_ui via the generic tests.
6818
6819	[tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails.
6820
6821	[tests/tdiv_ui.c] Corrected an error message.
6822
6823	[src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB
6824	is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div).
6825	[src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB
6826	consistent with the ones in the other .c files.
6827
6828	[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where
6829	MPFR_LONG_WITHIN_LIMB is not defined (regression in the
6830	latest changes). Also avoid unused variables.
6831
6832	Removed trailing whitespace.
6833
6834	[src/ui_sub.c] Extend the exponent range early enough.
6835
6836	[src/add_ui.c] Extend the exponent range early enough.
6837
6838	[src/sub_ui.c] Extend the exponent range early enough.
6839
68402018-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6841
6842	[src/get_ld.c] adapt to GMP_NUMB_BITS=16
6843
68442018-08-28  Vincent Lefèvre  <vincent@vinc17.net>
6845
6846	[src/div_ui.c] Added a FIXME.
6847
68482018-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6849
6850	[src/set_ld.c] adapt to GMP_NUMB_BITS=16
6851
6852	[src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested)
6853
6854	[src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB)
6855
6856	[src/init2.c] split a static assertion in two
6857
6858	[src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!)
6859
6860	[src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32
6861
6862	[configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available
6863		       (otherwise assume mp_limb_t == unsigned long)
6864
6865	[src/ui_sub.c] make code work for limb < long
6866
6867	[src/sub_ui.c] make code work for limb < long
6868
6869	[src/div_ui.c] make code work for limb < long
6870
6871	[src/add_ui.c] make code work for limb < long
6872
6873	[mini-gmp] update
6874
6875	[tests/tsinh.c] improve coverage
6876
6877	[tests/tsubnormal.c] improve coverage
6878
68792018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6880
6881	[src/sub1sp.c] Added a FIXME about cp vs tp.
6882
68832018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6884
6885	[tests/tmul.c] improve coverage
6886
68872018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6888
6889	[src/sub1sp.c] Avoid bad usage of tp in the generic code:
6890	  * In the case d == 1, two branches were inconsistent: tp not defined
6891	    at the same level, with one shadowing the other one.
6892	  * In the case 2 <= d < p, tp was reused with a different meanings;
6893	    renamed the second one to cp, as this is MPFR_MANT(c).
6894
6895	[src/sub1sp.c] Re-added/updated FIXME about the long backward goto's.
6896
6897	[src/{add1sp.c,mul.c}] Updated the condition to use the formally
6898	extracted code and added a corresponding comment.
6899
69002018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6901
6902	[src/const_log2.c] further improve coverage
6903
69042018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6905
6906	[src/cache.c] Improved variable names (→ dprec for the precision of dest
6907	and cprec for the precision of the cache) and added/updated comments.
6908
6909	[src/cache.c] Reverted r13036 as what matters is the target precision,
6910	which can be very small.
6911
69122018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6913
6914	[src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64
6915	[src/mul_1_extracted.c]   likewise
6916	[src/add1sp.c] changed condition to use the formally extracted code
6917	[src/mul.c]    likewise (but code is still not yet activated here)
6918
69192018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6920
6921	[src/cache.c] Comment: In practice, the "overflow handler" of
6922	MPFR_RNDRAW_GEN should never be called.
6923
69242018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6925
6926	[src/const_log2.c] avoid hard-coded values
6927	[tests/tconst_log2.c] improve coverage
6928
69292018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6930
6931	[src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since
6932	the cached value (in extended exponent range) cannot overflow.
6933
69342018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6935
6936	[src/const_euler.c] better choice of (initial) working precision
6937	[tests/tconst_euler.c] added coverage test
6938
69392018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6940
6941	[tests/tversion.c] Update concerning the shared cache, to be consistent
6942	with the other mpfr_buildopt_*_p features:
6943	  * check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE
6944	    match;
6945	  * for the output of the value, test mpfr_buildopt_sharedcache_p()
6946	    instead of the macro.
6947
69482018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6949
6950	[tests/tconst_catalan.c] improve coverage
6951
6952	[tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p()
6953
69542018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6955
6956	Removed trailing whitespace.
6957
69582018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6959
6960	[src/sub1sp.c] fixed even rule for p=1
6961
69622018-08-27  Vincent Lefèvre  <vincent@vinc17.net>
6963
6964	[src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute),
6965	which could be useful to avoid MPFR_DBGRES.
6966
69672018-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6968
6969	[src/sub1sp.c] finished simplifying the mpfr_sub1sp code
6970
6971	[src/sub1sp.c] simplified the computation of sbb
6972
6973	[src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress)
6974
69752018-08-23  Vincent Lefèvre  <vincent@vinc17.net>
6976
6977	[tests/tversion.c] Output "Enable formally proven code" info.
6978
6979	[doc/README.dev] Describe MPFR_WANT_PROVEN_CODE.
6980
6981	Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with
6982	the other WANT macros (and to avoid potential clashes with foreign .h
6983	files).
6984
6985	[tools/mpfrlint] For some tests, ignore extracted files (proven code).
6986
69872018-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
6988
6989	the mpfr_mul_1 extracted code is not proven yet
6990
69912018-08-23  Vincent Lefèvre  <vincent@vinc17.net>
6992
6993	For --enable-formally-proven-code, instead of requiring a check of the
6994	type sizes in configure, just enable the proven code only if the types
6995	have the sizes expected by this code.
6996	  * configure.ac: removed the FIXME.
6997	  * src/add1sp.c, src/mul.c: updated the #if test that enables the
6998	    proven code (add1sp1_extracted.c and mul_1_extracted.c).
6999
7000	[configure.ac] Updated FIXME for --enable-formally-proven-code
7001	(many failures with -m32 due to assumptions on type sizes).
7002
7003	[configure.ac] Added a FIXME for --enable-formally-proven-code.
7004
7005	[configure.ac] Updated message for --enable-formally-proven-code.
7006
70072018-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7008
7009	added configure option --enable-formally-proven-code and corresponding code
7010
70112018-08-22  Vincent Lefèvre  <vincent@vinc17.net>
7012
7013	[doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5.
7014
7015	[doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler.
7016
7017	[doc/algorithms.tex] Error calculus: implicitly assume x ≠ 0 in ulp.
7018
7019	[src/sub1sp.c] Updated a FIXME.
7020
7021	[src/sub1sp.c] Removed a comment that brings nothing and is not
7022	really correct (this is not a "flag").
7023
70242018-08-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7025
7026	[tests/mpfr-test.h] added macro TEST_FLAGS (debug use only)
7027
70282018-08-22  Vincent Lefèvre  <vincent@vinc17.net>
7029
7030	[tests/tversion.c] Portability corrections related to the use of the
7031	preprocessor / code robustness.
7032
70332018-08-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7034
7035	[src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241
7036
7037	[src/sub1sp.c] fixed bug20180813
7038
7039	[tests/tsub1sp.c] improved comment about bug20180813()
7040
70412018-08-21  Vincent Lefèvre  <vincent@vinc17.net>
7042
7043	[doc/mpfr.texi] Updated the month.
7044
70452018-08-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7046
7047	[tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed)
7048
70492018-08-20  Vincent Lefèvre  <vincent@vinc17.net>
7050
7051	[doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}".
7052
70532018-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7054
7055	[doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding"
7056
70572018-08-18  Vincent Lefèvre  <vincent@vinc17.net>
7058
7059	Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux)
7060	by casting pointers to uintptr_t before the cast to mpfr_uintmax_t.
7061	  * acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if
7062	    not available.
7063	  * tests/memory.c: added casts to uintptr_t.
7064
70652018-08-16  Vincent Lefèvre  <vincent@vinc17.net>
7066
7067	Code robustness in macro definitions.
7068
7069	[src/sqr.c] Changed a variable name to avoid confusion with the function
7070	parameter of the same name, which has a different type.
7071
7072	[src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential
7073	integer overflow in MPFR_MPZ_SIZEINBASE2.
7074
7075	[src/round_raw_generic.c] Type consistency.
7076
7077	Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced
7078	some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c,
7079	replaced += by MPFR_INC_PREC to detect overflow.
7080
70812018-08-11  Vincent Lefèvre  <vincent@vinc17.net>
7082
7083	Replaced "TZ=UTC" by "TZ=UTC0" for portability.
7084
70852018-08-06  Vincent Lefèvre  <vincent@vinc17.net>
7086
7087	[src/round_raw_generic.c] Avoid a useless variable. This should
7088	also avoid warnings with Windows ICC, reported at:
7089	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
7090
7091	[tests/tcan_round.c] Added missing casts for printf (error messages).
7092	Bug detected under MS Windows, where size_t > unsigned long. See:
7093	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
7094
7095	[tests/tdiv_ui.c] Improved the conditions for test_20170105().
7096	In particular, the new preprocessor test can avoid spurious warnings
7097	on large shifts (false positives) with MS Windows. See:
7098	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
7099
7100	[doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc.
7101
7102	[tests/memory.c] To print a size_t or a pointer in error messages,
7103	cast to mpfr_uintmax_t (largest integer type available) instead of
7104	unsigned long, which may be too short (e.g. under MS Windows).
7105	See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html
7106
7107	[src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier
7108	for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t.
7109
7110	[doc/README.dev] Updated/added links about coding standards and C.
7111
71122018-08-05  Vincent Lefèvre  <vincent@vinc17.net>
7113
7114	[tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC,
7115	in particular those found in GMP's longlong.h file.
7116
71172018-08-05  Vincent Lefèvre  <vincent@vinc17.net>
7118
7119	[src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC.
7120
7121	Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by
7122	__declspec(dllimport), which is wrong when building MPFR and
7123	yields warning LNK4217 such as:
7124
7125	  eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab
7126	  imported in function mpfr_eint
7127
7128	due to
7129
7130	  extern const unsigned char __GMP_DECLSPEC __clz_tab[129];
7131
7132	(note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab"
7133	only without the GMP build).
7134
7135	See:
7136	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html
7137	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html
7138
71392018-08-05  Vincent Lefèvre  <vincent@vinc17.net>
7140
7141	[tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR.
7142
71432018-07-31  Vincent Lefèvre  <vincent@vinc17.net>
7144
7145	[tests/tversion.c] Try to detect missing output from the first printf
7146	that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO
7147	and run under Wine.
7148	(merged changesets r12968-12969 from the 4.0 branch)
7149
71502018-07-27  Vincent Lefèvre  <vincent@vinc17.net>
7151
7152	[acinclude.m4,configure.ac] Check the support of the group flag for
7153	  native integers, which is a Single UNIX Specification extension.
7154	[tests/tsprintf.c] Test the group flag with the P length modifier only
7155	  when supported, since the implementation relies on this support.
7156
7157	[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t):
7158	  a '0' flag was always added when calling gmp_asprintf. This bug
7159	  wasn't detected under Linux because the case for which it was
7160	  occurring (left space padding without a precision and without a
7161	  '0' flag) was not tested. With Wine, tsprintf was failing because
7162	  of a bug in the stdio library: the '0' flag added by mistake should
7163	  have been ignored in some test with a precision, but it wasn't.
7164	[tests/tsprintf.c] Added a test that made a failure occur under Linux.
7165
7166	[tests/tsprintf.c] Added 2 other tests with the P length modifier.
7167
7168	[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t).
7169	[tests/tsprintf.c] Corrected/added tests with the P length modifier.
7170
71712018-07-26  Vincent Lefèvre  <vincent@vinc17.net>
7172
7173	[src/vasprintf.c] Fixed various overflow and close-to-overflow issues.
7174	Those with the P length modifier (mpfr_prec_t) will be fixed later.
7175
7176	[tests/tsprintf.c] Another failure with the P length modifier.
7177
7178	[tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t),
7179	yielding mode failures.
7180
7181	[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
7182	in case of error.
7183
7184	[tests/tsprintf.c] Added a test that yields a "store to null pointer",
7185	detected by UBsan.
7186
71872018-07-25  Vincent Lefèvre  <vincent@vinc17.net>
7188
7189	[src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"),
7190	va_end wasn't called, yielding undefined behavior.
7191
71922018-07-23  Vincent Lefèvre  <vincent@vinc17.net>
7193
7194	[tests] Added tget_set_d128 to svn:ignore property.
7195
7196	[src/erf.c] More security about tauk.
7197
7198	[src/erf.c] Removed a meaningless cast.
7199
72002018-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7201
7202	[src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata
7203
72042018-07-22  Vincent Lefèvre  <vincent@vinc17.net>
7205
7206	[tests/terf.c] Added a testcase for bug reported by Naoki Shibata:
7207	  https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html
7208	(uceil_log2.c:40: MPFR assertion failed: exp < 1023).
7209	Increased the number of generic tests in order to reproduce the bug
7210	there too with the default seed.
7211
72122018-07-21  Vincent Lefèvre  <vincent@vinc17.net>
7213
7214	[src/subnormal.c] C89 compatibility.
7215
72162018-07-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7217
7218	[src/subnormal.c] experimental support for RNDNA
7219
72202018-07-20  Vincent Lefèvre  <vincent@vinc17.net>
7221
7222	Added examples/threads.c (and updated Makefile.am): multithreading test
7223	to detect scaling issues with MPFR.
7224
72252018-07-19  Vincent Lefèvre  <vincent@vinc17.net>
7226
7227	[src/vasprintf.c] Updated a FIXME.
7228
7229	[src/vasprintf.c] More FIXME's.
7230
7231	[src/vasprintf.c] Reindentation.
7232
7233	[src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling.
7234
72352018-07-18  Vincent Lefèvre  <vincent@vinc17.net>
7236
7237	Shared caches: fix and minor changes.
7238	  * Fixed detection and use of C11 thread support: the C11 header is
7239	    <threads.h>, not <thread.h>.
7240	  * Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency
7241	    with the other MPFR_WANT_* macros.
7242	  * Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking
7243	    method as a string (when shared caches are enabled).
7244	  * doc/README.dev: documented 4 macros for shared caches.
7245	  * tests/tversion.c: output MPFR_WANT_SHARED_CACHE and
7246	    MPFR_THREAD_LOCK_METHOD information.
7247
7248	[tests/tconst_pi.c] Removed an incorrect assertion, as the #else would
7249	be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD
7250	(which may occur when MPFR_HAVE_C11_LOCK is defined).
7251
7252	[src/vasprintf.c] Fixed type in partition_number to be consistent with
7253	the end of the function.
7254
72552018-07-16  Vincent Lefèvre  <vincent@vinc17.net>
7256
7257	[src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN
7258	(which came from r5236).
7259
7260	[tests/tsprintf.c] Added other tests to check_length_overflow, which
7261	would trigger other bugs in src/vasprintf.c (e.g. when removing the
7262	other failing tests).
7263
7264	[tests/tsprintf.c] Added check_length_overflow to check the behavior of
7265	mpfr_snprintf on a large number of output characters (> INT_MAX) with
7266	size = 0. This test is actually done only if INT_MAX == 2147483647 and
7267	currently fails in such a case.
7268
7269	[src/vasprintf.c] Updated comment about overflow on the number of output
7270	characters, taking into account the latest ISO C and POSIX standards.
7271
7272	[tests/tsprintf.c] Updated a comment.
7273
72742018-07-13  Vincent Lefèvre  <vincent@vinc17.net>
7275
7276	[src/vasprintf.c] Simplified mpfr_get_str_wrapper.
7277
7278	[src/vasprintf.c] Added a log message.
7279
7280	[src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS
7281	(which is about binary IEEE-754 floating point) should be unrelated.
7282
7283	[src/get_d64.c]
7284	  * Added FIXME's for get_decimal64_nan and get_decimal64_inf internal
7285	    functions: possible issue with _MPFR_IEEE_FLOATS code, which also
7286	    seems more complex than the generic code.
7287	  * Simplified get_decimal64_zero internal function to generate a
7288	    decimal zero directly instead of using the fact that a binary64
7289	    zero is also the encoding of a decimal zero (and assuming that
7290	    double = binary64 with perfect endianness matching).
7291
7292	[acinclude.m4] Updated message about the _Float128 support, since
7293	this is not just about the compiler.
7294
7295	[acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD:
7296	Optimization made the "undefined reference" error disappear, so that
7297	__float128 was misdetected as being supported.
7298
72992018-07-12  Vincent Lefèvre  <vincent@vinc17.net>
7300
7301	[acinclude.m4] For the _Float128 / __float128 detection, changed
7302	AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only
7303	at link time, such as under NetBSD:
7304	  https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html
7305	  https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html
7306
7307	[src/Makefile.am] Corrected check-exported-symbols to avoid a failure
7308	when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c'
7309	(GNU Make, which is not in POSIX-conforming mode by default).
7310	Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com).
7311
73122018-07-11  Vincent Lefèvre  <vincent@vinc17.net>
7313
7314	[src/vasprintf.c] In buffer_sandwich, simplified the handling of the
7315	trailing zero (avoid memset and a useless assignment).
7316
73172018-07-09  Vincent Lefèvre  <vincent@vinc17.net>
7318
7319	[doc/mpfr.texi] More changes to Section "Nomenclature and Types";
7320	in particular, defined regular numbers and exponents.
7321
7322	[doc/mpfr.texi] In Section "Nomenclature and Types", removed all the
7323	@noindent, whose purpose is unclear (if one needs something special,
7324	an itemized list would be better, or possibly @deffn).
7325
7326	[doc/mpfr.texi] Rewrote the paragraph defining "floating-point number"
7327	in Section "Nomenclature and Types", avoiding ambiguities.
7328
73292018-07-06  Vincent Lefèvre  <vincent@vinc17.net>
7330
7331	[tests/tprintf.c] Grrr... again a copy-paste error. Now OK.
7332
7333	[tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898,
7334	but tprintf still fails.
7335
7336	[tests/tsprintf.c] Corrected the latest tests.
7337
7338	[tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000).
7339
7340	[tests/tsprintf.c] Corrected comments.
7341
7342	[tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail).
7343
7344	[doc/mpfr.texi] Updated the month.
7345
7346	[src/vasprintf.c] Corrected comments and coding style.
7347
7348	[src/vasprintf.c] Resolve the FIXME.
7349	  * Renamed ip_trailing_zeros to ip_trailing_digits, since when
7350	    spec.size == 0, these can be any digits.
7351	  * Simplified the buffer_sandwich function since it can be called
7352	    only when spec.size != 0, in which case tz (= ip_trailing_digits)
7353	    is either 0 or 1 (a trailing zero must be added only when rounding
7354	    to the next power of ten in the %f case).
7355	  * Corrected/removed/added comments.
7356
7357	[tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all
7358	rounding modes and powers of ten + 0.5 in rounding to nearest.
7359
73602018-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7361
7362	[doc/mpfr.texi] typo in Fredrik's name
7363
7364	[AUTHORS] typo in Fredrik's name
7365
73662018-07-04  Vincent Lefèvre  <vincent@vinc17.net>
7367
7368	[tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c).
7369
7370	[src/vasprintf.c] Updated the FIXME comment.
7371
7372	[src/vasprintf.c] Added a FIXME comment about an incorrect comment.
7373
7374	[src/vasprintf.c] Added log messages in buffer_sandwich.
7375
7376	[tests/tsprintf.c] Added more tests of the form 10^i - 1/2
7377	(like in tprintf.c).
7378
7379	[tests/tprintf.c] Added more tests of the form 10^i - 1/2.
7380
7381	[tests/tsprintf.c] Added test_locale() test based on the tprintf.c one.
7382
7383	[tests/tprintf.c] Minor correction.
7384
7385	[tests/tprintf.c] More test_locale() cleanup.
7386
7387	[src/vasprintf.c] English usage in a comment.
7388
7389	[src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper
7390	in order to avoid a confusion with the mpfr_get_str_aux function
7391	from get_str.c (moreover, this is really a wrapper, which is the
7392	reverse of an aux function).
7393
7394	[tests/tsprintf.c] locale_da_DK() cleanup.
7395
73962018-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7397
7398	[src/vasprintf.c] partly revert commit 12873
7399
74002018-07-04  Vincent Lefèvre  <vincent@vinc17.net>
7401
7402	[tests/tprintf.c] test_locale() cleanup.
7403	  * Conditional #include <locale.h> with the other header inclusions.
7404	  * Completed a #if (to be like in tsprintf.c).
7405	  * Moved a global variable as local to test_locale().
7406
74072018-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7408
7409	[src/vasprintf.c] replaced overflow tests by assertions
7410	[tests/tprintf.c] improve test coverage
7411
74122018-07-04  Vincent Lefèvre  <vincent@vinc17.net>
7413
7414	Added MPFR_CHECK_LOCALES environment variable for the tests (to be
7415	used by developers): when set, terminate with an error if locales
7416	cannot be tested.
7417
74182018-07-04  Vincent Lefèvre  <vincent@vinc17.net>
7419
7420	[src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could
7421	yield memory corruption with non-default memory allocators and other
7422	undefined behavior; check the return value when this function is called.
7423
7424	Details:
7425	  * check integer overflow on the size computations;
7426	  * computation of q and r without tests;
7427	  * fixed the case where r > len (e.g. len = 1 and tz = 1);
7428	  * in the loop, increase the str pointer only when needed, otherwise
7429	    str could be beyond of the end of the string of the digits, which
7430	    is undefined behavior.
7431
7432	The first consequence of the r > len issue was an incorrect generated
7433	string. Moreover, since the generated string was shorter than expected,
7434	mpfr_free_str would provide an incorrect buffer size to the "free"
7435	function of the current GMP memory allocator. By default, this size is
7436	ignored, but it may matter if the memory allocators have been changed
7437	with the mp_set_memory_functions GMP function, in which case a possible
7438	consequence could be memory corruption.
7439
74402018-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7441
7442	[src/vasprintf.c] added an assertion
7443	[tests/tprintf.c] added two tests (one currently fails)
7444
74452018-06-26  Vincent Lefèvre  <vincent@vinc17.net>
7446
7447	[src/vasprintf.c] C90 compatibility.
7448
74492018-06-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7450
7451	[tests/tsprintf.c] fixed another test
7452
7453	[tests/tsprintf.c] fixed test
7454
7455	[src/vasprintf.c] improve coverage
7456
7457	[tests/tsprintf.c] improve coverage
7458
7459	[tests/tsprintf.c] improve coverage
7460
74612018-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7462
7463	[tests/tgamma_inc.c] improve coverage
7464
7465	[tests/tgamma_inc.c] added coverage test
7466
7467	[src/gamma.c] added comment
7468	[src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0)
7469	[tests/tgamma_inc.c] added coverage tests
7470
74712018-06-23  Vincent Lefèvre  <vincent@vinc17.net>
7472
7473	[configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC.
7474	See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>.
7475
7476	[src/mpfr-impl.h] Spelling in a comment.
7477
7478	[src/mpfr-impl.h] Fixed change in r12847.
7479
7480	[tests/tget_set_d64.c] Improved a test.
7481
7482	[tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d).
7483
7484	[doc/mpfr.texi] Updated the month.
7485
7486	[tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined,
7487	disable tests that can trigger a FP exception DIVBYZERO or INVALID
7488	(issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO).
7489
74902018-06-22  Vincent Lefèvre  <vincent@vinc17.net>
7491
7492	[src/mpfr-impl.h] Improved a comment about union ieee_decimal128.
7493
7494	Do not assume that the bit-field ordering for _Decimal128 is necessarily
7495	little endian or big endian (this is more than the usual endianness
7496	issue). If this cannot be detected, instead of failing or assuming a
7497	possibly wrong default, switch to the portable code.
7498
74992018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7500
7501	added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual
7502
7503	[tests/tget_set_d128.c] test some random 16-byte inputs
7504
7505	[tests/tget_set_d64.c] test random inputs
7506
7507	[acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian)
7508
7509	[doc/README.dev] added standard suffixes
7510
7511	[tests/tget_set_d64.c] fixed a test
7512
7513	[tests/tget_set_d64.c] removed TODO (done), added comment
7514	[tests/tget_set_d128.c] removed TODO (done)
7515
7516	[src/set_d64.c] added comment (like for set_d128.c)
7517
7518	[src/get_d64.c] improve comment
7519	[src/get_d128.c] likewise
7520
7521	[src/set_d64.c] also deal with non-canonical BID encoding
7522	[tests/tget_set_d64.c] added test with non-canonical BID encoding
7523
75242018-06-22  Vincent Lefèvre  <vincent@vinc17.net>
7525
7526	[src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer).
7527
7528	[src] Moved the FIXME comment from set_d128.c to get_d128.c since the
7529	bug occurs in mpfr_get_decimal128 according to the AddressSanitizer.
7530
7531	[src/set_d128.c] Updated FIXME comment.
7532
7533	[src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused
7534	variable as a consequence.
7535
7536	[src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c).
7537
7538	[src/set_ld.c] Removed unused variable for
7539	HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC).
7540
7541	[src/invsqrt_limb.h] Avoid a "variable ‘_l’ set but not used" warning
7542	on some platforms, such as powerpc64le-unknown-linux-gnu.
7543
7544	[src/invert_limb.h] Avoid a "variable ‘_l’ set but not used" warning
7545	on some platforms, such as powerpc64le-unknown-linux-gnu.
7546
7547	[src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD.
7548
7549	[src/mpfr-impl.h] About union ieee_double_decimal64: removed an
7550	incorrect comment and added a TODO.
7551
7552	Changed union ieee_double_decimal128 to union ieee_decimal128 since this
7553	has nothing to do with double (unlike union ieee_double_decimal64). Also
7554	refactored code for this union definition.
7555
7556	[src/mpfr-impl.h] Updated TODO for DPD.
7557
7558	[src/mpfr-impl.h] Added TODO for DPD (better structure definition).
7559
7560	[tests/tget_set_d128.c] Execute BID code only with BID.
7561
7562	[tests/tget_set_d128.c] Simplification and better portability.
7563
75642018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7565
7566	[tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings
7567
7568	[src/set_d128.c] improve last commit
7569
7570	[src/set_d128.c] improved a comment
7571
75722018-06-22  Vincent Lefèvre  <vincent@vinc17.net>
7573
7574	[src/set_d128.c] Re-added "while (...)" erroneously removed in r12817.
7575
75762018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7577
7578	[src/set_d64.c] added comment
7579	[src/set_d128.c] likewise
7580
7581	[src/set_d128.c] avoid variable conflict for DPD
7582
7583	[src/set_d128.c] implement for DFD encoding
7584
7585	[src/set_d64.c] added comment and space
7586
75872018-06-22  Vincent Lefèvre  <vincent@vinc17.net>
7588
7589	[src/set_d128.c] Added a FIXME (stack-buffer-overflow).
7590
7591	[src/set_d128.c] Corrected r12811.
7592
7593	[src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support
7594	the decoded significand >= 10^34 cases (non-canonical encodings),
7595	which must be zero.
7596
7597	[tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical
7598	encodings.
7599
7600	[src/set_d128.c]
7601	  * Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64
7602	    (as the other values are not supported by this code).
7603	  * Bug fix for GMP_NUMB_BITS == 32 (→ tget_set_d128 no longer fails).
7604	  * Added an assertion corresponding to a comment.
7605
7606	[src/set_d128.c] Fit on 80 columns.
7607
76082018-06-21  Vincent Lefèvre  <vincent@vinc17.net>
7609
7610	[src/mpfr-impl.h] Updated a title comment (→ Decimal support).
7611
7612	[src/mpfr-impl.h] Corrected a comment.
7613
76142018-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7615
7616	[src/set_d128.c] added comments
7617
7618	[src/set_d128.c] remove debug stuff
7619
7620	[src/mpfr-impl.h] assume little-endian double implies little-endian decimal128
7621
76222018-06-21  Vincent Lefèvre  <vincent@vinc17.net>
7623
7624	[src/mpfr-impl.h] FIXME for _Decimal128.
7625
76262018-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7627
7628	[src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far)
7629	[tests/tget_set_d128.c] added more tests
7630
7631	[src/set_d64.c] added comments
7632
7633	[src/get_d128.c] removed useless comment
7634
76352018-06-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7636
7637	[src/get_d128.c] avoid using doubles
7638	[tests/tget_set_d128.c] improve test coverage
7639
7640	[tests/tget_set_d128.c] improve test coverage
7641
7642	[tests/tget_set_d128.c] improve coverage
7643
7644	added mpfr_get_decimal128 (still experimental)
7645
7646	[get_d64.c] added comments and simplified code
7647
76482018-06-20  Vincent Lefèvre  <vincent@vinc17.net>
7649
7650	[tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10:
7651	test negative numbers too.
7652
76532018-06-19  Vincent Lefèvre  <vincent@vinc17.net>
7654
7655	[doc/README.dev] Added a note about FP constants and native FP.
7656
7657	[tools/mpfrlint] Check that preprocessing directives have no spaces
7658	before.
7659
7660	[src/set_d128.c] Modified a comment.
7661
7662	[src/set_d128.c] Avoid double, which is unreliable with GCC
7663	in non-standard mode (see GCC bug 323 and the discussion in
7664	GCC bug 85957). But the failure in tget_set_d128 probably came from
7665	the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1
7666	has about a 17-digit precision only, while _Decimal128 has more);
7667	this test now passes.
7668
7669	[src/set_d128.c] Simplified code and added assertions.
7670
7671	[src/set_d64.c] Added a log message (like in set_d128.c).
7672
7673	[src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of
7674	mpfr_set_str to get the ternary value.
7675
7676	[tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10.
7677	  * tget_set_d64 fails on negative due to a bad ternary value.
7678	  * tget_set_d128 fails on negative due to bad value, etc.
7679
7680	[tests/tget_set_d128.c] Test the flags too.
7681
7682	[tests/tget_set_d128.c] Test more values.
7683
7684	[tests/tget_set_d128.c] Converting an integer into _Decimal128 is better
7685	than converting a double into _Decimal128.
7686
7687	[tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15
7688	at the same time (1.0D was regarded as 0).
7689
7690	[tests/tget_set_d128.c] Fixed indentation.
7691
7692	[tests/tversion.c] Decimal formats: output the encoding type (DPD/BID).
7693
7694	[src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per
7695	r10958 (in set_d128.c, currently in a comment due to r12772).
7696
7697	[src/set_d128.c] Added a log message.
7698
7699	[tests/tget_set_d128.c] Added an informative error message.
7700
7701	[src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not
7702	complete yet and makes the compilation fail.
7703
77042018-06-13  Vincent Lefèvre  <vincent@vinc17.net>
7705
7706	[src/set_d128.c] Corrected year in copyright notice.
7707
7708	[src/set_d128.c] Minor improvements.
7709
77102018-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7711
7712	[tests/tget_set_d64.c] added -v option to get verbose output
7713	[tests/tget_set_d128.c] likewise
7714
77152018-06-13  Vincent Lefèvre  <vincent@vinc17.net>
7716
7717	[TODO] Missing "r".
7718
77192018-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7720
7721	[TODO] update for mpfr_set_decimal128
7722
7723	added mpfr_set_decimal128 (work in progress, not yet fully tested)
7724
77252018-06-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7726
7727	[tools/coverage] added branch coverage
7728
77292018-06-07  Vincent Lefèvre  <vincent@vinc17.net>
7730
7731	[src/strtofr.c] Moved some computations on the exponents earlier
7732	since they may yield an early overflow or underflow, and computing
7733	the division by b^e would be useless in such a case.
7734
7735	[src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't
7736	make much sense in the error analysis (still trying to understand…).
7737
77382018-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7739
7740	[src/const_pi.c] missing reference about Brent-Salamin
7741
7742	[doc/algorithms.bib] added reference
7743
77442018-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7745
7746	[tests/tfmma.c] improve coverage of the UBF case in mpfr_sub
7747			(now coverage of sub.c is 100%)
7748
77492018-06-05  Vincent Lefèvre  <vincent@vinc17.net>
7750
7751	[src/sum.c] Updated TODO from r12755.
7752
77532018-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7754
7755	[src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage
7756
77572018-06-04  Vincent Lefèvre  <vincent@vinc17.net>
7758
7759	[src/sum.c] Updated TODO from r12755.
7760
7761	[src/sum.c] Added a comment with a TODO about potentially dead code on
7762	some platforms.
7763
7764	codespell: simplified exceptions.
7765	  * Added codespell.exclude file.
7766	  * codespell.ignore: removed some words (particular cases).
7767	  * tools/mpfrlint: use the codespell.exclude exclude file, and for
7768	    the doc directory, replaced -S by an explicit list of files.
7769
7770	[codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13).
7771
77722018-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7773
7774	[src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs)
7775	Note: this mostly reverts r12319, r12321, and the remaining FIXME
7776	from r12327.
7777	[tests/tfmma.c] added non-regression tests
7778
77792018-06-02  Vincent Lefèvre  <vincent@vinc17.net>
7780
7781	[src/mpfr-impl.h] Concerning r12738, the safer code can be avoided
7782	with GCC in ISO C mode (__STRICT_ANSI__).
7783
77842018-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7785
7786	[src/invert_limb.h] fixed two typos reported by Marco Bodrato
7787
77882018-06-02  Vincent Lefèvre  <vincent@vinc17.net>
7789
7790	[tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined.
7791
77922018-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7793
7794	[src/sqrt.c] fixed/improved comments
7795
77962018-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7797
7798	[src/invsqrt_limb.h] fixed typos in comments
7799
78002018-05-31  Vincent Lefèvre  <vincent@vinc17.net>
7801
7802	[doc/README.dev] Updated a URL.
7803
7804	[src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64,
7805	detected with r12738.
7806
7807	[doc/mpfr.texi] Updated the month.
7808
7809	Updated mpfr.org URL's to use https (except in ChangeLog and NEWS).
7810
7811	[src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x).
7812
78132018-05-30  Vincent Lefèvre  <vincent@vinc17.net>
7814
7815	[tools/announce-text] http → https (for mpfr.org).
7816
7817	[doc] Updated FAQ.html with update-faq.
7818
7819	[doc] Workaround due to the lack of https support in libxml2
7820	and the fact that mpfr.org now uses https with HSTS.
7821	  * faq.xsl: for the visual.css, use a local URL.
7822	  * update-faq: download visual.css from mpfr.org first.
7823
7824	[doc/update-faq] http → https
7825
7826	[src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC.
7827
78282018-05-28  Vincent Lefèvre  <vincent@vinc17.net>
7829
7830	[src/strtofr.c] Continued to review the new error analysis and code.
7831	Changes:
7832	  * made the code more SSA-like (avoid a "y += ysize; y -= ysize;");
7833	  * clarified comments;
7834	  * use MPFR_LIMB_MSB;
7835	  * added a FIXME on the error analysis.
7836
7837	[doc/README.dev] Added info about shell portability, and in particular
7838	about quotes (covering changes in r5659, r6128, r12711 and r12721).
7839
7840	[tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed
7841	non-portable quote nesting in backticks.
7842
7843	[examples] Added "mpfr_free_cache ();" at the end of all programs,
7844	as this is something that should be done systematically (at least
7845	to detect memory leaks with valgrind).
7846
78472018-05-25  Vincent Lefèvre  <vincent@vinc17.net>
7848
7849	[src/strtofr.c] Started to review the new error analysis and code
7850	(r12705,12706). Minor improvements.
7851
7852	[src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp
7853	from long to int for consistency with the mpfr_mpn_exp code and with
7854	strtofr.c (which expects an int).
7855
7856	[src/mpn_exp.c] Code cleanup and protection against integer overflow.
7857
78582018-05-24  Vincent Lefèvre  <vincent@vinc17.net>
7859
7860	[src/hypot.c] Do bitwise operations in unsigned arithmetic.
7861
7862	[src/hypot.c] Added 2 TODO.
7863
78642018-05-23  Vincent Lefèvre  <vincent@vinc17.net>
7865
7866	[tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(…) to `…`
7867	for Bourne shell compatibility (as under Solaris 10).
7868	Note: these scripts are called via dist-hook for "make dist".
7869
78702018-05-22  Vincent Lefèvre  <vincent@vinc17.net>
7871
7872	[src/mpfr-impl.h] Added a comment for UBF.
7873
7874	[src/mpfr-impl.h] Added a comment about UBF and alignment requirements.
7875
78762018-05-17  Vincent Lefèvre  <vincent@vinc17.net>
7877
7878	[tests/tstrtofr.c] Removed TODO added in r12681, now obsolete.
7879
78802018-05-16  Vincent Lefèvre  <vincent@vinc17.net>
7881
7882	Removed trailing whitespace.
7883
78842018-05-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7885
7886	[src/strtofr.c] revisit error analysis in the division case (end)
7887
78882018-05-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7889
7890	[src/strtofr.c] revisit error analysis in the division case (work in progress,
7891			not yet finished)
7892
78932018-05-09  Vincent Lefèvre  <vincent@vinc17.net>
7894
7895	[tests/tsub.c] Updated the comment added in r12701.
7896
7897	[tests/tsub.c] Added a comment about the bug fixed in r10697:
7898	bug20180217 is a non-regression test for this bug.
7899
79002018-05-02  Vincent Lefèvre  <vincent@vinc17.net>
7901
7902	[tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from
7903	GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of
7904	other alignment requirements (which are not handled by the tstckintc.c
7905	code).
7906
7907	[TODO] + Use GCC's nonnull and returns_nonnull attributes.
7908
7909	[acinclude.m4] Added a note on _Decimal64 detection.
7910
79112018-04-30  Vincent Lefèvre  <vincent@vinc17.net>
7912
7913	[doc/README.dev] Added info about spelling.
7914
7915	Corrected "runtime" to "run time" (noun) or "run-time" (adjective)
7916	when it means the time at which the program is run.
7917	See:
7918	  https://gcc.gnu.org/codingconventions.html#Spelling
7919	  https://en.wikipedia.org/wiki/Run_time
7920
79212018-04-27  Vincent Lefèvre  <vincent@vinc17.net>
7922
7923	[src/strtofr.c] Potentially unnecessary code: comes from r8384.
7924
7925	[src/strtofr.c] Updated TODO about potentially unnecessary code.
7926
7927	[src/strtofr.c] Updated TODO about potentially unnecessary code,
7928	showing that this code probably increases the error bound (errors
7929	accumulate instead of compensating without this code).
7930
7931	[src/strtofr.c] Added a TODO about potentially unnecessary code.
7932
7933	[src/strtofr.c] Corrected/updated comments and added a log message.
7934
7935	[src/strtofr.c] Corrected a comment (exp_base and exp_bin description).
7936
7937	[src/strtofr.c] Added a FIXME: possible bug in very special cases with
7938	large exponents, 32-bit mpfr_exp_t and very long strings.
7939
7940	[src/strtofr.c] Added/clarified comments.
7941
7942	[tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573.
7943
79442018-04-26  Vincent Lefèvre  <vincent@vinc17.net>
7945
7946	[tests/tgmpop.c] Coding style.
7947
7948	[tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by
7949	checking all the flags (not just erange) and added a test where y is
7950	a NaN rational.
7951	Note: this could be used to detect 2 bugs, fixed in r12343 and r12499,
7952	respectively.
7953
7954	[tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's
7955	to support r2 == MPFR_RNDF in some other tests.
7956
79572018-04-24  Vincent Lefèvre  <vincent@vinc17.net>
7958
7959	[src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code,
7960	not the English word).
7961
79622018-04-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7963
7964	[src/mpfr-gmp.h] added comment about MPN_FILL
7965
79662018-04-20  Vincent Lefèvre  <vincent@vinc17.net>
7967
7968	[src/out_str.c] Check for integer overflow (here, a minor issue).
7969
7970	[src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t).
7971
79722018-04-19  Vincent Lefèvre  <vincent@vinc17.net>
7973
7974	[tests] Added tdot to svn:ignore property.
7975
7976	[tests/tdot.c] Various improvements.
7977
7978	[doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate
7979	underflows either.
7980	[src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion
7981	is not satisfied on some user inputs. Minor improvements.
7982
7983	[NEWS] Added mpfr_dot.
7984
7985	[doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete
7986	and experimental.
7987
7988	[tests/tsum.c] Code style.
7989
7990	[doc/mpfr.texi] Updated the month.
7991
7992	[tests/tdot.c] Code style.
7993
79942018-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
7995
7996	added mpfr_dot
7997
79982018-04-19  Vincent Lefèvre  <vincent@vinc17.net>
7999
8000	[tests/tget_flt.c] Correction about the use of mpfr_signbit, in case
8001	the implementation would change.
8002
8003	[src/sqr.c] Minor code improvement.
8004
8005	[src/sqr.c] Code formatting.
8006
8007	[src/sqr.c] Clarified a comment and slightly improved code.
8008
8009	[src/sqr.c] Typo in a comment.
8010
8011	[tests/tfma.c] Added test_underflow5.
8012
8013	[tests/tfma.c] Minor correction for test_underflow4.
8014
8015	[tests/tfma.c] Added a comment.
8016
80172018-04-18  Vincent Lefèvre  <vincent@vinc17.net>
8018
8019	[tests/tfma.c] Added test_underflow4. This allows to show that the
8020	bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal:
8021	  * If one subtract 1 from the 1st term MPFR_PREC (z), a failure
8022	    occurs in test_underflow4.
8023	  * If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure
8024	    occurs in test_underflow2.
8025
8026	[configure.ac] For the ICC check, also test __INTEL_COMPILER.
8027
8028	[configure.ac] Corrected comment for the ICC check (GCC is no longer
8029	disabled since r5720).
8030
80312018-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8032
8033	[src/mpfr.h] enable some code that now works with ICC (tested with ICC 14)
8034	[TODO] removed item
8035
80362018-04-18  Vincent Lefèvre  <vincent@vinc17.net>
8037
8038	[tests/tversion.c] Updated a comment about __ICC.
8039
80402018-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8041
8042	[TODO] removed item that we won't implement
8043
8044	[TODO] removed done item (UBF)
8045
80462018-04-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8047
8048	[TODO] RNDF is done
8049
8050	[TODO] removed an obsolete item
8051
8052	[TODO] log_ui is done
8053
80542018-04-17  Vincent Lefèvre  <vincent@vinc17.net>
8055
8056	[tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp.
8057
8058	[tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui.
8059	Note: si functions are not tested yet.
8060
8061	Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui,
8062	respectively (for the tests, except in reuse.c and in taway.c).
8063	Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for
8064	compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred.
8065
80662018-04-16  Vincent Lefèvre  <vincent@vinc17.net>
8067
8068	[TODO] + function to reduce the precision of a variable, with a
8069	ternary value in input, i.e. taking care of double rounding.
8070
8071	[tests/tfma.c] More tests for test_underflow2.
8072
8073	[tests/tfma.c] Corrected r12603 for test_underflow2.
8074
8075	[tests/tfma.c] More tests for test_underflow2.
8076
8077	[src/fma.c] Updated easy case of underflow.
8078
8079	[tests/tfma.c] Updated a comment for test_underflow2.
8080
8081	[tests/tfma.c] In test_underflow2, also test different signs.
8082
8083	[tests] Updated svn:ignore property.
8084
8085	[doc/README.dev] "To make a release": check also with
8086	-DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks.
8087
8088	[src/fma.c] Forgot a MPFR_GROUP_CLEAR.
8089
8090	[src/fma.c] Simplified the underflow case by using UBF in the
8091	difficult cases, resolving the remaining FIXME's.
8092
80932018-04-13  Vincent Lefèvre  <vincent@vinc17.net>
8094
8095	[tests/tfma.c] More tests for test_overflow3 by adding loops on j and k.
8096
8097	[tests/tfma.c] Extended test_overflow3 to reversed signs.
8098
8099	[tests/tfma.c] Do all the overflow/underflow tests in exponent ranges
8100	[-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one.
8101
8102	[src/mpfr-sassert.h] Added a comment.
8103
81042018-04-12  Vincent Lefèvre  <vincent@vinc17.net>
8105
8106	[tests/tfma.c] Forgot a cast for C++ compatibility.
8107
8108	[src/mpfr-impl.h] Reverted r12588: there should be no alignment issues
8109	with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a
8110	MPFR number (__mpfr_struct) but not the opposite (or this is just back
8111	to __mpfr_ubf_struct).
8112
8113	[src/fma.c] Simplified the difficult part of the overflow case by
8114	using UBF (this also fixes corner cases in huge precision).
8115
8116	[src/mpfr-impl.h] Added a note about alignment constraints for UBF.
8117
8118	[src/fma.c] Fixed sign related bug in overflow case.
8119	[tests/tfma.c] Added test_overflow5 test for this bug.
8120
8121	[tests/tfma.c] In test_overflow4, also test different signs.
8122
8123	[src/fma.c] Correction for the FIXME from r12403 concerning r12396.
8124	The test added in tests/tfma.c r12584 no longer fails.
8125
8126	[tests/tfma.c] Added a test that fails. It corresponds to the FIXME
8127	in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z).
8128
8129	[src/fma.c] Removed a redundant test since the second condition of
8130	the && expression implies the first one.
8131	Note: This test came from the time when the precision type was unsigned,
8132	in order to make sure that the result of the subtraction was positive.
8133
81342018-04-11  Vincent Lefèvre  <vincent@vinc17.net>
8135
8136	[tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI).
8137
8138	[src/strtofr.c] English usage in a comment.
8139
81402018-04-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8141
8142	[src/strtofr.c] fixed bug in corner cases
8143
81442018-04-10  Vincent Lefèvre  <vincent@vinc17.net>
8145
8146	[src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI.
8147
8148	[src/strtofr.c] Added a FIXME.
8149
81502018-04-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8151
8152	[src/strtofr.c] added more comments
8153
8154	[src/strtofr.c] replaced dead code by an assert
8155	[tests/tstrtofr.c] fixed bug20170308 and added coverage test
8156
81572018-04-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8158
8159	[src/strtofr.c] removed dead code (and added explanation)
8160
8161	[src/strtofr.c] completed a comment
8162
81632018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8164
8165	[src/strtofr.c] added comment
8166	[tests/tstrtofr.c] improve coverage
8167
81682018-04-06  Vincent Lefèvre  <vincent@vinc17.net>
8169
8170	[src/round_prec.c] Replaced an incorrect comment by an assertion.
8171
8172	[src/round_raw_generic.c] Check validity of flag.
8173
81742018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8175
8176	[NEWS] now 98.2% of test coverage
8177
81782018-04-06  Vincent Lefèvre  <vincent@vinc17.net>
8179
8180	[tests/Makefile.am] Tests in lexicographic order.
8181
81822018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8183
8184	[src/round_prec.c] added comments
8185	[src/round_raw_generic.c] removed dead code
8186	[tests/tcan_round.c] improve coverage
8187
8188	renamed tround_prec.c to tprec_round.c
8189
8190	[src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case
8191			   rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN)
8192
81932018-04-06  Vincent Lefèvre  <vincent@vinc17.net>
8194
8195	[tests/tpow.c] Fixed a test:
8196	  * For this test, unsigned long and mpfr_exp_t must both have at least
8197	    64 bits.
8198	  * Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t
8199	    larger than 64 bits (one would not have an overflow as expected).
8200
8201	[src/pow.c] Fixed the code in case the size of the mpfr_exp_t type
8202	would be larger than 256 bits. This is also semantically better.
8203
8204	Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to
8205	src/mpfr-impl.h (they can be useful...).
8206
8207	[tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256.
8208
82092018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8210
8211	[tests/tpow.c] modified a test for better coverage
8212
82132018-04-06  Vincent Lefèvre  <vincent@vinc17.net>
8214
8215	[tests/tpow.c] Corrected a comment (again).
8216
8217	[tests/tpow.c] Corrected a comment.
8218
82192018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8220
8221	[src/pow.c] simplified case x=2^b and y < 0
8222
82232018-04-05  Vincent Lefèvre  <vincent@vinc17.net>
8224
8225	[src/pow.c] Updated comments.
8226
8227	[src/pow.c] Reverted r12541 (which yielded a failure in tpow_all),
8228	re-indented, and added a comment concerning the failing case.
8229
82302018-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8231
8232	[src/round_prec.c] fixed a bug (to be reviewed)
8233	[tests/tcan_round.c] added coverage tests
8234
8235	[tests/ttan.c] improve coverage (and also of round_near_x)
8236
8237	[src/pow.c] fixed typo
8238
82392018-04-04  Vincent Lefèvre  <vincent@vinc17.net>
8240
8241	[NEWS] Coverage is specific to x86_64 due to the various #if.
8242
8243	[src/pow.c] Corrected indentation.
8244
82452018-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8246
8247	[NEWS] coverage is now 98.1%
8248
8249	[src/pow.c] added a comment
8250
8251	[src/pow.c] removed some dead code (with comment explaining why)
8252	[tests/tpow.c] added a test
8253
8254	[src/pow.c] simplify code for prec=1
8255	[tests/tpow.c] added tests for prec=1
8256
82572018-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8258
8259	[src/mparam_h.in] added macros for Microsoft compiler
8260
82612018-04-03  Vincent Lefèvre  <vincent@vinc17.net>
8262
8263	[tools/check_mparam.c] Added a copyright notice.
8264
8265	[Makefile.am] Added tools/check_mparam.c and tools/ck-mparam
8266	to EXTRA_DIST since tools/ck-mparam is now run in dist-hook.
8267
8268	[tests/Makefile.am] Do not output a useless "PASS ..." line at the end.
8269
8270	[tests/Makefile.am] Update of the "check" rule:
8271	  * Output svnversion info when applicable.
8272	  * Do not echo "cat tversion.log 2> /dev/null || true".
8273
8274	[Makefile.am] Added missing comments for dist-hook.
8275
8276	[Makefile.am] Run ck-mparam in dist-hook (for "make dist").
8277
8278	[tools/ck-mparam] Commented out the old gcc-specific test since the
8279	new one is strictly more powerful. No longer depend on gcc.
8280
8281	[tools/ck-mparam] Also check the mparam.h files with check_mparam.c.
8282
8283	[tools/check_mparam.c] C89 compatibility. Return an error code
8284	(useful for scripts).
8285
8286	[tools/check_mparam.c] A pathname of the mparam.h file can now be
8287	provided with -DMPARAM='"..."' when compiling.
8288
82892018-04-03  Vincent Lefèvre  <vincent@vinc17.net>
8290
8291	Moved misc/check_mparam.c into trunk/tools: it will be useful for
8292	"make dist" in order to make sure that all mparam.h files are OK
8293	before a release.
8294
8295	[[Split portion of a mixed commit.]]
8296
8297	[Added during the Subversion to Git conversion]
8298	The "misc" directory referenced here was in the same Subversion
8299	repository, but outside the trunk/branches/tags structure. Thus
8300	it has not been kept in the same Git repository.
8301
83022018-04-03  Vincent Lefèvre  <vincent@vinc17.net>
8303
8304	[src/mulders.c] Re-enable the change done in r12382. This is allowed
8305	after the fix in generic/mparam.h r12525 (this file was hand written
8306	and did not satisfy the current constraints).
8307
83082018-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8309
8310	[generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required
8311			   since commit r12382
8312
83132018-04-02  Vincent Lefèvre  <vincent@vinc17.net>
8314
8315	[src/mulders.c] Code style / indentation. Added a comment.
8316
8317	[src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can
8318	happen. Note: this probably lacks documentation; moreover, testing
8319	that these tables satisfy the requirements would be useful.
8320
83212018-03-31  Vincent Lefèvre  <vincent@vinc17.net>
8322
8323	[src/inp_str.c] Handle size_t overflow, empty string (after skipping
8324	spaces), and I/O errors (as opposed to end-of-file).
8325
83262018-03-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8327
8328	[src/inp_str.c] disallow stream=NULL (cf r12520)
8329
8330	[src/out_str.c] the behavior on a null stream is unspecified (cf r12519)
8331
83322018-03-30  Vincent Lefèvre  <vincent@vinc17.net>
8333
8334	Reverted r12516: the behavior on a null stream is unspecified.
8335
83362018-03-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8337
8338	[tests/tpow.c] restrict a test to 64-bit exponent
8339
83402018-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8341
8342	[src/pow.c] added comment
8343	[tests/tpow.c] improve coverage
8344
8345	[tests/tout_str.c] improve coverage (I don't know how to avoid printing to
8346			   stdout, but since "make check" no longer shows the test
8347			   outputs, this should be fine). However I don't know how
8348			   to do the same for mpfr_inp_str...
8349
8350	[tests/tconst_pi.c] forgotten line in commit 12512
8351
8352	[tests/tgrandom.c] improve coverage
8353
8354	[src/grandom.c] improve coverage, and solved a FIXME
8355
8356	[tests/tconst_pi.c] improve coverage of mpfr_free_cache2
8357
83582018-03-29  Vincent Lefèvre  <vincent@vinc17.net>
8359
8360	[src/fpif.c] Reverted another incorrect change done in r12509.
8361
8362	[src/fpif.c] Reverted an incorrect change done in r12509.
8363
83642018-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8365
8366	[src/fpif.c] simplify code and improve coverage to 100%
8367
8368	[src/fpif.c] removed dead code and simplify code
8369
8370	[tests/tfpif.c] improve coverage
8371
8372	[tests/tfpif.c] improve coverage
8373
83742018-03-29  Vincent Lefèvre  <vincent@vinc17.net>
8375
8376	[tests/tfpif.c] Really fixed the badData test, completing r12504.
8377
8378	[tests/tfpif.c] Fixed a test: for the huge-precision badData case,
8379	make sure that the data are valid so that we really check that the
8380	precision does not fit (and not a read error).
8381
8382	[tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64.
8383
8384	Removed trailing whitespace.
8385
83862018-03-28  Vincent Lefèvre  <vincent@vinc17.net>
8387
8388	[src/fpif.c]
8389	  * Replaced an incorrect comment from r12500 by a correct assertion.
8390	  * Fixed a theoretical bug coming from this incorrect comment.
8391	  * Added a MPFR_ASSERTN assertion to double-check correctness.
8392	  * Added a comment explaining a ... >= 0x80 test.
8393
83942018-03-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8395
8396	[src/fpif.c] removed dead code
8397	[tests/tfpif.c] improve coverage
8398
8399	[src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0
8400	[tests/tgmpop.c] improve coverage
8401
84022018-03-24  Vincent Lefèvre  <vincent@vinc17.net>
8403
8404	[doc/mpfr.texi] Typographic correction (texinfo rule).
8405
8406	[tools/mpfrlint] For codespell, skip mpfr.t2p (directory created
8407	in doc by "make pdf").
8408
8409	[src/total_order.c] Simplified the code (shorter code).
8410
8411	[tests/ttotal_order.c] Rewrote the tests to test every combination
8412	of classes of values.
8413
8414	[tests] Renamed total_order.c to ttotal_order.c.
8415
84162018-03-23  Vincent Lefèvre  <vincent@vinc17.net>
8417
8418	[src/total_order.c] Suggest to test the sign bit first.
8419
8420	[doc/mpfr.texi] Added mpfr_total_order in "Added Functions".
8421
8422	[doc/mpfr.texi] Improved mpfr_total_order description.
8423
84242018-03-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8425
8426	[TODO] totalOrder is done
8427
8428	added mpfr_total_order
8429
84302018-03-23  Vincent Lefèvre  <vincent@vinc17.net>
8431
8432	[tests] Removed some useless #include's, in particular all the
8433	unconditional #include <math.h> occurrences.
8434	Note: There is an incompatibility between glibc 2.27 and the math.h
8435	provided by ICC 15 (at least), and this solves a compilation failure
8436	in the build of the tests.
8437	Moreover, <math.h> is not required by freestanding implementations,
8438	so that it may be better to avoid it if possible.
8439
84402018-03-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8441
8442	added 2 suggestions from Patrick Pelissier
8443
84442018-03-20  Vincent Lefèvre  <vincent@vinc17.net>
8445
8446	[tools/mpfrlint] For codespell, skip all the algorithms.* files.
8447
84482018-03-15  Vincent Lefèvre  <vincent@vinc17.net>
8449
8450	[tools/mpfrlint] Added a comment for the mul/sqr test.
8451
8452	[tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c.
8453
84542018-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8455
8456	changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible
8457
84582018-03-14  Vincent Lefèvre  <vincent@vinc17.net>
8459
8460	[tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments,
8461	which can be replaced by mpfr_sqr (suggestion by PZ).
8462
84632018-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8464
8465	[src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr
8466
84672018-03-10  Vincent Lefèvre  <vincent@vinc17.net>
8468
8469	[tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int
8470	(missing casts for sprintf / printf).
8471
84722018-03-09  Vincent Lefèvre  <vincent@vinc17.net>
8473
8474	[tests/tget_str.c] C++ compatibility.
8475
8476	[tests/tget_str.c] Use tests_allocate / tests_free.
8477
8478	Fixed spelling mistakes found by codespell 1.12.0.
8479
84802018-03-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8481
8482	[tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str
8483
84842018-03-08  Vincent Lefèvre  <vincent@vinc17.net>
8485
8486	[src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order.
8487
8488	[src/Makefile.am] Updated EXTRA_DIST for amd due to r12387.
8489
8490	Fixed spelling mistakes found by codespell 1.11.0.
8491
8492	[codespell.ignore] Also ignore "cas".
8493
8494	Added codespell.ignore file with simple words to ignore with codespell
8495	("iff" as used in math; "nd" as the n comes from \n in printf, but nd
8496	could also be a variable name; "te" as used as a variable name).
8497	Updated tools/mpfrlint to use this file with codespell.
8498
84992018-03-05  Vincent Lefèvre  <vincent@vinc17.net>
8500
8501	[doc/mpfr.texi] Updated the month.
8502
85032018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8504
8505	[tests/tget_str.c] added tests for mpfr_get_str_ndigits
8506	[src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too
8507			large) and very large p (value was 1 too small)
8508
85092018-03-05  Vincent Lefèvre  <vincent@vinc17.net>
8510
8511	[doc/mpfr.texi] Typographic corrections for mpfr_subnormalize.
8512
8513	[NEWS] Added mpfr_get_str_ndigits.
8514	[doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions".
8515
8516	[doc/mpfr.texi] Minor corrections concerning mpfr_get_str.
8517
8518	[src/mpfr.h] Added a note about a mpfr_prec_t limitation.
8519
8520	[src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455):
8521	  * MPFR_PREC_BITS is used to exactly do what is wanted.
8522	  * Removed dead code as currently, mpfr_prec_t <= unsigned long.
8523	    Note: if in the future we support mpfr_prec_t > unsigned long
8524	    (e.g. to have a 64-bit precision on MS Windows), the generic code
8525	    could be retrieved back from r12455.
8526
85272018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8528
8529	[src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits
8530	[doc/mpfr.texi] updated documentation of mpfr_get_str
8531
8532	[src/get_str.c] fixed FIXME
8533
85342018-03-05  Vincent Lefèvre  <vincent@vinc17.net>
8535
8536	[src/get_str.c] Portability corrections in mpfr_get_str_digits.
8537
85382018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8539
8540	[src/get_str.c] new function mpfr_get_str_digits
8541	[doc/mpfr.texi] added documentation for mpfr_get_str_digits
8542
85432018-03-03  Vincent Lefèvre  <vincent@vinc17.net>
8544
8545	[tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs
8546	(e.g. as under 64-bit MS Windows).
8547
85482018-02-26  Vincent Lefèvre  <vincent@vinc17.net>
8549
8550	[acinclude.m4] Correction for test of the fallback to __float128:
8551	in the test program, define the variable outside main() in order to
8552	avoid an error when the -Werror=unused-variable GCC option is used.
8553
8554	[src/get_sj.c] Avoid an unused variable.
8555
8556	[doc/README.dev] Updated description of MPFR_WANT_FLOAT128.
8557
8558	[doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE
8559	(see r12448 as an example of an issue with AC_COMPILE_IFELSE).
8560
8561	[acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB
8562	even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a
8563	function call since the macro was not defined, thus did not yield an
8564	error).
8565
8566	[tests/tversion.c] Output the sizes of long and intmax_t.
8567
8568	[acinclude.m4] Fixed incorrect test from r12426.
8569
8570	Removed trailing spaces.
8571
8572	Updated support for binary128:
8573	  * __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391;
8574	    also changed the suffix of the constants from "q" to "f128".
8575	  * Use __float128 with the "q" suffix as a fallback in order to avoid
8576	    regressions with GCC 6- and with C++ mode (g++).
8577	    As documented in the GCC manual, this is entirely compatible on most
8578	    platforms where both are supported: _Float128 and __float128 are the
8579	    same type, and it could be checked that the following prototypes are
8580	    equivalent (as expected):
8581	      _Float128 f (__float128)
8582	      __float128 f (_Float128)
8583	    The only potential issues would be on hppa and IA-64 HP-UX, where
8584	    __float128 is an alias for "long double" instead of _Float128, in
8585	    case the ABI would be different (I have no information about this)
8586	    and both would be mixed up with software using the MPFR conversion
8587	    functions for binary128 via __float128 or "long double". The worst
8588	    thing that could happen is a link error. If the link is accepted,
8589	    everything should be fine as the representation doesn't change.
8590
8591	[src/set_float128.c] Removed a useless #include and corrected a comment.
8592
85932018-02-25  Vincent Lefèvre  <vincent@vinc17.net>
8594
8595	[src/get_z_exp.c] Portability.
8596
8597	[tests/tdiv_ui.c] Avoid a compilation error with
8598	gcc -std=c90 -pedantic -Werror in 32-bit ABI.
8599
8600	[tests/tget_str.c] Fixed a return type.
8601
86022018-02-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8603
8604	[src/get_z_exp.c] new try for r12437. If that still does not work, we should
8605			  define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ...
8606
86072018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8608
8609	[src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not
8610	always related to the size of mp_limb_t.
8611
86122018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8613
8614	[src/get_z_exp.c] removed dead code on 64-bit computer
8615
8616	[src/get_str.c] improved case m < g
8617	[tests/tget_str.c] improve coverage
8618
86192018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8620
8621	[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
8622	2 cases: TRUE and FALSE.
8623
86242018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8625
8626	[tests/tget_str.c] fixed not enough allocation issue
8627
86282018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8629
8630	[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
8631	2 cases: TRUE and FALSE.
8632
86332018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8634
8635	[doc/mpfr.texi] m=1 is now valid in get_str
8636	[src/get_str.c] allow m=1 for b=2^k
8637	[tests/tget_str.c] added test for m=1 and b=2
8638
8639	[src/get_str.c] added a comment
8640	[tests/tget_str.c] improved coverage (finding this example was quite hard!)
8641
86422018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8643
8644	[src/get_sj.c] Removed two assertions, including an incorrect one.
8645	Added an assertion.
8646
8647	[acinclude.m4] Correction: if we cannot test, the portable code must be
8648	selected.
8649
86502018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8651
8652	[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
8653	[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1
8654
86552018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8656
8657	[src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not
8658	  properly specified in the general case and was actually used only
8659	  in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE.
8660	[src/set_ld.c] Simplified code. Moreover, the hypothetical case
8661	  GMP_NUMB_BITS == 16 will trigger a compilation error instead of
8662	  yielding incorrect code.
8663
8664	[tests/tbuildopt.c]
8665	  * Added missing const.
8666	  * Use the variable s to avoid a warning and also to detect potential
8667	    undefined behavior with debugging tools if s is not a string.
8668
86692018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8670
8671	[src/get_sj.c] fixed typo
8672
8673	[src/get_sj.c] added comments and simplified the code
8674
86752018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8676
8677	[src/mpfr-impl.h] Typo in a comment.
8678
86792018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8680
8681	[tests/tget_q.c] improved coverage
8682
86832018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8684
8685	[src/get_d64.c] Parsing in the portable version of string_to_Decimal64:
8686	similar changes as in r12416 for the _MPFR_IEEE_FLOATS version.
8687
86882018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8689
8690	[src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d)
8691
8692	[src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1
8693	[tests/tget_flt.c] improved coverage
8694
8695	[src/get_d64.c] simplified code, and removed dead code
8696	[src/mpfr-impl.h] added comment
8697	[tests/tget_set_d64.c] improve coverage
8698
86992018-02-23  Vincent Lefèvre  <vincent@vinc17.net>
8700
8701	[src/set_q.c] Simplified code.
8702
87032018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8704
8705	[src/get_d.c] removed dead code
8706
8707	[src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1
8708
8709	[tests/tset_z_exp.c] improved coverage
8710
8711	[src/set_q.c] removed dead code on 64-bit processor
8712
8713	[src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined
8714
87152018-02-22  Vincent Lefèvre  <vincent@vinc17.net>
8716
8717	[src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be
8718	used with the preprocessor due to the use of "sizeof".
8719
87202018-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8721
8722	[src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1
8723
8724	[tests/tfma.c] improved coverage of mpfr_set_1_2
8725
8726	[tests/tbuildopt.c] improve coverage
8727
87282018-02-22  Vincent Lefèvre  <vincent@vinc17.net>
8729
8730	[tests/tfma.c] Corrected a comment.
8731
8732	[tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop.
8733	Improved the corresponding test and error message. Also run this test
8734	with the default exponent range.
8735
8736	[src/fma.c] Added FIXME for r12396, which still seems incorrect.
8737
8738	[src/mpfr-impl.h] Typo in a comment.
8739
8740	[NEWS] Update about the change of __float128 to _Float128: clarification
8741	that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME
8742	on a possible fallback to __float128 and ABI considerations.
8743
8744	[configure.ac] For --enable-float128, this is still autodetect, e.g.:
8745	  checking if compiler knows _Float128 with C99 constants... no
8746	Added a FIXME: a fallback to __float128 is necessary to avoid
8747	regressions.
8748
87492018-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8750
8751	[src/sqr.c] added comments
8752	[tests/tsqr.c] improve coverage of sqr.c to 100%
8753
8754	[src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow,
8755		    only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3
8756		    when all numbers have same precision (like for mpfr_mul),
8757		    and added comments
8758	[tests/tsqr.c] added tests, including non-regression for above bug
8759
8760	[src/fma.c] added comments and a FIXME
8761
8762	[src/fma.c] fixed last failure
8763	[tests/tfma.c] removed debug stuff
8764
8765	[tests/tfma.c] added new failing test
8766
8767	[src/fma.c] fix failure from last test
8768
8769	[src/fma.c] added comments
8770	[tests/tfma.c] added a test (currently failing)
8771
8772	[mips/mparam.h] updated
8773
8774	changed __float128 (gcc specific) into the standard type _Float128
8775
8776	[arm/mparam.h] updated
8777
8778	[x86/mparam.h] updated
8779
8780	[src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h
8781
8782	[amd/mparam.h] updated
8783
8784	[sparc64/mparam.h] updated
8785
8786	[x86_64/core2/mparam.h] updated
8787
8788	[powerpc64/mparam.h] updated
8789
8790	[x86_64/mparam.h] updated
8791
8792	[src/mulders.c] removed dead code
8793
87942018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8795
8796	[tune/tuneup.c] ensure k < n in mpfr_divhigh_n[]
8797
8798	[src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org)
8799
8800	[src/mips/mparam.h] updated on gcc22
8801
8802	[NEWS] added item
8803
8804	removed tuning for x86/core2, updated tuning for generic x86
8805
8806	[src/sparc64/mparam.h] updated tuning parameters for sparc64
8807
88082018-02-21  Vincent Lefèvre  <vincent@vinc17.net>
8809
8810	[src/mparam_h.in] Use the generic parameters for x86_64 with Clang.
8811
88122018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8813
8814	added tuning for ARM
8815
88162018-02-21  Vincent Lefèvre  <vincent@vinc17.net>
8817
8818	Reverted r12368: sparc64 tuning should be updated on gcc202.
8819
88202018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8821
8822	[src/mparam_h.in] generic case for all remaining i386's
8823
8824	[src/mparam_h.in] put back __tune_k8__
8825
8826	[src/mparam_h.in] check __amd64__ before generic __x86_64__
8827
8828	removed tuning for hppa (gcc61 is offline)
8829
8830	removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline)
8831
8832	[tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again
8833
8834	removed tuning for powerpc32 (no such machine available any more)
8835
8836	[src/powerpc64/mparam.h] updated tuning parameters for powerpc64
8837
8838	[src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD
8839
8840	updated tuning parameters for amd/k8 and x86/core2
8841
88422018-02-21  Vincent Lefèvre  <vincent@vinc17.net>
8843
8844	Reverted r12359 and added a comment: tuning for x86 is used when
8845	building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32).
8846
88472018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8848
8849	[tuneup.c] start from 4 limbs for mpfr_div_threshold
8850
8851	removed tuning for ia64 (gcc60.fsffrance.org is now offline)
8852
8853	removed tuning for x86 (no more access to such machine)
8854
8855	[tune/tuneup.c] make tune_simple_func more robust for small precisions
8856
8857	[src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD
8858
8859	[x86_64/core2/mparam.h] updated on gcc14
8860
88612018-02-21  Vincent Lefèvre  <vincent@vinc17.net>
8862
8863	[acinclude.m4] In the "long double" format recognition, added
8864	size information for IEEE extended (not used by MPFR, but this
8865	may be useful information for the user).
8866
88672018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8868
8869	removed tuning parameters for amd/athlon (we have no access to such machine
8870	any more)
8871
8872	removed tuning for pentium4
8873
8874	removed tuning for corei5 (was not used)
8875
8876	[src/x86_64/mparam.h] added tuning for generic x86_64
8877	[tune/tuneup.c] mpfr_divhigh now wants n >= 2
8878
8879	removed thresholds for arm since gcc57 is no longer available, thus we cannot
8880	tune on an ARM machine
8881
88822018-02-21  Vincent Lefèvre  <vincent@vinc17.net>
8883
8884	[src/mulders.c] Removed unused variable dinv.
8885
88862018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8887
8888	[src/div.c] added comment
8889	[src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD
8890	[src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase
8891	[tests/tmul.c] improve coverage
8892	[tune/tuneup.c] forbid k = n-1 in divhigh_ktab[]
8893
8894	[tests/tdiv.c] improve coverage, now 100% for div.c
8895
8896	[src/ai.c] revert part of r12312
8897	[tests/tai.c] added coverage test provided by Sylvain Chevillard
8898
8899	[src/sub1.c] revert r12317 since it did not consider UBFs. For the record,
8900		     tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416.
8901
8902	[src/div.c] get rid of mpfr_div_with_mpz_tdiv_q
8903
89042018-02-20  Vincent Lefèvre  <vincent@vinc17.net>
8905
8906	[src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag
8907	was set by mpfr_set_q, but the flags were not restored just after.
8908
8909	[src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q.
8910	Explanation in comment. If the code was not tested, it should be by
8911	using mpq_set_num and mpq_set_den to construct such rationals.
8912
89132018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8914
8915	[tests/tdiv.c] improve coverage
8916
8917	[tests/tdiv.c] improve coverage of mpfr_div_2
8918
89192018-02-20  Vincent Lefèvre  <vincent@vinc17.net>
8920
8921	[src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2.
8922
89232018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8924
8925	[src/div.c] removed dead code
8926
8927	[src/gmp_op.c] removed dead code
8928	[tests/tgmpop.c] improve coverage of gmp_op.c to 100%
8929
89302018-02-20  Vincent Lefèvre  <vincent@vinc17.net>
8931
8932	[acinclude.m4] Added missing ";;" before "esac" for code robustness.
8933
8934	[acinclude.m4] Added a FIXME. Added a ";;" for safety.
8935
89362018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8937
8938	[acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test
8939
89402018-02-20  Vincent Lefèvre  <vincent@vinc17.net>
8941
8942	[src/random_deviate.c] Improved highest_bit_idx in the case where
8943	MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC).
8944
89452018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8946
8947	[src/mul.c] resolved FIXME and removed dead code
8948
8949	[tests/tmul.c] improve coverage
8950
8951	[src/random_deviate.c] highest_bit_idx() assumes x > 0
8952
8953	[src/random_deviate.c] fixed comment
8954
8955	[src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB
8956
8957	[src/sub1.c] added 2 FIXME
8958
89592018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
8960
8961	[tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is
8962	"exercise mpfr_ai near m*2^e", as documented. Corrected comments.
8963
8964	[tests/tai.c] For test_near_zero(), check that the NaN flag was not set
8965	(useful since such tests don't really check that the result is not NaN).
8966
89672018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8968
8969	[tests/tmul.c] improve coverage
8970
8971	[tests/tmul.c] improve coverage
8972
89732018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
8974
8975	[src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX
8976	cannot be used with the preprocessor due to the cast. The test should
8977	be done in "pure" C and the middle-end of the compiler should optimize.
8978
8979	[src/sub1.c] Removed an unused label.
8980
8981	[tests/tzeta.c] Check that the NaN flag was not set in some tests
8982	that do not involve NaN (useful since such tests don't really check
8983	that the result is not NaN).
8984
89852018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8986
8987	[src/sub1.c] removed dead code, now coverage should be 100%
8988
89892018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
8990
8991	[src/ai.c] Avoid more integer overflows.
8992
89932018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
8994
8995	[src/sub1.c] removed dead code
8996	[tests/tsub.c] added coverage test
8997
89982018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
8999
9000	[src/ai.c] Detect some potential integer overflows.
9001
90022018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9003
9004	[src/random_deviate.c] don't compile alternate code if not needed
9005
90062018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
9007
9008	[src/ai.c] Coding style. Corrected comments.
9009
90102018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9011
9012	[tests/tzeta.c] improve coverage (and also uceil_exp2.c)
9013
9014	[src/ai.c] removed dead code, and improved coverage
9015	[tests/tai.c] exercise mpfr_ai near (negative) zeroes
9016
9017	[src/ai.c] fixed recomputation of wprec (to be confirmed)
9018
9019	[src/ai.c] removed dead code
9020
90212018-02-19  Vincent Lefèvre  <vincent@vinc17.net>
9022
9023	[src/sub1sp.c] Fixed indentation.
9024
9025	Removed trailing whitespace.
9026
9027	[src/sqrt.c] Coding style.
9028
9029	[src/expm1.c] Avoid a potential integer overflow in a type conversion
9030	for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2
9031	on a 64-bit Linux machine).
9032
9033	[src/div_2ui.c] Reverted incorrect change in r12272 and added comments
9034	  and assertions.
9035	[tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also
9036	  when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines).
9037
9038	[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive).
9039
9040	[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative).
9041
9042	[tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the
9043	--enable-assert=full configure option (signaled by GCC's -Wformat).
9044
9045	[src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and
9046	the --enable-assert=full configure option (signaled by GCC's -Wformat).
9047
9048	[doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX,
9049	replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298.
9050	Note: These old macros had been introduced in r7863 so that one could
9051	choose different values for the extended exponent range for debugging
9052	purpose, but they were not used in practice and were adding complexity
9053	(and potential inconsistency) for no really good reason.
9054
90552018-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9056
9057	[src/agm.c] added comment about line of code impossible to cover
9058
9059	[src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN,
9060					      and MPFR_EXT_EMAX by MPFR_EMAX_MAX
9061
9062	[src/sqrt.c] removed dead code
9063	[tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100%
9064
9065	[tests/tsqrt.c] improve coverage
9066
9067	[tests/tsqrt.c] improve coverage
9068
90692018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9070
9071	[src/sqrt.c] removed dead code
9072
9073	[tests/tsqrt.c] improve coverage
9074
9075	[tests/tsqrt.c] improved coverage
9076	[src/sqrt.c] added comments
9077
90782018-02-17  Vincent Lefèvre  <vincent@vinc17.net>
9079
9080	[src/expm1.c] Added a FIXME comment.
9081
90822018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9083
9084	[tests/tsqrt.c] improve coverage
9085
9086	[src/sqrt.c] removed dead code
9087
90882018-02-17  Vincent Lefèvre  <vincent@vinc17.net>
9089
9090	[tests/tsub.c] Improved a comment.
9091
9092	[tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when
9093	possible.
9094
90952018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9096
9097	[src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c)
9098	[tests/tsub1sp.c] added non-regression test
9099
9100	[src/sub1sp.c] fixed case 2e
9101
91022018-02-17  Vincent Lefèvre  <vincent@vinc17.net>
9103
9104	[tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to
9105	reuse the smallest input variable as the output variable.
9106
9107	[tests/tsub.c] Added a test.
9108
9109	[src/expm1.c] Updated a comment.
9110
9111	[src/expm1.c] Fixed an integer overflow from r12276.
9112
9113	[src/expm1.c] Added a log message.
9114
91152018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9116
9117	[tests/tfmma.c] added coverage test
9118
9119	[tests/tfmma.c] improve coverage of add.c (ubf case)
9120
91212018-02-16  Vincent Lefèvre  <vincent@vinc17.net>
9122
9123	[src/expm1.c] It seems that code removed in r12273 wasn't necessarily
9124	dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because
9125	for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX
9126	and precisions larger than LONG_MAX could be problems. The -LONG_MAX
9127	bound from r4127 was arbitrary and only used to simplify the code due
9128	to the fact that mpfr_cmp_si compares to a "long" argument. But now we
9129	have the internal mpfr_get_exp_t function, allowing us to avoid this
9130	arbitrary bound (fixing the code and making it more efficient for these
9131	extreme cases) and simplify the code even more.
9132
91332018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9134
9135	[mbench] added new option to usage
9136
9137	[mbench] added option -d to fix the exponent difference between operands
9138		 (useful for mpfr_add and mpfr_sub, for example use -d0 for operands
9139		 with same exponent, -d1 for operands differing by 1, ...)
9140
9141	[src/expm1.c] improve coverage (by removing dead code)
9142
91432018-02-16  Vincent Lefèvre  <vincent@vinc17.net>
9144
9145	[src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on
9146	the valid exponents.
9147
9148	[doc/README.dev] Update about mpfr_exp_t.
9149
9150	[src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui).
9151
9152	[src/div_2ui.c] Simplified justification.
9153
9154	[src/div_2ui.c] Simplified code as suggested by PZ; added justification.
9155
91562018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9157
9158	GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting
9159
9160	[src/div_2ui.c] added comment
9161	[tests/tmul_2exp.c] added coverage test
9162
91632018-02-16  Vincent Lefèvre  <vincent@vinc17.net>
9164
9165	[src/div_2ui.c] Replaced FIXME by an explanation.
9166
91672018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9168
9169	[src/div_2ui.c] added FIXME
9170
9171	[src/cmp_ld.c] simplified code (and avoid useless test when long double is not
9172		       double-double)
9173
9174	[tests/tsub1sp.c] improve coverage
9175
9176	[tests/tadd1sp.c] improve coverage of add1sp
9177
9178	[src/sub1sp.c] fixed bug20180216
9179
9180	[tests/tadd1sp.c] added coverage test
9181
91822018-02-16  Vincent Lefèvre  <vincent@vinc17.net>
9183
9184	[tests/tsub.c] More tests in bug20180216.
9185
9186	[tests/tsub.c] Added bug20180216 test currently failing (corresponding
9187	to the failure mentioned in r12253, r12254 and r12255, but reproducible
9188	with a simple "./configure").
9189
9190	[src/exp_2.c] Note that the internal behavior depends on whether
9191	MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This
9192	should not matter, possibly except in case of bug, like currently.
9193
9194	[acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
9195
9196	[acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.
9197
9198	[src/sub1sp.c] Squeezed useless double-space.
9199
92002018-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9201
9202	[src/sub1sp.c] fixed bug20180215()
9203
92042018-02-15  Vincent Lefèvre  <vincent@vinc17.net>
9205
9206	[tests/tsub.c] Updated comment for bug20180215.
9207
9208	[src/sub1sp.c] Use "else" for symmetry with above code.
9209
9210	[tests/tsub.c] Added a comment for bug20180215 (bug in the case
9211	2 <= d < p in generic code mpfr_sub1sp() introduced in r12242).
9212
9213	[tests/tsub.c] Added bug20180215 test currently failing, found from a
9214	failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full
9215	configure option; but the test had to be extended so that it also fails
9216	with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS
9217	and without the --enable-assert=full configure option.
9218
9219	Removed trailing whitespace.
9220
92212018-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9222
9223	[src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp()
9224
9225	[src/div_ui.c] GNU style
9226	[src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp()
9227
92282018-02-14  Vincent Lefèvre  <vincent@vinc17.net>
9229
9230	[tools/mpfrlint] Much improved the check of the use of GMP internals.
9231
92322018-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9233
9234	[src/sub1sp.c] fixed a FIXME
9235
9236	[src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n
9237	[src/sub1sp.c] changed names of variables to something more readable
9238
9239	[configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n
9240	[src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1
9241
92422018-02-14  Vincent Lefèvre  <vincent@vinc17.net>
9243
9244	[src/sub1sp.c] Added 2 FIXME's.
9245
9246	[src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly
9247	simplifies the code and avoids a -Wmaybe-uninitialized warning from
9248	GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to
9249	an assertion failure in mpfr_sub1sp, as before this change.
9250
9251	[src/sub1sp.c] Avoid the swapping of the exponents when they are equal.
9252
92532018-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9254
9255	[src/sub1sp.c] review of case d=1 in generic code
9256
9257	[src/add1sp.c] no need of MPFR_TMP_MARK any more
9258
9259	[src/sub1sp.c] end of review of case d=0 in generic code
9260
9261	[src/sub1sp.c] work in progress
9262
92632018-02-13  Vincent Lefèvre  <vincent@vinc17.net>
9264
9265	[src/add1sp.c] Moved a MPFR_ASSERTD to the right place.
9266
92672018-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9268
9269	[src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS)
9270
9271	[src/sub1sp.c] small improvement
9272
9273	[tools/cfarm.sh] updated for 4.0.1-rc2
9274
9275	[src/add1sp.c] mp_ptr -> mp_limb_t*
9276
9277	[src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code
9278
92792018-02-13  Vincent Lefèvre  <vincent@vinc17.net>
9280
9281	[src/add1sp.c] Improved comments and other minor changes.
9282
9283	[src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation
9284	of the round and sticky bits from r12220. At the same time, improved the
9285	handling of MPFR_RNDF in this part of the code:
9286	  * The "while" loop to compute the sticky bit is no longer done in this
9287	    case (the sticky bit does not matter).
9288	  * The "goto" is avoided.
9289
9290	[tests/tadd.c] Added 2 tests that fail starting with r12220.
9291
92922018-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9293
9294	[src/add1sp.c] cleanup generic code mpfr_add1sp()
9295
92962018-02-09  Vincent Lefèvre  <vincent@vinc17.net>
9297
9298	[src/fma.c] Added a FIXME comment about overflow/underflow issues in
9299	  corner cases (already caught with MPFR_ASSERTN), fixable with UBF
9300	  like in mpfr_fmma.
9301	[src/hypot.c] Updated a comment: The problem that would come from an
9302	  underflow in y^2, in particular because x was scaled in order to
9303	  avoid an overflow in x^2, has been avoided by using a FMA (though
9304	  still buggy for these cases, as mentioned just above).
9305
93062018-02-08  Vincent Lefèvre  <vincent@vinc17.net>
9307
9308	[tests] Added/updated comments about the config.h inclusion.
9309
9310	[tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL
9311	related code (this should have been done in r12185).
9312
93132018-02-07  Vincent Lefèvre  <vincent@vinc17.net>
9314
9315	[INSTALL] Updated GMP URL.
9316
9317	[doc/mpfr.texi] Updated the month.
9318
9319	[doc/mpfr.texi] Corrected minimal GMP version.
9320	[tools/mpfrlint] Updated test to detect minimal GMP version mismatch.
9321
9322	[INSTALL] Corrected minimal GMP version (thanks to David Edelsohn).
9323	[tools/mpfrlint] Added a test to detect minimal GMP version mismatch.
9324
9325	[tools/announce-text] For releases, check the VERSION file of the tag.
9326
9327	[doc/README.dev] "To make a release": moved a sentence.
9328
93292018-02-02  Vincent Lefèvre  <vincent@vinc17.net>
9330
9331	[tests/tdiv_ui.c] Forcibly disable value coverage checking if
9332	mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI).
9333
9334	[tests/tdiv_ui.c] Corrected comments.
9335
9336	[tests/t*random*.c]
9337	  * Replaced calloc + free by tests_allocate + tests_free as usual.
9338	  * trandom.c, turandom.c: do bitwise operations in unsigned arithmetic.
9339
9340	[tests/t*random*.c]
9341	  * Replaced some fprintf with stderr by printf (but not those
9342	    concerning memory allocation errors).
9343	  * Do bitwise operations in unsigned arithmetic.
9344	  * Formatting.
9345
9346	[tests] Formatting.
9347
9348	[tests/tests.c] Make stderr unbuffered again.
9349	Note for the history: both stdout and stderr were made unbuffered in
9350	r2361, then all stderr were changed to stdout (and the corresponding
9351	setbuf on stderr removed) in r2449 for consistency, but stderr was
9352	used later for specific cases (e.g. memory allocation errors or when
9353	stdout is already used for something else), and it is also used for
9354	assertion failures. Thus the setbuf on stderr is still needed.
9355
9356	[tests] Fixed the cases where tests_start_mpfr was called too late,
9357	i.e. after potential output (to stdout).
9358	  * tremquo.c: moved the call to tests_start_mpfr to the beginning.
9359	  * tset_float128.c, tset_ld.c: removed the optional, obsolete code
9360	    setting the FPU control word; MPFR_FPU_PREC can be used instead
9361	    (see tests.c).
9362
9363	Reverse-merged r12181 since tests_start_mpfr disables stdout buffering,
9364	so that the fflush() are unnecessary.
9365
9366	[tests/tabort_*.c] Flush stdout after a printf(), as an abort() is
9367	expected. This is needed on platforms where abort() does not flush
9368	the stdio streams, such as with the GNU C Library (glibc) 2.27.
9369
93702018-02-01  Vincent Lefèvre  <vincent@vinc17.net>
9371
9372	[NEWS] Mention "make check-exported-symbols" (experimental).
9373
9374	[tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1.
9375
93762018-01-31  Vincent Lefèvre  <vincent@vinc17.net>
9377
9378	[tests/tdiv_ui.c] In corner_cases, test larger values for xn,
9379	as suggested by Paul, allowing one to cover case 2 for both
9380	sb=0 and sb=1. Value coverage is now complete.
9381
9382	[tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor
9383	ULONG_MAX, allowing one to cover cases 3 and 4.
9384
9385	[tests/tdiv_ui.c] Added tests with simple midpoint and exact cases.
9386	This covers case 9, sb=0.
9387
9388	Added a case for the value coverage for tdiv_ui.
9389	→ Now, on a 64-bit Linux machine:
9390	    mpfr_div_ui not tested on case 2, sb=0
9391	    mpfr_div_ui not tested on case 2, sb=1
9392	    mpfr_div_ui not tested on case 3, sb=0
9393	    mpfr_div_ui not tested on case 4, sb=0
9394	    mpfr_div_ui not tested on case 9, sb=0
9395
9396	Added value coverage for tdiv_ui (combinations of rb and sb in the
9397	different cases of the mpfr_div_ui code).
9398	→ Currently on a 64-bit Linux machine:
9399	    mpfr_div_ui not tested on case 2, sb=0
9400	    mpfr_div_ui not tested on case 3, sb=0
9401	    mpfr_div_ui not tested on case 8, sb=0
9402
9403	[src/div_ui.c] Case tmp[yn] != 0: simplified code since u ≥ 2.
9404
9405	[src/div_ui.c] Case tmp[yn] == 0:
9406	  * corrected/improved comments;
9407	  * simplified condition rb && sb to rb (since if rb ≠ 0, then r ≠ 0,
9408	    so that the current sb ≠ 0);
9409	  * replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler).
9410
94112018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9412
9413	[src/div_ui.c] fixed corner case (hopefully)
9414
94152018-01-30  Vincent Lefèvre  <vincent@vinc17.net>
9416
9417	[tools/mpfrlint] Improved a regexp (avoiding false positives).
9418
9419	[tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long.
9420
9421	[tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was
9422	incorrect, but just a U is OK).
9423
94242018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9425
9426	[tests/tdiv_ui.c] added test for corner case (currently fails)
9427
94282018-01-30  Vincent Lefèvre  <vincent@vinc17.net>
9429
9430	[tests/tdiv_ui.c] Fixed a value (from a zsh bug).
9431
9432	[src/div_ui.c] Comment: now, "i.e." is correct.
9433
9434	[tests/tdiv_ui.c] Added ABI-independent bug20180126 tests.
9435
94362018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9437
9438	[src/div_ui.c] fixed a comment
9439
94402018-01-30  Vincent Lefèvre  <vincent@vinc17.net>
9441
9442	[src/div_ui.c] Typo in a comment.
9443
9444	[src/div_ui.c] Updated a comment.
9445
9446	[src/div_ui.c] Clarified the notation (this was ambiguous, with two
9447	possible interpretations). Added comments about mpn_divrem_1.
9448
9449	[src/div_ui.c] Added a FIXME.
9450
94512018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9452
9453	[src/div_ui.c] fixed a comment, and added a FIXME
9454
94552018-01-29  Vincent Lefèvre  <vincent@vinc17.net>
9456
9457	[src/div_ui.c] Clarified a comment.
9458
9459	[src/div_ui.c] Started to review the code; minor changes.
9460
9461	[src/div_ui.c] Minor update of comments.
9462
9463	[src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized.
9464
9465	[tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in
9466	an unsigned long; clarified a comment.
9467
94682018-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9469
9470	[src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of
9471		       mpfr_div_ui using the round and sticky bits
9472	[tests/tdiv_ui.c] added more tests
9473
94742018-01-27  Vincent Lefèvre  <vincent@vinc17.net>
9475
9476	[tests/tdiv.c] mpfr_div bug bug20180126: also test negative values.
9477
9478	[tests/tdiv.c] Updated comment about mpfr_div bug bug20180126.
9479
9480	[tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086.
9481
94822018-01-26  Vincent Lefèvre  <vincent@vinc17.net>
9483
9484	[tests/tdiv.c] Completed r12128 test with new comments and an assert.
9485
9486	[tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4.
9487
94882018-01-25  Vincent Lefèvre  <vincent@vinc17.net>
9489
9490	[doc/README.dev] Added information about symbol checking.
9491
94922018-01-23  Vincent Lefèvre  <vincent@vinc17.net>
9493
9494	[tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding
9495	potential failures if a compatible MPFR version is already installed:
9496	this MPFR library is tested instead of the one that has just been built.
9497
94982018-01-22  Vincent Lefèvre  <vincent@vinc17.net>
9499
9500	[NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval.
9501
9502	[configure.ac] In the CC and CFLAGS setup from gmp.h, added to the
9503	cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC
9504	(suggested by Alexander).
9505
95062018-01-20  Vincent Lefèvre  <vincent@vinc17.net>
9507
9508	[doc/README.dev] "To make a release": mention "make check-gmp-symbols"
9509	and "make check-exported-symbols".
9510
9511	[Makefile.am] Updated comments.
9512
9513	[src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if
9514	the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules
9515	do nothing instead of potentially failing.
9516
9517	Added check-exported-symbols make rule to check that MPFR does not
9518	define symbols with a GMP reserved prefix.
9519
95202018-01-18  Vincent Lefèvre  <vincent@vinc17.net>
9521
9522	[src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107).
9523
9524	[src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure
9525	under MinGW when GMP is built with "--disable-shared --enable-static
9526	--enable-assert --disable-assembly" and MPFR is built using the GMP
9527	build. Indeed, this commit was incorrect, as if the GMP build is used,
9528	then this is GMP's longlong.h that is used and GMP's __clz_tab version
9529	that should be used.
9530	The real cause of the "multiple definition of `__gmpn_clz_tab'" error
9531	reported at
9532	  https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html
9533	is that MPFR defines its own __gmpn_clz_tab while this is not needed
9534	(and must not be done) when the GMP build is used.
9535
95362018-01-16  Vincent Lefèvre  <vincent@vinc17.net>
9537
9538	[TODO] - Decide whether multiple calls to mpfr_clear should be allowed.
9539
9540	[TODO] + Decide whether multiple calls to mpfr_clear should be allowed.
9541
95422018-01-13  Vincent Lefèvre  <vincent@vinc17.net>
9543
9544	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
9545
9546	[NEWS] Update. Prepare for new version 4.1.0.
9547
9548	[doc] Updated FAQ.html with update-faq.
9549
95502018-01-10  Vincent Lefèvre  <vincent@vinc17.net>
9551
9552	[tests/tlgamma.c] bug20180110: test the ternary value and the flags.
9553
9554	[src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case
9555	emax < exponent of the result (the issue was an overflow in the "fast"
9556	algorithm, which made it loop with more and more working precision).
9557
9558	[src/lngamma.c] Removed a useless cast.
9559
9560	[tests/tlgamma.c] Added a test case for a bug found from the tgeneric
9561	change done in r12088.
9562
9563	[tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and
9564	this for each precision. This allows one to detect the mpfr_ai bug found
9565	and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI):
9566	  https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html
9567	Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed.
9568
9569	[tests/tgeneric.c] Added comments for tests in a reduced exponent range.
9570
9571	[tests/tsprintf.c] About r12084, simplified the code, without needing
9572	strncpy.
9573
9574	[tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a
9575	null-terminated string (bug detected by gcc-snapshot 20180107-1 under
9576	Debian with -Werror=stringop-truncation).
9577
95782018-01-09  Vincent Lefèvre  <vincent@vinc17.net>
9579
9580	[doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of
9581	the OT1 encoding, the pipe character "|" was giving a wide dash.
9582
9583	[doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN,
9584	infinity and zero, with more details.
9585
9586	[doc/mpfr.texi] Improved description of mpfr_custom_init_set.
9587	Note: For the versions of the manual generated with TeX (PDF/DVI/PS),
9588	"|kind|" appears as "—kind—", and the description of mpfr_ai has
9589	the same issue (since its introduction in MPFR 3.0.0). The cause
9590	is unclear, and this will be fixed later.
9591
95922018-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9593
9594	[doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered
9595			in [1/2,1) as for mpfr_get_exp
9596
95972018-01-09  Vincent Lefèvre  <vincent@vinc17.net>
9598
9599	[doc]
9600	  * texinfo.tex: update to the latest version 2018-01-09.11, which
9601	    supports @var with script font size without any drawback.
9602	  * mpfr.texi: replaced the now useless @svar by @var.
9603
96042018-01-07  Vincent Lefèvre  <vincent@vinc17.net>
9605
9606	[tests/tai.c] In bug20180107, also check the flags.
9607
9608	[src/ai.c] Really fixed the bug.
9609
9610	[src/check.c] Typo.
9611
96122018-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9613
9614	[src/ai.c] missing call to mpfr_check_range
9615
9616	[tests/tai.c] added test that fails on x86_64
9617
9618	[tests/tai.c] added test for bug in mpfr_ai (see thread
9619	https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html)
9620
96212018-01-03  Vincent Lefèvre  <vincent@vinc17.net>
9622
9623	[doc/mpfr.texi] Updated the month.
9624
9625	[tools/ck-mparam] In the copyright notice, just keep the year 2011
9626	since this file is not part of the tarball (just used by mpfrlint).
9627
9628	Copyright notice update: added 2018 with
9629	  perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/
9630	               " ".($1||"$2-").($2+1)/e' **/*(^/)
9631	under zsh, reverting the ck-mparam and timings-mpfr.c files and
9632	the mbench directory under "tools" (not distributed with MPFR).
9633	Removed 2017 from the example in the doc/README.dev file.
9634
96352018-01-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9636
9637	[src/zeta.c] added comments and FIXME
9638
9639	Note (2019-04-30): a bug has also been introduced (fixed in r13485).
9640
96412017-12-25  Vincent Lefèvre  <vincent@vinc17.net>
9642
9643	[NEWS] Minor corrections for GNU MPFR 4.0.0.
9644
96452017-12-23  Vincent Lefèvre  <vincent@vinc17.net>
9646
9647	[tests/tests.c] Added a note about gettimeofday() and a cast.
9648
9649	[tests/tests.c] Fixed a potential integer overflow from r12053 with
9650	GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux.
9651
96522017-12-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9653
9654	[tests/tests.c] decrease probability of collision with random seed
9655
9656	[src/exp_2.c] fixed bug from previous commit
9657	[src/subnormal.c] added assert
9658
9659	[tests/texp.c] added test for new bug
9660
96612017-12-22  Vincent Lefèvre  <vincent@vinc17.net>
9662
9663	Removed trailing whitespace.
9664
9665	[src/subnormal.c] Replaced FIXME.
9666
9667	[tests/tj1.c] Avoid a potential integer overflow.
9668
96692017-12-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9670
9671	[src/subnormal.c] added FIXME
9672
9673	[src/sin.c] simplified code with RNDA
9674
9675	[src/hypot.c] mimic mpfr_round_near_x
9676
9677	[tests/tj1.c] exercise corner case
9678
9679	[tests/tj1.c] added test for j1(z) with small z
9680
9681	[src/hypot.c] fixed issue with overflow flag not correctly set
9682
96832017-12-21  Vincent Lefèvre  <vincent@vinc17.net>
9684
9685	[src/next.c] Reverted r12035 as per documentation, which follows
9686	IEEE 754 (with the usual special treatment for the single NaN).
9687
96882017-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9689
9690	[src/next.c] fixed nextinf (missing overflow flag)
9691	[tests/thypot.c] removed debug call to mpfr_dump in previous commit
9692
9693	[tests/thypot.c] another fix...
9694
9695	[tests/thypot.c] fixed bug20171221()
9696
9697	[tests/thypot.c] new failing test
9698
9699	[src/lngamma.c] fixed bug when u=0 in case z0 < 1
9700	[tests/tlngamma.c] fixed test case which was wrong
9701
97022017-12-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9703
9704	[tests/tlngamma.c] added test for new failure
9705
9706	[src/lngamma.c] fixed bug found in previous commit
9707
9708	[tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2
9709
97102017-12-20  Vincent Lefèvre  <vincent@vinc17.net>
9711
9712	Updated version to 4.1.0-dev again.
9713
9714	Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
9715
9716	[src/fma.c] Minor improvements. Added an assert.
9717
9718	[src/tanh.c] GNU coding style.
9719
9720	[src/mul.c] Reindentation.
9721
9722	[src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
9723
97242017-12-19  Vincent Lefèvre  <vincent@vinc17.net>
9725
9726	[src/exp2.c] Fixed the double rounding problem in an underflow case,
9727	triggered by the test added in r12017.
9728
9729	[tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value
9730	close to 2^(emin-2). Currently fails due to double rounding.
9731
9732	[tests/tdiv.c] Added new non-regression test: the was the real cause of
9733	the ttanh failure in r11993 without the tanh.c fix in this same commit.
9734	But this mpfr_div was fixed in r12002.
9735
9736	[doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2.
9737
9738	[doc/mpfr.texi] Improved svar macro for nottex, in case it is used
9739	in the future.
9740
9741	[doc/mpfr.texi] Define svar even for nottex, though it is not used
9742	(attempt to avoid a failure with makeinfo 5.2).
9743
97442017-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9745
9746	[src/fma.c] fixed bug in mpfr_fma
9747	[tests/tfma.c] added non-regression test
9748
97492017-12-19  Vincent Lefèvre  <vincent@vinc17.net>
9750
9751	[src/exp2.c] Update concerning the underflow/overflow cases.
9752	Still incomplete.
9753
9754	[doc/mpfr.texi] Updated a comment.
9755
9756	[doc]
9757	  * texinfo.tex: update to the latest version 2017-12-18.20, which
9758	    reverts the change done in 2017-12-01.13 attempting to support
9759	    @var with script font size (e.g. in exponent); but this change
9760	    didn't work correctly.
9761	  * mpfr.texi: introduced a @svar macro to handle this case. It
9762	    currently disables the use of @var, the other workaround being
9763	    worse.
9764
97652017-12-18  Vincent Lefèvre  <vincent@vinc17.net>
9766
9767	Removed trailing whitespace.
9768
9769	[doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from
9770	the recent improvements in the error analysis.
9771
97722017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9773
9774	[src/mul.c] we should compare the smaller size and not the larger one to
9775		    MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product
9776
9777	[src/mul.c] with Mulders', convert RNDF to RNDZ
9778	[tests/tmul_d.c] added a non-regression test
9779
97802017-12-18  Vincent Lefèvre  <vincent@vinc17.net>
9781
9782	[doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul).
9783
9784	[doc/algorithms.tex] mpfr_tanh: detailed some inequalities.
9785
97862017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9787
9788	[src/div.c] fixed bug in mpfr_div2_approx()
9789	[tests/tdiv.c] added non-regression test
9790	[tests/ttan.c] added test triggering bug in mpfr_div2_approx()
9791
97922017-12-18  Vincent Lefèvre  <vincent@vinc17.net>
9793
9794	[doc/algorithms.tex] mpfr_tanh: resolved both FIXME's.
9795
9796	[doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis
9797	(2^k+4 ≤ |theta_4|^(−1/2) was not necessarily true, since theta_4 can
9798	be very small). As a consequence, the lemma can be simplified/improved
9799	(first FIXME). Added a second FIXME on a condition that is not checked.
9800
9801	[doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot.
9802
9803	Removed trailing whitespace.
9804
9805	[doc/algorithms.tex] Added another \cdot for readability.
9806
98072017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9808
9809	[src/exp2.c] added FIXME
9810
98112017-12-18  Vincent Lefèvre  <vincent@vinc17.net>
9812
9813	[doc/algorithms.tex] Minor corrections for hyperbolic tangent function:
9814	  * "e" had two different meanings (BTW, the constant e should actually
9815	    be written \mathrm{e} everywhere in the document).
9816	  * Use \left...\right instead of |...| when it contains an expression
9817	    starting with \log (the latter was confusing pdflatex, which added
9818	    a spurious space before \log).
9819	  * Added some \cdot for better readability.
9820
98212017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9822
9823	[src/exp2.c] fixed bug near underflow
9824	[tests/texp2.c] added non-regression test
9825
9826	[tests/ttanh.c] added test for bug in mpfr_tanh
9827	[doc/algorithms.tex] fixed error analysis for mpfr_tanh
9828	[src/tanh.c] fixed error analysis
9829	Note after r12016: Even though mpfr_tanh was incorrect, the failure
9830	of the test added in ttanh.c was actually *only* due to a bug in the
9831	mpfr_div code specific to the trunk (fixed in r12002), i.e. this was
9832	not a non-regression test for the mpfr_tanh bug itself (in particular,
9833	this test does not introduce a failure in the 3.1 branch, which still
9834	has the same incorrect mpfr_tanh code but a correct mpfr_div).
9835
98362017-12-18  Vincent Lefèvre  <vincent@vinc17.net>
9837
9838	Updated version to 4.1.0-dev again.
9839
98402017-12-17  Vincent Lefèvre  <vincent@vinc17.net>
9841
9842	Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.
9843
9844	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
9845
98462017-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9847
9848	[src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS
9849
98502017-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9851
9852	[tests/tadd1sp.c] added test for new bug (still to be fixed):
9853
9854	Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports)
9855	add1 & add1sp return different values for MPFR_RNDN
9856	Prec_a = 137, Prec_b = 137, Prec_c = 137
9857	B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66
9858	C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2
9859
9860	add1  : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1
9861	add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2
9862	Inexact sp = 0 | Inexact = 0
9863	Flags sp = 8 | Flags = 8
9864	add1sp.c:89: MPFR assertion failed: 0
9865
98662017-12-15  Vincent Lefèvre  <vincent@vinc17.net>
9867
9868	[src/root.c] Minor comment correction.
9869
9870	[src/root.c] Completed fix from r11978, as x=-1 was affected too. Also
9871	  added comments explaining that mpfr_root_aux assumes |x| ≠ 1 and why.
9872	  Hence the need of a filter on |x| = 1.
9873	[tests/troot.c] Added test for x = -1.
9874
9875	[tests/troot.c] Replaced mpfr_root by TF (like in the other tests).
9876
98772017-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9878
9879	[src/root.c] fixed bug when x=1
9880	[tests/troot.c] added non-regression test
9881
98822017-12-14  Vincent Lefèvre  <vincent@vinc17.net>
9883
9884	[tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate
9885	function, it's better to use Boolean operators on it.
9886
98872017-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9888
9889	[tests/tsub1sp.c] added a generic test for bug20171213()
9890
98912017-12-14  Vincent Lefèvre  <vincent@vinc17.net>
9892
9893	[src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c.
9894	Checked with
9895	  grep -A 1 'sb *>>' src/*.c
9896	that the bug fixed in r11974 does not occur in other parts of the code.
9897	BTW, there is much duplicate code, as shown by the grep output, and
9898	using macros could have avoided that, making bugs easier to reproduce
9899	(since a same bug would be duplicate several times).
9900
99012017-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9902
9903	[src/sub1sp.c] fixed bug in mpfr_sub1sp2()
9904	[tests/tsub1sp.c] added non-regression test
9905
99062017-12-13  Vincent Lefèvre  <vincent@vinc17.net>
9907
9908	[src/mpf2mpfr.h] Added a comment.
9909
99102017-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9911
9912	[src/mpf2mpfr.h] missing mpf_inits/mpf_clears
9913
9914	[src/mpfr-gmp.h] redefine __clz_tab also with gmp-build
9915
99162017-12-12  Vincent Lefèvre  <vincent@vinc17.net>
9917
9918	[configure.ac] Improved error message.
9919
9920	[tests/talloc.c] Added a comment about why talloc requires ISO C99.
9921
9922	[src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just
9923	needs to check whether we have a C99, C11, etc. implementation (if not
9924	done via a configure test). Particular incompatibilities with the C90
9925	standard should always be checked via a configure test.
9926
9927	[tests] Added *.exe to svn:ignore property (files from MinGW builds).
9928
99292017-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9930
9931	[tools/timings-mpfr.c] always use clock() [now very accurate under Linux]
9932
99332017-12-12  Vincent Lefèvre  <vincent@vinc17.net>
9934
9935	[tools/timings-mpfr.c] Updated years in copyright notice.
9936
9937	[tools/timings-mpfr.c] Fixed prototypes.
9938
9939	[tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is
9940	standard, so why not always using it?
9941
9942	[doc/README.dev] Correction.
9943
9944	[doc/README.dev] Made formatting consistent (same as configure --help).
9945
9946	Completed r11955: There were also DEBUG macros under the "tests"
9947	directory. Since such macros can still be useful in case a test failure,
9948	replaced them by MPFR_DEBUG to avoid issues with CI builds that define
9949	the DEBUG macro. But an environment variable would be a better solution
9950	(see MPFR_DEBUG_BADCASES as an example).
9951
9952	[TODO] Removed item on the DEBUG macro (done in r11955).
9953
99542017-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9955
9956	DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC
9957	XDEBUG -> MPFR_DISABLE_IEEE_FLOATS
9958
9959	get rid of DEBUG macro (but keep corresponding commands in comment to help
9960	understanding of the code and debugging)
9961
99622017-12-11  Vincent Lefèvre  <vincent@vinc17.net>
9963
9964	[tests/tget_q.c] Removed trailing whitespace.
9965
99662017-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9967
9968	[tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1)
9969
99702017-12-10  Vincent Lefèvre  <vincent@vinc17.net>
9971
9972	[src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri:
9973	https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html
9974
99752017-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
9976
9977	[src/get_q.c] make result of mpfr_get_q in canonical form
9978	[tests/tget_q.c] added non-regression test
9979
9980	[src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2
9981
99822017-12-09  Vincent Lefèvre  <vincent@vinc17.net>
9983
9984	[TODO] Rename the DEBUG macro to MPFR_DEBUG?
9985
99862017-12-08  Vincent Lefèvre  <vincent@vinc17.net>
9987
9988	[src/Makefile.am] Also distribute generic/coverage/mparam.h
9989	(at least useful for testing the distributed tarballs).
9990
9991	[doc] Updated FAQ.html with update-faq.
9992
9993	[doc] Updated FAQ.html with update-faq.
9994
9995	[doc/README.dev] "To make a release":
9996	  * Note that this needs to be done in a branch.
9997	  * Swapped (1) and (2), in particular because the coverage might be
9998	    different in -dev versions and it is better to give results closer
9999	    to the release.
10000
10001	Updated version to 4.1.0-dev.
10002
10003	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
10004
10005	Moved tests/timings-mpfr.c into directory "tools" as it is not part
10006	of the test suite.
10007
100082017-12-07  Vincent Lefèvre  <vincent@vinc17.net>
10009
10010	[src/fpif.c] Removed FIXME about the sign bit of NaN: done in
10011	r11910 and r11920 (documentation + tests).
10012
10013	[src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code
10014	is the same as shown by gcc, thanks to an obvious optimization; this
10015	is semantically better, which could help provers, and would allow
10016	code instrumentation in the future, if need be).
10017
100182017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10019
10020	got rid of mpz_dump (undocumented in GMP)
10021
10022	[src/mpfr-mini-gmp.c] updated with GMP 6.1.2
10023
100242017-12-06  Vincent Lefèvre  <vincent@vinc17.net>
10025
10026	[doc/mpfr.texi] Corrected a Texinfo typography issue.
10027
10028	[src/pool.c] Updated description. Corrected copyright years as the
10029	pool code itself was introduced in 2014.
10030
10031	[tests/timings-mpfr.c] Removed trailing whitespace, untabified,
10032	changed GMP_RNDN to MPFR_RNDN.
10033
10034	Cleanup and fixes for the mpz_t pool.
10035	  * Split src/free_cache.c to itself and a new source file src/pool.c
10036	    containing pool related code.
10037	  * src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular:
10038	      - renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES;
10039	      - no longer use GMP's symbols __gmpz_init, etc. directly;
10040	      - improved the condition for mpfr_mpz_init2;
10041	      - fixed the condition in mpfr_mpz_clear (we want to consider
10042	        the allocated size, not the size of the current number).
10043	  * src/Makefile.am: added pool.c.
10044	  * src/mpfr.h: added mpfr_free_pool prototype.
10045	  * doc/mpfr.texi: updated pool description in "Memory Handling";
10046	    new function mpfr_free_pool.
10047	  * doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT.
10048	  * NEWS: better announcement of the mpz_t pool.
10049
10050	[doc/mpfr.texi] Small correction concerning the caches.
10051
10052	[doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import.
10053
100542017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10055
10056	[timings-mpfr.c] test file for measuring timings (added -p option)
10057
100582017-12-06  Vincent Lefèvre  <vincent@vinc17.net>
10059
10060	Updated the remaining www.loria.fr URL's.
10061
10062	[doc/algorithms.bib] Updated URL's.
10063
10064	[doc/mpfr.texi] References: typography; updated a URL.
10065
100662017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10067
10068	[mpfr.texi] updated reference to "Modern Computer Arithmetic"
10069
10070	[free_cache.c] limit the size of objects in the mpz_t pool
10071
100722017-12-06  Vincent Lefèvre  <vincent@vinc17.net>
10073
10074	[src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion
10075	for mpfr_mpz_clear so that the pool will not take too much memory while
10076	keeping a possible benefit for very small precision.
10077
100782017-12-05  Vincent Lefèvre  <vincent@vinc17.net>
10079
10080	[src/mpfr.h] Made box around code examples for clarity and grep.
10081
10082	[doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored.
10083	[tests/tfpif.c] Test the sign of NaN (in particular).
10084
10085	[doc/mpfr.texi] Updated references.
10086
10087	[doc/mpfr.texi] Update about 0 of type without signed zeros, as in
10088	mpfr_div_ui.
10089
10090	[doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui
10091	on the integer 0 (0 does not have a sign here).
10092
100932017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10094
10095	[doc/mini-gmp] added information about result of "make check"
10096
100972017-12-05  Vincent Lefèvre  <vincent@vinc17.net>
10098
10099	[src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions.
10100
10101	[src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now
10102	require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp.
10103
10104	[src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd
10105	macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions
10106	are also defined by mini-gmp (these macros were used by mini-gmp only
10107	because mini-gmp does not define GMP_VERSION).
10108
10109	[src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi
10110	and mpn_copyd macro definitions.
10111
101122017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10113
10114	fixed bug in replacement function for copyi and copyd (found with mini-gmp)
10115
10116	add --disable-shared for mini-gmp (not tested yet with dynamic linking)
10117
101182017-12-05  Vincent Lefèvre  <vincent@vinc17.net>
10119
10120	[src/mpfr.h] Explain how to avoid the "... is deprecated" warning when
10121	testing a deprecated function.
10122
10123	[doc/README.dev] Removed a -Wno-error=deprecated-declarations as
10124	the specific warnings are now avoided (r11896).
10125
10126	Disable the "deprecated" attribute of deprecated functions *only* for
10127	the tests of these functions, to avoid the corresponding warnings.
10128
10129	Removed trailing whietespace.
10130
101312017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10132
10133	fixed compiler warnings with mini-gmp
10134
101352017-12-04  Vincent Lefèvre  <vincent@vinc17.net>
10136
10137	Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++)
10138	is unconditionally included.
10139
101402017-12-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10141
10142	make compilation work again (make + make check) with mini-gmp
10143
101442017-12-04  Vincent Lefèvre  <vincent@vinc17.net>
10145
10146	Improved portability of the check-gmp-symbols make rule.
10147
10148	[src/fpif.c] Clarification.
10149
10150	[tests]
10151	  * tfpif.c: in doit(), also test the negative versions of the numbers.
10152	  * tfpif_r1.dat: update.
10153
10154	[src] Update about the internal use of mpfr_get_str.
10155	  * get_str.c: updated a comment.
10156	  * vasprintf.c: added assertions.
10157
10158	[doc/mpfr.texi] Updated the month.
10159
10160	[src/get_str.c] Corrected a comment.
10161
10162	[doc/mpfr.texi] Update about the memory allocation (added references
10163	to Section "Memory Handling").
10164	(merged changeset r11632 from the 3.1 branch)
10165
10166	[doc/mpfr.texi] Update for mpfr_get_str:
10167	  * Added a texi comment explaining why m+1 (so that if the mpfr_get_str
10168	    implementation is improved, we know whether this is still the case).
10169	  * Improved the documentation for the case str = null pointer.
10170
101712017-12-03  Vincent Lefèvre  <vincent@vinc17.net>
10172
10173	[doc/mpfr.texi] Updated comments about the latest change (r11881).
10174
10175	[doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode.
10176	  * Corrected the use of \lceil and \rceil.
10177	  * Added missing @var, including 2 in exponent, as allowed by
10178	    texinfo.tex 2017-12-01.13.
10179	  * Removed old comments about Texinfo.
10180
10181	[doc/texinfo.tex] Update to the latest version 2017-12-01.13 from
10182	<https://ftp.gnu.org/gnu/texinfo/>.
10183
101842017-12-01  Vincent Lefèvre  <vincent@vinc17.net>
10185
10186	[acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in
10187	the cross-compiling case.
10188
10189	Solved an output issue on AIX due to the use of setbuf() after output
10190	in tversion. Indeed, this is disallowed by ISO C.
10191	  * doc/README.dev: added a note about tests_start_mpfr and this issue.
10192	  * tests/tests.c: moved test_version() after setbuf().
10193	  * tests/tversion.c: moved tests_start_mpfr() earlier, before any
10194	    printf().
10195
10196	[acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64
10197	is known but does not work, no longer fail when --enable-decimal-float
10198	has not been used; just disable decimal floats.
10199
10200	[acinclude.m4] Attempt to fix detection of decimal floats (BID was
10201	incorrectly assumed in case of link failure, if ld returned 1, which
10202	was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]).
10203
10204	[src/fpif.c] Updated comments about the format.
10205
102062017-11-30  Vincent Lefèvre  <vincent@vinc17.net>
10207
10208	[doc/README.dev] Typo.
10209
10210	Two fixes for the check-gmp-symbols make rule:
10211	  * Use $(COMPILE) instead of $(CC) to get the usual compilation flags
10212	    (in particular, the -I flags may be important to find gmp.h and to
10213	    get the correct one).
10214	  * Run the test only if libmpfr.so exists.
10215
10216	[doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols".
10217
10218	[NEWS] Mention "make check-gmp-symbols" (experimental).
10219
10220	[INSTALL] Added an optional step "make check-gmp-symbols" to check
10221	that MPFR does not use GMP internal symbols.
10222
10223	Added comment about the check-gmp-symbols make rule (added in r11865).
10224
10225	Added check-gmp-symbols make rule to check that MPFR does not use
10226	GMP internal symbols.
10227
10228	[doc/README.dev] Detailed the note about the list of GMP symbols.
10229
10230	[doc/README.dev] Document how to get the list of GMP symbols used
10231	by MPFR and how to detect GMP internal symbols used by MPFR.
10232
10233	[INSTALL] Added a paragraph about the potential incorrect use of
10234	GMP internals.
10235
102362017-11-29  Vincent Lefèvre  <vincent@vinc17.net>
10237
10238	[src/fpif.c] Fixed the sign bug for mpfr_fpif_import.
10239
10240	[tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set
10241	the sign of the target to the opposite of the expected sign. Thus, if
10242	mpfr_fpif_import forgets to set the sign, this will be detected. And
10243	a failure actually occurs now!
10244
10245	[tests/tfpif.c] For mpfr_fpif_import, check the precision too.
10246
10247	[doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure,
10248	the argument x is either unchanged or set to NaN, to make sure that
10249	x has valid contents (otherwise this could yield erratic behavior).
10250
10251	[src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure
10252	(since the full format is not described in the manual and MPFR cannot
10253	currently generate such a case, this is OK).
10254
10255	[tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0).
10256
10257	[tests/tfpif.c] Output more information in case of error.
10258
102592017-11-28  Vincent Lefèvre  <vincent@vinc17.net>
10260
10261	[src/fpif.c] Fixed some bugs (though unlikely to occur in practice).
10262	Added comments. Minor code improvement.
10263
10264	Got rid of the useless SIZE_MAX macro.
10265	  * src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used
10266	    in some other files.
10267	  * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4).
10268	  * Removed m4/size_max.m4 as it is no longer needed (note that the
10269	    definition of SIZE_MAX by this file was unnecessarily complex
10270	    and potentially incorrect on some platforms).
10271
10272	[src/fpif.c] Added static assertions in mpfr_fpif_import().
10273
10274	[src/fpif.c] Improved a test (mpfr_regular_p → !MPFR_IS_SINGULAR).
10275
10276	[src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x)
10277	and MPFR_IS_SINGULAR*(x) macros.
10278
102792017-11-27  Vincent Lefèvre  <vincent@vinc17.net>
10280
10281	[src/fpif.c] Added format description from past mail messages, to be
10282	checked in case of change (+ FIXME for NaN). Minor code improvement.
10283
10284	[tests/tfpif.c] Added TODO's (but the failure should be fixed first).
10285
10286	[src/fpif.c] Clarified sign variable.
10287
10288	[tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug
10289	that was not detected yet.
10290
10291	[tests/tfpif.c] Split the main test function into:
10292	  * doit(): keep only the tests that depend on the precisions.
10293	  * check_bad(): tests for bad file/data; precisions are not involved.
10294
10295	[tests/tfpif.c] Improved a test (NaN checking). Added comments.
10296
10297	[tests/tfpif.c] Removed a TODO done in r10326 and r10338.
10298
10299	Updated autogen.sh so that doc/texinfo.tex isn't replaced.
10300
10301	Added doc/texinfo.tex file from Texinfo 6.5 since the version installed
10302	by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete:
10303	more than 4 years older than the current version!
10304
10305	[doc/mpfr.texi] Updated a comment about a bug in Texinfo.
10306
103072017-11-23  Vincent Lefèvre  <vincent@vinc17.net>
10308
10309	[tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests
10310	for mpfr_set_exp).
10311
10312	[tests/texceptions.c] Minor improvements.
10313
10314	[doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of
10315	the current range of acceptable values (this was ambiguous).
10316
103172017-11-21  Vincent Lefèvre  <vincent@vinc17.net>
10318
10319	[doc/mpfr.texi] Corrected Texinfo typography issues.
10320
103212017-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10322
10323	added another example where we can have an overflow
10324
10325	added pointer to mpfr_subnormalize
10326
103272017-11-21  Vincent Lefèvre  <vincent@vinc17.net>
10328
10329	[doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard".
10330
10331	[doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu
10332	as required. Title capitalization.
10333
10334	[doc/mpfr.texi] Correction of a @node.
10335
103362017-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10337
10338	added section "MPFR and the IEEE 754 standard"
10339
103402017-11-20  Vincent Lefèvre  <vincent@vinc17.net>
10341
10342	[doc/mpfr.texi] mpfr_can_round: corrected the example; removed
10343	a reference to "ternary value" as there is already one in the
10344	previous sentence; clarification.
10345
10346	[doc/mpfr.texi] Faithful rounding (MPFR_RNDF):
10347	  * Document that this feature is experimental and partially supported.
10348	  * Update Section "API Compatibility".
10349	Note: the NEWS file was up-to-date.
10350
103512017-11-15  Vincent Lefèvre  <vincent@vinc17.net>
10352
10353	[tests/talloc-cache.c]
10354	  * Replaced test + abort() by the more informative MPFR_ASSERTN().
10355	  * Also check that the allocator is the current GMP one (this would
10356	    fail with MPFR 3.1.6, where the allocation functions are memorized
10357	    the first time they are seen).
10358
10359	mpfr_mp_memory_cleanup() now returns an error code (currently always 0)
10360	to avoid a future prototype change in case errors would be possible.
10361
103622017-11-10  Vincent Lefèvre  <vincent@vinc17.net>
10363
10364	Cleanup: In src/mpfr-gmp.h, exchanged
10365	  mpfr_allocate_func    and  *__gmp_allocate_func
10366	  mpfr_reallocate_func  and  *__gmp_reallocate_func
10367	  mpfr_free_func        and  *__gmp_free_func
10368	and in the code, replaced *__gmp_{allocate,reallocate,free}_func
10369	by mpfr_{allocate,reallocate,free}_func; updated TODO file.
10370
10371	[doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs,
10372	mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate
10373	and copy operations.
10374
10375	[tests/tabs.c] More tests on mpfr_abs, including the ternary value
10376	and the NaN flag and sign bit for ±NaN.
10377
10378	[tests/tabs.c] Coding style.
10379
10380	[tests/tset.c] For mpfr_neg on NaN, also check that the variable is
10381	set to NaN and that the ternary value is 0.
10382
10383	[tests/tset.c] More NaN tests for mpfr_set.
10384
10385	[tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg
10386	on NaN.
10387
10388	[tests/tset.c] The global variable "error" is better as static.
10389
10390	[tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped
10391	in both ways.
10392
10393	[tests] Added talloc-cache to svn:ignore property.
10394
103952017-11-09  Vincent Lefèvre  <vincent@vinc17.net>
10396
10397	[tests/tset.c] In the mpfr_neg test on the sign of NaN:
10398	C90 compatibility; improved robustness since as specified,
10399	mpfr_signbit can return any value (not just 0 or 1).
10400
10401	[src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN
10402	is currently unspecified for mpfr_neg).
10403
104042017-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10405
10406	fixed bug reported by Trevor Spiteri
10407	(https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html)
10408
104092017-11-08  Vincent Lefèvre  <vincent@vinc17.net>
10410
10411	Change the way memory is allocated (as discussed partly in private).
10412	  * src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update.
10413	  * src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function.
10414	  * NEWS: describe API change.
10415	  * TODO: added 2 related items (future clean-up and feature).
10416	  * doc/mpfr.texi: update.
10417	  * tests/talloc-cache.c: take API change into account.
10418
104192017-11-07  Vincent Lefèvre  <vincent@vinc17.net>
10420
10421	[doc/mpfr.texi] Updated Section "Compatibility With MPF".
10422
10423	[doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h
10424	and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros
10425	initialize to 0 like MPF, so that users shouldn't see differences from
10426	MPF.
10427
104282017-11-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10429
10430	added reference
10431
104322017-11-07  Vincent Lefèvre  <vincent@vinc17.net>
10433
10434	[src/mpfr.h] Formatting.
10435
10436	[src/mpfr.h] mpfr_free_cache_t: added comments to show that these are
10437	flags.
10438
10439	[doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description.
10440
10441	[src/free_cache.c] Minor portability improvement for mpfr_free_cache2
10442	to accept way = 0 (no effect on two's complement machines).
10443
104442017-11-06  Vincent Lefèvre  <vincent@vinc17.net>
10445
10446	[tests]
10447	  * tests.c: for test programs that use GMP's mp_set_memory_functions,
10448	    tests_rand_start and tests_rand_end also need to be disabled; to do
10449	    that, require that tests_memory_disabled be set to 2 in this case
10450	    (the value 1 is already used for the use with mini-gmp, where only
10451	    tests_memory_start and tests_memory_end need to be disabled).
10452	  * talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual,
10453	    with tests_memory_disabled set to 2.
10454
10455	[doc/mpfr.texi] Updated the month.
10456
10457	[doc/mpfr.texi] Minor change.
10458
10459	[doc/mpfr.texi] + explicit information on pools (in addition to caches).
10460
10461	[NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0,
10462	as a consequence of shared caches for multithreaded applications.
10463
10464	[src/free_cache.c] GNU coding style.
10465
10466	[tests]
10467	  * Makefile.am: added talloc-cache to check_PROGRAMS.
10468	  * talloc-cache.c: improved the test allocators so that an incorrect
10469	    use is detected by this code instead of relying on the C library
10470	    checking bad use of malloc/realloc/free (which was UB).
10471	    NOTE: The test currently fails in the trunk due to the mpz_t pool.
10472	    But anyway, the memory allocation method will change soon.
10473
10474	[tests/talloc-cache.c] Corrected indentation.
10475
104762017-10-30  Vincent Lefèvre  <vincent@vinc17.net>
10477
10478	[doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags.
10479
104802017-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10481
10482	added note about mpfr_beta
10483
104842017-10-26  Vincent Lefèvre  <vincent@vinc17.net>
10485
10486	[NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental.
10487	See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>.
10488
104892017-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10490
10491	added functions from C++17
10492
104932017-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10494
10495	fixed typo
10496
104972017-10-11  Vincent Lefèvre  <vincent@vinc17.net>
10498
10499	[src/get_float128.c] Fixed failure in mpfr_get_float128 when called with
10500	  a very reduced exponent range.
10501	[tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent
10502	  range (triggering a failure before the fix).
10503
105042017-10-10  Vincent Lefèvre  <vincent@vinc17.net>
10505
10506	[doc/README.dev] "To make a release": + Check the generic code.
10507
105082017-10-09  Vincent Lefèvre  <vincent@vinc17.net>
10509
10510	[src/get_ld.c] Fixed the generic code when called with a very reduced
10511	exponent range. The tset_ld failure could be triggered on x86 by running
10512	"./configure ... mpfr_cv_c_long_double_format=unknown".
10513
10514	[tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range
10515	(no failures on x86).
10516
10517	[src/get_z.c] Fixed failure in mpfr_get_z when called with a very
10518	  reduced exponent range.
10519	[tests/tget_z.c] Added tests in the various rounding modes (triggering
10520	  a failure before the above fix). Also call check_one() on an integer
10521	  congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues
10522	  in the error message (for inex and the flags).
10523
10524	[tests/tget_z.c] Also test mpfr_get_z in reduced exponent range
10525	(no failures though its code seems incorrect).
10526
105272017-10-06  Vincent Lefèvre  <vincent@vinc17.net>
10528
10529	[src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note
10530	in get_sj.c at the same time.
10531
10532	[src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj
10533	  when called with a very reduced exponent range.
10534	[tests/tget_sj.c] Added corresponding test cases.
10535
10536	[tests/tset_si.c] Minor correction in error message.
10537
105382017-10-05  Vincent Lefèvre  <vincent@vinc17.net>
10539
10540	[TODO] Function multiversioning (FMV): more details.
10541
10542	[TODO] Mention function multiversioning (FMV).
10543
105442017-10-04  Vincent Lefèvre  <vincent@vinc17.net>
10545
10546	[src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui
10547	when called with a very reduced exponent range.
10548
10549	[tests/tset_si.c] get_tests: added comments and tests in a reduced
10550	exponent range, which currently trigger an assertion failure.
10551
105522017-10-02  Vincent Lefèvre  <vincent@vinc17.net>
10553
10554	[doc/mpfr.texi] Updated the month.
10555
10556	[NEWS] Mention mpfr_dump.
10557
10558	[doc/mpfr.texi] Describe the current output format of mpfr_dump.
10559
10560	[doc/mpfr.texi] Replaced @code by @samp for things that are not
10561	actually code, but parts of character strings.
10562
105632017-09-29  Vincent Lefèvre  <vincent@vinc17.net>
10564
10565	[src/dump.c] mpfr_dump now outputs specific info for invalid data.
10566	[tests/toutimpl.c] Added mpfr_dump tests.
10567
10568	[src/dump.c]
10569	  * Output the sign even for NaN, since this can be useful information
10570	    (the sign of a NaN has an effect with some functions, following
10571	    IEEE 754-2008).
10572	  * This changes allows one to get rid of the mpfr_fprint_binary
10573	    static function at the same time.
10574
10575	[src/{dump.c,print_raw.c}] Updated the description.
10576
105772017-09-29  Vincent Lefèvre  <vincent@vinc17.net>
10578
10579	[src] Clean up of debugging output functions:
10580	  * Replaced the internal function mpfr_fprint_binary by a new
10581	    internal function mpfr_fdump, similar to mpfr_dump, but with
10582	    a FILE * argument.
10583	  * Got rid of mpfr_print_binary entirely (it became internal in
10584	    r2466 for MPFR 2.0.2, released in 2003).
10585
10586	Details:
10587	  * print_raw.c:
10588	      - moved the mpfr_fprint_binary code to dump.c;
10589	      - removed mpfr_print_binary.
10590	  * dump.c:
10591	      - mpfr_fprint_binary (from print_raw.c) is now defined as static;
10592	      - added function mpfr_fdump, using mpfr_fprint_binary;
10593	      - mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary.
10594	  * mpfr-impl.h:
10595	      - replaced mpfr_fprint_binary declaration by mpfr_fdump;
10596	      - removed mpfr_print_binary declaration.
10597	  * add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump
10598	    and removed the '\n', now output by mpfr_fdump.
10599
106002017-09-28  Vincent Lefèvre  <vincent@vinc17.net>
10601
10602	[tests] Added trootn_ui to svn:ignore property.
10603
106042017-09-20  Vincent Lefèvre  <vincent@vinc17.net>
10605
10606	[tests/toutimpl.c]
10607	  * Check mpfr_print_mant_binary() too.
10608	  * GNU coding style.
10609
10610	[src/print_raw.c] Changes in mpfr_print_mant_binary():
10611	  * Output a ']' when a '[' was output earlier.
10612	  * Correction: putchar() takes an int (or unsigned char), not a char.
10613	  * GNU coding style.
10614
106152017-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10616
10617	changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233)
10618
106192017-09-15  Vincent Lefèvre  <vincent@vinc17.net>
10620
10621	[tests] Solve issues with the incorrect use of mpfr_sgn, and make sure
10622	that this cannot happen again without being detected: on zero, +1 or -1
10623	was sometimes expected to check the sign of zero, but mpfr_sgn actually
10624	returned 0, so that the check always succeeded whatever the sign of the
10625	null result.
10626	  * mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN
10627	    or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is
10628	    defined.
10629	  * tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c,
10630	    texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced
10631	    the incorrect use of mpfr_sgn; some other related improvements.
10632	    Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by
10633	    "MPFR_IS_POS (x)" since we really want to test whether the sign
10634	    is positive (not negative).
10635	  * tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to
10636	    avoid a failure with the new mpfr_sgn macro for the tests; here,
10637	    the use of mpfr_sgn was correct, but one could do simpler.
10638	  * tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the
10639	    new mpfr_sgn macro (here, we really want the mathematical sign).
10640	  * tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to
10641	    test mpfr_sgn itself (both the function and the macro in mpfr.h).
10642
10643	[doc/README.dev] "To make a release": Enhanced step 5 (tarballs).
10644
106452017-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10646
10647	patch to avoid using the system mpfr.h
10648
106492017-09-14  Vincent Lefèvre  <vincent@vinc17.net>
10650
10651	[tests/tfms.c] Similar changes to what was done in tfma.c:
10652	  * replaced "mpfr_cmp" by "! mpfr_equal_p";
10653	  * code formatting (mainly reindentation);
10654	  * use of SAME_SIGN for better clarity.
10655
10656	[tests/tfma.c] Similar change to what was done in tfms.c (may be useful
10657	in the future).
10658
10659	[tests] Got rid of the use of mpfr_print_binary, in general with
10660	mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump
10661	for consistency or as improvements. Some other corrections in the
10662	related error messages.
10663
106642017-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10665
10666	added info about autoconf-archive
10667
106682017-09-14  Vincent Lefèvre  <vincent@vinc17.net>
10669
10670	Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
10671
106722017-09-13  Vincent Lefèvre  <vincent@vinc17.net>
10673
10674	[tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if
10675	the .c file has a main() function; this avoids an error on trootn_ui.c,
10676	which just does a #include.
10677
10678	[tests/troot.c]
10679	  * Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was
10680	    done for the infinity, using mpfr_set_inf).
10681	  * For exact cases (NaN, ±Inf, ±0), check that the ternary value is 0.
10682
10683	[tests/troot.c] For the root(±0,k) tests, before calling the function,
10684	we set the target y to NaN with the wrong sign, so that if the code of
10685	the function forgets to do something, this will be detected.
10686
10687	[tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness.
10688
10689	[tests/troot.c] Really check the sign of the result 0 (the old test
10690	was always false, thus useless!).
10691
10692	[doc/mpfr.texi] Updated the month.
10693
10694	New mpfr_rootn_ui function; mpfr_root deprecated.
10695	  * src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls
10696	    mpfr_rootn_ui.
10697	  * src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as
10698	    deprecated.
10699	  * Added tests/trootn_ui.c (includes troot.c).
10700	  * tests/troot.c: made it usable (via #include) by the new trootn_ui.c
10701	    test.
10702	  * tests/Makefile.am: added trootn_ui; at the same time, corrected the
10703	    order of the test programs (lexicographic, with exceptions).
10704	  * NEWS, TODO, doc/mpfr.texi: update.
10705
10706	[tests] Avoid duplicate code by defining the MAKE_STR() macro in
10707	mpfr-test.h only instead of tgeneric.c and tversion.c.
10708
107092017-09-08  Vincent Lefèvre  <vincent@vinc17.net>
10710
10711	[doc/README.dev] "To make a release": Updated the warning, as the issue
10712	concerns the .ps file only (the .dvi file has no papersize info).
10713
10714	[doc/README.dev] "To make a release": Added a warning to check the
10715	papersize of the generated dvi and ps files, which may be incorrect
10716	(bug in texinfo(?) reported as Debian bug 874632).
10717
10718	Switched other gmplib.org URL's to https.
10719
10720	[doc/mpfr.texi] Updated URL:
10721	  http://gmplib.orghttps://gmplib.org/
10722
10723	[doc/mpfr.texi] Updated URL:
10724	  ftp://ftp.gnu.org/gnu/mpfr/https://ftp.gnu.org/gnu/mpfr/
10725
10726	[tools/announce-text] Switched to https for ftp.gnu.org.
10727
107282017-09-07  Vincent Lefèvre  <vincent@vinc17.net>
10729
10730	[doc/README.dev] "To make a release": update about the uploads.
10731
107322017-09-06  Vincent Lefèvre  <vincent@vinc17.net>
10733
10734	[NEWS] Completed item on thread-safe DLL (shared library) support.
10735
10736	[src/mpfr-impl.h] Completed the fix in r11713.
10737
10738	[src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC
10739	on MS Windows without the GMP build directory (r11712 contained
10740	inconsistent function names, yielding "unresolved external symbol"
10741	errors in tabort_defalloc1.obj), second try.
10742
10743	[src] Attempt to fix thread-safe DLL support with ICC and MSVC on
10744	MS Windows without the GMP build directory. See:
10745	  https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html
10746	  https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html
10747	i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func
10748	external TLS variables, one does the same thing as what had been done
10749	for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.).
10750
10751	[tests] Added tget_q to svn:ignore property.
10752
107532017-09-05  Vincent Lefèvre  <vincent@vinc17.net>
10754
10755	[tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of
10756	the "'" flag with a non-glibc C library (SUS extension in printf).
10757	In particular, it is not supported by AIX 7.2.
10758
10759	[src/mpfr-impl.h] In case decimal_point and/or thousands_sep are
10760	non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8),
10761	revert to the default value. Added a FIXME to support multibyte
10762	decimal_point and thousands_sep.
10763
10764	[tests/tsprintf.c] Formatting.
10765
10766	[doc/README.dev] Added a paragraph about temporary result files created
10767	by test programs.
10768
10769	[tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES.
10770
10771	[tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to
10772	tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively.
10773
10774	[tests]
10775	  * toutimpl.c: Changed the filename of the result file like what
10776	    has been done in other test programs, to make sure that it will
10777	    not be reused by mistake. Removed comments about tmpname (which
10778	    does not exist).
10779	  * Makefile.am: Added this filename to CLEANFILES (even though the
10780	    file is removed by the test program, an error could occur before
10781	    its actual removal).
10782
10783	[tests]
10784	  * tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename
10785	    for result files created in these test programs, as this breaks
10786	    parallel tests (note that such files are used only if /dev/null
10787	    does not work, so that Unix-like systems were not affected).
10788	    This should fix the bug reported in
10789	      https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html
10790	    as said in
10791	      https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html
10792	  * Makefile.am: added a CLEANFILES line with these files.
10793
107942017-09-01  Vincent Lefèvre  <vincent@vinc17.net>
10795
10796	[tests/turandom.c] Added test_underflow().
10797	(merged changesets r11691-11694 from the 3.1 branch)
10798
107992017-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10800
10801	update
10802
10803	updated for mpfr-3.1.6-rc1
10804
108052017-08-28  Vincent Lefèvre  <vincent@vinc17.net>
10806
10807	[tools/mpfrlint] Run tools/ck-version-info.
10808
10809	[tools/mpfrlint] Updated a message due to the change in r11673.
10810
10811	[doc/README.dev] "To make a release": The DLL version may need to be
10812	updated too.
10813
10814	[configure.ac] Added a comment about the DLL version.
10815
10816	[configure.ac] Updated DLL version to 6 (cur - age).
10817
10818	[tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files
10819	(symbolic links) to avoid a failure when a file is being edited.
10820
10821	[tools] Clean up.
10822	  * Renamed check_inits_clears to ck-inits-clears (the other "check"
10823	    scripts have a name starting with "ck-").
10824	  * mpfrlint: updated the invocation of this test, simplifying it to
10825	    make it similar to the other ones (it was based on old code).
10826
108272017-08-27  Vincent Lefèvre  <vincent@vinc17.net>
10828
10829	[tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0
10830	since the hardcoded values would be different.
10831
108322017-08-25  Vincent Lefèvre  <vincent@vinc17.net>
10833
10834	[src/mpfr-impl.h] Replaced
10835	  (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0)
10836	by
10837	  (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0)
10838	as a workaround to the fact that mpfr_assert_fail is not marked as
10839	"no return" (bug 21415). Thus, after this code, expr must be true.
10840
10841	[tests/turandom.c] Check that the behavior does not depend on the
10842	platform ABI or MPFR version.
10843
10844	[tests/turandom.c] Corrected error messages after r11661.
10845
10846	[tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility
10847	test with several rounding modes and exponent ranges), because a second
10848	reproducibility test will be added.
10849
10850	[tests/turandom.c]
10851	  * In underflow_tests, test the flags in all cases (not just when the
10852	    returned result is 0), possibly by first computing the result in a
10853	    large exponent range.
10854	  * Since the flags are now well tested in underflow_tests, no longer
10855	    test them in the second test of test_urandom for k = 0, which was
10856	    the incorrect test that was failing (see r11659).
10857
10858	[tests/turandom.c] Do some test several times in order to trigger
10859	a "mpfr_urandom() returns incorrect flags for emin = 1" failure
10860	when GMP_CHECK_RANDOMIZE is not set (default).
10861	Note: It is this test that is actually wrong (it corresponds to the
10862	old behavior, currently found in the 3.1 branch, and was not updated
10863	after the mpfr_urandom code was fixed).
10864
10865	[tests/turandom.c] Code formatting. Added an assertion.
10866
108672017-08-24  Vincent Lefèvre  <vincent@vinc17.net>
10868
10869	[tests/turandom.c] Check that the behavior of mpfr_urandom() does not
10870	depend on the rounding mode.
10871
10872	[doc/mpfr.texi] Completed the description of mpfr_urandom.
10873
10874	[src/urandom.c] Completed comment.
10875
108762017-08-23  Vincent Lefèvre  <vincent@vinc17.net>
10877
10878	[tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable
10879	instead of mpfr_rands, due to the gmp_randseed_ui (see r11653).
10880
10881	[tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands
10882	(this is bad practice: this would affect later tests, defeating the
10883	purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should
10884	be used instead of mpfr_rands).
10885
10886	[tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which
10887	is internal to GMP: its use came from very old code (r2330 in 2003-06)
10888	and it is no longer needed.
10889
10890	[tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on
10891	a specific behavior of the random generator, which changed in GMP 4.2.0
10892	(the test would probably fail with such old GMP versions).
10893
10894	[src/urandom.c] Partly rewrote mpfr_urandom() so that the next
10895	  random state no longer depends on the current exponent range
10896	  and the rounding mode, and that the exceptions due to the
10897	  rounding of the random number are now correctly generated.
10898	[doc/mpfr.texi] Updated the mpfr_urandom() documentation and
10899	  updated Section "API Compatibility / Changed Functions" to
10900	  mention the change in MPFR 4.0.
10901	[NEWS] Mentioned the change for MPFR 4.0.
10902
109032017-08-22  Vincent Lefèvre  <vincent@vinc17.net>
10904
10905	[src/urandom.c] Minor change about underflow, following the usage.
10906
10907	[tests/turandom.c] Added inex test for the underflow & overflow tests.
10908
10909	[tests/turandom.c] Added overflow tests.
10910
10911	[tests/turandom.c] Indentation.
10912
10913	[tests/turandom.c] Added underflow tests.
10914
10915	[tests/turandom.c] With mini-gmp, omit another test that assumes
10916	a deterministic random generator.
10917
10918	[src/urandom.c] Bug fix: the inexact flag was not set on underflow.
10919
10920	[tests/turandom.c] Added tests of the flags. This currently yields
10921	a failure (inexact flag not set on underflow).
10922
10923	[tests/turandom.c] Added a test of the underflow flag.
10924
109252017-08-21  Vincent Lefèvre  <vincent@vinc17.net>
10926
10927	[src/urandom.c] Set the underflow flag if the drawn exponent is less
10928	than emin. This corresponds to "underflow before rounding" while the
10929	normal rule in MPFR is "underflow after rounding". Thus this needs to
10930	be fixed.
10931	Note: This simple change has been done so that it can be merged with
10932	the 3.1 branch. But this will not be fixable in the 3.1 branch since
10933	the significand is not drawn in this case, and drawing the significand
10934	to determine whether there is an underflow would change the state of
10935	the PRNG at the end of the function, breaking the ABI and the users'
10936	expectations.
10937
10938	[src/urandom.c] Updated comments about overflow and its flag.
10939
10940	[src/urandom.c] Simplified the code, but, except for precision 1,
10941	without changing the state of the PRNG.
10942	Note: The code could be simplified even further, but the goal of the
10943	current change is to allow it to be merged with the 3.1 branch (where
10944	precision 1 is not supported) without too many conflicts.
10945
10946	[src/urandom.c] Moved some code without consequences. Updated comments.
10947
10948	[src/urandom.c] Useless parentheses; reformatting.
10949
109502017-08-17  Vincent Lefèvre  <vincent@vinc17.net>
10951
10952	[src/set_float128.c] No longer depend on the native FP type "double"
10953	(via mpfr_set_d), avoiding the usual precision issues with the x87
10954	traditional FPU in particular. Use the internal representation with
10955	limbs, instead. The code is simpler and should also be faster.
10956	Note: together with r11627, this avoids the tset_float128 failure
10957	with the "-m32 -mpc32" GCC options.
10958
10959	[src/get_float128.c] Removed variable z (no longer useful).
10960
10961	[src/get_float128.c] No longer depend on the native FP type "double"
10962	(via mpfr_get_d), avoiding the usual precision issues with the x87
10963	traditional FPU in particular. Use the internal representation with
10964	limbs, instead. The code is simpler and should also be faster.
10965
109662017-08-14  Vincent Lefèvre  <vincent@vinc17.net>
10967
10968	[src/get_float128.c] Fixed the remaining cases of mpfr_get_float128
10969	(when the value is below the smallest subnormal in absolute value).
10970
10971	[src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows.
10972	[tests/tset_float128.c] Added tests for small values, in particular
10973	  involving underflows (and subnormals).
10974
109752017-08-13  Vincent Lefèvre  <vincent@vinc17.net>
10976
10977	[src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch,
10978	which actually doesn't support __float128).
10979
109802017-08-12  Vincent Lefèvre  <vincent@vinc17.net>
10981
10982	[src/get_float128.c] Updated the FIXME.
10983
109842017-08-08  Vincent Lefèvre  <vincent@vinc17.net>
10985
10986	[src/get_float128.c] Added a FIXME after a bug report by Rob:
10987	https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html
10988
109892017-08-03  Vincent Lefèvre  <vincent@vinc17.net>
10990
10991	[doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved
10992	from "Installing MPFR" to "MPFR Basics". Added corresponding node.
10993
109942017-08-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
10995
10996	new section "How to get the best out of MPFR"
10997
109982017-08-03  Vincent Lefèvre  <vincent@vinc17.net>
10999
11000	[doc/mpfr.texi] Added a FIXME about memory allocation.
11001
11002	[doc/mpfr.texi] Updated the month.
11003
11004	[doc/mpfr.texi] Removed obsolete comments.
11005
11006	[doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions
11007	and overflow on the return type int.
11008
110092017-08-02  Vincent Lefèvre  <vincent@vinc17.net>
11010
11011	[NEWS] Mention the use of the old dtags under Linux (see r11588).
11012
11013	[src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated
11014	file descriptions for consistency (vasprintf.c should probably be
11015	renamed later to something like printf_aux.c).
11016
11017	[src/printf.c] Updated a comment (taking r11269 into account).
11018
11019	[src/vasprintf.c] Added an assertion.
11020
11021	[src/vasprintf.c] Completed mpfr_vasnprintf_aux description.
11022
110232017-08-01  Vincent Lefèvre  <vincent@vinc17.net>
11024
11025	[tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of
11026	"mpfr-impl.h" (this is done only when compiling with mini-gmp).
11027
11028	[tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs:
11029	"mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR
11030	will be defined, yielding failures under MS Windows with DLL.
11031
110322017-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11033
11034	fixed typo
11035
110362017-07-28  Vincent Lefèvre  <vincent@vinc17.net>
11037
11038	[doc/mpfr.texi] Added important details for the example from r11595.
11039
110402017-07-27  Vincent Lefèvre  <vincent@vinc17.net>
11041
11042	[doc/mpfr.texi] Minor changes.
11043
11044	[doc/mpfr.texi] Updated the month.
11045
110462017-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11047
11048	fixed FIXME related to r11595
11049
110502017-07-27  Vincent Lefèvre  <vincent@vinc17.net>
11051
11052	[doc/mpfr.texi] Added FIXME on example from r11595.
11053
110542017-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11055
11056	[mpfr.texi] added example showing how to emulate fixed-point arithmetic
11057
110582017-07-17  Vincent Lefèvre  <vincent@vinc17.net>
11059
11060	[src/sin_cos.c] Avoid integer overflows with precision 1100000 and
11061	the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne:
11062	https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html
11063
11064	[tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks.
11065
11066	[configure.ac] Under Linux, make sure that the old dtags are used
11067	if LD_LIBRARY_PATH is defined, avoiding the following issue:
11068	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
11069	  https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
11070	(merged changeset r11587 from the 3.1 branch)
11071
110722017-07-10  Vincent Lefèvre  <vincent@vinc17.net>
11073
11074	[tests/tversion.c] Forgot casts for printf in r11585.
11075
11076	[tests/tversion.c] Added ABI information & tests.
11077
110782017-06-20  Vincent Lefèvre  <vincent@vinc17.net>
11079
11080	[src/subnormal.c] Correction in comment (English).
11081
110822017-06-19  Vincent Lefèvre  <vincent@vinc17.net>
11083
11084	[tests/tversion.c]
11085	  * Better organization; moved MPFR patches info below MPFR version.
11086	  * Output __GMP_CC and __GMP_CFLAGS values.
11087	  * Output GMP ABI info (to be completed with MPFR ABI info).
11088
110892017-06-03  Vincent Lefèvre  <vincent@vinc17.net>
11090
11091	[configure.ac] Improved some AC_DEFINE comments.
11092
11093	[doc/README.dev] Added quotes for clarity.
11094
11095	[tests/mpf_compat.h] Always use stdout for failure messages.
11096
11097	[src/get_str.c] Improved comments (avoid the confusion between a
11098	negative base argument and a negative base).
11099
111002017-06-02  Vincent Lefèvre  <vincent@vinc17.net>
11101
11102	[doc/mpfr.texi] Punctuation.
11103
111042017-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11105
11106	added mpfr_get_q in Added Functions
11107
11108	src/get_str.c: fixed for negative base
11109	tests/tget_str.c: added tests for negative base
11110
11111	tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565
11112
11113	src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same
11114		       meaning as in mpf_get_str
11115
11116	fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used
11117	(and resolved a FIXME)
11118
111192017-06-02  Vincent Lefèvre  <vincent@vinc17.net>
11120
11121	[doc/mpfr.texi] Corrected mpfr_get_q documentation.
11122
11123	[src/get_q.c] Added assertions to detect integer overflows, in case
11124	mpfr_exp_t is larger than mp_bitcnt_t.
11125
111262017-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11127
11128	src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h)
11129
11130	src/mpf2mpfr.h: fixed fits_s* functions and get_si
11131
11132	use macro __MPFR_GMP
11133
11134	added new function mpfr_get_q
11135
11136	src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0)
11137
111382017-06-01  Vincent Lefèvre  <vincent@vinc17.net>
11139
11140	[Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in
11141	  tarballs too (it is not installed by "make install", though), since
11142	  it contains information that may be useful for users of tarballs and
11143	  various distributed files mention it.
11144	[README] Update about the "doc" directory and "doc/README.dev".
11145
11146	[doc/README.dev] More information about the DEBUG macro.
11147
11148	[doc/mpfr.texi] Updated the month.
11149
11150	Update about MPFR_RNDF (faithful rounding):
11151	  * NEWS: mention that it is partially supported (should be updated
11152	    once MPFR_RNDF is completely supported).
11153	  * TODO: moved an item to the right place (MPFR_RNDF is not removed
11154	    from the TODO because it is not completely supported yet).
11155	  * doc/mpfr.texi: added a FIXME about the partial support.
11156
111572017-05-31  Vincent Lefèvre  <vincent@vinc17.net>
11158
11159	[src/{atanh.c,log1p.c}]
11160	  * Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is
11161	    checked with --enable-assert).
11162	  * For a test, doing the division first should be better.
11163
111642017-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11165
11166	improved log1p and atanh for small inputs
11167
11168	added expm1 to mbench
11169
11170	added log1p to mbench
11171
111722017-05-29  Vincent Lefèvre  <vincent@vinc17.net>
11173
11174	[doc/mpfr.texi] Updated the month.
11175
11176	Removed trailing spaces.
11177
11178	[tests] Code simplification and improvement by using SAME_VAL().
11179
11180	[tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL().
11181
11182	[src/sum.c] Code reindentation due to a new test for MPFR_RNDF support,
11183	and other minor changes in formatting and comments.
11184
11185	[doc/sum.txt] Typo in the MPFR_RNDF text.
11186
11187	Merged the "faithful" branch into the trunk:
11188	faithful rounding (MPFR_RNDF).
11189
11190	[tests/tgeneric.c] For MPFR_RNDF, replaced EQUAL() by SAME_VAL(),
11191	which also tests the sign (to distinguish +0 and -0).
11192
11193	[tests/tui_sub.c] Avoid a failure in 32-bit ABI by replacing
11194	RND_LOOP by RND_LOOP_NO_RNDF.
11195
11196	Merged the latest changes from the trunk.
11197
111982017-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11199
11200	added new reference
11201
112022017-05-24  Vincent Lefèvre  <vincent@vinc17.net>
11203
11204	[tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW)
11205	by not using the returned string any longer. Indeed, ISO C99 says that
11206	this string "may be overwritten by a subsequent call to the setlocale
11207	function".
11208
11209	[src] Moved "#include <errno.h>" from printf.c to vasprintf.c
11210	(this should have been done in r5230, where EOVERFLOW was moved).
11211	This fixes the "Got r = -1, errno = 0" errors in tprintf with
11212	MPFR_CHECK_LARGEMEM=1.
11213
11214	[src/vasprintf.c] Added overflow detection at the end (due to the switch
11215	to mpfr_intmax_t for the string length in the string_buffer structure,
11216	it was no longer detected; however, this bug was not normally visible in
11217	the tests because here, a negative value was returned thanks to wrapping
11218	in a type conversion and the negative value was changed to the expected
11219	-1 value in printf.c).
11220
11221	[src/vasprintf.c] Added log messages.
11222
11223	[src/vasprintf.c] In case of overflow, do not stop before everything has
11224	been processed, allowing the %...n arguments to be filled, as decided.
11225
11226	[tests/tprintf.c] check_long_string() error handling: initialize n2 to
11227	an invalid value and do all tests before exiting.
11228
11229	[src/vasprintf.c] Fixed some parts of overflow tracking.
11230
11231	[tests/tprintf.c] More detailed error message.
11232
11233	[tests/tprintf.c] Added tests with %ln.
11234
11235	[tests/tprintf.c] Improved check_vprintf_failure().
11236
11237	[src/vasprintf.c] Fixed the handling of the 'n' format specifier
11238	  for size = 0, still allowing its support in case of overflow on
11239	  the return value (i.e. when the number of characters that would
11240	  have been output is > INT_MAX).
11241	  Note: full support in case of overflow is still limited by GMP
11242	  and the C library.
11243	[tests/tprintf.c] Increased the memory needed in check_long_string().
11244
112452017-05-23  Vincent Lefèvre  <vincent@vinc17.net>
11246
11247	[src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too.
11248	However, this will not necessarily be used by src/vasprintf.c, as
11249	this can be regarded as an EOVERFLOW error for which the behavior
11250	on the %...n values is not specified, i.e. we may not need to
11251	support size values larger than INT_MAX.
11252
112532017-05-22  Vincent Lefèvre  <vincent@vinc17.net>
11254
11255	[src/vasprintf.c] In a macro definition, changed a parameter to
11256	lowercase so that it doesn't look like a constant to mpfrlint.
11257
11258	[src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due
11259	to the 'n' format specifier with size = 0. The way to fix this issue
11260	depends on the specifications in case of overflow on the return value,
11261	and for POSIX, they are unclear. Waiting for comments...
11262
11263	[src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest
11264	signed integer type available for the MPFR build. It will be
11265	useful for the formatted output functions (src/vasprintf.c) to
11266	handle the 'n' format specifier, assuming that the value may
11267	be larger than INT_MAX, which is possible assuming that the
11268	C standard has a defect in the corresponding specification:
11269	https://sourceware.org/bugzilla/show_bug.cgi?id=21360
11270
11271	[tests/tsprintf.c] Added explanation for the bugs triggered by
11272	percent_n() and mixed().
11273
11274	[tests/tsprintf.c] Added percent_n() test to reproduce the bug found
11275	in mixed(), test without random data.
11276
11277	[src/vasprintf.c] In partition_number(), complete check for overflow
11278	on total.
11279
11280	[src/vasprintf.c] Partially fixed check for integer overflow when
11281	the long and int types have the same size.
11282
11283	[src/vasprintf.c] With assertions enabled, check that the number of
11284	characters to be written computed in partition_number() corresponds
11285	to what is really written.
11286
11287	[src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the
11288	computation of the number of characters to be written was incorrect in
11289	partition_number() when the thousands separator was not empty. This bug
11290	was visible with size = 0 and could be visible near overflow on the
11291	number of characters.
11292	Note: the buggy code was introduced in r5288 (2008-02-15), which fixed
11293	other issues with the thousands separator.
11294
11295	[tests/tsprintf.c] Do more tests in the da_DK locale (these are the
11296	only tests for which the thousands separator is not empty).
11297
11298	[tests/tsprintf.c] Do more tests involving check_sprintf() in a loop
11299	(to test mpfr_snprintf with size = 0 more often), and call mixed()
11300	later in order to get failures without the use of %n first.
11301
113022017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11303
11304	get rid of computations with 'double' in mpfr_zeta
11305
113062017-05-19  Vincent Lefèvre  <vincent@vinc17.net>
11307
11308	[tests/tsprintf.c] Added a TODO about %n test.
11309
11310	[doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation.
11311
11312	[tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP.
11313
11314	Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing).
11315	In doc/README.dev, updated the corresponding description.
11316
11317	[tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP.
11318
11319	[tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above),
11320	which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The
11321	code related to these exceptions is now like r11488 (see the output of
11322	"svn diff -r11488"), but keeping the following changes:
11323	  * Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499.
11324	  * In tests.c:
11325	      - code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will
11326	        be renamed);
11327	      - more detailed output about which FP exceptions occurred;
11328	      - removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is
11329	        better with Automake 1.13+ (required by MPFR since r9375).
11330	Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is
11331	reserved by ISO C when <errno.h> is included.
11332
11333	[tests/tsprintf.c] Do the locale_da_DK() test several times to yield
11334	a failure by default once the bug triggered by mixed() is fixed.
11335
11336	[tests/tsprintf.c] Updated comment about r11501: the failure occurs
11337	with %n when the size argument of mpfr_vsnprintf is 0.
11338
11339	[tests/tsprintf.c] Do more tests with %n. One now gets a failure
11340	by default (which occurs when one gets randsize <= 0).
11341
11342	[tests/tsprintf.c] Fixed portability issues: The va_end(3) man page
11343	of Linux Programmer's Manual says: "On some systems, va_end contains
11344	a closing '}' matching a '{' in va_start, so that both macros must
11345	occur in the same function, and in a way that allows this."
11346
11347	[tests/tget_set_d64.c] Disable tests with a division by 0 (which now
11348	occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
11349
11350	[tests/tset_ld.c] Disable an overflow test with a division by 0
11351	(now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.
11352
11353	[doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
11354
11355	[tests/tsprintf.c] In mixed(), initialize n2 to an invalid value
11356	in order to ease failure analysis.
11357
113582017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11359
11360	removed leftover debug statement in last commit
11361
11362	fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686)
11363
113642017-05-19  Vincent Lefèvre  <vincent@vinc17.net>
11365
11366	[tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO
11367	or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is
11368	defined, otherwise one cannot see the output about the floating-point
11369	exceptions with "make check" (the test of MPFR_ERRDIVZERO here should
11370	have been removed after switching to Automake 1.13, which discards the
11371	output when the test program succeeds).
11372	Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for
11373	debugging.
11374
113752017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11376
11377	more work on MPFR_TESTS_EXCEPTIONS
11378
113792017-05-19  Vincent Lefèvre  <vincent@vinc17.net>
11380
11381	[tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with
11382	-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS
11383	is not ready yet.
11384
11385	[tests/tversion.c] Output IEEE floats status.
11386
113872017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11388
11389	check for fp exceptions (experimental)
11390
113912017-05-17  Vincent Lefèvre  <vincent@vinc17.net>
11392
11393	[src/cmp2.c] Added/updated comments.
11394
11395	[tests/tcmp2.c] Added tests with equal numbers, possibly of different
11396	sizes.
11397
11398	[src/cmp2.c] Corrected comments.
11399
11400	[tools/mpfrlint] In the detection of reserved macro names, skip ERR
11401	from src/mpfr-gmp.h (this is a special case).
11402
11403	[tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust.
11404
11405	[tests/*.c] Renamed the remaining macros whose names are reserved
11406	by ISO C when <errno.h> is included.
11407
114082017-05-16  Vincent Lefèvre  <vincent@vinc17.net>
11409
11410	[tests/texceptions.c] Made code formatting consistent.
11411
11412	[tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C
11413	when <errno.h> is included) to "PRINT_ERROR", and made the macro
11414	more robust.
11415
11416	Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name
11417	reserved by ISO C when <errno.h> is included).
11418
11419	[src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved
11420	by ISO C when <errno.h> is included), made no longer interesting by
11421	using mpfr_set_str_binary only once and another temporary variable.
11422	At the same time, replaced the usual allocation by a GROUP allocation
11423	(more efficient).
11424
114252017-05-15  Vincent Lefèvre  <vincent@vinc17.net>
11426
11427	[tests/tcheck.c] Code reformatting (GNU coding style).
11428
11429	[tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C
11430	when <errno.h> is included) to "PRINT_ERROR".
11431
11432	Do not define macro names starting with "SIG" (+ uppercase letter)
11433	as they are reserved when <signal.h> is included (ISO C, 7.31.7),
11434	which happens to be the case in tests/tests.c, which also includes
11435	tests/mpfr-test.h and src/mpfr-impl.h indirectly.
11436	  * src/mpfr-impl.h, tests/mpfr-test.h: renamed macros:
11437	      SIGN → VSIGN
11438	      SIGN_RAND → RAND_SIGN
11439	  * {src,tests}/*.{c,h}: updated the names in the use of these macros.
11440
11441	[tools/mpfrlint] Added a comment about the definition of reserved
11442	identifiers (in particular, macro names).
11443
11444	[tools/mpfrlint] Detect the definition of reserved macro names.
11445
11446	[src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure
11447	problems if <ctype.h> is added to mpfr-impl.h in the future (or if this
11448	function is made external). See ISO C "Future library directions",
11449	Clause 7.31.2 "Character handling <ctype.h>".
11450
114512017-05-12  Vincent Lefèvre  <vincent@vinc17.net>
11452
11453	[src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME().
11454
114552017-05-09  Vincent Lefèvre  <vincent@vinc17.net>
11456
11457	[INSTALL] Mention the problem when almost all the tests fails with a
11458	message "Incorrect MPFR version! ...".
11459
11460	Increase the buffer sizes even more, and added a comment. This may
11461	be better in case of quick future changes (possibly for debugging),
11462	without checking carefully. For the tests, optimal code is useless.
11463
114642017-05-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11465
11466	fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=)
11467	[VL] The MPFR code was correct. This is actually a bug in GCC:
11468	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257
11469
114702017-05-09  Vincent Lefèvre  <vincent@vinc17.net>
11471
11472	[doc] Updated FAQ.html with update-faq.
11473
114742017-05-05  Vincent Lefèvre  <vincent@vinc17.net>
11475
11476	[tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where
11477	the return value is 0: this probably means that timp_overhead was too
11478	large and incorrect. In this case, TIMP_OVERHEAD() is called again to
11479	recompute timp_overhead and the timing is redone.
11480	Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE()
11481	loops indefinitely, meaning that timp_overhead was really too large.
11482
11483	[tools/mbench/timp.h] Comment at the wrong place. Fixed.
11484
11485	[tools/mbench/timp.h] Added a comment about r11458.
11486
114872017-05-04  Vincent Lefèvre  <vincent@vinc17.net>
11488
11489	[tools/mbench/timp.h] Fixed overflows on unsigned arithmetic.
11490
11491	[tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1
11492	(it is possible to get more than 2^60-1 cycles in practice!).
11493
11494	Merged the latest changes from the trunk, including some old changesets
11495	related to mpfr_zeta that were skipped, resolving conflicts. Added RNDF
11496	support to new code introduced by this merge:
11497	  * mpfr_mul_1n in src/mul.c (from r11281);
11498	  * mpfr_sqr_1n in src/sqr.c (from r11283);
11499	  * mpfr_div_1n in src/div.c (from r11284);
11500	  * mpfr_sqrt1n in src/sqrt.c (from r11293).
11501
11502	Merged r11198-11280 from the trunk; no conflicts but additional changes:
11503	  * About r11271 (src/add1sp.c), which introduces new special code
11504	    (function mpfr_add1sp1n), handle MPFR_RNDF in the same way as done
11505	    in similar existing special code (mpfr_add1sp1 and mpfr_add1sp2).
11506	  * In mpfr_add1sp3, do the same thing (this should have been done in
11507	    r11172, where this function was introduced via a merge).
11508	  * About r11279 (src/sub1sp.c, tests/tsub1sp.c), which introduces new
11509	    special code (function mpfr_sub1sp1n), do the same thing.
11510	    In tests/tsub1sp.c, s/RND_LOOP/RND_LOOP_NO_RNDF/ as usual to avoid
11511	    a failure.
11512	  * Note: concerning mpfr_sub1sp3, RNDF support was added at the same
11513	    time of the merge in r11179.
11514	  * Some style changes related to RNDF, in particular for consistency.
11515
11516	Merged r11197 from the trunk, resolving the conflict.
11517
11518	Merged r11179-11196 from the trunk (no conflicts).
11519
115202017-05-02  Vincent Lefèvre  <vincent@vinc17.net>
11521
11522	[src/gamma.c] Clarified proof for tiny arguments again.
11523
11524	[src/gamma.c] Clarified proof for tiny arguments.
11525
11526	[src/gamma.c] In the proof for tiny arguments:
11527	  * Simplification suggested by Paul.
11528	  * Attempt to clarify the end.
11529
115302017-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11531
11532	added comment
11533
11534	added reference for mbench (rdtsc vs rdtscp)
11535
115362017-04-28  Vincent Lefèvre  <vincent@vinc17.net>
11537
11538	[src/gamma.c] Tiny arguments: corrected a typo and added a TODO
11539	(one might get a better condition).
11540
11541	[src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO.
11542
115432017-04-27  Vincent Lefèvre  <vincent@vinc17.net>
11544
11545	[doc/README.dev] Update about the MPFR_GENERIC_ABI macro.
11546
11547	[src/sqr.c] Corrected a comment.
11548
11549	[src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc.
11550
11551	[src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc.
11552
11553	[src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific
11554	functions for low precision if MPFR_GENERIC_ABI is defined (they are
11555	not called in such a case).
11556
11557	[src/sub1sp.c] Added blank lines for readability (like in add1sp.c).
11558
11559	s/interruption/interrupt/
11560
11561	[mbench] Updated copyright years. Added a comment.
11562
115632017-04-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11564
11565	better detection of rdtscp
11566
115672017-04-18  Vincent Lefèvre  <vincent@vinc17.net>
11568
11569	[src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454.
11570
115712017-04-09  Vincent Lefèvre  <vincent@vinc17.net>
11572
11573	[tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long.
11574
115752017-04-07  Vincent Lefèvre  <vincent@vinc17.net>
11576
11577	[tools/mpfrlint] Updated test to check that the snprintf function (C99)
11578	is not used.
11579
11580	[doc/mpfr.texi] Corrected an English error.
11581
11582	[src/vasprintf.c] Fixed bug triggered by the test added in r11428:
11583	the size field of struct printf_spec must have type size_t, not int,
11584	because the size argument of mpfr_snprintf has type size_t.
11585
11586	[tests/tsprintf.c] Added a test that fails on 64-bit machines
11587	(4-byte int, 8-byte size_t), due to the use of mpfr_snprintf
11588	with required size = (size_t) UINT_MAX + 1.
11589
11590	[src/vasprintf.c] Minor changes.
11591
11592	[src/vasprintf.c] Comment re-indentation.
11593
11594	[src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity.
11595
115962017-04-06  Vincent Lefèvre  <vincent@vinc17.net>
11597
11598	[src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding
11599	either an obscure memory leak or a crash in some mpfr_fmma calls.
11600	We would really need formal proofs on the code... Or avoid macros.
11601
116022017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11603
11604	[tests/tfmma.c] added one test
11605
11606	[tests/tfmma.c] fixed test
11607
116082017-04-06  Vincent Lefèvre  <vincent@vinc17.net>
11609
11610	[src/add1.c] Updated comment about underflow.
11611
11612	[src/add1.c] Handling of UBF and overflow/underflow.
11613	  * Added a MPFR_ASSERTD related to the overflow code.
11614	  * Bug fix: handle underflow, possible if UBF input(s).
11615
116162017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11617
11618	[tests/tfmma.c] added another test (currently fails)
11619
116202017-04-06  Vincent Lefèvre  <vincent@vinc17.net>
11621
11622	[src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0
11623	with UBF numbers. At the same time, refactored the related code a bit.
11624
11625	[tests] Added tbeta to svn:ignore property.
11626
11627	[doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column
11628	terminals + GNU coding style.
11629
11630	[tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414).
11631
11632	[src/sub1.c] Also corrected the comment about overflow detection.
11633
11634	[src/sub1.c] Really fixed overflow detection (r11412 is broken).
11635
11636	[src/sub1.c] Fixed/improved UBF cases.
11637	  * Added an assertion (usual MPFR limitation with huge precisions,
11638	    affecting 32-bit ABI only in practice).
11639	  * Fixed overflow detection.
11640
11641	[tests/tprintf.c] In check_long_string(), which is called when
11642	MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be
11643	in order to avoid an obvious failure due to insufficient memory.
11644
11645	[tests/memory.c] Write all error messages to stderr in order to make
11646	sure that they remain visible when the standard output is redirected
11647	(e.g. in tprintf). Rewrote the messages in a consistent way.
11648
11649	[tests/tfmma.c] Fixed return type of test added in r11407.
11650
11651	[tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase
11652	tests_memory_limit if need be in order to avoid an obvious failure
11653	due to insufficient memory.
11654
116552017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11656
11657	added test that triggers an error
11658	(see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html)
11659
116602017-04-05  Vincent Lefèvre  <vincent@vinc17.net>
11661
11662	[doc/mpfr.texi] Updated the month.
11663
11664	[doc/mpfr.texi] More details about errno.
11665
116662017-04-04  Vincent Lefèvre  <vincent@vinc17.net>
11667
11668	[doc/README.dev] Added a paragraph about the use of errno.
11669
11670	[doc/mpfr.texi] Details about EOVERFLOW.
11671
116722017-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11673
11674	[tests/tstrtofr.c] added test in bug20161217()
11675
116762017-04-03  Vincent Lefèvre  <vincent@vinc17.net>
11677
11678	[TODO] Update about functions returning a native floating-point value
11679	and underflow/overflow.
11680
11681	[src/atanh.c] Removed comment giving the "optimal" working precision
11682	(I do not see any proof in algorithms.tex, and it seems incorrect).
11683
11684	[TODO,src/log1p.c] log1p(x) on small x should also be improved instead
11685	of computing log(1+x).
11686
11687	[TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x.
11688
11689	[src/atanh.c] Cosmetic changes (comments and whitespace).
11690
11691	[TODO] Update about ERANGE.
11692
116932017-03-27  Vincent Lefèvre  <vincent@vinc17.net>
11694
11695	[tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast).
11696
116972017-03-09  Vincent Lefèvre  <vincent@vinc17.net>
11698
11699	[NEWS] Mention how to find the full list of bug fixes.
11700
11701	[tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308.
11702
11703	[tests/tstrtofr.c] Added comments about bug20161217 and bug20170308.
11704
11705	[tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug
11706	as bug20161217.
11707
11708	[doc/mpfr.texi] Updated the month.
11709
117102017-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11711
11712	added non-regression test
11713
117142017-03-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11715
11716	[doc/mpfr.texi] results should not depend on machine rounding mode/precision
11717
117182017-03-06  Vincent Lefèvre  <vincent@vinc17.net>
11719
11720	[doc/sum.txt] Minor corrections.
11721
117222017-03-05  Vincent Lefèvre  <vincent@vinc17.net>
11723
11724	[src/sum.c] Added a comment about shiftq.
11725
117262017-02-28  Vincent Lefèvre  <vincent@vinc17.net>
11727
11728	[tests/tbeta.c] C89 compatibility and some code reformatting.
11729
11730	[src/beta.c] Slightly improved comments.
11731
11732	[src/beta.c] Fixed a bug in reduced exponent range (not detected by
11733	the current tests).
11734
11735	[src/beta.c] Added a comment for Beta(0,negative integer).
11736
11737	[src/beta.c] Eventually fixed the case z or w is 0 (note: r11374
11738	did also other unwanted changes, reverted here).
11739
11740	[src/beta.c] Reverted my changes (this was incorrect).
11741
11742	[src/beta.c] Fixed special cases.
11743
11744	[src/beta.c] Added comments and some corrections (incomplete) for the
11745	case "z or w is 0".
11746
117472017-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11748
11749	[src/beta.c] fixed case z or w is 0
11750
11751	[tests/tbeta.c] patch from Cade Brown
11752	- signed zeros are checked in is_same
11753	- the case above (summing non-integer negative z, w which sum to a negative integer)
11754
117552017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11756
11757	[doc/mpfr.texi] added mpfr_beta in "Added Functions"
11758
117592017-02-27  Vincent Lefèvre  <vincent@vinc17.net>
11760
11761	[src/jn.c] Use MPFR_ADD_PREC.
11762
11763	[src/beta.c] Updated comments; added a FIXME.
11764
117652017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11766
11767	[src/jn.c] in case the first Ziv loop failed, take into account the number of
11768		   lost bits
11769
117702017-02-27  Vincent Lefèvre  <vincent@vinc17.net>
11771
11772	[src/beta.c] Use MPFR_ARE_SINGULAR.
11773
117742017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11775
11776	[src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer
11777
11778	[src/odd_p.c] new source file
11779
11780	[src/Makefile.am] new file odd_p.c
11781	[src/beta.c] fixed bug
11782	[src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p
11783	[src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file
11784
117852017-02-27  Vincent Lefèvre  <vincent@vinc17.net>
11786
11787	[src/beta.c] Added a FIXME (test failure with assertions).
11788
11789	[src/beta.c] Removed an unusual space.
11790
11791	[tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr.
11792
11793	[tools/mpfrlint] Added a test to check that the usual test programs
11794	call tests_start_mpfr and tests_end_mpfr.
11795
117962017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11797
11798	[src/beta.c] several fixes
11799	[src/pow.c] renamed is_odd to mpfr_is_odd, and export it
11800	[src/mpfr-impl.h] export mpfr_is_odd as internal function
11801	[tests/tbeta.c] added generic tests
11802
118032017-02-27  Vincent Lefèvre  <vincent@vinc17.net>
11804
11805	[tests/tbeta.c] Added missing void in prototype.
11806
11807	Removed trailing spaces.
11808
11809	[tests/tbeta.c] Fixed the usage of MPFR types.
11810
11811	[tests/tbeta.c] Minor correction. Added a FIXME and a TODO.
11812
118132017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11814
11815	[tests/tbeta.c] GNU style and C89 portability
11816
11817	[TODO] removed beta entry
11818
11819	new function mpfr_beta
11820
11821	[tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from
11822			ChemicalDevelopment (this commit is the file as it was
11823			contributed, except the mpfr-test.h include)
11824
118252017-02-27  Vincent Lefèvre  <vincent@vinc17.net>
11826
11827	[src/beta.c] Portability corrections.
11828
118292017-02-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11830
11831	[src/beta.c] fix for exact case beta(1,2^k) for k negative integer
11832
11833	[src/beta.c] special values are now implemented (should be reviewed)
11834
118352017-02-25  Vincent Lefèvre  <vincent@vinc17.net>
11836
11837	[TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word).
11838
11839	[TODO] Update about rootn.
11840
11841	[TODO] Added some propositions about rootn.
11842
118432017-02-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11844
11845	[src/root.c] added comment
11846
11847	added reference
11848
118492017-02-23  Vincent Lefèvre  <vincent@vinc17.net>
11850
11851	[src/beta.c] Call mpfr_check_range as usual.
11852
11853	[src/beta.c] Extended the exponent range for the generic case.
11854
11855	[src/beta.c] Added a comment.
11856
11857	[src/beta.c] Various code improvement / fixes.
11858
11859	[src/beta.c] Added a FIXME.
11860
118612017-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11862
11863	[src/beta.c] added beta function (work in progress, not yet fully implemented,
11864		     and not tested)
11865
118662017-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11867
11868	[src/fmma.c] speedup of mpfr_fmma and mpfr_fmms
11869
11870	[src/fma.c] speedup of mpfr_fma when all operands have the same precision
11871		    (less than one full limb)
11872
118732017-02-21  Vincent Lefèvre  <vincent@vinc17.net>
11874
11875	[NEWS] Note that the position of "const" in the mpfr_sum prototype
11876	has been fixed (in case writers of interfaces for MPFR use that).
11877
11878	"a IEEE 754r decimal64 float" → "an IEEE 754-2008 decimal64 float".
11879
118802017-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11881
11882	[src/fma.c] speedup mpfr_fma for 1 limb
11883
11884	754R -> 754-2008
11885
118862017-02-20  Vincent Lefèvre  <vincent@vinc17.net>
11887
11888	Removed trailing spaces.
11889
11890	[src/vasprintf.c] Solved the FIXME for %g on easy cases.
11891
118922017-02-17  Vincent Lefèvre  <vincent@vinc17.net>
11893
11894	[src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding
11895	direction was correct; it was a comment that was incorrect, now fixed.
11896
11897	[src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction.
11898
11899	[src/zeta.c] Improvements of mpfr_reflection_overflow:
11900	  * Moved identical parts of the code at the beginning of if/else blocks
11901	    as a single part before the "if".
11902	  * When the rounding mode doesn't matter (exact result), use MPFR_RNDN.
11903	  * Updated comments (making them more consistent at the same time).
11904
119052017-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11906
11907	[src/zeta.c] added more comments for the overflow case
11908
119092017-02-14  Vincent Lefèvre  <vincent@vinc17.net>
11910
11911	[src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the
11912	  prototypes instead of "const mpfr_srcptr *x" (old info from r5381).
11913	[doc/sum.txt] Fixed the const position (see r11316) and added this note.
11914
11915	[src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes.
11916
11917	[doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent
11918	"const mpfr_ptr" (usual style, less confusing).
11919
11920	For mpfr_sum and its auxiliary functions, moved the const type qualifier
11921	to the right place (mpfr_ptr *const → const mpfr_ptr *). This bug had
11922	been introduced in r3642 (2005-06-10).
11923
119242017-02-13  Vincent Lefèvre  <vincent@vinc17.net>
11925
11926	[src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's;
11927	fixed obvious typos in a comment and the code.
11928
11929	[src/zeta.c] mpfr_reflection_overflow: typo in a comment.
11930
11931	[src/zeta.c] Untabified.
11932
11933	[src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment.
11934
11935	[src/vasprintf.c] Added a comment in a FIXME.
11936
11937	[src/vasprintf.c] Added MPFR_ASSERTD's.
11938
11939	[src/vasprintf.c] Avoid some potential integer overflows.
11940
119412017-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11942
11943	[src/zeta.c] improved overflow detection
11944
119452017-02-13  Vincent Lefèvre  <vincent@vinc17.net>
11946
11947	[src/vasprintf.c] Added FIXME's: possible integer overflows.
11948
119492017-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11950
11951	fix for mpfr_zeta overflow on 32-bit computers
11952
119532017-02-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11954
11955	[src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2
11956		    (not clear it is faster)
11957
119582017-02-10  Vincent Lefèvre  <vincent@vinc17.net>
11959
11960	[tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer,
11961	"%#.*RDg" and a large precision (it currently takes too much memory,
11962	like the similar ones).
11963
11964	[src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory).
11965	[tests/tsprintf.c] Added corresponding tests.
11966
119672017-02-09  Vincent Lefèvre  <vincent@vinc17.net>
11968
11969	[src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate
11970	a buffer for the output if not needed. This really fixes bug #21056.
11971	The case size_t < unsigned int could not be solved completely due to
11972	limitations from the C standard and GMP.
11973
11974	[src/sqrt.c] Avoid a warning due to an unused variable with
11975	MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64.
11976
11977	[src/sqrt.c] Added MPFR_ASSERTD's from comments.
11978
119792017-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11980
11981	[tests/tzeta.c] interm_overflow -> intermediate_overflow
11982
119832017-02-09  Vincent Lefèvre  <vincent@vinc17.net>
11984
11985	[src/zeta.c] Updated a FIXME.
11986
119872017-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11988
11989	improved detection of fmma and fmms
11990
11991	[src/zeta.c] fixed long-standing failure in tzeta
11992
119932017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
11994
11995	[src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0)
11996
119972017-02-08  Vincent Lefèvre  <vincent@vinc17.net>
11998
11999	[src/vasprintf.c] Updated FIXME.
12000
120012017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12002
12003	[src/sqrt.c] new code for prec=GMP_NUMB_BITS
12004
120052017-02-08  Vincent Lefèvre  <vincent@vinc17.net>
12006
12007	[src/vasprintf.c] Moved the size_t vs int FIXME, with details added.
12008
12009	[src/vasprintf.c] Added a MPFR_ASSERTN for security.
12010
12011	[src/vasprintf.c] Added a FIXME for the case size_t < unsigned int.
12012
12013	[src/vasprintf.c] Solved the r11288 FIXME, introducing new ones
12014	with a more visible failure. Not fixed yet because there seems
12015	to be another issue (already present at the beginning in r4993),
12016	which should be considered first.
12017
12018	[src/vasprintf.c] Added a FIXME (related to the cause of the failure).
12019
12020	[src/vasprintf.c] Added some precondition assertions, as the buffer_cat
12021	implementation requires that the current buffer position contains \0.
12022	Note[VL]: tsprintf is still failing with assertions on my machine in
12023	the 32-bit Linux/x86 ABI, but now on the new precondition instead of
12024	postcondition. The behavior with size = 0 actually depends on the state
12025	of uninitialized memory (even in the 64-bit ABI), so that the failures
12026	may be random; the problem is detected by valgrind.
12027
12028	[src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the
12029	related code.
12030
120312017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12032
12033	[src/mul.c] simplified logic for special code
12034	[src/div.c] fixed bug in mpfr_div_1n when extra=0
12035
12036	[src/div.c] special code for prec=GMP_NUMB_BITS
12037
12038	[src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1
12039	[src/mul.c] cosmetic changes
12040
120412017-02-08  Vincent Lefèvre  <vincent@vinc17.net>
12042
12043	[tests/tsub1sp.c] Fix: C++ compatibility.
12044
120452017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12046
12047	[src/mul.c] added special code for prec=GMP_NUMB_BITS
12048	[src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined
12049	[src/sub1sp.c] idem as above
12050
120512017-02-08  Vincent Lefèvre  <vincent@vinc17.net>
12052
12053	[src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which
12054	uses va_list) only if <stdarg.h> has been included, otherwise the
12055	build was failing with GCC in C90 mode under Linux (and could fail
12056	with other C implementations where this header isn't automatically
12057	included as a consequence of the inclusion of some other header).
12058
120592017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12060
12061	[src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3
12062	[tests/tsub1sp.c] added new tests
12063
120642017-02-08  Vincent Lefèvre  <vincent@vinc17.net>
12065
12066	[src/vasprintf.c] Fixed bug introduced in r11273.
12067
12068	[tools/mpfrlint] Updated the "simple mp_limb_t constants" test.
12069
12070	Made some assertions a bit more readable.
12071
12072	[tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel → (mpfr_ptr) 0
12073
12074	[tests/tsprintf.c] C90 compatibility.
12075
120762017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12077
12078	[src/vasprintf.c] avoid memory allocation for snprintf with size=0
12079
12080	[src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case)
12081	[tests/tsub1sp.c] added non-regression test
12082
120832017-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12084
12085	[src/add1sp.c] added special code for p=GMP_NUMB_BITS
12086
12087	[src/vasprintf.c] improved also %a and %e
12088
12089	[src/vasprintf.c] fixed bug #21056
12090
120912017-02-07  Vincent Lefèvre  <vincent@vinc17.net>
12092
12093	[TODO] More about the mpz_t pool.
12094
12095	[src/free_cache.c] Better file description (keeping it short).
12096
12097	[src/free_cache.c] Updated comments (mpz_t cache → mpz_t pool).
12098
12099	[doc/mpfr.texi] Updated the month.
12100
12101	[doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification
12102	in case of error.
12103
12104	[src/vasprintf.c] Code cleanup.
12105
121062017-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12107
12108	partial solution of bug #21056: a test of mpfr_sprintf still fails
12109
12110	[tests/tmul.c] added test for underflow corner case
12111
12112	[src/div.c] simplified underflow in div_1 and div_2 (one case is not possible)
12113
12114	[tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2
12115
12116	[tests/tsqr.c] added a corner underflow case
12117
121182017-02-06  Vincent Lefèvre  <vincent@vinc17.net>
12119
12120	[src/mpfr-impl.h] Added missing function prototype after r11256.
12121
121222017-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12123
12124	[mpfr-impl.h] now mpz_init2 uses the mpz spool too
12125
121262017-02-03  Vincent Lefèvre  <vincent@vinc17.net>
12127
12128	[TODO] Added: check the small-precision tables in the tests?
12129
12130	Removed trailing whitespace.
12131
12132	[acinclude.m4] Fixed code for the _mulx_u64 test.
12133
121342017-02-02  Vincent Lefèvre  <vincent@vinc17.net>
12135
12136	[tests/tversion.c] Output whether _mulx_u64 is available.
12137
12138	[acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests
12139	with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE.
12140
121412017-01-31  Vincent Lefèvre  <vincent@vinc17.net>
12142
12143	[src/invsqrt_limb.h] Improved constants: make their meaning explicit;
12144	portability with 32-bit long (and 64-bit limb).
12145
121462017-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12147
12148	[src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx
12149	[src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx
12150
121512017-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12152
12153	[src/sqrt.c] improved slow branch of mpfr_sqrt2
12154
12155	[src/div.c] improved slow branch of mpfr_div_2
12156
12157	[src/div.c] fixed TODO: replaced two if-statements by while-loop
12158
121592017-01-30  Vincent Lefèvre  <vincent@vinc17.net>
12160
12161	[src/div.c] Added TODO's.
12162
12163	[src/div.c] Added a MPFR_ASSERTD.
12164
121652017-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12166
12167	[src/atan.c] added comment
12168
12169	[src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro
12170
12171	[src/atan.c] small optimization
12172
121732017-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12174
12175	[src/atan.c] speedup for small precision
12176
121772017-01-27  Vincent Lefèvre  <vincent@vinc17.net>
12178
12179	[src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined.
12180
12181	[src/mul.c] Removed useless parentheses that can inhibit warnings.
12182
121832017-01-26  Vincent Lefèvre  <vincent@vinc17.net>
12184
12185	[src/mul.c] Updated TODO.
12186
12187	[src/mul.c] Added a TODO about an optimization.
12188
121892017-01-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12190
12191	[src/sqrt.c] fixed error bound for mpfr_sqrt2_approx
12192
121932017-01-25  Vincent Lefèvre  <vincent@vinc17.net>
12194
12195	[TODO] Added optimization of test + shift for some processors.
12196
12197	[src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2.
12198
121992017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12200
12201	[src/sqrt.c] changed error bound back from 16 to 15
12202
122032017-01-25  Vincent Lefèvre  <vincent@vinc17.net>
12204
12205	[doc/add-with-carry.c] Added reference to my bug report about Clang's
12206	carry detection missed optimization in chained add-with-carry.
12207
122082017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12209
12210	[src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx
12211
122122017-01-25  Vincent Lefèvre  <vincent@vinc17.net>
12213
12214	[src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM.
12215
12216	[src/sub1sp.c] Use the FULLSUB only. Added a comment about the change
12217	in r11227.
12218
122192017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12220
12221	[src/sub1sp.c] changed MPFR_FULLSUB variant into faster code
12222
122232017-01-24  Vincent Lefèvre  <vincent@vinc17.net>
12224
12225	[doc/mpfr.texi] Texinfo typography correction.
12226
12227	[doc/mpfr.texi] Improvements concerning the exponent range.
12228	  * mpfr_get_exp: added a FIXME in a comment (documented behavior?).
12229	  * mpfr_set_emin / mpfr_set_emax: more specification and details.
12230	  * mpfr_subnormalize: clarification; added a warning about emin.
12231	  * Example of mpfr_subnormalize: added a note.
12232	In particular, this follows a confusion:
12233	  https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html
12234
122352017-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12236
12237	[src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not
12238			     change final error analysis)
12239
122402017-01-23  Vincent Lefèvre  <vincent@vinc17.net>
12241
12242	[src/sub1sp.c] Updated comments about subtraction with borrow; the first
12243	one from r11213 was incorrect (bad interpretation of the generated code
12244	for GCC, potentially on a different alternate source code for Clang).
12245
122462017-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12247
12248	[src/sub1sp.c] simplified mpfr_sub1sp1()
12249
12250	[tests/turandom.c] added non-regression test
12251
122522017-01-23  Vincent Lefèvre  <vincent@vinc17.net>
12253
12254	[src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags.
12255
12256	[src/urandom.c] Simplified code (no changes in the behavior).
12257
122582017-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12259
12260	[src/urandom.c] fixed bug reported by Trevor Spiteri
12261	(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html)
12262
122632017-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12264
12265	changed mpn_sqr_n into mpn_sqr
12266
122672017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12268
12269	new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h)
12270
122712017-01-20  Vincent Lefèvre  <vincent@vinc17.net>
12272
12273	[src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM.
12274
12275	[src/sub1sp.c] Updated TODO about full subtraction with borrow.
12276
12277	[src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until
12278	fully tested) to replace a test + correction by a 2-limb subtraction,
12279	recognized by GCC and Clang.
12280
122812017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12282
12283	renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect
12284	it only gives an approximation
12285
122862017-01-20  Vincent Lefèvre  <vincent@vinc17.net>
12287
12288	[src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60,
12289	replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long.
12290
12291	[src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the
12292	computations are done on limbs, which are expected to have 64 bits in
12293	this context (the old code would fail on MS Windows / MinGW, where limbs
12294	are 64-bit unsigned long long and unsigned long is a 32-bit type).
12295
12296	[src/invsqrt_limb.h] Portability correction: avoid lines longer than the
12297	POSIX line-length limit of 2047 characters; actually fit on 80 columns.
12298
122992017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12300
12301	faster version of mpfr_sqrt1(), with smaller table
12302
12303	[src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb
12304
123052017-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12306
12307	[src/div.c] use ADD_LIMB macro, and fixed comment
12308
123092017-01-17  Vincent Lefèvre  <vincent@vinc17.net>
12310
12311	[acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if
12312	the realpath command is not found. Suggestion by Trevor Spiteri:
12313	  https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html
12314	Note: I had to modify the patch to use quadrigraphs, otherwise the
12315	generated configure file was invalid.
12316
123172017-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12318
12319	[tdiv.c] added code to exercise mpfr_div2_approx
12320
123212017-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12322
12323	[src/div.c] new variant of mpfr_div2_approx()
12324
123252017-01-13  Vincent Lefèvre  <vincent@vinc17.net>
12326
12327	[src/invert_limb.h] Fit on 80 columns (one line was over the
12328	POSIX line-length limit of 2047 characters).
12329
12330	[src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI:
12331	_d was used before being defined.
12332
123332017-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12334
12335	[invert_limb.h] added invert_limb code for 32-bit
12336
123372017-01-13  Vincent Lefèvre  <vincent@vinc17.net>
12338
12339	[src/add1sp.c] Improved a line based on analysis (+ timings I've done
12340	on x86_64 with GCC and Clang give better results, though they cannot
12341	be conclusive since the gain is too small compared to other possible
12342	causes of variations).
12343
12344	[tools/mbench/Makefile] Added -static to CFLAGS in order to avoid
12345	a link error when MPFR has been built with Clang (linking is done
12346	with .a libraries, i.e. static libraries).
12347
12348	[src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on
12349	the fact that we return a ternary value (code instrumentation may also
12350	be easier later). Note: this is equivalent since the macro expands to
12351	0 != 0 ? ... : 0, which gives 0 via trivial optimization.
12352
12353	[src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO.
12354	Note for rb -> bp[0]: the generated code is the same, but the source
12355	is more readable (-> rb has only one meaning).
12356
12357	[src/div.c] C90 compatibility (avoid initializer elements not computable
12358	at load time).
12359
123602017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12361
12362	[src/div.c] added some alternate code for mpfr_div2_approx (disabled for now)
12363
12364	fixed bug in urandomb.c reported by Dominic Chen
12365	(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html)
12366	and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd
12367
12368	[src/div.c] small improvement in div_1 and div_2: force all precisions to be
12369		    equal, then we cannot have rb <> 0 and sb = 0
12370
12371	[src/div.c] improved case p=127 (or two-limb case with hard to round case)
12372
123732017-01-12  Vincent Lefèvre  <vincent@vinc17.net>
12374
12375	[src/add1sp.c] Added a TODO: slightly better code?
12376
123772017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12378
12379	[src/div.c] improve mpfr_div_1 for precision 63
12380
123812017-01-12  Vincent Lefèvre  <vincent@vinc17.net>
12382
12383	[src/rndna.c] Updated comments.
12384
123852017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12386
12387	[src/sqrt.c] improved mpfr_sqrt2_approx()
12388
123892017-01-12  Vincent Lefèvre  <vincent@vinc17.net>
12390
12391	[doc/mpfr.texi] Typographic correction (including generated spaces).
12392
123932017-01-10  Vincent Lefèvre  <vincent@vinc17.net>
12394
12395	Improvement of additions with carry.
12396	  * Added doc/add-with-carry.c showing how to do an addition with carry
12397	    in C (to make the compiler understand the code).
12398	  * src/mpfr-impl.h: added ADD_LIMB macro (addition with carry).
12399	  * src/sqr.c: use this ADD_LIMB macro to improve the generated code.
12400
124012017-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12402
12403	[src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases
12404
12405	[src/div.c] added FIXME
12406	[src/sub1sp.c] added comments
12407
12408	[src/sqrt.c] made code coherent with comment
12409
124102017-01-10  Vincent Lefèvre  <vincent@vinc17.net>
12411
12412	[src/sqrt.c] Improved comment from r11180.
12413
124142017-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12415
12416	[src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction
12417		     of error
12418
124192017-01-10  Vincent Lefèvre  <vincent@vinc17.net>
12420
12421	Merged the latest changes from the trunk and added RNDF support
12422	in mpfr_sub1sp3.
12423
12424	[src/sub1sp.c] Fixed other two bugs in special code for 3 limbs.
12425	TODO: non-regression tests should be added for both.
12426
12427	[src/sub1sp.c] Fixed some bugs in special code for 3 limbs.
12428
12429	[src/sub1sp.c] Simplified a test.
12430
124312017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12432
12433	[src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3
12434
12435	[src/mul.c] deal with RNDF in mpfr_mul_3
12436
12437	[src/sub1sp.c] added special code for 3 limbs
12438
124392017-01-09  Vincent Lefèvre  <vincent@vinc17.net>
12440
12441	Merged the latest changes from the trunk.
12442
12443	[src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs).
12444
124452017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12446
12447	[src/add1sp.c] added special code for 3 limbs
12448
12449	[src/sqr.c] added special code for 3 limbs
12450
124512017-01-09  Vincent Lefèvre  <vincent@vinc17.net>
12452
12453	Merged the latest changes from the trunk (changing a RND_RAND to
12454	RND_RAND_NO_RNDF in order to avoid a failure in a test).
12455
12456	[tests/tsub1sp.c] Fixed a return type.
12457
12458	[doc/README.dev] Updated note added in r11165.
12459
12460	[doc/README.dev] Added a note about cross-compilation and test
12461	under Wine, with references to bugs in autoconf and dash.
12462
124632017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12464
12465	[tests/tmul.c] fixed typo
12466
124672017-01-09  Vincent Lefèvre  <vincent@vinc17.net>
12468
12469	[src/round_raw_generic.c] Added MPFR_RNDF special support (seen as
12470	MPFR_RNDZ since this is faster, with *inexp = 0).
12471
124722017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12473
12474	[src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS
12475	[tests/tsub1sp.c] added testcase
12476
124772017-01-09  Vincent Lefèvre  <vincent@vinc17.net>
12478
12479	[src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI).
12480
12481	[tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails.
12482
124832017-01-08  Vincent Lefèvre  <vincent@vinc17.net>
12484
12485	[src/mul.c] Define aq = MPFR_GET_PREC (a), and use this.
12486
124872017-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12488
12489	[src/mul.c] added mpfr_mul_3
12490	[src/sqrt.c] renamed internal functions
12491	[src/sub1sp.c] cosmetic change
12492
124932017-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12494
12495	[src/exp.c] avoid using a full limb as precision
12496	[src/sqrt.c] removed obsolete comment
12497
12498	[src/get_str.c] avoid precision = GMP_NUMB_BITS
12499
12500	[src/div_ui.c] added comment
12501
125022017-01-06  Vincent Lefèvre  <vincent@vinc17.net>
12503
12504	[tools/mbench/README] Say how to disable a non-working library.
12505
12506	Merged the latest change from the trunk.
12507
125082017-01-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12509
12510	[src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for
12511		    GMP_NUMB_BITS <> 64, only some fast code inside is not defined
12512
125132017-01-06  Vincent Lefèvre  <vincent@vinc17.net>
12514
12515	Merged the latest changes from the trunk.
12516
125172017-01-05  Vincent Lefèvre  <vincent@vinc17.net>
12518
12519	[src/div.c] Use mpfr_limb_ptr instead of mp_ptr.
12520
12521	[src/div.c] Fix for GMP_NUMB_BITS != 64.
12522
125232017-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12524
12525	[src/div.c] faster division for 2 limbs
12526
125272017-01-05  Vincent Lefèvre  <vincent@vinc17.net>
12528
12529	[src/div_ui.c] Coding style.
12530
12531	[src/div_ui.c] Simplification.
12532
12533	[src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.
12534
12535	[tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long.
12536
12537	[tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64.
12538
125392017-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12540
12541	last fix was incomplete
12542
12543	[src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls
12544		       mpfr_div_ui when the divisor has a few bits)
12545
12546	fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro
12547	MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro
12548	MPFR_IS_LIKE_RNDA is false
12549
125502017-01-04  Vincent Lefèvre  <vincent@vinc17.net>
12551
12552	[tests/tdiv.c] Added a test that triggers an assertion failure
12553	in a reduced exponent range (found from the generic tests with
12554	GMP_CHECK_RANDOMIZE=1483628702).
12555
12556	[tests/tgeneric.c] Added debug messages for overflow & underflow tests.
12557
12558	[tests/tdiv_ui.c] Added a comment on new test (doesn't fail).
12559
125602017-01-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12561
12562	[tdiv_ui.c] added new test
12563
125642017-01-03  Vincent Lefèvre  <vincent@vinc17.net>
12565
12566	[src/invert_limb.h] Removed an unused variable.
12567
125682017-01-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12569
12570	use a macro instead of a function for __gmpfr_invert_limb and
12571	__gmpfr_invert_limb_approx saves 2-3 cycles
12572
125732017-01-01  Vincent Lefèvre  <vincent@vinc17.net>
12574
12575	Merged the latest changes from the trunk.
12576
12577	[doc/mpfr.texi] Updated the month.
12578
12579	Copyright notice update: added 2017 with
12580	  perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/
12581	               " ".($1||"$2-").($2+1)/e' **/*(^/)
12582	under zsh, reverting the tools/mbench directory (not distributed with
12583	MPFR). Removed 2016 from the example in the doc/README.dev file.
12584
125852016-12-31  Vincent Lefèvre  <vincent@vinc17.net>
12586
12587	[src/sqr.c] Bug fixes (portability): replaced left shift of a value
12588	that can be negative by a multiplication by 2.
12589
12590	[src/sqrt.c] C90 compatibility.
12591
12592	[src/div.c] C90 compatibility.
12593
12594	[src/invert_limb.c] Removed unused variable.
12595
125962016-12-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12597
12598	[src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0
12599
12600	[src/mul.c] fixed typo in comment
12601	[src/sqr.c] likewise
12602
12603	[src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098:
12604		    critical routines should not be exported, otherwise we lose a few
12605		    cycles (maybe they are inlined by the compiler)
12606
12607	[src/div.c] further improvement in mpfr_div_1()
12608
12609	[src/div.c] use an approximate quotient in mpfr_div_1()
12610
12611	[src/div.c] simplify mpfr_div_1()
12612
12613	[src/invert_limb.c] new file for __gmpfr_invert_limb internal function
12614			    (only provided so far for 64-bit limb)
12615	[src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals
12616		    any more
12617
12618	[sqrt_tab.h] better file description
12619
126202016-12-29  Vincent Lefèvre  <vincent@vinc17.net>
12621
12622	Improvement concerning the _mulx_u64 intrinsic.
12623
126242016-12-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12625
12626	[src/div.c] replace GMP's invert_limb (internal) by own code
12627
126282016-12-29  Vincent Lefèvre  <vincent@vinc17.net>
12629
12630	Merged the latest changes from the trunk.
12631
12632	[src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT.
12633
126342016-12-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12635
12636	[src/sqr.c] use special code for 1 and 2 limbs
12637	[mbench] added mpfr_sqr
12638
12639	[src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code
12640		     for 32-bit limb)
12641	[src/sqrt_tab.h] new table for mpn_sqrtrem4_approx
12642
12643	[tlog.c] missing printf()
12644
126452016-12-27  Vincent Lefèvre  <vincent@vinc17.net>
12646
12647	[NEWS] Mention that mpfr_get_str now also sets the inexact flag when
12648	the conversion is inexact (completing r11073).
12649
12650	[mpfr.texi] Be stronger in mpfr_round_nearest_away documentation
12651	(as the ternary value is used each time the last bit on p+1 bits
12652	is not 0, i.e. in about half cases).
12653
126542016-12-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12655
12656	[mpfr.texi] added stuff in mpfr_round_nearest_away documentation
12657
126582016-12-27  Vincent Lefèvre  <vincent@vinc17.net>
12659
12660	[src/log.c] Added another FIXME concerning the error analysis.
12661
12662	[src/log.c] Added an assertion and a FIXME: error in the MPFR code or
12663	in the proof (error analysis).
12664
12665	[src/log.c] Slight simplification / improvement.
12666
12667	[doc/algorithms.tex] In Section "The logarithm function" (from r9046),
12668	removed everything concerning the AGM since this is not what is done
12669	in the MPFR code, where mpfr_agm is simply called (and this function
12670	already has its own description later).
12671	Note: The error analysis of mpfr_log can only be found in log.c, but
12672	seems incorrect (though the bounds may be valid); it was introduced
12673	in r416.
12674
126752016-12-26  Vincent Lefèvre  <vincent@vinc17.net>
12676
12677	Merged the latest changes from the trunk (this concerns only src/log.c).
12678
12679	[src/log.c] Group constant terms together (GCC takes advantage of this,
12680	at least on x86_64).
12681
12682	[src/log.c] Check for integer overflow (no visible changes in
12683	standard configuration) + explanations.
12684
12685	[src/log.c] Get the exponent of the input only once.
12686
126872016-12-20  Vincent Lefèvre  <vincent@vinc17.net>
12688
12689	[doc/sum.txt] Update for faithful rounding (MPFR_RNDF).
12690
12691	[src/sum.c] Fixed the bug mentioned in r11077.
12692
12693	[tests/tsum.c] The new test for MPFR_RNDF in r11079 can actually trigger
12694	a failure; increased the number of tests to get a failure by default.
12695
12696	[tests/tsum.c] Improved a test to support MPFR_RNDF. It doesn't fail,
12697	but would if 0 in "corr = 0" were changed to -1 or 1 (tested).
12698
12699	Removed trailing spaces.
12700
12701	[src/sum.c] Improvement for MPFR_RNDF, but still based on the change
12702	done in r10512, which was incorrect; added a FIXME (a non-regression
12703	test needs to be added first).
12704
12705	Merged the latest changes from the trunk (this concerns only src/sum.c
12706	and will be useful for the upcoming improvement).
12707
12708	[src/sum.c] Delay some assignments so that they are done just before
12709	the variables are used (this should have been done in r10467).
12710
12711	Merged the latest changes from the trunk.
12712
12713	[doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag
12714	is set iff the result is inexact (since this may not be obvious and this
12715	wasn't the case until now). In the compatibility section, mention this
12716	change.
12717
12718	[doc/mpfr.texi] For mpfr_get_str, removed the note saying that
12719	the inexact flag is not set when the conversion is inexact:
12720	this is fixed in r11071.
12721
12722	[src/get_str.c] Corrected a comment and a test for inexactness
12723	(→ the new tget_str.c test no longer fails).
12724
127252016-12-19  Vincent Lefèvre  <vincent@vinc17.net>
12726
12727	[tests/tstrtofr.c] Added a comment.
12728
12729	[src/strtofr.c] Better indentation.
12730
12731	[tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p().
12732
12733	[doc/mpfr.texi] Updated the month.
12734
12735	[src/get_str.c] Removed an obsolete comment, which came from r2757
12736	(and even before, under another form); this comment no longer made
12737	any sense as the sign of dir is no longer tested.
12738
12739	[src/get_str.c] Indentation fixed.
12740
12741	[src/get_str.c] Setting the inexact flag as done in r11060 was incorrect
12742	since the flags are restored. Moreover, this was done even when the Ziv
12743	loop was going to fail (it's not clear whether this was expected). Moved
12744	the test out of the Ziv loop, and update the copy of the flags instead
12745	of the flags that will be overwritten.
12746	Note: this still fails, but now for another reason.
12747
12748	[tests/tget_str.c] Check the inexact flag for mpfr_get_str.
12749	The test currently fails.
12750
127512016-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12752
12753	[get_str.c] inexact flag should now be correct in mpfr_get_str
12754
12755	[strtofr.c] updated comment
12756
127572016-12-18  Vincent Lefèvre  <vincent@vinc17.net>
12758
12759	[doc/mpfr.texi] Added a short note about the default precision for Re.
12760
127612016-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12762
12763	[mpfr.texi] added emin in comment about mpfr_round_nearest_away
12764
12765	fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str)
12766
127672016-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12768
12769	[tstrtofr.c] added test for bug in mpfr_strtofr()
12770
127712016-12-17  Vincent Lefèvre  <vincent@vinc17.net>
12772
12773	[src/sqrt.c] Added "do ... while (0)" in macro definition.
12774
127752016-12-16  Vincent Lefèvre  <vincent@vinc17.net>
12776
12777	Removed trailing whitespace.
12778
12779	[src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set
12780	*inexp if use_inexp is true), from a patch by John P. Hartmann.
12781
127822016-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12783
12784	new mpn_sqrtrem4_approx function (unused so far)
12785
127862016-12-15  Vincent Lefèvre  <vincent@vinc17.net>
12787
12788	[tests/tsqrt.c] The latest changes made tsqrt fail in an inexact test
12789	on MPFR_RNDF. Fixed by changing RND_RAND to RND_RAND_NO_RNDF.
12790
12791	Merged the latest changes from the trunk.
12792
12793	[src/sin.c] Handled a FIXME.
12794
12795	[src/sqrt_tab.h] Added copyright notice.
12796
127972016-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12798
12799	[sqrt.c] simplify code for GMP_NUMB_BITS = 64
12800
128012016-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12802
12803	better fix than r11025
12804
12805	[sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx()
12806	[sqrt.c] new version of mpn_sqrtrem2_approx()
12807
12808	[sqrt.c] added mathematical error in mpn_sqrtrem2_approx()
12809
12810	added non-regression test for bug fix in r11037
12811
128122016-12-14  Vincent Lefèvre  <vincent@vinc17.net>
12813
12814	[src/vasprintf.c] Fixed a bug as spec.prec can be a negative number
12815	other than -1 (if such a value is given as an argument with ".*").
12816	This is the probable cause of the assertion failure on:
12817	https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136
12818
128192016-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12820
12821	[sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb
12822
12823	[sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1
12824
12825	[add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade
12826
128272016-12-12  Vincent Lefèvre  <vincent@vinc17.net>
12828
12829	[src/sin.c] Added missing word in r11032 comment.
12830
12831	[src/sin.c] Common/related subexpressions. Added a FIXME.
12832
128332016-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12834
12835	[cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy
12836
12837	[sin.c] improved strategy for initial precision
12838
12839	[sqrt.c] updated code and comments
12840
12841	[sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis)
12842
12843	[sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023)
12844
12845	[sqrt.c] fixed comments to be coherent with the code
12846
12847	fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136
12848
128492016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12850
12851	[src/sqrt.c] Corrected a comment (1 has exponent 1 and we support
12852	precision 1).
12853
128542016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12855
12856	[sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments
12857
128582016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12859
12860	[src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could
12861	be detected by avoiding extra parentheses.
12862
12863	[src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX.
12864
128652016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12866
12867	[div.c] simplified mpfr_div_1 and mpfr_div_2
12868
12869	[div.c] added comments and simplified code
12870
12871	[div.c] simplified code
12872
12873	likewise for mpfr_mul_2()
12874
12875	fixed bug in mpfr_mul_1() introduced in r11004 and added test case
12876
12877	[div.c] simplified underflow test in mpfr_div_1()
12878
128792016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12880
12881	[src/div_ui.c] underflow is unlikely!
12882
12883	[src/sqrt.c] overflow and underflow are unlikely!
12884
128852016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12886
12887	[div.c] overflow and underflow are unlikely!
12888
12889	[div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0
12890
12891	[div.c] simplified mpfr_div_1() code
12892
12893	[div.c] in mpfr_div_1, do not deal with the case where the precision is
12894		<= GMP_NUMB_BITS/2, to not slow down the general case
12895
128962016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12897
12898	[src/mul.c] Slight improvement (but shouldn't affect the generated code
12899	with an optimizing compiler).
12900
129012016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12902
12903	[mul.c] likewise for mpfr_mul_2()
12904
12905	[mul.c] simplified mpfr_mul_1()
12906
12907	fixed similar bug in mpfr_mul_2() + non-regression test
12908
12909	[mul.c] simplified the code and fixed a bug
12910	[tmul.c] added non-regression test for fixed bug
12911
12912	[sub1sp.c] added comment + assert
12913
129142016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12915
12916	[src] Fixed bug introduced in r10964 with --with-gmp-build: move
12917	the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h.
12918
129192016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12920
12921	[add1sp.c] added comment
12922
12923	[add1sp.c] simplified mpfr_add1sp2()
12924
12925	[sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible
12926
129272016-12-09  Vincent Lefèvre  <vincent@vinc17.net>
12928
12929	[tools/mbench/mfv5.cc] Fixed type.
12930
129312016-12-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12932
12933	[mbench] fixed typo
12934
129352016-12-08  Vincent Lefèvre  <vincent@vinc17.net>
12936
12937	Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX.
12938
12939	[tools/mpfrlint] Added a test detecting code like ~0 (either an error
12940	or poorly written code).
12941
129422016-12-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12943
12944	improved add1sp.c and sub1sp.c like in r10991
12945
12946	[mbench] set default max_exp to 1 (independent of number of bits per limb)
12947
12948	[sub1sp.c] improved further
12949
12950	[mbench] use mpfr_printf to print test numbers
12951
12952	fixed bug in mfv5 (numbers used were 10 times too large)
12953
129542016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12955
12956	added rounding code for RNDF in special routines for 1 and 2 limbs
12957
12958	[sub1sp.c] corrected a comment, added another one
12959
129602016-12-07  Vincent Lefèvre  <vincent@vinc17.net>
12961
12962	[src/add1sp.c] Typo in a comment.
12963
12964	[src/pow.c] Punctuation to make clear that there are 2 sentences.
12965
129662016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12967
12968	likewise r10983
12969
12970	[add1sp.c] improved a conditional (if compiler is not smart enough)
12971
12972	[exp_2.c] small improvements
12973
129742016-12-07  Vincent Lefèvre  <vincent@vinc17.net>
12975
12976	[src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an
12977	assertion concerning whether x <= ULONG_MAX or not.
12978
12979	[src/pow.c] Added an assertion.
12980
129812016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12982
12983	[algorithms.tex] fixed typo
12984
12985	[pow.c] tuned starting precision (and removed obsolete comment)
12986
12987	use MPFR_INT_CEIL_LOG2
12988
12989	modified the semantics of mpfr_can_round for rnd2=RNDF
12990
129912016-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
12992
12993	[mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow
12994
12995	[pow.c] reduced overhead of special cases (gives speedup of a factor of two
12996		for 53 bits of precision)
12997
129982016-12-06  Vincent Lefèvre  <vincent@vinc17.net>
12999
13000	Merged the latest changes from the trunk except those related to
13001	mpfr_zeta (it is buggy and not fixed yet in the trunk, but the bug
13002	will not be triggered here, allowing the tests to pass).
13003
130042016-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13005
13006	added mpfr_pow
13007
130082016-12-06  Vincent Lefèvre  <vincent@vinc17.net>
13009
13010	[tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat:
13011	"set -e; f() { false && true; }; f; echo OK" no longer prints OK).
13012
130132016-11-29  Vincent Lefèvre  <vincent@vinc17.net>
13014
13015	Check that the numberof() macro is used on an array.
13016	  * src/mpfr-gmp.h: define numberof_const() macro, equivalent to the
13017	    old numberof() macro: no check, but constant expression; improved
13018	    the numberof() macro to check that it is used on an array (since
13019	    an array can silently be converted to a pointer in C). Note that
13020	    potential failures are currently reported at run time.
13021	  * src/mulders.c: replaced numberof by numberof_const in #define's
13022	    (also removed a useless cast at the same time).
13023
130242016-11-17  Vincent Lefèvre  <vincent@vinc17.net>
13025
13026	[src/set_ld.c,tests/tset_ld.c] Updated comments, in particular
13027	concerning LDBL_MAX.
13028
130292016-11-15  Vincent Lefèvre  <vincent@vinc17.net>
13030
13031	[tests/tset_ld.c] Added an overflow test that triggers a bug for
13032	double-double (IBM long double format). See:
13033	  https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html
13034
13035	[src/get_ld.c] Fixed bugs for double-double (IBM long double format):
13036	  * one from r8650, which could yield a spurious assertion failure
13037	    in debug mode in case of underflow (with result 0);
13038	  * one from r8972, which used the variable sign uninitialized and
13039	    could yield a result with an incorrect sign.
13040
13041	[tests/tset_ld.c] Added a missing exit(1).
13042
13043	[tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in
13044	the tests, meaning that some tests were no longer done. So, get rid of
13045	_GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO)
13046	or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context
13047	(they were already used alone at some other places, so that new failures
13048	are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test.
13049	Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS.
13050
13051	[src/get_ld.c] For double-double (IBM long double format): test other
13052	special values, as this may be useful.
13053
13054	[src/get_ld.c] For double-double (IBM long double format), the code
13055	was incorrect on large finite values, which are infinite as a double:
13056	(+inf) + (-inf) was computed, which is NaN (thanks to Rob for the
13057	report). Fixed this bug, with code clean up (not tested).
13058
130592016-11-10  Vincent Lefèvre  <vincent@vinc17.net>
13060
13061	[INSTALL] Added a note about MinGW and libtool error "libobj name ...
13062	may not contain shell special characters.", with a solution.
13063
130642016-11-09  Vincent Lefèvre  <vincent@vinc17.net>
13065
13066	[doc/sum.txt] Final corrections.
13067
13068	[doc/sum.txt] Another correction due to the rewrite for reuse support.
13069
13070	[doc/sum.txt] Correction.
13071
130722016-11-08  Vincent Lefèvre  <vincent@vinc17.net>
13073
13074	[src/sum.c] Added a short explanation for halfway cases.
13075
13076	[doc/sum.txt] Improved an example (from my ARITH-23 slides).
13077
13078	[doc/sum.txt] English usage.
13079
130802016-11-07  Vincent Lefèvre  <vincent@vinc17.net>
13081
13082	[doc/sum.txt] Explained the handling of halfway cases for sq = 1
13083	(since the explanations for sq ≥ 2 are not valid for sq = 1).
13084
13085	[doc/sum.txt] Minor update.
13086
13087	[doc/sum.txt] Last corrections. Concerning the setting of the sign of
13088	the result, this changed with the support for precision 1 (see r10068).
13089
13090	[doc/sum.txt] Correction (English).
13091
13092	[doc/sum.txt] Correction about neg / sgn.
13093
13094	[doc/sum.txt] Added details about the handling of halfway cases, as
13095	the rule is not obvious due to two's complement representation.
13096
130972016-11-06  Vincent Lefèvre  <vincent@vinc17.net>
13098
13099	[src/sum.c] Cosmetic change for consistency between lbit and rbit.
13100
13101	[doc/sum.txt] Minor update.
13102
131032016-11-04  Vincent Lefèvre  <vincent@vinc17.net>
13104
13105	[doc/sum.txt] A bit more explanations.
13106
13107	[doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-):
13108	  * If it is a minus sign, use U+2212 MINUS SIGN (as already done).
13109	  * Do not use "-" after the "non" and "pre" prefixes.
13110
13111	[doc/sum.txt] Minor improvement.
13112
131132016-10-27  Vincent Lefèvre  <vincent@vinc17.net>
13114
13115	[tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability.
13116
13117	[doc/sum.txt] Added a note.
13118
13119	[doc/sum.txt] Update for the current code (support of reused arguments);
13120	some other improvements.
13121
13122	[doc/sum.txt] Corrected 2 typos.
13123
13124	[src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more
13125	efficient: as of r10464 (support for reused arguments), the memory
13126	used by the accumulator for the TMD resolution is no longer a part
13127	of the main accumulator, so that we now know that the memory blocks
13128	do not overlap.
13129
131302016-10-26  Vincent Lefèvre  <vincent@vinc17.net>
13131
13132	[src/sum.c] Corrected a comment from r10503.
13133
13134	[src/sum.c] Moved/rewrote a comment (should have been done in r10467).
13135
131362016-10-25  Vincent Lefèvre  <vincent@vinc17.net>
13137
13138	[doc/sum.txt] Started the update for the code supporting reuse.
13139
13140	[src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report).
13141
131422016-10-24  Vincent Lefèvre  <vincent@vinc17.net>
13143
13144	[src/mpfr-impl.h] Improved a macro from r10916 (just in case...).
13145
13146	[src] Support build as thread-safe DLL on Windows: clean-up.
13147	  * Increased the use of macros to avoid some code duplication
13148	    (with risks of typos) and to prevent the problems related
13149	    to thread-safe DLL from appearing in the .c files.
13150	  * The prototypes of the functions to access the address of a
13151	    TLS variable are now defined. Otherwise one gets warnings:
13152	    https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html
13153
131542016-10-20  Vincent Lefèvre  <vincent@vinc17.net>
13155
13156	[doc/sum.txt] Minor correction and improvement (English).
13157
13158	[doc/sum.txt] "a" → "an" before "additional iteration".
13159
131602016-10-18  Vincent Lefèvre  <vincent@vinc17.net>
13161
13162	[src/mpfr-gmp.h] Updated a comment about bit-fields.
13163
131642016-10-17  Vincent Lefèvre  <vincent@vinc17.net>
13165
13166	[doc/mpfr.texi] Updated the FIXME concerning the mpfr_can_round
13167	specification with MPFR_RNDF (faithful rounding): after discussion
13168	with PZ, reverted r10909,10910; added a note explaining the choice
13169	done for this specification.
13170
131712016-10-14  Vincent Lefèvre  <vincent@vinc17.net>
13172
13173	[doc/mpfr.texi] Another correction of the FIXME concerning the
13174	mpfr_can_round specification with MPFR_RNDF (faithful rounding).
13175
13176	[doc/mpfr.texi] Corrected FIXME concerning the mpfr_can_round
13177	specification with MPFR_RNDF (faithful rounding).
13178
131792016-09-27  Vincent Lefèvre  <vincent@vinc17.net>
13180
13181	[src]
13182	  * mpfr-impl.h: document the memory allocated for a significand;
13183	    added a cast to avoid a direct conversion from mp_limb_t * to
13184	    mp_size_t *.
13185	  * init2.c, round_prec.c, set_prec.c: code clean-up by correcting
13186	    the type expected for the second argument of MPFR_SET_MANT_PTR
13187	    (this macro has a cast, so that this should not change anything,
13188	    but the old type mpfr_limb_ptr was meaningless and confusing).
13189
131902016-09-23  Vincent Lefèvre  <vincent@vinc17.net>
13191
13192	[examples/version.c] For MPFR >= 4, output float128 support info.
13193
13194	[examples/version.c] A bit more output.
13195
13196	[examples/version.c]
13197	  * Really support C++ compilers (tested with g++ 6.2.0).
13198	  * Output information about the C implementation.
13199	  * Detect MPIR (→ output information on MPIR instead of GMP).
13200
13201	[examples/version.c]
13202	  * Code simplification: support for MPFR versions less than 3.0 had
13203	    already been dropped with the use of MPFR_RNDN.
13204	  * For MPFR patches, output "[none]" when there are no patches.
13205	  * Output mpfr_ptr size.
13206
132072016-09-21  Vincent Lefèvre  <vincent@vinc17.net>
13208
13209	[src/sin_cos.c] Avoid the reuse of variables for two completely
13210	different things (with different orders of magnitude)! Changed types.
13211
13212	[src/exp3.c] Avoid the reuse of variables for two completely different
13213	things (with different orders of magnitude)! Added a cast to avoid a
13214	potential integer overflow (like in r10881).
13215
13216	[src/atan.c] Avoid the reuse of variables for two completely different
13217	things (with different orders of magnitude)! Changed types.
13218
13219	[src/{atan.c,sin_cos.c}] Added casts to avoid potential integer
13220	overflows. Possible issue reported by David Binderman:
13221	  https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html
13222	Note: From tests I've done on mpfr_atan, there would be issues with
13223	16-bit int, but for 32-bit int, one could need several hundreds of
13224	billions of bits for the target precision.
13225
13226	[doc/README.dev] "To make a release": updated paragraph about warnings.
13227
13228	[src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer
13229	in a boolean context (even though that this is not wrong in C). Fix
13230	after a bug report from David Binderman. Explanations:
13231	  https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html
13232
132332016-09-16  Vincent Lefèvre  <vincent@vinc17.net>
13234
13235	[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
13236	paragraph on the sin(...) term of the reflection formula.
13237
13238	[doc/algorithms.tex] More work on the Riemann Zeta function.
13239
132402016-09-15  Vincent Lefèvre  <vincent@vinc17.net>
13241
13242	[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
13243	paragraph briefly describing how the precisions of the variables
13244	will be chosen (this is much more efficient than the current code
13245	when the target precision is much lower than the input precision).
13246
13247	Some improvements / corrections in the description / proof of the
13248	algorithm for the Riemann Zeta function.
13249	  * doc/algorithms.tex, section on the Riemann Zeta function: the case
13250	    s < 1/2 (reflection formula) is now in a new section, which needs
13251	    to be completed (with the detailed algorithm and error analysis);
13252	    case "s close to 0" added and now properly proved.
13253	  * src/zeta.c: update of the comment for s close to 0 (the brief
13254	    explanations were wrong for precision 1, and this was apparently
13255	    not checked when we allowed this precision!), adding a reference
13256	    to algorithms.tex for details.
13257
132582016-09-14  Vincent Lefèvre  <vincent@vinc17.net>
13259
13260	[tools/mpfrlint] In "[[…]]" conditional expressions, replaced "="
13261	by the preferred (and equivalent) form "==".
13262	Discussion: https://www.zsh.org/mla/workers/2016/msg01711.html
13263
13264	[tests/tdiv.c] Improved code readability (related to r10871).
13265
132662016-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13267
13268	[tests/tdiv.c] improved code (found by David Binderman using cppcheck)
13269
132702016-09-14  Vincent Lefèvre  <vincent@vinc17.net>
13271
13272	[tools/announce-text] Use the 64-bit key ID instead of the 32-bit one
13273	since there are known collisions for 32-bit key ID's:
13274	https://evil32.com/
13275
132762016-09-13  Vincent Lefèvre  <vincent@vinc17.net>
13277
13278	[src/zeta.c] Added a FIXME: bug in the error computation due to the
13279	  use of the native double C type, which can yield an overflow.
13280	[tests/tzeta.c] Added a corresponding test case, which gives an
13281	  assertion failure.
13282
13283	[src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);"
13284	to get an assertion failure on infinities (which do not have an
13285	exponent).
13286
13287	[src/uceil_log2.c] Code style.
13288
13289	[src/ufloor_log2.c] Code style.
13290
13291	[src/zeta.c] Make explicit that we need to use lngamma.
13292
13293	[src/zeta.c] Updated comments on overflows / underflows.
13294
13295	[src/zeta.c] About internal underflows / cancellation:
13296	  * Added comments to FIXME's.
13297	  * Detect a potential integer overflow with MPFR_ASSERTN.
13298
132992016-09-12  Vincent Lefèvre  <vincent@vinc17.net>
13300
13301	[tests/tset_ld.c] Moved a comment.
13302
13303	[tests/tset_ld.c] Fixed print_binary (and no longer any failure with
13304	gcc -mpc64 on x86).
13305
13306	[tests/tset_ld.c] Corrected note in print_binary.
13307
13308	[tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing
13309	the wrong code).
13310
13311	[tests/tset_ld.c] Fixed print_binary.
13312
13313	[tests/tset_ld.c] Added a FIXME in print_binary, which can yield an
13314	incorrect output and return a wrong precision (causing the failure).
13315
13316	[tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64
13317	on x86 (64-bit ABI).
13318
13319	[tests/tset_ld.c] Added some tests in case the rounding precision is
13320	smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86).
13321
13322	[tests/tset_ld.c] In print_binary, added an assertion that may fail
13323	with flush-to-zero on underflow (avoiding an infinite loop).
13324
13325	[tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old
13326	condition was based on the fact that the rounding depended only on the
13327	exact result, which may not be the case when rounding is not completely
13328	specified, e.g. with double-double arithmetic like on PowerPC).
13329
13330	[tests/tset_ld.c] Replaced a condition by a simpler, equivalent one.
13331
133322016-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13333
13334	[tests/tset_ld.c] added note
13335
133362016-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13337
13338	[tests/tset_ld.c] get rid of C99-only stuff
13339
133402016-09-09  Vincent Lefèvre  <vincent@vinc17.net>
13341
13342	[tests/tset_ld.c] Removed a variable that is no longer used.
13343
13344	[tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only.
13345
133462016-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13347
13348	[tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl
13349
13350	[tests/tset_ld.c] added warning
13351
13352	[tests/tset_ld.c] fixed print_binary() for when the rounding precision is less
13353			  than the precision of long double
13354
133552016-09-09  Vincent Lefèvre  <vincent@vinc17.net>
13356
13357	[src/get_ld.c] Replaced FIXME by an explanation of the current behavior.
13358	[tests/tset_ld.c] Added a FIXME as a consequence.
13359
13360	[doc/README.dev] Update about NetBSD.
13361
133622016-09-08  Vincent Lefèvre  <vincent@vinc17.net>
13363
13364	[src/sqrt.c] Corrected a spelling mistake.
13365
13366	[src/get_ld.c] Updated FIXME (mention subnormals).
13367
13368	[src/get_ld.c] Updated FIXME (this is NetBSD 5.1).
13369
13370	[src/get_ld.c] Added a FIXME, in particular for NetBSD.
13371
13372	[tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to
13373	excess precision in LDBL_MAX (we do not run the test in this case).
13374
133752016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13376
13377	[src/sqrt.c] fixed bug in mpfr_sqrt2
13378	[tests/tsqrt.c] added non-regression test
13379
133802016-09-08  Vincent Lefèvre  <vincent@vinc17.net>
13381
13382	[tests/tset_ld.c] The print_binary function is freezing on a NetBSD
13383	machine; let's start with some improvements (assertions...).
13384
13385	[tests/tabs.c] Removed mpfr_test_init (not needed here).
13386
13387	[tests/tset_ld.c] Moved mpfr_test_init at the right place (like
13388	tget_d.c, tset_d.c, etc.).
13389
133902016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13391
13392	[src/sqrt.c] divsp1 -> div_1
13393
133942016-09-08  Vincent Lefèvre  <vincent@vinc17.net>
13395
13396	[tests/tset_ld.c] Fixed a loop in case an extended range is used
13397	(there are issues on a NetBSD machine, and this could be a cause).
13398
13399	[tests/tset_ld.c] Corrected a type (due to a printf with %ld).
13400
134012016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13402
13403	[src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision)
13404
13405	[src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not
13406		    necessarily the same)
13407
134082016-09-08  Vincent Lefèvre  <vincent@vinc17.net>
13409
13410	[src/{get_d,get_ld}.c] Use MPFR_ALIAS.
13411
134122016-09-07  Vincent Lefèvre  <vincent@vinc17.net>
13413
13414	[src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value
13415	is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values
13416	appear as expected.
13417	Note: The code for x86 extended precision first appeared in r3226 with
13418	the usual emin and emax values, as found in the IEEE 754-1985 standard
13419	(bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But
13420	MPFR uses a different convention, with a significand between 1/2 and 1
13421	instead of between 1 and 2, so that these values were off by 1. The
13422	emax one was fixed in r6101, but the error on emin remained undetected.
13423
13424	[tests/tset_ld.c] The bug_20160907 test is valid only with
13425	HAVE_LDOUBLE_IEEE_EXT_LITTLE.
13426
13427	[src/zeta.c] Updated FIXME: also suggest a scaling.
13428
134292016-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13430
13431	[tests/tset_ld.c] check more numbers in bug_20160907()
13432
13433	[src/get_ld.c] fixed bug reported by Walter Mascarenhas
13434
13435	[tests/tset_ld.c] added test that triggers bug in mpfr_get_ld
13436			  (https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html)
13437
134382016-09-07  Vincent Lefèvre  <vincent@vinc17.net>
13439
13440	[src/zeta.c] Updated FIXME with a suggestion.
13441
13442	[src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply
13443	  that Zeta(s) will overflow.
13444	[tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI.
13445
13446	[doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address),
13447	mention that LD_PRELOAD needs to be unset (or -static-libasan needs to
13448	be used, but does not work yet).
13449
134502016-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13451
13452	[doc/algorithms.tex] l -> \ell
13453
13454	[doc/algorithms.tex] du -> {\mathrm d}u
13455
13456	[src/log_ui.c] added FIXME
13457
134582016-09-06  Vincent Lefèvre  <vincent@vinc17.net>
13459
13460	[src/sqrt.c] Avoid a warning due to an unused variable with
13461	GMP_NUMB_BITS == 32.
13462
13463	[acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with
13464	recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1,
13465	which has just appeared in unstable).
13466
13467	[src/zeta.c] Updated FIXME.
13468
134692016-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13470
13471	[src/zeta.c] added FIXME
13472
13473	[src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now)
13474
134752016-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13476
13477	move macros from div.c to mpfr-gmp.h
13478
134792016-09-05  Vincent Lefèvre  <vincent@vinc17.net>
13480
13481	About the tzeta timing issue (since r9848):
13482	  * TODO: updated item on tzeta.
13483	  * tests/tzeta.c: updated FIXME for test_generic.
13484
13485	[TODO] Updated item on tzeta:
13486	  * removed the old problem: the fact that the traces for the trunk and
13487	    for r9954 are different is normal (fixes in mpfr_can_round affecting
13488	    tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem
13489	    equivalent in average with "test_generic (..., 5);" in both cases;
13490	  * added the fact that tzeta has been much slower since r9848, at least
13491	    with the x86 32-bit ABI.
13492
134932016-09-02  Vincent Lefèvre  <vincent@vinc17.net>
13494
13495	[src/round_prec.c] Added some details in a comment for rnd2 = RNDF.
13496
13497	[doc/mpfr.texi] Added a FIXME on the mpfr_can_round description in order
13498	to match what I intended to say in my comment in round_prec.c (perhaps
13499	not detailed enough).
13500
135012016-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13502
13503	[src/round_prec.c] updated specification of mpfr_can_round with rnd2 = RNDF
13504	[tests/tpow.c] one test makes no sense for RNDF
13505
135062016-09-02  Vincent Lefèvre  <vincent@vinc17.net>
13507
13508	[doc/mpfr.texi] Completed mpfr_can_round description with RNDF.
13509
135102016-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13511
13512	[src/get_str.c] map RNDF to RNDN in mpfr_get_str
13513
13514	[tests/tconst_euler.c] fixed with new specification of mpfr_can_round for RNDF
13515
13516	[doc/mpfr.texi] put back stuff removed by accident in last commit
13517
13518	[doc/mpfr.texi] defined the bahaviour of mpfr_can_round for rnd2 = RNDF
13519			(suggestion from Vincent)
13520
135212016-09-02  Vincent Lefèvre  <vincent@vinc17.net>
13522
13523	[src/round_prec.c] Forbid rnd2 = MPFR_RNDF as it does not make much
13524	  sense without additional specification (and explained why).
13525	[tests/{tcan_round.c,tgeneric.c}] Added MPFR_RNDF support with the
13526	  above restriction.
13527	Note: 6 tests are failing as a consequence.
13528
13529	[src/round_prec.c] FIXME: rnd2 == MPFR_RNDF is not supported yet.
13530
135312016-09-02  Vincent Lefèvre  <vincent@vinc17.net>
13532
13533	Merged the remaining changesets (concerning src/{add1sp.c,sub1sp.c})
13534	from the trunk, and fixed the code: The old mpfr_add1sp2 function
13535	was renamed to mpfr_add1sp_ref in the trunk and a new mpfr_add1sp2
13536	function (with a different purpose) was defined; so, in
13537
13538	  if (rnd_mode == MPFR_RNDF)
13539	    return mpfr_add1sp2 (a, b, c, rnd_mode);
13540
13541	mpfr_add1sp2 had to be changed to mpfr_sub1sp_ref.
13542	Ditto for mpfr_sub1sp2 and mpfr_sub1sp_ref.
13543
135442016-09-02  Vincent Lefèvre  <vincent@vinc17.net>
13545
13546	Merged r10698 from the trunk (it was skipped by mistake in r10776).
13547
13548	Merged the following changesets from the trunk:
13549	  r10664-10686,10689-10690,10692,10695-10696,10699-10775
13550	i.e. all the latest changes except for src/{add1sp.c,sub1sp.c}
13551	to avoid build failures (to be solved later).
13552	Currently only tcan_round fails, due to MPFR_RNDF.
13553
13554	Removed trailing whitespace.
13555
135562016-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13557
13558	[src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost
13559		     a factor of two:
13560
13561	bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz)
13562	numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt
13563
13564	3.1.4:
13565	 mpfr_sqrt:        234 /   243.72 /   258
13566
13567	4.0-dev:
13568	 mpfr_sqrt:        122 /   127.63 /   136
13569
135702016-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13571
13572	[src/div.c] fixed error triggered by previous commit
13573
13574	[src/div.c] added missing assertion
13575	[tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine)
13576
13577	[src/div.c] fixed bug found by Vincent
13578
135792016-08-31  Vincent Lefèvre  <vincent@vinc17.net>
13580
13581	[tests/tdiv.c] Added a test triggering an assertion failure with
13582	"--enable-assert --enable-gmp-internals".
13583
135842016-08-30  Vincent Lefèvre  <vincent@vinc17.net>
13585
13586	[tools/mpfrlint] Update.
13587
13588	[src/div.c] Untabified. Clarified a comment.
13589
135902016-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13591
13592	[src/sqrt.c] document mpn_sqrtrem2()
13593
13594	[src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined
13595
13596	[src/div.c] faster code for 2 limbs
13597	[tests/tdiv.c] added special test for 2 limbs
13598
135992016-08-30  Vincent Lefèvre  <vincent@vinc17.net>
13600
13601	[tests] Define global variable tests_memory_disabled, which needs to
13602	be set when the memory.c allocators (to track memory leaks) must not
13603	be used; i.e., setting it disables the calls to tests_memory_start()
13604	and tests_memory_end(). In tests.c, it is initialized to 0 (unset),
13605	except when mini-gmp is used (same behavior as before this commit).
13606	Programs that test GMP's mp_set_memory_functions() need to set this
13607	variable before calling tests_start_mpfr().
13608
136092016-08-29  Vincent Lefèvre  <vincent@vinc17.net>
13610
13611	Added tests/talloc-cache.c (not run by "make check") testing multiple
13612	calls to mp_set_memory_functions. It yields a crash in the MPFR trunk,
13613	which is unexpected with the current code. However, in the 3.1 branch,
13614	r9467 fixed the crash as expected.
13615
136162016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13617
13618	[src/sqrt.c] added Sage code used to generate the bipartite tables
13619
136202016-08-29  Vincent Lefèvre  <vincent@vinc17.net>
13621
13622	[tests/talloc.c] Added a warning about new tests.
13623
136242016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13625
13626	[src/atan.c] fixed TODOs, and simplified code
13627
136282016-08-29  Vincent Lefèvre  <vincent@vinc17.net>
13629
13630	[doc/mpfr.texi] Added a FIXME comment about memory allocation.
13631
13632	[doc/mpfr.texi] Updated the month.
13633
13634	[TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw().
13635
136362016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13637
13638	unified is_power_of_two() and mpfr_powerof2_raw()
13639
13640	[doc/mpfr.texi] improved documentation of mpfr_free_cache()
13641
136422016-08-28  Vincent Lefèvre  <vincent@vinc17.net>
13643
13644	[tests/tcan_round.c] Improved a test now that mpfr_can_round is exact.
13645
13646	[src/mpfr-gmp.h] Added a warning about r10749.
13647
136482016-08-27  Vincent Lefèvre  <vincent@vinc17.net>
13649
13650	[src/round_prec.c] Various corrections/improvements:
13651	  * Unified the return, making sure that temporary memory is no longer
13652	    used after MPFR_TMP_FREE(marker), which was not the case in some
13653	    places.
13654	  * C90 compatibility.
13655	  * Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...).
13656
13657	[TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()?
13658
13659	[src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by
13660	  a more efficient solution based on mpfr_powerof2_raw().
13661	[src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro.
13662
136632016-08-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13664
13665	[src/mpfr-gmp.h] added comment about GMP memory allocation functions
13666
136672016-08-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13668
13669	[src/round_p.c] since mpfr_can_round is now always correct, we cannot compare
13670			it blindly to mpfr_round_p any more
13671
136722016-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13673
13674	[src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass
13675
136762016-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13677
13678	[tests/tcan_round.c] more information in case of error in check_can_round()
13679
136802016-08-22  Vincent Lefèvre  <vincent@vinc17.net>
13681
13682	[tools/mbench/mfv5.cc] Fixed code (C++11 compatibility).
13683
13684	[tests/tcan_round.c] Added a comprehensive test of mpfr_can_round,
13685	based on a naive implementation.
13686	Note: if the exit() is removed, many cases are failing, for both kinds
13687	of answers (there might also remain an error in my test...).
13688
136892016-08-19  Vincent Lefèvre  <vincent@vinc17.net>
13690
13691	[TODO] More thoughts about mpz_t caching (mpz_t pool).
13692
13693	[TODO] Issues with mpz_t caching.
13694
13695	[TODO] Update about mpz_t caching (mpz_t pool).
13696
13697	[src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could
13698	check that without "mpz_t cache" (pool), this makes the code faster.
13699
13700	[doc/README.dev] Added a note about memory reallocations; recommend
13701	mpz_init2 with the estimated maximum size instead of mpz_init.
13702
13703	[tests/tests.c] Updated the error message on incorrect MPFR version.
13704
13705	[INSTALL] Added note on Solaris and the LD_OPTIONS environment variable.
13706
137072016-08-11  Vincent Lefèvre  <vincent@vinc17.net>
13708
13709	[tools/coverage] Added a warning: on a machine shared with other users,
13710	by running this script, the account can easily be compromised due to a
13711	libtool bug.
13712
137132016-08-06  Vincent Lefèvre  <vincent@vinc17.net>
13714
13715	[src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for
13716	compatibility with MSVC (and documented this requirement).
13717	Thanks to Brian Gladman for the information.
13718
137192016-08-04  Vincent Lefèvre  <vincent@vinc17.net>
13720
13721	[doc/README.dev] Added a note about the C++11 compatibility issue
13722	with a string literal immediately followed by a macro name.
13723
13724	Fixed remaining macros with missing "do" … "while (0)", detected with
13725	mpfrlint. There were no consequences except spurious null statements.
13726
13727	[tools/mpfrlint] Added a comment.
13728
13729	[tools/mpfrlint] Added a test detecting (unsafe) macros of the form:
13730	  #define FOO { ... }
13731	The following form is preferred in most of the cases to avoid spurious
13732	null statements:
13733	  #define FOO do { ... } while (0)
13734
13735	[tests/tsi_op.c] Fixed a macro. There were no consequences except
13736	spurious null statements.
13737
13738	[tests/tset_{si,sj}.c] Style improvements. Added a comment.
13739
13740	[tests/tset_{si,sj}.c] Fixed macros. There were no consequences except
13741	spurious null statements.
13742
13743	[tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later.
13744	Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14
13745	instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>.
13746	So, this fixes the failures in the build of the MPFR tests with g++
13747	from GCC 6 without particular options.
13748
137492016-08-03  Vincent Lefèvre  <vincent@vinc17.net>
13750
13751	[src/round_prec.c] mpfr_can_round_raw: added another FIXME.
13752
13753	[src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected
13754	a condition in a comment, and added comments, showing a new bug.
13755
137562016-08-02  Vincent Lefèvre  <vincent@vinc17.net>
13757
13758	[tests/tmul.c] Various corrections and improvements in test_underflow.
13759
13760	[src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done
13761	in mpfr.texi r8548).
13762
13763	[src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions.
13764
137652016-08-01  Vincent Lefèvre  <vincent@vinc17.net>
13766
13767	[tests/tversion.c] Correction in the info about the C implementation.
13768
13769	[tests/tversion.c] Corrections in the info about the C implementation.
13770
13771	[src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb
13772	precisions), related to the right shift of a negative value. Added
13773	a warning and a TODO about such an operation.
13774
13775	[src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which
13776	depends on implementation-defined features of the C standard) only
13777	when __GNUC__ is defined, as it is known to be correct with GCC and
13778	compatible compilers, but nothing is known yet for other compilers.
13779	Removed the corresponding FIXME and added a note. In the future, a
13780	configure test could be used as an alternative solution.
13781
13782	[tests/tversion.c] Output more information about the C implementation.
13783
137842016-07-31  Vincent Lefèvre  <vincent@vinc17.net>
13785
13786	[src/sqrt.c] Fixed some portability issues.
13787
13788	[src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures
13789	with mingw-w64).
13790
13791	[src/lngamma.c] Fix in case mp_limb_t is more than twice as large
13792	  as unsigned long (that would make it at least 128 bits).
13793	[src/cos.c] Made code similar to the rest of the code.
13794
13795	[src/div_ui.c] Improved a comment (to make it closer to what correct
13796	C code should be), avoiding a false positive with mpfrlint.
13797
13798	[tools/mpfrlint] Detect possibly wrong code with some C/GMP
13799	implementations, related to shifts and integer types.
13800
13801	[src/sqrt.c] Completed the FIXME (another portability issue).
13802
13803	[src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS
13804	is not portable.
13805
13806	[src/sqrt.c] Fixed code for implementations with 16-bit int's.
13807
13808	[tests/tsqrt.c] Fixed output bug in a test.
13809
138102016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13811
13812	[src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul
13813
13814	3.1.5-dev:
13815	 mpfr_mul:          45 /    61.60 /    84
13816
13817	4.0-dev:
13818	 mpfr_mul:          30 /    32.15 /    36
13819
13820	[NEWS] mention that speedup
13821
138222016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13823
13824	[src/sub1sp.c] fixed bug in mpfr_sub1sp2
13825
13826	[src/mul.c] removed useless code
13827
13828	[src/mul.c] code simplification
13829
13830	[src/sub1sp.c] another code simplification
13831
13832	[src/sub1sp.c] code simplification
13833
13834	[NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs
13835
138362016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13837
13838	[src/sub1sp.c] faster code for 2 limbs. Results with mbench
13839	(numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub):
13840
13841	3.1.5-dev:
13842	 mpfr_sub:          36 /    65.33 /    81
13843
13844	4.0-dev:
13845	 mpfr_sub:          24 /    33.00 /    36
13846
138472016-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13848
13849	[tests/tmul.c] fixed wrong test
13850
138512016-07-28  Vincent Lefèvre  <vincent@vinc17.net>
13852
13853	[tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random
13854	number of trailing bits. This allows one to test code specific to 1 or
13855	2 limbs.
13856
138572016-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13858
13859	[src/add1sp.c] fixed issues found with --enable-assert=full
13860
138612016-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13862
13863	[src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1]
13864
138652016-07-27  Vincent Lefèvre  <vincent@vinc17.net>
13866
13867	[src/round_prec.c] Various minor improvements:
13868	  * Added a MPFR_ASSERTN since mpfr_can_round is a function in the API.
13869	  * Changed error variables to be more consistent with the context.
13870	  * Removed unnecessary code (casts...) about the error: it came from
13871	    round.c r1574, where types were different at that time.
13872	  * Made err2 (the old err) local to a small block to make sure that it
13873	    will not be used by mistake instead of err in future changes.
13874	  * Made equivalent expressions appear under the same form:
13875	      (rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec
13876
13877	[src/round_prec.c] Changed precision variables to be like SSA.
13878
13879	[src/round_prec.c] Simplified code, making it more similar to code
13880	that has just been fixed.
13881
13882	[src/round_prec.c] Removed useless parentheses.
13883
13884	[src/round_prec.c] Added an assertion for "default:".
13885
13886	[tests/tcan_round.c] In test_simple, output p (which is variable),
13887	not prec (which is always 4).
13888
138892016-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13890
13891	[src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2
13892			   and err > prec + 1 (was returning 0 instead of 1)
13893
138942016-07-27  Vincent Lefèvre  <vincent@vinc17.net>
13895
13896	[tests/tcan_round.c] Added a simple test that fails as a consequence of
13897	r9883 (this could be observed on tzeta before r10678 in tgeneric.c).
13898
13899	[tests/tgeneric.c] Improvement: When the result is exact, it can always
13900	be rounded (while mpfr_can_round can fail).
13901
13902	[TODO] Updated item about tzeta.
13903
139042016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13905
13906	[INSTALL] update (feedback from Bill Hart)
13907
139082016-07-26  Vincent Lefèvre  <vincent@vinc17.net>
13909
13910	[src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
13911
139122016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13913
13914	[mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1)
13915
13916	[src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb
13917
139182016-07-26  Vincent Lefèvre  <vincent@vinc17.net>
13919
13920	[tests/tzeta.c] Added a FIXME so that r10667 can be reverted.
13921
13922	[TODO] Updated item about tzeta.
13923
13924	[TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta.
13925
13926	New MPFR_GENERIC_ABI macro to test the generic code, not tied to a
13927	particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a
13928	chance to be tested on current machines.
13929	  * doc/README.dev: added brief documentation.
13930	  * src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions,
13931	    currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI
13932	    is not defined.
13933
13934	[src/sqrt.c]
13935	  * Changed mp_ptr to mpfr_limb_ptr.
13936	  * Untabified and removed trailing spaces.
13937
139382016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13939
13940	[tests/tzeta.c] reduced test time
13941
13942	[src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32
13943
139442016-07-25  Vincent Lefèvre  <vincent@vinc17.net>
13945
13946	[INSTALL] Corrected hint for mingw (use --build instead of --host).
13947
139482016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13949
13950	[INSTALL] added hint for mingw
13951
139522016-07-25  Vincent Lefèvre  <vincent@vinc17.net>
13953
13954	Merged the latest changes from the trunk.
13955
139562016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13957
13958	[src/sqrt.c] fixed temporary patch for 32-bit computers
13959
139602016-07-25  Vincent Lefèvre  <vincent@vinc17.net>
13961
13962	[src/sqrt.c] Typo in comment.
13963
13964	[src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs.
13965
139662016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
13967
13968	[src/sqrt.c] temporary fix for 32-bit limbs
13969
139702016-07-22  Vincent Lefèvre  <vincent@vinc17.net>
13971
13972	Merged r10657 from the trunk, resolving the conflict (same code as
13973	in the trunk, except RND_RAND changed to RND_RAND_NO_RNDF).
13974
13975	[tests/tadd.c] Improved coding style and messages (do not mix up
13976	"inexact flag" and "ternary value"!).
13977
13978	[tests] Define the RND_RAND_NO_RNDF and RND_LOOP_NO_RNDF macros, similar
13979	to RND_RAND and RND_LOOP respectively but excluding MPFR_RNDF, to be
13980	used for tests that don't make sense in the faithful rounding mode.
13981	Replaced code to use these macros, fixing the remaining failures.
13982
13983	Merged r10599 through r10628 from the trunk, resolving the conflict
13984	in tests/tmul.c (i.e. keep code from both the branch and the trunk,
13985	corresponding to two independent tests). Some of the later changes
13986	in the trunk (src/sqrt.c) are broken with a 32-bit ABI, so let's not
13987	merge them for now.
13988
13989	Merged r10598 from the trunk, resolving the conflict (this consists
13990	in changing MPFR_PREC to MPFR_GET_PREC).
13991
13992	Merged r10573 through r10597 from the trunk (no conflicts).
13993
13994	Merged r10572 from the trunk, resolving the conflict.
13995
13996	Merged r10571 from the trunk, resolving the conflict.
13997
13998	Merged r10566 through r10570 from the trunk, resolving the conflict.
13999
14000	Merged r10556 through r10564 from the trunk (no conflicts).
14001
14002	Merged r10555 from the trunk, resolving the conflict.
14003
14004	Merged r10529 through r10554 from the trunk (no conflicts).
14005
14006	Merged r10528 from the trunk, resolving the conflict.
14007
14008	Merged r10520 through r10527 from the trunk (no conflicts).
14009
14010	[src/add1sp.c] The reverse-merge done in r10633 was incorrect. Fixed.
14011
14012	[src/add1sp.c] Also reverse-merged r10522 (together with related
14013	whitespace change from r10514), which had nothing to do with the
14014	faithful rounding. Improvements for 1 limb will be obtained when
14015	merging the trunk into the faithful branch.
14016
14017	[src/sqrt.c] Added another FIXME comment for 32-bit machines.
14018
14019	[src/sqrt.c] Added other FIXME comments for 32-bit machines.
14020
140212016-07-20  Vincent Lefèvre  <vincent@vinc17.net>
14022
14023	[src/sqrt.c] Added FIXME comments for 32-bit machines.
14024
14025	[src/sqrt.c] C90 compatibility.
14026
14027	[src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint.
14028
14029	[tools/mpfrlint]
14030	  * Added --msg option to err-if-output function to optionally output
14031	    a message explaining what to do in case of error.
14032	  * Added this option to 3 err-if-output calls (errors with src/sqrt.c
14033	    r10636).
14034
140352016-07-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14036
14037	[src/sqrt.c] new speedup for 1/2 and 1 limb
14038
140392016-07-20  Vincent Lefèvre  <vincent@vinc17.net>
14040
14041	[doc/mpfr.texi] Improved a sentence.
14042
140432016-07-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14044
14045	[faithful] reverse-merge r10524 (had nothing to do with the faithful branch)
14046
14047	[faithful] reverse-merge parts of r10514 independent of the faithful branch
14048
140492016-07-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14050
14051	[NEWS] mention speedup in mpfr_sqrt
14052
14053	[src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles
14054	for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of
14055	165 with 3.1.4)
14056
140572016-07-19  Vincent Lefèvre  <vincent@vinc17.net>
14058
14059	[tools/mbench] Replaced r10505 by r10565 merged from the trunk.
14060
14061	[doc/mpfr.texi] Improvements in the MPFR_RNDF (faithful rounding) spec.
14062	Added some notes concerning the reproducibility.
14063
140642016-07-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14065
14066	[src/div.c] removed duplicate prototype (cf revision 10625)
14067
14068	[src/div.c] yet another speedup
14069
14070	[src/div.c] small improvement
14071
140722016-07-18  Vincent Lefèvre  <vincent@vinc17.net>
14073
14074	[src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid
14075	an error with g++ for the tests).
14076
140772016-07-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14078
14079	[src/div.c] removed wrong assertions (and added comments to explain why)
14080
140812016-07-15  Vincent Lefèvre  <vincent@vinc17.net>
14082
14083	[src/div.c] Added a FIXME (assertion failure).
14084
14085	[src/div.c] Untabified.
14086
14087	[tools/mpfrlint] Update concerning GMP internals.
14088
140892016-07-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14090
14091	[src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now)
14092
14093	[src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals
14094
140952016-07-14  Vincent Lefèvre  <vincent@vinc17.net>
14096
14097	[src/mpfr-impl.h] Require <float.h> to be included in order to be
14098	  able to use the "long double macros and typedef" part. Moved the
14099	  IEEE_FLOAT128_MANT_DIG macro definition out of this part.
14100	[tests/tcmp_ld.c] Added missing #include <float.h>.
14101
14102	[src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal.
14103
141042016-07-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14105
14106	[src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2)
14107
14108	[src/mul.c] added comment
14109
14110	[src/div.c] new faster code for 1 limb
14111
14112	[src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined
14113	[src/get_ld.c,src/set_ld.c] added comment
14114
141152016-07-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14116
14117	[src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld
14118
14119	[src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency
14120		    any more on long double)
14121
141222016-07-09  Vincent Lefèvre  <vincent@vinc17.net>
14123
14124	[src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64.
14125	Added a comment about __udiv_qrnnd_ld.
14126
14127	[src/mpfr-longlong.h] Typo.
14128
14129	[src/mpfr-longlong.h] C89 compatibility.
14130
141312016-07-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14132
14133	[src/div.c] speedup using __udiv_qrnnd_ld
14134
14135	[src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant
14136
14137	[src/div.c] new special code for 1 limb
14138	[src/mul.c] fixed corner case near underflow
14139
14140	[src/mul.c] fixed detection of rounding away
14141
14142	[src/mul.c] fixed underflow *after* rounding
14143	[tests/tmul.c] fixed a test
14144
14145	[tests/tmul.c] added underflow test for directed rounding too
14146
14147	[tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c)
14148
141492016-07-08  Vincent Lefèvre  <vincent@vinc17.net>
14150
14151	[src/sub1sp.c] Clarified comment (it's better not to mention underflow
14152	before rounding because it is not considered at all in MPFR).
14153
141542016-07-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14155
14156	[src/sub1sp.c] added comment about underflow before/after rounding
14157
14158	[src/mul.c] changed MPFR_PREC into MPFR_GET_PREC
14159
141602016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14161
14162	[src/mul.c] removed a call to MPFR_LIKELY which is unlikely...
14163
141642016-07-07  Vincent Lefèvre  <vincent@vinc17.net>
14165
14166	[NEWS] i.e.e.g.
14167
14168	[src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
14169
14170	[tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are
14171	  no such restrictions on the exponents for mpfr_add1sp.
14172	[src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs
14173	  and EXP(b) < EXP(c).
14174
141752016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14176
14177	[NEWS] speedup in mpfr_mul for one limb (minus 1 bit)
14178
141792016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14180
14181	[src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result).
14182		    Results of mbench for 53 bits on Intel i5-4590:
14183
14184	before:
14185	 mpfr_mul:          33 /    37.12 /    42
14186	after:
14187	 mpfr_mul:          18 /    20.63 /    24
14188
141892016-07-07  Vincent Lefèvre  <vincent@vinc17.net>
14190
14191	[src/add1.c] Corrected a comment as in practice, b and c do not
14192	necessarily have the same sign (when called by mpfr_sub).
14193
141942016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14195
14196	[src/sub1sp.c] added assertions
14197
141982016-07-06  Vincent Lefèvre  <vincent@vinc17.net>
14199
14200	[tests/tadd.c] C++ compatibility.
14201
14202	[tests/tadd1sp.c] Do not use != 0 on predicate function.
14203
142042016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14205
14206	[src/sub1sp.c] removed special code for n = 1, now that we have a special
14207		       function mpfr_sub1sp1
14208
14209	[tests/tadd.c] revert mpfr_add to test_add
14210
14211	[src/add1sp.c] fixed two bugs in mpfr_add1sp1
14212
14213	[tests/tadd1sp.c] added one hard-coded test
14214
14215	[tests/tadd.c] last commit was wrong
14216
14217	improved check_overflow()
14218
142192016-07-06  Vincent Lefèvre  <vincent@vinc17.net>
14220
14221	[src/urandom.c] Fixed uninitialized emin for nbits == 1
14222	(thanks GCC's -Werror=maybe-uninitialized).
14223
142242016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14225
14226	[src/urandom.c] should now be ok for nbits = 1
14227
142282016-07-06  Vincent Lefèvre  <vincent@vinc17.net>
14229
14230	[TODO] Change most mpfr_urandomb to mpfr_urandom in the tests?
14231
14232	[tests/turandom.c] Improved an error message.
14233
14234	[tests/turandom.c] Corrected English usage in error message.
14235
14236	[tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN.
14237
142382016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14239
14240	[src/urandom.c] fixed urandom for a precision of 1 bit
14241
142422016-07-06  Vincent Lefèvre  <vincent@vinc17.net>
14243
14244	[doc/README.dev] About random tests: avoid mpfr_urandomb!!!
14245
14246	[tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb.
14247	This triggers an assertion failure in urandomb.c.
14248
14249	[tests/tadd1sp.c] Reordered variables. Removed a redundant test.
14250
14251	[tests/tadd1sp.c] In check_random, check the flags too.
14252
14253	[tests/tadd1sp.c] Test negative numbers too.
14254
14255	Removed trailing spaces.
14256
142572016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14258
14259	added comment
14260
14261	[src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have
14262		       a special routine mpfr_add1sp1
14263
14264	[mbench/mfv5.cc] added RNDA and fixed typo
14265
142662016-07-06  Vincent Lefèvre  <vincent@vinc17.net>
14267
14268	The rounding mode can now be passed in argument with the -r option
14269	(patch by Patrick Pélissier).
14270
14271	Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1.
14272
142732016-07-05  Vincent Lefèvre  <vincent@vinc17.net>
14274
14275	[tests/tadd.c] Added FIXME comment: there are many tests, but the
14276	ternary value and the flags are not tested!
14277
14278	Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files
14279	where they are defined, thus can be static.
14280
14281	[src/add1sp.c] Removed unused variable.
14282
142832016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14284
14285	[src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5:
14286
14287	 mpfr_add:          30 /    49.30 /    90
14288
14289	now we have:
14290
14291	 mpfr_add:          24 /    28.18 /    30
14292
142932016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14294
14295	[src/sub1sp.c] added comment
14296
142972016-07-05  Vincent Lefèvre  <vincent@vinc17.net>
14298
14299	[src/sub1sp.c] Another improvement (suggested by Paul).
14300
14301	[src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this
14302	is equivalent, and with tcc, the generated code is shorter.
14303
14304	[src/sub1sp.c] No longer depend on the representation of 0.
14305
14306	[src/sub1sp.c] Various improvements in the coding style: readability,
14307	consistency, GNU coding style.
14308
143092016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14310
14311	[README.dev] added documentation about mpfr-gfx
14312
14313	[mbench/mpfr-gfx.c] change of syntax of gnuplot
14314
14315	[src/sub1sp.c] removed dead code, and improved coverage to 100%
14316
143172016-07-05  Vincent Lefèvre  <vincent@vinc17.net>
14318
14319	[src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect
14320	and the real MPFR_SET_EXP is done later, after underflow checking).
14321
14322	[tests/tsub1sp.c] Added missing printf arguments.
14323
143242016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14325
14326	[src/sub1sp.c] fixed some FIXMEs
14327
143282016-07-04  Vincent Lefèvre  <vincent@vinc17.net>
14329
14330	[src/sub1sp.c] Added a FIXME.
14331
14332	[src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC
14333	by declaring a variable as initialized (the code is correct,
14334	GCC isn't just smart enough).
14335
14336	Removed trailing spaces.
14337
14338	Added tools/ck-clz_tab sh script to check the __clz_tab sizes
14339	(to detect issues like the one fixed in r10542). Run this script
14340	in dist-hook (Makefile.am) and in mpfrlint.
14341
143422016-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14343
14344	resolved a FIXME
14345
14346	fixed bug reported by <sisyphus1@optusnet.com.au>
14347
143482016-07-04  Vincent Lefèvre  <vincent@vinc17.net>
14349
14350	[src/exceptions.c] Added a comment for mpfr_underflow: historical reason
14351	for the choice of the behavior with MPFR_RNDN.
14352
143532016-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14354
14355	code simplification (suggested by Vincent)
14356
14357	speedup of mpfr_sub for same precision < GMP_NUMB_BITS
14358
143592016-07-01  Vincent Lefèvre  <vincent@vinc17.net>
14360
14361	[src/add1sp.c] Corrected indentation.
14362
14363	[src/sub1sp.c] Added comments.
14364
14365	[src/add1sp.c] Added comments.
14366
143672016-06-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14368
14369	optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb
14370
143712016-06-29  Vincent Lefèvre  <vincent@vinc17.net>
14372
14373	Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P.
14374
14375	[src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2
14376	(--enable-assert=full).
14377
14378	[src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530.
14379
14380	[src/add1.c] Reverted r10529, which now fails. That's strange.
14381
143822016-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14383
14384	mpfr_add1sp does not assume any more EXP(b) >= EXP(c)
14385
143862016-06-29  Vincent Lefèvre  <vincent@vinc17.net>
14387
14388	[src/add1.c] Added a MPFR_ASSERTD.
14389
143902016-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14391
14392	still faster code for 1 limb
14393
14394	merged r10522 from faithful branch + other special-code for 1 limb:
14395	the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles
14396
14397	removed leftover debug statement
14398
14399	added comment that EXP(b) >= EXP(c)
14400
14401	mpfr_add1sp no longer assumes EXP(b) >= EXP(c): gives small speedup
14402
144032016-06-27  Vincent Lefèvre  <vincent@vinc17.net>
14404
14405	[doc/sum.txt] Changed "hole" to "gap".
14406
144072016-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14408
14409	added special code for 1 limb
14410
144112016-06-25  Vincent Lefèvre  <vincent@vinc17.net>
14412
14413	C++ compatibility.
14414
14415	Merged the latest changes from the trunk.
14416
14417	[autogen.sh] Treat autoreconf warnings as errors.
14418
144192016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14420
14421	[src/vasprintf.c] Some improvements. In particular, avoid two successive
14422	calls to mpfr_cmpabs on the same arguments (the compiler doesn't know
14423	that it could optimize, as the function is not pure).
14424
14425	[src/vasprintf.c] Fixed an assertion failure.
14426
144272016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14428
14429	fixed reuse with --enable-assert
14430
14431	small speedup of mpfr_add for RNDF
14432
144332016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14434
14435	[tests/tsum.c] Correction: r10484 didn't take the latest version from
14436	the trunk in the conflict resolution.
14437
14438	[src/sum.c] A more efficient way to support faithful rounding, avoiding
14439	the TMD completely and an assertion failure at the same time.
14440
14441	Avoid failures in mpfr_mul for MPFR_RNDF with MPFR_WANT_ASSERT >= 2
14442	(--enable-assert=full) by disabling the comparison with the old
14443	implementation, which doesn't make sense for faithful rounding.
14444
144452016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14446
14447	Avoid failures in mpfr_add1sp / mpfr_sub1sp for MPFR_RNDF with
14448	MPFR_WANT_ASSERT >= 2 (--enable-assert=full) by disabling the
14449	comparison with mpfr_add1 / mpfr_sub1, which doesn't make sense
14450	for faithful rounding.
14451
14452	[Added during the Subversion to Git conversion]
14453	This commit includes a merge of r10509 from the trunk.
14454
144552016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14456
14457	Cosmetic change (whitespace).
14458
14459	Merged the latest changes from the trunk.
14460
14461	Removed trailing spaces.
14462
14463	[src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test
14464	  the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p".
14465	[src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2.
14466
144672016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14468
14469	use macro for the rounding mode used in the tests
14470
144712016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14472
14473	[doc/mpfr.texi] Updated the month.
14474
14475	[src/sum.c] Made the code a bit more natural: change of pos to neg
14476	(an indirect consequence of the support of reused arguments). Some
14477	other minor related changes.
14478
144792016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14480
14481	added more tests for RNDF
14482
144832016-06-24  Vincent Lefèvre  <vincent@vinc17.net>
14484
14485	The support of reused arguments in mpfr_sum is now complete, without
14486	any visible regressions in the timings (which are unfortunately too
14487	inaccurate to see anything).
14488	  * doc/mpfr.texi: removed sentences about the previous limitation.
14489	  * src/sum.c: removed the corresponding FIXME/TODO comment.
14490
14491	[tests/tsum.c] Test the support of reused arguments.
14492
144932016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14494
14495	disable mpfr_all_div() for RNDF
14496
14497	replaced mpfr_cmp by !mpfr_equal_p
14498
14499	added exhaustive tests for add,sub,mul,div,sqrt
14500
14501	fixed corner case with RNDF
14502
145032016-06-23  Vincent Lefèvre  <vincent@vinc17.net>
14504
14505	[src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use
14506	of the exponent field of the destination.
14507
14508	[src/add1sp.c] For MPFR_RNDF, set inexact = 0 (like what is done in
14509	sub1.c) instead of 1, though this doesn't really matter.
14510
14511	[src/sub1.c] Fix: the conflict resolution done in r10484 was incorrect.
14512
14513	[src/add1sp.c] Avoid the use of uninitialized values with MPFR_RNDF.
14514
145152016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14516
14517	fix for RNDF
14518
145192016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14520
14521	merged changed from trunk with
14522
14523	  svn merge '^/trunk'
14524
14525	(resolved conflict for sub1.c; copied tests/tsum.c from trunk and
14526	re-incorporated changes from faithful branch)
14527
145282016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14529
14530	src/li2.c: better like this
14531
14532	src/li2.c: revision 10379 was ok
14533
14534	fixed mpfr_all_div() for RNDF
14535
145362016-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14537
14538	more work on branch faithful
14539
145402016-06-17  Vincent Lefèvre  <vincent@vinc17.net>
14541
14542	[src/mpfr.h] Coding style: added spaces.
14543
14544	[TODO] Suggest the use the keyword "static" in array indices of
14545	parameter declarations with C99 compilers (6.7.5.3p7) when the
14546	pointer is expected not to be null.
14547
145482016-06-15  Vincent Lefèvre  <vincent@vinc17.net>
14549
14550	[doc/README.dev] Update (GCC trunk → GCC 5).
14551
145522016-06-13  Vincent Lefèvre  <vincent@vinc17.net>
14553
14554	[src/sum.c] Copy the significand to the destination after resolving
14555	the TMD in order to support reused arguments.
14556
14557	[src/sum.c] Improved a comment.
14558
145592016-06-10  Vincent Lefèvre  <vincent@vinc17.net>
14560
14561	[src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change.
14562
14563	[src/sum.c] For the future support of reused arguments: TMD resolution
14564	is now done in a specific TMD accumulator, allocated at the same time
14565	as the main accumulator. This TMD accumulator currently just takes at
14566	most 2 limbs in practice, so that's not a problem.
14567	[doc/sum.txt] Added TODO for things that will change.
14568
145692016-06-09  Vincent Lefèvre  <vincent@vinc17.net>
14570
14571	[src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462).
14572
14573	[tests/tversion.c] Do not use "%zu" with printf (added in r10460).
14574
14575	[doc/README.dev] Document environment variables that affect the tests.
14576
14577	Other changes concerning the memory limit for the tests.
14578	  * Export the tests_memory_limit variable so that it can be accessed in
14579	    test programs (e.g. read by tversion as mentioned below, or modified
14580	    by a test program when executed with particular arguments).
14581	  * In tversion, print a warning when the memory limit has been modified
14582	    (with the MPFR_TESTS_MEMORY_LIMIT environment variable).
14583
14584	[tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can
14585	now contain an integer specifying the memory limit for the tests, or 0
14586	for unlimited, the default still being 2^22 = 4 MB.
14587
145882016-06-08  Vincent Lefèvre  <vincent@vinc17.net>
14589
14590	[tests/tsum.c] Improved check3:
14591	  * Also do the tests with output precision MPFR_PREC_MIN;
14592	    this completes the value coverage for tsum.
14593	  * Also compare the flags.
14594
14595	Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN
14596	and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN
14597	on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN.
14598	This reduces to 12 tests that are not done.
14599
146002016-06-07  Vincent Lefèvre  <vincent@vinc17.net>
14601
14602	Merged the "ubf" branch into the trunk:
14603	  * limited implementation of "unbounded floats" (numbers with a mpz_t
14604	    exponent), which could be completed in the future, in particular to
14605	    handle intermediate overflows/underflows in polynomial evaluation;
14606	  * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests;
14607	  * restored the MPFR 3.1- exponent range for compatibility;
14608	  * restored some tests that were based on this exponent range.
14609	The choice for the UBF implementation was to use a compatible structure:
14610	the same as the mpfr_t one, with an additional field at the end, used
14611	only when the exponent field _mpfr_exp has some special value. Thus some
14612	functions such as addition and subtraction just needed minor changes to
14613	support UBF, and no code was duplicated. This means that on MPFR numbers
14614	(the usual case), one has a few more tests than before, but with known
14615	branch probabilities. In practice, this should not be visible, at least
14616	in most applications. This was more or less confirmed by timings (even
14617	with many additions/subtractions in low precision, this was difficult
14618	to say, as timings were influenced by various parameters that we cannot
14619	control).
14620
14621	Merged the latest change from the trunk (r10452).
14622
14623	[tools/mbench/Makefile] Added multiarch support for GMP.
14624
14625	[src/mpfr-impl.h] Updated a comment (removing a FIXME).
14626
14627	Merged the latest change from the trunk (r10449).
14628
14629	[tests/tprintf.c] Removed tests of native %'g and %'f (from r8292)
14630	as the ' flag is an extension from Single UNIX Specification and
14631	in particular, they fail with MinGW under Wine.
14632
14633	Merged the latest changes from the trunk.
14634
14635	[tests/tlgamma.c] Typo in comment.
14636
14637	[src/uceil_log2.c] Added a comment. Cosmetic changes.
14638
14639	[tests/tlgamma.c] Corrected updated comment from r10444.
14640
146412016-06-06  Vincent Lefèvre  <vincent@vinc17.net>
14642
14643	[tests/tlgamma.c] Updated comment of the test added in r10442.
14644
14645	[src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an
14646	incorrect result with tcc: x.s.exp is declared as an unsigned
14647	bit-field, so that tcc considers that x.s.exp - 1023 is unsigned.
14648	However, since all the values of x.s.exp are representable in an
14649	int, according to the integer promotion rules, x.s.exp should be
14650	converted to an int, so that the subtraction is signed. So, this
14651	appears to be a bug in tcc.
14652
14653	[tests/tlgamma.c] Added a test causing a "too much memory" error with
14654	tcc 0.9.27~git20151227.933c223-1 (there's already one in special(),
14655	but this one is a simpler, standalone test).
14656
14657	Merged the latest change from the trunk (r10440).
14658
14659	[acinclude.m4] When checking if __float128 is available, we now also
14660	check whether C99 constants (in particular the __float128 ones, such
14661	as 0x1.fp+16383q) are supported since this is now required with the
14662	__float128 support.
14663
14664	Merged the latest changes from the trunk.
14665
14666	[src/add1.c] Improved a comment about faithful rounding.
14667
14668	[src/add1.c] The code for faithful rounding (MPFR_RNDF) was not
14669	avoiding some useless loops needing to know on which side of a
14670	breakpoint the result is. Quick fix.
14671
14672	Merged the latest changes from the trunk.
14673
14674	[src/add1.c] Simplified code: removed fb = 1 since it was already 1
14675	in the "if (fb > 0)" branch.
14676
14677	[src/set_float128.c] Fix: removed the divisions by zero, replacing them
14678	by comparisons with the maximum finite binary128 number. Changes to be
14679	similar to the handling of infinities in "src/set_ld.c".
14680
14681	[TODO] Faithful rounding: small correction.
14682
14683	[TODO] Added "faithful rounding", with information about its definition
14684	and implementation.
14685
146862016-06-03  Vincent Lefèvre  <vincent@vinc17.net>
14687
14688	[src/{fits_intmax.c,fits_s.h}] In comments, fit → fits.
14689
14690	[src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code
14691	generates a divide-by-zero exception. Suggest a solution.
14692	Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".
14693
14694	[tests/tset_float128.c] Take into account failures in division by 0
14695	and absence of signed zeros. Also fixed the code checking the sign
14696	of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0).
14697
146982016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14699
14700	RNDF: fixed the fits functions
14701
147022016-06-03  Vincent Lefèvre  <vincent@vinc17.net>
14703
14704	Merged the latest change from the trunk (r10426 fix).
14705
14706	[src/set_d.c] Added some assertions and fixed a 32-bit shift count
14707	when GMP_NUMB_BITS == 32.
14708
14709	Merged the latest changes from the trunk (C++ compatibility).
14710
14711	[tests/tset_float128.c] C++ compatibility.
14712
14713	[tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility.
14714
14715	[tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility.
14716
14717	[src/add1.c] Completed UBF support. Note: due to the restriction
14718	on the exponent values, diff_exp does not need to be the unsigned
14719	integer type mpfr_uexp_t (mpfr_exp_t is sufficient).
14720
14721	[tests/tfmma.c] Correction.
14722
14723	[tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow.
14724
14725	[tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make sure
14726	that the add1sp and sub1sp conditions are satisfied with the current
14727	src code, these tests may rely on the fact that there are no trailing
14728	bits, i.e. that the precision is a multiple of GMP_NUMB_BITS).
14729
147302016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14731
14732	added reference for Lambert W function
14733
147342016-06-03  Vincent Lefèvre  <vincent@vinc17.net>
14735
14736	[src/{add,sub}.c] Consider UBF numbers as special cases so that
14737	mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never
14738	called on UBF numbers. This should also (very slightly) speed up
14739	the normal cases.
14740
14741	[src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF and
14742	MPFR_ARE_SINGULAR_OR_UBF macros.
14743
147442016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14745
14746	declare prec in unsigned long
14747
14748	RNDF: specified the fits functions
14749
14750	RNDF: fixed tfactorial
14751
147522016-06-02  Vincent Lefèvre  <vincent@vinc17.net>
14753
14754	C++ compatibility (corrected).
14755
147562016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14757
14758	RNDF: fixed texp2
14759
14760	avoid mpfr_printf in tests
14761
14762	C++ compatibility
14763
14764	suggestion from Vincent
14765
14766	RNDF: fixed texp10 and tgeneric
14767
14768	RNDF: fixed mpfr_sum and tsum
14769
14770	RNDF: fixed texp
14771
147722016-06-02  Vincent Lefèvre  <vincent@vinc17.net>
14773
14774	[tests/tfmma.c] Added test cases where the precision of the result
14775	is twice the precision of each input, which can currently involve
14776	add1sp.c and sub1sp.c code.
14777
147782016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14779
14780	RNDF: partially fixed texp
14781
14782	RNDF: fixed tcot
14783
14784	RNDF: fixed tcos
14785
14786	RNDF: fixed tconst_pi
14787
14788	RNDF: fixed li2 and tconst_log2
14789
147902016-06-02  Vincent Lefèvre  <vincent@vinc17.net>
14791
14792	Merged the latest changes from the trunk.
14793
14794	[src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and
14795	mpfr_overflow (x is not an input in these functions).
14796
14797	[src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG
14798	and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized
14799	yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be
14800	too low level and not much useful except in case of bugs.
14801
148022016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14803
14804	RNDF: fixed issue with Bessel functions for large arguments
14805
148062016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14807
14808	added description of flags for RNDF
14809
148102016-05-30  Vincent Lefèvre  <vincent@vinc17.net>
14811
14812	[src/sub1.c] Forgot a \n in a log message.
14813
148142016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14815
14816	fixed typos
14817
148182016-05-30  Vincent Lefèvre  <vincent@vinc17.net>
14819
14820	[src/sub1.c] Completed UBF support.
14821
14822	Merged the latest changes (in particular the fix in sub1.c) from the
14823	trunk.
14824
14825	[tests/tsub.c] Added comments for check_max_almosteven (latest
14826	test case, added in r10383).
14827
148282016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14829
14830	more work on the faithful branch
14831
148322016-05-29  Vincent Lefèvre  <vincent@vinc17.net>
14833
14834	[src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with
14835	  |b| > |c|): In MPFR_RNDN (round-to-nearest mode), when
14836	    * |b| is the midpoint between the maximum finite number in the
14837	      precision of a and 2^emax (the maximum finite number + 1 ulp),
14838	      which is possible only if PREC(b) > PREC(a),
14839	    * c is small enough (i.e. no overlap with a and b),
14840	  mpfr_sub1 returns an infinity (with overflow flag set) instead of
14841	  ± the maximum number (no overflow). The cause is that an overflow
14842	  is generated too early, in an intermediate rounding.
14843	[tests/tsub.c] Added test cases.
14844
14845	[tests/tfmma.c] Forgot a \n in printf.
14846
14847	[tests/tfmma.c] Added overflow tests that trigger an assertion failure
14848	in sub1.c (because UBF support is not complete yet).
14849
148502016-05-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14851
14852	start implementing RNDF (work in progress)
14853
148542016-05-25  Vincent Lefèvre  <vincent@vinc17.net>
14855
14856	[src/log_ui.c] Changes for ISO C90 compatibility.
14857
14858	[src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from
14859	unsigned long, which is implementation-defined, to unsigned int.
14860
14861	[src/log_ui.c] Added an assertion.
14862
14863	[src/mpfr-impl.h] Fixed bug introduced in r10327, giving:
14864	error: ISO C does not allow extra ';' outside of a function [-Wpedantic]
14865
148662016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14867
14868	improved mpfr_log_ui
14869
14870	added comment
14871
148722016-05-25  Vincent Lefèvre  <vincent@vinc17.net>
14873
14874	[TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large
14875	arguments has always been documented).
14876
14877	[TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was
14878	added in r6734).
14879
148802016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14881
14882	added item about efficiency of mpfr_ai for large arguments
14883
148842016-05-25  Vincent Lefèvre  <vincent@vinc17.net>
14885
14886	[doc/README.dev] Also clarified the use of "configure".
14887
14888	[doc/README.dev] Clarified the use of "autogen.sh".
14889
148902016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14891
14892	use autogen.sh
14893
14894	added libtoolize (needed for AX_PTHREAD)
14895
148962016-05-24  Vincent Lefèvre  <vincent@vinc17.net>
14897
14898	[tests/tlog_ui.c] Improved a test function.
14899
14900	[acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must
14901	be quoted, otherwise the macro is expanded when defined.
14902
149032016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14904
14905	small improvements to log_ui (still slower than log for large precision)
14906
149072016-05-24  Vincent Lefèvre  <vincent@vinc17.net>
14908
14909	[acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded.
14910
149112016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14912
14913	use rounding to nearest by default in "tconst_log2 prec"
14914
14915	minor changes to allow ./tlog xxx prec
14916
14917	added generic tests for mpfr_log_ui + compare with mpfr_log
14918
149192016-05-24  Vincent Lefèvre  <vincent@vinc17.net>
14920
14921	[src/sub1.c] Started to add UBF support (still incomplete).
14922
14923	Merged the latest changes from the trunk and removed the remaining
14924	_MPFR_PROTO of UBF functions.
14925
14926	Removed _MPFR_PROTO with the following Perl script on the .h files.
14927	  while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/;
14928	  s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/)
14929	  { s/\) *\)/)/ or $c = 1 + length $1 } print }
14930
14931	[configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used
14932	(without this, "automake --warnings=all" gives a warning).
14933
14934	[acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD
14935	(done with "autoupdate acinclude.m4").
14936
14937	[configure.ac] Moved LT_INIT near the top for --enable-lto, and removed
14938	AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB
14939	(obsoleted by LT_INIT).
14940
14941	Avoid some warnings with "gcc -Wundef".
14942
14943	[configure.ac] Removed a FIXME fixed in r4482.
14944
14945	[src/mpfr-longlong.h] Update from GMP 6.1.0.
14946
14947	[src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick Pélissier).
14948
14949	[src/sub1.c] Various minor improvements:
14950	  * Some changes related to the exponents and diff_exp.
14951	  * Coding style + use of IS_POW2.
14952	  * Use logging instead of #ifdef DEBUG and printf.
14953
149542016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14955
14956	removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev)
14957
149582016-05-24  Vincent Lefèvre  <vincent@vinc17.net>
14959
14960	Added optional LTO support (from a patch by Patrick Pélissier).
14961
14962	Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined
14963	to make it consistent with the behavior when WANT_SHARED_CACHE is not
14964	defined (patch by Patrick Pélissier).
14965
14966	[src/vasprintf.c] Output the sign of UBF like with infinities.
14967
14968	[tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen
14969	and check fp (just like with FILE_NAME_R).
14970
14971	[tests/tfmma.c] Completed near_overflow_tests (there's still a crash,
14972	this time really in fmma.c).
14973
14974	[tests/tfmma.c] Added near_overflow_tests, which crashes.
14975
149762016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
14977
14978	added new (read-only) test file for mpfr_fpif_import
14979
14980	added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX
14981
149822016-05-24  Vincent Lefèvre  <vincent@vinc17.net>
14983
14984	Merged the latest changes from the trunk.
14985
14986	Updated NEWS about shared caches.
14987
14988	MPFR 3.2(.x) → 4.0(.x)
14989
14990	[NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2.
14991	[doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes.
14992
149932016-05-23  Vincent Lefèvre  <vincent@vinc17.net>
14994
14995	[src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro:
14996	  * Added a FIXME comment about a possible warning due to a missing
14997	    field initializer; suggest 2 possible solutions.
14998	  * Improved code readability.
14999
15000	[src/free_cache.c] Avoid duplicated source code for maintainability.
15001
15002	[doc/mpfr.texi] Corrections about caches.
15003
15004	[src/mpfr-thread.h] For #error, use a string literal as a single
15005	preprocessing-token.
15006
15007	[src/mpfr-thread.h] Coding style.
15008
15009	Minor comment & coding style corrections on r10327.
15010
15011	Added shared cache support (from a patch by Patrick Pélissier).
15012
150132016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15014
15015	added tests for mpfr_fpif in precision 1
15016
150172016-05-23  Vincent Lefèvre  <vincent@vinc17.net>
15018
15019	More UBF support:
15020	  * mpfr-impl.h, ubf.c: added mpfr_ubf_zexp2exp function.
15021	  * add1.c: support the case where b (the first input) is an UBF.
15022
15023	[tests/tfmma.c] Added max_tests.
15024
15025	[src/ubf.c] Memory leak in some case.
15026
15027	Added UBF support for mpfr_cmp2.
15028
15029	ABS(SIZ(x)) → ABSIZ(x)
15030
15031	[src/ubf.c] Support reduced exponent range in mpfr_get_zexp.
15032
150332016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15034
15035	redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not
15036	used for those calls
15037
150382016-05-23  Vincent Lefèvre  <vincent@vinc17.net>
15039
15040	Started to implement unbounded floats (UBF) and added support in some
15041	existing functions.
15042
15043	Also reverse-merge r9960 (due to the previous ones).
15044
15045	Also reverse-merge r9958, r9961 and r9962 (due to the previous ones).
15046
15047	First, reverse-merge r9975 and r9957 (whose only purpose was for fmma,
15048	but changed the exponent range and still had various issues).
15049
150502016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15051
15052	added comment about MPFR_MY_MPZ_INIT
15053
150542016-05-23  Vincent Lefèvre  <vincent@vinc17.net>
15055
15056	[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
15057
15058	[src/vasprintf.c] Code simplification.
15059
15060	[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.
15061
15062	[src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump:
15063	  * Support out-of-range exponents as this function is mainly for
15064	    debugging purpose (TODO: add some warning for such exponents).
15065	    See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html
15066	  * Support _MPFR_EXP_FORMAT == 4 (format used for testing).
15067
150682016-05-22  Vincent Lefèvre  <vincent@vinc17.net>
15069
15070	[tests/tfmma.c] Corrections and improvements in random_test.
15071
15072	[tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p.
15073
15074	[tests]
15075	  * tadd_ui.c: clean-up (a boolean test doesn't need "!= 0").
15076	  * tsub_ui.c: check that the NaN flag is set on NaN.
15077
15078	[src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type
15079	(after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE.
15080
150812016-05-20  Vincent Lefèvre  <vincent@vinc17.net>
15082
15083	[src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub
15084	more like mpfr_add_ui and mpfr_sub_ui. Added comments.
15085
15086	Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the
15087	mpfr_ui_sub code), solving the failures.
15088
15089	[tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN
15090	flag when the result is NaN (almost all cases). This makes both tadd_ui
15091	(ignoring the new test done in r10298) and tsub_ui fail.
15092
150932016-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15094
15095	added test case for bug reported by Rob (sisyphus1@optusnet.com.au)
15096
150972016-05-19  Vincent Lefèvre  <vincent@vinc17.net>
15098
15099	[src/fmma.c] Added FIXME comments.
15100
151012016-05-18  Vincent Lefèvre  <vincent@vinc17.net>
15102
15103	Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it.
15104
15105	[src/fma.c] Minor code simplification.
15106
151072016-05-17  Vincent Lefèvre  <vincent@vinc17.net>
15108
15109	Improved code related to mpfr_set_exp_t:
15110	  * Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs)
15111	    and use it.
15112	  * src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1.
15113
151142016-05-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15115
15116	added comment about printing decimal floats
15117
151182016-05-13  Vincent Lefèvre  <vincent@vinc17.net>
15119
15120	[src/mpfr-impl.h] Minor improvements.
15121
151222016-05-12  Vincent Lefèvre  <vincent@vinc17.net>
15123
15124	[configure.ac] Added a comment about GMP CC/CFLAGS detection.
15125
15126	[configure.ac] Better GMP CC/CFLAGS detection (based on a patch by
15127	Patrick Pélissier).
15128
151292016-05-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15130
15131	add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5)
15132
151332016-05-04  Vincent Lefèvre  <vincent@vinc17.net>
15134
15135	[doc/mpfr.texi] Updated the month.
15136
15137	[doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info
15138	  file was always rebuilt.
15139	[Makefile.am] Execute check-typography from dist-hook instead.
15140
15141	[Makefile.am] Add doc/check-typography to the tarball as it is needed
15142	  to rebuild the mpfr.info file if the mpfr.texi file is modified.
15143	[doc/check-typography] Added copyright notice and explanations.
15144
15145	[doc/check-typography] Removed useless parentheses.
15146
15147	Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors
15148	due to implicit rules, it is better to explicitly make clear whether
15149	a punctuation mark ends or does not end a sentence.
15150	  * Added doc/check-typography sh script to detect such typography
15151	    ambiguities.
15152	  * doc/Makefile.am: automatically execute this script before mpfr.info
15153	    is rebuilt; fail with explanations in case there are ambiguities.
15154	  * doc/mpfr.texi: avoid typography ambiguities.
15155	  * tools/mpfrlint: replaced the old typography check by a call to the
15156	    check-typography script (which does more checks).
15157
15158	[doc/mpfr.texi] Typographic correction on the latest addition.
15159
15160	[doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR.
15161
151622016-04-25  Vincent Lefèvre  <vincent@vinc17.net>
15163
15164	[src/mpfr-impl.h] Clean-up.
15165
151662016-04-21  Vincent Lefèvre  <vincent@vinc17.net>
15167
15168	[configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp
15169	was not checking whether gmp.h could actually be included, so that the
15170	code was outputting "yes" even when gmp.h was not installed.
15171
15172	[NEWS] Added: Limited pkg-config support.
15173
15174	Added pkg-config support (patch from Kip Warner + some changes).
15175
151762016-04-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15177
15178	typo
15179
151802016-04-20  Vincent Lefèvre  <vincent@vinc17.net>
15181
15182	[acinclude.m4] Improved warning message for the "long double" test.
15183
15184	[configure.ac] "double format" test: changed the AC_MSG_ERROR (when
15185	not recognized) to AC_MSG_WARN (like with long double).
15186
15187	[configure.ac] No longer include <stdint.h> in the "double format" test
15188	(it is unnecessary and doesn't exist everywhere).
15189
15190	[acinclude.m4] Typo.
15191
151922016-04-13  Vincent Lefèvre  <vincent@vinc17.net>
15193
15194	[tests/tversion.c] Updated a comment about Cygwin and Unix.
15195
151962016-04-09  Vincent Lefèvre  <vincent@vinc17.net>
15197
15198	[tools/mpfrlint] Fixed bug triggered when the command for err-if-output
15199	has empty arguments (this does not occur yet).
15200
152012016-04-08  Vincent Lefèvre  <vincent@vinc17.net>
15202
15203	[tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and
15204	MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks
15205	have been removed in r10260).
15206
15207	[src/mpfr-impl.h] Removed the detection of possible inconsistencies
15208	under Unix because the tests could yield spurious errors with Cygwin32
15209	or other similar implementations. Moreover, such tests were used for
15210	debugging purpose or to detect potential problems in the environment,
15211	thus were not really useful for the end user. They were initially
15212	added in the win-thread-safe-dll branch (r9682, following a problem
15213	found in r9680). One alternative for checking by the MPFR developers
15214	would be to output the status of some internal macros in tversion.
15215
15216	[tools/mpfrlint] Use err-if-output also for external checkers.
15217
15218	[tools/mpfrlint] Better choice of a variable name.
15219
152202016-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15221
15222	revert changeset 10255
15223
152242016-04-08  Vincent Lefèvre  <vincent@vinc17.net>
15225
15226	[tools/mpfrlint]
15227	  * Switched to zsh.
15228	  * Much more meaningful error messages.
15229	  * Fix: in the mpfr.texi punctuation test, ignore the comments.
15230
152312016-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15232
15233	patch for Cygwin (cf https://trac.sagemath.org/ticket/20380)
15234
152352016-04-08  Vincent Lefèvre  <vincent@vinc17.net>
15236
15237	[doc/mpfr.texi] Updated the month.
15238
152392016-04-07  Vincent Lefèvre  <vincent@vinc17.net>
15240
15241	[doc/mpfr.texi] Document mpfr_dump (which has always been there).
15242	[src/dump.c] Added a comment (with TODO).
15243
15244	Replaced various instances of mpfr_print_binary + newline (sometimes
15245	missing) by mpfr_dump.
15246
15247	[tests] Fixed typo in error messages.
15248
152492016-04-01  Vincent Lefèvre  <vincent@vinc17.net>
15250
15251	[TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions).
15252
152532016-03-29  Vincent Lefèvre  <vincent@vinc17.net>
15254
15255	[INSTALL] Removed incorrect note about NetBSD/alpha: The configure
15256	script distributed with the MPFR 3.1.4 tarball does not contain anything
15257	related to the -mieee GCC option; this just seems to be a particular
15258	pkgsrc issue for NetBSD:
15259	  http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup
15260	  https://www.google.fr/search?q=pkgsrc+%22mieee%22
15261	where -mieee is added. The -mieee-with-inexact option added in the MPFR
15262	3.1 branch might yield the same error with the buggy GCC versions, but
15263	this is now obsolete in the trunk (the code was removed in r10152).
15264
152652016-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15266
15267	added note about NetBSD/alpha
15268
152692016-03-16  Vincent Lefèvre  <vincent@vinc17.net>
15270
15271	[doc/sum.txt] Added a summary of the timings, copied from:
15272	  ^/misc/sum-timings/results/ReadMe@10244
15273
152742016-03-15  Vincent Lefèvre  <vincent@vinc17.net>
15275
15276	[tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch.
15277
15278	[tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c
15279	for MPFR 3.1.4 but does not appear in the trunk).
15280
152812016-03-14  Vincent Lefèvre  <vincent@vinc17.net>
15282
15283	[doc/sum.txt] Some clarification in the TMD case.
15284
15285	[doc/sum.txt] Added a proof that the choice for the size ts of the
15286	temporary area is sufficient.
15287
15288	[doc/sum.txt] Replaced e by ε for the error (e is already used).
15289
15290	[doc/sum.txt] Update about t' in the error analysis.
15291
15292	[doc/sum.txt] More about the notion of exponent in two's complement.
15293
152942016-03-13  Vincent Lefèvre  <vincent@vinc17.net>
15295
15296	[doc/sum.txt] Update about sum_raw (with a correction of a typo).
15297
152982016-03-10  Vincent Lefèvre  <vincent@vinc17.net>
15299
15300	[doc/sum.txt] Rewrote paragraph about limitations.
15301
15302	[src/sum.c] Corrected comment: 32/64-bit machine → 32/64-bit ABI.
15303
15304	[src/sum.c] Use UPDATE_MINEXP when necessary; added comments.
15305
15306	[src/sum.c] Added a comment about corner cases involving huge
15307	precisions, which should never occur in practice.
15308
15309	[src/sum.c]
15310	  * Added some MPFR_ASSERTD that correspond to properties used in the
15311	    proof corrected in doc/sum.txt r10221.
15312	  * Added a test for corner cases that will/can probably never occur
15313	    in practice.
15314
15315	[doc/sum.txt] Improved explanations and corrected a proof.
15316
15317	[doc/sum.txt] Added a figure.
15318
15319	[doc/sum.txt] Clarifications.
15320
153212016-03-09  Vincent Lefèvre  <vincent@vinc17.net>
15322
15323	[doc/sum.txt] GMP → the current version of GMP (6.1.0).
15324
15325	[doc/sum.txt] Another clarification.
15326
15327	[doc/sum.txt] Clarification about a reiteration in sum_raw with
15328	explanation closer to the code.
15329
15330	[src/sum.c] Clarification of comments about "sum.txt".
15331
15332	[src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw().
15333
15334	[doc/sum.txt] Clarification.
15335
15336	[doc/sum.txt] Update (mainly related to two's complement).
15337
15338	[INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO.
15339
153402016-03-08  Vincent Lefèvre  <vincent@vinc17.net>
15341
15342	[doc/sum.txt] Corrected 2 typos found by PZ.
15343
15344	[doc/sum.txt] Added commas.
15345
15346	[doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788.
15347
15348	[doc/sum.txt] A bit more about the choice of two's complement for the
15349	accumulator.
15350
15351	[doc/sum.txt] Explanation concerning the choice of two's complement for
15352	the accumulator.
15353
153542016-03-04  Vincent Lefèvre  <vincent@vinc17.net>
15355
15356	[doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO.
15357
15358	[INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO.
15359
15360	[TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default?
15361
153622016-03-03  Vincent Lefèvre  <vincent@vinc17.net>
15363
15364	[configure.ac] Improved --help messages for decimal-float and float128
15365	(a bit like what was done for thread-safe).
15366
153672016-03-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15368
15369	updated NEWS for decimal floats and __float128
15370
15371	set --enable-float128 to "autodetect" by default (like --enable-decimal-float)
15372
153732016-03-02  Vincent Lefèvre  <vincent@vinc17.net>
15374
15375	[TODO] For testing the lack of subnormal support.
15376
15377	[acinclude.m4] Also fixed the test for subnormal double-precision
15378	numbers, in case an extended precision / exponent range is used
15379	(however the test is not guaranteed with non-conforming compilers).
15380
15381	[acinclude.m4] Fixed test for subnormal single-precision numbers.
15382
153832016-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15384
15385	added a separate configure test for subnormals in the "float" format
15386
153872016-03-02  Vincent Lefèvre  <vincent@vinc17.net>
15388
15389	[acinclude.m4,configure.ac] Various fixes in error messages.
15390
15391	[TODO] Update ICC detection.
15392
153932016-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15394
15395	autodetect support for decimal floats (as suggested in revision 10179)
15396
153972016-03-02  Vincent Lefèvre  <vincent@vinc17.net>
15398
15399	[src/ieee_floats.h] Comment update.
15400
15401	[tests/tversion.c] Another improvement, just in case Clang no longer
15402	defines __GNUC__ in the future.
15403
15404	[tests/tversion.c] Improved output of compiler information.
15405
15406	[src/ieee_floats.h] No longer use a NaN memory representation because
15407	it was fixed thus could be either a qNaN or a sNaN, depending on the
15408	machine. Moreover the choice is to generate a qNaN, in particular due
15409	to lack of sNaN support by compilers.
15410
15411	Do not build with decimal float by default as it is not standard
15412	(a better behavior could be to auto-detect).
15413
15414	Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding.
15415
15416	[src/get_flt.c] Updated FIXME comment: idea of a solution...
15417
15418	[src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format
15419	with subnormal support.
15420
15421	[tests/tget_flt.c] Do tests that may involve subnormals only
15422	if HAVE_DENORMS is defined.
15423
154242016-03-01  Vincent Lefèvre  <vincent@vinc17.net>
15425
15426	[src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and
15427	long double like what is done for double; on platforms where d != d is
15428	not wrongly optimized to false, this should not change anything. Also
15429	added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128,
15430	as this is already done for double and long double.
15431
15432	[tools/mpfrlint] Detect some uses of "x != x" and "x == x".
15433
154342016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15435
15436	recognize icc (which might define __GNUC__)
15437
154382016-03-01  Vincent Lefèvre  <vincent@vinc17.net>
15439
15440	[src/mpfr-impl.h] Added a comment about non-IEEE-754 environment.
15441
154422016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15443
15444	HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported
15445
154462016-03-01  Vincent Lefèvre  <vincent@vinc17.net>
15447
15448	[configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR
15449	when it is longer than a word, as already done in most cases (this is
15450	safer in case we modify the text and add a comma).
15451
15452	[tests/tset_float128.c] Better cast.
15453
154542016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15455
15456	use DOUBLE_ISNAN() instead of f == f
15457
15458	updated
15459
15460	updated paragraph on AIX/PowerPC
15461
15462	added more details in case of error
15463
15464	harmonize configure message against GMP
15465
15466	updated with mpfr-3.1.4-rc2
15467
15468	fixed detection of "double" format, and removed
15469	HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it
15470
15471	removed leftover debug statement
15472
154732016-03-01  Vincent Lefèvre  <vincent@vinc17.net>
15474
15475	Removed "The IEEE code for double needs GMP internal files." from
15476	doc/README.dev as this is no longer the case since r10150.
15477
154782016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15479
15480	speedup in mpfr_set_d and mpfr_get_d
15481
15482	improved detection of decimal floats
15483	removed (obsolete?) #define XDEBUG in mpfr-gmp.h
15484
154852016-03-01  Vincent Lefèvre  <vincent@vinc17.net>
15486
15487	[acinclude.m4] Removed old code for Alpha (as suggested by Paul).
15488	It was no longer tested.
15489
15490	[configure.ac] Added a FIXME comment about a possible misuse of
15491	AC_RUN_IFELSE programs that can return several values.
15492
154932016-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15494
15495	get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract
15496	enable decimal float by default
15497
154982016-02-29  Vincent Lefèvre  <vincent@vinc17.net>
15499
15500	[tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden).
15501
15502	Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN.
15503
15504	[NEWS] Removed a useless note (as the ABI has already changed).
15505
15506	[NEWS] Update about MinGW: "Added support for thread-safe DLL" as
15507	this was more than a fix of the test suite with r9684,9778.
15508
15509	[NEWS] Added "MinGW: Avoid failures in the test suite for shared builds
15510	with TLS." (fix in r9891).
15511
15512	[INSTALL] Removed an obsolete sentence about MinGW and shared builds
15513	with TLS (the failures in the test suite were avoided in r9891).
15514
15515	[tests/Makefile.am] Comment update.
15516
155172016-02-25  Vincent Lefèvre  <vincent@vinc17.net>
15518
15519	About "config.h" inclusion: code consistency; removed obsolete comment.
15520
15521	[tests/tversion.c] Output availability of intmax_t/uintmax_t based
15522	functions and *printf functions.
15523
15524	[src/printf.c] Added a blank line for more readability.
15525
15526	[doc/README.dev] Added a note about the "config.h" inclusion.
15527
15528	[tests/tversion.c] Let's group the features together.
15529
15530	[tests/tversion.c] Output support status of modifiers in gmp_printf.
15531
15532	Added mpfr_buildopt_float128_p function.
15533
15534	[doc/mpfr.texi] Removed old comments.
15535
155362016-02-24  Vincent Lefèvre  <vincent@vinc17.net>
15537
15538	[tests/tset_str.c] Correction (with no noticeable effect).
15539
15540	[tools/mpfrlint] For codespell, skip the openout.* files, which are
15541	created by "make pdf".
15542
15543	[src/sum.c] Minor FIXME comment update.
15544
15545	[doc/sum.txt] Updated introduction.
15546
15547	[tools/announce-text] Check the files on the mpfr.org web server.
15548
15549	[tools/announce-text] Added a comment.
15550
15551	[tools/announce-text] Update for release candidates.
15552
15553	[doc/mpfr.texi] Fixed a warning with "make info".
15554
15555	Added tools/ck-news Perl script to check the NEWS file.
15556	In Makefile.am:
15557	  * run this script in dist-hook for "make dist";
15558	  * added this script to EXTRA_DIST as it is used in dist-hook.
15559
15560	[tools/announce-text] Take into account $vers setting.
15561
15562	[tools/announce-text] Replaced MD5 by SHA256.
15563
155642016-02-23  Vincent Lefèvre  <vincent@vinc17.net>
15565
15566	[tools/update-version] Correction for new perl versions.
15567
155682016-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15569
15570	unified description of mpfr_eint
15571
155722016-02-23  Vincent Lefèvre  <vincent@vinc17.net>
15573
15574	[src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was
15575	setting the NaN flag when the double (resp. long double) was a NaN and
15576	could return an incorrect result (assertion failure in debug mode) in
15577	reduced exponent range.
15578
15579	[tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range.
15580
15581	[tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN → failure.
15582
15583	[tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style.
15584
15585	[tests/tcmp_d.c] GNU coding style.
15586
15587	[doc/sum.txt] Update about the suggestion to split the inputs for
15588	Demmel's algorithm.
15589
155902016-02-22  Vincent Lefèvre  <vincent@vinc17.net>
15591
15592	[doc/README.dev] Added a reference to the build-multi script.
15593
15594	Removed the tools/build-multi script (already in ^/misc).
15595
15596	Added tools/build-multi zsh script to build and install multiple MPFR
15597	versions, and add XML library descriptors for ABI Compliance Checker.
15598
15599	[tests/tagm.c] Also do the test with a = b in precision 2 (since the
15600	same bug occurs in the 3.1 branch, which doesn't support precision 1).
15601
156022016-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15603
15604	fixed error analysis for gamma_inc continued fraction
15605
156062016-02-19  Vincent Lefèvre  <vincent@vinc17.net>
15607
15608	[tests/tfmod.c] Test that triggers the bug fixed in r10054: run it
15609	also in the extended exponent range in order to make the test fail
15610	when ported to the 3.1 branch.
15611
15612	[tests/tfmod.c] Renamed a variable since it is not always NaN.
15613
15614	[tests/tfmod.c] Added a test that triggers the bug fixed in r10054
15615	without relying on test_generic failure.
15616
156172016-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15618
15619	added references in comment
15620
156212016-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15622
15623	added error analysis for gamma_inc with continued fraction (to be reviewed)
15624
156252016-02-18  Vincent Lefèvre  <vincent@vinc17.net>
15626
15627	[doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1.
15628
156292016-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15630
15631	more precision about gamma_inc
15632
15633	added reference to series for incomplete gamma function
15634
156352016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15636
15637	added tests for negative integer a
15638
156392016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15640
15641	[tests/tfmod.c] Do not use a variable named nan to avoid confusion
15642	with the nan function of C99 (and possible obscure failures in the
15643	future, if we include <math.h>).
15644
156452016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15646
15647	added reference to gamma_inc(-n,x) for current code
15648
15649	added test to exercise bug fixed in revision 10056
15650
15651	fixed one test
15652
15653	fixed bug in mpfr_agm in case a=b but result cannot be exactly represented
15654	in the target precision: ternary value was wrongly set to 0
15655
156562016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15657
15658	Removed trailing spaces.
15659
156602016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15661
15662	reduce the time of tgamma_inc
15663
15664	fixed the number of special tests for 2-argument functions
15665
15666	fixed stupid error in revision 10054
15667
156682016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15669
15670	[src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal
15671	function had been removed in r9370.
15672
156732016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15674
15675	avoid computing with huge integers in mpfr_fmod when x/y is very small
15676
156772016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15678
15679	[doc/sum.txt] Update about the old mpfr_sum implementation.
15680
156812016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15682
15683	Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release.
15684
156852016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15686
15687	[tests/tgeneric.c] Fixed a typo in latest commit, and added min/max
15688	and max/min special tests for functions with 2 arguments.
15689	This triggers a failure in tfmod on 64-bit machines at least.
15690
15691	[src/gamma_inc.c] Improved assertions.
15692
156932016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15694
15695	now mpfr_gamma_inc(a,x) also works for 'a' a negative integer
15696	(however a and x should not be too large, we should implement
15697	Legendre's continued fraction for the general case)
15698
15699	fixed issue in mpfr_eint
15700
157012016-02-17  Vincent Lefèvre  <vincent@vinc17.net>
15702
15703	[src/gamma.c] Added another assertion.
15704
15705	[src/gamma.c] Added assertions and a comment.
15706
15707	[src/gamma.c] Removed useless saved_flags as flags are already saved
15708	by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as
15709	emin <= 2 <= emax may not be sufficient (or may be suboptimal).
15710	After all, MPFR_SAVE_EXPO_* is the usual thing to do...
15711
157122016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15713
15714	previous commit was incomplete
15715
15716	fixed bug in mpfr_gamma: flags might be corrupted in case the argument was
15717	an integer fitting in an unsigned long
15718
157192016-02-15  Vincent Lefèvre  <vincent@vinc17.net>
15720
15721	[doc/README.dev] Update about patches.
15722
15723	[tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)).
15724
15725	Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si.
15726
15727	Added bad_cases tests for mpfr_root.
15728
15729	[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions
15730	in a reduced exponent range and debug mode for non-integer numbers
15731	just above the positive limit.
15732
15733	[tests/tfits.c] Check a non-integer number just below a power of two.
15734
15735	[tests/tfits.c] Also run the tests in reduced exponent range.
15736
15737	[tests/tfits.c] Added tests of non-integer values near the type limits.
15738	This triggers a flags failure for src/fits_* r9649, corresponding to
15739	the bug fixed in r9650 (there were no tests for this bug yet).
15740
15741	[tests/tfits.c] Increased code reuse so that tests could be improved
15742	more easily (not everything is tested yet).
15743
157442016-02-12  Vincent Lefèvre  <vincent@vinc17.net>
15745
15746	[tests/tconst_log2.c] Correction for C++ compilers.
15747
15748	[tests/tcan_round.c] Correction for C++ compilers. Code formatting.
15749
15750	[src/div.c] Coding style.
15751
15752	[src/div.c] Added a TODO for value coverage tests.
15753
15754	[doc/mpfr.texi] Added a comment about mpfr_gamma_inc.
15755
15756	[tests/tgamma_inc.c] Added a TODO.
15757
15758	[src/gamma_inc.c] Detect internal overflow in order to avoid taking
15759	all the memory of the machine, but it is currently not supported:
15760	assertion failure. This was occurring with a = 2^32 and x = 2^(-32)
15761	on 32-bit machines (see change in r10019).
15762
157632016-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15764
15765	reduced a test with large arguments
15766
157672016-02-11  Vincent Lefèvre  <vincent@vinc17.net>
15768
15769	[src/gamma_inc.c] Improved type consistency to avoid integer overflow.
15770
15771	[src/gamma_inc.c] Added some assertions to detect integer overflow.
15772
15773	[tests/tgamma_inc.c] C++/C99 comment → C89 comment.
15774
15775	[src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit
15776	machines (it became wrong with r9964 and --enable-assert).
15777
157782016-02-10  Vincent Lefèvre  <vincent@vinc17.net>
15779
15780	[doc/sum.txt] Added a FIXME for precision 1 (recently added).
15781
157822016-02-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15783
15784	added formula for gamma_inc(-n,x)
15785
157862016-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15787
15788	removed item about speeding up const_euler: done since now for x=1.1,
15789	prec=16610, mpfr_const_euler takes only about 40% of the total time.
15790	For x=1.1 and prec=100000 it takes only about 14% of the total time.
15791
15792	fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc
15793
15794	now mpfr_eint() returns -E1(-x) for x < 0
15795
157962016-02-09  Vincent Lefèvre  <vincent@vinc17.net>
15797
15798	[src/eint.c] Fixed eint(-inf).
15799	[tests/teint.c] Added a corresponding test.
15800
15801	[src/si_op.c] Unified coding style and added logging.
15802
15803	[src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c.
15804
15805	[src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN,
15806	visible when using an UB sanitizer (see r9999).
15807	Note: this integer value is not tested yet in the test suite due to
15808	the lack of generic tests for mpfr_si_div.
15809
15810	[tests/{tgeneric.c,tsi_op.c}] Added TODO.
15811
15812	[src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the
15813	integer is LONG_MIN, visible when using an UB sanitizer (see r9999).
15814
15815	[tests/tgeneric_ui.c] Added tests of the extreme integer values,
15816	so that tsi_op fails with a runtime error in si_op.c r9998 when
15817	using an UB sanitizer (bug fixed in r9999).
15818
15819	[src/eint.c] Code simplification.
15820
15821	[src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub
15822	when the integer is LONG_MIN, visible when using an UB sanitizer.
15823
15824	[src/si_op.c] Code formatting.
15825
15826	[tests/teint.c] Added a test that triggers a runtime error
15827	at si_op.c:42:31 on an x86-64 Linux machine, using:
15828	  CFLAGS="-fsanitize=undefined -fno-sanitize-recover"
15829
15830	[doc/mpfr.texi] Typographic correction.
15831
15832	[tools/mpfrlint] Avoid false positives in mp_exp_t check.
15833
15834	[src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and
15835	completed in r5455), with typo from r6789 corrected.
15836
15837	[doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions":
15838	mpfr_eint changed in MPFR 3.2.
15839
158402016-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15841
15842	update NEWS/TODO with respect to E1
15843
15844	oops, eint(x) was wrong for negative x with |x| >= 0.5
15845
15846	now mpfr_eint(x) returns E1(x) for negative x
15847
158482016-02-08  Vincent Lefèvre  <vincent@vinc17.net>
15849
15850	[doc/mpfr.texi] Correction (spelling).
15851
15852	[tests/tsum.c] Clarified a bit more.
15853
15854	[tests/tsum.c] Added explanations concerning the check1 test.
15855
15856	Value coverage for tsum: reduce output length.
15857
15858	Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not.
15859
158602016-02-07  Vincent Lefèvre  <vincent@vinc17.net>
15861
15862	[tests/tsum.c] Source on 80 columns.
15863
158642016-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15865
15866	extended the check1() test, gives failure on 64-bit processor
15867
15868	fixed note
15869
158702016-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15871
15872	more work on gamma_inc
15873
15874	note about memory usage
15875
158762016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15877
15878	[src/gamma_inc.c] Corrected protection against integer overflow
15879	(MPFR_PREC_IN_RANGE is just for debug mode).
15880
15881	[src/gamma_inc.c] Added protection against integer overflow
15882	(i.e. abort instead of getting incorrect results).
15883
158842016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15885
15886	more work on gamma_inc (only remains the case a=0 and x>0 to implement)
15887
158882016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15889
15890	Removed trailing spaces.
15891
15892	[tests/troot.c] In exact_powers, check negative values too.
15893
15894	[src/root.c] Code simplification.
15895
15896	TODO update for fmma.
15897
158982016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15899
15900	reduced emax
15901
15902	added a test for exact powers for mpfr_root
15903	and fixed mpfr_root for negative x (and odd k)
15904
159052016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15906
15907	[src/root.c] Corrected(?) the check for exact root by adding an
15908	exactness test for the inverse operation z^k (if unnecessary, it
15909	needs to be properly proved and documented).
15910
15911	[src/root.c] Corrected a comment.
15912
15913	[src/root.c] Some minor changes. Updated comments.
15914
159152016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15916
15917	check for an exact root in mpfr_root_aux
15918
15919	fixed bug in mpfr_root and inefficiency problem with large k
15920
159212016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15922
15923	[src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number,
15924	check that EXP(x) is in the current exponent range (debug mode).
15925
15926	[src/exceptions.c] Some changes concerning mpfr_check_range:
15927	  * Added a note about the case EXP(x) < MPFR_EMIN_MIN.
15928	  * Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that
15929	    if the number is not a singular number, then it is really a pure
15930	    FP number (some assertion checking may be done in debug mode),
15931	    but this is not necessarily the case here.
15932	  * Removed an incorrect comment and re-added the MPFR_UNLIKELY for
15933	    the cases where EXP(x) is outside the exponent range. Indeed,
15934	    mpfr_check_range is called at the end of most functions, and
15935	    in most cases, there are no underflows / overflows.
15936
15937	[tests/texp.c] Added FIXME, as the overflow test, which was specific
15938	to the 32-bit ABI, is no longer run.
15939
15940	[tests/tacosh.c] Added a FIXME (huge values no longer tested at all).
15941
15942	[src/fmma.c] Removed unused code.
15943
159442016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15945
15946	added code to compare mpfr_root with exp(log(x)/k)
15947
15948	reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming
15949	MPFR_EMAX_DEFAULT=2^30-1
15950
15951	fixed fmma failure
15952
159532016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15954
15955	[src/exp.c] Simplified exponent range setting in special case.
15956
159572016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15958
15959	changed test_generic() calls to start from MPFR_PREC_MIN instead of 2;
15960	this revealed a special-case code in mpfr_exp which didn't work for prec=1
15961
159622016-02-05  Vincent Lefèvre  <vincent@vinc17.net>
15963
15964	[tests/trint.c] Do the significand parity test only for precision > 1.
15965
159662016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15967
15968	updated NEWS and mpfr.texi for MPFR_PREC_MIN=1
15969
15970	MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754
15971	fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2
15972
15973	fixed test which was assuming MPFR_PREC_MIN=2
15974
15975	fixed to correctly check prec=1
15976
15977	prepare for MPFR_PREC_MIN=1
15978
15979	fixed tcheck for MPFR_PREC_MIN=1
15980
15981	prepare mpfr_pow to work for precision 1
15982
159832016-02-04  Vincent Lefèvre  <vincent@vinc17.net>
15984
15985	[doc/mpfr.texi] Mention the Caramba project-team.
15986
15987	Replaced
15988	  Contributed by the AriC and Caramel projects
15989	by
15990	  Contributed by the AriC and Caramba projects
15991
159922016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
15993
15994	added comment about gamma_inc
15995
159962016-02-04  Vincent Lefèvre  <vincent@vinc17.net>
15997
15998	[src/gamma_inc.c] Added assertions.
15999
160002016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16001
16002	more work on gamma_inc
16003
16004	fixed some special values for gamma_inc
16005
160062016-02-03  Vincent Lefèvre  <vincent@vinc17.net>
16007
16008	[doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for
16009	the MPFR 3.2 release.
16010
160112016-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16012
16013	completed "Added Functions" section
16014
160152016-02-03  Vincent Lefèvre  <vincent@vinc17.net>
16016
16017	[doc/mpfr.texi] Typographic correction.
16018
16019	[src/div.c] Fixed bug introduced in r9902 and visible in the tests
16020	on 32-bit machines.
16021
16022	[src/root.c] Added TODO for code rewrite (discussion between VL and PZ).
16023
16024	[tests/troot.c] Also check that root(0,0) is NaN to make sure that such
16025	special cases are considered in the right order in the implementation.
16026
16027	[doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN.
16028
16029	[src/root.c,tests/troot.c] Removed obsolete code that was commented out;
16030	some cleanup.
16031
16032	[src/root.c] Comment correction (again).
16033
16034	[src/root.c] Comment correction to avoid a variable name with several
16035	meanings.
16036
16037	[src/root.c] Simplified code and corrected comment.
16038
16039	[src/root.c] Corrected a comment and added an assertion (see r9923).
16040
16041	[src/root.c] Added a FIXME comment.
16042
16043	[tests/troot.c] Typo in a comment.
16044
16045	[tests/troot.c] Added tests showing a bug in mpfr_root on large
16046	integer arguments (found thanks to a bug in GNOME Calculator:
16047	<https://bugzilla.gnome.org/show_bug.cgi?id=756960>).
16048
16049	Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value.
16050
160512016-02-02  Vincent Lefèvre  <vincent@vinc17.net>
16052
16053	[src/{erandom.c,nrandom.c}] Updated a reference.
16054
160552016-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16056
16057	mpfr_can_round -> MPFR_CAN_ROUND
16058
160592016-02-02  Vincent Lefèvre  <vincent@vinc17.net>
16060
16061	[doc/mpfr.texi] Updated FIXME for mpfr_can_round.
16062
16063	[doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect...
16064
16065	[doc/mpfr.texi] Updated the month.
16066
16067	[doc/mpfr.texi] Corrected note about mpfr_can_round.
16068
160692016-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16070
16071	refactor the exhaustive search code in mpfr_const_log2
16072
16073	mpfr_round_p -> MPFR_CAN_ROUND
16074
16075	mpfr_can_round -> MPFR_CAN_ROUND
16076
16077	mpfr_can_round -> MPFR_CAN_ROUND
16078
16079	use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p
16080
16081	rounding test was wrong for rounding to nearest
16082
16083	replace mpfr_can_round by mpfr_round_p
16084
160852016-02-02  Vincent Lefèvre  <vincent@vinc17.net>
16086
16087	[src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw
16088	efficiency by only doing a bit inspection (no mpn operations).
16089
160902016-02-01  Vincent Lefèvre  <vincent@vinc17.net>
16091
16092	[tests/tcan_round.c] Added test of mpfr_round_p with powers of two
16093	(similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2).
16094
16095	[tests/tcan_round.c] Updated description: mpfr_round_p is also tested
16096	in check_round_p (and will be in test_pow2).
16097
160982016-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16099
16100	now mpfr_round_p() always requires normalized input
16101
161022016-02-01  Vincent Lefèvre  <vincent@vinc17.net>
16103
16104	[src/div.c] Added an assert based on comments in the code.
16105
16106	[src/round_p.c] Some corrections in comment.
16107
161082016-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16109
16110	added a comment
16111
161122016-01-31  Vincent Lefèvre  <vincent@vinc17.net>
16113
16114	[src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as
16115	mpfr_round_p accepts non-normalized inputs (as decided in r9897),
16116	but not mpfr_can_round_raw (as decided in r9883).
16117
161182016-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16119
16120	the inputs of mpfr_round_p might not always be normalized
16121
161222016-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16123
16124	fixed FIXME
16125
161262016-01-29  Vincent Lefèvre  <vincent@vinc17.net>
16127
16128	[configure.ac] Improved consistency in messages.
16129
16130	[doc/README.dev] Updated instructions on how to cross-compile MPFR
16131	for MinGW (i586-mingw32msvc) and test it under Wine.
16132
161332016-01-29  Vincent Lefèvre  <vincent@vinc17.net>
16134
16135	Cleanup of memory allocation in the tests:
16136	  * only tests_allocate, tests_reallocate and tests_free should be used
16137	    (now exported instead of mpfr_default_allocate, etc.);
16138	  * this is now mentioned in doc/README.dev;
16139	  * added checks to tools/mpfrlint (heuristics as usual).
16140
16141	Note: This follows the discussion at
16142	  https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html
16143	and should solve these problems under MS Windows (mingw32), though this
16144	cleanup is more general than an attempt to fix a Windows issue.
16145
161462016-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16147
16148	fixed case when prec > bn * GMP_NUMB_BITS and directed rounding
16149
16150	typo
16151
161522016-01-28  Vincent Lefèvre  <vincent@vinc17.net>
16153
16154	[tests/tcan_round.c] Updated comment and corrected condition on prec.
16155
16156	[tests/tcan_round.c] Updated comments.
16157
16158	[src/round_p.c] Added an assertion (similar to what was added to
16159	mpfr_can_round_raw). This triggers failures, which could also be
16160	detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div
16161	can internally generate a number that is not normalized before a
16162	rounding test.
16163
16164	[src/round_prec.c] Updated comments.
16165
161662016-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16167
16168	more work on mpfr_can_round
16169
16170	fixed bug in mpfr_can_round for input = 2^k
16171
161722016-01-27  Vincent Lefèvre  <vincent@vinc17.net>
16173
16174	[doc/mpfr.texi] Replaced "Rounding Related Functions" by
16175	"Rounding-Related Functions" (thanks to Keith Briggs for the remark).
16176
16177	[tests/tcan_round.c] Added tests for powers of two. This triggers
16178	errors. I may have done mistakes, but at least x = 2^32, j = 32,
16179	r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy.
16180
161812016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16182
16183	simplified
16184
16185	another detail
16186
161872016-01-27  Vincent Lefèvre  <vincent@vinc17.net>
16188
16189	[doc/mpfr.texi] Corrected mpfr_can_round description again as the
16190	possible difference is on 0+ = 2^(emin-1), not about overflow.
16191	Let's just say "assuming an unbounded exponent range".
16192
16193	[doc/mpfr.texi] Corrected mpfr_can_round description (about overflow).
16194
161952016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16196
16197	yet another improvement
16198
16199	improved documentation
16200
162012016-01-27  Vincent Lefèvre  <vincent@vinc17.net>
16202
16203	[doc/mpfr.texi] Clarified change in r9873.
16204
162052016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16206
16207	improve documentation of mpfr_can_round
16208
16209	also print the rounded value
16210
16211	added pointer to examples/can_round.c
16212
162132016-01-27  Vincent Lefèvre  <vincent@vinc17.net>
16214
16215	[examples/can_round.c] Removed the useless #include <gmp.h> and
16216	replaced the internal mpfr_dump by mpfr_printf.
16217
162182016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16219
16220	improved documentation of mpfr_can_round
16221
16222	added example on how to use mpfr_can_round
16223
162242016-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16225
16226	mention mpfr_set/get_decimal128 for the future (low priority for now)
16227
162282016-01-21  Vincent Lefèvre  <vincent@vinc17.net>
16229
16230	[src/round_p.c] Code formatting.
16231
162322016-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16233
16234	added remark about Ei vs E1
16235
162362016-01-21  Vincent Lefèvre  <vincent@vinc17.net>
16237
16238	[tests/tsqrt.c] Improved bug20160120.
16239
16240	[tests/tsqrt.c] In bug20160120, check the validity of the result with
16241	mpfr_check first, because the mpfr_sqrt was generating invalid data.
16242
162432016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16244
16245	fixed bug in mpfr_sqrt reported by Fredrik Johansson
16246
16247	added test case for bug reported by Fredrik Johansson
16248
16249	added FIXME
16250
162512016-01-20  Vincent Lefèvre  <vincent@vinc17.net>
16252
16253	[tests/tzeta.c] Added casts for printf.
16254
16255	[tests/tzeta.c] Some corrections. Made the input value of the latest
16256	test clear (avoiding a long string at the same time).
16257
162582016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16259
16260	fixed bug for zeta(s) with s near an even negative integer
16261
162622016-01-20  Vincent Lefèvre  <vincent@vinc17.net>
16263
16264	[doc/README.dev] Instructions on how to cross-compile MPFR for MinGW
16265	(i586-mingw32msvc) and test it under Wine.
16266
16267	[doc/README.dev] Typo.
16268
16269	[tests/tgeneric.c] Improved the generic tests in order to trigger the
16270	mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar
16271	bugs: For half cases, the precision of the inputs was modified to be
16272	smaller than the base precision (for the result). Here, this rule is
16273	changed so that if the base precision is small (< 16), then the
16274	precision of the inputs is chosen to be significantly *larger* than
16275	the base precision in general.
16276	Note: With this improvement, both tj0 and tj1 fail in r9840.
16277
162782016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16279
16280	added references
16281
16282	added section about gamma_inc
16283
16284	fixed bug found by Fredrik Johansson
16285
16286	added reference for eint
16287
162882016-01-20  Vincent Lefèvre  <vincent@vinc17.net>
16289
16290	[tests/tj0.c] Avoid mpfr_set_d.
16291
162922016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16293
16294	added bug found by Fredrik Johansson in mpfr_j0
16295
16296	added mpfr_gamma_inc
16297
162982016-01-19  Vincent Lefèvre  <vincent@vinc17.net>
16299
16300	[src/gamma_inc.c] Use MPFR_ARE_SINGULAR.
16301
163022016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16303
16304	deal with the case where one of a or x is not regular
16305
163062016-01-19  Vincent Lefèvre  <vincent@vinc17.net>
16307
16308	[tools/nightly-test] Corrected tests.
16309
163102016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16311
16312	added reference
16313
163142016-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16315
16316	added the incomplete beta function
16317
16318	incomplete Gamma is now available
16319
16320	switch to bash and add --enable-decimal-float
16321
16322	minor modification of documentation for mini-gmp
16323
16324	added target "make bench"
16325
163262016-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16327
16328	allow tgamma x prec to print gamma(x) to prec bits
16329
163302016-01-17  Vincent Lefèvre  <vincent@vinc17.net>
16331
16332	[tests] Added tgamma_inc to svn:ignore property.
16333
16334	TODO update.
16335
16336	[src/fmma.c] Removed trailing spaces.
16337
16338	[tests/tgamma_inc.c] Portability correction.
16339
16340	[src/mpfr.h] Improved a comment.
16341
16342	[src/gamma_inc.c] Various corrections.
16343
163442016-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16345
16346	first version of incomplete Gamma function (work in progress)
16347
163482016-01-16  Vincent Lefèvre  <vincent@vinc17.net>
16349
16350	TODO for correctly rounded polynomials (like fmma).
16351
163522016-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16353
16354	try to fix bugs in fmma (work in progress)
16355
163562016-01-15  Vincent Lefèvre  <vincent@vinc17.net>
16357
16358	[src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than
16359	mpfr_log on some values of n, e.g. around ULONG_MAX/3.
16360
16361	[tests/tlog_ui.c] Added tests for n around ULONG_MAX/3.
16362
16363	[src/log_ui.c] Fixed the computation of p.
16364
16365	[src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment.
16366	This -1 came from the previous code, but this doesn't change the
16367	value of k because a multiple of 3 cannot be a power of 2. Also
16368	renamed a variable.
16369
16370	[src/log_ui.c] Compute the value of k without rounding (if n was larger
16371	than 2^53 or even 2^24 due to dynamic x87 precision, the result could
16372	be wrong) and overflow (3 * n doesn't always fit in a limb).
16373
16374	[src/log_ui.c] Added assertions.
16375
16376	[tests/tlog_ui.c] Added tests for n around LONG_MAX.
16377
16378	[src/log_ui.c] Replaced a comment by an assertion.
16379
16380	[src/log_ui.c] Added a FIXME (integer overflow for large n).
16381
16382	[tests/tlog_ui.c]
16383	  * In the loop, do not test n = 0 and n = 1, because mpfr_can_round
16384	    always fails for these values, so that the test is pointless.
16385	  * Check that mpfr_can_round no longer fails (this is possible as
16386	    we are not doing random tests, i.e. the tested values are known);
16387	    the additional precision for y had to be increased.
16388	  * Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When
16389	    GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover
16390	    is used, it signals an error for large values of n.
16391	  * The reference values y are obtained with mpfr_log instead of
16392	    mpfr_log_ui: indeed we need a different implementation from the
16393	    tested function, otherwise only the rounding is tested! Without
16394	    GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy
16395	    for large values of n.
16396
16397	[tests] Added tfmma and tlog_ui to svn:ignore property.
16398
16399	[src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of
16400	out-of-range exponent instead of uncontrolled behavior.
16401
16402	[tests/tfmma.c] Added tests that trigger an error.
16403
16404	[src/fma.c] Added a comment for the new code.
16405
164062016-01-14  Vincent Lefèvre  <vincent@vinc17.net>
16407
16408	[tests/Makefile.am] Tests in lexicographic order.
16409
164102016-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16411
16412	in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y)
16413
16414	forgot in last commit
16415
16416	added new function mpfr_log_ui
16417
164182016-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16419
16420	adapted to 3- and 4-argument functions (using patch from Patrick Pelissier)
16421
164222016-01-12  Vincent Lefèvre  <vincent@vinc17.net>
16423
16424	[tests/tfmma.c] C++ compatibility.
16425
16426	[tests/tfmma.c] Fixed type in printf.
16427
16428	[src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
16429
16430	Really replaced mpfr_printf by printf.
16431
164322016-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16433
16434	give copyright to FSF
16435
16436	replaced mpfr_printf calls
16437
16438	changed copyright (I'm the sole author of this part of the code)
16439
16440	forgot two files
16441
164422016-01-12  Vincent Lefèvre  <vincent@vinc17.net>
16443
16444	[src/fma.c] C89 compatibility correction.
16445
16446	[src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).
16447
164482016-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16449
16450	speedup in mpfr_fma and mpfr_fms
16451	new functions mpfr_fmma and mpfr_fmms
16452	modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better)
16453
164542016-01-08  Vincent Lefèvre  <vincent@vinc17.net>
16455
16456	[doc/README.dev] Added info about the parallel test harness.
16457
16458	Updated documentation related to valgrind or other wrapper for the tests
16459	due to the fact that Automake 1.13+ generates a parallel test harness.
16460	  * doc/README.dev: replaced VALGRIND by LOG_COMPILER.
16461	  * tests/Makefile.am: added a comment mentioning LOG_COMPILER.
16462
164632016-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16464
16465	mpfrbench: use clock() when getrusage() is not available
16466
164672016-01-02  Vincent Lefèvre  <vincent@vinc17.net>
16468
16469	[INSTALL] Added a note about tuning MPFR:
16470	  For the current GMP version (6.1.0), a Unix-like OS is required.
16471
164722016-01-01  Vincent Lefèvre  <vincent@vinc17.net>
16473
16474	[doc/mpfr.texi] Updated the month.
16475
16476	Copyright notice update: added 2016 with
16477	  perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/
16478	               " ".($1||"$2-").($2+1)/e' **/*(^/)
16479	under zsh (the m4 and tools/mbench directories were not modified).
16480	Removed 2015 from the example in the doc/README.dev file.
16481
164822015-12-28  Vincent Lefèvre  <vincent@vinc17.net>
16483
16484	[src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition
16485	(patch by Patrick Pélissier).
16486
164872015-12-27  Vincent Lefèvre  <vincent@vinc17.net>
16488
16489	[tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with
16490	builds outside the source directory (objdir different from srcdir).
16491	This did not generate an error, but prevented a test from being done.
16492	Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c
16493	file (there does not seem to be a valid reason not to include it), we
16494	can use src_fopen to open the file in all cases.
16495
16496	[tests] In tversion.c, output the locale too (if supported).
16497
16498	[tests/tinp_str.c] Added a blank line.
16499
16500	[tests]
16501	  * inp_str.dat: added a locale-independent line at the beginning of
16502	    the file (useful for mpf_compat).
16503	  * mpf_compat.h, tinp_str.c: update because of this change.
16504
16505	[tests/tests.c] Improved src_fopen description (do not use the term
16506	"src directory" because there is a directory named "src", but this
16507	is not what is referred here).
16508
165092015-12-26  Vincent Lefèvre  <vincent@vinc17.net>
16510
16511	[tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat"
16512	due to the file rename in r8120 (otherwise nothing is tested).
16513
16514	[tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings
16515	with ".", since for GMP the decimal separator is locale dependent (the
16516	tests can be run in non-C locales on purpose in order to detect issues
16517	in various locales), so that for the mpf_compat test, the conversion
16518	fails and the mpf value x is set to 0 (which can yield other problems,
16519	such as with mpf_div (y, x, x), which raises an exception).
16520	Note: this problem appeared in r9157, where tests_start_mpfr() was added
16521	to mpf_compat.h (the locale setting is done in this function).
16522
165232015-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16524
16525	patch from Patrick Pelissier (for MinGW)
16526
165272015-12-15  Vincent Lefèvre  <vincent@vinc17.net>
16528
16529	[tests/tsum.c] Corrections for C++.
16530
165312015-12-14  Vincent Lefèvre  <vincent@vinc17.net>
16532
16533	Removed trailing spaces.
16534
165352015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16536
16537	review by Rob (sisyphus1@optusnet.com.au)
16538
16539	removed obsolete parts (?) for MinGW
16540
16541	new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman
16542
165432015-12-14  Vincent Lefèvre  <vincent@vinc17.net>
16544
16545	[INSTALL] Switch to UTF-8.
16546
165472015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16548
16549	changes proposed by Alexander (sav_ix@ukr.net)
16550
165512015-12-14  Vincent Lefèvre  <vincent@vinc17.net>
16552
16553	[tests/tsum.c] Correction.
16554
165552015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16556
16557	clock() should work everywhere
16558
165592015-12-14  Vincent Lefèvre  <vincent@vinc17.net>
16560
16561	[tests/tsum.c] The timing test from r9753 in POSIX-only.
16562
16563	[doc/mpfr.texi] Updated the month.
16564
165652015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16566
16567	update INSTALL file
16568
16569	-D__USE_MINGW_ANSI_STDIO is needed for GMP only
16570
165712015-12-11  Vincent Lefèvre  <vincent@vinc17.net>
16572
16573	[src/sum.c] Updated comment about overlapping between input and output.
16574
165752015-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16576
16577	document that (currently) mpfr_sum doesn't allow overlap
16578
16579	timing test to compare mpfr_sum and naive algorithm (without correct rounding)
16580
16581	update wrt -D__USE_MINGW_ANSI_STDIO
16582
16583	note about MinGW and TLS support
16584
16585	improving error message
16586
165872015-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16588
16589	added comment and message for errors under MinGW
16590
165912015-12-03  Vincent Lefèvre  <vincent@vinc17.net>
16592
16593	[src/mpfr-impl.h] Updated a comment about clang and division by 0.
16594
165952015-11-11  Vincent Lefèvre  <vincent@vinc17.net>
16596
16597	[doc/sum.txt] Update.
16598
16599	[doc/sum.txt] Update.
16600
16601	[doc/sum.txt] Minor correction.
16602
166032015-11-10  Vincent Lefèvre  <vincent@vinc17.net>
16604
16605	[doc/sum.txt] Minor correction.
16606
16607	[doc/sum.txt] Minor correction.
16608
16609	[doc/sum.txt] Update.
16610
16611	[doc/sum.txt] Clarification: avoid the word "iteration" for the loop
16612	over the inputs, when possible.
16613
16614	[doc/sum.txt] Update.
16615
16616	[doc/sum.txt] Update.
16617
16618	[doc/sum.txt] Update.
16619
166202015-11-09  Vincent Lefèvre  <vincent@vinc17.net>
16621
16622	[src/sum.c] Added a FIXME comment about the reuse of an input for the
16623	output.
16624
166252015-11-06  Vincent Lefèvre  <vincent@vinc17.net>
16626
16627	GMP 5.0.0 or newer is required (instead of 4.2.0).
16628
16629	[doc/sum.txt] Major and final update (complete rewrite).
16630
16631	[src/mpfr-gmp.h] Added a TODO.
16632
16633	[src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR).
16634
166352015-11-05  Vincent Lefèvre  <vincent@vinc17.net>
16636
16637	[src/sum.c] Minor comment correction.
16638
16639	[src/sum.c] Added another assertion (checked).
16640
16641	[src/sum.c] Added assertions (checked).
16642
166432015-11-04  Vincent Lefèvre  <vincent@vinc17.net>
16644
16645	[tests/tsum.c] Added a comment.
16646
16647	[TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed
16648	in r9722.
16649
16650	[src/sum.c] Bug fix: an error bound was too large to compute the sign
16651	of the secondary term (when the TMD occurs).
16652
166532015-11-03  Vincent Lefèvre  <vincent@vinc17.net>
16654
16655	[tests/{tstdint.c,tvalist.c}] Updated and improved comment about the
16656	test of partial + full <mpfr.h> inclusion.
16657
16658	[configure.ac] C code starting with # (preprocessor directives) must not
16659	be indented.
16660
166612015-11-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16662
16663	simplify the configuration with mini-gmp
16664
166652015-10-30  Vincent Lefèvre  <vincent@vinc17.net>
16666
16667	[src/sum.c] Updated comment for sum_raw().
16668
166692015-10-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16670
16671	better definition of GMP_NUMB_BITS
16672
166732015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16674
16675	update description of file
16676
166772015-10-29  Vincent Lefèvre  <vincent@vinc17.net>
16678
16679	[tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug.
16680
166812015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16682
16683	more tests do work with mini-gmp (from GMP 6.1.0-rc1)
16684
166852015-10-29  Vincent Lefèvre  <vincent@vinc17.net>
16686
16687	[tools/mpfrlint] For the tests on the source files, ignore everything
16688	related to mini-gmp, not just the src/mini-gmp.[ch] files.
16689
16690	[doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE.
16691
16692	[tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug.
16693
166942015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16695
16696	fixed replacement for mpn_neg (return value was wrong)
16697
16698	adapt for mini-gmp (from GMP 6.1.0-rc1)
16699
16700	replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp
16701
167022015-10-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16703
16704	adapt mini-gmp stuff to GMP 6.1.0-rc1
16705
16706	replace obsolete mpz_div by mpz_tdiv_q
16707
167082015-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16709
16710	fix bug reported by Ricky Farr
16711	(https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html)
16712
167132015-10-22  Vincent Lefèvre  <vincent@vinc17.net>
16714
16715	[autogen.sh] Restore the INSTALL file also if the process receives
16716	a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM).
16717
16718	[tests/tversion.c] Added a comment about compiler info.
16719
16720	[tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and
16721	__GNUC_PATCHLEVEL__, output __VERSION__, which gives more
16722	information (for GCC development versions and ICC).
16723
167242015-10-21  Vincent Lefèvre  <vincent@vinc17.net>
16725
16726	[src/sum.c] Updated comment for sum_raw().
16727
167282015-09-15  Vincent Lefèvre  <vincent@vinc17.net>
16729
16730	[doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags.
16731
16732	[doc/mpfr.texi] Updated the month.
16733
16734	[doc/mpfr.texi] Changed "returned value" to "return value" when this
16735	is the value returned by the C function (synonymous, but sometimes
16736	less ambiguous).
16737
16738	[doc/mpfr.texi] For r9689, "returned value" → "return value".
16739
16740	[doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj}
16741	and mpfr_get_z (inexact flag, and returned value for mpfr_get_z).
16742
16743	[tests/tget_z.c] Fixed and improved the check_one() test.
16744	  * The input value was modified at each iteration, giving z = 0 very
16745	    quickly, so that not much was tested in practice; in particular,
16746	    the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never
16747	    properly tested (since it has no effect for z = 0).
16748	  * Added various tests of the flags.
16749
16750	[tests/tget_z.c] Optimized the check_one() test.
16751
167522015-09-10  Vincent Lefèvre  <vincent@vinc17.net>
16753
16754	Merged the win-thread-safe-dll branch: support build as thread-safe DLL
16755	on Windows: changes from Stephan Tolksdorf
16756	  https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
16757	+ a correction and some consistency checks. See MPFR bug 19537 on:
16758	https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619
16759
16760	[src/mpfr-impl.h] Resolved the problem under Linux.
16761
16762	[src/mpfr-impl.h] Detect some possible inconsistencies under Unix,
16763	when some macro should imply a MS-Windows platform.
16764
16765	Merged the latest changes from the trunk since this wasn't the cause
16766	of the problem.
16767
16768	Applied changes from Stephan Tolksdorf:
16769	  https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
16770	The MPFR build fails on my Linux machine with
16771	  CFLAGS=-Werror=missing-prototypes
16772	because MPFR_WIN_THREAD_SAFE_DLL gets defined (this CFLAGS just allowed
16773	me to detect the problem with MPFR_WIN_THREAD_SAFE_DLL, which could have
16774	otherwise remained unnoticed).
16775
16776	Include config.h when need be.
16777
167782015-09-07  Vincent Lefèvre  <vincent@vinc17.net>
16779
16780	[TODO] Updated mpz_t caching item, suggesting mpz_init2 instead.
16781
16782	[TODO] Added: check whether mpz_t caching is necessary (this was
16783	committed in r8911). In short, timings should be done with -static
16784	(this wasn't clear), they may depend on the malloc implementation,
16785	and after a look at the source, the difference in the timings with
16786	mpz_t caching is surprising and should be explained.
16787
167882015-09-04  Vincent Lefèvre  <vincent@vinc17.net>
16789
16790	[tools/ck-copyright-notice] Check src/mparam_h.in instead of the
16791	generated (and not distributed) src/mparam.h file; this is also
16792	useful to avoid an error after running "make tune".
16793
167942015-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16795
16796	distribute the mpfrbench README
16797
16798	add a README for mpfrbench
16799
168002015-09-04  Vincent Lefèvre  <vincent@vinc17.net>
16801
16802	More details in a comment about assertions via tuneup.
16803
168042015-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16805
16806	fixed failed assertion during "make tune"
16807
168082015-08-25  Vincent Lefèvre  <vincent@vinc17.net>
16809
16810	[tests/tget_z.c] Flags testing.
16811
16812	[doc/README.dev] Updated a URL.
16813
16814	[tests/tstdint.c] Support MPFR_PRINTF_MAXLM.
16815
16816	[tests/tget_sj.c] Support MPFR_PRINTF_MAXLM.
16817
16818	[tests/tget_sj.c] Typo.
16819
16820	[acinclude.m4] Instead of checking whether the 'j' printf length
16821	modifier is working, try to find one that works.
16822
16823	[acinclude.m4] Check whether the 'j' printf length modifier is working.
16824
16825	[tests/tget_sj.c] Improved check_erange (more flags testing).
16826
16827	[tests/tget_sj.c] Improved check_sj and check_uj even more.
16828
16829	[tests/tget_sj.c] Improved check_sj and check_uj (flags testing).
16830
168312015-08-24  Vincent Lefèvre  <vincent@vinc17.net>
16832
16833	[tests/tfits.c] New tests at the limits of the types.
16834
16835	[tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check
16836	that the flags are not modified and added tests of -Inf and -0.
16837
16838	[tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions,
16839	check that the flags are not modified and added tests of -Inf and -0.
16840
168412015-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16842
16843	fixed the AMD K8 tuning (cf r8118)
16844
168452015-08-24  Vincent Lefèvre  <vincent@vinc17.net>
16846
16847	[tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test.
16848
16849	[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions:
16850	the flags could be modified, which made the new mpfr_get_{si,ui} tests
16851	fail (tests/tset_si.c r9649).
16852
16853	[tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags.
16854
168552015-08-20  Vincent Lefèvre  <vincent@vinc17.net>
16856
16857	[src/mparam_h.in] Improved comment: __amd64__ is generic to all
16858	x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus
16859	suggest to move mparam.h files to more meaningful locations.
16860
16861	[configure.ac] Added test for usability of gmp.h at link time
16862	(merged changeset r9644 from the 3.1 branch, with minor changes
16863	due to the fact that a known problem between GMP 4.1 and GCC 5
16864	can no longer occur, now that we require GMP 4.2.0 or newer).
16865
168662015-08-19  Vincent Lefèvre  <vincent@vinc17.net>
16867
16868	[doc/README.dev] "To make a release": mention abi-compliance-checker.
16869
168702015-07-31  Vincent Lefèvre  <vincent@vinc17.net>
16871
16872	[src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot
16873	20150722-1 due to -Werror=array-bounds, but the code looks OK).
16874	Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077
16875
168762015-07-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
16877
16878	remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster
16879	(https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html)
16880
168812015-07-30  Vincent Lefèvre  <vincent@vinc17.net>
16882
16883	[src/next.c] Added a note concerning the exceptions.
16884
168852015-07-20  Vincent Lefèvre  <vincent@vinc17.net>
16886
16887	[doc/mpfr.texi] Updated the month.
16888
16889	[tests/tversion.c] Output MPFR_VERSION_STRING too.
16890
16891	[tests/tversion.c] Check and output additional mpfr_buildopt_* info.
16892
16893	Added mpfr_rint_roundeven and mpfr_roundeven functions, with
16894	documentation and tests.
16895
168962015-07-16  Vincent Lefèvre  <vincent@vinc17.net>
16897
16898	[tests/tfrexp.c]
16899	  * Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP
16900	    macro in order to make sure that an assertion failure is triggered
16901	    in case of singular number (see also the comment added in r9618).
16902	  * Fixed the remaining problem due to an overflow and infinite value.
16903
16904	[src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp()
16905	macro, defined in addition to the function.
16906
169072015-07-15  Vincent Lefèvre  <vincent@vinc17.net>
16908
16909	[tests/tfrexp.c] Simplification: merged the tests on the ternary values,
16910	the returned MPFR values and the flags.
16911
16912	[src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in
16913	rounding to nearest when the exact result is -2^(emin-2), i.e. the
16914	middle of 0 and the minimum negative number in absolute value (the
16915	correction in r5517 was incorrect/incomplete).
16916
16917	[src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow.
16918
16919	[tests/tmul_2exp.c] Extended the underflow() test to negative numbers,
16920	triggering a new bug.
16921
16922	[src/frexp.c] Added a comment.
16923
169242015-07-02  Vincent Lefèvre  <vincent@vinc17.net>
16925
16926	[tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been
16927	modified, in order to take it into account in the patch. This is needed
16928	since the mpfr.info file is distributed in the tarball.
16929
16930	[tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence")
16931	with common words that end with a capital letter.
16932	(merged changeset r9603 from the 3.1 branch)
16933
169342015-06-28  Vincent Lefèvre  <vincent@vinc17.net>
16935
16936	[TODO] Updated URL of TS 18661-4.
16937
169382015-06-26  Vincent Lefèvre  <vincent@vinc17.net>
16939
16940	[src/frexp.c] Handle internal overflow.
16941
16942	[tests/tfrexp.c] Forgot a "exit (1);".
16943
16944	[tests/tmul_2exp.c] Overflow test: more output info; improved code.
16945
16946	[src/mul_2si.c] Fixed overflow case when n = 0.
16947	[tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and
16948	mpfr_mul_2si too (mpfr_mul_2ui was OK).
16949
16950	[src/div_2si.c] Fixed overflow case when n = 0.
16951	[tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too.
16952
16953	[src/div_2ui.c] Fixed overflow case (can occur only when n = 0).
16954	[tests/tmul_2exp.c] Completed the overflow test.
16955
16956	[tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui
16957	unhandled-overflow bug).
16958
16959	[tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which
16960	is currently not handled.
16961
16962	[src/frexp.c] Fixed a bug occurring when the current exponent range
16963	does not contain 0.
16964
169652015-06-25  Vincent Lefèvre  <vincent@vinc17.net>
16966
16967	[src/check.c] Typo in a comment.
16968
169692015-06-19  Vincent Lefèvre  <vincent@vinc17.net>
16970
16971	[tools/announce-text] Update due to recent InriaForge upgrade.
16972
169732015-06-16  Vincent Lefèvre  <vincent@vinc17.net>
16974
16975	[doc/mpfr.texi] Added a paragraph about the multiple use of MPFR.
16976
16977	[TODO] Added: use symbol versioning.
16978
169792015-06-12  Vincent Lefèvre  <vincent@vinc17.net>
16980
16981	[doc/faq.xsl] Remove the indent="no" to get the same behavior as before
16982	when using libxslt 1.1.27+. See:
16983	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10
16984
16985	[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
16986	test FMA(-x,y,-z).
16987
16988	[src/fma.c] Completely fixed the scaling in case of underflow.
16989
16990	[src/fma.c] Partially fixed the scaling in case of underflow,
16991	corresponding to the testcase from r9566. Double rounding is
16992	not handled yet (failure triggered by r9567).
16993
16994	[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
16995	yield some cases with double rounding when scaling: If the only fix
16996	in src/fma.c is to change the rounding mode of the last mpfr_div_2ui
16997	(computing s / 2^scale) to rnd_mode, a new failure appears for n = 2,
16998	k = 4, s = -1, MPFR_RNDN.
16999
17000	[tests/tfma.c] Corrected the new underflow tests to really generate
17001	underflows, showing a bug in mpfr_fma.
17002
17003	[src/fma.c] Added log messages.
17004
17005	[tests/tfma.c] The code removed in r9560 was actually necessary,
17006	but do this in a better way.
17007
170082015-06-11  Vincent Lefèvre  <vincent@vinc17.net>
17009
17010	[tests/tfma.c] Added other underflow tests.
17011
17012	[tests/tfma.c] Some improvements.
17013
17014	[tests/tfma.c] GNU coding style.
17015
17016	[tests/tfma.c] Removed code that isn't necessary.
17017
17018	[doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and
17019	-DMPFR_ALLOCA_MAX=0 tests.
17020
170212015-06-10  Vincent Lefèvre  <vincent@vinc17.net>
17022
17023	[tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands.
17024
17025	[tests/trandom.c] Improved latest change, as some other test already
17026	assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last
17027	random number of the test is checked).
17028
17029	[tests/trandom.c]
17030	  * Get a non-zero fixed-point number whose first 32 bits are 0 with the
17031	    default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in
17032	    src/urandomb.c (fixed in r8762) with the 32-bit ABI.
17033	  * Output a warning (with a fatal error when the MPFR_COV_CHECK macro
17034	    is defined) if one doesn't get such a number, probably because the
17035	    GMP PRNG has changed.
17036
17037	[src/sqrt.c] The bug fixed in r9540 actually came from r9014, which
17038	incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the
17039	previous code (re-adding the assertion check), keeping my comment
17040	from r9540 to explain why we don't use MPFR_SET_EXP.
17041
17042	[tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539:
17043	the tests were done in all rounding modes, but the code was incorrect
17044	if the exponent of the result depended on the rounding mode. So, the
17045	tests are now done only in the rounding mode previously selected. This
17046	should be sufficient to detect bugs.
17047
17048	[src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range
17049	was not restored in some cases (some large results). Bug introduced
17050	in r8917 (trunk only).
17051
17052	[src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced
17053	in r6461 with the use of mpfr_sincos_fast.
17054	Details:
17055	  For mpfr_sin, the exponent range was not restored, and restoring it
17056	  before calling mpfr_sincos_fast as this was done for mpfr_cos did
17057	  not work; indeed the source of this function shows that it needs an
17058	  extended exponent range. So, changed both mpfr_cos and mpfr_sin to
17059	  call mpfr_sincos_fast in the extended exponent range and restore the
17060	  exponent range at the end, like in usual code.
17061
17062	[tests/tgeneric.c] Check whether the exponent range has been
17063	modified by the tested function (which should never happen).
17064	This check triggers failures in tlgamma, tlngamma and tsin.
17065
17066	[src/sqrt.c] Fixed assertion failure in reduced exponent range.
17067	Note: This could happen only in very specific exponent ranges,
17068	in particular, which do not include the number 1.
17069
17070	[tests/tgeneric.c] Added overflow/underflow tests (→ 4 failed tests).
17071
170722015-06-08  Vincent Lefèvre  <vincent@vinc17.net>
17073
17074	[src/zeta_ui.c]
17075	  * Support reduced exponent range for the generic case.
17076	  * Added logging.
17077	[tests/tzeta_ui.c] Added tests in reduced exponent range.
17078
17079	[src/add_ui.c] Fixed format string in MPFR_LOG_FUNC.
17080
170812015-06-07  Vincent Lefèvre  <vincent@vinc17.net>
17082
17083	[tests/tzeta_ui.c] Code simplification.
17084
17085	[tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all
17086	rounding modes.
17087
17088	[src/zeta_ui.c] Fixed zeta(0) in reduced exponent range.
17089	[tests/tzeta_ui.c] Added testcase.
17090
170912015-06-05  Vincent Lefèvre  <vincent@vinc17.net>
17092
17093	[src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range.
17094
17095	[tests/tui_sub.c] Check overflow.
17096
17097	[tests/tui_div.c] Check overflow.
17098
17099	[tests/tgeneric.c] Removed useless parentheses.
17100
17101	[tests/tgeneric.c] Special cases with unsigned long argument.
17102
17103	[tests/tpow_all.c] Better flags output in error message.
17104
171052015-06-04  Vincent Lefèvre  <vincent@vinc17.net>
17106
17107	[src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary
17108	overflow or underflow (extreme cases).
17109
17110	[src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed
17111	in the extreme case cd != 0, and safer in general.
17112
17113	[tests/tset_q.c] Check the flags.
17114
17115	[src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set.
17116
17117	[tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c,
17118	showing a bug in mpfr_mul_ui (missing inexact flag).
17119
17120	[tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion
17121	failures (due to a reduced exponent range) when assertions are checked.
17122
17123	[tests/tgeneric.c] Major clean-up, with some minor corrections.
17124	Added support for unsigned long argument, which can be the first
17125	or the second one (another intent is to replace tgeneric_ui.c,
17126	which does fewer tests concerning the flags).
17127
17128	[tests/tdiv_d.c] Corrected the tested function for the generic tests.
17129
17130	[tests/td_div.c] Corrected the tested function for the generic tests.
17131
17132	[tests/tui_sub.c] Minor improvements.
17133
17134	[tests/tgeneric_ui.c] Added missing \n. Minor improvements.
17135
17136	[tests/tui_div.c] Minor improvements.
17137
171382015-06-03  Vincent Lefèvre  <vincent@vinc17.net>
17139
17140	[tests/trint.c] Corrected the description (copy-paste error in r9473).
17141
17142	[src/rint.c] Handle reduced exponent range.
17143
17144	[tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4
17145	(|x| < 1) are special cases in the implementation.
17146
17147	[tests/trint.c] Also run BASIC_TEST in reduced exponent range
17148	(emin = emax = EXP(x)).
17149
17150	[tests/trint.c] Also run BASIC_TEST2 in reduced exponent range
17151	(emin = emax = EXP(x)).
17152
17153	[src/rint.c] Added a comment about the mpfr_rint_* functions.
17154
17155	[src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some
17156	corner cases, an intermediate overflow would not be propagated. No
17157	testcases added for this particular problem since huge precision
17158	numbers would be involved.
17159
171602015-06-02  Vincent Lefèvre  <vincent@vinc17.net>
17161
17162	[doc/mpfr.texi] Added description of the flags for the mpfr_rint,
17163	mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions.
17164
171652015-06-01  Vincent Lefèvre  <vincent@vinc17.net>
17166
17167	[tests/trint.c] In the basic tests, test the flags.
17168
171692015-05-31  Vincent Lefèvre  <vincent@vinc17.net>
17170
17171	[tests/trint.c] Corrections for r9476 and r9477.
17172
17173	[configure.ac] For the gcc compiler, better choice of the -W flags
17174	when the selected language is C++ (e.g. when CC=g++).
17175
171762015-05-29  Vincent Lefèvre  <vincent@vinc17.net>
17177
17178	[tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round}
17179	functions.
17180
17181	[tests/trint.c] Added basic tests of the mpfr_rint_* functions.
17182
17183	[doc/mpfr.texi] Added blank lines to improve readability.
17184
17185	[tests/trint.c] Updated the description (test_generic_round is now
17186	tested, which wasn't done at all before).
17187
17188	[tests/trint.c] Added generic tests for the mpfr_rint_* functions.
17189	Since all numbers in ]0,1/2[ round to the same value, in order to
17190	avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20
17191	and set TEST_RANDOM_ALWAYS_SCALE to 1.
17192	Note: only these new tests generate an error if the change of the
17193	exponent range is no longer done in these mpfr_rint_* functions.
17194
171952015-05-29  Vincent Lefèvre  <vincent@vinc17.net>
17196
17197	[tests] Added always_scale argument (boolean) to tests_default_random()
17198	so that when it is true, scaling is always performed on random numbers
17199	generated by mpfr_urandomb(), instead of preferring numbers of the order
17200	of magnitude of 1 for half outputs. This will be useful for mpfr_rint_*
17201	tests.
17202
17203	For tgeneric.c, the value of this argument is controlled by a new macro
17204	TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current
17205	behavior). For the other tests that call tests_default_random(), the
17206	argument is set to 0, so that the behavior remains the same.
17207
172082015-05-29  Vincent Lefèvre  <vincent@vinc17.net>
17209
17210	[doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions.
17211
172122015-05-28  Vincent Lefèvre  <vincent@vinc17.net>
17213
17214	[src] Fixed allocation issue for multithreaded applications:
17215	https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
17216	  * mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and
17217	    mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute
17218	    mp_get_memory_functions only when these pointers have not been set
17219	    to the actual function pointers yet.
17220	  * mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h,
17221	    where MPFR_THREAD_ATTR is now used).
17222
172232015-05-25  Vincent Lefèvre  <vincent@vinc17.net>
17224
17225	[src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func
17226	by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate
17227	and mpfr_tmp_free respectively, fixing the crash in talloc.
17228	See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
17229
17230	[tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact
17231	that the MPFR_ALLOCA_MAX macro is not defined in this case.
17232
172332015-05-23  Vincent Lefèvre  <vincent@vinc17.net>
17234
17235	Added libtool-tcc-rpath.patch from
17236	  https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html
17237	so that tcc can be used with libtool 2.4.3 to 2.4.6.
17238	In doc/README.dev, documented how to use this patch (before a release).
17239
17240	[tests] Added talloc.c and updated check_PROGRAMS in Makefile.am.
17241	This test detects an allocation bug added in r8813, which occurs
17242	if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when
17243	the GMP build is not used (thus this bug is not visible in most
17244	code since mpfr_init2 is generally called first, directly or not,
17245	and it uses __gmp_allocate_func). Details:
17246	  https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
17247
17248	[tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h"
17249	(detected with gcc -Werror=implicit-function-declaration), needed
17250	since r9447.
17251
172522015-05-22  Vincent Lefèvre  <vincent@vinc17.net>
17253
17254	[src/mpfr-gmp.c] Code formatting.
17255
17256	[tests/tstckintc.c] Fixed undefined behavior (invalid pointer).
17257
17258	Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by
17259	temporary allocations (default: 16384).
17260
17261	[tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr,
17262	in particular to detect a wrong MPFR version (due to a libtool bug).
17263
172642015-05-21  Vincent Lefèvre  <vincent@vinc17.net>
17265
17266	[autogen.sh] Exit with the exit status of autoreconf. Thus a failure
17267	will be noticed more easily.
17268
17269	[NEWS] Update.
17270
17271	[acinclude.m4] Added a comment about memmove and memset being considered
17272	to be missing when gcc -Werror is used, because of a "conflicting types
17273	for built-in function" error.
17274
17275	[acinclude.m4] Various corrections in the tests:
17276	  * MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo.
17277	  * MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp.
17278	  * Replaced rint by nearbyint in messages (as nearbyint is tested).
17279	  * Avoid warnings to avoid failures when -Werror is used.
17280
172812015-05-20  Vincent Lefèvre  <vincent@vinc17.net>
17282
17283	[tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused
17284	variables when MPFR_ERRDIVZERO is defined (useful with -Werror).
17285
17286	[tests/tests.c] Avoid a warning concerning an unused variable
17287	when HAVE_DENORMS is not defined (useful with -Werror).
17288
172892015-05-19  Vincent Lefèvre  <vincent@vinc17.net>
17290
17291	[doc/mpfr.texi] Improved mpfr_swap description again.
17292
17293	[doc/mpfr.texi] Correction and improvements in the formatting.
17294
17295	[doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round
17296	about allocation issue, as these functions change the precision of x.
17297
17298	[doc/mpfr.texi] Typo in the latest change.
17299
17300	[doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve
17301	the documentation issue reported on:
17302	  https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619
17303
173042015-05-18  Vincent Lefèvre  <vincent@vinc17.net>
17305
17306	[doc/sum.txt] Update (preliminary steps).
17307
173082015-05-13  Vincent Lefèvre  <vincent@vinc17.net>
17309
17310	[doc/sum.txt] Started the rewrite of the doc.
17311
173122015-05-06  Vincent Lefèvre  <vincent@vinc17.net>
17313
17314	[NEWS] Update concerning mpfr_sum.
17315
17316	[doc/mpfr.texi] Update concerning mpfr_sum.
17317
17318	[doc/sum.txt] The specification of the sign of a zero result only
17319	applies to an exact zero, of course (for an inexact zero result,
17320	the usual rule of the rounding mode is applied).
17321
17322	[tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's
17323	AddressSanitizer).
17324
17325	[doc/README.dev] "To make a release": Test with GCC's AddressSanitizer
17326	(-fsanitize=address).
17327
17328	[tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__
17329	is defined, i.e. when GCC's AddressSanitizer is used, because it
17330	reports the error before GMP can do the abort.
17331
173322015-05-05  Vincent Lefèvre  <vincent@vinc17.net>
17333
17334	[tests/tests.c] Make tests_default_random() more intuitive, avoiding
17335	automatic changes of the current exponent range in some cases: instead
17336	of adding some random exponent in [emin,emax] to the exponent of the
17337	random number x in ]0,1[, force this random exponent to be the one of
17338	x, so that its exponent is guaranteed to be in [emin,emax]. This avoids
17339	a failure in tsum due to the fact that the exponent range was changed
17340	automatically (and not restored).
17341
17342	[tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000.
17343	This is much more, but the test is fast compare to other ones so that
17344	the running time increases by a few percents only. And this triggers a
17345	new bug: the exponent range is not restored (on a 64-bit machine).
17346
17347	[tests/tsum.c] Changes in cancel():
17348	  * The fail-test was x[n] > bound instead of |x[n]| > bound, so that
17349	    some failures could be missed.
17350	  * More output in case of failure.
17351	  * Handle underflow in the bound computation. This fixes an incorrect
17352	    failure due to a bound rounded toward zero instead of toward +inf
17353	    with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests).
17354
17355	[tools/nightly-test] Run "make check" with VERBOSE=1 in order to have
17356	tests/test-suite.log output in case of failure, now that Automake 1.13+
17357	is used.
17358
173592015-04-28  Vincent Lefèvre  <vincent@vinc17.net>
17360
17361	Added a TODO about mpfr_sum.
17362
173632015-04-24  Vincent Lefèvre  <vincent@vinc17.net>
17364
17365	[configure.ac] Updated a comment about Automake 1.13.
17366
17367	[Makefile.am] Updated comment about ACLOCAL_AMFLAGS.
17368
17369	[TODO] Suggest to move some macro definitions from acinclude.m4 to the
17370	m4 directory as suggested by the Automake manual.
17371
173722015-04-23  Vincent Lefèvre  <vincent@vinc17.net>
17373
17374	[doc/README.dev] Grouped everything about the test suite near the end
17375	of this file. Added information about how the test suite works since
17376	the full Automake 1.13 support (r8821).
17377
17378	To take into account that Automake 1.13 or later will be used:
17379	  * doc/mpfr.texi, INSTALL: updates related to "make check".
17380	  * configure.ac: require Automake 1.13 since the documentation now
17381	    assumes that 1.13 or later is used (and because previous Automake
17382	    versions are no longer tested).
17383
173842015-04-10  Vincent Lefèvre  <vincent@vinc17.net>
17385
17386	[NEWS] Mention the complete rewrite of function mpfr_sum.
17387
17388	[tests/tsum.c] Added a comment about the latest fixed bug.
17389
17390	Merged the new-sum branch:
17391	  * New feature for developers in order to improve the testsuite:
17392	    value coverage checking (MPFR_COV_CHECK macro), allowing one
17393	    to check whether some combinations of values are tested. See
17394	    example of use in src/sum.c and tests/tsum.c files.
17395	  * src/sum.c: full rewrite of mpfr_sum. Note: the documentation
17396	    of the algorithm in doc/sum.txt is currently a bit obsolete.
17397	  * tests/tsum.c: many new tests, some of them specifically written
17398	    for the new algorithm and implementation.
17399
174002015-04-09  Vincent Lefèvre  <vincent@vinc17.net>
17401
17402	[src/sum.c] Fixed bug: mpn functions do not accept a zero size argument.
17403
17404	[tests/tsum.c] Replaced a mpfr_inits by a mpfr_inits2.
17405
17406	[tests/tsum.c] Added a simple test that triggers a glibc free() error
17407	or segmentation fault when MPFR is configured with GMP 6.0.0 built
17408	with "--disable-alloca ABI=32". GCC's address sanitizer shows a
17409	heap-buffer-overflow. This is mainly for debugging as this problem
17410	also occurs in other tests (it is quite generic).
17411
17412	[tests/tsum.c] Removed a temporary comment.
17413
17414	Merged the latest changes from the trunk.
17415
17416	[tests/tsum.c] Added check_underflow test.
17417
174182015-04-08  Vincent Lefèvre  <vincent@vinc17.net>
17419
17420	[tests/tsum.c] Comments.
17421
17422	[src/sum.c] Bug fix: use MPFR_EXP instead of MPFR_SET_EXP to set the
17423	exponent since it can be outside the current exponent range before
17424	it is checked with mpfr_check_range. Also added a static assertion
17425	(always satisfied in practice) to make sure that exponent related
17426	computations cannot yield an integer overflow.
17427
17428	[tests/tsum.c] Added check_overflow test, which triggers a bug.
17429
174302015-03-31  Vincent Lefèvre  <vincent@vinc17.net>
17431
17432	[tests/tsum.c] Completed the cancel test (generic random tests with
17433	cancellations): check the bound on the result.
17434
17435	[tests/tsum.c] Improved the check4 test:
17436	  * removed some not very useful tests to reduce the running time;
17437	  * added tests checking "MPFR_RNDN, tmd=2, rbit=0, sst=1, negative",
17438	    which was the only remaining one output by check_coverage (when
17439	    MPFR_COV_CHECK is defined).
17440
17441	[tests/tsum.c] Reduced the check4 test because it was much too long
17442	compared to the other tests. The bug fixed in r9356 is still triggered
17443	and "MPFR_RNDN, tmd=2, rbit=0, sst=0, negative" is still checked.
17444
174452015-03-30  Vincent Lefèvre  <vincent@vinc17.net>
17446
17447	[tests/tsum.c] Updated comment of the check4 test.
17448
17449	[src/sum.c] Bug triggered by the check4 test fixed.
17450
17451	[tests/tsum.c] Another correction in the check4 test.
17452
17453	[tests/tsum.c] In the check4 test, two terms didn't correspond to
17454	the formula given in the comment; corrected these terms (the same
17455	bug is triggered).
17456
17457	[tests/tsum.c] Forgot the h in the error message of the check4 test.
17458
17459	[tests/tsum.c] Extend the check4 test even further.
17460
17461	[tests/tsum.c] Extend the check4 test even further.
17462
17463	[tests/tsum.c] Added check4 test, which triggers a bug.
17464
174652015-03-27  Vincent Lefèvre  <vincent@vinc17.net>
17466
17467	[src/sum.c] In the TMD detection:
17468	  * improved variable nbits to decrease the number of operations;
17469	  * added some comments;
17470	  * fixed the shift count bug triggered by the bug20150327 test.
17471
17472	[tests/tsum.c] Added bug20150327 testcase.
17473
17474	[tests/tsum.c] Corrected test of the ternary values inex1 and inex2.
17475
174762015-03-20  Vincent Lefèvre  <vincent@vinc17.net>
17477
17478	[tools/ck-copyright-notice] Bug fix and improvements.
17479
17480	[tools/ck-copyright-notice] More checks.
17481
174822015-03-19  Vincent Lefèvre  <vincent@vinc17.net>
17483
17484	[src/sum.c] Do not consider the corrected sst for MPFR_COV_SET.
17485
17486	[tests/tsum.c] More tests.
17487
17488	[src/sum.c] Added comments.
17489
17490	[src/sum.c] In the final rounding, forgot to handle the possible
17491	exponent change in the negative case with corr == 2.
17492
174932015-03-17  Vincent Lefèvre  <vincent@vinc17.net>
17494
17495	[tests/tsum.c] Improved the check3 tests, which were added in the
17496	latest commit. They now trigger an assertion failure in sum.c.
17497
17498	[tests/tsum.c] New tests.
17499
17500	[tests/tsum.c] Value coverage checking: tmd can be 2 only for MPFR_RNDN.
17501
175022015-03-16  Vincent Lefèvre  <vincent@vinc17.net>
17503
17504	[src/sum.c] Better logging.
17505
17506	[src/sum.c] Bug fix: the sum_raw code was unnecessarily assuming
17507	too much; thus, removed too parameters, which can be very easily
17508	recomputed only when they make sense.
17509
175102015-03-12  Vincent Lefèvre  <vincent@vinc17.net>
17511
17512	[doc/sum.txt] Added a new table concerning the correction term.
17513	[src/sum.c] Updated rounding.
17514
175152015-03-10  Vincent Lefèvre  <vincent@vinc17.net>
17516
17517	[src/sum.c] Added comments on the correction. Minor changes in the code.
17518
175192015-03-06  Vincent Lefèvre  <vincent@vinc17.net>
17520
17521	[doc/README.dev] Added information on how to do type punning
17522	(something we already did, but with no justification yet).
17523
175242015-02-27  Vincent Lefèvre  <vincent@vinc17.net>
17525
17526	[doc/sum.txt] Updated TODO.
17527
17528	[doc/sum.txt] Added TODO (since the description is a bit obsolete).
17529
17530	[src/sum.c] In the latest commit, the temporary area was split for
17531	the computations that determine the sign of the error term in case
17532	the TMD occurs, as these computations occur earlier in the code.
17533	This was actually not necessary since the content of the accumulator
17534	has already been copied to the final destination (only sign handling
17535	and rounding have not been done yet, but they entirely take place in
17536	the destination). As a consequence, let's revert the code related to
17537	this split. The actual changes concerning the merge of pre-rounding
17538	and final rounding can be seen with "svn diff -r 9328:9330".
17539
17540	[src/sum.c]
17541	  * Removed any reference to the obsolete step numbering.
17542	  * Merged pre-rounding and final rounding, simplifying the code.
17543	    The correction value still needs to be fixed.
17544
17545	[src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when
17546	the initial value was a power of two.
17547
17548	[src/next.c] Avoid an unnecessary loop when the exponent decreases.
17549
175502015-02-26  Vincent Lefèvre  <vincent@vinc17.net>
17551
17552	[tests/tsum.c] Improved test portability.
17553
17554	[tests/tsum.c] New tests.
17555
17556	[src/sum.c] Completed the implementation (but there's still a bug).
17557
17558	[tests/tsum.c] New tests.
17559
175602015-02-25  Vincent Lefèvre  <vincent@vinc17.net>
17561
17562	[src/sum.c] Improved the setting of sst (Step 8), using the fact
17563	that the accumulator is 0 iff cancel = 0.
17564
17565	[src/sum.c] Bug fix: when determining the sticky bit, the search was
17566	starting at the rounding bit instead of the bit following it.
17567
17568	[tests/tsum.c] New tests.
17569
17570	[src/sum.c] More logging.
17571
17572	[tests/tsum.c] In the generic test, also test with negative numbers.
17573
17574	Updated value coverage checking for mpfr_sum.
17575
17576	[doc/README.dev] Document the new MPFR_COV_CHECK macro.
17577
17578	Value coverage checking when MPFR_COV_CHECK is defined, initially
17579	for mpfr_sum.
17580
17581	[src/sum.c] Bug fix in the ternary value.
17582
17583	[tests/tsum.c] Added check of the ternary value.
17584
17585	[src/sum.c] Removed incorrect assertions.
17586
17587	[tests/tsum.c] Re-enabled cancel() test.
17588
175892015-02-24  Vincent Lefèvre  <vincent@vinc17.net>
17590
17591	[src/sum.c] Update.
17592
17593	[src/sum.c] Update.
17594
17595	[src/sum.c] Use the new SAFE_DIFF macro.
17596
17597	Merged the latest changes from the trunk (r9306).
17598
17599	[src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference).
17600
17601	[src/sum.c] Fixed a test.
17602
17603	[src/sum.c] Better logging.
17604
17605	[src/sum.c] Minor correction of last change of a comment.
17606
17607	[src/sum.c] More logging and comments.
17608
17609	[src/sum.c] Fixed bug introduced in r9294 (minexp wasn't updated).
17610
17611	[src/sum.c] Log the value of tq.
17612
17613	[src/sum.c] Bug fix.
17614
17615	[src/sum.c] Virtually eliminate halfway cases by making them equivalent
17616	to a non-halfway case.
17617
176182015-02-21  Vincent Lefèvre  <vincent@vinc17.net>
17619
17620	[src/sum.c] Update.
17621
17622	Merged the latest changes from the trunk (r9295).
17623
17624	[src/mpfr-impl.h] Fixed and improved some sign-related macros
17625	(some parentheses were missing).
17626
17627	[src/sum.c] Update: sum_raw, with a new prototype, now reiterates until
17628	the error bound is acceptable; thus the "while" loops have been removed
17629	from sum_aux.
17630
176312015-02-20  Vincent Lefèvre  <vincent@vinc17.net>
17632
17633	[tests/tsum.c] Increased the number of tests to get 2 current failures
17634	with a "break" in the last loop of sum.c (m = 438, m = 3780), without
17635	the exit() in the generic test. Improved error message.
17636
17637	[tests/tsum.c] Completely rewrote the generic test (now allows one to
17638	detect that the implementation is incomplete when adding a "break" in
17639	the last loop of sum.c).
17640
176412015-02-19  Vincent Lefèvre  <vincent@vinc17.net>
17642
17643	[tests/tsum.c] Run bug20131027 in each rounding mode.
17644
17645	[src/sum.c] Fixed sum_raw.
17646
176472015-02-18  Vincent Lefèvre  <vincent@vinc17.net>
17648
17649	[src/sum.c] More logging.
17650
17651	Merged the latest changes from the trunk.
17652
17653	Logging: the log stream is flushed after each log output when
17654	the MPFR_LOG_FLUSH environment variable is set.
17655
17656	Factorized the logging macros by moving tests inside LOG_PRINT.
17657
17658	[src/sum.c] Correction. Set the exponent.
17659
17660	[src/sum.c] Added a log message.
17661
17662	[src/sum.c] Bug fix: I had inverted positive and negative.
17663
176642015-02-13  Vincent Lefèvre  <vincent@vinc17.net>
17665
17666	[tests/tsum.c] Removed the obsolete mpfr_sum_sort related test
17667	(which could obviously no longer compile), so that I can start
17668	debugging before finishing the implementation.
17669
17670	Merged the latest changes from the trunk.
17671
17672	[doc/mpfr.texi] Updated the month.
17673
17674	Copyright notice update: added 2015 with
17675	  perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/
17676	               " ".($1||"$2-").($2+1)/e' **/*(^/)
17677	under zsh, reverting the tools/mbench directory (not distributed with
17678	MPFR). Removed 2014 from the example in the doc/README.dev file.
17679
176802015-02-12  Vincent Lefèvre  <vincent@vinc17.net>
17681
17682	[src/sum.c] Copyright notice update.
17683
17684	[src/sum.c] Split mpfr_sum into mpfr_sum (handling special cases)
17685	and sum_aux (generic case only). Revised some comments.
17686
17687	[src/sum.c] When updating minexp, detect a potential integer overflow
17688	first (macro UPDATE_MINEXP). Updated comments.
17689
17690	[src/sum.c] Logging of sum_raw: log *cancelp at the end.
17691
17692	[src/sum.c] Update (Step 8).
17693
17694	[src/sum.c] Corrected/improved logging.
17695
176962015-01-23  Vincent Lefèvre  <vincent@vinc17.net>
17697
17698	Added algorithms.fls (generated by latexmk) to svn:ignore property.
17699
177002015-01-21  Vincent Lefèvre  <vincent@vinc17.net>
17701
17702	[tests/tfpif.c] Updated a mpfr_set_zero line for consistency and
17703	better readability.
17704
17705	[tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign.
17706
17707	[tests/tset.c] More mpfr_set_inf tests.
17708
17709	[tests/tset.c] More mpfr_set_zero tests.
17710
17711	[tools/mbench/timp.h] Spelling mistake in a comment.
17712
177132014-12-17  Vincent Lefèvre  <vincent@vinc17.net>
17714
17715	[src/sum.c] Added a TODO.
17716
17717	[src/sum.c] Added missing closing parenthesis from r9257. Step 8 update.
17718
17719	[doc/sum.txt] Step 8: renamed "sgn" to "sst".
17720
17721	[doc/sum.txt] Merged old Step 9 with Step 8; minor changes.
17722
17723	[src/sum.c] Avoid a loop in some cases.
17724
17725	[src/sum.c] Remember the rounding bit for Step 9; correction for
17726	halfway cases in round to nearest.
17727
17728	[doc/mpfr.texi] Updated the month.
17729
177302014-12-16  Vincent Lefèvre  <vincent@vinc17.net>
17731
17732	[NEWS] Added an item about improved caching.
17733	[NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase
17734	of the precision (done in r8967).
17735
17736	[NEWS] Note that the behavior of the mpfr_set_exp function changed.
17737	[src/Makefile.am] As this changed the ABI (the old, unwise behavior
17738	was documented), reset -version-info age. This is not that bad since
17739	there are other changes in the behavior, though regarded as bugs or
17740	previously undocumented behavior.
17741
17742	Moved src/sum.txt into the doc directory, and updated the reference
17743	in src/sum.c.
17744
177452014-12-12  Vincent Lefèvre  <vincent@vinc17.net>
17746
17747	[src/sum.txt] Update (Step 9).
17748
17749	[src/sum.txt] Correction.
17750
177512014-12-11  Vincent Lefèvre  <vincent@vinc17.net>
17752
17753	[src/sum.*] Update.
17754
177552014-12-04  Vincent Lefèvre  <vincent@vinc17.net>
17756
17757	[doc/README.dev] Mention the tools/build-patch script.
17758
177592014-12-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
17760
17761	pointed to Feature Request
17762
177632014-11-28  Vincent Lefèvre  <vincent@vinc17.net>
17764
17765	[src/sum.c] Determine the number of cancelled bits in sum_raw instead
17766	of the main loop, since it will also be useful in Step 8.
17767
17768	[src/sum.*] Update (Step 8).
17769
177702014-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
17771
17772	fixed issue reported by Dan Grayson:
17773	https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136
17774
177752014-11-13  Vincent Lefèvre  <vincent@vinc17.net>
17776
17777	[tools/mpfrlint] Minor change concerning mp_limb_t.
17778
177792014-11-12  Vincent Lefèvre  <vincent@vinc17.net>
17780
17781	Style improvements.
17782
17783	[src/exp_2.c] Improved t = 0 test.
17784
17785	[src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer
17786	taken into account).
17787
17788	[src/exp_2.c] GNU coding style.
17789
177902014-11-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
17791
17792	improve mpfr_exp2 (patch from Patrick Pelissier)
17793
177942014-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
17795
17796	improve mpfr_atan for small precision (patch from Patrick Pelissier)
17797
17798	added check for libquadmath (not used)
17799
178002014-11-03  Vincent Lefèvre  <vincent@vinc17.net>
17801
17802	[src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is
17803	called often (like with GC-based systems). Patch by Patrick Pélissier.
17804
17805	[src] Applied patch by Patrick Pélissier to allocate some constant-size
17806	MPFR numbers on the stack instead of using mpfr_init2, and replace some
17807	MPFR_ASSERTN by MPFR_ASSERTD.
17808
178092014-10-31  Vincent Lefèvre  <vincent@vinc17.net>
17810
17811	[src/get_str.c] Improved comments.
17812
178132014-10-30  Vincent Lefèvre  <vincent@vinc17.net>
17814
17815	[src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP
17816	and at a single place (the code should be clearer like that).
17817
17818	[src/get_str.c] Code refactoring.
17819
17820	[tests/tget_str.c] Code formatting.
17821
17822	[tests/tget_str.c] Fixed a test that made mpfr_get_str crash with
17823	logging (even when the base is invalid, the MPFR number must be
17824	initialized).
17825
17826	[src/check.c] Added a note saying that mpfr_check() must not be called
17827	  on statically allocated numbers (only used inside MPFR).
17828	[src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in
17829	  previous commit) because of that.
17830
17831	[src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash
17832	in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this
17833	is due to an invalid MPFR number in mpfr_ceil_mul(). Added a
17834	  MPFR_ASSERTD (mpfr_check (p));
17835	there, which fails in tget_str (this was the cause of the crash), even
17836	without logging.
17837
178382014-10-29  Vincent Lefèvre  <vincent@vinc17.net>
17839
17840	mpfr_get_str now sets the NaN flag on NaN input. See:
17841	  https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and
17842	  https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619
17843	Also completed the mpfr_get_str description in mpfr.texi concerning
17844	the special numbers and the exception flags.
17845
178462014-10-28  Vincent Lefèvre  <vincent@vinc17.net>
17847
17848	[doc/mpfr.texi] Updated the month.
17849
17850	[doc/mpfr.texi] Removed a spurious "an".
17851
17852	[src/get_str.c] Improved style consistency.
17853
17854	[doc/mpfr.texi] In the mpfr_get_str description, note that the type
17855	mpfr_exp_t is large enough to hold the exponent in all cases.
17856
17857	[doc/mpfr.texi] Improved mpfr_get_str description concerning the
17858	returned pointer (it was ambiguous in the case of an invalid base).
17859
178602014-10-09  Vincent Lefèvre  <vincent@vinc17.net>
17861
17862	[tests/tests.c] Updated the error message last changed.
17863
17864	[tests/tests.c] Updated the error message last changed + comment.
17865
178662014-10-08  Vincent Lefèvre  <vincent@vinc17.net>
17867
17868	[tests/Makefile.am] Added a reference to the bug I've just reported
17869	against GNU Automake (completing the other references).
17870
17871	[tests/tests.c] Updated the error message last changed.
17872
178732014-10-07  Vincent Lefèvre  <vincent@vinc17.net>
17874
17875	[tests/tests.c] Changed an error message.
17876
178772014-10-06  Vincent Lefèvre  <vincent@vinc17.net>
17878
17879	[src/sum.txt] Update.
17880
17881	[src/sum.c] Improved a comment.
17882
17883	[src/sum.c] Got rid of maxexp2 in the mpfr_sum function, since after the
17884	  sum in the main iteration, the old maxexp value is no longer needed:
17885	  it's simpler to reuse maxexp for maxexp2 since maxexp2 will be the new
17886	  maxexp value at the next iteration.
17887	[src/sum.txt] Update, in particular concerning the variables used in the
17888	  implementation.
17889
178902014-09-09  Vincent Lefèvre  <vincent@vinc17.net>
17891
17892	[tests] Corrections for builds with "config.h".
17893
178942014-08-26  Vincent Lefèvre  <vincent@vinc17.net>
17895
17896	[src/sum.c] Reset copyright years to 2014 since the whole file is
17897	being rewritten from scratch (i.e. everything is new material).
17898
17899	[src/sum.txt] Update.
17900
179012014-08-25  Vincent Lefèvre  <vincent@vinc17.net>
17902
17903	[src/sum.*] Update (Step 7, including a part of Step 8 in Step 7).
17904
17905	[src/sum.c] Correction (Step 7).
17906
17907	[src/sum.c] Corrected r9197 (two "else" branches were mixed up), and
17908	update (Step 8).
17909
17910	[src/sum.c] Correction when determining the early value of inex.
17911
17912	[src/sum.c] Update (Step 8).
17913
17914	[src/sum.txt] Update about the value of d.
17915
17916	[src/sum.c] Added comments for Step 7 about carry and inex.
17917
179182014-08-22  Vincent Lefèvre  <vincent@vinc17.net>
17919
17920	Merged the latest changes from the trunk (here, tools/mpfrlint).
17921
17922	[tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG.
17923
17924	[src/sum.*] Update (Step 7).
17925
179262014-08-21  Vincent Lefèvre  <vincent@vinc17.net>
17927
17928	[src/sum.txt] Updated Note 2 again.
17929
17930	[src/sum.txt] Updated Note 2.
17931
17932	[src/sum.*] Various corrections, and update.
17933
17934	Merged the latest changes from the trunk.
17935
17936	[src] Cleaner use of MPFR_SET_SIGN.
17937
179382014-08-19  Vincent Lefèvre  <vincent@vinc17.net>
17939
17940	[src/sum.c] Updated comments.
17941
17942	[src/sum.c] Update (Step 7).
17943
17944	[src/sum.c] Improved description of sum_raw.
17945
17946	[src/sum.c] Added description of sum_raw.
17947
179482014-08-18  Vincent Lefèvre  <vincent@vinc17.net>
17949
17950	[src/sum.c] Suppressed a level of block (which became rather useless
17951	now that Step 3 has been moved to a separate function).
17952
17953	[src/sum.c] Moved Step 3 to a separate auxiliary function sum_raw.
17954
17955	[src/sum.c] Renamed variables: p -> x, pe -> xe, pq -> xq (because
17956	the p suffix is used here for pointers to mp_limb_t).
17957
17958	[src/sum.c] Updated comments.
17959
179602014-08-17  Vincent Lefèvre  <vincent@vinc17.net>
17961
17962	[TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h).
17963
17964	[src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on
17965	mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h
17966	is included in them). Thanks to Rob for the bug report.
17967
179682014-08-14  Vincent Lefèvre  <vincent@vinc17.net>
17969
17970	[src/sum.*] Update (Step 7).
17971
179722014-08-13  Vincent Lefèvre  <vincent@vinc17.net>
17973
17974	[src/sum.txt] Update.
17975
17976	[src/sum.txt] Update (another tricky case).
17977
179782014-08-12  Vincent Lefèvre  <vincent@vinc17.net>
17979
17980	[src/sum.txt] Update.
17981
17982	[src/sum.txt] Update.
17983
179842014-08-11  Vincent Lefèvre  <vincent@vinc17.net>
17985
17986	[src/sum.*] Completed Step 6.
17987
179882014-08-08  Vincent Lefèvre  <vincent@vinc17.net>
17989
17990	[src/sum.txt] Update.
17991
17992	[src] Moved the comment about the mpfr_sum algorithm from sum.c to
17993	a new file sum.txt (this will later go into algorithms.tex).
17994
179952014-08-06  Vincent Lefèvre  <vincent@vinc17.net>
17996
17997	[src/sum.c] Updated the algorithm.
17998
17999	[src/sum.c] Updated the algorithm.
18000
180012014-08-05  Vincent Lefèvre  <vincent@vinc17.net>
18002
18003	[src/sum.c] Added some log messages.
18004
18005	Merged the latest changes from the trunk (but reverted tests/tsum.c).
18006
18007	[tools/mpfrlint] Improved check of MPFR_LOG_MSG.
18008
18009	[tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests.
18010
18011	[src/ai.c] Corrected log messages.
18012
18013	[doc/mpfr.texi] Updated the month.
18014
18015	Update concerning the P type specifier for formatted output, since
18016	mpfr_prec_t was changed to a signed type in MPFR 3.0.0.
18017	  * doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK
18018	    in practice since a mpfr_prec_t value is usually nonnegative);
18019	    changed a "unsigned int" to "int".
18020	  * src/vasprintf.c: updated a comment.
18021
180222014-07-23  Vincent Lefèvre  <vincent@vinc17.net>
18023
18024	[tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF).
18025
18026	[tests]
18027	  * mpfr-test.h: no longer include <stdio.h> right here since the
18028	    included mpfr-impl.h does that and even better for C++.
18029	  * mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful
18030	    things (in particular, include config.h via mpfr-impl.h if there
18031	    is one, and define __MPFR_TEST_H__ for mpfr-impl.h).
18032	  * mpf_compat.h: no longer include some headers already included
18033	    via mpfr-test.h (see above change); added tests_start_mpfr and
18034	    tests_end_mpfr (showing memory inconsistency with mpf_compat).
18035
180362014-07-20  Vincent Lefèvre  <vincent@vinc17.net>
18037
18038	[src/get_str.c] Coding style: better code for a boolean.
18039
180402014-07-17  Vincent Lefèvre  <vincent@vinc17.net>
18041
18042	[src/sum.c] Update.
18043
180442014-07-10  Vincent Lefèvre  <vincent@vinc17.net>
18045
18046	[doc/README.dev] "To make a release": check also without mpz_t caching.
18047
18048	[tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files.
18049	[tools/mpfrlint]
18050	  * Ignore src/mini-gmp.[ch] files for some tests.
18051	  * Check that __gmp[nz]_ functions are not used (with 2 exceptions),
18052	    since this breaks the support of mini-gmp and may also break
18053	    future/modified GMP versions.
18054	    Note: only code added in r8911 (mpz_t caching) currently fails to
18055	    follow this rule.
18056
18057	Do not test include guards before a #include: the test must be done only
18058	in the included file itself. Note that some files such as mpfr.h may
18059	have multiple parts that could be enabled depending on the context, so
18060	that testing a guard before a #include may yield incorrect behavior.
18061
180622014-07-09  Vincent Lefèvre  <vincent@vinc17.net>
18063
18064	[doc/README.dev] Updated the list of macros used for building and
18065	checking MPFR.
18066
18067	[acinclude.m4] Corrected a message.
18068
180692014-07-08  Vincent Lefèvre  <vincent@vinc17.net>
18070
18071	Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO
18072	for consistency with MPFR_TESTS_TIMEOUT.
18073
180742014-07-07  Vincent Lefèvre  <vincent@vinc17.net>
18075
18076	[tests] Minor improvements.
18077
18078	[tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma.
18079
18080	[tests/tmul_d.c] Minor improvement.
18081
18082	[src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN
18083	was not detected as an error).
18084
18085	[src] MPFR_WANT_ASSERT clean-up.
18086	Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for
18087	MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not
18088	possible with configure options), and fixed.
18089
18090	Added debug of branch prediction / --enable-debug-prediction configure
18091	option (patch from Patrick Pélissier, with some changes).
18092
180932014-07-02  Vincent Lefèvre  <vincent@vinc17.net>
18094
18095	[src/round_raw_generic.c] Updated comment about MPFR_RNDNA.
18096
18097	[doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP.
18098
18099	[doc/README.dev] Added an item on the use of GMP functions.
18100
18101	[doc/README.dev] "To make a release": test with mini-gmp.
18102
18103	Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random
18104	functions (source and tests) as mpfr_random_deviate_value no longer
18105	needs mpq_t (since r9066). Also removed a static assertion in
18106	src/random_deviate.c for the same reason.
18107	Note: the change done in r9133 is now really useful!
18108
18109	[src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP".
18110
18111	[tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP)
18112	to protect mpfr_printf. This is actually not needed due to the initial
18113	"#ifndef MPFR_USE_MINI_GMP" but this is for a different reason.
18114
18115	[tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130
18116	and added a proper comment.
18117
18118	[src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP"
18119	(not really useful, but cleaner).
18120
18121	[tests/t[ne]random.c] Fixed the change done in r9126 and r9127.
18122
18123	Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h
18124	(all MPFR macros that appear there should start with MPFR_ to avoid
18125	conflicts with other software).
18126
18127	[tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h.
18128
18129	[tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like
18130	what has been done for "tests/tnrandom.c".
18131
18132	[tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place
18133	(at the same time of the HAVE_STDARG test), but this should be
18134	improved in the future, e.g. with a HAVE_MPFR_PRINTF macro.
18135
181362014-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18137
18138	added comment
18139
181402014-07-02  Vincent Lefèvre  <vincent@vinc17.net>
18141
18142	[src/mul.c] Minor correction of a comment.
18143
181442014-07-01  Vincent Lefèvre  <vincent@vinc17.net>
18145
18146	[tests/trandom_deviate.c] Correction (fprintf format).
18147
181482014-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18149
18150	patch from Charles Karney:
18151	> Here is the patch which repeats the chi-squared tests in the case of
18152	> suspiciously high values.  The probability of a false positive is now
18153	> 1/10^9.  I also got rid of the mpfr_printf's.
18154
181552014-06-30  Vincent Lefèvre  <vincent@vinc17.net>
18156
18157	[tools/build-patch]
18158	  * Removed unnecessary quotes for better readability (this is zsh).
18159	  * When <patchlevel> (second argument) is used, use the correct name
18160	    for the generated patch; at the same time, fixed a checkobj call.
18161	  * Added comment about typical usage.
18162
18163	[tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure
18164	that it is always up-to-date, we want to allow it to be a symlink (e.g.
18165	.../mpfr-current), so that we want to call realpath on it.
18166
18167	Added tools/build-patch zsh script to transform a raw patch into a patch
18168	to be put on the MPFR www server.
18169
18170	[src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/
18171
18172	[configure.ac] Correction of two "configure --help" messages
18173	(from Patrick Pélissier and other changes).
18174
18175	[src/mpfr.h] Coding style.
18176
18177	New macros for mpfr_{mul,div}_ui to optimize the call when the integer
18178	is a constant number that is a power of 2.
18179	New macros for mpfr_{mul,div}_si to optimize the call when the integer
18180	is a constant number that is positive.
18181	(Modified patch from Patrick Pélissier)
18182
181832014-06-26  Vincent Lefèvre  <vincent@vinc17.net>
18184
18185	[src/vasprintf.c] Improved comments.
18186
18187	[src/vasprintf.c] Fixed assertion failures for tiny numbers (the code
18188	was correct, but the assertions didn't check against the right bound).
18189
18190	[src/div.c] Bug fix: avoid integer overflow in the code added in r9086
18191	(now tdiv no longer fails).
18192
18193	[src/div.c] Bug fix: avoid an integer overflow when dividing the
18194	largest finite MPFR number by the smallest positive one.
18195	(merged changeset r9105 from the 3.1 branch)
18196
18197	[tests/tdiv.c] Forgot "exit (1);".
18198
18199	[tests/tdiv.c] Added mpfr_div tests on extreme values. This detects
18200	2 problems (at least on a 64-bit machine): a result is not a valid
18201	MPFR number (mpfr_check fails) and the flags are incorrect.
18202
182032014-06-25  Vincent Lefèvre  <vincent@vinc17.net>
18204
18205	[tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated
18206	to the bug in vasprintf.c).
18207
18208	[tests/tsprintf.c] Added a test with the minimum exponent
18209	(currently triggers an assertion failure in vasprintf.c).
18210
182112014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18212
18213	define MPFR_SKIP_EXTREME to avoid currently failing tsum test
18214
182152014-06-25  Vincent Lefèvre  <vincent@vinc17.net>
18216
18217	[tests/tsum.c] Do not run the check_extreme test (which currently fails)
18218	when the MPFR_SKIP_EXTREME environment variable is defined.
18219
182202014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18221
18222	reconfigure for mpfrbench
18223
18224	speedup in mpfr_div for n/n division, using mpz_tdiv_q
18225
182262014-06-25  Vincent Lefèvre  <vincent@vinc17.net>
18227
18228	[tools/mpfrlint] Check when simple mp_limb_t constants could be used
18229	(MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX).
18230
18231	Merged the latest changes from the trunk.
18232
18233	Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0.
18234	Done with
18235	  perl -pi -e '
18236	    s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g;
18237	    s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g;
18238	    ' {src,tests}/*.{c,h}
18239	and some manual changes.
18240
18241	More code clean-up (for both consistency and readability):
18242	  * Use the simple mp_limb_t constants when possible.
18243	  * New internal macro MPFR_IS_NORMALIZED.
18244	Note: this was done with
18245	  perl -pi -e '
18246	    s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g;
18247	    s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g;
18248	    s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g;
18249	    s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h}
18250	  svn revert src/mpfr-impl.h
18251	and some manual changes.
18252
18253	Code clean-up:
18254	  * Simplified the definition of simple mp_limb_t constants: it is
18255	    better to avoid GMP internals when there is a standard way.
18256	  * Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX.
18257	  * So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT
18258	    definitions from "mpfr-gmp.h".
18259
18260	[src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed.
18261
18262	[tests/random2.c] Removed a useless use of GMP_NUMB_MASK.
18263
18264	[src/div.c] In the case where the divisor has one limb (latest commit),
18265	check that the value of this limb fits in an unsigned long, otherwise
18266	mpfr_div_ui cannot be used. Indeed, according to the GMP manual §2.2,
18267	a limb may be a long long (actually unsigned):
18268	  For example in some 32-bit ABIs, GMP may support a limb as either a
18269	  32-bit `long' or a 64-bit `long long'.
18270	Note: if a limb is an unsigned long, this new test will be no-op, since
18271	always true.
18272
182732014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18274
18275	speedup of mpfr_div when divisor has one limb
18276
182772014-06-25  Vincent Lefèvre  <vincent@vinc17.net>
18278
18279	[src/random_deviate.h] Fixed prototypes:
18280	  * Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see
18281	    https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html
18282	  * Added _MPFR_PROTO for consistency (though it will probably
18283	    be removed in the near future).
18284	  * Removed variable names (coding style).
18285
182862014-06-24  Vincent Lefèvre  <vincent@vinc17.net>
18287
18288	[tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property.
18289
18290	[tests] Applied patch by Charles Karney (chi-squared tests for
18291	mpfr_[ne]random), together with the contents of his mail about
18292	this patch.
18293
182942014-06-23  Vincent Lefèvre  <vincent@vinc17.net>
18295
18296	[doc/mpfr.texi] Updated the month.
18297
182982014-06-22  Vincent Lefèvre  <vincent@vinc17.net>
18299
18300	Updated URL's.
18301
18302	[doc/README.dev] Updated URL's (use of https instead of http).
18303
183042014-06-20  Vincent Lefèvre  <vincent@vinc17.net>
18305
18306	[src/sum.c] At Step 2, ignore the input bits of exponent >= maxexp.
18307
18308	[src/sum.c] Fixed maxexp2 update, and added truncflag for future
18309	truncation on the most significant part >= maxexp at Step 2 (TODO).
18310
183112014-06-19  Vincent Lefèvre  <vincent@vinc17.net>
18312
18313	[src/sum.c] Another major update concerning the algo and Step 2.
18314
18315	[src/sum.c] Added a TODO about carry propagation (so, it seems that
18316	using two windows may not really be that interesting to guarantee a
18317	low complexity).
18318
183192014-06-17  Vincent Lefèvre  <vincent@vinc17.net>
18320
18321	[src/sum.c] Implemented Step 2.
18322
18323	[tests/trandom_deviate.c] New version, with fixes of ternary value
18324	(inexact) handling by Charles Karney.
18325
18326	[tests] Added trandom_deviate to svn:ignore property.
18327
18328	[tests/trandom_deviate.c] GNU style and C90 compatibility.
18329
18330	[doc/README.dev] Updated note about ternary values (macros).
18331
18332	[doc/README.dev] Added a note about ternary values.
18333
183342014-06-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18335
18336	patches from Charles Karney
18337
183382014-06-17  Vincent Lefèvre  <vincent@vinc17.net>
18339
18340	[tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG":
18341	printf is a standard C function and is always defined.
18342
18343	[tests/trandom_deviate.c] GNU style. Pre-C99 compatibility
18344	(statements after declarations).
18345
18346	[tests/trandom_deviate.c] Untabified.
18347
183482014-06-16  Vincent Lefèvre  <vincent@vinc17.net>
18349
18350	[src/sum.c] Updated the algorithm and started to rewrite again,
18351	in a cleaner way and with more comments.
18352
183532014-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18354
18355	added trandom_deviate.c to improve coverage (contributed by Charles Karney)
18356
18357	updated information about coverage test
18358
183592014-06-05  Vincent Lefèvre  <vincent@vinc17.net>
18360
18361	[src/mul.c] English usage in a comment.
18362
183632014-06-03  Vincent Lefèvre  <vincent@vinc17.net>
18364
18365	[tests/tset_ld.c] Updated a comment.
18366
183672014-05-22  Vincent Lefèvre  <vincent@vinc17.net>
18368
18369	Changed "INRIAGForge" to "InriaForge" (due to the rename).
18370
183712014-05-14  Vincent Lefèvre  <vincent@vinc17.net>
18372
18373	[doc/README.dev] Correction about clang sanitizer: mention the
18374	-fno-sanitize=float-cast-overflow,float-divide-by-zero option.
18375
18376	[doc/README.dev] About clang sanitizer, mention the
18377	-fno-sanitize=float-divide-by-zero option.
18378
183792014-05-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18380
18381	added description of algorithm used for mpfr_log (from Sylvie Boldo)
18382
183832014-04-25  Vincent Lefèvre  <vincent@vinc17.net>
18384
18385	[doc/README.dev] Updated an old note about GCC 4.9.
18386
18387	[doc/README.dev] Completed the note about GCC's sanitizer. See
18388	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer)
18389	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover)
18390
18391	[doc/README.dev] Completed the note about GCC's sanitizer.
18392
18393	[doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined".
18394
183952014-04-22  Vincent Lefèvre  <vincent@vinc17.net>
18396
18397	[tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html
18398	was actually not using the mpfr_pow function, but exp(y*log(x)).
18399
18400	[tests/tpow.c] Added a test corresponding to buggy output on
18401	http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything
18402	is OK in r9038.
18403
184042014-04-15  Vincent Lefèvre  <vincent@vinc17.net>
18405
18406	[doc/README.dev] Update about patches and autotools files.
18407
18408	[doc/README.dev] Update about patches and autotools files.
18409
18410	[tests/tsum.c] Changed initialization in check_extreme(), which wasn't
18411	supported by ISO C90.
18412
18413	[free_cache.c] Avoid mixed declarations and code for ISO C90 support.
18414
18415	Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and
18416	updated it:
18417	  * BYTES_PER_MP_LIMB is no longer tested (see r9029).
18418	  * The test is now always run, not just when --with-gmp-build is used.
18419	  * Results are output in config.log in case of failure.
18420	  * The error message has been updated.
18421
184222014-04-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18423
18424	BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility
18425	when --with-gmp-build is used. See mailing-list discussion:
18426	  https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html
18427
184282014-04-11  Vincent Lefèvre  <vincent@vinc17.net>
18429
18430	[src/sum.c] Updated comment to be even more clear, with more details.
18431
184322014-04-07  Vincent Lefèvre  <vincent@vinc17.net>
18433
18434	[src/sum.c] Updated comment.
18435
18436	[src/sum.c] Updated comment.
18437
18438	[src/sum.c] Improved (corrected) algo in comment. Code not updated.
18439
184402014-03-28  Vincent Lefèvre  <vincent@vinc17.net>
18441
18442	[src/sum.c] Update.
18443
18444	[src/sum.c] Added a comment.
18445
18446	[src/sum.c] Update.
18447
184482014-03-26  Vincent Lefèvre  <vincent@vinc17.net>
18449
18450	[src/sum.c] More thoughts about the algorithm and its implementation.
18451
184522014-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18453
18454	other argument reduction for log_ui
18455
184562014-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18457
18458	mpn_sqrtrem (rp, sp, sp, rrsize) is faster than
18459	mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy
18460
184612014-03-25  Vincent Lefèvre  <vincent@vinc17.net>
18462
18463	[src/sum.c] Update.
18464
18465	Merged the latest changes from the trunk.
18466
18467	Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal
18468	macros (to mpfr-impl.h). Use these macros at some places in the code
18469	(replacing some MPFR_PREC instances, as suggested by a patch from
18470	Patrick Pélissier).
18471
18472	[src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2
18473	(from a patch by Patrick Pélissier).
18474
18475	[src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by
18476	Patrick Pélissier).
18477
18478	[src/div.c] Added MPFR_ASSERTD assertions and improved a test
18479	(patch from Patrick Pélissier).
18480
184812014-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18482
18483	fixed FIXME
18484
184852014-03-17  Vincent Lefèvre  <vincent@vinc17.net>
18486
18487	[doc/algorithms.*] A formula about radix conversion was incorrect
18488	(and didn't match the correct code) when the output radix b is a
18489	power of two. Added reference to Matula's "In-and-Out Conversions"
18490	(correctness and optimality of the formula) and left a FIXME.
18491	For more information, see the August/September discussion in the
18492	MPFR list, particular subthreads starting at:
18493	  https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html
18494	  https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html
18495	  https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html
18496
184972014-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18498
18499	added item
18500
185012014-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18502
18503	added item (mpfr_log_ui)
18504
185052014-03-14  Vincent Lefèvre  <vincent@vinc17.net>
18506
18507	[src/sum.c] Corrected the detection of Inf. Improved algo in comment.
18508
18509	[tests/tsum.c] Improved check_more_special test.
18510
18511	[tests/tsum.c] Added check_more_special test.
18512
18513	[doc/mpfr.texi] Updated the month.
18514
18515	[doc/mpfr.texi] Correction in the mpfr_set_str description.
18516
18517	Rewrote special cases of mpfr_sum.
18518
185192014-03-10  Vincent Lefèvre  <vincent@vinc17.net>
18520
18521	Added a TODO item concerning gmp_op.c functions with mpz_srcptr and
18522	the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992).
18523
185242014-03-02  Vincent Lefèvre  <vincent@vinc17.net>
18525
18526	[src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for
18527	C++ (it didn't have the correct type), and improved the similar ones.
18528
18529	[src/lngamma.c] Fixed allocation.
18530
18531	[src/lngamma.c] Temporarily disabled fast argument reconstruction
18532	because it doesn't compile with g++.
18533
185342014-03-01  Vincent Lefèvre  <vincent@vinc17.net>
18535
18536	Removed trailing spaces.
18537
185382014-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18539
18540	[lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1)
18541		    (it remains to speed up the computation of the Bernoulli numbers)
18542
18543	speedup of the mpfr_xxx_z functions when z fits in a long
18544
18545	explicit possible speedup in mpfr_[ln]gamma
18546
185472014-02-24  Vincent Lefèvre  <vincent@vinc17.net>
18548
18549	[doc/algorithms.tex] Avoid inconsistent spaces.
18550
185512014-02-21  Vincent Lefèvre  <vincent@vinc17.net>
18552
18553	[tools/mbench/README] Conversion into UTF-8.
18554
18555	[tools/mbench] Replaced GMP_RNDx by MPFR_RNDx.
18556
185572014-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18558
18559	definitively fix the name mpfr_min_prec
18560
185612014-02-17  Vincent Lefèvre  <vincent@vinc17.net>
18562
18563	[src/bernoulli.c] Minor bug fixed and other improvements.
18564
185652014-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18566
18567	update for mpfr_gamma and Bernoulli numbers
18568
185692014-02-17  Vincent Lefèvre  <vincent@vinc17.net>
18570
18571	[src/bernoulli.c] Fixed pointer types (build failure with -Werror).
18572
18573	[src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype,
18574	which makes the compilation of bernoulli.c fail.
18575
18576	[src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD.
18577
185782014-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18579
18580	use a faster algorithm (based on Von Staudt–Clausen theorem) to compute
18581	Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2
18582
185832014-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18584
18585	more changes suggested by Wolf Lammen (and also test 2^(-1074))
18586
185872014-02-16  Vincent Lefèvre  <vincent@vinc17.net>
18588
18589	[tests/memory.c] Limit heap memory to 4 MB. This should be sufficient.
18590	Currently, only tsum should fail, but mpfr_sum will be rewritten soon.
18591
185922014-02-15  Vincent Lefèvre  <vincent@vinc17.net>
18593
18594	[src/set_d.c] Fixed type to avoid non-representable unsigned → signed
18595	conversion.
18596
18597	[src/set_d.c] Correction when MPFR_WANT_ASSERT is defined.
18598
18599	Untabified and removed trailing spaces.
18600
186012014-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18602
18603	partial patch from Wolf Lammen:
18604	- move the normalization code, necessary in an extremely rare corner case only,
18605	  out of the way of the normal case, for speed up
18606
18607	Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr
18608	(patch from Patrick Pélissier)
18609
186102014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18611
18612	print message for "possibly double-double, little endian" long double format
18613
18614	different fixes for set_ld, get_ld and cmd_ld with double-double
18615
186162014-02-14  Vincent Lefèvre  <vincent@vinc17.net>
18617
18618	[tests/tset_ld.c] Fixed an assertion to support systems where
18619	2^1023 + 2^(-1074) is exactly representable, while not detected
18620	as double-double.
18621
186222014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18623
18624	recognize long-double format for ppc64le
18625	(https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html)
18626
186272014-02-14  Vincent Lefèvre  <vincent@vinc17.net>
18628
18629	[TODO] Added item on special case of mpfr_add and mpfr_sub.
18630
186312014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18632
18633	added test for get_ld
18634
186352014-02-14  Vincent Lefèvre  <vincent@vinc17.net>
18636
18637	[src/cache.c]
18638	  * Improved r8966: Setting the cache size to 10% more than the
18639	    requested precision may be a bad idea in large precisions.
18640	    It's better to guarantee a minimum of 10% increase; if the
18641	    user wants to, he can still control the maximum precision by
18642	    pre-computing the constant at this precision. Also make sure
18643	    that if pold == 0, the mpfr_init2 size is the same as the
18644	    mpfr_set_prec one (in order to avoid immediate reallocation).
18645	  * Replaced a comment by a couple of MPFR_ASSERTD's.
18646
186472014-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18648
18649	when recomputing a constant, use a precision 10% larger than the wanted
18650	precision to avoid many recomputations
18651
186522014-02-13  Vincent Lefèvre  <vincent@vinc17.net>
18653
18654	[src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA.
18655
18656	[src/bernoulli.c] GNU style.
18657	[src/mpfr-impl.h] Corrected prototypes.
18658
186592014-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18660
18661	implement cache for Bernoulli numbers (patch from Patrick Pélissier)
18662	tuned parameters for [ln]gamma now that we cache Bernoulli numbers
18663
18664	added bench target so that we can simply do "make bench"
18665
186662014-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18667
18668	added test for double-double
18669
18670	added comment about mpfr_gamma
18671
18672	forgot to restore the exponents in last commit
18673
18674	added reference for efficiency issue with mpfr_gamma
18675
18676	improve mpfr_gamma at around 1000 bits
18677
186782014-02-12  Vincent Lefèvre  <vincent@vinc17.net>
18679
18680	[doc/mpfr.texi] Updated the month.
18681
18682	Merged the set_exp branch into the trunk. Changes:
18683	  * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
18684	    the MPFR_EXP_CHECK case. There are 2 consequences:
18685	    1. The exp expression is evaluated several times (this should be
18686	       OK with the MPFR code and optimizations).
18687	    2. The real value of exp is tested for the assertion, instead of
18688	       the value converted to mpfr_exp_t. Thus new bugs could be found
18689	       (e.g. when an unsigned type is used instead of signed).
18690	  * src/set_exp.c: set the exponent only if x is a non-zero ordinary
18691	    number, i.e. already has a valid significand and a valid exponent
18692	    (thus it is no longer a low-level function, and it can no longer
18693	    generate an invalid value from a valid one).
18694	  * doc/mpfr.texi: updated mpfr_set_exp description and added an item
18695	    in the "API Compatibility / Changed Functions" section.
18696	  * Clean-up.
18697	Original discussion:
18698	  https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html
18699
18700	[src/rint.c] Added FIXME comment.
18701
18702	[src/next.c] Improved handling of special values.
18703
18704	[src/hypot.c] Reverted changeset r8950 (MPFR_SET_EXP is OK).
18705
18706	[src/hypot.c] Replaced a MPFR_SET_EXP by MPFR_EXP.
18707
18708	[src/fpif.c] Bug fixes and code clean-up. At the same time, took the
18709	future mpfr_set_exp change into account (see set_exp branch).
18710
18711	[src/set.c] Cosmetic change.
18712
18713	[src/fpif.c] English usage.
18714
18715	[src/cache.c] Replaced a MPFR_SET_EXP by MPFR_EXP (in practice, the code
18716	was working, but just because MPFR_DECL_INIT_CACHE inits the cache with
18717	a real exponent, though the significand pointer is null).
18718
187192014-02-11  Vincent Lefèvre  <vincent@vinc17.net>
18720
18721	[src/mul.c] Cosmetic change.
18722
18723	[src/atan.c] Fixed types of some variables, in particular
18724	unsigned → signed conversion of non-representable value
18725	(detected due to the new MPFR_SET_EXP assertion check in
18726	the set_exp branch).
18727
18728	[src/atan.c] Fixed types of some variables, in particular
18729	unsigned → signed conversion of non-representable value.
18730	Now, all the tests pass on Linux/x86_64.
18731
18732	[src/exp3.c] Fixed types of some variables, in particular
18733	unsigned → signed conversion of non-representable value
18734	(detected due to the new MPFR_SET_EXP assertion check in
18735	the set_exp branch).
18736
18737	[src/exp3.c] Fixed types of some variables, in particular
18738	unsigned → signed conversion of non-representable value.
18739	Now, 161 tests pass and 8 tests fail on Linux/x86_64.
18740
18741	[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
18742	particular unsigned → signed conversion of non-representable value
18743	under some conditions.
18744
18745	[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
18746	particular unsigned → signed conversion of non-representable value
18747	under some conditions.
18748	This doesn't change the number of failed tests.
18749
18750	[src/{sqrt_ui.c,sub_ui.c,ui_div.c,ui_sub.c}] Changed cnt type from
18751	unsigned long to int (signed) due to the MPFR_SET_EXP requirement.
18752	Otherwise the code was correct.
18753	Now, 160 tests pass and 9 tests fail on Linux/x86_64.
18754
18755	[src/mpfr-impl.h] Added a comment about MPFR_SET_EXP: exp is required
18756	to have a signed type.
18757
18758	[src/{set_d.c,set_f.c}] Type clean-up to improve maintainability.
18759
18760	[src/random_deviate.c] Type clean-up to improve maintainability.
18761
18762	[src/set_si_2exp.c] Fixed unsigned → signed conversion of
18763	non-representable value when mpfr_exp_t has the same size
18764	as int.
18765
18766	[src/set_si_2exp.c] Fixed unsigned → signed conversion of
18767	non-representable value when mpfr_exp_t has the same size
18768	as int (unrelated to MPFR_SET_EXP change).
18769
18770	[src/add_ui.c] Cosmetic changes.
18771
18772	[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
18773	value (detected due to the new MPFR_SET_EXP assertion check in the
18774	set_exp branch).
18775
18776	[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
18777	value (detected due to the new MPFR_SET_EXP assertion check).
18778	Now, 92 tests pass and 77 tests fail on Linux/x86_64.
18779
18780	[src/random_deviate.c] Added an assertion.
18781
18782	[tests/random2.c] Fixed unsigned → signed conversion of
18783	non-representable value (detected due to the new MPFR_SET_EXP
18784	assertion check in the set_exp branch).
18785
18786	[tests/random2.c] Fixed unsigned → signed conversion of
18787	non-representable value (detected due to the new MPFR_SET_EXP
18788	assertion check).
18789	Now, 87 tests pass and 82 tests fail on Linux/x86_64.
18790
18791	Updated src/urandomb.c due to the change of mpfr_set_exp behavior.
18792	Now, 77 tests pass and 92 tests fail on Linux/x86_64.
18793
18794	[tests/trandom.c] Improved test to get an assertion failure instead of
18795	a segmentation fault.
18796
18797	Start of mpfr_set_exp behavior clean-up.
18798	  * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
18799	    the MPFR_EXP_CHECK case. There are 2 consequences:
18800	    1. The exp expression is evaluated several times (this should be
18801	       OK with the MPFR code and optimizations).
18802	    2. The real value of exp is tested for the assertion, instead of
18803	       the value converted to mpfr_exp_t. Thus new bugs can be found
18804	       (e.g. when an unsigned type is used instead of signed).
18805	  * src/set_exp.c: set the exponent only if x is a non-zero ordinary
18806	    number, i.e. already has a valid significand and a valid exponent
18807	    (thus it is no longer a low-level function, and it can no longer
18808	    generate an invalid value from a valid one).
18809	  * doc/mpfr.texi: updated mpfr_set_exp description and added an item
18810	    in the "API Compatibility / Changed Functions" section.
18811	Currently 73 tests pass and 96 fail on Linux/x86_64, either due to bugs
18812	or due to code not yet updated for this change.
18813
18814	Set svn:ignore property on the tools/bench directory.
18815
188162014-02-06  Vincent Lefèvre  <vincent@vinc17.net>
18817
18818	[src/set_ld.c] Added a note about the test for infinity.
18819
188202014-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18821
18822	make -> make mpfrbench
18823
188242014-02-05  Vincent Lefèvre  <vincent@vinc17.net>
18825
18826	Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed.
18827
18828	[src/lngamma.c] Fixed bug introduced in the latest change r8917
18829	(inexact was not initialized in the case compared < 0).
18830
188312014-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18832
18833	added code for large inputs in lngamma/lgamma
18834
188352014-02-04  Vincent Lefèvre  <vincent@vinc17.net>
18836
18837	[TODO] Suggest timing-based thresholds for asymptotic expansions.
18838
188392014-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18840
18841	use asymptotic expansion for large positive argument
18842
188432014-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18844
18845	tiny change to distinguish different versions of the manual
18846
188472014-01-29  Vincent Lefèvre  <vincent@vinc17.net>
18848
18849	[src] Add constants:
18850	  * __gmpfr_mone = -1
18851	  * mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits
18852	  * mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits
18853	(modified patch from Patrick Pélissier).
18854
188552014-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18856
18857	added reference
18858
188592014-01-29  Vincent Lefèvre  <vincent@vinc17.net>
18860
18861	[src] mpz_t caching (modified patch by Patrick Pélissier).
18862
18863	[src/const_pi.c] Rewrote a condition to avoid a potential
18864	integer overflow (?) and match a comment.
18865
18866	[src/const_pi.c] Use of GROUP allocation and minor optimization
18867	(modified patch by Patrick Pélissier).
18868
188692014-01-28  Vincent Lefèvre  <vincent@vinc17.net>
18870
18871	[TODO] Added a note about "rounding to odd" / "sticky rounding".
18872
188732014-01-27  Vincent Lefèvre  <vincent@vinc17.net>
18874
18875	[tools/mpfrlint] Run-time assertions concerning relations between
18876	the MPFR exponent type and the long type are allowed (see r8896).
18877
188782014-01-26  Vincent Lefèvre  <vincent@vinc17.net>
18879
18880	[tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not
18881	a long.
18882
18883	[tests/tset_ld.c] Fixed printf argument.
18884
18885	[tests/tgamma.c] Fixed printf argument (bug detected with
18886	_MPFR_EXP_FORMAT=2 and -Werror=format=).
18887
18888	[tools/bench/mpfrbench.c] No longer use the numberof macro, and
18889	#include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c
18890	can now be linked against an installed MPFR library.
18891
188922014-01-24  Vincent Lefèvre  <vincent@vinc17.net>
18893
18894	Added MPFR_CHECK_GMP configure check.
18895	Useful if the user provides --with-gmp with a directory containing
18896	a GMP version that doesn't have the correct ABI: the previous tests
18897	won't trigger the error if the same GMP version with the right ABI
18898	is installed on the system, as this library is automatically
18899	selected by the linker, while the header (which depends on the ABI)
18900	of the --with-gmp include directory is used. Before this test, one
18901	was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is
18902	not related to a double-to-integer conversion bug.
18903
18904	[src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4:
18905	   * No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in
18906	     a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined,
18907	     the compilation fails. The test was not really useful anyway:
18908	     if one really wants mpfr_eexp_t to be long int if mpfr_exp_t
18909	     has the same range as long int, then _MPFR_EXP_FORMAT == 3 is
18910	     sufficient (and this is the default).
18911	   * Removed a test that should be always true due to the previous
18912	     inclusion of mpfr.h (intmax_t has already been used there in
18913	     the case _MPFR_EXP_FORMAT == 4).
18914
18915	[doc/README.dev] Rephrased paragraph added in r8897.
18916
18917	[doc/README.dev] Added a note for Automake 1.13+ and failed tests.
18918
18919	[src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the
18920	detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations
18921	between the MPFR exponent type and the long type have not been replaced
18922	because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4
18923	on some platforms (e.g. 32-bit ones), and we still want to be able to
18924	build MPFR in this case in order to test it; this needs to be fixed.
18925
18926	[tools/mpfrlint] Constant checking in assertions.
18927
18928	[src/mpfr-mini-gmp.c] Use lower case for function parameters.
18929
189302014-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18931
18932	re-enable assertions (patch from Patrick Pélissier)
18933
18934	removed an MPFR_LIKELY that is not so likely...
18935
189362014-01-24  Vincent Lefèvre  <vincent@vinc17.net>
18937
18938	Optimization: likely / unlikely, etc. (patch by Patrick Pélissier).
18939	Coding style.
18940
18941	[tune/tuneup.c] Fix compilation error due to static assertion being
18942	wrong (patch by Patrick Pélissier).
18943
18944	[src/const_log2.c] Optimization by using GROUP allocation (patch
18945	by Patrick Pélissier).
18946
18947	[src/exp_2.c] Optimization: Increase the initial estimate of the number
18948	of iterations (patch by Patrick Pélissier).
18949
18950	[src/erfc.c] Use of static assertion instead of run time assertion
18951	(patch by Patrick Pélissier).
18952
18953	[src/sum.c] Removed trailing spaces.
18954
18955	[src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP
18956	allocation, and MPFR_ALIAS (modified patch by Patrick Pélissier).
18957
18958	[tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC
18959	due to unused but set variable (patch by Patrick Pélissier).
18960
189612014-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
18962
18963	revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin,
18964	which is not what we want, we could use noinst_PROGRAMS, which would be
18965	compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS
18966	which is not compiled automatically)
18967
18968	divide the global score to get a number around 1000
18969
18970	added reference
18971
18972	gnu style
18973
189742014-01-23  Vincent Lefèvre  <vincent@vinc17.net>
18975
18976	Added libtool-tcc-wl.patch patch from
18977	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46
18978	to add tcc support to libtool 2.4.2 and below.
18979	In doc/README.dev, documented how to use this patch (before a release).
18980
18981	[tests/tadd.c] Added check_extreme test (huge + tiny).
18982	[tests/tsum.c] Added check_extreme test (same test as in tadd.c,
18983	  but with mpfr_sum instead of mpfr_add), and temporarily disabled
18984	  the cancel test.
18985
18986	Use of the numberof macro.
18987
18988	[tools/bench/mpfrbench.c] Whitespace clean-up.
18989
18990	[src/const_euler.c] Removed trailing spaces.
18991
18992	[tools/bench/Makefile.am] Fix for separate build directory (problem
18993	detected with "make distcheck").
18994
18995	[src/sum.c] Updated comment.
18996
18997	[src/sum.c] Updated comment.
18998
18999	[src/sum.c] Added a possible algorithm in comment.
19000
19001	[src/sum.c] Added FIXME comment.
19002
190032014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19004
19005	missing space
19006
19007	Mickaël is the only author of MPFRbench
19008
19009	updated authors and contributors
19010
19011	new code for Euler's constant (contributed by Fredrik Johansson)
19012
19013	added subdir tools/bench
19014
19015	added MPFRbench
19016
19017	added MPFRbench
19018
19019	make mpfrbench compiled just with "make"
19020
19021	changes for MPFRbench
19022
19023	new directory for MPFRbench (contributed by Mickaël Gastineau and Bill Hart)
19024
190252014-01-22  Vincent Lefèvre  <vincent@vinc17.net>
19026
19027	[tests/tsum.c] Added a comment about the cancellation test.
19028
19029	[tests/tsum.c] In the cancellation test, do a random permutation.
19030
190312014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19032
19033	mention sponsors
19034
190352014-01-22  Vincent Lefèvre  <vincent@vinc17.net>
19036
19037	[tests/tsum.c] In the cancellation test: reduced the number of tests;
19038	output debug information when building with -DDEBUG.
19039
19040	[tests/tsum.c] Added simple cancellation test.
19041
19042	[tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long.
19043
19044	[doc/mpfr.texi] Improved mpfr_sum description.
19045
19046	[src/sum.c] Do not use bitwise operations on values that can be
19047	negative. Added comments about what the functions do.
19048
190492014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19050
19051	fixed regression noticed by Patrick Pelissier with --enable-gmp-internals
19052
190532014-01-22  Vincent Lefèvre  <vincent@vinc17.net>
19054
19055	[tests/tests.c] Fixed bug in test_version() introduced in r8821.
19056
19057	[src/lngamma.c] Fixed divide-by-zero flag for negative integers.
19058	[tests/tlngamma.c] Test the flags for some special values. Clean-up.
19059
190602014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19061
19062	removed two items done
19063
190642014-01-21  Vincent Lefèvre  <vincent@vinc17.net>
19065
19066	[src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch
19067	  by Patrick Pélissier).
19068	[src/round_prec.c] Added a note about the reallocation.
19069
19070	LIKELY some code.
19071
19072	[src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers
19073	  and -Inf.
19074	[doc/mpfr.texi] Updated the documentation on the general rules for
19075	  special values and on mpfr_lngamma.
19076	[tests/tlngamma.c] Update.
19077	See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html>
19078	(behavior of mpfr_lngamma on zero and general rule for such limits).
19079
19080	[acinclude.m4,configure.ac] Check that a directory passed to
19081	a --with-gmp* configure option exists and doesn't contain any
19082	space, and canonicalize the name if the realpath utility is
19083	available (patch by Patrick Pélissier).
19084
19085	[src/mul.c] Optimization (modified patch by Patrick Pélissier).
19086
19087	[src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR,
19088	and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions
19089	(modified patch by Patrick Pélissier).
19090
19091	[src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0,
19092	  and so on (except for src/exceptions.c).
19093	[tools/mpfrlint] Update for flags related functions: check that
19094	  the macros are used in src (except for exceptions.c and mpfr.h)
19095	  instead of the functions.
19096	[src/mpfr-impl.h] Removed some useless parentheses in comments,
19097	  for mpfrlint.
19098
190992014-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19100
19101	added more detail in case of error
19102
191032014-01-21  Vincent Lefèvre  <vincent@vinc17.net>
19104
19105	[src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently.
19106
19107	Small mpfr_erf improvement (modified patch by Patrick Pélissier).
19108
19109	[src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null
19110	(based on a patch by Patrick Pélissier).
19111
19112	[configure.ac] --enable-mini-gmp message: fixed layout; experimental.
19113
19114	[NEWS] Mini-gmp support is experimental.
19115
19116	[NEWS] Mention the new --enable-mini-gmp configure option.
19117
19118	[NEWS] Mini-gmp support.
19119
19120	[NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility.
19121
19122	[NEWS] Better Automake 1.13 support.
19123
19124	Merged the vl-am113 branch: test suite improvement with Automake 1.13.
19125	  * Moved GMP version check from tversion.c to the test_version()
19126	    function of tests.c, so that this check is done in every test.
19127	    This function now returns an int, as there are now 3 cases:
19128	    1. An error in MPFR version check is a fatal error: test_version()
19129	       exits with an error (exit status = 1).
19130	    2. An error in GMP version check is a non-fatal error: if there
19131	       are no errors in MPFR version check, test_version() returns
19132	       with value 1.
19133	    3. Otherwise test_version() returns with value 0 (everything is
19134	       fine).
19135	  * tversion.c still runs test_version(), but fails if this function
19136	    returns with an error, i.e. any error is fatal for this test.
19137	    Note: for the other tests, one just has a message in the output
19138	    in case of GMP version mismatch.
19139	  * mpfr-test.h: updated test_version() prototype.
19140	  * Makefile.am: removed the second tversion invocation, and output
19141	    the contents of tversion.log if this file exists (typically with
19142	    Automake 1.13+, for which one no longer gets tversion output by
19143	    default).
19144
19145	[tests/Makefile.am] Removed obsolete comment.
19146
191472014-01-20  Vincent Lefèvre  <vincent@vinc17.net>
19148
19149	Dropped obsolete __gmp_const (replaced by const).
19150
19151	[TODO] Removed mini-gmp support: done.
19152
19153	Small mpfr_exp improvement (modified patch by Patrick Pélissier).
19154
19155	[tools/mbench] Patch by Patrick Pélissier: import base support,
19156	corei7 support, build fix (with MPFR 3.1+).
19157
191582014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19159
19160	come back to revision 8723 which was faster (measured with tools/mbench/mfv5
19161	on 53 and 1024 bits). The reason is that the "new" version had overhead for
19162	mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for
19163	53 bits, and 132 cycles for 1024 bits)
19164
191652014-01-20  Vincent Lefèvre  <vincent@vinc17.net>
19166
19167	Added __builtin_unreachable / MPFR_ASSUME support (modified patch
19168	from Patrick Pélissier).
19169
19170	MPFR now depends on GMP 4.2+ instead of 4.1+.
19171	GMP 4.2 compatibility fixed.
19172	Code clean-up.
19173	(Modified patch from Patrick Pélissier)
19174
19175	[src/fms.c] Coding style.
19176
19177	[src/fma.c] Changed mp_prec_t to mpfr_prec_t.
19178
191792014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19180
19181	added mpfr_fma
19182
191832014-01-20  Vincent Lefèvre  <vincent@vinc17.net>
19184
19185	[tests/tests.c] Output a \n between two error messages when need be.
19186
191872014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19188
19189	speed up mpfr_fma [common work with Jeroen Demeyer]
19190
191912014-01-20  Vincent Lefèvre  <vincent@vinc17.net>
19192
19193	[tests]
19194	  * Moved GMP version check from tversion.c to the test_version()
19195	    function of tests.c, so that this check is done in every test.
19196	    This function now returns an int, as there are now 3 cases:
19197	    1. An error in MPFR version check is a fatal error: test_version()
19198	       exits with an error (exit status = 1).
19199	    2. An error in GMP version check is a non-fatal error: if there
19200	       are no errors in MPFR version check, test_version() returns
19201	       with value 1.
19202	    3. Otherwise test_version() returns with value 0 (everything is
19203	       fine).
19204	  * tversion.c still runs test_version(), but fails if this function
19205	    returns with an error, i.e. any error is fatal for this test.
19206	    Note: for the other tests, one just has a message in the output
19207	    in case of GMP version mismatch.
19208	  * mpfr-test.h: updated test_version() prototype.
19209	  * Makefile.am: removed the second tversion invocation.
19210
19211	[tests/Makefile.am] Output the contents of tversion.log if this file
19212	exists (typically with Automake 1.13+, for which one no longer gets
19213	tversion output by default).
19214
192152014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19216
19217	simplified the fms code (joint work with Jeroen Demeyer)
19218
19219	fixed bug in mpfr_exp_3, and memory leak in texp
19220
192212014-01-20  Vincent Lefèvre  <vincent@vinc17.net>
19222
19223	[src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0)
19224	to avoid an error with:
19225	  ./configure --enable-logging CFLAGS="-Werror=return-type"; make
19226
19227	[src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro.
19228
192292014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19230
19231	added new test that currently fails (found with mini-gmp)
19232
192332014-01-18  Vincent Lefèvre  <vincent@vinc17.net>
19234
19235	Spelling consistency:
19236	  non-negative → nonnegative
19237	  non-positive → nonpositive
19238
19239	[doc/README.dev] More on exponent handling.
19240
19241	[tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test.
19242	Some code clean-up.
19243
19244	[tests/tset_str.c] Removed useless and confusing cast.
19245
19246	[src/set_d.c] Improved a comment about signed zeros.
19247
192482014-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19249
19250	fixed memory leak
19251
19252	instructions to compile MPFR with mini-gmp
19253
19254	disable those tests for mini-gmp
19255
19256	fixed test which might produce subnormal numbers
19257
19258	disable two tests that depend on the random generator
19259
19260	followup from previous commit: 1^Inf is special too
19261
19262	fixed issue for n^x with x=Inf when the random number n is 0
19263
19264	fixed issue when x=0 and y=Inf (or converse)
19265
19266	fixed issue when x=0 and y=Inf (or converse)
19267
19268	fixed bug in test file
19269
192702014-01-18  Vincent Lefèvre  <vincent@vinc17.net>
19271
19272	[src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen:
19273	https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
19274
19275	[src/set_d.c] In extract_double, replaced long by int for exp (it may be
19276	faster, and shouldn't be slower as it is more restrictive than long).
19277
19278	[src/set_d.c] Removed obsolete comment from r245.
19279
19280	[src/set_d.c] Renamed __gmpfr_extract_double to extract_double
19281	(this is just a static function).
19282
19283	[src/set_d.c] Fixed __gmpfr_extract_double precondition on d.
19284	Bug found by Wolf Lammen:
19285	  https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html
19286
192872014-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19288
19289	more progress with mini-gmp:
19290	=======================
19291	9 of 157 tests failed
19292	(13 tests were not run)
19293	=======================
19294
192952014-01-18  Vincent Lefèvre  <vincent@vinc17.net>
19296
19297	[tests/{ty0,ty1}.c] Reduce emax for the generic tests.
19298
192992014-01-17  Vincent Lefèvre  <vincent@vinc17.net>
19300
19301	[src/lngamma.c] FIXME: proposed method for overflow detection.
19302
19303	[src/lngamma.c] Minor improvements.
19304
193052014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19306
19307	missing \n
19308
19309	missing \n
19310
19311	missing \n in error messages
19312
19313	missing \n in error messages
19314
193152014-01-17  Vincent Lefèvre  <vincent@vinc17.net>
19316
19317	[src/lngamma.c] Added a MPFR_LOG_FUNC.
19318
19319	[src/digamma.c] FIXME: for x large, use the asymptotic expansion.
19320
19321	[src/digamma.c] Added 2 MPFR_LOG_FUNC's.
19322
19323	[tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to
19324	test the maximum (in absolute value) positive and negative arguments
19325	was buggy, as only the negative one was tested.
19326	→ This makes some tests fail on the maximum positive argument.
19327
193282014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19329
19330	some progress with mini-gmp:
19331	=======================
19332	34 of 157 tests failed
19333	(13 tests were not run)
19334	=======================
19335
19336	mpn_copyd (rp, sp, n) should be used when rp >= sp
19337
19338	fixed bug which could appear with probability 1/2^32 or 1/2^64
19339
193402014-01-17  Vincent Lefèvre  <vincent@vinc17.net>
19341
19342	[src/mpfr-mini-gmp.c] Removed trailing spaces.
19343
19344	[tools/mpfrlint] Update due to the mini-gmp support (r8753).
19345
19346	[tests] Various fixes for r8753.
19347
19348	[src/mpfr.h] Indentation.
19349
19350	[src/mpfr-impl.h] Indentation.
19351
19352	Avoid an empty translation unit (see ISO C99, 6.9). Some errors could
19353	be triggered with "gcc -std=c99 -pedantic-errors".
19354
193552014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19356
19357	more progress for the mini-gmp interface
19358
193592014-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19360
19361	added two new files for mini-gmp interface
19362
19363	first step towards making MPFR compile with --enable-mini-gmp, so far make
19364	succeeds and all tests compile, but many tests fail, will investigate later
19365
193662014-01-16  Vincent Lefèvre  <vincent@vinc17.net>
19367
19368	[src/get_z_exp.c] Added an assert for security in case the precision is
19369	large, but the error should be handled properly (to be discussed).
19370	Note: there are still corrupt memory problems when the precision is
19371	large enough but below the mpz limit (a bug in GMP?).
19372	Note [VL, 2014-01-17]: these problems are due to an integer overflow in
19373	mpz/clear.c of GMP 5.1.3; I've reported the bug here:
19374	  https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html
19375
19376	[src/get_z_exp.c] Avoid a potential overflow.
19377
19378	[src/extract.c] Type clean-up with 2 bug fixes (these bugs should have
19379	no effect on most platforms without too aggressive optimizations).
19380
193812014-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19382
19383	replaced function _mpz_realloc by preferred one mpz_realloc2
19384
193852014-01-16  Vincent Lefèvre  <vincent@vinc17.net>
19386
19387	[TODO] Added mini-gmp support.
19388
193892014-01-15  Vincent Lefèvre  <vincent@vinc17.net>
19390
19391	[NEWS] Mention speed improvement with --enable-assert[=full] and GCC
19392	(due to the fix in r8746).
19393
193942014-01-14  Vincent Lefèvre  <vincent@vinc17.net>
19395
19396	[src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by
19397	Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html
19398	Note: the semantics doesn't change, it should just be more efficient.
19399
194002014-01-12  Vincent Lefèvre  <vincent@vinc17.net>
19401
19402	[tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case.
19403
194042014-01-11  Vincent Lefèvre  <vincent@vinc17.net>
19405
19406	[tests/tset_d.c] More information in a failed test.
19407
194082014-01-10  Vincent Lefèvre  <vincent@vinc17.net>
19409
19410	[tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS)
19411	(this should have been done at the same time as r8364).
19412
194132014-01-09  Vincent Lefèvre  <vincent@vinc17.net>
19414
19415	[doc/README.dev] "To make a release" update. In particular at step 5,
19416	replaced "make dist" by "make distcheck" so that some problems can be
19417	detected at step 5 instead of step 6, ensuring that the tarballs are
19418	complete.
19419
19420	[src/Makefile.am] Forgot to add mpfr-cvers.h in r8739.
19421
19422	When static assertions are not supported by the C implementation
19423	natively (new C11 feature), their MPFR implementation got broken by
19424	changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not
19425	defined in the configure test (since mpfr-impl.h wasn't included)
19426	and generated an error, disabling the static assertions support.
19427	This is fixed by the following changes, avoiding code duplication
19428	and thus risk of inconsistencies in future modification:
19429	  * copied some of the version detection macros from mpfr-impl.h to
19430	    a standalone file mpfr-cvers.h, and updated the macros;
19431	  * in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h"
19432	    and updated a comment;
19433	  * in mpfr-sassert.h, added a #include "mpfr-cvers.h".
19434
19435	[acinclude.m4] In the Static Assertions test, avoid a warning with GCC
19436	and added comments.
19437
194382014-01-07  Vincent Lefèvre  <vincent@vinc17.net>
19439
19440	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
19441
19442	[tools/mpfrlint] Use codespell if available.
19443
19444	[TODO] Fixed a misspelling, using codespell.
19445
19446	Fixed misspellings, using codespell.
19447
194482014-01-06  Vincent Lefèvre  <vincent@vinc17.net>
19449
19450	[TODO] Added item: new functions of IEEE 754-2008 / C binding draft.
19451
194522014-01-05  Vincent Lefèvre  <vincent@vinc17.net>
19453
19454	[doc/README.dev] "To make a release": added a paragraph about warnings.
19455
19456	[tests/trint.c] Avoid a warning.
19457
19458	[acinclude.m4] Avoid a warning due to variable set but not used in a
19459	test, making the test fail with gcc -Werror=unused-but-set-variable.
19460
19461	[acinclude.m4] Replaced "main()" by "main (void)".
19462
194632014-01-04  Vincent Lefèvre  <vincent@vinc17.net>
19464
19465	[doc/mpfr.texi] Updated the month.
19466
194672014-01-03  Vincent Lefèvre  <vincent@vinc17.net>
19468
19469	Fixed warnings from GCC's -Wold-style-declaration option:
19470	MPFR_THREAD_ATTR must be at beginning of declaration.
19471
19472	Copyright notice update: added 2014 with
19473	  perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/
19474	               " ".($1||"$2-").($2+1)/e' **/*(^/)
19475	under zsh (the tools/mbench directory was not modified).
19476	Removed 2013 from the example in the doc/README.dev file.
19477
194782013-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19479
19480	work around for bug in mpn_set_str
19481	(https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html)
19482
194832013-12-12  Vincent Lefèvre  <vincent@vinc17.net>
19484
19485	Added tools/repl-variadic Perl script to replace the variadic functions
19486	mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported
19487	by the compiler.
19488
194892013-11-28  Vincent Lefèvre  <vincent@vinc17.net>
19490
19491	[tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as
19492	a macro (i.e. without parentheses) to trigger the bug fixed in r8715.
19493
19494	[src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in
19495	variable name, which can yield incorrect behavior if the second
19496	argument is not a simple expression).
19497	Thanks to Andreas Enge for the bug report:
19498	  https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html
19499
195002013-11-21  Vincent Lefèvre  <vincent@vinc17.net>
19501
19502	[src/lngamma.c] No longer declare B as initialized with GCC (see r5534),
19503	as the "may be used uninitialized" warning no longer occurs with latest
19504	GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9.
19505	The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1):
19506
19507	$ gcc-4.8 -O2 -Wall -c gamma.c
19508	In file included from gamma.c:27:0:
19509	gamma.c: In function ‘mpfr_gamma’:
19510	lngamma.c:468:17: warning: ‘B’ may be used uninitialized in this function [-Wmaybe-uninitialized]
19511	               B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */
19512	                 ^
19513	lngamma.c:165:10: note: ‘B’ was declared here
19514	   mpz_t *B;
19515	          ^
19516	Note: with GCC 4.8.2, at least -O is needed to reproduce the warning,
19517	and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't
19518	trigger the warning.
19519
195202013-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19521
19522	added -Wlogical-op
19523
195242013-11-15  Vincent Lefèvre  <vincent@vinc17.net>
19525
19526	[tests/tsprintf.c] Added a few tests.
19527
19528	[doc/README.dev] This may seem obvious, but this is not the first time
19529	this happens: + "When adding the expected result, do NOT use the one
19530	obtained from the MPFR function! Otherwise, if this function is buggy,
19531	the test will be wrong and the function will remain buggy."
19532
19533	[tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding
19534	bug in src/vasprintf.c has been fixed in r8705).
19535
195362013-11-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19537
19538	fixed bug reported by David Binderman
19539	(https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html)
19540
195412013-11-06  Vincent Lefèvre  <vincent@vinc17.net>
19542
19543	[tests/thypot.c] More NaN tests.
19544
195452013-11-06  Philippe Théveny  <philippe.theveny@laposte.net>
19546
19547	[tests/thypot.c] Fix use of a non explicitly initialized variable.
19548
195492013-11-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19550
19551	[sum.c] the call to mpfr_can_round was obviously wrong
19552
195532013-11-04  Vincent Lefèvre  <vincent@vinc17.net>
19554
19555	[tests/tsum.c] Updated TODO comment (→ check underflows).
19556
195572013-11-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19558
19559	[sum.c] mpfr_sum should consider the maximal precision of its inputs/output
19560
195612013-10-28  Vincent Lefèvre  <vincent@vinc17.net>
19562
19563	[tests/tsum.c] Added a TODO comment: add generic random test with
19564	cancellations, and tests with intermediate overflows.
19565
19566	[tests/tsum.c] Added test for bug reported by Joseph S. Myers:
19567	https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html
19568
195692013-09-27  Vincent Lefèvre  <vincent@vinc17.net>
19570
19571	[doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the
19572	bug fixed in r8503.
19573
19574	[src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double.
19575	[tests/tset_ld.c] In Isnan_ld, do not convert the long double argument
19576	to double, as this can give an overflow and unexpected behavior without
19577	default IEEE 754 behavior. With this change, this tset_ld test no longer
19578	fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover".
19579
19580	[tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO.
19581
19582	[tests/tset_ld.c] Move tests_start_mpfr call earlier.
19583
19584	[tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined.
19585
19586	[src/mpfr-impl.h] With clang, disable division by zero using constants
19587	due to a bug in its sanitizer and because IEEE 754 division by zero is
19588	currently not properly supported.
19589	With this change, the tget_d test no longer fails with:
19590	  clang -O2 -fsanitize=undefined -fno-sanitize-recover
19591
195922013-09-26  Vincent Lefèvre  <vincent@vinc17.net>
19593
19594	[tests/tget_flt.c] Protect a division by 0.
19595
195962013-09-17  Vincent Lefèvre  <vincent@vinc17.net>
19597
19598	[src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0.
19599
196002013-09-16  Vincent Lefèvre  <vincent@vinc17.net>
19601
19602	[NEWS] For MPFR 3.2: The --enable-decimal-float configure option
19603	no longer requires --with-gmp-build (see r8402).
19604
196052013-09-15  Vincent Lefèvre  <vincent@vinc17.net>
19606
19607	[configure.ac] Detect broken _Decimal64 support on powerpc64 with
19608	the mode32 ABI.
19609
19610	[tests/tget_set_d64.c] More meaningful messages in check_inf_nan.
19611
19612	[tests/tget_set_d64.c] More meaningful messages in check_inf_nan
19613	after failures on powerpc64 with the mode32 ABI.
19614
196152013-09-04  Vincent Lefèvre  <vincent@vinc17.net>
19616
19617	[TODO] Added: implement optional cache sharing between threads.
19618
196192013-09-02  Vincent Lefèvre  <vincent@vinc17.net>
19620
19621	[doc/mpfr.texi] Changed node name "Integer Related Functions" to
19622	"Integer and Remainder Related Functions", as the corresponding
19623	section title was changed in r4867. Added associated @cindex.
19624
19625	[doc/mpfr.texi] Updated the month.
19626
19627	[doc/mpfr.texi] Specified special values (in particular the sign of 0)
19628	for Section 5.10 "Integer and Remainder Related Functions".
19629
19630	[src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions
19631	at the request of John P. Hartmann (to support one of IBM's High Level
19632	Assembler rounding mode for hexadecimal floating-point constants).
19633
19634	[src/round_raw_generic.c] Code simplification / comment corrections.
19635
196362013-08-26  Vincent Lefèvre  <vincent@vinc17.net>
19637
19638	[doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover
19639	for more visibility in automated tests.
19640
196412013-08-23  Vincent Lefèvre  <vincent@vinc17.net>
19642
19643	[src/ai.c] Moved the handling of the special cases NaN and ±Inf to
19644	the main function mpfr_ai.
19645
19646	[src/agm.c] Corrected a comment.
19647	[tests/tagm.c] Added tests concerning special values,
19648	  in particular (zero,negative) and symmetric tests.
19649	[doc/mpfr.texi] Corrected mpfr_agm description.
19650
196512013-08-21  Vincent Lefèvre  <vincent@vinc17.net>
19652
19653	[TODO] Revisit the conversion functions between a MPFR number and
19654	a native floating-point value.
19655
196562013-08-19  Vincent Lefèvre  <vincent@vinc17.net>
19657
19658	[doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property.
19659	Note: These directories are now generated when using "make mpfr.dvi"
19660	and "make mpfr.pdf". This comes from a change in Automake 1.13 (see
19661	its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations.
19662
196632013-08-10  Vincent Lefèvre  <vincent@vinc17.net>
19664
19665	[doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86.
19666
196672013-08-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19668
19669	[tversion.c] added GCC version
19670
19671	[tset_ld.c] try to fix a bug on i686-freebsd
19672		    (see http://hydra.nixos.org/build/5665961/log/raw)
19673
19674	[tset_ld.c] added debug information
19675
196762013-08-07  Vincent Lefèvre  <vincent@vinc17.net>
19677
19678	[tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover
19679	the memory representation already gives the necessary information (and
19680	the decimal output was correct on the machine where the test fails).
19681
196822013-08-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19683
19684	[tset_ld.c] maybe this will fix the issue for i686-freebsd?
19685		    Cf http://hydra.nixos.org/build/5662697.
19686
19687	[tset_ld.c] in case of error, print d in hexadecimal
19688
196892013-08-07  Vincent Lefèvre  <vincent@vinc17.net>
19690
19691	[tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output
19692	the memory representation of d.
19693
196942013-08-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19695
19696	[tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error
19697
196982013-08-07  Vincent Lefèvre  <vincent@vinc17.net>
19699
19700	[doc/mpfr.texi] Space consistency.
19701
197022013-08-06  Vincent Lefèvre  <vincent@vinc17.net>
19703
19704	[tests/tset_ld.c] Corrected a comment.
19705
19706	[tests/tset_ld.c] Set some long double variables as volatile in order to
19707	avoid optimizations that yield failures with xlc on power7 (not tested).
19708
19709	[src/get_ld.c] Oops... The non-working code was due to a missing cast.
19710	So, simplified the code.
19711
19712	[acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the
19713	  "long double" format seems to be double-double (e.g. on PowerPC).
19714	[src/get_ld.c] Added double-double support.
19715
197162013-08-05  Vincent Lefèvre  <vincent@vinc17.net>
19717
19718	[src/get_ld.c] GNU style.
19719
19720	[tests/tset_ld.c] Improved output in case of error.
19721
19722	[tests/tset_ld.c] Improved check_set_get() test function; in particular,
19723	it no longer takes a mpfr_t argument: the precision of the MPFR number
19724	is now determined dynamically from the long double d. Thus some numbers
19725	having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are
19726	now tested (e.g. on PowerPC).
19727
19728	[doc/mpfr.texi] "correctly-rounded" → "correctly rounded" (see rule on
19729	https://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754
19730	and ISO C standards don't use a hyphen either).
19731
19732	[doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description.
19733
19734	[doc/mpfr.texi] Replaced periods ending a sentence by "@." in the
19735	following cases: when the preceding character is a capital letter
19736	or a closing parenthesis following a capital letter (e.g. "NaN.",
19737	"MPFR.", "MPFR).", etc). This is needed to get correct spacing in
19738	the generated .info and PDF files with the next sentence of the
19739	paragraph (when there is one).
19740
19741	[tests/tset_ld.c] Removed the "check largest 2^k that is representable
19742	as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which
19743	are not correct in some C implementations. There is already another
19744	"check the largest power of two" test, based on a loop, which is OK.
19745
197462013-08-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19747
19748	[tset_ld.c] improve tests to avoid spurious errors for double-double
19749		    representation where MPFR_LDBL_MANT_DIG=106 and numbers
19750		    with 107 bits or more
19751
197522013-08-02  Vincent Lefèvre  <vincent@vinc17.net>
19753
19754	[doc/mpfr.texi] Document that log1p(-1) = -Inf.
19755
19756	[doc/mpfr.texi] Updated the month.
19757
19758	[doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp
19759	respectively.
19760
19761	[tests/tset_ld.c] Comment on LDBL_MAX.
19762
197632013-08-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19764
19765	[tset_ld.c] missing conversion from int to mpfr_rnd_t
19766
19767	[tset_ld.c] improve error message
19768
197692013-08-02  Vincent Lefèvre  <vincent@vinc17.net>
19770
19771	[src/set_ld.c] Corrected a comment.
19772
197732013-08-01  Vincent Lefèvre  <vincent@vinc17.net>
19774
19775	[doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma
19776	on 1 and 2 (result is +0).
19777
19778	[doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot.
19779
19780	[tests] Added terandom and tnrandom to svn:ignore property.
19781
19782	[src] Improved some comments with "0", about its sign.
19783
19784	[doc/mpfr.texi] Completed specification on special numbers (±0, ±Inf).
19785
197862013-08-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19787
19788	[tset_ld.c] increase precision to take into account double-double encoding
19789
19790	[tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined
19791
197922013-07-22  Vincent Lefèvre  <vincent@vinc17.net>
19793
19794	[src/mpfr-sassert.h] Get rid of annoying warnings
19795	  typedef 'MPFR_ASSERT_xxx' locally defined but not used
19796	with GCC 4.8+ (better than the non-portable solution r8618). Thanks to
19797	Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html
19798
197992013-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19800
19801	[configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin,
19802		       i686-freebsd, i686-solaris and x86_64-freebsd
19803		       (cf http://hydra.nixos.org/eval/955753)
19804
198052013-07-22  Vincent Lefèvre  <vincent@vinc17.net>
19806
19807	Applied patch 3 by Ondřej Bílka with some manual corrections,
19808	fixing typos:
19809	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html
19810
19811	Applied patch 2 by Ondřej Bílka, fixing capitalization:
19812	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html
19813
19814	Applied patch 1 by Ondřej Bílka, fixing common typos:
19815	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html
19816
19817	[configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious
19818	"typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due
19819	to the implementation of static assertions.
19820
198212013-07-16  Vincent Lefèvre  <vincent@vinc17.net>
19822
19823	Slightly restructured doc/README.dev and mentioned C-Reduce.
19824
198252013-07-12  Vincent Lefèvre  <vincent@vinc17.net>
19826
19827	[configure.ac] If the gmp.h vs libgmp test fails, also output the value
19828	of some variables (in case config.log is available, information can
19829	also be retrieved from "Cache variables" and "Output variables" near
19830	the end).
19831
198322013-07-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19833
19834	revert temporary commit 8613
19835
198362013-07-11  Vincent Lefèvre  <vincent@vinc17.net>
19837
19838	[acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure
19839	and added comments about that.
19840
198412013-07-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19842
19843	[configure.ac] temporary commit to investigate problem with i686-solaris on hydra
19844
198452013-07-11  Vincent Lefèvre  <vincent@vinc17.net>
19846
19847	[configure.ac] In the CC and CFLAGS setup from gmp.h, modified the
19848	list of commands to select the C preprocessor since /lib/cpp isn't
19849	the best choice under Solaris.
19850
19851	[configure.ac] Moved AM_PROG_AR (introduced in r8546) after the
19852	CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf
19853	select a compiler (before it may be chosen from __GMP_CC).
19854
19855	[configure.ac] The test of CC and CFLAGS was done too late! Moved this
19856	test earlier (checked on Debian/unstable with autoconf 2.69).
19857
198582013-07-10  Vincent Lefèvre  <vincent@vinc17.net>
19859
19860	[configure.ac] Improved r8608 (gmp.h/libgmp on stderr).
19861
198622013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19863
19864	[configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they
19865		       will appear on i686-solaris
19866
19867	[src/exp_2.c] removed useless instruction
19868
198692013-07-10  Vincent Lefèvre  <vincent@vinc17.net>
19870
19871	[acinclude.m4] Corrected change in r8602 to get an error in the case
19872	i == 0 and u != 1.
19873
198742013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19875
19876	[configure.ac] added fflush to see versions of gmp.h/libgmp
19877
198782013-07-10  Vincent Lefèvre  <vincent@vinc17.net>
19879
19880	[src/exp_2.c] Fixed undefined behavior (present in all MPFR versions)
19881	detected by "clang -fsanitize=undefined".
19882
19883	[doc/README.dev] Suggest to test with "clang -fsanitize=undefined";
19884	see <https://blog.regehr.org/archives/963>.
19885
198862013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19887
19888	more helpful debug information
19889
19890	added debug information for double-to-integer conversion bug
19891
198922013-07-09  Vincent Lefèvre  <vincent@vinc17.net>
19893
19894	[src/mpfr.h] Updated a comment about ICC.
19895
19896	[doc/README.dev] Added URL about compiler detection.
19897
198982013-06-07  Vincent Lefèvre  <vincent@vinc17.net>
19899
19900	[doc/README.dev] Another update about signed and unsigned integer types.
19901
19902	[doc/README.dev] Update about signed and unsigned integer types.
19903
199042013-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19905
19906	[src/random_deviate.c] applied patch from Charles Karney
19907	[tests/Makefile.am] reorder test files
19908
199092013-06-07  Vincent Lefèvre  <vincent@vinc17.net>
19910
19911	[doc/README.dev] Added URL's about C++ reserved keywords.
19912
199132013-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19914
19915	changed to allow compilation with C++:
19916	[src/random_deviate.h] must declare the types before extern C {...}
19917	[tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++
19918
199192013-06-07  Vincent Lefèvre  <vincent@vinc17.net>
19920
19921	[doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot
19922	cannot have an internal underflow, thus is correct.
19923
199242013-06-06  Vincent Lefèvre  <vincent@vinc17.net>
19925
19926	[tools/mpfrlint] Improved a test to avoid false positives.
19927
19928	[doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the
19929	scaling case.
19930
19931	[src/hypot.c] Slightly improved scaling to avoid even more underflow
19932	in the scaling of y or in its square.
19933
19934	[src/hypot.c] Added a comment on the FIXME.
19935
19936	[src/mpfr-gmp.h] Removed useless and meaningless definitions.
19937
19938	[src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to
19939	mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals
19940	as it is included only in builds without GMP internals).
19941
19942	[src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test.
19943
199442013-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19945
19946	changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP)
19947
19948	fixed compiler warnings
19949
19950	[mpfr-gmp.h] added replacement for mp_bitcnt_t
19951	[hypot.c] added comment
19952
199532013-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19954
19955	applied patch from Charles Karney
19956
199572013-06-05  Vincent Lefèvre  <vincent@vinc17.net>
19958
19959	[README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver
19960	(installed by Automake 1.12+).
19961
199622013-06-03  Vincent Lefèvre  <vincent@vinc17.net>
19963
19964	[doc/mpfr.texi] Updated the month.
19965
199662013-06-02  Vincent Lefèvre  <vincent@vinc17.net>
19967
19968	[configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement
19969	to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3
19970	(we assume that such distributions have a security patch).
19971
19972	[configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for
19973	AM_PROG_AR and security reasons.
19974
19975	[NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2.
19976
19977	Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict).
19978
19979	[doc/mpfr.texi] Slight doc improvement for mpfr_grandom.
19980
199812013-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19982
19983	added assertion
19984
199852013-06-01  Vincent Lefèvre  <vincent@vinc17.net>
19986
19987	[src/random_deviate.c] Updated a comment.
19988
199892013-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
19990
19991	in case mp_limb_t is smaller than unsigned long, use alternate code for
19992	highest_bit_idx
19993
199942013-06-01  Vincent Lefèvre  <vincent@vinc17.net>
19995
19996	[tools/mpfrlint] Update for random_deviate.
19997
19998	[src/nrandom.c] Corrected indentation.
19999
20000	[src/random_deviate.h] Fixed a typo in a macro name.
20001
20002	[src/random_deviate.c] Removed trailing spaces.
20003
20004	Added ar-lib to svn:ignore property (this script comes from Automake,
20005	due to the use of AM_PROG_AR in configure.ac as of r8546).
20006
200072013-05-31  Vincent Lefèvre  <vincent@vinc17.net>
20008
20009	[tests/memory.c] Added a FIXME comment about the time complexity of
20010	tests_memory_find (Paul Zimmermann noticed that tgrandom on a large
20011	value takes a lot of time, probably because of that).
20012
200132013-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20014
20015	updated NEWS and contribution section in mpfr.texi
20016
20017	#include <...> -> #include "..." for local files
20018
20019	removed obsolete comment
20020
20021	GNU style
20022
20023	GNU style
20024
20025	GNU style
20026
20027	added tests files for mpfr_nrandom and mpfr_erandom
20028
20029	removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation).
20030	Kept in svn history as a reference.
20031
20032	removed mpfr_grandom_alt (likewise previous commit)
20033
20034	removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered
20035	from the svn history to illustrate one of the basic properties of a newly
20036	initialized mpfr_random_deviate_t)
20037
20038	removed mpfr_random.h, headers are in mpfr.h
20039
20040	original contribution from Charles Karney <charles.karney@sri.com>
20041
200422013-05-30  Vincent Lefèvre  <vincent@vinc17.net>
20043
20044	Removed obsolete tools/update-patchv script. Use update-version instead.
20045
20046	[configure.ac] Added AM_PROG_AR to support unusual archivers
20047	(after a warning from Automake 1.13).
20048
20049	[tools/ck-copyright-notice] Update for copyright year ranges.
20050
20051	[doc/mpfr.texi] Updated the month.
20052
20053	Use copyright year ranges, following
20054	  https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
20055
20056	[tests] Added *.log and *.trs to svn:ignore property.
20057
20058	[INSTALL] Update about configure default options.
20059
20060	Added test-driver (from Automake 1.12+) to svn:ignore property.
20061
200622013-05-24  Vincent Lefèvre  <vincent@vinc17.net>
20063
20064	[configure.ac] Updated comment about -mieee-fp icc option.
20065
200662013-05-24  Philippe Théveny  <philippe.theveny@laposte.net>
20067
20068	[tests/tprintf] remove tests of invalid format (continuation of r8525).
20069
20070	[src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the
20071	 corresponding type is not detected by configure (continuation of r8525).
20072
200732013-05-24  Vincent Lefèvre  <vincent@vinc17.net>
20074
20075	[configure.ac] For ICC, changed the deprecated -mp option to the
20076	equivalent one -mieee-fp; added a comment about that.
20077
200782013-05-24  Philippe Théveny  <philippe.theveny@laposte.net>
20079
20080	[src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't
20081	 test them if configure doesn't find the corresponding type.
20082
20083	Printing invalid format specifiers (continuation of r8525)
20084	[src/vasprintf.c] Add comments.
20085	[tests/tprintf.c] Simplify tests.
20086
200872013-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20088
20089	new macro MPFR_MAYBE_UNUSED to avoid compiler warnings
20090
200912013-05-23  Philippe Théveny  <philippe.theveny@laposte.net>
20092
20093	[src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP.
20094	[tests/tprintf.c] Modify tests for invalid format.
20095
200962013-05-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20097
20098	try to link with GMP even when a dll, since it seems to work now
20099	(see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html)
20100
20101	replaced macros NPRINTF_T and NPRINTF_L by positive versions
20102	PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported
20103	when we don't check it (for example when cross-compiling, or under Windows
20104	when GMP is a dynamic library)
20105
20106	fixed typo
20107
201082013-05-15  Vincent Lefèvre  <vincent@vinc17.net>
20109
20110	[Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the
20111	GNU Automake 1.13.2 release notes.
20112
201132013-04-17  Vincent Lefèvre  <vincent@vinc17.net>
20114
20115	[src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick
20116	as it generates a warning, though clang claims GCC compatibility.
20117
201182013-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20119
20120	[algorithms.tex] added reference
20121
201222013-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20123
20124	[TODO] added item
20125
201262013-03-18  Vincent Lefèvre  <vincent@vinc17.net>
20127
20128	[src/fits_intmax.c] Corrected a comment.
20129
20130	[src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions,
20131	which incorrectly returned 0 ("doesn't fit") on negative arguments
20132	when the rounding to an integer was 0. The fits_uintmax.c file now
20133	uses fits_u.h for consistency.
20134
20135	[tests/tfits.c] Use error numbers to know where an error occurred.
20136
20137	[src/fits_uintmax.c] Replaced an obsolete comment by a TODO.
20138
20139	[tests/tget_sj.c] Added mpfr_get_uj tests on small negative op,
20140	similar to what has been done for mpfr_get_ui in r8498,8499.
20141
20142	[tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter
20143	because the value is normally small, but perhaps not in case of bug).
20144
20145	[tests/tset_si.c] Added mpfr_get_ui tests on small negative op.
20146
20147	[tests/tset_si.c] Corrected comment.
20148
20149	[doc/mpfr.texi] Updated the month.
20150
20151	[doc/mpfr.texi] Improved documentation of the conversions to an integer
20152	(mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj).
20153
20154	[tests/tfits.c] Added tests, in particular for small negative op
20155	and in non-RNDN rounding modes; tfits currently fails.
20156
20157	[tools/announce-text] Added short text about what GNU MPFR is.
20158
201592013-03-13  Vincent Lefèvre  <vincent@vinc17.net>
20160
20161	[doc/README.dev] Removed a duplicate word.
20162
201632013-03-12  Vincent Lefèvre  <vincent@vinc17.net>
20164
20165	[INSTALL] Added a paragraph about Cygwin and threading.
20166
20167	[INSTALL] Improved information on patches.
20168
201692013-03-11  Vincent Lefèvre  <vincent@vinc17.net>
20170
20171	[tools/announce-text] Added text about how to verify the signatures.
20172
20173	[doc/README.dev] Updated "To make a release" about the web pages.
20174
201752013-03-08  Vincent Lefèvre  <vincent@vinc17.net>
20176
20177	[doc/README.dev] Added info about update-version and ck-version-info.
20178
201792013-03-05  Vincent Lefèvre  <vincent@vinc17.net>
20180
20181	[tests/tfpif.c] Clean-up. Improved consistency.
20182
201832013-03-04  Vincent Lefèvre  <vincent@vinc17.net>
20184
20185	[examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the
20186	new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file.
20187
20188	[doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting.
20189
20190	[doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and
20191	moved the addition of special CSS comments for XML compatibility
20192	from update-faq to faq.xsl file.
20193
201942013-03-01  Vincent Lefèvre  <vincent@vinc17.net>
20195
20196	[tests/tgamma.c] Avoid mpfr_set_d.
20197
20198	[tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C
20199	implementation.
20200
202012013-01-03  Vincent Lefèvre  <vincent@vinc17.net>
20202
20203	[doc/mpfr.texi] Updated the month.
20204
20205	Copyright notice update: added 2013 with
20206	  perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/)
20207	under zsh, reverting the ChangeLog file and the m4 directory
20208	(the tools/mbench directory was not modified).
20209	Removed 2012 from the example in the doc/README.dev file.
20210
20211	[configure.ac] Corrected comment on clock_gettime (from r8445).
20212
202132012-12-31  Vincent Lefèvre  <vincent@vinc17.net>
20214
20215	Tuning: reverted changeset r8444 and applied patch by Patrick Pélissier
20216	for GMP 5.1.0 to link against librt conditionally.
20217
202182012-12-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20219
20220	[Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0]
20221
202222012-12-21  Vincent Lefèvre  <vincent@vinc17.net>
20223
20224	[tests/tfpif.c] Added a TODO.
20225
20226	[src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems
20227	to be based on this (always true with the current value).
20228
20229	[doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation.
20230
202312012-12-21  Olivier Demengeon  <olivier.demengeon@inria.fr>
20232
20233	mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import.
20234
202352012-12-20  Vincent Lefèvre  <vincent@vinc17.net>
20236
20237	Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob:
20238	https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up.
20239
202402012-12-12  Vincent Lefèvre  <vincent@vinc17.net>
20241
20242	[src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the
20243	precision.
20244
202452012-12-11  Vincent Lefèvre  <vincent@vinc17.net>
20246
20247	[src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file
20248	in the case where the precision size > sizeof(mpfr_prec_t) and/or when
20249	the read precision is too large (as mpfr_prec_t is signed).
20250
202512012-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20252
20253	[fpif.c] completed FIXME
20254
202552012-12-08  Vincent Lefèvre  <vincent@vinc17.net>
20256
20257	[src/fpif.c] Added a FIXME comment: large precisions read from the file
20258	can trigger undefined behavior if sizeof(mpfr_prec_t) is too small.
20259
202602012-12-07  Olivier Demengeon  <olivier.demengeon@inria.fr>
20261
20262	Fixed stack overflow bug in fpif.c
20263
202642012-12-05  Vincent Lefèvre  <vincent@vinc17.net>
20265
20266	[acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug"
20267	test after the gmp.h detection as it uses gmp.h (otherwise one gets an
20268	incorrect error on this test if gmp.h can't be found or is unusable).
20269
202702012-12-03  Vincent Lefèvre  <vincent@vinc17.net>
20271
20272	[doc/mpfr.texi] Removed a useless comma from r8428.
20273
20274	[doc/mpfr.texi] Updated the month.
20275
20276	[doc/mpfr.texi] Updated warning in mpfr_min_prec description,
20277	in particular for the use with mpfr_prec_round.
20278
202792012-10-17  Vincent Lefèvre  <vincent@vinc17.net>
20280
20281	[src/set_uj.c] Change to help the compiler to detect dead code,
20282	improving the coverage (from a patch by Patrick Pélissier).
20283
20284	[src/get_d64.c] Added a const (thanks to Patrick Pélissier).
20285
202862012-10-10  Vincent Lefèvre  <vincent@vinc17.net>
20287
20288	[acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a
20289	  build failure under Android, which does not have them; see
20290	    https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html
20291	[src/mpfr-impl.h] Decimal point / thousands separator support can now be
20292	  detected automatically by configure (from the presence of <locale.h>
20293	  and the above members) or explicitly disabled/enabled by the user by
20294	  defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure
20295	  switch might be added in the future).
20296	[tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is
20297	  true.
20298
202992012-09-29  Vincent Lefèvre  <vincent@vinc17.net>
20300
20301	[doc/README.dev] Note about GNU extensions and ICC.
20302
203032012-09-20  Vincent Lefèvre  <vincent@vinc17.net>
20304
20305	[get_float128.c,set_float128.c] Avoid an empty translation unit
20306	(forbidden by ISO C, detected with gcc -ansi -pedantic-errors)
20307	when MPFR_WANT_FLOAT128 is not defined.
20308
20309	Applied patch (with minor changes) by Patrick Pélissier to improve
20310	the mpfr_round_nearest_away interface.
20311
203122012-09-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20313
20314	[nightly-test] modified so that decimal floats are tested (with gcc)
20315
203162012-09-05  Vincent Lefèvre  <vincent@vinc17.net>
20317
20318	Removed trailing whitespace.
20319
20320	[doc/mpfr.texi] Updated the month.
20321
203222012-09-04  Vincent Lefèvre  <vincent@vinc17.net>
20323
20324	[configure.ac] Improved error message when the compiler doesn't know
20325	_Decimal64 (if MPFR is built with --enable-decimal-float).
20326
203272012-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20328
20329	revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro)
20330
20331	updated documentation wrt --enable-decimal-float
20332
20333	added support for --enable-decimal-float with g++ (does not work with icpc,
20334	      the Intel C++ compiler)
20335
20336	[tests/tl2b.c] fix for C++
20337
203382012-09-04  Vincent Lefèvre  <vincent@vinc17.net>
20339
20340	[src/set_d.c] Updated a comment on the negative zero.
20341
20342	[src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance
20343	to be defined (optionally used as of r8406).
20344
203452012-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20346
20347	[src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in
20348			memory
20349
20350	[src/set_d64.c] better code to detect -0.0 (copied from set_d.c)
20351
20352	[tests/tl2b.c] use UINT64_C for 64-bit integer constants
20353	[src/get_str.c] update table generated by "tests/tl2b 1"
20354
20355	[get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build)
20356
20357	[set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too
20358		    small memory allocation
20359
203602012-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20361
20362	[TODO] removed an item (done)
20363
20364	Now --enable-decimal-float does not require any more --with-gmp-build.
20365	Still disabled by default: some more testing is needed before we can enable
20366	it by default (if _Decimal64 is supported).
20367
203682012-08-29  Vincent Lefèvre  <vincent@vinc17.net>
20369
20370	[tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396).
20371
20372	[tests/tstrtofr.c] Fixed small type error.
20373
203742012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20375
20376	[strtofr.c] new try to fix the assertion failure on 32-bit
20377
203782012-08-29  Vincent Lefèvre  <vincent@vinc17.net>
20379
20380	[tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is
20381	still buggy on 32-bit machines (assertion failure in strtofr.c).
20382
203832012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20384
20385	[strtofr.c] fix for failing test case introduced in r8392
20386
203872012-08-29  Vincent Lefèvre  <vincent@vinc17.net>
20388
20389	[tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also
20390	triggers an assertion failure on 32-bit machines.
20391
20392	[tests/tstrtofr.c] Added 2 testcases:
20393	  * One triggering an assertion failure in strtofr.c r8389
20394	    on 32-bit machines (fixed in r8390).
20395	  * One still triggering an assertion failure in strtofr.c (r8391)
20396	    on 64-bit machines.
20397
203982012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20399
20400	[strtofr.c] fixed comments
20401
204022012-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20403
20404	[strtofr.c] fix for err >= GMP_NUMB_BITS
20405
204062012-08-28  Vincent Lefèvre  <vincent@vinc17.net>
20407
20408	[src/strtofr.c] Consistency correction: towards → toward.
20409
20410	[src/sin_cos.c] Consistency correction: towards → toward.
20411
20412	[doc] Updated FAQ.html with update-faq.
20413
204142012-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20415
20416	[strtofr.c] fixed bug in mpfr_strtofr in case:
20417		    (1) the input string was used entirely
20418		    (2) the conversion was done by a division
20419		    (3) and the division was exact
20420		    In such a case the "reconstruction" of the ternary value was
20421		    inexact.
20422
204232012-08-16  Vincent Lefèvre  <vincent@vinc17.net>
20424
20425	[src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some
20426	  values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal):
20427	  it was returning 0 instead of +/- 1e-398 (see r8370).
20428	[tests/tget_set_d64.c] Added testcases.
20429
204302012-08-15  Vincent Lefèvre  <vincent@vinc17.net>
20431
20432	[src/get_d64.c] Fixed get_decimal64_max by simplifying it completely,
20433	and changed get_decimal64_min in the same way.
20434	Thanks to Rob (Sisyphus) for the idea.
20435
20436	[tests/tget_set_d64.c] Added overflow tests (they cover the two bad
20437	tests fixed in r8372 and trigger a bug in get_decimal64_max).
20438
20439	[tests/tget_set_d64.c] Added some tests for large numbers.
20440
20441	Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash
20442	with GMP when MPFR is configured with --with-gmp-build.
20443
204442012-08-14  Vincent Lefèvre  <vincent@vinc17.net>
20445
20446	[src/get_d64.c] Fixed overflow cases.
20447
20448	[tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers.
20449
204502012-08-13  Vincent Lefèvre  <vincent@vinc17.net>
20451
20452	[src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x
20453	such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment.
20454	See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html
20455
204562012-07-27  Vincent Lefèvre  <vincent@vinc17.net>
20457
20458	[src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined,
20459	  the architecture is little endian. Detect the case where neither
20460	  HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an
20461	  error).
20462	[configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS
20463	  is not used, one must have an ACTION-IF-UNIVERSAL argument).
20464	[doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN"
20465	  (unknown/unspecified endianness) before a release.
20466
20467	[doc/README.dev] Update now that autogen.sh is in the repository.
20468
20469	Added autogen.sh sh script from Daniel Richard G. to install/update the
20470	autotools files and clean up caches (useful before a release).
20471
20472	Updated autotools files to get rid of obsolete macros (thanks to
20473	Daniel Richard G. for the patch; kept the autoconf requirement
20474	to 2.60 instead of changing it to 2.68 as done with autoupdate,
20475	since 2.60 seems to be sufficient according to the changes and
20476	2.68 is too recent, e.g. Debian/stable still has 2.67).
20477	--- Note ---
20478	This update has another effect: The "Configs for Windows DLLs."
20479	code (from "case $host in" to "esac") is now executed at the right
20480	time, after options like --disable-static are taken into account.
20481	Juste before this change, the test
20482	   if test "$enable_shared" = yes; then
20483	was always false. This could be seen on hydra:
20484	With r8360:
20485	[...]
20486	configure flags: --disable-static --disable-dependency-tracking
20487	  --prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev
20488	[...]
20489	checking for DLL/static GMP... static
20490	[...]
20491	checking whether to build shared libraries... yes
20492	checking whether to build static libraries... no
20493	[...]
20494	With r8367:
20495	[...]
20496	configure flags: --disable-static --disable-dependency-tracking
20497	  --prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev
20498	[...]
20499	checking whether to build shared libraries... yes
20500	checking whether to build static libraries... no
20501	checking for DLL/static GMP... static
20502	[...]
20503
20504	[src/mpfr-intmax.h] Updated comment formatting so that mpfrlint
20505	doesn't complain.
20506
205072012-07-26  Vincent Lefèvre  <vincent@vinc17.net>
20508
20509	[configure.ac] Replaced "sed" by "$SED".
20510
20511	[tools/mpfrlint] Check for sed.
20512
20513	[tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction).
20514
205152012-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20516
20517	we use a 77-bit approximation in get_str.c (and not 76-bit)
20518
205192012-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20520
20521	[configure.ac] grep -> $EGREP (thanks Marc Glisse)
20522		       https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html
20523
205242012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20525
20526	[acinclude.m4] fix for cross-compilation
20527
205282012-07-24  Vincent Lefèvre  <vincent@vinc17.net>
20529
20530	[acinclude.m4] Improved a message and corrected gmp.h inclusion.
20531
205322012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20533
20534	[acinclude.m4] added test for double-to-integer conversion bug
20535
20536	revert r8349 (will do the test in configure)
20537
205382012-07-24  Vincent Lefèvre  <vincent@vinc17.net>
20539
20540	Improved doc/mpfr.texi about MPFR_USE_INTMAX_T.
20541
20542	[src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or
20543	<stdint.h> is available. This is needed on systems for which the
20544	current (non-standard) macro tests in mpfr.h is not sufficient.
20545	This will force the support of intmax_t/uintmax_t in this case and
20546	also avoids a failure in the tests on such systems.
20547	Tested by replacing the macro tests in mpfr.h by just
20548	  #if defined (MPFR_USE_INTMAX_T)
20549	to simulate such a system.
20550
205512012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20552
20553	[tinternals.c] added test for double -> mp_limb_t conversion
20554
205552012-07-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20556
20557	[mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64)
20558
205592012-07-10  Vincent Lefèvre  <vincent@vinc17.net>
20560
20561	Added tools/announce-text sh script to be run before publishing an
20562	announce of a new GNU MPFR release (it does some checking, then it
20563	outputs the announce text to stdout).
20564	Mention this script in "doc/README.dev".
20565
20566	[doc/README.dev] Updated "To make a release".
20567
205682012-07-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20569
20570	[TODO] added item
20571
205722012-07-06  Vincent Lefèvre  <vincent@vinc17.net>
20573
20574	[tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ
20575	isn't defined, because these tests rely on signed zeros.
20576
20577	[acinclude.m4] Added a test for signed zeros (tcc currently doesn't
20578	support signed zeros, and 2 MPFR tests fail because of that).
20579
20580	[acinclude.m4] Removed useless "#include <math.h>" in the test
20581	for subnormal numbers.
20582
20583	[acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by
20584	AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented
20585	in the GNU Autoconf manual.
20586	Minor correction in the test for subnormal numbers.
20587
20588	[tests] Added trndna to svn:ignore property.
20589
20590	[tests/tset_d.c] Formatting.
20591
20592	Replaced "denormalized" by the official term "subnormal".
20593
205942012-07-05  Vincent Lefèvre  <vincent@vinc17.net>
20595
20596	[tools/coverage] unset MPFR_* environment variables in a better way.
20597
20598	[tools/coverage] unset MPFR_* environment variables in a better way.
20599
206002012-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20601
20602	[coverage] unset MPFR_* environment variables to get reproducible results
20603
20604	[tabort_defalloc2.c] changed char* into void* to please g++ compiler
20605
206062012-07-04  Vincent Lefèvre  <vincent@vinc17.net>
20607
20608	[tests/trndna.c] Removed useless initialization.
20609
206102012-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20611
20612	[trndna.c] restore emin
20613
20614	[coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic
20615
206162012-07-04  Vincent Lefèvre  <vincent@vinc17.net>
20617
20618	[doc/mpfr.texi] Replaced a "should not" by a "must not".
20619
20620	[doc/mpfr.texi] Consistency change.
20621
206222012-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20623
20624	[trndna.c] increase emin when smallest possible
20625
20626	[rndna.c] special treatment for the case 2^(emin-2)
20627
20628	several changes suggested by Vincent Lefevre
20629
20630	[rndna.c] changed the specification since on 32-bit machines we have no margin
20631		  for the smallest exponent emin
20632
20633	added new function mpfr_round_nearest_away() as discussed during the June 2012
20634	workshop
20635
206362012-07-03  Vincent Lefèvre  <vincent@vinc17.net>
20637
20638	[tools/coverage] Minor update, just in case...
20639
206402012-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20641
20642	[exp.c] fixed typo
20643
206442012-07-03  Vincent Lefèvre  <vincent@vinc17.net>
20645
20646	[doc/mpfr.texi] Updated the month.
20647
20648	[tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if
20649	MPFR_ERRDIVZERO is defined.
20650
20651	[tests/tests.c] Improved an error message.
20652
20653	[acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like
20654	what has been done for math/round.
20655
206562012-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20657
20658	[trndna.c] test file for mpfr_round_nearest_away()
20659
206602012-07-02  Vincent Lefèvre  <vincent@vinc17.net>
20661
20662	[src/rndna.c]
20663	  * Handle singular cases like with other functions. Avoid the goto.
20664	  * Reordered the tests to make them simpler and easier to understand
20665	    (it wasn't immediately visible that inex could not be 0 for the
20666	    second "else") and fixed the case lastbit == 1 && inex < 0.
20667
20668	[src/rndna.c] Added a note saying that this method doesn't work
20669	for 2^(emin-2).
20670
206712012-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20672
20673	[rndna.c] new function that computes rounding to nearest-away
20674
206752012-06-28  Vincent Lefèvre  <vincent@vinc17.net>
20676
20677	[tests/tprintf.c] Test the thousands separator in some en_US locale,
20678	if available (modified patch from Patrick).
20679
20680	Added coverage tune (from a patch by Patrick).
20681
206822012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20683
20684	[mpfr.texi] added support by ERC grant of Andreas
20685
206862012-06-27  Vincent Lefèvre  <vincent@vinc17.net>
20687
20688	[doc/mpfr.texi] Replaced a few @samp by @code for consistency.
20689
206902012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20691
20692	[mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128
20693
206942012-06-27  Vincent Lefèvre  <vincent@vinc17.net>
20695
20696	[src/mulders.c] Clean-up and static assertions (patch from Patrick).
20697
20698	[tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN.
20699
20700	[tests/tgrandom.c] Improved a test and added a new one for
20701	mpfr_grandom(x, NULL, ...).
20702
20703	[doc/mpfr.texi] Completed spec of mpfr_grandom.
20704
207052012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20706
20707	[coverage] added instructions how to use this script
20708
207092012-06-27  Vincent Lefèvre  <vincent@vinc17.net>
20710
20711	[NEWS] Update: test coverage.
20712
20713	[tools/coverage] Detailed coverage (from a patch by Patrick).
20714
207152012-06-26  Vincent Lefèvre  <vincent@vinc17.net>
20716
20717	[src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant
20718	(added in r3410, but never used); patch by Patrick.
20719
20720	[tests/tsin.c] Improved coverage.
20721
20722	[tests/tset.c] Test the mpfr_set function too (patch by Patrick).
20723
20724	Added configure option --enable-assert=none to avoid checking any
20725	assertion (this is based on a patch by Patrick).
20726
20727	[src/digamma.c] Correction: assertions must never have any side effect.
20728
20729	[tests] Updated svn:ignore property.
20730
20731	[src/atan.c] Removed trailing whitespace.
20732
20733	Forgot to add some files in r8266 (tests that are expected to fail).
20734
20735	Support tests that are expected to fail (from a patch by Patrick).
20736
20737	[tests/tversion.c] Output the applied patches (if any).
20738
20739	[tests/tstckintc.c] Correction and test improvement (from a patch
20740	by Patrick).
20741
20742	[tools/coverage] Correction by Patrick.
20743
207442012-06-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20745
20746	[atan.c] improved code coverage by removing some dead code after some numerical
20747		 analysis with Benjamin Dadoun
20748
207492012-06-26  Vincent Lefèvre  <vincent@vinc17.net>
20750
20751	[doc/README.dev] Removed obsolete "but see below".
20752
20753	[tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick).
20754
20755	[tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro).
20756
20757	[NEWS] 3.2.0 will be "dinde aux marrons".
20758
207592012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20760
20761	[gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis
20762		  with Benjamin Dadoun
20763
207642012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20765
20766	[configure.ac] aclocal -> acinclude.m4 in a comment.
20767
20768	[src/{init2.c,mpfr-impl.h}] Clean-up.
20769
207702012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20771
20772	[TODO] removed one item, added one
20773
207742012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20775
20776	[acinclude.m4] Detect whether _Thread_local (C11) is supported.
20777	[src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread.
20778	(Patch from Patrick)
20779
207802012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20781
20782	[gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage
20783		  analysis by Benjamin Dadoun)
20784
207852012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20786
20787	[src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES.
20788
20789	[src/init2.c] Replaced classic assertions by static assertions.
20790
20791	Added Static Assertion support (modified patch from Patrick).
20792	  * Added src/mpfr-sassert.h: implementation of static assertions.
20793	  * src/mpfr-impl.h: include "mpfr-sassert.h".
20794	  * acinclude.m4: test whether static assertions are supported.
20795
20796	[doc/README.dev] Suggest to test with and without -std=c11.
20797
20798	[tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of
20799	mpfr_cmp (this is safer if a result is NaN).
20800
20801	[src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c).
20802
20803	[src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style.
20804
20805	tests: updated svn:ignore property.
20806
20807	[tests/tset_float128.c] Got rid of the remaining mpfr_printf's.
20808
208092012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20810
20811	[tset_float128.c] added missing empty main when functions are not tested
20812
20813	[set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf
20814
208152012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20816
20817	[NEWS] Added a period.
20818
20819	[doc/mpfr.texi] Updated the month.
20820
20821	[configure.ac] "configure --help" formatting for --enable-float128.
20822
208232012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20824
20825	compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported
20826
20827	[configure.ac] __float128 is supported by GCC >= 4.3
20828
208292012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20830
20831	[tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t
20832
208332012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20834
20835	added new functions mpfr_set_float128 and mpfr_get_float128
20836
20837	[get_ld.c] fixed typo
20838
208392012-06-25  Vincent Lefèvre  <vincent@vinc17.net>
20840
20841	[tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE.
20842
20843	[src/buildopt.c] Made mpfr_buildopt_tune_case() simpler.
20844
208452012-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20846
20847	[li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp
20848
208492012-06-21  Vincent Lefèvre  <vincent@vinc17.net>
20850
20851	[tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef
20852	since mpfr-impl.h defines it to 0 if it was undefined.
20853
208542012-05-18  Vincent Lefèvre  <vincent@vinc17.net>
20855
20856	[TODO] Added a reference to a new discussion concerning __float128.
20857
208582012-05-14  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
20859
20860	* Other corrections (essentially bad or missing declarations) in metaMPFR.
20861
208622012-05-11  Vincent Lefèvre  <vincent@vinc17.net>
20863
20864	[doc/mpfr.texi] Improved the description of the mpfr_flags_ functions.
20865
208662012-05-10  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
20867
20868	* Corrected small errors.
20869
208702012-05-10  Vincent Lefèvre  <vincent@vinc17.net>
20871
20872	[doc/mpfr.texi] Improved mpfr_flags_test description, giving an example.
20873
20874	[src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags
20875	(MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann.
20876	Note: the output expression looks OK in assertion failures.
20877
20878	[doc/mpfr.texi] Correction on mpfr_clear_flags description.
20879
208802012-05-09  Vincent Lefèvre  <vincent@vinc17.net>
20881
20882	Added functions that operate on groups of flags: mpfr_flags_clear,
20883	mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore.
20884	(reintegrated flags branch to the trunk: svn merge --reintegrate ...)
20885
208862012-05-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20887
20888	patch from Nitin A Kamble for automake 1.12.
20889	This patch avoids these issues with automake 1.12:
20890	| configure.ac:304: error: automatic de-ANSI-fication support has been removed
20891	| tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed
20892
208932012-05-07  Vincent Lefèvre  <vincent@vinc17.net>
20894
20895	[AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the
20896	MPFR mailing-list to match the List-* headers written by the new
20897	mailing-list server (the old one still works, but may lead to bad
20898	interaction with MUA's that attempt to honor the List-Post header
20899	when replying to the list(s)).
20900
20901	[src/lngamma.c] Added mpfr_explgamma internal function to handle
20902	  overflows/underflows (intermediate or not) in mpfr_gamma.
20903	  Updated the general overflow detection to use this function.
20904	[src/gamma.c] Fixed the general underflow detection.
20905
20906	[src/lngamma.c] Removed spurious parentheses.
20907
20908	[tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an
20909	underflow detection bug in gamma.c (see FIXME comment added in r8185).
20910
20911	[tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop
20912	on 32-bit machines.
20913
209142012-05-04  Vincent Lefèvre  <vincent@vinc17.net>
20915
20916	[tests/tgamma.c] Updated exp_lgamma to test the ternary value.
20917
20918	[src/lngamma.c] Fixed the problem with the overflow flag (r8192).
20919
20920	Improved src/lngamma.c (mainly on changes from r8189):
20921	  * Declarations of ok variable were used in nested block.
20922	  * Added a missing "MPFR_ZIV_FREE (loop);".
20923	  * In the overflow detection code, call mpfr_lngamma only once, use
20924	    mpfr_equal_p instead of mpfr_cmp, and share code with the end.
20925	Note: the problem with the overflow flag (r8192) hasn't been solved yet.
20926
20927	[tests/tgamma.c] Added a test showing a failure on 64-bit machines
20928	due to an unset overflow flag.
20929
20930	[tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags.
20931
20932	[TODO] For mpfr_get_flt, etc., exception flags should be raised.
20933
209342012-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20935
20936	[src/lngamma.c] fixed endless loop with test cases introduced in r8188
20937
209382012-05-03  Vincent Lefèvre  <vincent@vinc17.net>
20939
20940	[tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an
20941	endless loop due to undetected overflow on 64-bit machines.
20942
20943	[tests/tgamma.c] Say that the freeze is for 64-bit machines only.
20944
20945	[tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze.
20946
20947	[src/gamma.c] Corrected the FIXME comment concerning the underflow
20948	detection.
20949
20950	[src/gamma.c] Added a FIXME comment: the underflow detection may still
20951	be buggy (or the explanation is incomplete).
20952
20953	[src/gamma.c] Completed the explanation concerning the new underflow
20954	detection.
20955
20956	[src/gamma.c] Removed the FIXME comment (from r8169).
20957
20958	[src/gamma.c] Untabified.
20959
20960	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
20961
20962	[doc/mpfr.texi] Updated the month.
20963
209642012-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20965
20966	[gamma.c] tentative fix for the underflow problem
20967
209682012-05-03  Vincent Lefèvre  <vincent@vinc17.net>
20969
20970	Updated URL's of mailing-list archives/messages in all files
20971	(except ChangeLog, as it is generated).
20972
20973	[TODO] Updated URL's of mailing-list archives/messages.
20974
209752012-05-02  Vincent Lefèvre  <vincent@vinc17.net>
20976
20977	[TODO] Updated concerning MPFR_RNDNA.
20978
209792012-04-27  Vincent Lefèvre  <vincent@vinc17.net>
20980
20981	[src/gamma.c] Added a FIXME comment.
20982
20983	[TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the
20984	result is known to be exact (normal mode: optimize; debug mode: check).
20985
20986	[src/gamma.c] Use the new MPFR_DBGRES macro.
20987
20988	[tests/tgamma.c] Improved testcase test20100709.
20989
20990	[tests/tgamma.c] Updated testcase test20100709 for 64-bit machines,
20991	as this bug reappeared in r8159.
20992
209932012-04-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
20994
20995	[src/gamma.c] fixed bug found by Giridhar Tammana
20996		      https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html
20997	Note (VL): this fix triggers an infinite loop on 32-bit machines
20998	  (or with -m32) in test20100709 from tgamma.c and this is partly
20999	  the opposite of changeset r6996.
21000
210012012-04-26  Vincent Lefèvre  <vincent@vinc17.net>
21002
21003	[tests/texceptions.c] Added a comment for check_groups().
21004
21005	[src/mpfr-impl.h] Improved the noreturn feature.
21006
210072012-04-25  Vincent Lefèvre  <vincent@vinc17.net>
21008
21009	Added support for _Noreturn function specifier (ISO C11).
21010	  * acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported.
21011	  * src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined.
21012	Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn).
21013
21014	[doc/README.dev] Added a note about the new experimental
21015	-ftrack-macro-expansion GCC option.
21016
210172012-04-24  Vincent Lefèvre  <vincent@vinc17.net>
21018
21019	[doc/mpfr.texi] Small correction on the mpfr_flags_t description.
21020
21021	[src/mpfr-impl.h] Added MPFR_FLAGS_DIVBY0 (missing from r8143).
21022
21023	[src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro
21024	by MPFR_CLEAR_DIVBY0 in r8141.
21025
210262012-04-23  Vincent Lefèvre  <vincent@vinc17.net>
21027
21028	[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
21029	in ASSERT_FAIL with gcc -ansi -pedantic-errors.
21030	(Merged changeset r8149 from the trunk)
21031
21032	[src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and
21033	macro expansion.
21034
21035	[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
21036	in ASSERT_FAIL with gcc -ansi -pedantic-errors.
21037
21038	[tools/mpfrlint] Update after r8143.
21039	(Merged changeset r8147 from the trunk)
21040
21041	[tools/mpfrlint] Update after r8141.
21042
210432012-04-20  Vincent Lefèvre  <vincent@vinc17.net>
21044
21045	[TODO] Removed item about saving/restoring flags.
21046
21047	[tests/texceptions.c] Added test of the mpfr_flags_* functions/macros.
21048
21049	[NEWS] New mpfr_flags_* functions.
21050
21051	Merged /trunk:r8141-8142 with a few manual changes due to conflict:
21052	replaced the flags-related mpfr_clear_* internal macros (which were
21053	already removed in this flags branch) by an uppercase version using
21054	a do-while in order to prevent one from using them in an expression.
21055	Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG for consistency.
21056
21057	[src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros.
21058
21059	[src] Replaced the flags-related mpfr_clear_* internal macros by an
21060	uppercase version with a do-while in order to prevent one from using
21061	them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG
21062	for consistency.
21063
210642012-04-19  Vincent Lefèvre  <vincent@vinc17.net>
21065
21066	Implemented the mpfr_flags_* functions (and mpfr_flags_test as a macro).
21067	The MPFR_FLAGS_* macros had to be moved from mpfr-impl.h to mpfr.h (as
21068	they are now part of the API). Check that MPFR_FLAGS_ALL <= INT_MAX (or
21069	similar) when need be. Removed the mpfr_clear_* macros and merged r8139
21070	(about the MPFR_SET_ERANGE macro) from the trunk due to a risk to break
21071	the sequence point rules.
21072
21073	[src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE()
21074	macro in order to prevent one from using this macro in an expression,
21075	as the sequence point rules could be broken if __gmpfr_flags is
21076	assigned twice in the same expression (via macro expansions).
21077	Note: This cannot be done for the mpfr_clear_* flags macros because
21078	we want to be able to follow the API inside MPFR (thus these macros
21079	must be usable wherever a function is). These macros should probably
21080	be removed or renamed in the future (e.g. via the flags branch).
21081
210822012-04-17  Vincent Lefèvre  <vincent@vinc17.net>
21083
21084	[doc/mpfr.texi] Added documentation for the new functions on groups
21085	of flags (not implemented yet).
21086
210872012-04-11  Vincent Lefèvre  <vincent@vinc17.net>
21088
21089	[TODO] Suggest mpfr_pow_q and variants.
21090
210912012-03-28  Vincent Lefèvre  <vincent@vinc17.net>
21092
21093	[doc/mpfr.texi] Updated "API Compatibility" section: functions
21094	mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in
21095	MPFR 3.2.
21096
210972012-03-27  Vincent Lefèvre  <vincent@vinc17.net>
21098
21099	[tests/tfpif.c] Removed trailing whitespace.
21100
211012012-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21102
21103	[src/fpif.c,tests/tfpif.c] changed to GNU style
21104
211052012-03-26  Olivier Demengeon  <olivier.demengeon@inria.fr>
21106
21107	Add a test on FILE* in fpif.c; Added a missing test on a return value; Changed the way to compute number of bytes needed for the limb of a mpfr number; Increase coverage test of fpif.c
21108
211092012-03-26  Vincent Lefèvre  <vincent@vinc17.net>
21110
21111	[src] New mpfr_flags_t type, defined as an unsigned int. For the
21112	  __gmpfr_flags variable and internal flags-related variables,
21113	  replaced unsigned int by mpfr_flags_t (note that this doesn't
21114	  change the ABI, since unsigned int was already used).
21115	[tests] Cast __gmpfr_flags to unsigned int when printed with %u.
21116
211172012-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21118
21119	added new function mpfr_fmodquo
21120	(cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html)
21121
211222012-03-26  Vincent Lefèvre  <vincent@vinc17.net>
21123
21124	[src/mpfr-examples/version.c] Output sizeof(mpfr_t) value.
21125
21126	[tests/tests.c] Improved src_fopen() a bit.
21127
21128	[doc/README.dev] Explain the use of the new MPFR_DBGRES macro.
21129
21130	[src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in
21131	non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a
21132	result is tested only in an MPFR_ASSERTD expression.
21133	[src/const_euler.c] Avoid such a warning by using MPFR_DBGRES.
21134
21135	MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT.
21136
211372012-03-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21138
21139	[tests/tests.c] fixed problem with src_fopen
21140		(https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html)
21141
21142	[tests/Makefile.am] inp_str.data -> inp_str.dat
21143
21144	renamed tests/inp_str.data into tests/inp_str.dat
21145	[tests/tinp_str.c] now use tests/inp_str.dat
21146	[tests/tfpif.c] use src_fopen instead of fopen
21147
21148	[src/fpif.c] simplified &x[i] into x+i
21149
21150	[src/mparam_h.in] better recognition of AMD64 systems
21151	[tools/cfarm.sh] updated
21152
21153	[tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3)
21154
211552012-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21156
21157	[fpif.c] simplified code since nb_data is always 1
21158
21159	[mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org)
21160
21161	[configure.ac] use AC_C_BIGENDIAN to determine endianness of words
21162
21163	[tests/Makefile.am] the name of the test file for the export/import functions has changed
21164
211652012-03-19  Vincent Lefèvre  <vincent@vinc17.net>
21166
21167	tests: updated svn:ignore property.
21168
21169	[src/mpfr.h] Indentation.
21170
211712012-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21172
21173	changed the order of arguments of mpfr_fpif_import so that the modified
21174	argument is first
21175
21176	[NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions
21177
21178	mpfr_fpif_export_binary -> mpfr_fpif_export
21179	mpfr_fpif_import_binary -> mpfr_fpif_import
21180
21181	stream.data renamed to mpfrtest.dat
21182	[tfpif.c] now use remove()
21183
211842012-03-19  Vincent Lefèvre  <vincent@vinc17.net>
21185
21186	[doc/mpfr.texi] "in future version" → "in future versions".
21187
21188	[doc/mpfr.texi] Updated the month.
21189
21190	[src/fpif.c,tests/tfpif.c] Corrected coding style.
21191
211922012-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21193
21194	[src/fpif.c] fixed a few warnings and errors with g++ (found on hydra)
21195
211962012-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21197
21198	[out_raw.c] removed obsolete file (replaced by fpif.c)
21199
21200	[tests/Makefile.am] put tfpif at its right place
21201
21202	[src/fpif.c] fixed problem with sign on gcc38
21203	[tests/tfpif.c] solved FIXME's, added new test with fixed data file
21204	[tests/stream.data] data file for tfpif.c (to check we get same results with
21205			    different word size and endianness)
21206	[tests/Makefile.am] added stream.data to make dist
21207
21208	[fpif.c] added comments
21209	[tfpif.c] improve error message in case of mismatch
21210	[acinclude.m4] forgot double-double big endian
21211
21212	[mpfr.texi] added note saying that mpfr_fpif_export_binary and
21213		    mpfr_fpif_import_binary are experimental
21214
21215	[mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary
21216
21217	[fpif.c] replaced sizeof(var) by sizeof(type)
21218
212192012-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21220
21221	[fpif.c] fixed a few issues
21222
21223	[src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check
21224					      pass on one machine. Will fix the
21225					      remaining issues later.
21226
212272012-03-15  Vincent Lefèvre  <vincent@vinc17.net>
21228
21229	Added FIXME for export/import MPFR numbers, did some corrections,
21230	updated NEWS file.
21231
21232	[doc/README.dev] Update about C headers.
21233
212342012-03-15  Olivier Demengeon  <olivier.demengeon@inria.fr>
21235
21236	Add copyright material in fpif.c and test_fpif.c
21237
21238	Add functions/tests to export/import mpfr number in a binary format
21239
212402012-03-13  Vincent Lefèvre  <vincent@vinc17.net>
21241
21242	Improved mpfr_check and added a missing testcase.
21243
212442012-03-09  Vincent Lefèvre  <vincent@vinc17.net>
21245
21246	[doc/README.dev] Corrected information about valgrind.
21247
21248	[src/mpfr-impl.h] Updated a comment.
21249
21250	[src/mpfr-impl.h] Improved macros from the changeset r8025, in
21251	particular to avoid an error with the --enable-assert configure
21252	option and the -ansi -pedantic-errors gcc compiler flags.
21253
212542012-03-08  Vincent Lefèvre  <vincent@vinc17.net>
21255
21256	[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again,
21257	and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is
21258	INT_MAX minus some small constant (see r8035).
21259
21260	[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1.
21261
21262	[tests/tinits.c] Improved the large precision test so that it is still
21263	performed after r8035 (where MPFR_PREC_MAX has been decreased).
21264
21265	[tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str.
21266
212672012-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21268
21269	[tconst_log2.c] use hexadecimal output in case of error in check_large()
21270
21271	[get_ld.c] added comments and ASSERT()
21272	[tset_ld.c] added test to better exercise get_ld and set_ld for subnormals,
21273		    and replaced some 64 by MPFR_LDBL_MANT_DIG
21274
212752012-03-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21276
21277	[tconst_log2.c] improved error message, cf
21278			https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html
21279
21280	[get_ld.c] deal with the case "long double" == "double"
21281
21282	[acinclude.m4] deal with long double == double
21283	[src/set_ld.c] idem
21284
212852012-03-07  Vincent Lefèvre  <vincent@vinc17.net>
21286
21287	[NEWS] Prepare for new version 3.2.0 (will be 4.0.0).
21288
21289	[INSTALL] Added information about --with-sysroot.
21290
21291	[INSTALL] Removed an obsolete paragraph saying that the test suite
21292	can't be run with a C++ compiler. C++ related problems have been
21293	fixed a long time ago.
21294
212952012-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21296
21297	[TODO] added new item about saving/restoring flags
21298
21299	added tuning parameters for mips (on gcc49.fsffrance.org)
21300
213012012-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21302
21303	[tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org)
21304
213052012-03-05  Vincent Lefèvre  <vincent@vinc17.net>
21306
21307	[src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h".
21308
21309	[src/mpfr.h] Added a reference to MPFR bug 13947.
21310
21311	[src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const
21312	macro removal in <https://gmplib.org/repo/gmp/rev/d287cfaf6732> (and its
21313	replacement by const): if __gmp_const isn't define, let's define it to
21314	const.
21315
213162012-03-03  Vincent Lefèvre  <vincent@vinc17.net>
21317
21318	[NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c).
21319
213202012-02-27  Vincent Lefèvre  <vincent@vinc17.net>
21321
21322	[configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions,
21323	output the temporary LD_RUN_PATH value (may be useful for debugging).
21324
213252012-02-24  Vincent Lefèvre  <vincent@vinc17.net>
21326
21327	[tests] Removed #include of headers already included via "mpfr-test.h"
21328	(<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply
21329	to tvalist.c, which is a special test that doesn't use "mpfr-test.h".
21330
21331	[src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed
21332	this #include from the .c files.
21333
21334	[src/logging.c] #include <stdarg.h> was no longer necessary. Removed.
21335
21336	[src/logging.c] Updated a comment (contained obsolete information).
21337
21338	[src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR.
21339
21340	[NEWS] Mention an internal change in MPFR 3.1.0.
21341
21342	Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c
21343	(mpfr_get_prec → mpfr_log_prec), fixing bug 13933.
21344	The consequence was random freezes (on the same binary) with dynamic
21345	linking (and just more memory with static linking to the MPFR library)
21346	when logging was used.
21347
21348	[src/const_euler.c] Use the safer MPFR_BLOCK.
21349
213502012-02-23  Vincent Lefèvre  <vincent@vinc17.net>
21351
21352	[src/const_euler.c] Removed a useless log message added in r8040.
21353
21354	[src/const_euler.c] Replaced computations on double by computations
21355	  on MPFR types, with detection of overflows. Fixed inconsistencies
21356	  with algorithms.tex (due to rounding) in the computation of n.
21357	[src/mpfr-impl.h] Removed #define ALPHA (no longer used).
21358
21359	[src/mpfr-impl.h] Removed obsolete #define EXPM1.
21360
21361	[src/erf.c] Removed an obsolete #define.
21362
21363	[BUGS] Update concerning huge precisions and integer overflows.
21364
21365	[examples/version.c] Output mpfr_prec_t information with all MPFR
21366	versions. Output signedness information for MPFR types/macros.
21367
21368	[src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to
21369	  avoid some integer overflows in existing code that increases the
21370	  working precision (if mpfr_prec_t is on 64 bits, this does not
21371	  change anything in practice), as too large precisions should be
21372	  detected via assertions for more security. After discussion, it
21373	  has been decided to keep the MPFR_PREC_MAX value close to 2^31
21374	  when mpfr_prec_t is on 32 bits.
21375	[src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC.
21376
21377	[examples/version.c] Output more information about the precision and
21378	exponent types.
21379
213802012-02-22  Vincent Lefèvre  <vincent@vinc17.net>
21381
21382	[src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT.
21383
21384	[src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some
21385	  precision (i.e. with an assertion check for integer overflow).
21386	[src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where
21387	  the additional precision can be huge.
21388	TODO: Other files would need to use MPFR_ADD_PREC.
21389
21390	[tests/tinits.c] Updated the large precision test to trigger a bug fixed
21391	in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the
21392	crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in
21393	"src/set.c".
21394
21395	[src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job
21396	for stdio).
21397
21398	[tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec).
21399
21400	Document the MPFR_DEBUG_BADCASES environment variable before bad_cases()
21401	in tests/tests.c (where it is used). Remove it from "doc/README.dev"
21402	since it is useful only in case of crash / infinite loop in bad_cases(),
21403	and will give useless output otherwise.
21404
214052012-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21406
21407	[TODO] added comment
21408	[doc/README.dev] added environment variables
21409
21410	[tinits.c] added test to check #13918 is fixed
21411
214122012-02-22  Vincent Lefèvre  <vincent@vinc17.net>
21413
21414	Avoid potential integer overflows and improve consistency. This should
21415	fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit".
21416	Note: this problem appeared in MPFR 3.0.0 when the precision type (now
21417	mpfr_prec_t) was changed to a signed integer.
21418
21419	[configure.ac] Added a comment mentioning a problem with GNU gold ld.
21420
214212012-02-15  Vincent Lefèvre  <vincent@vinc17.net>
21422
21423	[TODO] Added reference to ISO/IEC 24747:2009 (C, special functions).
21424
214252012-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21426
21427	removed directory src/x86_64/xeon
21428	[src/Makefile.am] removed x86_64/xeon/mparam.h
21429
214302012-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21431
21432	share parameters between x86_64/core2 and x86_64/xeon (gcc70)
21433
21434	[src/Makefile.am] forgot to add new param file
21435
21436	added tuning parameters for -mtune=nocona (gcc70)
21437
214382012-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21439
21440	[mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64
21441	              the parameters for 32-bit are used!
21442
214432012-01-15  Vincent Lefèvre  <vincent@vinc17.net>
21444
21445	[doc/README.dev] Updated "To make a release".
21446
214472012-01-10  Vincent Lefèvre  <vincent@vinc17.net>
21448
21449	[TODO] Added a note to item about sNaN/qNaN.
21450
21451	[doc/mpfr.texi] Updated the month.
21452
21453	[doc/mpfr.texi] Mention the AriC project-team.
21454
21455	Reverted incorrect change in ChangeLog from r7993.
21456
21457	Changed Arenaire to AriC with:
21458	  perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/)
21459	under zsh.
21460
21461	[doc] Updated FAQ.html with update-faq.
21462
21463	[doc/faq.xsl] Remove only the top-level comments from the HTML file.
21464
21465	[doc/faq.xsl] Updated a comment.
21466
21467	Copyright notice update: added 2012 with
21468	  perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/)
21469	under zsh, reverting the ChangeLog file (the m4 and tools/mbench
21470	directories were not modified).
21471	Removed 2011 from the example in the doc/README.dev file.
21472
214732011-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21474
21475	[TODO] trivial change (to test the commit logs)
21476
214772011-12-09  Vincent Lefèvre  <vincent@vinc17.net>
21478
21479	[configure.ac] Mention --disable-thread-safe.
21480
21481	[INSTALL] Added information about system/compiler bugs related to TLS
21482	or optimizations.
21483
214842011-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21485
21486	[INSTALL] added note about buggy TLS support
21487
214882011-11-28  Vincent Lefèvre  <vincent@vinc17.net>
21489
21490	[tests/turandom.c] Removed an obsolete comment.
21491
21492	[src/mpfr-gmp.h] Updated the TODO comment about the rand state.
21493
21494	[doc/mpfr.texi] Updated the month.
21495
21496	[tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x
21497	(since the default PRNG has changed between GMP 4.1 and 4.2).
21498
21499	[doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about
21500	the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1.
21501
21502	[src/mpfr-gmp.h] Added a TODO comment.
21503
215042011-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21505
21506	revert previous commit (test)
21507
21508	commit test
21509
215102011-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21511
21512	[src/mpfr-thread.h] added pointer to TLS on Windows
21513
215142011-11-09  Vincent Lefèvre  <vincent@vinc17.net>
21515
21516	[tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0
21517	(but fixed in r7931 and later).
21518
215192011-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21520
21521	[tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax)
21522
215232011-11-09  Vincent Lefèvre  <vincent@vinc17.net>
21524
21525	[TODO] Added a reference to an old discussion concerning __float128.
21526
215272011-11-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21528
21529	[TODO] added item
21530
215312011-11-03  Vincent Lefèvre  <vincent@vinc17.net>
21532
21533	[src/vasprintf.c] Untabify.
21534
215352011-11-03  Philippe Théveny  <philippe.theveny@laposte.net>
21536
21537	[src/vasprintf.c] Corrected a comment.
21538
215392011-11-03  Vincent Lefèvre  <vincent@vinc17.net>
21540
21541	[tests/tsprintf.c] Coding style.
21542
215432011-11-02  Vincent Lefèvre  <vincent@vinc17.net>
21544
21545	[src/strtofr.c] Spelling.
21546
21547	[src/vasprintf.c] Spelling.
21548
21549	[src/vasprintf.c] Corrected a comment.
21550
21551	[tests/tsprintf.c] Added tests.
21552
21553	[src/vasprintf.c] Untabify. Minor correction in a comment.
21554
215552011-11-02  Philippe Théveny  <philippe.theveny@laposte.net>
21556
21557	[src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931).
21558
215592011-11-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21560
21561	[src/mpn_exp.c] changed FIXME into TODO
21562
21563	[src/mpn_exp.c] added comment
21564	[src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko
21565	[tests/tsprintf.c] added corresponding test case
21566
215672011-10-14  Vincent Lefèvre  <vincent@vinc17.net>
21568
21569	[tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS.
21570	[INSTALL] Removed the notes on HP-UX (obsolete after the above change).
21571
215722011-10-13  Vincent Lefèvre  <vincent@vinc17.net>
21573
21574	[INSTALL] Corrected notes for HP-UX.
21575
21576	[INSTALL] Added notes for HP-UX after a bug report. See discussion:
21577	https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html
21578
215792011-10-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21580
21581	[TODO] added one item
21582
21583	[corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does
21584			  currently recognize Core i5 as "k8", however the k8 tuning
21585			  parameters are not so bad for Core i5)
21586
215872011-10-05  Vincent Lefèvre  <vincent@vinc17.net>
21588
21589	[src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that
21590	MPFR_ASSERTD takes a boolean (0 or 1).
21591
215922011-10-04  Vincent Lefèvre  <vincent@vinc17.net>
21593
21594	[src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC
21595	(found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR
21596	built with --enable-assert=full).
21597	(Merged changeset r7908 from the 3.1 branch.)
21598
215992011-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21600
21601	[doc/mpfr.texi] added reference and comment for eint
21602
216032011-09-25  Vincent Lefèvre  <vincent@vinc17.net>
21604
21605	[doc/mpfr.texi] Rephrased mpfr_frexp description.
21606
216072011-09-24  Vincent Lefèvre  <vincent@vinc17.net>
21608
21609	Renamed "division-by-zero" to "divide-by-zero" (term used by the
21610	ISO C99 standard, the IEEE 754-2008 standard using divideByZero,
21611	and the old IEEE 754-1985 standard using both "divide by zero"
21612	and "division by zero").
21613
21614	[src/gmp_op.c] Forgot to update the flags in some functions.
21615
21616	[tests/tgmpop.c] Improved division-by-zero tests.
21617
216182011-09-23  Vincent Lefèvre  <vincent@vinc17.net>
21619
21620	[doc/faq.xsl] Added a comment about the MPFR logo.
21621
216222011-09-22  Vincent Lefèvre  <vincent@vinc17.net>
21623
21624	[doc/mpfr.texi] Improved mpfr_frexp description.
21625
21626	[doc/mpfr.texi] Corrected typo in the mpfr_frexp description.
21627
216282011-09-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21629
21630	[tools/cfarm.sh] updated for MPFR 3.1.0 rc2
21631
216322011-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21633
21634	[cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2)
21635
216362011-09-20  Vincent Lefèvre  <vincent@vinc17.net>
21637
21638	[examples/version.c] Output mpfr_buildopt_gmpinternals_p() and
21639	mpfr_buildopt_tune_case() values with MPFR 3.1 or later.
21640
21641	Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p.
21642
21643	Added mpfr_buildopt_internals_p function.
21644
21645	[doc/mpfr.texi] Added commas.
21646
21647	[src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f.
21648
216492011-09-19  Vincent Lefèvre  <vincent@vinc17.net>
21650
21651	[TODO] Added an item about the minimum and maximum exponents.
21652
21653	[src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN
21654	and MPFR_EXT_EMAX respectively (see r7862 and r7863).
21655
21656	[src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX.
21657	[doc/README.dev] Document how to specify the minimum exponent or the
21658	  maximum exponent.
21659
216602011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21661
21662	[src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin).
21663		    Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2.
21664
216652011-09-19  Vincent Lefèvre  <vincent@vinc17.net>
21666
21667	[src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q
21668	(it could be detected when building MPFR with g++).
21669
216702011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21671
21672	[tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z]
21673		 (https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html)
21674
216752011-09-19  Vincent Lefèvre  <vincent@vinc17.net>
21676
21677	[doc/README.dev] Updated "To make a release".
21678
216792011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21680
21681	[src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455
21682			 (mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h
21683			  thus we can't use it)
21684
216852011-09-19  Vincent Lefèvre  <vincent@vinc17.net>
21686
21687	[doc/mpfr.texi] Correction: "5 exception types" → "6 exception types"
21688	(thanks to Case Vanhorsen for the report).
21689
216902011-09-14  Vincent Lefèvre  <vincent@vinc17.net>
21691
21692	[src/mpfr-impl.h] Define LONGLONG_STANDALONE before including
21693	mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is
21694	useful at least on IA64 when compiling without gmp-impl.h).
21695	Thanks to Patrick Pélissier for the fix.
21696
216972011-09-11  Vincent Lefèvre  <vincent@vinc17.net>
21698
21699	[doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1,
21700	the mpfr.h header can be included several times, while still supporting
21701	optional functions.
21702
21703	[doc/mpfr.texi] Replaced some @code by @file for consistency.
21704
21705	[doc/mpfr.texi] Updated "API Compatibility" section: functions
21706	mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1.
21707
21708	[doc/mpfr.texi] Documented function mpfr_buildopt_tune_case,
21709	and added it to the list of added functions.
21710	[NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1.
21711
21712	[doc/mpfr.texi] Updated "API Compatibility" section
21713	(new division-by-zero exception in MPFR 3.1).
21714
21715	[doc/mpfr.texi] Updated the month.
21716
21717	[doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should
21718	no longer be considered experimental.
21719
217202011-09-10  Vincent Lefèvre  <vincent@vinc17.net>
21721
21722	[tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure
21723	with a C++ compiler).
21724
21725	[TODO] Replaced "configure.in" by "configure.ac".
21726
21727	[doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE.
21728
21729	[tools/mpfrlint] Correction after r7825.
21730
21731	[tools/mpfrlint] Run tools/ck-mparam.
21732
21733	Added tools/ck-mparam sh script to check the mparam.h files
21734	(gcc is needed).
21735
217362011-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21737
21738	[src/amd/k8/mparam.h] removed spurious end of comment
21739
217402011-09-09  Vincent Lefèvre  <vincent@vinc17.net>
21741
21742	[doc/README.dev] For the valgrind example, use the same arguments
21743	as in gnulib's valgrind-tests.m4 file.
21744
21745	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
21746
21747	[Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is
21748	  used in dist-hook.
21749	[tools/ck-copyright-notice] Added copyright notice (since this file is
21750	  distributed in the tarballs). Note: the first year is 2008 as a part
21751	  of the code comes from r5370 in mpfrlint.
21752
21753	[tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file
21754	(which comes from GMP) has a specific copyright notice.
21755
21756	[src/mp_clz_tab.c] Updated the copyright notice.
21757
21758	[tools/ck-copyright-notice] Check that the first copyright year for
21759	the mparam.h files is 2005.
21760
21761	Added copyright notice to the mparam.h files (with the same years
21762	as in the template).
21763
21764	Added tools/ck-copyright-notice sh script from mpfrlint (updated) to
21765	check that copyright notices exist and appear to be correct. Updated
21766	tools/mpfrlint to run tools/ck-copyright-notice instead of its old
21767	test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for
21768	"make dist".
21769
21770	[tools/mpfrlint] More files under src and tests directories.
21771
217722011-09-08  Vincent Lefèvre  <vincent@vinc17.net>
21773
21774	[NEWS] Update for MPFR 3.1.x.
21775
21776	[tests/Makefile.am]
21777	  * Added "AM_LDFLAGS = -no-install" to prevent libtool from generating
21778	    wrapper scripts for the tests (according to discussions and tests,
21779	    there should be no negative effects); useful for gdb and valgrind.
21780	  * Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the
21781	    tests under valgrind with: VALGRIND="valgrind -q" make check
21782	[doc/README.dev] Update for gdb and valgrind.
21783
217842011-08-31  Vincent Lefèvre  <vincent@vinc17.net>
21785
21786	[doc/mpfr.texi] Improved the specification of mpfr_get_f.
21787
217882011-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21789
21790	[configure.ac] added comment about minimal GMP version
21791
21792	dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra
21793	builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk
21794
217952011-08-19  Vincent Lefèvre  <vincent@vinc17.net>
21796
21797	[doc/mpfr.texi] Added some references to the ternary definition.
21798
217992011-08-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21800
21801	[doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by
21802			Vincent Lefevre
21803
218042011-08-19  Vincent Lefèvre  <vincent@vinc17.net>
21805
21806	[doc/mpfr.texi] Added "Ternary value" to the concept index.
21807
218082011-08-15  Vincent Lefèvre  <vincent@vinc17.net>
21809
21810	[doc/README.dev] Added information on how to update the FAQ.
21811
21812	[doc] Updated FAQ.html with update-faq.
21813
218142011-08-12  Vincent Lefèvre  <vincent@vinc17.net>
21815
21816	[tune/tuneup.c] Untabified.
21817
21818	[src/mulders.c] Replaced MPFR_ASSERTD by MPFR_ASSERTN on constant
21819	expressions (this is a temporary change, as they should later be
21820	replaced by static assertions).
21821
21822	[src/mulders.c] Replaced mp_ptr and mp_srcptr (internal to GMP) by
21823	mpfr_limb_ptr and mpfr_limb_srcptr.
21824
21825	[src/mpfr-gmp.h] Avoid potential identifier collision by using an
21826	underscore for variable names declared in the invert_pi1 macro.
21827
21828	[src/mpfr-gmp.h] Untabified.
21829
21830	[doc/mpfr.texi] Updated the month.
21831
218322011-08-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21833
21834	[k8/mparam.h] added comment
21835
21836	[x86/mparam.h] new tuning contributed by Jim Cloos
21837	[amd/amdfam10/mparam.h] added GMP version
21838
21839	[mpfr-gmp.h] use mpfr_pi1_t instead of gmp_pi1_t to avoid using GMP's namespace
21840
218412011-08-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21842
21843	[src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS
21844			is defined
21845	[src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase
21846	[configure.ac] check for mpn_sbpi1_divappr_q
21847
218482011-08-05  Vincent Lefèvre  <vincent@vinc17.net>
21849
21850	Updated version to 3.2.0-dev.
21851
218522011-08-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21853
21854	[amdfam10/mparam.h] tuning parameters contributed by Jim Cloos
21855
21856	[mulders.c] added a basecase code for Mulders' short division
21857	[tuneup.c] added corresponding tuning code
21858	[TODO] added an item
21859
218602011-08-04  Vincent Lefèvre  <vincent@vinc17.net>
21861
21862	[acinclude.m4] In the INTMAX_MAX test, no longer hardcode the
21863	"#include <stdint.h>" (for instance, this doesn't work under
21864	Solaris 9: INTMAX_MAX is defined only via <inttypes.h>), but
21865	include "mpfr-intmax.h" instead (needs a temporary CPPFLAGS).
21866
218672011-08-01  Vincent Lefèvre  <vincent@vinc17.net>
21868
21869	[NEWS] Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
21870
21871	[doc/README.dev] Added copyright notice in case the file is distributed.
21872
21873	[doc/README.dev] Added information on how to run the MPFR test suite
21874	under valgrind.
21875
21876	Untabified and removed trailing spaces.
21877
21878	[tests/tversion.c] Improved output information.
21879
218802011-07-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21881
21882	[hppa/mparam.h] updated for new Mulders' division
21883
21884	[sparc64/mparam.h] updated for new Mulders' division
21885
21886	[powerpc64/mparam.h] updated for new Mulders' division
21887
21888	[ia64/mparam.h] updated for new Mulders' division
21889
21890	[amd/k8/mparam.h] updated for new Mulders' division
21891
21892	[x86/core2/mparam.h] updated thresholds for new Mulders' division
21893
21894	[mparam_h.in] changed the detection of 64-bit Core 2, and added
21895		      MPFR_TUNE_CASE for default case
21896	[tversion.c] print GMP version (header and library), and file for tuning
21897		     parameters
21898
21899	[x86_64/core2/mparam.h] updated for Mulders' division
21900
21901	Added tuning for MPFR_DIV_THRESHOLD, and default value.
21902	It now remains to do the tuning on the architectures in mparam_in.h.
21903
219042011-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21905
21906	[NEWS] added speed improvement in mpfr_div
21907
219082011-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21909
21910	[mulders.c] fixed bug in mpfr_divhigh_n (this routine was not used yet)
21911	[div.c] now use Mulders' short product for large division. It remains to
21912		do the automatic tuning of MPFR_DIV_THRESHOLD. The speedup is nice,
21913		for example on my Core 2 Duo laptop we got with MPFR 3.0.0:
21914
21915	[zimmerma@coing tests]$ ./timings-mpfr 1000
21916	Using MPFR-3.0.0 with GMP-5.0.2
21917	[precision is 3322 bits]
21918	x*y        took 0.004543 ms (262143 eval in 1191 ms)
21919	x*x        took 0.003616 ms (524287 eval in 1896 ms)
21920	x/y        took 0.009087 ms (131071 eval in 1191 ms)
21921	sqrt(x)    took 0.007004 ms (262143 eval in 1836 ms)
21922	exp(x)     took 0.293040 ms (4095 eval in 1200 ms)
21923	log(x)     took 0.253724 ms (4095 eval in 1039 ms)
21924	sin(x)     took 0.306960 ms (4095 eval in 1257 ms)
21925	cos(x)     took 0.290842 ms (4095 eval in 1191 ms)
21926	arccos(x)  took 0.590620 ms (2047 eval in 1209 ms)
21927	arctan(x)  took 0.560332 ms (2047 eval in 1147 ms)
21928
21929	and now we get:
21930
21931	[zimmerma@coing tests]$ ./timings-mpfr 1000
21932	Using MPFR-3.1.0-dev with GMP-5.0.2
21933	[precision is 3322 bits]
21934	x*y        took 0.004444 ms (262143 eval in 1165 ms)
21935	x*x        took 0.002686 ms (524287 eval in 1408 ms)
21936	x/y        took 0.006989 ms (262143 eval in 1832 ms)
21937	sqrt(x)    took 0.007084 ms (262143 eval in 1857 ms)
21938	exp(x)     took 0.292063 ms (4095 eval in 1196 ms)
21939	log(x)     took 0.246886 ms (4095 eval in 1011 ms)
21940	sin(x)     took 0.259096 ms (4095 eval in 1061 ms)
21941	cos(x)     took 0.244933 ms (4095 eval in 1003 ms)
21942	arccos(x)  took 0.556424 ms (2047 eval in 1139 ms)
21943	arctan(x)  took 0.526624 ms (2047 eval in 1078 ms)
21944
21945	We see that other routines also benefit from the speedup in mpfr_sqr and
21946	mpfr_div (log, sin, cos, arccos, arctan).
21947
219482011-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21949
21950	[algorithms.tex] added algorithm for division with Mulders' short product
21951			 (can anybody check the algorithm is ok?)
21952
219532011-07-29  Vincent Lefèvre  <vincent@vinc17.net>
21954
21955	[src/vasprintf.c] Added a comment.
21956
21957	[src/get_str.c] Added a comment about the use of mpfr_ceil_mul
21958	(exported and declared in mpfr-impl.h since r7760).
21959
219602011-07-28  Philippe Théveny  <philippe.theveny@laposte.net>
21961
21962	Avoid expensive calls to mpfr_get_prec() using mpfr_ceil_mul() instead.
21963
21964	Make ceil_mul() public as mpfr_ceil_mul() in mpfr-impl.h
21965
219662011-07-28  Vincent Lefèvre  <vincent@vinc17.net>
21967
21968	[src/mulders.c] MPFR coding conventions for r7752.
21969
219702011-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
21971
21972	modified the default tuning parameters so they are within the bounds of the
21973	ARITH-20 paper "Short Division of Long Integers"
21974
21975	[src/mulders.c] declare mpfr_mullow_n as non-static since it might be useful
21976			elsewhere
21977
21978	[tuneup.c] fix tuning bounds of short product and division according to the
21979		   ARITH-20 paper
21980
21981	[acinclude.m4] detect long double format in m68k
21982
21983	[tget_flt.c] added test to check FLT_MAX + FLT_MAX gives INFP
21984		     (to early detect compiler bugs)
21985
21986	[nightly-test] changed -pedantic-errors into -pedantic
21987
21988	[mulders.c] added some code for short division (FoldDiv, not used),
21989		    added comments and fixed bounds in accordance with the
21990		    ARITH-20 paper
21991
219922011-07-28  Philippe Théveny  <philippe.theveny@laposte.net>
21993
21994	Use a buffer in order to avoid a double call to mpfr_get_str.
21995
219962011-07-26  Vincent Lefèvre  <vincent@vinc17.net>
21997
21998	[src/log.c] Replaced TMP_* by MPFR_GROUP_* (patch by Patrick).
21999
220002011-07-22  Vincent Lefèvre  <vincent@vinc17.net>
22001
22002	[doc/mpfr.texi] Added a comment about TLS variable initialization.
22003
22004	[doc/mpfr.texi] Added information about TLS variable initialization.
22005
22006	[doc/mpfr.texi] Split Chapter "MPFR Basics" into nodes as it is now
22007	quite large (thus references to particular sections are now possible).
22008
220092011-07-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22010
22011	[vasprintf.c] simplified and improved round_to_10_power(), also contributed
22012		      a negative number of lines of code :-)
22013		      Still not optimal, since round_to_10_power() is still called
22014		      twice for printing say pi with mpfr_printf ("%Rg\n", x), once
22015		      from partition_number(), once from regular_fg(), and thus
22016		      mpfr_get_str is called at least 3 times!
22017
22018	[configure.ac] improve error message when libgmp is not found
22019
22020	[mpfr.texi] added note about threads for mpfr_set_default_prec and
22021	            mpfr_get_default_prec
22022
220232011-07-06  Vincent Lefèvre  <vincent@vinc17.net>
22024
22025	[doc/mpfr.texi] Updated the month.
22026
22027	[NEWS, doc/mpfr.texi] mpfr_min_prec was a new function in MPFR 3.0.0.
22028
220292011-07-01  Vincent Lefèvre  <vincent@vinc17.net>
22030
22031	[tests/tget_flt.c] Replaced FLT_MAX + FLT_MAX by (float) DBL_POS_INF,
22032	which should trigger fewer compiler bugs. See:
22033	  https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00002.html
22034
22035	[src/ieee_floats.h] Added a comment about the NaN format when
22036	_GMP_IEEE_FLOATS is defined.
22037
220382011-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22039
22040	[tget_flt.c] check for compiler bug
22041		     (https://sympa.inria.fr/sympa/arc/mpfr/2011-07/msg00000.html)
22042
220432011-06-30  Vincent Lefèvre  <vincent@vinc17.net>
22044
22045	Removed all the svn:eol-style properties (they were set to "native"),
22046	and in doc/README.dev, explained why svn:eol-style native should not
22047	be used.
22048
220492011-06-28  Vincent Lefèvre  <vincent@vinc17.net>
22050
22051	[tools/ck-version-info] Check DLL version in LIBMPFR_LDFLAGS line from
22052	configure.ac (patch by Stefan Graff, with minor changes).
22053
220542011-06-26  Vincent Lefèvre  <vincent@vinc17.net>
22055
22056	[tools/ck-version-info] 2 corrections:
22057	  * update due to the change of the libmpfr_la_LDFLAGS line in r7724;
22058	  * to support the CRLF end-of-line sometimes used under MS-Windows
22059	    (perl should normally take care of that, but Windows software is
22060	    not always consistent).
22061
22062	[doc/mpfr.texi] Due to the "@unnumbered Function and Type Index",
22063	replaced the other "Function Index" by "Function and Type Index"
22064	(note: the function index and the type index are merged thanks to
22065	the "@synindex tp fn" line at the beginning of mpfr.texi).
22066
220672011-06-25  Vincent Lefèvre  <vincent@vinc17.net>
22068
22069	Ported patch r7723 (changes suggested by Stefan Graff to be able
22070	to build Windows DLLs with GCC 4.6[*]) to the trunk, not tested
22071	(something more may be needed due to the source reorganization).
22072	[*] https://sympa.inria.fr/sympa/arc/mpfr/2011-06/msg00013.html
22073
220742011-06-21  Vincent Lefèvre  <vincent@vinc17.net>
22075
22076	[doc/mpfr.texi] Updated the month.
22077
22078	[doc/mpfr.texi] Corrected a note about mpfr_set_*, due to the addition
22079	of mpfr_set_decimal64.
22080
220812011-06-20  Vincent Lefèvre  <vincent@vinc17.net>
22082
22083	[doc/README.dev] Removed comment added in r7181, as it is no longer
22084	necessary since r7182 (new option --enable-gmp-internals).
22085
22086	[configure.ac] Updated comment concerning __gmpn_rootrem (mention
22087	WANT_GMP_INTERNALS).
22088
22089	[doc/README.dev] Added a note about logging and timeout.
22090
22091	[src] Conversion into UTF-8 (only comments were concerned).
22092
22093	[TODO] Conversion into UTF-8.
22094
22095	[src/pow.c] Made the code more robust concerning the scaling (a bug was
22096	very unlikely, though), and updated the comments (partial proof).
22097
220982011-06-01  Vincent Lefèvre  <vincent@vinc17.net>
22099
22100	[examples/version.c] Output MPFR features and size of MPFR types.
22101
221022011-05-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22103
22104	[src/rec_sqrt.c] continued review; I can now prove that cu=0 in all cases
22105	[tests/trec_sqrt.c] added tests for corner cases
22106
221072011-05-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22108
22109	[rec_sqrt.c] more review of codes, following comments from Vincent
22110
221112011-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22112
22113	[rec_sqrt.c] removed tabs
22114
22115	[rec_sqrt.c] review and small change of changeset 7651: most probably cu=0
22116		     when th=0 (and maybe cu=0 always, I cannot find an example where
22117		     cu <> 0) but considering the case th=0 is more natural.
22118
221192011-05-18  Vincent Lefèvre  <vincent@vinc17.net>
22120
22121	[doc/mpfr.texi] List the contributors in the alphabetic order, like
22122	the main authors.
22123
22124	Made AUTHORS and doc/mpfr.texi consistent.
22125
22126	Updated AUTHORS file and copyright notices (for more consistency).
22127
22128	[tests/thyperbolic.c] Fixed copyright notice.
22129
22130	[src/inp_str.c] Improved comment.
22131
22132	[src/fits_s.h] Improved comment.
22133
22134	[doc/mpfr.texi] Updated the month.
22135
22136	[src/mpfr.h] Avoid a warning from mpfrlint.
22137
22138	[configure.ac] Consistency change in the copyright notice.
22139
22140	[tests/tsqr.c] Added a note in the check_mpn_sqr error message.
22141
22142	[tests/tsqr.c] Added a test of mpn_sqr concerning a bug seen
22143	with GCC 4.5.2 and GMP 5.0.1 on m68k (m68000 target).
22144
221452011-05-17  Vincent Lefèvre  <vincent@vinc17.net>
22146
22147	[doc/README.dev] Added a note about a texinfo bug.
22148
221492011-05-13  Vincent Lefèvre  <vincent@vinc17.net>
22150
22151	Added mpfr-intmax.h header.
22152
22153	Started to support mpfr_exp_t defined as intmax_t (_MPFR_EXP_FORMAT==4).
22154
22155	[NEWS] Added that the mpfr.h header can be included several times,
22156	while still supporting optional functions.
22157
22158	[doc/mpfr.texi] Document what to do if mpfr.h can be included
22159	multiple times (fixes MPFR bug #9653).
22160
221612011-05-12  Vincent Lefèvre  <vincent@vinc17.net>
22162
22163	[doc/README.dev] Added a note to run tests with -D_MPFR_PREC_FORMAT=2.
22164
22165	[src/mpfr-impl.h] Exponent properties: corrected comments and removed
22166	obsolete mp_exp_unsigned_t definition (was internal only).
22167
22168	[src/{mpfr.h,mpfr-impl.h,vasprintf.c}] Clean-up and improvement
22169	of definitions related to mpfr_exp_t. MPFR can now be built with
22170	-D_MPFR_PREC_FORMAT=2 to have mpfr_prec_t and mpfr_exp_t defined
22171	as an int.
22172
22173	[src/mpfr.h] Fixed spaces in a comment.
22174
22175	Fixed printf's calls: support the case where mpfr_prec_t is not a long
22176	(or unsigned long).
22177	[merged changeset r7643 from the exp-int branch]
22178
22179	[src/strtofr.c] Support the case where mpfr_exp_t < long; mpfr_exp_t is
22180	currently defined as mp_exp_t, which comes from GMP, and GMP currently
22181	defines mp_exp_t as a long, except on Cray (never tested for MPFR). But
22182	this may change in the future (possibly as an option)...
22183	[merged changeset r7642 from the exp-int branch]
22184
22185	[src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW
22186	(fortunately the current MPFR code was not affected).
22187
22188	[tests/tpow_z.c] More details for a test in case of failure.
22189
22190	[src/sub1.c] Fixed several bugs: integer overflows and potential
22191	out-of-bound pointers. They might be visible on particular platforms,
22192	with a particular configuration (e.g. 64-bit limbs and 32-bit exponent
22193	type) or particular compiler options (to check such overflows).
22194	[merged changesets r7637-7638 from the exp-int branch]
22195
221962011-05-11  Vincent Lefèvre  <vincent@vinc17.net>
22197
22198	[tests/tsin.c] Added a test (it failed before the fix in r7308).
22199
22200	Fixed constants pi and log(2) computation when logging is used: When
22201	MPFR is built with logging support, these two constants are used by
22202	the logging functions (via mpfr_fprintf, then mpfr_log, for the base
22203	conversion). Since the mpfr_cache function isn't re-entrant when
22204	working on the same cache, we need to define two caches for each
22205	constant. Otherwise the constants could be incorrect; for instance,
22206	"MPFR_LOG_ALL=1 ./tconst_pi" was failing.
22207	Note: the bug was introduced with the new logging system from r7575
22208	for MPFR 3.1.0, based on mpfr_fprintf instead of mpfr_out_str (which
22209	doesn't depend on mpfr_log).
22210
222112011-05-09  Vincent Lefèvre  <vincent@vinc17.net>
22212
22213	[tests/tests.c] Replaced atoi by strtoul to read the seed from
22214	GMP_CHECK_RANDOMIZE, as it is an unsigned long.
22215
22216	[tests/texp.c] Fixed the test comparing mpfr_exp_2 and mpfr_exp_3:
22217	filter out 0, as it is handled correctly only by mpfr_exp.
22218
222192011-05-06  Vincent Lefèvre  <vincent@vinc17.net>
22220
22221	[doc/README.dev] Completed the note to run tests under gdb.
22222
22223	[doc/README.dev] Added a note to run tests under gdb.
22224
222252011-05-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22226
22227	[README.dev] added hint for logging
22228
222292011-05-04  Vincent Lefèvre  <vincent@vinc17.net>
22230
22231	[src/atan.c] Fixed bug in mpfr_atan: mpfr_check_range was called on the
22232	unrounded result (no longer allocated) instead of the rounded result.
22233	Consequence of this bug: possible incorrect or invalid result and/or
22234	incorrect flags if either the unrounded result or rounded result is not
22235	in the current exponent range. Or possibly worse if the memory used by
22236	the unrounded result is modified before the return of the function.
22237
22238	[tests/tatan.c] Corrected a comment.
22239
22240	[tests/tatan.c] Added a testcase showing a failure of mpfr_atan
22241	in a reduced exponent range.
22242
22243	[src/const_pi.c] Removed useless assignment.
22244
222452011-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22246
22247	[mpfr-impl.h] fixed typo
22248
222492011-05-03  Vincent Lefèvre  <vincent@vinc17.net>
22250
22251	[src/mpfr-impl.h] In MPFR_RNDRAW_GEN, do not try to compute the
22252	  sticky bit when not necessary (directed mode with rb = 1).
22253	[src/mul.c] FIXME comment: with the change in MPFR_RNDRAW_GEN,
22254	  uninitialized data are no longer read; there's still something
22255	  wrong, at least with the code documentation, though.
22256
22257	[src/mul.c] Updated the FIXME comment.
22258
22259	Bug in mpfr_mul: a call mpfr_mulhigh_n(pointers..., n) where n is some
22260	size is done, but the mpfr_mul code assumes a result whose size can be
22261	arbitrarily larger, thus may depend on uninitialised data.
22262	  * [src/mul.c] Added a FIXME comment.
22263	  * [tests/tmul.c] Added a corresponding test. The result is not checked
22264	    but valgrind complains of the use of uninitialised value(s).
22265
22266	[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added other missing parentheses.
22267
22268	[src/mpfr-impl.h] MPFR_RNDRAW_GEN: added missing parentheses.
22269
22270	[src/mpfr-impl.h] Logging: do not take into account the Ziv loops due
22271	to logging (i.e. used by the MPFR functions called by the mpfr_fprintf
22272	in LOG_PRINT).
22273
22274	[src/mpfr-impl.h] Avoid recursive logging for MPFR_ZIV_* macros too,
22275	and fixed type for the output of the precision.
22276
22277	[src/mpfr-impl.h] Avoid recursive logging (not wanted and freezes MPFR).
22278
22279	[src/rec_sqrt.c] Improved the comment added in r7651.
22280
222812011-05-02  Vincent Lefèvre  <vincent@vinc17.net>
22282
22283	[src/rec_sqrt.c] Fixed the buffer overflow (bug 12553).
22284
22285	[src/rec_sqrt.c] Added an assertion to avoid a buffer overflow
22286	(mpn_add_1 and mpn_sub_1 don't support size = 0). It sometimes
22287	fails, and this is the following bug:
22288	https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
22289
22290	[src/rec_sqrt.c] Added a comment about a buffer overflow. Bug report:
22291	https://gforge.inria.fr/tracker/index.php?func=detail&aid=12553&group_id=136&atid=619
22292
22293	[tests/tvalist.c] Make sure that fct is used (avoid a warning).
22294
22295	[tests/tsin_cos.c] status_f and status were not read (compared) in
22296	coverage_01032011, yielding a warning.
22297
22298	[src/mpfr-impl.h] Avoid a spurious warning with some use of MPFR_BLOCK.
22299
22300	[doc/README.dev] Added command to test with valgrind.
22301
223022011-05-01  Vincent Lefèvre  <vincent@vinc17.net>
22303
22304	Added "make dist" support for -dev MPFR versions by distributing the
22305	tests/data files in the tarball for such MPFR versions ("make check"
22306	fails if some data file couldn't be read for such versions).
22307	  * configure.ac: add a Makefile variable DATAFILES, which contains the
22308	    list of the tests/data files if the MPFR version ends with "-dev".
22309	  * Makefile.am: add $(DATAFILES) to EXTRA_DIST.
22310
223112011-04-29  Vincent Lefèvre  <vincent@vinc17.net>
22312
22313	Added casts for printf (mpfr_prec_t was assumed to be an unsigned long).
22314
22315	[src/strtofr.c] Support the case where mpfr_exp_t < long.
22316
22317	[src/mpfr-impl.h] Added missing parentheses in MPFR_SADD_OVERFLOW.
22318
22319	[tests/trint.c] Removed a useless pointer cast (in general, such casts
22320	are either useless or incorrect, as breaking aliasing rules).
22321
223222011-04-28  Vincent Lefèvre  <vincent@vinc17.net>
22323
22324	[tests/tpow_z.c] More details concerning a failure.
22325
22326	[src/sub1.c] Added a useless cast (for maintainability: may be needed
22327	in case of future change) and comments about the last change (r7637).
22328
22329	[src/sub1.c] Fixed several bugs: integer overflows and potential
22330	out-of-bound pointers.
22331
22332	[src/cmp2.c] Added an assertion.
22333
223342011-04-18  Vincent Lefèvre  <vincent@vinc17.net>
22335
22336	[acinclude.m4] Correction of problems triggering the warning
22337	  "warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body"
22338	with autoconf 2.68:
22339	* Fixed missing quoting in an AC_RUN_IFELSE.
22340	* Added an AC_LANG_SOURCE in another AC_RUN_IFELSE.
22341
22342	[acinclude.m4] s/can not/cannot/
22343
22344	[acinclude.m4] Added comment about the warning:
22345	  warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
22346
223472011-04-15  Vincent Lefèvre  <vincent@vinc17.net>
22348
22349	[acinclude.m4] Use conventional quotes.
22350
22351	[acinclude.m4] Added a comment.
22352
223532011-04-12  Vincent Lefèvre  <vincent@vinc17.net>
22354
22355	[src/asin.c] Fixed bug in mpfr_asin for x = 1 or -1 in extremely reduced
22356	  exponent range (when pi is not representable, but pi/2 is).
22357	[tests/tasin.c] Added testcase.
22358
223592011-04-08  Vincent Lefèvre  <vincent@vinc17.net>
22360
22361	[TODO] Removed "allow generic tests to run with a restricted
22362	exponent range" (this was done in r7470).
22363
223642011-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22365
22366	[TODO] added item
22367
223682011-04-05  Vincent Lefèvre  <vincent@vinc17.net>
22369
22370	[doc/mpfr.texi] Updated the month.
22371
22372	[INSTALL,doc/mpfr.texi] Say that mpfr@loria.fr is the MPFR mailing-list.
22373
223742011-04-01  Vincent Lefèvre  <vincent@vinc17.net>
22375
22376	[configure.ac] Removed the -Wno-format GCC option, which was added
22377	when logging was used, as it is no longer needed after the changes
22378	done in r7575,7578 (mpfr_fprintf is now used for logging instead of
22379	fprintf with the Glibc register_printf_function extension).
22380
223812011-03-29  Vincent Lefèvre  <vincent@vinc17.net>
22382
22383	[tests/reuse.c] Added a comment.
22384
22385	[src/pow.c] Fixed a bug in mpfr_pow_general when an argument is reused
22386	(e.g. mpfr_pow(x,x,y,rnd) or mpfr_pow(y,x,y,rnd)) and the result is
22387	negative, thus when x is negative and y is a huge odd integer ("huge"
22388	because not-too-large integers are currently handled by mpfr_pow_z).
22389
22390	[tests/reuse.c] Added a mpfr_pow(x,x,y,rnd) test showing a failure
22391	when x is negative and y is a huge odd integer.
22392
22393	[src/subnormal.c] Improved a comment.
22394
22395	[tests/reuse.c] Test also negative numbers.
22396
22397	[tests/reuse.c] GNU coding style.
22398
22399	[src/mul.c] Updated a comment.
22400
22401	[src/powerof2.c] Updated comment.
22402
22403	[src/powerof2.c] More detailed comment.
22404
224052011-03-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22406
22407	[cfarm.sh] complete tests with mpfr-3.0.1-rc1
22408
224092011-03-21  Vincent Lefèvre  <vincent@vinc17.net>
22410
22411	[src/pow_z.c] Fixed bug bug20110320, that occurs in extremely reduced
22412	exponent range (more precisely, if 1 is out of range, i.e. emin > 1).
22413
22414	[tests/tpow.c] Added testcase bug20110320.
22415
22416	[tests/tgeneric.c] Added debug information.
22417
224182011-03-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22419
22420	[cfarm.sh] shell script to test MPFR on the GCC Compile Farm
22421
224222011-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22423
22424	[digamma.c] fixed compiler warning (ISO C90 forbids mixed declarations and code)
22425
224262011-03-17  Vincent Lefèvre  <vincent@vinc17.net>
22427
22428	[NEWS] Added a note about the fix in the mpfr_subnormalize
22429	implementation, in case users would think the old behavior
22430	was chosen on purpose.
22431
22432	Completed r7575 (Get rid of deprecated register_printf_function
22433	function in logging system): there was a remaining old MPFR_LOG_FUNC
22434	in "src/div_ui.c". Now, the MPFR source no longer contains '%#R'.
22435
22436	[src/mul_2si.c] Removed trailing whitespace.
22437
22438	[doc/README.dev] Fixed variable name from r7575.
22439
224402011-03-17  Philippe Théveny  <philippe.theveny@laposte.net>
22441
22442	Get rid of deprecated register_printf_function function in logging system.
22443
224442011-03-15  Vincent Lefèvre  <vincent@vinc17.net>
22445
22446	[src/erfc.c] Fixed a problem (incorrect flags or possible crash) in
22447	extremely reduced exponent range. Support the case where mpfr_prec_t
22448	is larger than a long.
22449
22450	[tests/terf.c] Added some tests of the flags (no failure in them,
22451	thanks to the mpfr_cmp_si (x, -27282) in erfc.c, for 1b).
22452
22453	[tests/tgeneric.c] In failure messages, output the name of the
22454	tested function. This is useful for programs that have generic
22455	tests for several functions, such as terf.
22456
22457	[tests/terf.c] Added a testcase showing a failure due to bad flags
22458	in a reduced exponent range.
22459
224602011-03-14  Vincent Lefèvre  <vincent@vinc17.net>
22461
22462	[tests/terf.c] Changed mp_exp_t (r7564) to mpfr_exp_t.
22463
224642011-03-11  Vincent Lefèvre  <vincent@vinc17.net>
22465
22466	[src/erfc.c] Added an assertion for future platforms (e.g. with 128-bit
22467	exponent type).
22468
22469	[src/erfc.c] Fixed r7564 (comparison must really be signed).
22470
22471	[tests/terf.c] Fixed test added in r7564 for 32-bit machines.
22472
224732011-03-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22474
22475	[erfc.c] fixed bug found by Pascal Molin: when we increase the exponent range
22476		 on 64-bit machines, erfc() wrongly underflows for x >= 27282
22477
224782011-03-10  Vincent Lefèvre  <vincent@vinc17.net>
22479
22480	[src/jn.c] Fixed the MPFR_FAST_COMPUTE_IF_SMALL_INPUT test for n == 1
22481	in underflow cases.
22482
22483	[src/jn.c] No need for mpfr_clear_flags (already done in MPFR_BLOCK).
22484
22485	[src/jn.c] Check that no intermediate underflow or overflow occurs.
22486
22487	[doc/algorithms.tex] For the Bessel function, say that the algorithm
22488	assumes that no underflows/overflows occur.
22489
224902011-03-09  Vincent Lefèvre  <vincent@vinc17.net>
22491
22492	[src/gamma.c] More robust code (for the change in r7551).
22493
22494	Removed trailing spaces.
22495
22496	[tests/tgeneric.c] Added feature for MPFR_SUSPICIOUS_OVERFLOW to avoid
22497	spurious failures by defining TGENERIC_SO_TEST to some well-chosen test.
22498
22499	[tests/tgamma.c] Added a comment about MPFR_SUSPICIOUS_OVERFLOW.
22500
22501	[src/gamma.c] Fixed the special code for tiny values.
22502
22503	[tests/tgamma.c] Corrected a test and added other tests for tiny x > 0.
22504
22505	[tests/tgamma.c] Updated a comment.
22506
22507	[tests/tgamma.c] Restore emax.
22508
22509	[tests/tgamma.c] Do not initialize x twice.
22510
22511	[tests/tgamma.c] Do not run the same test twice if emin = MPFR_EMIN_MIN.
22512
22513	[tests/tgamma.c] Added tests for tiny values, showing bugs in special
22514	code for such values. Run tgamma with at least an argument to get all
22515	the failures.
22516
225172011-03-07  Vincent Lefèvre  <vincent@vinc17.net>
22518
22519	[src/jn.c] Fixed mpfr_jn_k0() internal function:
22520	  * The prototype was incorrect: one needs "unsigned long" for n
22521	    (actually absn), in case absn is equal to - LONG_MIN.
22522	  * The formula and the code were incorrect for n = 0, due to the
22523	    division by n; it was yielding k0 = ULONG_MAX. The case n = 0
22524	    is now handled separately.
22525	  * Small optimization: division by log(2) -> multiplication by
22526	    1/log(2).
22527
22528	[src/jn.c] Avoid integer overflow in the computation of the initial
22529	working precision. This makes several tests fail, but logging shows
22530	that previous non-failure was due to undefined behavior due to huge
22531	k0 computed by mpfr_jn_k0.
22532
22533	[src/jn.c] Added a comment for mpfrlint.
22534
22535	[tools/mpfrlint] Change of r7515: any mpfr_clear_* can be mentioned.
22536
22537	[src/jn.c] Added comments and fixed a bug.
22538
22539	[src/jn.c] Detect incorrect error analysis (that may have been the goal
22540	of the assertion corrected in r7534, but this wasn't documented). Added
22541	a FIXME comment.
22542
22543	[src/jn.c] Fixed incorrect assertion. It could occur only
22544	in precision >= 2^(1+s/2), where s is the bitsize of a
22545	"long", e.g. p >= 2^17 = 131072 on most 32-bit machines and
22546	p >= 2^33 = 8,589,934,592 on most 64-bit machines. Only some
22547	arguments are affected (|z| between around 2^(s/2) and p/2).
22548
22549	[tests/Makefile.am] Added a comment.
22550
22551	[doc/README.dev] Corrected a typo.
22552
225532011-03-06  Vincent Lefèvre  <vincent@vinc17.net>
22554
22555	[src/jn.c] Improved underflow detection. Still not complete, though.
22556
22557	[src/jn.c] Comments: English usage.
22558
225592011-03-05  Vincent Lefèvre  <vincent@vinc17.net>
22560
22561	[tests/trint.c] mantissa -> significand (standard and correct term).
22562
22563	[tests/trint.c] Do not use snprintf (C99).
22564
225652011-03-04  Vincent Lefèvre  <vincent@vinc17.net>
22566
22567	[tools/mpfrlint] Added a test to check that the snprintf function (C99)
22568	is not used.
22569
225702011-03-04  Olivier Demengeon  <olivier.demengeon@inria.fr>
22571
22572	Previous extended coverage test in trint.c now self generate tests in and compare values
22573
22574	Extend test coverage of mpfr_rint to 100%
22575
225762011-03-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22577
22578	[src/add1sp.c] same as previous commits
22579
22580	[src/sub1sp.c] ibidem (see previous commit log)
22581
22582	[add1.c] ibidem (see previous commit log)
22583
225842011-03-03  Vincent Lefèvre  <vincent@vinc17.net>
22585
22586	[src/add.c,src/sub.c] Split assertions for C90 compilers, to avoid
22587	too long strings generated by #expr. Problem seen with:
22588	  gcc -ansi -pedantic-errors
22589
22590	[src/yn.c] Minor change.
22591
22592	[src/yn.c] Extend the exponent range (code not checked concerning
22593	internal exceptions, such as overflows, underflows and divby0).
22594
22595	[src/agm.c] Added comments (for mpfrlint, in particular).
22596
22597	[tools/mpfrlint] The use of mpfr_overflow_p, etc. is allowed if
22598	mpfr_clear_flags is mentioned (useful for checking purpose at the
22599	end of a function, but this needs an explicit mpfr_clear_flags;
22600	otherwise MPFR_BLOCK should still be used).
22601
22602	[src/agm.c] Completed scaling to avoid intermediate overflow/underflow.
22603
22604	[src/agm.c] Bug fix in error computation: in Ziv's iteration, err kept
22605	its value from the previous iteration instead of being reset to 0.
22606	Consequence: a possible loss of performance in rare cases.
22607
22608	[src/cmp2.c] Removed a useless assertion and updated comments.
22609
226102011-03-02  Vincent Lefèvre  <vincent@vinc17.net>
22611
22612	[src/agm.c] Added a FIXME comment.
22613
22614	[src/agm.c] Updated exception checking (more informative).
22615
22616	[src/agm.c] Check internal exceptions: the error analysis may be
22617	incorrect in case of exception.
22618
22619	[src/agm.c] Implemented scaling to avoid intermediate overflow/underflow
22620	(but the tagm test still fails, due to a rounding error this time).
22621
22622	[tests/tagm.c] Added tests triggering intermediate underflow/overflow.
22623
22624	[tests/tagm.c] Also test the ternary value and the flags.
22625
22626	[tests/tagm.c] Corrected values (using Pari).
22627
22628	[src/agm.c] Extend the exponent range. This doesn't make the algorithm
22629	correct yet, as intermediate underflow or overflow is still possible in
22630	the first multiplication.
22631
226322011-03-01  Olivier Demengeon  <olivier.demengeon@inria.fr>
22633
22634	Change some functions called in test tsin_cos.c
22635
22636	Extend coverage test of mpfr_sincos_fast to 100%
22637
22638	Extend coverage test of mpfr_custom_get_kind to 100%
22639
226402011-02-25  Vincent Lefèvre  <vincent@vinc17.net>
22641
22642	[src/jn.c] Fix: support reduced exponent ranges for small inputs.
22643
22644	[src/gamma.c] Added a comment about an overflow case.
22645
22646	[tests/tgamma.c] Added tests in maximum exponent range.
22647
22648	[src/gamma.c] Fixed flags when x if very small (protect from
22649	intermediate overflow).
22650
22651	[tests/tgamma.c] Corrected test number.
22652
22653	[tests/tgamma.c] Added a test in maximum exponent range.
22654
22655	[src/gamma.c] Fixed inexact flag when x if very small.
22656
22657	[tests/tgamma.c] Added tests.
22658
22659	[src/gamma.c] Fixed a bug occurring in reduced exponent range.
22660	[tests/tgamma.c] Added corresponding testcase.
22661
22662	[src/lngamma.c] Do not use MPFR_EXP after a mpfr_clear (even though
22663	this currently work).
22664
22665	[src/rem1.c] Fixed mpfr_rem1 in reduced exponent range (the function
22666	is actually simplified).
22667
226682011-02-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22669
22670	[TODO] added an item
22671
226722011-02-25  Vincent Lefèvre  <vincent@vinc17.net>
22673
22674	Fixed mpfr_div_2si, mpfr_div_2ui and mpfr_mul_2si in some corner cases.
22675
22676	[tests/tmul_2exp.c] Small correction in output (in case of failure).
22677
226782011-02-21  Vincent Lefèvre  <vincent@vinc17.net>
22679
22680	[tests/tset_q.c] Corrections in function prototypes.
22681
226822011-02-21  Olivier Demengeon  <olivier.demengeon@inria.fr>
22683
22684	Remove the use of mpfr_get_default_prec in some coverage test
22685
22686	Add some coverage test in tests/tset_q.c
22687
22688	fixed coding convention of 2 tests functions
22689
226902011-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22691
22692	[tget_d.c] fixed some compiler errors and warnings
22693
226942011-02-18  Vincent Lefèvre  <vincent@vinc17.net>
22695
22696	[tests/tversion.c] Split a printf into several ones to reduce the
22697	string length below the 509-byte limit from C90 (useful to avoid
22698	an error when testing with gcc -ansi -pedantic-errors).
22699
227002011-02-18  Olivier Demengeon  <olivier.demengeon@inria.fr>
22701
22702	Extend test coverage to 100% on mpfr_z_sub and mpfr_mul_q function
22703
22704	Extend test coverage on mpfr_get_d_2exp function
22705
227062011-02-18  Vincent Lefèvre  <vincent@vinc17.net>
22707
22708	[tests/tmul_2exp.c] Also test mpfr_div_2si and mpfr_div_2ui (same bug).
22709
22710	[tests/tmul_2exp.c] Added a testcase showing a bug in mpfr_mul_2si
22711	(possible intermediate overflow).
22712
22713	[src/zeta.c] Support zeta(eps) with |eps| very small or 0
22714	in extremely reduced exponent range.
22715
22716	[src/atan2.c] Fix: the overflow or underflow flag was set in the case
22717	x = power of two and y/x overflows or underflows.
22718
22719	[src/atan2.c] Support special cases in extremely reduced exponent range.
22720
22721	[src/acos.c] Support acos(0) in extremely reduced exponent range.
22722
227232011-02-17  Vincent Lefèvre  <vincent@vinc17.net>
22724
22725	[tests/tgeneric.c] Added generic tests in a reduced exponent range.
22726	This currently makes 10 tests fail on a 64-bit machine.
22727
22728	[tests/mpfr-test.h] Defined a SAME_VAL(X,Y) macro to test whether two
22729	floating-point data have the same value, seen as an element of the set
22730	of the floating-point data (Level 2 in the IEEE 754-2008 standard).
22731
22732	[src/mpfr-impl.h] Defined a MPFR_EXP_FSPEC macro containing the
22733	format specifier for mpfr_eexp_t, to output an exponent with:
22734	  printf ("%" MPFR_EXP_FSPEC "d", (mpfr_eexp_t) exponent);
22735
22736	[tests/tgeneric.c] Reformat.
22737
22738	[doc/README.dev] Added a warning about whitespace in the mpfr.texi file.
22739
22740	[doc/mpfr.texi] Fixed spacing for the mpfr.info file.
22741
227422011-02-10  Vincent Lefèvre  <vincent@vinc17.net>
22743
22744	[tools/mpfrlint] Detect the use of mp_ptr and mp_srcptr.
22745
22746	[doc/mpfr.texi] Updated the month.
22747
22748	[src/gmp_op.c] Added a blank line.
22749
227502011-02-09  Olivier Demengeon  <olivier.demengeon@inria.fr>
22751
22752	Added mpfr_z_sub (function/test/doc)
22753
227542011-02-09  Vincent Lefèvre  <vincent@vinc17.net>
22755
22756	Added new types mpfr_limb_ptr and mpfr_limb_srcptr to src/mpfr-impl.h,
22757	and replaced mp_ptr and mp_srcptr (GMP internals) by these 2 new types
22758	respectively.
22759
227602011-02-08  Vincent Lefèvre  <vincent@vinc17.net>
22761
22762	[src/mpfr-impl.h] Fix for Intel's compiler (ICC) under MS Windows:
22763	MPFR was incorrectly assuming that ICC had some extensions like
22764	under GNU/Linux. This made the MPFR compilation fail.
22765
22766	[src/mpfr-impl.h] Corrected a typo in a comment.
22767
227682011-02-05  Vincent Lefèvre  <vincent@vinc17.net>
22769
22770	[INSTALL] Removed incorrect note.
22771
227722011-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22773
22774	[INSTALL] added hint for VS2008 and Intel compiler v11.1
22775
227762011-02-03  Vincent Lefèvre  <vincent@vinc17.net>
22777
22778	[configure.ac,Makefile.am] Clean-up and depend on GNU Automake 1.11.
22779
227802011-01-31  Vincent Lefèvre  <vincent@vinc17.net>
22781
22782	[src/zeta_ui.c,tests/tzeta_ui.c] Patch from Patrick Pélissier for
22783	the division-by-zero support in mpfr_zeta_ui (and test):
22784
227852011-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22786
22787	[src/zeta.c] patch from Patrick Pelissier (problem with division by zero flag)
22788
227892011-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22790
22791	[TODO] removed division by zero item (done)
22792
22793	[src/get_str.c,TODO] updated comments, mpfr_get_str already supports base <= 62
22794
227952011-01-27  Vincent Lefèvre  <vincent@vinc17.net>
22796
22797	[tests/tj0.c] GMP_RNDN → MPFR_RNDN.
22798
22799	[src/subnormal.c] Set the inexact and underflow flags when needed. Fixes
22800	  https://gforge.inria.fr/tracker/index.php?func=detail&aid=7958&group_id=136&atid=622
22801	[tests/tsubnormal.c] Improved the tests, in particular for the flags.
22802	[doc/mpfr.texi] Documented the change.
22803
22804	[doc/mpfr.texi] Corrected order in Section "Changed Functions".
22805
22806	[tests/tj0.c] Added case for which s = 0 occurs in mpfr_jn.
22807
22808	[src/jn.c] Added a log message.
22809
22810	[src/div_ui.c] Added logging support.
22811
228122011-01-26  Vincent Lefèvre  <vincent@vinc17.net>
22813
22814	[tests/tsum.c] Fixed bug in test (do not set the exponent on 0).
22815
22816	[tests/tsum.c] Formatting.
22817
22818	[tests/tsum.c] Fixed get_prec_max and added some checks.
22819	Current failure: tab[1] is not valid.
22820
22821	[src/sum.c] Added an assertion.
22822
22823	[src/check.c] Replaced MPFR_IS_PURE_FP by !MPFR_IS_SINGULAR, the
22824	former macro now has a check for validity in debug mode (r7426).
22825	The goal of mpfr_check is to test the validity, so that we don't
22826	want this check here.
22827
22828	[src/mpfr-impl.h] In the MPFR_IS_PURE_FP test, if positive, check that
22829	the number is normalized (debug mode only). This makes 2 tests fail:
22830	tcheck and tsum. Note: with logging active, tsum was already triggering
22831	an assertion failure in mpfr_get_str (via mpfr_add).
22832
22833	[src/add.c] Formatting.
22834
22835	[src/li2.c] Fixed crash in mpfr_li2 when logging is used.
22836
228372011-01-24  Vincent Lefèvre  <vincent@vinc17.net>
22838
22839	[src/jn.c] Corrected a comment.
22840
228412011-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22842
22843	[src/jn.c] added notes for correctness of the algorithm used
22844
228452011-01-24  Vincent Lefèvre  <vincent@vinc17.net>
22846
22847	[src/jn.c] C90 compatibility fix (empty macro arguments are undefined).
22848
22849	[src/jn.c] Added an assaertion against a potential overflow (which
22850	probably never occurs, but this should be proved...).
22851
228522011-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22853
22854	[src/jn.c] patch from Patrick Pelissier
22855
228562011-01-23  Vincent Lefèvre  <vincent@vinc17.net>
22857
22858	[src/jn.c] Forgot to change an MPFR_EXP to MPFR_GET_EXP.
22859
22860	[src/jn.c] Replaced MPFR_EXP by MPFR_GET_EXP when the value should
22861	really be an exponent. Removed incorrect and useless casts. Added
22862	an assertion to protect against potentially incorrect code.
22863
22864	[src/jn.c] Patch from Patrick Pélissier (mpfr_check_range and other).
22865
228662011-01-21  Vincent Lefèvre  <vincent@vinc17.net>
22867
22868	[tools/mpfrlint] Update the check for mpfr_printf-like functions
22869	in the tests.
22870
22871	[tests/tprintf.c] Consistency.
22872
22873	[tests/tgrandom.c] Added a comment.
22874
22875	[tests/tgrandom.c] Protection of the mpfr_printf by #ifdef HAVE_STDARG.
22876
228772011-01-20  Vincent Lefèvre  <vincent@vinc17.net>
22878
22879	[src/eint.c] Added a FIXME.
22880
228812011-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22882
22883	[src/out_raw.c] added pointer to discussion
22884
228852011-01-17  Vincent Lefèvre  <vincent@vinc17.net>
22886
22887	[tests/tvalist.c] Correction for C++ compilers.
22888
22889	[doc/mpfr.texi] Added division-by-zero exception.
22890
22891	[doc/README.dev] Updated "To make a release".
22892
22893	[NEWS] Update for MPFR 3.1.x.
22894
22895	[src/grandom.c] Reformat.
22896
22897	[tools/mpfrlint] tests/tvalist.c can use mpfr_printf-like functions.
22898
22899	[tests/tgrandom.c] Added a FIXME: do not use mpfr_printf in the tests.
22900
22901	[tests] Untabified and removed trailing spaces.
22902
22903	[src/grandom.c,src/mpfr.h] Untabified and removed trailing spaces.
22904
22905	[src/frexp.c] Corrections.
22906
22907	[src/out_raw.c] Untabified.
22908
22909	[src/out_raw.c] Fixed some bugs on the incomplete code.
22910
22911	[src/atan2.c] MPFR_EXP -> MPFR_GET_EXP and reformat.
22912
22913	[src/ai.c] Removed trailing spaces.
22914
22915	[doc/mpfr.texi] Updated the month.
22916
22917	Copyright notice update: added 2011 with
22918	  perl -pi -e 's/2010 Free Software/2010, 2011 Free Software/' **/*(^/)
22919	under zsh, reverting the ChangeLog file and the m4 and tools/mbench
22920	directories.
22921
22922	[doc/README.dev] Updated year in example.
22923
22924	tests: updated svn:ignore property.
22925
22926	[src/pow.c] Added an assertion.
22927
22928	[tests/td_div.c] Consistency change.
22929
22930	[tests/tdiv_d.c] Updated test of special cases.
22931
22932	[src/log1p.c] Added support for the division-by-zero exception.
22933
22934	[tests/tlog1p.c] Test the flags for special cases.
22935
22936	Added support for the division-by-zero exception in functions
22937	mpfr_atanh, mpfr_cot, mpfr_coth, mpfr_csc, mpfr_csch,
22938	mpfr_digamma, mpfr_eint, mpfr_gamma, mpfr_lgamma, mpfr_lngamma,
22939	mpfr_log, mpfr_log2 and mpfr_log10.
22940
229412011-01-16  Laurent Fousse  <laurent@komite.net>
22942
22943	[tests/tgrandom.c] Add missing cast for malloc.
22944
229452011-01-16  Vincent Lefèvre  <vincent@vinc17.net>
22946
22947	[src/yn.c] Added support for the division-by-zero exception.
22948
22949	[src/rec_sqrt.c] Added support for the division-by-zero exception.
22950
22951	[src/pow_si.c] Improved robustness (in case of future changes).
22952
22953	Added support for the division-by-zero exception for the power functions
22954	(with additional tests). (Corrected patch from Patrick.)
22955
229562011-01-16  Laurent Fousse  <laurent@komite.net>
22957
22958	Rename mpfr_urandom_gaussian to mpfr_grandom.
22959
229602011-01-15  Vincent Lefèvre  <vincent@vinc17.net>
22961
22962	[doc/mpfr.texi] Corrections for mpfr_urandom_gaussian.
22963
22964	[tests/turandom_gaussian.c] Fixed C99-only code.
22965
229662011-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
22967
22968	[src/frexp.c,tests/tfrexp.c] added new function mpfr_frexp
22969	[src/urandom_gaussian.c] fixed copyright line
22970	[src/out_raw.c] started writing code (work in progress, please continue if
22971			you are interested)
22972
229732011-01-14  Laurent Fousse  <laurent@komite.net>
22974
22975	[doc/mpfr.texi] Document urandom_gaussian.
22976
22977	[tests/Makefile.am] Include turandom_gaussian in tests.
22978
22979	[tests/turandom_gaussian.c] Add tests for urandom_gaussian.
22980
229812011-01-14  Vincent Lefèvre  <vincent@vinc17.net>
22982
22983	[tests/tdiv.c] Added consistency tests between mpfr_div, mpfr_ui_div,
22984	mpfr_si_div, mpfr_div_ui and mpfr_div_si (check the ternary value,
22985	the flags and the result of the division).
22986
22987	[src/ui_div.c] Fixed prototype formatting.
22988	[src/div_ui.c] Fixed prototype formatting. Set division-by-zero flag.
22989
229902011-01-14  Laurent Fousse  <laurent@komite.net>
22991
22992	[src/urandom_gaussian.c] Fix x -> xp, and scaling.
22993
22994	[src/urandom_gaussian.c] Pick the signs of the outputs at random.
22995
22996	[src/urandom_gaussian.c] Fix precision of temporary results.
22997
22998	[src/urandom_gaussian.c] Add missing inits/clears.
22999
23000	[src/mpfr.h] Declare urandom_gaussian.
23001
23002	[src/Makefile.am] Add urandom_gaussian.c to the sources.
23003
23004	[src/urandom_gaussian] Start work on gaussian distribution.
23005
230062011-01-14  Vincent Lefèvre  <vincent@vinc17.net>
23007
23008	[tests/tgeneric.c] Fixed code introduced in r7346, again.
23009
230102011-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23011
23012	[sin_cos.c] moved macros to mpfr-impl.h, added README
23013
23014	[sin_cos.c] new inexact flags computed by mpfr_check_range were lost
23015
230162011-01-14  Vincent Lefèvre  <vincent@vinc17.net>
23017
23018	[tests/tgeneric.c] Fixed code introduced in r7346.
23019
23020	[tools/coverage] Update from Patrick.
23021
23022	[src/ui_div.c] Set the division-by-zero flag.
23023	[tests/tui_div.c] Updated and improved the test of special cases.
23024	Note: tpow_all currently fails since the support of the division-by-zero
23025	exception is not complete yet.
23026
23027	[src/div.c] Set the division-by-zero flag.
23028	[tests/tdiv.c, tests/td_div.c] Updated and improved the test of special
23029	cases.
23030
23031	[tests/tset.c] Tests didn't fail in case of error from PRINT_ERROR_IF.
23032
23033	[tests/tgeneric.c] Added comments.
23034
23035	[tests/tgeneric.c] Check the division-by-zero flag.
23036
23037	Improved tests/texceptions.c (mpfr_clear_*, mpfr_set_*).
23038
23039	Added support for the division-by-zero exception.
23040
23041	[src/exceptions.c] Fixed bad #undef's (with currently no consequences).
23042
230432011-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23044
23045	[TODO] removed item about inlined mpfr_neg: Patrick Pelissier tried it but it
23046	       does not speed things
23047
230482011-01-14  Vincent Lefèvre  <vincent@vinc17.net>
23049
23050	[src/mpfr-impl.h] Removed an obsolete comment.
23051
230522011-01-13  Laurent Fousse  <laurent@komite.net>
23053
23054	[src/atan2.c] "Exact" division can be inexact because of the exponent range.
23055
230562011-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23057
23058	[out_raw.c] exchanged bits for precision and exponent
23059
23060	[out_raw.c] first proposal for external format
23061
230622011-01-13  Vincent Lefèvre  <vincent@vinc17.net>
23063
23064	[src/mpfr-impl.h] MPFR_IS_POWER_OF_2: added parentheses.
23065
230662011-01-13  Laurent Fousse  <laurent@komite.net>
23067
23068	Add tests for special case of atan2 (x power of 2).
23069
23070	Add special case for atan2(x,y) when x is a power of 2.
23071
23072	New macro MPFR_IS_POWER_OF_2.
23073
230742011-01-13  Vincent Lefèvre  <vincent@vinc17.net>
23075
23076	TLS support is now detected automatically. If TLS is supported, MPFR is
23077	built as thread safe by default. To disable TLS explicitly, configure
23078	MPFR with --disable-thread-safe.
23079
230802011-01-13  Laurent Fousse  <laurent@komite.net>
23081
23082	Add tests for mpfr_ai special case x=0.
23083
23084	Add special case for x=0 in mpfr_ai1.
23085
230862011-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23087
23088	[algorithms.tex] extended Lemma 2 to the case of terms of the form 1/(1+delta)
23089
230902011-01-13  Vincent Lefèvre  <vincent@vinc17.net>
23091
23092	tests: return 77 for skipped tests (see GNU Automake manual).
23093
23094	tests: updated svn:ignore property.
23095
23096	TODO update after r7317 and r7320.
23097
23098	Support multiple inclusions of mpfr.h w.r.t. <stdio.h> and <stdarg.h>
23099	(MPFR_USE_FILE and/or MPFR_USE_VA_LIST are needed until GMP is fixed).
23100	Added test "tests/tvalist.c".
23101
231022011-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23103
23104	[src/mpfr-longlong.h] idem as previous commit for other 2 FIXME's
23105
23106	[mpfr-longlong.h] resolved one FIXME, by adding a new one :-)
23107
231082011-01-13  Vincent Lefèvre  <vincent@vinc17.net>
23109
23110	Support multiple inclusions of mpfr.h w.r.t. <stdint.h> / <inttypes.h>.
23111
231122011-01-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23113
23114	another patch from Patrick Pelissier to test get_ld (with export of data used)
23115
23116	patch from Patrick Pelissier to use clock_getime instead of rdtsc
23117	(use "make rt" instead of "make")
23118	References:
23119	https://stackoverflow.com/questions/3388134/rdtsc-accuracy-across-cpu-cores
23120	https://en.wikipedia.org/wiki/Time_Stamp_Counter
23121
231222010-12-25  Vincent Lefèvre  <vincent@vinc17.net>
23123
23124	[src/get_ld.c] Updated a comment about the last change.
23125
23126	[src/get_ld.c] Minor performance improvement.
23127
231282010-12-19  Vincent Lefèvre  <vincent@vinc17.net>
23129
23130	[tools/mbench/Makefile] Update due to source reorganization (r7087):
23131	patch from Patrick Pelissier.
23132
231332010-12-17  Vincent Lefèvre  <vincent@vinc17.net>
23134
23135	[TODO] Update (exp-int branch, internal macro).
23136
23137	[src/sin.c] Fixed failure in debug mode (missing MPFR_IS_ZERO test).
23138
23139	[src/rec_sqrt.c] Improved comment.
23140
23141	Added exp-int branch from r7304, where mpfr_exp_t is defined as an
23142	int instead of mp_exp_t. This is for testing only for usual 64-bit
23143	machines (e.g. x86_64 GNU/Linux), where mpfr_exp_t and mpfr_prec_t
23144	are now on 32 bits instead of 64 bits. Many tests currently fail
23145	for unknown reasons.
23146	TODO: find the cause of these failures, starting with the low level
23147	functions (since they can affect higher level ones).
23148
231492010-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23150
23151	[rec_sqrt.c] put back some information lost in commit 7302
23152
231532010-12-17  Vincent Lefèvre  <vincent@vinc17.net>
23154
23155	[src/cmp2.c] Corrected a comment.
23156
23157	Replaced some MPFR_EXP by MPFR_GET_EXP.
23158
23159	[src/rec_sqrt.c] Removed a variable that was used only once.
23160
23161	[src/mpfr.h] Changed comment for mpfrlint.
23162
23163	Added MPFR_TMP_LIMBS_ALLOC macro and updated the source to use it.
23164	tools/mpfrlint: check its use instead of MPFR_TMP_ALLOC.
23165
23166	[src/sum.c] Improved readability.
23167
23168	[src/mpfr-impl.h] Formatting.
23169
231702010-12-14  Vincent Lefèvre  <vincent@vinc17.net>
23171
23172	[TODO] Added year on a date (the item was added on 2007-07-28 in r4707).
23173
231742010-12-13  Vincent Lefèvre  <vincent@vinc17.net>
23175
23176	Added configure.lineno (generated by configure) to the svn:ignore
23177	property of the src directory.
23178
231792010-12-12  Vincent Lefèvre  <vincent@vinc17.net>
23180
23181	[NEWS] Update concerning the --with-gmp-build configure option.
23182
23183	[INSTALL] Corrected a typo from r7293.
23184
23185	Updated INSTALL file after the recent changes in configure.ac concerning
23186	the --with-gmp-build configure option.
23187
23188	[configure.ac] With --with-gmp-build, do not duplicate the include
23189	search paths if the GMP source and build directories are the same.
23190
23191	[configure.ac] Fixed another bug in r7289. This new version now seems
23192	to work with GMP's srcdir pointing to a relative directory or to an
23193	absolute one.
23194
23195	[configure.ac] Fixed bug in r7289.
23196
23197	[configure.ac] Corrected Patrick Pelissier's patch (not tested).
23198
231992010-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23200
23201	[configure.ac] patch from Patrick Pelissier to solve the problem with
23202		       --with-gmp-build when the GMP build directory and the GMP
23203		       source directory differ
23204
232052010-12-12  Vincent Lefèvre  <vincent@vinc17.net>
23206
23207	[tests/Makefile.am] tversion is also run at the end (after a discussion
23208	with Patrick and Paul).
23209
23210	[configure.ac] Fixed two problems with --with-gmp-build:
23211	  * "grep -w" isn't POSIX (an error shouldn't matter with recent GMP
23212	    versions, as CFLAGS and CC would then be retrieved from gmp.h).
23213	  * "sed" was used instead of "$SED".
23214
232152010-12-07  Vincent Lefèvre  <vincent@vinc17.net>
23216
23217	[INSTALL] Added a section "If 'gmp.h' and 'libgmp' do not match".
23218
23219	[configure.ac] Improved warning message in case of unmatched 'gmp.h'
23220	and 'libgmp'.
23221
23222	[INSTALL] Update concerning "configure".
23223
232242010-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23225
23226	[NEWS] fixed news for 3.0.0
23227
232282010-12-03  Vincent Lefèvre  <vincent@vinc17.net>
23229
23230	[tests/tversion.c] Now fail if the versions of gmp.h and libgmp do not
23231	match (error message improved); previously, the warning could remain
23232	unnoticed, in particular with automatic installations.
23233
232342010-11-30  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23235
23236	Added metaMPFR in the tools directory of MPFR.
23237
232382010-11-29  Vincent Lefèvre  <vincent@vinc17.net>
23239
23240	[src/mpfr.h] Defined MPFR_DEPRECATED to mark MPFR functions, types
23241	or variables as deprecated.
23242
232432010-11-25  Vincent Lefèvre  <vincent@vinc17.net>
23244
23245	[tests/tui_pow.c] Updated a comment.
23246
232472010-11-23  Vincent Lefèvre  <vincent@vinc17.net>
23248
23249	[tools/mpfrlint] Support BSD sed.
23250
232512010-11-19  Vincent Lefèvre  <vincent@vinc17.net>
23252
23253	[tools/mpfrlint] Detect the use of __mpfr_struct structure members
23254	in .c files.
23255
23256	[src/min_prec.c] Replaced x->_mpfr_d by MPFR_MANT(x).
23257
232582010-11-18  Vincent Lefèvre  <vincent@vinc17.net>
23259
23260	[src/mpfr-impl.h] Commented out the declaration of mpfr_round_raw_3
23261	(since this function is no longer defined).
23262
23263	[src/min_prec.c] Major simplification of mpfr_min_prec by using
23264	mpn_scan1 (suggestion by Andreas Enge).
23265
232662010-11-15  Vincent Lefèvre  <vincent@vinc17.net>
23267
23268	[src/mpfr-impl.h] Added a comment about mpn_sqr_n.
23269
232702010-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23271
23272	[algorithms.tex] replaced reference to Graillat05 by earlier one (Higham02)
23273
232742010-11-12  Vincent Lefèvre  <vincent@vinc17.net>
23275
23276	[tools/nightly-test] Added a comment about the use of -pedantic-errors.
23277
232782010-11-10  Vincent Lefèvre  <vincent@vinc17.net>
23279
23280	[src/sub1.c] Minor simplification.
23281
23282	[tests/tpow.c] Avoid warnings if mpfr_exp_t < long.
23283
232842010-11-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23285
23286	[mul.c] fixed bug introduced in revision 7183, and reported by Brian Gladman
23287		on Windows, where mpfr_exp_t has 32 bits and mp_limb_t has 64 bits
23288
232892010-11-09  Vincent Lefèvre  <vincent@vinc17.net>
23290
23291	[src/mpfr.h] Use only mpfr_* types in __MPFR_EXP_* macro definitions
23292	(should have been done in r7236).
23293
23294	[src/mpfr.h] Changed a "void" into a "mpfr_void" in a macro definition
23295	(should have been done in r7236).
23296
23297	[tests/tset_si.c] Added testcase for problem fixed in r7236.
23298
232992010-11-08  Vincent Lefèvre  <vincent@vinc17.net>
23300
23301	[src/mpfr.h] Removed some useless casts that where added in r7121 and
23302	r7236 (such casts prevented the compiler from emitting diagnostics in
23303	incorrect calls).
23304
23305	[tests/Makefile.am] Added a comment (warning about LOADLIBES).
23306
233072010-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23308
23309	[taway.c] reduced time of the test
23310
233112010-10-25  Vincent Lefèvre  <vincent@vinc17.net>
23312
23313	Mentioned --enable-gmp-internals in INSTALL and NEWS.
23314
233152010-10-24  Vincent Lefèvre  <vincent@vinc17.net>
23316
23317	[tests/taway.c] Added a FIXME (test is too long on old machines).
23318
23319	[acinclude.m4] Corrected comment for PowerPC.
23320
233212010-10-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23322
23323	added tuning parameters for HPPA (on HP-UX machine kindly provided by David
23324	Kirkby)
23325
233262010-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23327
23328	[powerpc32/mparam.h] added more info on processor and operating system used
23329
23330	needed stuff to use src/powerpc32/mparam.h file
23331	(note that long double is IEEE double on PowerPC32)
23332
23333	[powerpc32/mparam.h] param file for powerpc32 (made on PowerPC 604 under AIX)
23334
233352010-10-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23336
23337	[tuneup.c] added cast from time_t to long, after warning under HP-UX:
23338	tuneup.c:1131: warning: format '%ld' expects type 'long int', but argument 3 has type 'time_t'
23339	tuneup.c:1133: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t'
23340	(I don't know if it is because time_t is unsigned, or has a different width)
23341
233422010-10-22  Vincent Lefèvre  <vincent@vinc17.net>
23343
23344	[src/mpfr.h] Added a space.
23345
23346	[src/mpfr.h] Avoid some problems with macro expansion if the user
23347	defines macros with the same name as keywords.
23348	[doc/mpfr.texi] Document the use of macros.
23349
233502010-10-22  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23351
23352	Included the new /arch/mparam.h files into the dist.
23353
233542010-10-20  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23355
23356	Cosmetic change: the constant MPFR_TUNE_CASE is now defined in mparam_h.in.
23357	Hence the files src/some-architecture/mparam.h are now simply obtained by
23358	performing 'make tune' on some architecture and copying the resulting
23359	src/mparam.h to src/some-architecture/mparam.h.
23360
23361	Typo.
23362
23363	Up-to-date thresholds.
23364
233652010-10-20  Vincent Lefèvre  <vincent@vinc17.net>
23366
23367	[tests/tsub.c] mp_prec_t -> mpfr_prec_t
23368
23369	[src/sub1.c] Removed trailing spaces.
23370
233712010-10-19  Vincent Lefèvre  <vincent@vinc17.net>
23372
23373	[tests/*.c] Support the case where mpfr_exp_t is not a long int
23374	(but with such a future extension, one should probably provide
23375	a MPFR_PRIexp macro, similar to what <inttypes.h> does).
23376
23377	[tests/texceptions.c] Added casts, in case mpfr_exp_t is not a long int.
23378
233792010-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23380
23381	[tset_ld.c] replaced hexadecimal long double constants by decimal constants
23382
233832010-10-19  Vincent Lefèvre  <vincent@vinc17.net>
23384
23385	[tests/tset_ld.c] Added a FIXME for r7222 change.
23386
233872010-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23388
23389	[set_ld.c] fixed bug #11300 on bug tracker
23390	[tset_ld.c] added corresponding tests
23391
23392	[algorithms.tex] modified proof of mpfr_sub in accordance with source code
23393
233942010-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23395
23396	this is a tree of all possible cases that can happen for rounding in mpfr_sub
23397	(file sub1.c) for rounding to nearest.
23398
23399	The nodes at depth 1 of the tree correspond to the 3 possible cases before
23400	rounding: (1) sh=0, (2) sh>0 and the low sh bits are 1/2 ulp, (3) sh>0 and
23401	the low sh bits are 0.
23402
23403	The nodes at depth 2 represent the possible subcases for k=0 in the rounding
23404	loop.
23405
23406	The nodes at depth 3 represent the possible subcases for k=1 in the rounding
23407	loop.
23408
234092010-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23410
23411	[src/sub1.c] fixed another remaining issue in case 1d1
23412		     (case sh=0, i.e., the result uses a full number of limbs,
23413		      the first neglected limbs of b and c match,
23414		      and for the next limbs, low(b) > low(c)).
23415		      This case was incorrectly rounded up (add_one_ulp).
23416	[tests/tsub.c] added more test cases
23417
23418	[tgmpop.c] in case of error, print mpz_t in decimal instead of binary
23419
23420	[tuneup.c] increase maximal number of calls to speed_measure from 5 to 30
23421		   (seems to solve problems on gcc15)
23422
234232010-10-18  Vincent Lefèvre  <vincent@vinc17.net>
23424
23425	[tests/tcan_round.c] Removed an incorrect cast, fixing a bug (in the
23426	test) that was producing a failure for GMP_CHECK_RANDOMIZE=1287710095
23427	on 64-bit machines (visible since mpfr_prec_t is now signed).
23428
23429	[src/sub1.c] Removed trailing whitespace.
23430
234312010-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23432
23433	[sub1.c] previous fix was not incorrect (but strangely our tests cases did
23434		 not exhibit that)
23435	[tfma.c] added more test cases from Jakub Jelinek
23436
23437	[sub1.c] fixed bug found by Jakub Jelinek (#11301 on tracker)
23438
234392010-10-18  Vincent Lefèvre  <vincent@vinc17.net>
23440
23441	[doc/mpfr.texi] Updated the month.
23442
23443	[tests/tsub.c] Fixed inex test in bug20101017.
23444
234452010-10-18  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23446
23447	Mention the warning message displayed by gcc when the ABI of gcc and MPFR
23448	differ.
23449
23450	Note: the message does not automatically imply the problem; however, if the
23451	message appears, the ABI somehow differ, so it is worth mentioning it.
23452	Users might look for the message in INSTALL in order to see if their problem is
23453	mentioned.
23454
234552010-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23456
23457	[INSTALL] added "Notes about ABI" section
23458
234592010-10-18  Vincent Lefèvre  <vincent@vinc17.net>
23460
23461	[tests/tsub.c] Updated comment of bug20101017.
23462
23463	[tests/tsub.c] Added testcase for bug found by Jakub Jelinek
23464	(bug 11301 on INRIAGforge).
23465
234662010-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23467
23468	[tuneup.c] print size when speed_measure fails
23469
234702010-10-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23471
23472	[mpfr.texi] added that the 'N' mode rounds ties to even in the mpfr*printf
23473		    functions
23474
234752010-10-15  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23476
23477	Reorganized mparam_h.in in separate files.
23478	Added mpfr_buildopt_tune_case function.
23479
234802010-10-14  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23481
23482	Modified the number of iterations in the loop of mpfr_speed_measure.
23483
234842010-10-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23485
23486	[tuneup.c] new function mpfr_speed_measure, which calls speed_measure() several
23487		   times (currently 30) until there is no failure.
23488		   In case all 30 calls fail, give some hints to the user.
23489
234902010-10-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23491
23492	[tuneup.c] try again when speed_measure returns -1.0 (i.e. fails)
23493	           also check return value of speed_measure in all cases
23494		   (was not done for mulhigh, sqrhigh and divhigh, reported
23495		   by Sylvain Chevillard)
23496
234972010-10-12  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23498
23499	Small indication explaining what is the negative threshold for Ai.
23500
235012010-10-10  Vincent Lefèvre  <vincent@vinc17.net>
23502
23503	[src/mpfr-impl.h] Added MPFR_UEXP macro to check (in debug mode) that
23504	a value is nonnegative before a cast to mpfr_uexp_t.
23505	[src/add1.c] Use the MPFR_UEXP macro to make sure that the avoided
23506	warning doesn't hide a real bug.
23507
235082010-10-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23509
23510	avoid several compiler warnings with g++
23511
23512	[nightly-test] added -Wno-sign-compare for g++, to avoid spurious warnings
23513
23514	[nightly-test] do not use -Wmissing-prototypes for g++
23515
23516	[add1.c] fixed compiler warning (from g++)
23517
235182010-10-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23519
23520	[src/mulders.c] fixed comment
23521
235222010-10-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23523
23524	[sqrt.c,mulders.c] added missing cast (detected by nightly builds with g++)
23525
235262010-10-01  Vincent Lefèvre  <vincent@vinc17.net>
23527
23528	[src/mulders.c] Untabified.
23529
235302010-09-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23531
23532	[src/mulders.c] fixed comments about error analysis in short product,
23533			and improved short division code
23534
235352010-09-30  Vincent Lefèvre  <vincent@vinc17.net>
23536
23537	Removed trailing spaces and untabified several files.
23538
23539	[src/mul.c] Added comments concerning the latest changes about mulhigh.
23540
235412010-09-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23542
23543	[src/mulders.c] removed leftover debug stuff
23544
235452010-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23546
23547	[src/mulders.c] added new function mpfr_divhigh_n() for short division
23548			(not used yet), fixed comments and added error analysis
23549			in mpfr_mulhigh_n() and mpfr_sqrhigh_n()
23550	[src/sqrt.c] fixed ill-placed MPFR_TMP_MARK
23551	[src/mparam_h.in] added default MPFR_DIVHIGH_TAB for mpfr_divhigh_n()
23552	[src/round_p.c] typo
23553	[src/mpfr-impl.h] added prototype for mpfr_divhigh_n
23554	[src/mul.c] added comment, simplified code
23555	[tune/tuneup.c] added tuning for mpfr_divhigh_n(), increased MAX_STEPS to get
23556			a better tuning (will take longer), set tolerance to 1.0
23557
23558	added new option --enable-gmp-internals to use GMP undocumented function
23559	(at user's own risk). So far only mpn_rootrem is used in mpfr_sqrt.
23560
23561	[doc/README.dev] added comment about mpn_rootrem
23562
235632010-09-28  Vincent Lefèvre  <vincent@vinc17.net>
23564
23565	[configure.ac] Added a FIXME note about incorrect use of an internal
23566	GMP symbol (__gmpn_rootrem).
23567
235682010-09-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23569
23570	[src/sqrt.c] followup to previous commit: only compute an extra limb of the
23571		     square root for rounding to nearest (for directed rounding, it
23572		     suffices to know if the remainder is zero or not)
23573
23574	[src/sqrt.c] now uses mpn_rootrem (if available) instead of mpn_sqrtrem since
23575		     mpn_rootrem is faster. Also refactored the code: now compute one
23576		     more limb of the square root when the target precision is a
23577		     multiple of GMP_NUMB_LIMB. This greatly simplifies the code.
23578
23579	[src/sqrt.c] simplified computation of sticky bit
23580
235812010-09-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23582
23583	[mulders.c] fixed typo
23584
235852010-09-27  Vincent Lefèvre  <vincent@vinc17.net>
23586
23587	[src/mulders.c] Replaced MPFR_ASSERTD with constant expression
23588	by MPFR_ASSERTN.
23589
23590	[tools/mpfrlint] Added a test:
23591	Constant checking should use MPFR_ASSERTN, not MPFR_ASSERTD.
23592
235932010-09-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23594
23595	[mulders.c] modified mpfr_sqrhigh_n threshold so that it is > n/2
23596
235972010-09-27  Vincent Lefèvre  <vincent@vinc17.net>
23598
23599	[acinclude.m4] Added a FIXME concerning autoconf 2.68.
23600
236012010-09-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23602
23603	[mulders.c] use mpn_lshift instead of mpn_add_n, and improved the default
23604		    Mulders cutoff k beyond 1024 limbs (extrapolated from the cutoff
23605		    k for n=1023 on Core 2, and checked experimentally it is faster)
23606
236072010-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23608
23609	[tuneup.c] changed lower bound for exp_2 threshold from MPFR_PREC_MIN (2) to
23610		   GMP_NUMB_BITS. Seems to be better (since for p=2 the 2nd routine
23611		   was sometimes already faster).
23612
23613	[mul.c] another changes for Mulders' algorithm in case of a square
23614
236152010-09-24  Vincent Lefèvre  <vincent@vinc17.net>
23616
23617	[src/mul.c] Change in r7166 was incomplete. Fixed suspicious code.
23618
236192010-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23620
23621	[mparam_h.in] updated for 64-bit Core2
23622
23623	now use Mulders' algorithm also for mpfr_sqr, provides nice speed improvement
23624	in all functions that perform squarings
23625
236262010-09-21  Vincent Lefèvre  <vincent@vinc17.net>
23627
23628	[doc/mpfr.texi] API compatibility section: noted that mpfr_urandom
23629	and mpfr_urandomb changed for MPFR 3.1.
23630
236312010-09-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23632
23633	[INSTALL] update about "make tune"
23634
236352010-09-21  Vincent Lefèvre  <vincent@vinc17.net>
23636
23637	[doc] Updated FAQ.html with update-faq.
23638
236392010-09-20  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
23640
23641	Indicated the location of README.dev.
23642
236432010-09-19  Vincent Lefèvre  <vincent@vinc17.net>
23644
23645	[NEWS] Minor update.
23646
236472010-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23648
23649	[NEWS] inform the users that mpfr_add_one_ulp and mpfr_sub_one_ulp will be
23650	       removed
23651
236522010-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23653
23654	[TODO] added efficiency item
23655
236562010-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23657
23658	replaced calls to mpfr_printf by calls to mpfr_dump
23659	(mpfr_printf might not be defined)
23660
23661	[NEWS,doc/mpfr.texi] updated: the GMP random functions do not depend on the
23662			     computer word size
23663
236642010-09-15  Vincent Lefèvre  <vincent@vinc17.net>
23665
23666	[tools/mpfrlint] Check for mpfr_printf-like functions in the tests.
23667
23668	[doc/mpfr.texi] Updated the month.
23669
236702010-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23671
23672	[doc/mpfr.texi] added notes for mpfr_urandom and mpfr_urandomb
23673
23674	[Makefile.am] updated LOADLIBES with reorganization of the sources
23675
23676	[algorithms.tex] added sections for pow_ui and root
23677
23678	[src/urandom.c] now mpfr_urandom also returns identical values on 32-bit and
23679			64-bit machines
23680	[tests/turandom.c] modified corresponding test
23681
23682	replaced mpfr_printf in tests by calls to mpfr_out_str
23683
236842010-09-15  Vincent Lefèvre  <vincent@vinc17.net>
23685
23686	[doc/README.dev] Updated the paragraph added in r7137.
23687
23688	[doc/README.dev] Added a paragraph about the use of system-dependent
23689	functions in the test suite.
23690
23691	Some minor corrections in comments.
23692
23693	[src/printf.c] Typo in a comment.
23694
23695	[src/printf.c] Slight modification of a comment.
23696
236972010-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23698
23699	[urandomb.c] modified to leave the GMP random generator in the same state,
23700		     independent of GMP_NUMB_BITS
23701	[trandom.c] test of the above
23702	[urandom.c] added FIXME's
23703	[turandom.c] check we leave the GMP random generator in the same state,
23704		     independent of GMP_NUMB_BITS. Currently this fails on 64-bit
23705		     computers.
23706
23707	[urandomb.c] added comment + slight change
23708
237092010-09-01  Vincent Lefèvre  <vincent@vinc17.net>
23710
23711	[src/mpfr.h] Added casts to improve robustness in case of undefined
23712	behavior and compiler extensions based on UB (in particular -fwrapv).
23713	MPFR doesn't use such extensions, but these macros will be used by
23714	3rd-party code, where such extensions may be required.
23715
23716	[src/mpfr.h] Updated a comment concerning -Wconversion.
23717
23718	[src/mpfr.h] Added casts to unsigned long in mpfr_cmp_si and mpfr_set_si
23719	macros for GCC, in order to avoid warnings in programs that use MPFR and
23720	are compiled with -Wconversion (suggestion by Andreas Enge); such casts
23721	are OK since if X is a constant expression, then (unsigned long) X is
23722	also a constant expression, so that the optimizations still work.
23723	Reformatted these macros.
23724
23725	[src/mpfr.h] Fixed bug in the mpfr_cmp_ui macro for GCC (also used
23726	by mpfr_cmp_si), when the evaluation of the first argument yields
23727	side effects and the second argument is a constant expression with
23728	the value 0.
23729
23730	[tests/tcmp_ui.c] Added side-effect tests similar to those in tset_si.c,
23731	showing a bug in the mpfr_cmp_ui and mpfr_cmp_si macros.
23732
23733	[tests/tcmp_ui.c] Check mpfr_cmp_ui and mpfr_cmp_si macros against
23734	side effects in the arguments.
23735
23736	[src/mpfr.h] Added a comment about the macros that use
23737	__builtin_constant_p.
23738
237392010-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23740
23741	[tsqrt.c] improved comment, and added test sqrt(+0) == +0
23742
237432010-08-29  Vincent Lefèvre  <vincent@vinc17.net>
23744
23745	[tests/tsqrt.c] Renamed check_nan() to check_singular().
23746
23747	[tests/tsqrt.c] Check that sqrt(-0) has a negative sign.
23748
237492010-08-26  Vincent Lefèvre  <vincent@vinc17.net>
23750
23751	[INSTALL] Replaced "patches" by "allpatches".
23752
237532010-08-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
23754
23755	[configure.ac] fixed typo
23756
237572010-08-23  Vincent Lefèvre  <vincent@vinc17.net>
23758
23759	[src/gmp_op.c] Extend the exponent range in mpfr_cmp_q and mpfr_cmp_f.
23760
23761	[src/gmp_op.c] In mpfr_add_q / mpfr_sub_q, check with MPFR_ASSERTN
23762	that an internal overflow/underflow doesn't occur. In theory, such
23763	an exception is possible, but only if q has a huge numerator or
23764	denominator. This is not supported (note: other problems may occur
23765	first, such as insufficient memory).
23766
23767	[tests/tgmpop.c] Added overflow tests for mpfr_add_q / mpfr_sub_q.
23768
23769	[tests/{mpfr-test.h,tests.c}] Added flags_out function to output flags.
23770
23771	[src/gmp_op.c] Extend the exponent range in mpfr_add_q / mpfr_sub_q
23772	               (overflow/underflow exceptions are not supported yet).
23773	[tests/tgmpop.c] Added corresponding testcases.
23774
237752010-08-19  Vincent Lefèvre  <vincent@vinc17.net>
23776
23777	[src/gmp_op.c] Fixed the Inf +/- Inf cases for mpfr_add_q / mpfr_sub_q.
23778	[tests/tgmpop.c] Added Inf +/- Inf tests.
23779
237802010-08-19  Philippe Théveny  <philippe.theveny@laposte.net>
23781
23782	[tests/tgmpop.c] Fix rounding mode in overflow tests
23783
237842010-08-19  Vincent Lefèvre  <vincent@vinc17.net>
23785
23786	[src/gmp_op.c] The function mpfr_cmp_z could fail in a reduced
23787	exponent range.
23788	[tests/tgmpop.c] Added a corresponding testcase.
23789
23790	[src/gmp_op.c] The functions mpfr_mul_z, mpfr_div_z, mpfr_add_z and
23791	mpfr_sub_z could fail in a reduced exponent range. Fixed.
23792	[tests/tgmpop.c] Added corresponding testcase.
23793
237942010-08-18  Vincent Lefèvre  <vincent@vinc17.net>
23795
23796	[tests/tgmpop.c] Disabled buggy tests.
23797
23798	[src/gmp_op.c] Fixed the intermediate overflow case in mpfr_muldiv_z
23799	(for mpfr_mul_q and mpfr_div_q).
23800
23801	[src/gmp_op.c] Added function mpfr_muldiv_z (currently static -- should
23802	it be in the API?) that computes y = RND(x*n/d), where n and d are mpz
23803	integers. Changed mpfr_mul_q and mpfr_div_q to use this function.
23804	Note: the code of the general case is currently the same as the old
23805	mpfr_mul_q/mpfr_div_q code, thus needs to be fixed.
23806
23807	[tests/tgmpop.c] Replaced GMP_RNDN by MPFR_RNDN.
23808
23809	[tests/tgmpop.c] Added testcase for mpfr_mul_q/mpfr_div_q bug noted
23810	in src/gmp_op.c (due to intermediate overflow).
23811
238122010-08-17  Vincent Lefèvre  <vincent@vinc17.net>
23813
23814	[src/logging.c] Added a comment about register_printf_function.
23815
23816	Added tools/ck-version-info Perl script with the same license as
23817	Makefile.am, to check consistency concerning -version-info and
23818	that the -version-info value is up-to-date.
23819	Updated Makefile.am:
23820	  * In dist-hook, replaced complex sh code by a call to ck-version-info.
23821	  * Distribute ck-version-info (EXTRA_DIST).
23822
23823	Updated svn:ignore properties.
23824
23825	[Makefile.am] Put tools/get_patches.sh back to EXTRA_DIST.
23826
23827	[src/Makefile.am] Fixed -version-info (I forgot to increment CURRENT).
23828
238292010-08-17  Vincent Lefèvre  <vincent@vinc17.net>
23830
23831	Source reorganization. In short:
23832	  * Added directories and moved related files into them:
23833	      - src for the MPFR source files (to build the library).
23834	      - doc for documentation files (except INSTALL, README...).
23835	      - tools for various tools (scripts) and mbench.
23836	      - tune for tuneup-related source files.
23837	      - other for other source files (not distributed in tarballs).
23838	    Existing directories:
23839	      - tests for the source files of the test suite (make check).
23840	      - examples for examples.
23841	      - m4 for m4 files.
23842	  * Renamed configure.in to configure.ac.
23843	  * Added/updated Makefile.am files where needed.
23844	  * Updated acinclude.m4 and configure.ac (AC_CONFIG_FILES line).
23845	  * Updated the documentation (INSTALL, README, doc/README.dev and
23846	    doc/mpfr.texi).
23847	  * Updated NEWS and TODO.
23848	  * Updated the scripts now in tools.
23849
23850	The following script was used:
23851
23852	#!/usr/bin/env zsh
23853	svn mkdir doc other src tools tune
23854	svn mv ${${(M)$(sed -n '/libmpfr_la_SOURCES/,/[^\]$/p' \
23855	         Makefile.am):#*.[ch]}:#get_patches.c} mparam_h.in \
23856	       round_raw_generic.c jyn_asympt.c src
23857	svn mv mbench check_inits_clears coverage get_patches.sh mpfrlint \
23858	  nightly-test update-patchv update-version tools
23859	svn mv bidimensional_sample.c speed.c tuneup.c tune
23860	svn mv *.{c,h} other
23861	svn mv FAQ.html README.dev algorithm* faq.xsl fdl.texi mpfr.texi \
23862	  update-faq doc
23863	svn mv configure.in configure.ac
23864	svn cp Makefile.am src/Makefile.am
23865	svn rm replace_all
23866	[Modifying some files, see above]
23867	svn add doc/Makefile.am
23868	svn add tune/Makefile.am
23869
238702010-08-16  Vincent Lefèvre  <vincent@vinc17.net>
23871
23872	[Makefile.am] Updated -version-info (the interface hasn't really been
23873	changed yet -- though the future bug fix / rewrite of mpfr_mul_q and
23874	mpfr_div_q could be seen as an addition -- but this eases maintenance
23875	and avoids -version-info conflict with the 3.0 branch).
23876
23877	[bidimensional_sample.c] Added copyright notice.
23878
23879	[ai.c] Prototype clean-up.
23880
238812010-08-16  Vincent Lefèvre  <vincent@vinc17.net>
23882
23883	Avoid a compilation failure on OSF/1 (Tru64) 5.1 due to non-C99
23884	conformance though <inttypes.h> is available. In various source
23885	files and m4 files, use the following form only:
23886
23887	#if HAVE_INTTYPES_H
23888	# include <inttypes.h>
23889	#endif
23890	#if HAVE_STDINT_H
23891	# include <stdint.h>
23892	#endif
23893
23894	Updated README.dev to mention this form.
23895
238962010-08-13  Vincent Lefèvre  <vincent@vinc17.net>
23897
23898	[tests] Avoid warning due to -Wunused-but-set-variable (from future
23899	GCC 4.6). Only let the one from tsubnormal.c because it's a TODO.
23900	  * mpf_compat.h: use the variables, that are there for prototype
23901	    checking.
23902	  * tpow.c, tpow_z.c: test the ternary value.
23903	  * tremquo.c: removed inex variables (the bug due to the MPFR value).
23904	  * tset.c: test the ternary value.
23905	  * tset_ld.c: removed the long double variable (it cannot be tested
23906	    in a portable way and the bug was an assertion failure).
23907	  * tzeta_ui.c: removed the inexact variable (not really useful here).
23908
23909	[get_f.c] Avoid warning due to -Wunused-but-set-variable (from
23910	future GCC 4.6).
23911
23912	[gamma.c] Avoid warning due to -Wunused-but-set-variable (from
23913	future GCC 4.6).
23914
23915	[gmp_op.c] Avoid warning due to -Wunused-but-set-variable (from
23916	future GCC 4.6).
23917
23918	[exp_2.c] No longer define qn and sizer, which are no longer used since
23919	r6919. This was detected by gcc-snapshot (4.6.0 prerelease) under Debian
23920	(-Wunused-but-set-variable).
23921
23922	[NEWS] Update.
23923
23924	[ieee_floats.h] Avoid breaking aliasing-rules when _GMP_IEEE_FLOATS is
23925	defined (e.g. with --with-gmp-build), by replacing a struct by a union
23926	like in r6381 for long double.
23927
23928	[configure.in] Removed useless slash.
23929
239302010-08-12  Vincent Lefèvre  <vincent@vinc17.net>
23931
23932	[NEWS] Prepare for new version 3.1.0.
23933
23934	[README.dev] Removed obsolete paragraph about the old prepare script.
23935
23936	[update-version] Detect errors.
23937
23938	Updated FAQ.html with update-faq.
23939
23940	[faq.xsl] Do not copy XML comments.
23941
23942	Updated FAQ.html with update-faq.
23943
23944	[README.dev] INRIAGforge -> INRIAGForge.
23945
23946	[README] Update:
23947	  * InriaGforge -> INRIAGForge (official typography).
23948	  * Updated URL of the Subversion FAQ (now on apache.org).
23949	  * README.dev provided via SVN only.
23950	  * Removed the old note about the old CVS repository.
23951
239522010-08-11  Vincent Lefèvre  <vincent@vinc17.net>
23953
23954	[gmp_op.c] mpfr_mul_q and mpfr_div_q are still buggy; added comment.
23955
23956	[tests/tgmpop.c] Added missing "static".
23957
239582010-08-11  Philippe Théveny  <philippe.theveny@laposte.net>
23959
23960	gmp_op.c: Fix ternary value returned by mpfr_mul_q and mpfr_div_q in overflow cases.
23961
239622010-08-04  Vincent Lefèvre  <vincent@vinc17.net>
23963
23964	README.dev: updated "To make a release" (test of FP division by 0).
23965
23966	Support implementations where the floating-point division by 0 fails.
23967	  * acinclude.m4: added a test to check whether the FP division by 0
23968	    fails, and define MPFR_ERRDIVZERO in such a case.
23969	  * tests/tests.c: if MPFR_TEST_DIVBYZERO is defined, test whether
23970	    there has been a floating-point division by 0 (FE_DIVBYZERO or
23971	    FE_INVALID exception).
23972	  * tests/tgeneric.c: if MPFR_ERRDIVZERO is defined, disable the
23973	    huge and tiny cases.
23974	  * tests/t*_{flt,d,ld}.c: if MPFR_ERRDIVZERO is defined, disable
23975	    tests involving NaN and infinities.
23976
23977	[README.dev] Update about the compilers.
23978
23979	[README.dev] Mention clang.
23980
23981	[get_sj.c] Fixed bug found by John Regehr:
23982	https://gforge.inria.fr/tracker/index.php?func=detail&aid=10839&group_id=136&atid=619
23983	Note: the problem was an undefined behavior that could occur when
23984	sizeof(mp_limb_t) < sizeof(intmax_t) and |x| was small enough,
23985	because a right shift was >= the type width. However as the shifted
23986	value was 0, most platforms should not be affected by this bug. This
23987	problem was detected with clang -fcatch-undefined-ansic-behavior.
23988
23989	[tests/tget_sj.c] Added tests of 1 and -1.
23990
23991	[get_sj.c] Added assertions concerning
23992	https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=10839&group_id=136
23993
23994	[configure.in] When logging is enabled, remove the possible -pedantic
23995	from GMP's CFLAGS to avoid warnings about C conformance.
23996
23997	[mpfr-impl.h] Reverse-merged changeset r7042. The code was not
23998	incorrect: the warning is due to the -pedantic from GMP's CFLAGS.
23999
24000	[mpfr-impl.h] Correction to avoid GCC warnings
24001	  warning: invalid storage class for function 'x_f'
24002	  warning: invalid storage class for function '__mpfr_log_cleanup'
24003	when building MPFR with logging support.
24004
240052010-08-03  Vincent Lefèvre  <vincent@vinc17.net>
24006
24007	[mpfrlint] Correction for the future MPFR source structure.
24008
24009	[mpfrlint] Execute check_inits_clears.
24010
24011	[check_inits_clears] Correction.
24012
240132010-08-02  Vincent Lefèvre  <vincent@vinc17.net>
24014
24015	[Makefile.am] Moved ieee_floats.h from EXTRA_DIST to libmpfr_la_SOURCES.
24016
24017	[Makefile.am] Clean-up: removed gen_inverse.h from EXTRA_DIST because
24018	it is already in libmpfr_la_SOURCES.
24019
240202010-08-01  Vincent Lefèvre  <vincent@vinc17.net>
24021
24022	[mparam_h.in] Removed the comment about the dependency bug.
24023	(svn merge -r7032:7031 mparam_h.in)
24024
24025	[Makefile.am] Added "BUILT_SOURCES = mparam.h", fixing bug
24026	https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
24027
24028	[mparam_h.in] Added a comment concerning the bug in the mparam.h dependency rule:
24029	https://gforge.inria.fr/tracker/index.php?func=detail&aid=10810&group_id=136&atid=619
24030
24031	[mparam_h.in] Enable C mode for Emacs.
24032
24033	[mparam_h.in] Deleted trailing whitespace.
24034
24035	[mparam_h.in] Bug fix: added a newline at the end of the file.
24036
240372010-07-30  Vincent Lefèvre  <vincent@vinc17.net>
24038
24039	Replaced
24040	  Contributed by the Arenaire and Cacao projects
24041	by
24042	  Contributed by the Arenaire and Caramel projects
24043
24044	[AUTHORS] Updated a sentence.
24045
24046	Added configure.lineno (generated by configure) to svn:ignore property.
24047
240482010-07-29  Vincent Lefèvre  <vincent@vinc17.net>
24049
24050	[README.dev] For announces, changed mpfr into mpfr-announce.
24051
240522010-07-26  Vincent Lefèvre  <vincent@vinc17.net>
24053
24054	[ai.c] Replaced mp_exp_t by mpfr_exp_t.
24055
240562010-07-25  Vincent Lefèvre  <vincent@vinc17.net>
24057
24058	[ai.c] Fixed several bugs in mpfr_ai.
24059
240602010-07-20  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24061
24062	Updated bidimensional_sample to take into account the fact the mpfr_ai1 and mpfr_ai2 are now statically defined.
24063
24064	mpfr_ai1 and mpfr_ai2 are now declared static. Only mpfr_ai is global.
24065
24066	Forgot a declaration in the previous commit.
24067
240682010-07-20  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24069
24070	Added automatic tuning of mpfr_ai.
24071
24072	More precisely:
24073	* removed ai2.c: both implementations are now in the same file ai.c
24074	* added thresholds and automatic choice of the method to use in function of the thresholds.
24075	* added procedures for tuning functions like ai into tuneup.c
24076	* added a tuning procedure into tuneup.c
24077
240782010-07-19  Vincent Lefèvre  <vincent@vinc17.net>
24079
24080	[tests/tget_flt.c] Fixed printf strings (missing backslash).
24081
240822010-07-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24083
24084	[tget_flt.c] completed previous commit
24085
24086	[tget_flt.c] print more information in case a test fails
24087
240882010-07-09  Vincent Lefèvre  <vincent@vinc17.net>
24089
24090	[gamma.c] Added an assert concerning the mpfr_exp_t size.
24091
24092	[tests/tgamma.c] Use mpfr_set_str instead of mpfr_set_d.
24093
24094	[exp_2.c] Untabified.
24095
240962010-07-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24097
24098	[gamma.c] fixed bug reported on MPFR list:
24099		  https://sympa.inria.fr/sympa/arc/mpfr/2010-07/msg00001.html
24100		  In the underflow detection:
24101		  * we took log instead of log2
24102		  * at the end, we added the wrong terms
24103
241042010-07-01  Vincent Lefèvre  <vincent@vinc17.net>
24105
24106	[mpfr-impl.h] Added a comment concerning the 'noreturn' property.
24107
241082010-06-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24109
24110	[exp_2.c] added 3 more bits to initial working precision. On a sample of 20247
24111		  tests by Sylvain Chevillard with precisions in [50, 100], the number
24112		  of Ziv's failures decreased from 1184 to 144, which is less than 1%
24113		  (to reduce to zero, we would have to increase the number of extra
24114		  bits from 8 to 17).
24115
241162010-06-28  Vincent Lefèvre  <vincent@vinc17.net>
24117
24118	[round_prec.c] Applied a patch from Patrick Pélissier (with
24119	slightly modified comments) to make mpfr_prec_round compatible
24120	with non-mpfr_init allocation methods when no realloc is needed.
24121
241222010-06-25  Vincent Lefèvre  <vincent@vinc17.net>
24123
24124	[acinclude.m4] Use AC_FUNC_ALLOCA to have HAVE_ALLOCA_H defined
24125	when available. This problem was introduced when AC_FUNC_ALLOCA
24126	was removed from configure.in in r6765. Note: building MPFR with
24127	--with-gmp-build is not affected as GMP's config.h is used.
24128
24129	[mpfr-gmp.h] Reverted incorrect changeset r6987 (see code about alloca).
24130
241312010-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24132
24133	[mpfr-gmp.h] include alloca.h
24134
24135	[mpfr.texi] added comment about config.log
24136
241372010-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24138
24139	[exp_2.c] fixed problem reported by Sylvain Chevillard for large x, where the
24140		  cancelled bits were counted twice
24141
241422010-06-24  Vincent Lefèvre  <vincent@vinc17.net>
24143
24144	[tests/tfprintf.c] Cosmetic improvement suggested by Denis Excoffier.
24145
241462010-06-23  Vincent Lefèvre  <vincent@vinc17.net>
24147
24148	[README.dev] Minor change to match a filename on the website.
24149
24150	[tests/tout_str.c] Fixed bug introduced in r6976: changed size_t into
24151	unsigned int for printf (the size of unsigned int is sufficient here).
24152
241532010-06-22  Vincent Lefèvre  <vincent@vinc17.net>
24154
24155	[out_str.c] Handle the output errors.
24156
24157	[out_str.c] Handle output error in the special cases of mpfr_out_str
24158	(and use MPFR_IS_SINGULAR like in the other functions).
24159
241602010-06-22  Philippe Théveny  <philippe.theveny@laposte.net>
24161
24162	Fix wrong return value of mpfr_out_str on special values.
24163
241642010-06-22  Vincent Lefèvre  <vincent@vinc17.net>
24165
24166	Updated version to 3.1.0-dev.
24167
24168	[README.dev] Added a paragraph about the precision, rounding mode and
24169	exponent types.
24170
24171	In mpfrlint, detect the use of mp_exp_t and mp_prec_t.
24172	Fixed the files that were generating warnings.
24173
241742010-06-22  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24175
24176	I forgot to replace one occurrence of isqrt.
24177
24178	Use of __gmpfr_isqrt instead of my own isqrt wrapper.
24179
24180	Added a tool for nicely displaying which method is the best in function of x
24181	and prec when several method can be used for evaluating a given function f in x
24182	at precision prec.
24183
241842010-06-21  Vincent Lefèvre  <vincent@vinc17.net>
24185
24186	[Makefile.am] Fixed dist-hook for -dev versions (I assumed that ||
24187	and && were right associative, while they are left associative).
24188	Thanks to Laurent Rineau for noticing this problem.
24189
241902010-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24191
24192	[exp_2.c] fixed inefficiency for large x: the initial precision was too small,
24193		  which had the effect that the first Ziv iteration did fail with
24194		  non-negligible probability (problem reported by Sylvain Chevillard).
24195		  Also in case of 2 iterations or more the K variable was corrupted.
24196	Note (2012-03-03): huge inefficiency has been noticed when evaluating
24197	mpfr_exp on an argument close to log(2^n) in RNDU:
24198	  https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00000.html
24199	One has an obvious hard-to-round case, meaning that several iterations
24200	are needed and that K is corrupted. This changeset fixes this bug.
24201
242022010-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24203
24204	[INSTALL] added note about problem with MSVC runtime (seems to be fixed)
24205
24206	[Makefile] alternate patch to r6959 from Patrick Pelissier
24207
24208	[INSTALL] comments from Vincent Lefevre
24209
24210	[mbench] fixes to make mbench work again (tested with GCC 4.4.3)
24211
24212	[INSTALL] updated notes on Windows (contributed by Brian Gladman)
24213
242142010-06-10  Vincent Lefèvre  <vincent@vinc17.net>
24215
24216	[tests/Makefile.am] Reordered check_PROGRAMS.
24217
24218	[README.dev] Untabified.
24219
24220	[BUGS] Update.
24221
242222010-06-09  Vincent Lefèvre  <vincent@vinc17.net>
24223
24224	[INSTALL] Added a note on Mac OS X; thanks to FX Coudert and Fumihiro
24225	Chiba: https://sympa.inria.fr/sympa/arc/mpfr/2010-06/msg00011.html
24226
242272010-06-08  Vincent Lefèvre  <vincent@vinc17.net>
24228
24229	[INSTALL] Update concerning CC/CFLAGS and the --with-gmp-build option.
24230
242312010-06-07  Vincent Lefèvre  <vincent@vinc17.net>
24232
24233	[NEWS] Added an item about the --with-gmp-build configure option and
24234	the use of GMP's internal header files.
24235
242362010-06-06  Vincent Lefèvre  <vincent@vinc17.net>
24237
24238	[exp_2.c] Reverted incorrect optimization patch r6922 (added a comment).
24239	There were failures on 32-bit machines.
24240
24241	[mpfr-impl.h] Added log messages for the MPFR_GROUP_* macros.
24242
24243	[mpfrlint] Detect incorrect use of MPFR_LOG_MSG.
24244
24245	[ai2.c] Fixed build failure with --enable-logging, due to incorrect
24246	MPFR_LOG_MSG usage (see README.dev).
24247
24248	README.dev: updated "To make a release".
24249
24250	[ai.c] Fixed build failure with --enable-logging, due to incorrect
24251	MPFR_LOG_MSG usage (see README.dev).
24252
242532010-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24254
24255	[exp_2.c] speed improvement using MPFR_GROUP_* (from Patrick Pelissier):
24256	Pass 69
24257	 mpfr_add:          63 /   102.97 /   126
24258	 mpfr_exp:         430 / 11861.26 / 46588
24259	Was before we removed MY_MPZ_INIT:
24260	Pass 50
24261	 mpfr_add:          63 /   103.09 /   126
24262	 mpfr_exp:         430 / 10911.86 / 44215
24263
242642010-06-04  Vincent Lefèvre  <vincent@vinc17.net>
24265
24266	[exp_2.c] Removed useless and possibly incorrect cast
24267	(in case -q doesn't necessarily fit in an int).
24268
242692010-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24270
24271	[exp_2.c] got rid of MY_INIT_MPZ, small slowdown, but code should be more
24272		  robust. Below are timings from Patrick Pelissier with mbench:
24273	mpz_init:
24274	Pass 78
24275	 mpfr_add:          63 /   102.86 /   126
24276	 mpfr_exp:         441 / 12067.81 / 47355
24277
24278	MY_MPZ_INIT
24279	Pass 50
24280	 mpfr_add:          63 /   103.09 /   126
24281	 mpfr_exp:         430 / 10911.86 / 44215
24282
24283	Prec=53 bits (core 2 duo 64 bits)
24284
242852010-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24286
24287	[exp_2.c] fixed problem reported by Sylvain Chevillard with following code
24288		  and MPFR_EXP_2_THRESHOLD=36 (valgrind complains).
24289		  It was due to the fact that GMP might allocate extra limbs,
24290		  see https://gmplib.org/list-archives/gmp-devel/2010-June/001577.html.
24291		  The fix is not optimal in the sense that GMP does not give a bound
24292		  on the allocated memory, thus we can only guess.
24293
24294	#include "mpfr.h"
24295	int main(void) {
24296	  mpfr_t x,w;
24297
24298	  mpfr_init2(x, 37);
24299	  mpfr_init2(w, 37);
24300	  mpfr_set_str(x, "-1.000001100100100001111110110101010001p+20", 2, MPFR_RNDN);
24301	  mpfr_exp (w, x, MPFR_RNDN);
24302
24303	  mpfr_clear (w);
24304	  mpfr_clear (x);
24305
24306	  return 0;
24307	}
24308
243092010-06-03  Vincent Lefèvre  <vincent@vinc17.net>
24310
24311	[acinclude.m4] Math library check: removed rule specific to HP-UX
24312	(only -lM was tested while this library may not be available; so,
24313	let's use the default rule as -lm works).
24314
24315	[mpfr.texi] Arenaire -> Arénaire.
24316
243172010-06-02  Vincent Lefèvre  <vincent@vinc17.net>
24318
24319	[NEWS] 3.0 -> 3.0.0.
24320
24321	[NEWS] Added test coverage for MPFR 3.0.0.
24322
243232010-05-31  Vincent Lefèvre  <vincent@vinc17.net>
24324
24325	[INSTALL] Added missing blank lines (consistency).
24326
24327	[tests/tset_z_exp.c] Fixed type in a printf.
24328
243292010-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24330
24331	[INSTALL] added instructions for "make tune"
24332
24333	[README.dev] completed missing instructions for "make tune"
24334
24335	[tset_z_exp.c] fixed two FIXME
24336
243372010-05-31  Vincent Lefèvre  <vincent@vinc17.net>
24338
24339	[tests/tset_z_exp.c] Added 2 FIXME in the test.
24340
24341	[tests/tset_z_exp.c] Removed testcase bug20100531 (this was a bug in
24342	the test, which didn't detect overflow cases due to too large random
24343	exponent).
24344
24345	[tests/tset_z_exp.c] Added testcase bug20100531.
24346
24347	[mpfr.texi, NEWS] Update related to r6879: "Made defined the previously
24348	undefined cases of mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
24349	mpfr_get_z and mpfr_get_z_2exp. In such cases, the erange flag is set.".
24350
24351	[mpfr.texi] Corrected mpfr_atan2 range (added in r6831).
24352
243532010-05-28  Vincent Lefèvre  <vincent@vinc17.net>
24354
24355	[mpfr.texi] Made an example fit on 80 columns for the info manual.
24356
24357	[mpfr.texi] Changed some @math into @var in the mpfr_fmod description
24358	(for consistency).
24359
24360	[mpfr.texi] Corrected a paragraph.
24361
24362	[mpfr.texi] Added an example to get the MPFR version (and at the same
24363	time, check whether MPFR is already installed).
24364
24365	Added examples/version.c (and updated Makefile.am).
24366
24367	[mpfr.texi] Correction (English usage).
24368
24369	[Makefile.am] Improved dist-hook rule.
24370
243712010-05-27  Philippe Théveny  <philippe.theveny@laposte.net>
24372
24373	Fix typo.
24374
243752010-05-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24376
24377	[TODO] removed one item, added one
24378
24379	[mpfr.texi] removed FIXME (resolved: Philippe confirmed that gmp_printf does
24380		    not work with mpf2mpfr.h)
24381
243822010-05-25  Vincent Lefèvre  <vincent@vinc17.net>
24383
24384	Made defined the previously undefined cases of mpfr_get_si, mpfr_get_ui,
24385	mpfr_get_sj, mpfr_get_uj, mpfr_get_z and mpfr_get_z_2exp. In such cases,
24386	the erange flag is set.
24387
243882010-05-25  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24389
24390	* 80 columns.
24391
24392	do ... while(0) style for macros.
24393
243942010-05-25  Vincent Lefèvre  <vincent@vinc17.net>
24395
24396	[NEWS] Correction.
24397
24398	[mpfr.texi] Minor changes.
24399
24400	[INSTALL] Reverted incorrect changeset r6870.
24401
24402	[mpfr.texi] Added a comment about non-ASCII characters.
24403
244042010-05-25  Philippe Théveny  <philippe.theveny@laposte.net>
24405
24406	More explicit documentation on the use of specifiers in printf function.
24407
244082010-05-25  Vincent Lefèvre  <vincent@vinc17.net>
24409
24410	[mpfr.texi] Encoding correction for ±.
24411
24412	[NEWS, mpfr.texi] mpfr_custom_get_mantissa was renamed to
24413	mpfr_custom_get_significand.
24414
24415	[tests/tstckintc.c] Changed mpfr_custom_get_mantissa into
24416	mpfr_custom_get_significand (but mpfr_custom_get_mantissa
24417	was still working thanks to the #define).
24418
24419	[mpfr.h, stack_interface.c] Changed mpfr_custom_get_mantissa into
24420	mpfr_custom_get_significand (r6862 was incomplete).
24421
24422	[mpfr.h] <stdint.h> support: also test _STDINT (for MS Visual Studio).
24423	Thanks to Brian Gladman for the information.
24424
24425	[buildopt.c] Missing #include "mpfr-impl.h" for cygwin builds.
24426	[mpfrlint] Detect such errors (mpfr-impl.h may be needed because it
24427	  includes config.h when there is one).
24428
244292010-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24430
24431	[mpfr.texi] more changes after answers by Vincent to my questions
24432
244332010-05-24  Vincent Lefèvre  <vincent@vinc17.net>
24434
24435	[NEWS] Reformat / fixed typography.
24436
24437	[sub1sp.c] Fixed a problem that appeared after mpfr_prec_t has been
24438	made signed. It was visible on PowerPC (tested on Linux 32 bits and
24439	on Mac OS X 32 & 64 bits), but could potentially affect any platform
24440	as a negative shift count was generated. As the faulty expressions
24441	were in a MPFR_ASSERTD, the failure could occur only when assertion
24442	checking had been enabled.
24443
244442010-05-22  Vincent Lefèvre  <vincent@vinc17.net>
24445
24446	[README.dev] Removed trailing spaces.
24447
24448	[README.dev] Added information about intmax_t and corresponding macros.
24449
24450	Detect when the intmax_t type is available but INTMAX_MAX doesn't work
24451	(e.g. with gcc -ansi -pedantic-errors in 32-bit mode under GNU/Linux).
24452	New macros MPFR_UINTMAX_MAX, MPFR_INTMAX_MAX and MPFR_INTMAX_MIN are
24453	defined and used internally instead of UINTMAX_MAX, INTMAX_MAX and
24454	INTMAX_MIN. If these C99 macros work, then the MPFR_* macros use them,
24455	otherwise MPFR uses its own definitions.
24456
24457	mpfr_div_ui8 and mpfr_mul_ui5 didn't have to be exported.
24458
24459	[ai2.c] GNU style.
24460
24461	[ai2.c] Style correction (necessary for ansi2knr, if still useful).
24462
24463	[ai.c, ai2.c] Untabified / removed trailing spaces.
24464
24465	[ai.c] GNU style.
24466
24467	[mpfr.texi] Corrected the paragraph about whether MPFR is installed.
24468
24469	[mpfr.texi] Corrections and answers to PZ comments from r6831.
24470	The document encoding is now UTF-8.
24471
244722010-05-21  Vincent Lefèvre  <vincent@vinc17.net>
24473
24474	[mpfr.texi] n-char-sequence was changed into n-char-sequence-opt
24475	in r6132, but I forgot to update all the occurrences.
24476
244772010-05-21  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24478
24479	* Removed double precision numbers.
24480	* Handle +0 and -0 the same way.
24481	* Use MPFR_GET_EXP in ai2.c
24482
244832010-05-20  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24484
24485	* Corrected a bug when x=0 (MPFR_GET_EXP requires to assert that x!=0).
24486
24487	Corrected some warnings.
24488
24489	Corrected an error that prevented the doc from compiling.
24490
244912010-05-20  Vincent Lefèvre  <vincent@vinc17.net>
24492
24493	mpfr.texi: corrections.
24494
244952010-05-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24496
24497	[mpfr.texi] explain why mpfr_sum uses an array of pointers to mpfr_t
24498
24499	[mpfr.texi] changes after a complete reading of the documentation.
24500		    There are some issues left that I don't know how to solve,
24501		    they are marked with @c PZ in mpfr.texi.
24502
245032010-05-19  Vincent Lefèvre  <vincent@vinc17.net>
24504
24505	[mpfr.texi, NEWS] Noted that the mpfr_ai implementation is incomplete
24506	and experimental.
24507
24508	[ai.c] Use MPFR_IS_SINGULAR. Added a FIXME comment for Ai(0).
24509
24510	Type corrections for C++ compilers (in particular, mpfr_rnd_t vs int).
24511
24512	[ai.c] Fixed possible problem in reduced exponent range.
24513
24514	Removed trailing spaces.
24515
245162010-05-19  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24517
24518	* Removed some warnings.
24519	* More conform to GNU coding standards.
24520
245212010-05-19  Vincent Lefèvre  <vincent@vinc17.net>
24522
24523	Removed obsolete patch-aclocal-icc and updated README.dev (about
24524	"To make a release").
24525
24526	[Makefile.am] Added a comment concerning -version-info and MPFR 3.0.x.
24527
24528	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
24529
24530	[mpfr.texi] Preliminary interfaces are no longer preliminary.
24531
24532	[mpfr.texi] API Compatibility: mention the detection of the availability
24533	of intmax_t with C++ compilers.
24534
24535	[mpfr.texi] signness -> signedness (thanks to Philippe).
24536
24537	[mpfr.texi] Missing @code.
24538
24539	[mpfr.texi] Corrected C terminology (table -> array).
24540
245412010-05-18  Vincent Lefèvre  <vincent@vinc17.net>
24542
24543	[mpfr.texi, NEWS] Mention that mpfr_ai is a new function in MPFR 3.0.
24544
24545	Removed obsolete prepare script (autoreconf does the same thing).
24546
245472010-05-18  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24548
24549	* I added a new implementation of Airy Ai. This implementation uses Smith's
24550	algorithm.
24551	Currently, it is provided as a separate implementation mpfr_ai2.
24552
24553	* Please note that both mpfr_ai and mpfr_ai2 need to efficiently evaluate
24554	Gamma(1/3) and Gamma(2/3). This is provided by functions in the file
24555	gammaonethird.c
24556
24557	* There is no test file for mpfr_ai2 since it should quickly disappear behind
24558	a single implementation using the best of mpfr_ai and mpfr_ai2.
24559	However, if necessary, a test file can be obtained by copying tai.c and
24560	replacing mpfr_ai by mpfr_ai2 everywhere.
24561
24562	* I do not know if gammaonethird.c will remain like that in the future. Should
24563	we make this implementation available as a public MPFR function? In this case,
24564	I have to write a wrapper for providing a correctly rounded implementation.
24565	Moreover, it contains functions that could be interesting for the
24566	implementation of other functions (the functions mpfr_div_ui*). Maybe, it
24567	could be worth providing a file specially for this purpose.
24568
245692010-05-18  Vincent Lefèvre  <vincent@vinc17.net>
24570
24571	[NEWS] Added release name.
24572
24573	[NEWS] Updated "Changes from versions 2.3.* to version 2.4.0"
24574	from MPFR 2.4.2.
24575
24576	[mpfr.texi] Completed Section 6.1 "Type and Macro Changes".
24577
24578	[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
24579
24580	[mpfr.texi] Missing space.
24581
24582	[mpfr.texi] Updated Section 6.1 "Type and Macro Changes".
24583
24584	[NEWS] A bit less ambiguous...
24585
24586	[NEWS] More details for mp_rnd_t/mpfr_rnd_t, like mp_prec_t/mpfr_prec_t.
24587
245882010-05-17  Vincent Lefèvre  <vincent@vinc17.net>
24589
24590	Added "API Compatibility" section to the MPFR manual.
24591	TODO: Section 6.1 "Type and Macro Changes".
24592
24593	[NEWS] mpfr_strtofr now accepts bases from 37 to 62 (r5965).
24594
245952010-05-10  Vincent Lefèvre  <vincent@vinc17.net>
24596
24597	INSTALL: updated section about MS Windows.
24598
24599	INSTALL: updated section about MS Windows.
24600
246012010-05-08  Vincent Lefèvre  <vincent@vinc17.net>
24602
24603	[tests/tests.c] Fixed code when _MPFR_PREC_FORMAT != 3.
24604
246052010-05-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24606
24607	[tests/tests.c] fixed compiler warning (found by nightly tests)
24608
246092010-05-07  Vincent Lefèvre  <vincent@vinc17.net>
24610
24611	New exponent type mpfr_exp_t for MPFR (replacing GMP's mp_exp_t).
24612
24613	[README.dev] Updated a paragraph concerning signed and unsigned types.
24614
24615	Changed the precision type mpfr_prec_t from an unsigned integer type
24616	into the corresponding signed integer type, in order to avoid problems
24617	due to the usual arithmetic conversions when mixing mpfr_prec_t and
24618	mp_exp_t in an expression.
24619	* NEWS: mentioned this change.
24620	* mpfr-impl.h: removed MPFR_INTPREC_MAX (which wasn't used) and updated
24621	  the MPFR_UNSIGNED_MINUS_MODULO(S,A) macro, which assumed that A was
24622	  unsigned; this macro now works even when A is signed.
24623	* mpfr.h: added mpfr_uprec_t; updated mpfr_prec_t and MPFR_PREC_MAX.
24624	* tests/tcheck.c: disabled a test on MPFR_PREC_MAX+1 with MPFR >= 3
24625	  (this test doesn't work with a signed mpfr_prec_t and isn't needed).
24626	Note: all tests pass under GNU Linux x86 and x86_64.
24627
24628	[tests/tcheck.c] Forgot to remove a printf (added during testing).
24629
24630	[tests/tcheck.c] Support signed mpfr_prec_t (avoid integer overflow).
24631
24632	[tests/mpf_compat.h] Fixed prototype of function main.
24633
24634	[mpfr.h] Added a comment concerning the definition of MPFR_PREC_MAX.
24635
246362010-05-06  Vincent Lefèvre  <vincent@vinc17.net>
24637
24638	print_rnd_mode.c: added an assertion so that we do not forget to update
24639	this file after a new rounding mode is added.
24640
246412010-05-03  Vincent Lefèvre  <vincent@vinc17.net>
24642
24643	[mpfr.texi] Added a paragraph about multiple inclusions of mpfr.h and/or
24644	gmp.h header files.
24645
246462010-05-03  Philippe Théveny  <philippe.theveny@laposte.net>
24647
24648	Update documentation for mpfr_print_rnd_mode.
24649
246502010-05-03  Vincent Lefèvre  <vincent@vinc17.net>
24651
24652	To avoid breaking the ABI when faithful rounding gets implemented, added
24653	MPFR_RNDF to the mpfr_rnd_t enum type now, and removed MPFR_RND_MAX from
24654	the enumeration (it is now defined as a macro in mpfr-impl.h).
24655
24656	fits_* (signed version): corrections and optimizations.
24657
24658	[fits_uintmax.c, fits_u.h] Some casts could be incorrect in the case
24659	mp_exp_t > mpfr_prec_t. Set prec to the int type since in practice,
24660	prec will be small enough to fit in an int. The fact that prec is now
24661	signed allows us to remove a useless test (also note that prec should
24662	be computed at compile time, so that this should be at least as fast).
24663
24664	[fits_uintmax.c, fits_u.h] Comments: doesn't -> don't
24665
24666	mpfr.texi: updated the month.
24667
246682010-05-03  Philippe Théveny  <philippe.theveny@laposte.net>
24669
24670	Add specifier 'Y' for the rounding away from zero mode in printf-like functions.
24671
246722010-04-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24673
24674	[mpfr.texi] removed obsolete mpfr_round_prec
24675
246762010-04-30  Vincent Lefèvre  <vincent@vinc17.net>
24677
24678	[fits_intmax.c,fits_s.h] Added FIXME comments.
24679
24680	Optimized fits_u.h and made fits_uintmax.c like fits_u.h for the
24681	special numbers.
24682
24683	Optimized mpfr_fits_uintmax_p.
24684
24685	Changed mp_prec_t into mpfr_prec_t.
24686
246872010-04-19  Vincent Lefèvre  <vincent@vinc17.net>
24688
24689	[configure.in] r6765 introduced non-POSIX syntax. Fixed.
24690
246912010-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24692
24693	[configure.in] check for GMP internal files only with --with-gmp-build
24694
246952010-04-12  Vincent Lefèvre  <vincent@vinc17.net>
24696
24697	[NEWS] New function mpfr_regular_p (was added in r6417, 2009-09-14).
24698
246992010-04-07  Vincent Lefèvre  <vincent@vinc17.net>
24700
24701	[mpfr-gmp.h] Fixed alloca prototype (bug detected by tcc 0.9.25
24702	under Linux/x86_64).
24703
247042010-03-24  Vincent Lefèvre  <vincent@vinc17.net>
24705
24706	[mpfr.texi] Improved/corrected the documentation of functions
24707	mpfr_lgamma, mpfr_digamma, mpfr_j0/j1/jn, mpfr_y0/y1/yn, mpfr_agm,
24708	mpfr_hypot and mpfr_min_prec.
24709
24710	[mpfr.texi] Removed a "currently" that is no longer needed.
24711
24712	[mpfr.texi] Updated description of mpfr_atan2, now that IEEE 754-2008
24713	has been published and follows the same conventions as C99 for atan2.
24714
24715	[mpfr.texi] Updated description of mpfr_pow, now that IEEE 754-2008
24716	has been published and follows the same conventions as C99 for pow.
24717	(IEEE 754-2008 doesn't currently specify pow(±inf,non-zero), but
24718	I've suggested a correction for the errata page.)
24719
247202010-03-23  Vincent Lefèvre  <vincent@vinc17.net>
24721
24722	[mpfr.texi] Improved documentation of mpfr_print_rnd_mode (from a
24723	suggestion by Chris Saunders).
24724
247252010-03-22  Vincent Lefèvre  <vincent@vinc17.net>
24726
24727	[mpfr.texi] Various corrections and other improvements.
24728
24729	[mpfr.texi] Improved the documentation of mpfr_dim too.
24730
247312010-03-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24732
24733	[mpfr.texi] improved the documentation of mpfr_rec_sqrt and mpfr_cbrt
24734		    (thanks Vincent)
24735
24736	[mpfr.texi] improved documentation of mpfr_sqrt and mpfr_sqrt_ui
24737
247382010-03-21  Vincent Lefèvre  <vincent@vinc17.net>
24739
24740	[mpfr.h] Added a comment about integer overflows in macros.
24741
247422010-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24743
24744	[tai.c] enable first test of check_large, and reduced total time
24745
247462010-03-19  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24747
24748	Added a mention about the current limitation of mpfr_ai in mpfr.texi.
24749
24750	Removed check of ai.c for large arguments. I added in algorithms.tex a
24751	mention about the fact that mpfr_ai is currently not made for large
24752	arguments.
24753
24754	* Corrected problems regarding the GNU recommendations for formatting source code.
24755
247562010-03-18  Vincent Lefèvre  <vincent@vinc17.net>
24757
24758	tests: added tai to the svn:ignore property.
24759
247602010-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24761
24762	[tai.c] reduce the maximal exponents in test_generic()
24763		also reduce the number of random tests to decrease the test time
24764
247652010-03-18  Vincent Lefèvre  <vincent@vinc17.net>
24766
24767	README.dev: in the tests, use mpfr_equal_p rather than mpfr_cmp.
24768
247692010-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24770
24771	[tai.c] replace mpfr_cmp by mpfr_equal_p
24772
247732010-03-18  Vincent Lefèvre  <vincent@vinc17.net>
24774
24775	tests/tset_z_exp.c untabified.
24776
24777	mpfr.texi: removed trailing whitespace.
24778
24779	mpfr.texi: updated the month.
24780
24781	Untabified AUTHORS (consistency).
24782
247832010-03-18  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24784
24785	* Corrected problems regarding the GNU recommendations for formatting source code.
24786	* Corrected the date of the copyright.
24787
247882010-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24789
24790	[tai.c] added test for large inputs
24791
24792	[AUTHORS] added Sylvain Chevillard
24793
247942010-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24795
24796	[mpfr.texi] added Sylvain as contributor
24797
247982010-03-17  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>
24799
24800	* Added function mpfr_ai. The implementation is the most naive: it evaluates
24801	  the series step by step until it can stop.
24802	  A special strategy is used to detect possible problems when Ai(x) is very
24803	  close to 0.
24804
24805	* Updated algorithms.tex with the technical description of the implementation
24806	  of mpfr_ai.
24807
24808	* Added algorithm2e.sty and algorithm2e-compatibility.sty (necessary to
24809	  compile algorithms.tex now).
24810
24811	* Updated mpfr.texi to let it know this new function.
24812
24813	* Added a basic test file for mpfr_ai. I will add other test cases later.
24814
24815	* Added a small HOWTO to README.dev about how to add a new test file for new
24816	  functions.
24817
248182010-03-11  Vincent Lefèvre  <vincent@vinc17.net>
24819
24820	GMP_RNDx -> MPFR_RNDx
24821
248222010-03-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24823
24824	[tstrtofr.c] added test for 1.23e, cf
24825		     https://gmplib.org/list-archives/gmp-bugs/2010-March/001898.html
24826
248272010-03-11  Vincent Lefèvre  <vincent@vinc17.net>
24828
24829	[tests/tsqrt.c] Add the test -1 <= x/sqrt(x^2) <= 1, which corresponds
24830	to -1 <= x/sqrt(x^2+y^2) <= 1 with y = 0. I don't think the test with
24831	random y is still necessary, though, since even a bad sqrt accuracy
24832	would not be detected.
24833
248342010-03-10  Vincent Lefèvre  <vincent@vinc17.net>
24835
24836	[tests/tsqrt.c] Added a comment about the x/sqrt(x^2+y^2) test.
24837
248382010-03-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24839
24840	[tsqrt.c] fixed bug reported by Sam Rawlins
24841	          (https://sympa.inria.fr/sympa/arc/mpfr/2010-03/msg00007.html)
24842	Note: this "bug" had no noticeable consequences; this can just be seen
24843	as an incomplete test.
24844
248452010-02-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24846
24847	[NEWS] added item
24848
248492010-02-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24850
24851	[acinclude.m4] now also recognize "IEEE double, little endian" long-double
24852		       format (not tested, should happen on ARM)
24853
24854	[acinclude.m4] added recognition of "IEEE double big endian" long double format
24855		       (tested on gcc40.fsffrance.org and gcc53, both PowerPC's)
24856
248572010-02-24  Vincent Lefèvre  <vincent@vinc17.net>
24858
24859	[acinclude.m4] Added test for long double = double-double (GCC/PowerPC).
24860	This test cannot currently be reliable, so we just output a warning.
24861
248622010-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24863
24864	[NEWS] minor grammar fix
24865
24866	[NEWS] be more precise about API compatibility
24867
24868	[mpfr.h] added #define mpfr_get_z_exp mpfr_get_z_2exp for compatibility
24869
248702010-02-23  Vincent Lefèvre  <vincent@vinc17.net>
24871
24872	tests: added tset_z_exp to the svn:ignore property.
24873
248742010-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24875
24876	changed mpfr_get_z_exp -> mpfr_get_z_2exp (old function)
24877	        mpfr_set_z_exp -> mpfr_set_z_2exp (new function)
24878
24879	added new function mpfr_set_z_exp (companion to mpfr_get_z_exp)
24880
248812010-02-18  Vincent Lefèvre  <vincent@vinc17.net>
24882
24883	* Added tests/tstdint.c to test the double inclusion of mpfr.h when only
24884	  the second occurrence needs <stdint.h> (this can happen when one uses
24885	  several libraries that use MPFR under different conditions).
24886	* Added tstdint to the svn:ignore property of "tests".
24887	* TODO: mentions that tstdint should be added to check_PROGRAMS in
24888	  the tests/Makefile.am file once this is fixed.
24889
24890	mpfr.texi: updated Section "Internals".
24891
248922010-02-16  Vincent Lefèvre  <vincent@vinc17.net>
24893
24894	mpfr.texi: updated the month.
24895
24896	mpfr.h: disable the INTMAX_C / UINTMAX_C test with C++ compilers as it
24897	doesn't work well in this case (e.g. possible failure with Boost); see
24898	  https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html
24899	and the whole discussion.
24900	mpfr.texi: update.
24901
249022010-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24903
24904	[configure.in] removed check for C++ and Fortran compiler (comment said to
24905		       remove it for libtool >= 2.0)
24906
249072010-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24908
24909	[TODO] dummy change to check if we still get commit mails
24910
249112010-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24912
24913	[mpfr.texi] added note about mpfr_set_str
24914
249152010-01-25  Vincent Lefèvre  <vincent@vinc17.net>
24916
24917	Simplified get_patches.sh; minor consequence: the trailing space in
24918	the string returned by mpfr_get_patches() when there are patches is
24919	no longer present (this trailing space wasn't desired anyway).
24920
24921	configure.in: updated message for different gmp.h and libgmp versions.
24922	See <https://sympa.inria.fr/sympa/arc/mpfr/2010-01/msg00051.html>.
24923
249242010-01-20  Vincent Lefèvre  <vincent@vinc17.net>
24925
24926	FAQ.html, faq.xsl, README, TODO: slightly changed the copyright notice
24927	to make it consistent with the one of the other files. In short, "and
24928	the GNU General Public License" has been removed, but it was ambiguous
24929	(we did not say which version of the GNU GPL) and useless (for GPLv3)
24930	because the LGPLv3 is compatible with the GPLv3:
24931	  https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
24932
24933	INSTALL:
24934	  * added copyright notice (at the top, like GMP);
24935	  * replaced "Installing MPFR" by "Installing GNU MPFR".
24936
24937	Copyright notice update: added 2010 with
24938	  perl -pi -e 's/2009 Free Software/2009, 2010 Free Software/' **/*(^/)
24939	under zsh, reverting the ChangeLog file and the mbench directory.
24940
24941	tests: added turandom to the svn:ignore property.
24942
24943	INSTALL: updated paragraphs about the search paths (in particular,
24944	--with-gmp=/usr/local is no longer chosen as an example as it does
24945	not work as expected; a note has been added about that).
24946
24947	INSTALL: rewrote a paragraph about search paths.
24948
249492010-01-18  Philippe Théveny  <philippe.theveny@laposte.net>
24950
24951	[urandom.c] Fix case emin > 0.
24952
249532010-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24954
24955	[TODO] added more details for random distribution functions
24956
24957	[tprintf.c, tfprintf.c] cleaned up previous commit
24958
249592010-01-18  Vincent Lefèvre  <vincent@vinc17.net>
24960
24961	tests/turandom.c: updated a test (if emin > 1 and rnd == MPFR_RNDN,
24962	then the result is necessarily 0).
24963
24964	tests/turandom.c: more tests in restricted exponent range.
24965
24966	urandom.c: corrected a comment.
24967
249682010-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24969
24970	[tprintf.c,tfprintf.c] print obtained chain in test #8
24971	       (https://sympa.inria.fr/sympa/arc/mpfr/2009-12/msg00035.html)
24972
249732010-01-18  Philippe Théveny  <philippe.theveny@laposte.net>
24974
24975	[urandom.c] Fix bug in setting random exponent.
24976
249772010-01-16  Vincent Lefèvre  <vincent@vinc17.net>
24978
24979	urandom.c: added a FIXME comment.
24980
249812010-01-15  Vincent Lefèvre  <vincent@vinc17.net>
24982
24983	urandom.c: removed unused variable k; updated a comment.
24984
249852010-01-15  Philippe Théveny  <philippe.theveny@laposte.net>
24986
24987	[urandom.c] Improve generation of random exponent.
24988
24989	[urandom.c] Fix bug introduced in r6667.
24990
249912010-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
24992
24993	[TODO] added item
24994
249952010-01-15  Philippe Théveny  <philippe.theveny@laposte.net>
24996
24997	[urandom.c] Fix case nextabove(0) in reduced exponent range.
24998
24999	[tests/turandom.c] Change accumulation of ternary value in the loop, it was not portable in system with sign and magnitude representation for integers.
25000
25001	[urandom.c] Move generation of a random rounding bit in a separate function.
25002
25003	[urandom.c] Remove trailing whitespace.
25004
25005	[urandom.c] Call mpfr_nextabove in maximum exponent range.
25006
250072010-01-15  Vincent Lefèvre  <vincent@vinc17.net>
25008
25009	urandom.c: added a FIXME so that it is not forgotten.
25010
25011	mpfr.texi: updated the month.
25012
25013	mpfrlint: require bash.
25014
250152010-01-14  Vincent Lefèvre  <vincent@vinc17.net>
25016
25017	urandom.c: clean-up (avoid a useless goto).
25018
25019	README.dev: added a paragraph (use MPFR_ASSERTN, not printf + exit).
25020
250212010-01-14  Philippe Théveny  <philippe.theveny@laposte.net>
25022
25023	[mpfr.texi] Cosmetic change.
25024
25025	[urandom.c, mpfr.texi] Change the behavior of mpfr_urandom to the usual mpfr function interface (wrt the ternary value and the out-of-range behavior).
25026	[tests/turandom.c] Check new behavior and add a test for the inclusion in [0, 1].
25027
250282010-01-13  Philippe Théveny  <philippe.theveny@laposte.net>
25029
25030	New function mpfr_urandom.
25031
250322010-01-11  Vincent Lefèvre  <vincent@vinc17.net>
25033
25034	README.dev: added a note about patches and the autotools.
25035
250362010-01-10  Vincent Lefèvre  <vincent@vinc17.net>
25037
25038	Added mpfrlint test for the required autoconf versions (see r6649).
25039
250402010-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25041
25042	[README.dev] required version of autoconf did not agree with acinclude.m4
25043
250442010-01-08  Vincent Lefèvre  <vincent@vinc17.net>
25045
25046	configure.in: replaced BITS_PER_MP_LIMB by GMP_NUMB_BITS (should have
25047	been done in r6645).
25048
25049	mpfrlint: check that GMP_LIMB_BITS isn't used.
25050
25051	Replaced GMP_LIMB_BITS by GMP_NUMB_BITS to use only one of these macros.
25052
250532010-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25054
25055	[configure.in] put back test BITS_PER_MP_LIMB == BYTES_PER_MP_LIMB * CHAR_BIT
25056		       (this is done only with --with-gmp-build, and BYTES_PER_MP_LIMB
25057		       is defined in this case in gmp-impl.h, at least in GMP 5)
25058
25059	BITS_PER_MP_LIMB -> GMP_LIMB_BITS
25060	got rid of BYTES_PER_MP_LIMB in configure.in (no longer defined by GMP)
25061	Note[VL] (mpfr-impl.h): a mpn_sqr_n() macro is defined to use mpn_mul
25062	if it is not already defined (in gmp-impl.h from GMP 4.x).
25063
250642009-12-23  Vincent Lefèvre  <vincent@vinc17.net>
25065
25066	[mbench/Makefile] Patch from Patrick Pelissier to solve the -I problem
25067	with GCC.
25068
250692009-12-21  Vincent Lefèvre  <vincent@vinc17.net>
25070
25071	[mbench/Makefile] Added a comment (warning about the use of -I).
25072
250732009-12-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25074
25075	patch from Patrick Pelissier
25076
250772009-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25078
25079	[scale2.c] added missing include (compilation with --with-gmp-build did fail)
25080	[exp_2.c] small improvements in Smith method: compute x^{2i} as (x^i)^2 instead
25081		  of x^{i-1} * x. The error analysis is unchanged.
25082	[tuneup.c] fix for sin_cos threshold (we had a problem since mpfr_sin_cos
25083		   was calling mpfr_cos, which was calling mpfr_sincos_fast in some
25084		   cases
25085	[mparam_h.in] put new thresholds for Core 2 64-bit
25086
250872009-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25088
25089	[acinclude.m4] reversed order for case "quad, mais en little endian" for
25090		       coherence with other cases
25091
250922009-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25093
25094	patch to recognize IEEE quad, little endian format for "long double"
25095
25096	[scale2.c] now mpfr_scale2 is included in mpfr-impl.h, instead of #including
25097		   "scale2.c" twice (thus it was compiled twice)
25098
250992009-12-07  Vincent Lefèvre  <vincent@vinc17.net>
25100
25101	sin_cos.c: in case of tiny inputs, keep the flags. In practice, this
25102	fixes the following bug in mpfr_sin_cos (shown by the latest additions
25103	to tsin_cos.c): if emin is the minimal exponent (MPFR_EMIN_MIN), the
25104	absolute value of the input is the minimum positive number and the
25105	rounding mode is toward 0 (or equivalent), then the underflow flag is
25106	dropped. The other exception cases (e.g., in case of reduced exponent
25107	range) are handled by mpfr_check_range().
25108
25109	tests/tsin_cos.c: in consistency(), better error message.
25110
25111	tests/tsin_cos.c: in consistency(), improved testing on underflow case.
25112
25113	tests/tsin_cos.c: in consistency(), added testing on underflow case.
25114
25115	tests/tsin_cos.c: in consistency(), fixed flags testing.
25116
25117	tests/tsin_cos.c: in consistency(), test also the flags.
25118
25119	tests/tsin_cos.c: in consistency(), test also the returned value
25120	(the one that gives inexact-related information).
25121
251222009-11-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25123
25124	[tfits.c] converted to GNU coding style
25125
251262009-11-30  Vincent Lefèvre  <vincent@vinc17.net>
25127
25128	README.dev: updated "To make a release".
25129
25130	uceil_exp2.c: fixed indentation.
25131
251322009-11-29  Vincent Lefèvre  <vincent@vinc17.net>
25133
25134	mpfr-impl.h: got rid of broken code when _GMP_IEEE_FLOATS was defined
25135	(broken aliasing rules, yielding failures with GCC 4.5.0 20091119).
25136
251372009-11-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25138
25139	[tset_ld.c] now perform tests even if old gcc bug is present
25140
251412009-11-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25142
25143	[tget_d.c] removed workaround for old gcc bug. Comment was:
25144	  /* workaround for gcc bug on m68040-unknown-netbsd1.4.1,
25145	     where DBL_MIN gives (1-2^(-52))/2^1022 */
25146
25147	[tadd.c, tmul.c] got rid of workaround for old gcc bug. Comment was:
25148	/* Parameter "z1" of check() used to be last in the argument list, but that
25149	   tickled a bug in 32-bit sparc gcc 2.95.2.  A "double" in that position is
25150	   passed on the stack at an address which is 4mod8, but the generated code
25151	   didn't take into account that alignment, resulting in bus errors.  The
25152	   easiest workaround is to move it to the start of the arg list (where it's
25153	   passed in registers), this macro does that.  FIXME: Change the actual
25154	   calls to check(), rather than using a macro.  */
25155
25156	[strtofr.c] removed patch for old FreeBsd/Alpha bug
25157		    (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024)
25158
251592009-11-26  Vincent Lefèvre  <vincent@vinc17.net>
25160
25161	[pow_si.c] Updated comment added in r4355 concerning a bug
25162	in Sun's compiler for Solaris/x86.
25163
25164	Updated comments concerning the old FreeBSD bug 72024 on LONG_MIN / 1.
25165
251662009-11-25  Vincent Lefèvre  <vincent@vinc17.net>
25167
25168	[tfprintf.c,tprintf.c] Fixed other types in function with variable
25169	arguments (even though there were no warnings on the tested machine).
25170
25171	[tfprintf.c,tprintf.c] Fixed types in function with variable arguments.
25172
251732009-11-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25174
25175	[tfprintf.c,tprintf.c] applied patch from Philippe Theveny
25176	[acinclude.m4] removed check for %zu, no longer needed
25177
25178	[acinclude.m4] added test for %zu
25179	[tfprintf.c,tprintf.c] added #ifdef's for NPRINTF_ZU
25180
251812009-11-25  Vincent Lefèvre  <vincent@vinc17.net>
25182
25183	configure.in: corrected a comment.
25184
25185	tests/tstckintc.c: fixed types for the printf %p format specifier.
25186
251872009-11-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25188
25189	[tget_flt.c] replaced %a by %.8e
25190
25191	[tget_d.c,tget_ld_2exp.c] replaced %a and %La by %.16e and %.16Le
25192
25193	[tget_d.c] removed C99-specific instruction
25194
25195	[nightly-test] added -ansi -pedantic-errors
25196
251972009-11-24  Vincent Lefèvre  <vincent@vinc17.net>
25198
25199	configure.in: completed the GMP CC/CFLAGS detection.
25200
25201	configure.in: added a test to check for CC and CFLAGS in gmp.h only
25202	when the user doesn't redefine them and he isn't cross-compiling.
25203
25204	configure.in: improved the GMP CC/CFLAGS detection.
25205
25206	configure.in: try to fix the GMP CC/CFLAGS detection. Not finished.
25207
25208	configure.in: replaced "test ... -o ..." (obsolete in POSIX)
25209	by "test ... || test ...".
25210
25211	configure.in: replaced "test ... -a ..." (obsolete in POSIX)
25212	by "test ... && test ...".
25213
25214	INSTALL: made instructions more clear.
25215
252162009-11-23  Vincent Lefèvre  <vincent@vinc17.net>
25217
25218	README.dev: updated "To make a release".
25219
25220	README.dev: last things to do when making a release.
25221
252222009-11-22  Vincent Lefèvre  <vincent@vinc17.net>
25223
25224	sin_cos.c: fixed a potential bug by changing a rnd_mode into MPFR_RNDZ
25225	in mpfr_can_round. Indeed, in r4574, the change from
25226	  if (!mpfr_can_round (c, m, GMP_RNDZ, rnd_mode, MPFR_PREC (z)))
25227	to
25228	  if (!mpfr_can_round (c, m, GMP_RNDN, rnd_mode,
25229	                       MPFR_PREC (z) + (rnd_mode == GMP_RNDN)))
25230	looks wrong to me: in RNDN, the extra bit due to rnd_mode == GMP_RNDN
25231	changes a RNDN worst case into a RNDZ worst case.
25232	Note: The second mpfr_can_round with the same problem has been fixed
25233	in r6513.
25234
25235	tests/tsin_cos.c: ported bug20091122 from the 2.4 branch to the trunk.
25236	But no failure in the trunk.
25237
252382009-11-20  Vincent Lefèvre  <vincent@vinc17.net>
25239
25240	tests/tconst_pi.c: fixed types for C++.
25241
25242	Changeset r6162 broke Solaris builds. Fixed that by no longer checking
25243	INTMAX_MAX and UINTMAX_MAX to detect use of <stdint.h> / <inttypes.h>.
25244
252452009-11-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25246
25247	[cos.c] fixed case where reduced argument is zero
25248
252492009-10-30  Vincent Lefèvre  <vincent@vinc17.net>
25250
25251	tcos.c: added a testcase yielding an assertion failure (this bug makes
25252	tsin_cos fail).
25253
25254	tests/tsin_cos.c: ported the consistency test from the 2.4 branch.
25255	This yields an assertion failure (Linux/x86_64).
25256
252572009-10-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25258
25259	[cache.c] fixed bug with directed rounding
25260	[tconst_pi.c] added test for bug with directed rounding
25261
252622009-10-21  Vincent Lefèvre  <vincent@vinc17.net>
25263
25264	exceptions.c: improved a comment.
25265
25266	tpow.c: added an overflow test.
25267
25268	tpow.c: added an overflow test in RNDZ.
25269
252702009-10-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25271
25272	[TODO] added efficiency item
25273
252742009-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25275
25276	[lngamma.c] fixed typo, added comments about argument reduction, and replaced
25277		    code using doubles
25278
25279	[TODO] added efficiency item
25280
252812009-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25282
25283	[exp.c] binary splitting is now used for prec >= MPFR_EXP_THRESHOLD
25284		(instead of prec > MPFR_EXP_THRESHOLD before). This is more
25285		consistent with the other thresholds.
25286
25287	[TODO] added efficiency item
25288
25289	[mparam_h.in] added /* bits */ for MPFR_EXP_THRESHOLD and MPFR_EXP_2_THRESHOLD
25290
252912009-10-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25292
25293	[tsin_cos.c] removed useless instruction, and added comments
25294
25295	[sin_cos.c] fixed call to mpfr_can_round (rounding mode was wrong)
25296	[tsin_cos.c] added new test
25297
25298	[li2.c] fixed bug when x is near 0
25299	[tli2.c] added new test
25300
253012009-10-09  Vincent Lefèvre  <vincent@vinc17.net>
25302
25303	tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
25304
25305	tests/tsin_cos.c: added a comment about bug20091008, corresponding to
25306	r6507; in fact, the bug concerns only the return value (see r6444).
25307
253082009-10-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25309
25310	[sin_cos.c] fixed error analysis
25311	[tsin_cos.c] added new test
25312
253132009-10-07  Vincent Lefèvre  <vincent@vinc17.net>
25314
25315	tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
25316
25317	tests/tsin_cos.c: removed trailing spaces.
25318
253192009-10-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25320
25321	[tsin_cos.c] changed binary to hexadecimal string (was too long for C89)
25322
25323	[sin_cos.c] fixed bug introduced in r6447 (some variables had their precision not updated in Ziv's loop)
25324	[tsin_cos.c] added a new test
25325
253262009-09-29  Vincent Lefèvre  <vincent@vinc17.net>
25327
25328	FAQ update.
25329
253302009-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25331
25332	[mpfr.texi] added note about mpfr_can_round
25333	[tcan_round.c] added more tests
25334
253352009-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25336
25337	[README.dev] added item for new releases: we should say if they are binary
25338		     and/or API compatible with previous releases (we often forgot
25339		     to say it in the past)
25340
253412009-09-23  Vincent Lefèvre  <vincent@vinc17.net>
25342
25343	tests: added tget_flt to the svn:ignore property.
25344
25345	tests/Makefile.am: added information about LOADLIBES.
25346
253472009-09-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25348
25349	[tests/Makefile.am] put back LOADLIBES=... (enables to compile a program foo.c
25350			    in the test directory by simply doing "make foo")
25351
25352	[atan.c] updated the comments
25353
253542009-09-22  Vincent Lefèvre  <vincent@vinc17.net>
25355
25356	atan.c: added a FIXME comment.
25357
25358	atan.c: added some assertions.
25359
253602009-09-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25361
25362	[atan.c] implemented argument reduction (cf error analysis in algorithms.tex)
25363
253642009-09-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25365
25366	[tests/Makefile.am] removed LOADLIBES=...
25367
253682009-09-20  Vincent Lefèvre  <vincent@vinc17.net>
25369
25370	mpfrlint: check that lines aren't too long.
25371
25372	Makefile.am: line-wrap libmpfr_la_SOURCES (M-q with Emacs) for
25373	compatibility with some vendor grep.
25374
25375	Makefile.am, tests/Makefile.am: patch from Ralf Wildenhues.
25376	https://lists.gnu.org/archive/html/bug-automake/2009-09/msg00033.html
25377
253782009-09-18  Vincent Lefèvre  <vincent@vinc17.net>
25379
25380	mpfr-impl.h, sin_cos.c, tests/tsin_cos.c: mp_rnd_t -> mpfr_rnd_t.
25381
25382	sin_cos.c: GMP_RNDx -> MPFR_RNDx.
25383
25384	sin_cos.c: untabified.
25385
25386	frac.c, tests/tfrac.c: fixed underflow case in mpfr_frac and added
25387	testcase.
25388
253892009-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25390
25391	[acos.c] initial working precision was too small
25392
253932009-09-18  Vincent Lefèvre  <vincent@vinc17.net>
25394
25395	modf.c: no longer extend the exponent range at all, since there are
25396	no intermediate computations (note: the mpfr_frac bug that has just
25397	been fixed affected this change in modf.c).
25398
25399	[frac.c] Patch r6456 was incorrect: the problem with the non-significant
25400	bits had to be dealt with only in the case t = r. This is now fixed.
25401
25402	tests/tfrac.c: reverted overflow case test (was incorrect because the
25403	input was too large).
25404
25405	tests/tfrac.c: also test the overflow case.
25406
25407	tests/tfrac.c: more tests (case where the fractional part rounds to 1).
25408
254092009-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25410
25411	[NEWS] added item
25412
25413	[sin.c,cos.c] use mpfr_sincos_fast when prec >= MPFR_SINCOS_THRESHOLD
25414
254152009-09-18  Vincent Lefèvre  <vincent@vinc17.net>
25416
25417	tests/tfrac.c: more tests (there are also problems in rounding away
25418	from zero or equivalent).
25419
254202009-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25421
25422	added tuning mechanism for mpfr_sin_cos
25423
254242009-09-18  Vincent Lefèvre  <vincent@vinc17.net>
25425
25426	tests/tfrac.c: also test the ternary value (it is incorrect too).
25427
25428	frac.c: fixed bug in mpfr_frac (the non-significant bits in low limb
25429	were not cleared).
25430
25431	tests/tfrac.c: improved the testcase so that it triggers the bug for
25432	both 32 bits and 64 bits.
25433
25434	tests/tfrac.c: added a comment for latest testcase.
25435
25436	tests/tfrac.c: added testcase for bug in mpfr_frac.
25437
25438	tests/tmodf.c: typo in error message.
25439
25440	modf.c: extending the exponent range in the first two cases is useless
25441	because there are no intermediate computations (just a mpfr_set). Let's
25442	do that only for the general case.
25443
25444	tests/tmodf.c: added overflow tests.
25445
25446	modf.c: corrected a comment (rounding can yield an overflow, but not
25447	an underflow).
25448
254492009-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25450
25451	[sin_cos.c] added asymptotically fast code, with threshold currently hardcoded
25452		    at 20000 bits, should be determined by tuneup.c
25453
254542009-09-18  Vincent Lefèvre  <vincent@vinc17.net>
25455
25456	Deleted trailing spaces.
25457
254582009-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25459
25460	[modf.c] changed semantics of return value in accordance with mpfr_sin_cos
25461
254622009-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25463
25464	[sin_cos.c] more precise meaning of the return value
25465	[sinh_cosh.c] idem as above
25466	[taway.c] fixed to check the more precise return value
25467
254682009-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25469
25470	[mpfr.texi] t was not initialized in Newton's example
25471
254722009-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25473
25474	changed _binary32 into _flt for file names too:
25475	   svn mv get_binary32.c get_flt.c
25476	   svn mv set_binary32.c set_flt.c
25477	   svn mv tests/tget_binary32.c tests/tget_flt.c
25478
25479	[TODO] removed an item
25480	[mpfr.texi] added an example for mpfr_prec_round
25481
25482	[NEWS] added mpfr_set_flt and mpfr_get_flt
25483
25484	changed suffix _binary32 -> _flt
25485	[get_binary32.c] fixed a bug in subnormal range
25486
254872009-09-15  Vincent Lefèvre  <vincent@vinc17.net>
25488
25489	mpfrlint: bug fix.
25490
25491	mpfr.texi: updated the month.
25492
25493	mpfrlint: execute svn in C locale.
25494
25495	mpfrlint: check mpfr.texi's UPDATED-MONTH.
25496
254972009-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25498
25499	[tget_d.c] fixed FIXME
25500
255012009-09-15  Vincent Lefèvre  <vincent@vinc17.net>
25502
25503	tget_d.c code is C99-only (bug introduced in r6424). Please fix!
25504
255052009-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25506
25507	[get_binary32.c] also forgot in previous commit
25508
25509	[set_binary32.c] file forgot in previous commit
25510
25511	added new functions mpfr_set_binary32 and mpfr_get_binary32
25512	fixed bug in mpfr_get_d and mpfr_get_decimal64 for RNDA
25513
25514	[mpfr.texi] improved description of mpfr_sum, and fixed typo
25515
255162009-09-14  Vincent Lefèvre  <vincent@vinc17.net>
25517
25518	mpfr.h: added mpfr_regular_p macro.
25519
255202009-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25521
25522	[sum.c] added reference
25523
25524	[get_ld.c] fixed bug reported by Nelson Beebe
25525		   https://sympa.inria.fr/sympa/arc/mpfr/2009-05/msg00061.html
25526
25527	[isregular.c] new function mpfr_regular_p
25528	[iszero.c] fixed typo in comment
25529	[tests/tisnan.c] added tests for mpfr_regular_p
25530
255312009-09-11  Vincent Lefèvre  <vincent@vinc17.net>
25532
25533	vasprintf.c: changeset r6414 was incorrect, in particular under Linux
25534	(at least some platforms), where wint_t is an unsigned int, not an int.
25535	Instead, let's detect whether integer promotion will occur or not, even
25536	though the ISO C99 standard requires a wint_t type that doesn't yield
25537	an integer promotion (7.24.1#2), because mingw32 defines wint_t as an
25538	unsigned short (thus with integer promotion).
25539
255402009-09-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25541
25542	[vasprintf.c] https://sympa.inria.fr/sympa/arc/mpfr/2009-09/msg00012.html
25543		      (changed __wint_type into int)
25544
255452009-09-08  Vincent Lefèvre  <vincent@vinc17.net>
25546
25547	tests/tdigamma.c: added missing void in prototype.
25548
255492009-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25550
25551	[digamma.c] forgot to set sign for Psi(+Inf)
25552
255532009-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25554
25555	changed function into bernoulli.c (which was static, included 3 times) into
25556	an internal function mpfr_bernoulli_internal
25557
255582009-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25559
25560	[TODO] removed psi(=digamma)
25561
255622009-09-02  Vincent Lefèvre  <vincent@vinc17.net>
25563
25564	tests/data/digamma: for the special values, use the new mode '*'
25565	(exact cases) instead of 'n'.
25566
25567	tests.c: added special support for exact cases in data_check (to test
25568	all the rounding modes and check the ternary value).
25569
25570	towards -> toward (consistency).
25571
25572	tests: added tdigamma to svn:ignore property.
25573
25574	digamma.c: moved a comment.
25575
255762009-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25577
25578	[digamma.c] fixed bug (emin/emax were not restored)
25579	[data/digamma] added special values
25580	[tests/tests.c] fix to allow putting nan in data/* files
25581
25582	[data/digamma] unitary test file for mpfr_digamma
25583	[tdigamma.c] now use data/digamma
25584
255852009-09-02  Vincent Lefèvre  <vincent@vinc17.net>
25586
25587	Removed trailing whitespace.
25588
255892009-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25590
25591	bernoulli.c goes into EXTRA_DIST
25592
25593	[digamma.c] new function mpfr_digamma
25594	[lngamma.c,li2.c] factored computation of Bernoulli numbers in new file
25595			  bernoulli.c (also used by digamma.c)
25596
255972009-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25598
25599	replaced obsolete GMP functions (suggested by Brian Gladman):
25600	1. mpz_div_2exp ==> mpz_fdiv_q_2exp
25601	2. mpz_div_ui   ==> mpz_fdiv_q_ui
25602	3. gmp_randinit (state, GMP_RAND_ALG_LC, 128) ==> gmp_randinit_lc_2exp_size (state, 128)
25603	(Didn't replace mpn_divrem by mpn_tdiv_qr since the parameters differ, and also
25604	for efficiency reasons.)
25605
256062009-08-26  Vincent Lefèvre  <vincent@vinc17.net>
25607
25608	tsprintf.c: fixed locale_da_DK test.
25609
256102009-08-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25611
25612	[csch.c,coth.c,csc.c,cot.c] fixed bug for tiny input and RNDA (result was
25613				    rounded to zero instead of away)
25614
256152009-08-26  Vincent Lefèvre  <vincent@vinc17.net>
25616
25617	tests/tsprintf.c: bug fix (uncommented an "exit(1);").
25618
256192009-08-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25620
25621	[tgeneric.c] revert previous change, bug is elsewhere
25622
25623	[tgeneric.c] temporary fix in mpfr_can_round call (mpfr_can_round does not
25624		     correctly handle MPFR_RNDA)
25625
256262009-08-26  Vincent Lefèvre  <vincent@vinc17.net>
25627
25628	set_ld.c: replaced a struct by a union. The struct was triggering the
25629	following warning with GCC 4.4:
25630	  dereferencing type-punned pointer will break strict-aliasing rules
25631	(possibly due to possible memory alignment problems). The old code
25632	looked strange anyway and unions are exactly for such kind of things.
25633
256342009-08-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25635
25636	[tset.c] removed unused variables
25637
256382009-08-25  Vincent Lefèvre  <vincent@vinc17.net>
25639
25640	tcmp_ld.c: use "long double" constants.
25641	Note: this might solve the tcmp_ld failure reported on
25642	https://www.linuxquestions.org/questions/linux-from-scratch-13/mpfr-2-4-1-check-failures-in-lfs-6-5-rc2-746538/
25643	(not tested).
25644
256452009-08-24  Vincent Lefèvre  <vincent@vinc17.net>
25646
25647	NEWS: update (new function mpfr_set_zero, added in r6339).
25648
25649	mpfr.texi: NaN has a sign bit (in its binary representation),
25650	but as a FP datum, it does not have a sign.
25651
256522009-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25653
25654	[mpfr.texi] added mention of unspecified NaN sign bit for mpfr_set_nan
25655
256562009-08-21  Vincent Lefèvre  <vincent@vinc17.net>
25657
25658	mpfr.texi: do not use @code for roundTiesToAway and binary64 as this is
25659	not code and the IEEE 754-2008 standard doesn't use special typography.
25660
25661	mpfr.texi: the sign bit of a NaN is unspecified.
25662
256632009-08-18  Vincent Lefèvre  <vincent@vinc17.net>
25664
25665	Add examples into $docdir (without using a subdir, as this would be
25666	a bit bloated just to add a few files).
25667	  * Added "examples" directory with a ReadMe file and 3 examples.
25668	  * Makefile.am: added files from the "examples" directory and changed
25669	    dist_doc_DATA into nobase_dist_doc_DATA so that the "examples"
25670	    directory is not stripped in the target directory $docdir.
25671	  * README: added "examples/".
25672
25673	get_str.c: corrected copyright notice, incorrectly modified in r6364.
25674
256752009-08-12  Philippe Théveny  <philippe.theveny@laposte.net>
25676
25677	mpfr.texi: Fix typo.
25678
25679	get_str.c: Format a comment.
25680
25681	get_str.c vasprintf.c: Add support for the rounding away from zero mode.
25682	mpfr.texi: MPFR_RNDA mode support in printf functions.
25683	tests/tsprintf.c tests/tget_str.c: Test MPFR_RNDA support.
25684
256852009-08-06  Vincent Lefèvre  <vincent@vinc17.net>
25686
25687	NEWS: update.
25688
25689	Install some documentation files.
25690
256912009-08-05  Vincent Lefèvre  <vincent@vinc17.net>
25692
25693	mpfr.texi: updated section "Installing MPFR".
25694
25695	mpfr.texi: corrected a spelling mistake.
25696
25697	Since GNU Automake 1.11 is available on too few platforms, removed its
25698	requirement (reverted to 1.10 requirement: 1.10.1 was needed only for
25699	dist-lzma, which has been removed). Instead, added hardcoded dist-xz
25700	support (tested with both Automake 1.10.2 and Automake 1.11).
25701
257022009-08-04  Vincent Lefèvre  <vincent@vinc17.net>
25703
25704	configure.in: replaced dist-lzma by dist-xz (the xz format is the
25705	successor of the lzma format); as a consequence, automake 1.11 is
25706	needed.
25707
257082009-07-30  Vincent Lefèvre  <vincent@vinc17.net>
25709
25710	Makefile.am, tests/Makefile.am: added copyright notice (similar to
25711	the one of the generated Makefile.in file).
25712
25713	Since COPYING.LESSER makes a reference to the GPLv3, updated COPYING
25714	to the GPLv3. Autotools files are now distributed under the same license
25715	as MPFR (to avoid any reference to the GPLv2).
25716
25717	Renamed COPYING.LIB as COPYING.LESSER (GNU Coding Standards, #7.3)
25718	and updated all the references (except in ChangeLog).
25719
25720	Added algorithms.fdb_latexmk to svn:ignore property.
25721
257222009-07-30  Philippe Théveny  <philippe.theveny@laposte.net>
25723
25724	tests/tset.c: With revision 6339, some tests were moved and added in the function check_special but this one was not called.
25725
25726	tests/Makefile.am: Strech check_PROGRAMS list to ease insertion of new tests.
25727
25728	Makefile.am: Sort tests in alphabetical order except the very first ones which are needed by the test suite itself.
25729
257302009-07-20  Philippe Théveny  <philippe.theveny@laposte.net>
25731
25732	vasprintf.c mpfr.texi: Change behavior with %Rf and an empty precision field. The default precision is now 6 with %Rf and %Rg.
25733	tests/tprintf.c tests/tfprintf.c tests/tsprintf.c: Change tests with empty precision field and %Rf.
25734
25735	Makefile.am mpfr.h mpfr.texi set_zero.c: New function mpfr_set_zero.
25736	tests/tset.c: Replace all MPFR_ASSERTN with verbose message. Add tests for mpfr_set_zero.
25737
257382009-07-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25739
25740	[INSTALL] hint about patch command
25741
257422009-07-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25743
25744	[mpn_exp.c] reverted previous change (MPN_ZERO is a macro for memset, which
25745		    does not forbid zero size)
25746
25747	[coth.c, tcoth.c] fixed coth(+/0) which was wrong (reported by Christopher Creutzig)
25748
25749	[mpn_exp.c] fixed bug reported by David Kirkby on Solaris (GMP compiled with
25750		    Solaris compiler)
25751
257522009-07-08  Vincent Lefèvre  <vincent@vinc17.net>
25753
25754	vasprintf.c: typo in a comment.
25755
257562009-07-08  Philippe Théveny  <philippe.theveny@laposte.net>
25757
25758	vasprintf.c: Fix bug with %Rf, non-zero precision and a value rounded up to the next power of ten.
25759
257602009-07-08  Vincent Lefèvre  <vincent@vinc17.net>
25761
25762	vasprintf.c: deleted trailing spaces.
25763
25764	tsprintf.c: added tests of some halfway cases.
25765
257662009-07-08  Philippe Théveny  <philippe.theveny@laposte.net>
25767
25768	vasprintf.c: Fix bug in precision 0 with format %.0Rf (0.5 rounds to 0).
25769
257702009-07-08  Vincent Lefèvre  <vincent@vinc17.net>
25771
25772	tsprintf.c: added a test that triggers an assertion failure.
25773
25774	tsprintf.c: fixed a test and added more tests for %.0Rf with the even
25775	rounding rule (shows a bug added in the latest corrections).
25776
257772009-07-07  Vincent Lefèvre  <vincent@vinc17.net>
25778
25779	tsprintf.c: completed the test on emax (for %Ra and %Rb).
25780	Everything is OK.
25781
25782	tsprintf.c: my test was incorrect (I forgot the R), sorry.
25783	Still completing it...
25784
25785	tsprintf.c: comment (so that the test can be ported to the 2.4 branch).
25786
25787	tsprintf.c: started to write a test for emax, showing a bug (random
25788	output).
25789
257902009-07-06  Vincent Lefèvre  <vincent@vinc17.net>
25791
25792	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
25793
25794	mpfr.texi: updated the month.
25795
25796	mpfr.texi consistency: @var{stdout} -> @code{stdout}.
25797
25798	vasprintf.c: do not use a potential function call in SAFE_ABS macro.
25799
258002009-07-06  Philippe Théveny  <philippe.theveny@laposte.net>
25801
25802	vasprintf.c tests/tsprintf.c: deleted trailing spaces.
25803
258042009-06-29  Philippe Théveny  <philippe.theveny@laposte.net>
25805
25806	vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg (continuation of fix in r6278).
25807	tests/tsprintf.c:  Add tests for rounding to next power of ten bug with %Rf or %Rg.
25808
258092009-06-26  Vincent Lefèvre  <vincent@vinc17.net>
25810
25811	mp_exp_unsigned_t -> mpfr_uexp_t (internal type only).
25812
25813	mpfrlint: check the use of the obsolete mp_rnd_t type.
25814
25815	mp_rnd_t -> mpfr_rnd_t
25816
25817	Suppressed MPFR_CLEAR_FLAGS (no longer did anything).
25818
258192009-06-23  Vincent Lefèvre  <vincent@vinc17.net>
25820
25821	mpfr.texi: updated the month.
25822
25823	mpfr.texi: fixed description of mpfr_get_str (clash with variables,
25824	inconsistent cases in the info format).
25825
25826	get_str.c: added a space.
25827
258282009-06-21  Vincent Lefèvre  <vincent@vinc17.net>
25829
25830	vasprintf.c: corrected comments.
25831
258322009-06-19  Philippe Théveny  <philippe.theveny@laposte.net>
25833
25834	vasprintf.c: convert GMP_RNDx to MPFR_RNDx.
25835
25836	vasprintf.c: Add brace to disambiguate nested if, and remove unused variable.
25837
25838	tests/tfprintf.c tests/tprintf.c: Do not test very small values with %f.
25839
25840	vasprintf.c: Fix bug when the value to be printed is rounded to the next power of ten with %Rf or %Rg.
25841	tests/tsprintf.c:  Add tests for rounding to next power of ten bug.
25842
258432009-06-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25844
25845	[TODO] added new functions to implement
25846
258472009-06-16  Philippe Théveny  <philippe.theveny@laposte.net>
25848
25849	sinh_cosh.c: precision of intermediate computation no more depends on precision of input variables.
25850
258512009-06-15  Vincent Lefèvre  <vincent@vinc17.net>
25852
25853	mpfr.h: new MPFR_VALUE_OF macro, now used by mpfr_get_prec and
25854	mpfr_get_exp macros (this is cleaner than the old hack).
25855
258562009-06-14  Vincent Lefèvre  <vincent@vinc17.net>
25857
25858	acinclude.m4: Make sure results of calculations on constants used with
25859	the fesetround() test are not precomputed by GCC (occurs on MIPS).
25860	Patch from Maciej W. Rozycki.
25861	  https://sympa.inria.fr/sympa/arc/mpfr/2009-06/msg00036.html
25862	  gmane.comp.lib.mpfr.general:174
25863
258642009-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25865
25866	[algorithms.tex] bounds for get_str were checked by Mark Dickinson
25867
258682009-06-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25869
25870	[algorithms.tex] fixed typo
25871
25872	[algorithms.tex] fixed and completed up to b=62 table of bounds for get_str
25873	[mpfr.texi] fixed description of case n=0 for get_str (case of powers of two
25874		    bases was not coherent with the code)
25875
258762009-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25877
25878	[algorithms.tex] analyzed precisely the cases where the value is m+1 instead
25879	       of m
25880
258812009-06-10  Vincent Lefèvre  <vincent@vinc17.net>
25882
25883	acinclude.m4: reverted incorrect patch r6267 that makes the test
25884	no longer work on x86 (with traditional FPU, no SSE), where one
25885	should get
25886	  checking for gcc float-conversion bug... yes, use -ffloat-store
25887	instead of
25888	  checking for gcc float-conversion bug... no
25889	Indeed the "volatile" has the effect to have all the intermediate
25890	results x stored into memory, i.e. it is more or less equivalent
25891	to the -ffloat-store option, so that it does not allow one to test
25892	whether -ffloat-store is needed or not (which is the goal of this
25893	test).
25894
258952009-06-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25896
25897	[acinclude.m4] patch from Maciej W. Rozycki on mpfr mailing-list, 9 Jun 2009
25898
25899	added more test cases for the Bessel functions (from John Harrison paper at
25900	Arith19)
25901
259022009-06-04  Philippe Théveny  <philippe.theveny@laposte.net>
25903
25904	vasprintf.c: Binary output with no digit after the decimal point is now supported. Fix bug when the binary or hexadecimal output value is rounded to the next power of the base. This also change outputs like 0xf.f with format string "%.0Ra" from 8p+1 to 1p+4 (as does gnu libc's printf).
25905	tests/tsprintf.c: add check for rounding to the next base power and fix some test value with %.0Ra (now output 1p+4 instead of 8p+3).
25906
259072009-06-03  Philippe Théveny  <philippe.theveny@laposte.net>
25908
25909	mpfr-longlong.h: Update to newer GMP version (changeset 12418:12a1d0bf21f0 Sun Mar 01 23:47:31 2009 +0100), merging modifications from r4657.
25910
259112009-05-29  Vincent Lefèvre  <vincent@vinc17.net>
25912
25913	vasprintf.c: do not use GMP's namespace for identifiers defined in MPFR.
25914
25915	README.dev: added: do not use the GMP namespaces...
25916
25917	mpfr.h: rewrote a comment.
25918
259192009-05-29  Philippe Théveny  <philippe.theveny@laposte.net>
25920
25921	vasprintf.c: Fix bug, "%%" was not correctly displayed when used alone or before a mpfr_t output.
25922	tests/tfprintf.c tests/tprintf.c: Fix expected values for tests with "%%".
25923
25924	mpfr.texi: Restate subsection Formatted Output Functions/Format String.
25925
259262009-05-28  Philippe Théveny  <philippe.theveny@laposte.net>
25927
25928	mpfr.texi: details on use of 'P' type in mpfr_printf.
25929
259302009-05-27  Philippe Théveny  <philippe.theveny@laposte.net>
25931
25932	NEWS: remind bug fixes since version 2.4.0.
25933
25934	set_d64.c: Partial revert of r6190 to fix problem in a simpler way: the decimal digits can be stored in array of char (no need to be unsigned).
25935
259362009-05-27  Vincent Lefèvre  <vincent@vinc17.net>
25937
25938	mpfr.texi: updated the month.
25939
25940	tests/tfmod.c: deleted trailing whitespace.
25941
259422009-05-22  Philippe Théveny  <philippe.theveny@laposte.net>
25943
25944	tests/tatan.c: Add test triggering underflow (test coverage is now 100%).
25945
259462009-05-20  Vincent Lefèvre  <vincent@vinc17.net>
25947
25948	tests/tgeneric.c: for the second computation, increase the precision
25949	of the inputs in order to trigger the mpfr_fmod bug fixed in r6230
25950	(and potentially other bugs). Thanks to Eric Veach for the idea.
25951
25952	Added tbuildopt to svn:ignore property of tests.
25953
259542009-05-20  Philippe Théveny  <philippe.theveny@laposte.net>
25955
25956	tests/tfmod.c: complete tests with special values.
25957
25958	tests/tfmod.c: code simplification + check ternary value too.
25959
259602009-05-20  Vincent Lefèvre  <vincent@vinc17.net>
25961
25962	tests/tfmod.c: replaced NULL by (mpfr_ptr) 0 in mpfr_inits2/mpfr_clears.
25963
25964	tests/mpfr-test.h: added mpfr_cmp_ui0 macro (check that x is not a NaN).
25965	tests/tfmod.c (bug20090519): check that the results are not NaN's and
25966	replaced GMP_RNDN by MPFR_RNDN.
25967
259682009-05-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25969
25970	[tests/tfmod.c] added testcase for bug reported by Eric Veach
25971	[rem1.c] fixed bug reported by Eric Veach
25972
259732009-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
25974
25975	[TODO] added one item
25976
259772009-05-13  Laurent Fousse  <laurent@komite.net>
25978
25979	Clarify the fact that mpfr_sum guarantees correct rounding.
25980
259812009-05-13  Vincent Lefèvre  <vincent@vinc17.net>
25982
25983	mpfr.h: updated a comment.
25984
259852009-05-13  Philippe Théveny  <philippe.theveny@laposte.net>
25986
25987	mpfr.h: Add a warning comment (removed in r6026).
25988	[merge -c 6209 from branch 2.4]
25989
259902009-05-13  Vincent Lefèvre  <vincent@vinc17.net>
25991
25992	fms.c: improve the performance of memory allocations in small precision
25993	(almost identical to changeset 6195 for fma.c).
25994
259952009-05-12  Vincent Lefèvre  <vincent@vinc17.net>
25996
25997	fma.c: patch by Patrick Pélissier to improve the performance of
25998	memory allocations in small precision.
25999
260002009-05-05  Philippe Théveny  <philippe.theveny@laposte.net>
26001
26002	Put '#include <string.h>' in mpfr-impl.h, remove it elsewhere.
26003	Other cleanup of header inclusion.
26004	Other change (by mistake): corrections in algorithms.tex
26005
260062009-05-05  Vincent Lefèvre  <vincent@vinc17.net>
26007
26008	NEWS: corrections / limit to 80 characters per line.
26009
260102009-05-05  Philippe Théveny  <philippe.theveny@laposte.net>
26011
26012	get_d64.c set_d64.c: Fix types.
26013
26014	printf.c tests/tpow_all.c: <string.h> is not automatically included when compiling with --with-gmp-build option.
26015
26016	NEWS Makefile.am mpfr.h mpfr.texi buildopt.c: New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
26017	tests/Makefile.am tests/tbuildopt.c: Add tests for mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p.
26018
260192009-05-05  Vincent Lefèvre  <vincent@vinc17.net>
26020
26021	atan.c: added comments after checking r6186.
26022
260232009-05-05  Philippe Théveny  <philippe.theveny@laposte.net>
26024
26025	atan.c: expand exponent range when computing arctan(Inf) and arctan(+-1).
26026	tests/tatan.c: Check underflow of arctan(Inf) and arctan(1) with reduced exponent range.
26027
260282009-05-04  Vincent Lefèvre  <vincent@vinc17.net>
26029
26030	tests/tatan.c: replaced GMP_RNDN by MPFR_RNDN.
26031
260322009-04-29  Vincent Lefèvre  <vincent@vinc17.net>
26033
26034	Removed trailing spaces.
26035
260362009-04-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26037
26038	[atan.c] fixed bug when x is very near but differs from 1
26039
260402009-04-29  Vincent Lefèvre  <vincent@vinc17.net>
26041
26042	tests/tatan.c: added testcase for bug found by Christopher Creutzig
26043	(atan2_different_prec).
26044
260452009-04-22  Vincent Lefèvre  <vincent@vinc17.net>
26046
26047	tests/tests.c (data_check): try to open the data file first from the
26048	build directory, then from the source directory.
26049
26050	init2.c: check that mp_bits_per_limb == BITS_PER_MP_LIMB (useful
26051	in case GMP is upgraded with a different ABI, e.g. 32 vs mode32
26052	on PowerPC 64). Without such a check, MPFR can give incorrect
26053	results if the ABI's don't match.
26054
26055	Improved fix for problem dealt with in r6174: use function src_fopen()
26056	(from tests.c) instead of a macro MPFR_SRCDIR.
26057
26058	Fixed problem when the srcdir value contains a word that is #define'd
26059	by the C implementation (test failure) or a comma (worse, the build of
26060	the tests terminates with an error). This can happen only when objdir
26061	and srcdir are different directories.
26062	  * tests/Makefile.am (tmul_CPPFLAGS): Put srcdir pathname in quotes.
26063	  * tests/tmul.c (MPFR_SRCDIR): Make the default a string.
26064	    (QUOTE, NAME): Delete.
26065	    (check_regression): Don't QUOTE MPFR_SRCDIR.
26066	Thanks to Sandra Loosemore for the patch.
26067	https://sympa.inria.fr/sympa/arc/mpfr/2009-04/msg00038.html
26068
260692009-04-15  Philippe Théveny  <philippe.theveny@laposte.net>
26070
26071	get_f.c: remove dead code (x and z always have the same number of limbs).
26072	tests/tget_f.c: Add tests with every rounding mode, add tests with random values.
26073
26074	tests/tget_f.c: Fix typos, better error messages.
26075
260762009-04-14  Philippe Théveny  <philippe.theveny@laposte.net>
26077
26078	tests/tget_f.c get_f.c: Set result to the maximum value when the mpfr_t is plus infinity and set correct ternary value.
26079
26080	tests/tget_f.c: Fix typo, increase size of y so that x and y have different limb size (they had the same size on MacOS X-32bits).
26081
260822009-04-10  Vincent Lefèvre  <vincent@vinc17.net>
26083
26084	mpfr.texi: update concerning intmax_t after the change in r6166.
26085
26086	mpfr.h: for intmax_t, also test _STDINT_H and _STDINT_H_.
26087	[merged changeset r6165 from the 2.4 branch]
26088
26089	mpfr.texi: updated the month.
26090
26091	mpfr.h: for the intmax_t detection, also test INTMAX_MAX / UINTMAX_MAX
26092	(this may be useful for users of C++ compilers, if they have defined
26093	__STDC_LIMIT_MACROS but not __STDC_CONSTANT_MACROS).
26094	mpfr.texi: improvement concerning the use of intmax_t and uintmax_t.
26095	[merged changesets r6160 and r6161 from the 2.4 branch]
26096
260972009-04-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26098
26099	[INSTALL] updated Notes on AIX/PowerPC
26100
261012009-04-08  Philippe Théveny  <philippe.theveny@laposte.net>
26102
26103	NEWS mpfr.texi get_f.c: mpfr_get_f now returns the usual ternary value.
26104	tests/tget_f.c: test the ternary value and the erange flag.
26105
261062009-04-08  Vincent Lefèvre  <vincent@vinc17.net>
26107
26108	tests/tget_z.c: do not assume specific values of the ternary value.
26109	get_z.c: simplified code.
26110
26111	NEWS: s/an inexact value/a ternary value/
26112
261132009-04-08  Philippe Théveny  <philippe.theveny@laposte.net>
26114
26115	NEWS mpfr.texi get_z.c: mpfr_get_z now returns an inexact value.
26116	mpfr.h: change prototype of mpfr_get_z.
26117	tests/tget_z.c: test inexact value.
26118
261192009-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26120
26121	[mpf2mpfr.h] added comment for #endif
26122
261232009-04-08  Philippe Théveny  <philippe.theveny@laposte.net>
26124
26125	mpf2mpfr.h: fix typo
26126
261272009-04-02  Vincent Lefèvre  <vincent@vinc17.net>
26128
26129	get_z.c: fixed title in comment.
26130
261312009-04-01  Vincent Lefèvre  <vincent@vinc17.net>
26132
26133	get_z.c: detect out-of-range precision (such a detection could be missed
26134	if mpfr_exp_t > mpfr_prec_t).
26135
26136	Removed the comment from mpfr.h added in r6149, and patched get_z.c
26137	(safer code is better than a comment).
26138
26139	mpfr.h: important comment to validate the change done in r6147.
26140
26141	get_z_exp.c: updated comments.
26142
261432009-04-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26144
26145	[get_z.c] simplified the code, removed the FIXME
26146	[tget_z.c] added new test
26147
26148	[mpfr.texi] completed documentation of mpfr_get_z_exp (was incomplete for 0)
26149	[tget_z.c] added test case for 0 with emin > 0 (should give 100% coverage for
26150		   get_z.c)
26151
261522009-03-30  Philippe Théveny  <philippe.theveny@laposte.net>
26153
26154	strtofr.c tests/tset_str.c: Code simplification (sizeof (char) is always 1).
26155	vasprintf.c: Cast into size_t (just in case).
26156
26157	vasprintf.c: Code simplification (sizeof (char) is always 1).
26158
261592009-03-27  Philippe Théveny  <philippe.theveny@laposte.net>
26160
26161	acinclude.m4: remove definition of va_copy, just detect its presence.
26162	printf.c vasprintf.c: #define a replacement of va_copy if needed (in the same way as gmp).
26163
261642009-03-26  Philippe Théveny  <philippe.theveny@laposte.net>
26165
26166	acinclude.m4: Change MPFR_FUNC_PRINTF_SPEC (renamed MPFR_FUNC_GMP_PRINTF_SPEC) so that it actually checks output.
26167
261682009-03-25  Philippe Théveny  <philippe.theveny@laposte.net>
26169
26170	Change base upper limit in string conversion up to 62.
26171
261722009-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26173
26174	[mpfr.texi] fixed documentation of mpfr_get_str which was wrong
26175	[tget_str.c] added test cases for odd base and tie breaking case
26176	[get_str.c] fixed typos in comments
26177
26178	[tests/random2.c] added missing mpfr-test.h (revealed by nightly tests), and
26179			  removed mpfr-impl.h (already included in mpfr-test.h)
26180			  I have also removed MPFR_NEED_LONGLONG_H: I don't see why it
26181			  is needed, and all tests pass.
26182
261832009-03-24  Philippe Théveny  <philippe.theveny@laposte.net>
26184
26185	mpfr.texi: Add a note on mpfr_printf output in binary with precision one.
26186
26187	urandomb.c mpfr-gmp.c mpfr-gmp.h: mpfr_rand_raw is now in urandom.c.
26188	mpfr-impl.h: mpfr_rand_raw is now always build as an internal function.
26189	TODO tests/tests.c tests/random2.c: Use mpfr_rand_raw instead of _gmp_rand
26190
26191	Move mpfr_random2 to tests directory, remove it from API.
26192
26193	mpfr.texi: Improve documentation in Formatted Output Functions/Format String subsection.
26194
261952009-03-24  Vincent Lefèvre  <vincent@vinc17.net>
26196
26197	cos.c, sin.c: added MPFR_ASSERTN for huge expx.
26198
261992009-03-21  Vincent Lefèvre  <vincent@vinc17.net>
26200
26201	mpfr.texi: corrected mpfr_strtofr documentation ("NAN()" is accepted).
26202	tests/tstrtofr.c: added a test for "NAN()".
26203	Note: the code follows the ISO C99 standard for strtod, as explained
26204	in the mpfr_strtofr documentation, so that the code was correct.
26205	[merged changeset 6131 from the 2.4 branch and changed GMP_RNDN into
26206	MPFR_RNDN]
26207
262082009-03-19  Vincent Lefèvre  <vincent@vinc17.net>
26209
26210	mpfrlint: added some tests for acinclude.m4 and configure.in (sh).
26211
26212	Applied patch from Ralf Wildenhues.
26213	  * configure.in: Avoid unportable (and unneeded) shell quoting.
26214	  * acinclude.m4: Avoid non-POSIX shell construct.
26215
262162009-03-18  Vincent Lefèvre  <vincent@vinc17.net>
26217
26218	tests/tmin_prec.c: replaced GMP_RNDN by MPFR_RNDN.
26219
262202009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26221
26222	tests/tset_ld.c: removed unused variable.
26223
262242009-03-16  Philippe Théveny  <philippe.theveny@laposte.net>
26225
26226	tests/tset_ld.c: Add test case for the bug fixed with r6101.
26227
262282009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26229
26230	tests/tmin_prec.c: added tests.
26231
26232	tests: updated svn:ignore property.
26233
26234	min_prec.c: fixed another bug (the code was incorrect with >= 2 limbs).
26235
26236	tests/tmin_prec.c: bug fix (side effects in MPFR_ASSERTN), new tests.
26237
26238	README.dev: added a note about assertions and code with side effects.
26239
262402009-03-16  Philippe Théveny  <philippe.theveny@laposte.net>
26241
26242	tests/tfprintf.c: Use a value less than 2^31-1 compatible (thus < LONG_MAX) in bug_20090316 (cf r6112).
26243
262442009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26245
26246	Replaced GMP_RND* by MPFR_RND*.
26247
262482009-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26249
26250	[tests/tmin_prec.c] new file contributed from Laurent Fousse
26251	[tests/Makefile.am] added tmin_prec
26252
262532009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26254
26255	min_prec.c: removed a useless test.
26256
26257	min_prec.c: fixed another bug.
26258
262592009-03-16  Philippe Théveny  <philippe.theveny@laposte.net>
26260
26261	vasprintf.c: Add more debug assertion on the buffer size.
26262
26263	vasprintf.c: Fix bug_20090316 (in buffer_cat, the buffer was 1 character too small in some cases).
26264	tests/tfprintf.c: Add test for bug_20090316.
26265
262662009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26267
26268	tests/tadd.c: changed GMP_RND* (from r6071) into MPFR_RND*; this should
26269	have been done when porting the patch from the 2.4 branch.
26270
262712009-03-16  Philippe Théveny  <philippe.theveny@laposte.net>
26272
26273	tests/tprintf.c: Use new environment variable MPFR_CHECK_LARGEMEM for memory expensive test.
26274
262752009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26276
26277	min_prec.c: bug fixed by Laurent.
26278
262792009-03-16  Philippe Théveny  <philippe.theveny@laposte.net>
26280
26281	tests/tsprintf.c: Fix typo.
26282
262832009-03-16  Vincent Lefèvre  <vincent@vinc17.net>
26284
26285	Fixed the prototype of mpfr_min_prec (should return a mpfr_prec_t)
26286	and its description.
26287
26288	min_prec.c: fixed a bug (but the code should be improved).
26289
26290	min_prec.c: simplified the singular cases (see other functions).
26291
262922009-03-15  Laurent Fousse  <laurent@komite.net>
26293
26294	Add prototype for mpfr_min_prec in mpfr.h.
26295
26296	Add documentation for mpfr_min_prec.
26297
26298	New function mpfr_min_prec.
26299
263002009-03-15  Vincent Lefèvre  <vincent@vinc17.net>
26301
26302	get_ld.c: fixed bugs in the case HAVE_LDOUBLE_IEEE_EXT_LITTLE (one found
26303	by Steve Kargl, and another one concerning the mpfr_set_emax value).
26304
263052009-03-13  Philippe Théveny  <philippe.theveny@laposte.net>
26306
26307	vasprintf.c: This is probably dead code, but being uncertain, put an assert here.
26308
26309	vasprintf.c: As the buffer helper functions are not used in the current code with a zero parameter len, do not handle this case anymore, check that these cases do not happened in MPFR_ASSERTD macros, add some additional assert to ensure consistency.
26310
26311	vasprintf.c: make clear that string_buffer.curr is a pointer to the null terminating character, fix the only place where it was not handle so.
26312
26313	vasprintf.c: Fix bug.
26314
26315	tests/tprintf.c: Add an expensive test where the output number has more than INT_MAX characters.
26316	vasprintf.c: Fix the bug triggered by the new test in tsprintf.c.
26317
26318	mpfr.texi: Do cosmetic changes and add some details on printf behavior when the precision field is empty.
26319	tests/tsprintf.c: improve code coverage.
26320	tests/tprintf.c: improve code coverage, check the behavior describe in mpfr.texi.
26321
263222009-03-12  Vincent Lefèvre  <vincent@vinc17.net>
26323
26324	zeta_ui.c: correction r6090 was incorrect as there was another problem:
26325	the 3rd argument of mpz_divexact_ui is an unsigned long, not a limb.
26326	So, fixed the shift count (assuming no padding bits in unsigned long).
26327
26328	zeta_ui.c bug fix: a shift count could be >= width of type (if a limb is
26329	a long long and long long is twice the size of a long). This problem was
26330	detected by a warning on gcc40 with CFLAGS="-mpowerpc64 -mcpu=970 -O2".
26331
263322009-03-10  Vincent Lefèvre  <vincent@vinc17.net>
26333
26334	tests/tprintf.c: added missing cast to void * for %p.
26335
263362009-03-09  Vincent Lefèvre  <vincent@vinc17.net>
26337
26338	tests/tfprintf.c: added missing cast to void * for %p.
26339
26340	vasprintf.c: fixed bug in CONSUME_VA_ARG for case MP_LIMB_ARG (%Mu).
26341
26342	README.dev: GMP with ABI=mode32 should be tested on 64-bit PowerPC.
26343
263442009-03-06  Philippe Théveny  <philippe.theveny@laposte.net>
26345
26346	vasprintf.c: now return -1 when the format string is invalid (undefined behavior in standard C99)
26347	tests/tprintf.c: Additional checks with invalid format strings.
26348
26349	mpfr.texi: Add missing conversion specifier accepted with mpfr_t variable.
26350
263512009-03-06  Vincent Lefèvre  <vincent@vinc17.net>
26352
26353	add1.c: assertions on the argument values should use MPFR_ASSERTN.
26354
263552009-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26356
26357	[cache.c] improved comment for mpfr_init_cache
26358
26359	[add1.c] transformed switch() into if-then-else, to get 100% coverage
26360
263612009-03-06  Vincent Lefèvre  <vincent@vinc17.net>
26362
26363	untabify
26364
26365	update-faq: change GMP_RND into MPFR_RND from the version on the web
26366	(since MPFR 3.0 hasn't been released yet, the FAQ still uses the 2.x
26367	API).
26368
263692009-03-05  Vincent Lefèvre  <vincent@vinc17.net>
26370
26371	tests/tadd.c: completed the code coverage (case bk == 0 in add1.c).
26372
263732009-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26374
26375	[mpfr-impl.h,cache.c] commented out mpfr_init_cache
26376
26377	[const_catalan.c] decreased initial Ziv precision to get 100% coverage
26378
26379	[cmp2.c] added comments
26380	[tcmp2.c] added test to improve coverage to 100%
26381
26382	[atan2.c,tatan.c] reduced Ziv's initial precision and added test to have
26383			  100% coverage of atan2.c
26384
26385	[atan.c] coverage should now be 100%
26386
263872009-03-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26388
26389	[algorithms.bib] added new reference
26390	[TODO] added pointers
26391
263922009-03-04  Vincent Lefèvre  <vincent@vinc17.net>
26393
26394	mpfr-gmp.c (mpfr_assert_fail): output "MPFR" too in assertion failure
26395	messages.
26396
26397	Updated mpfrlint script.
26398
26399	mpfr.texi: updated month.
26400
26401	NEWS: say that the license has changed.
26402
264032009-03-03  Vincent Lefèvre  <vincent@vinc17.net>
26404
26405	Updated NEWS (function mpfr_random has been removed).
26406
264072009-03-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26408
26409	GMP_RNDX -> MPFR_RNDX
26410
264112009-03-03  Vincent Lefèvre  <vincent@vinc17.net>
26412
26413	tests: added taway to svn:ignore property.
26414
26415	Update to LGPL v3+, as decided by the main MPFR developers.
26416
264172009-02-27  Vincent Lefèvre  <vincent@vinc17.net>
26418
26419	Untabified and deleted trailing spaces (for patches).
26420
264212009-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26422
26423	[rint.c] fixed a bug incorporated with the round away mode
26424	[tget_sj.c] fixed the tests for round away
26425
26426	[rint.c] fixed bug with round away
26427	[taway.c] new test file for round away (with random values)
26428	[tests/Makefile.am] added taway
26429	[set_z.c] GNU style
26430
264312009-02-27  Philippe Théveny  <philippe.theveny@laposte.net>
26432
26433	tests/tests.c: Change test5rm (formerly test4rm) so that it checks the new
26434	GMP_RNDA rounding mode, and that the corresponding rounding towards infinity
26435	is checked with GMP_RNDZ or with GMP_RNDA in one-pass mode (now, two-pass
26436	mode). Remove a comment about a warning from gcc solved with r5057.
26437
264382009-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26439
26440	[rem1.c] fixed bug found in adding tests for round away
26441
26442	[add.c] added comment for 0 + 0 with round away
26443
264442009-02-26  Vincent Lefèvre  <vincent@vinc17.net>
26445
26446	tests/texceptions.c: removed obsolete comments from r2427.
26447
264482009-02-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26449
26450	[mpfr.h] added comment about order of rounding modes
26451	[texceptions.c] added comments, fixed typo
26452	[tsub.c] added test, fixed typo
26453
264542009-02-26  Philippe Théveny  <philippe.theveny@laposte.net>
26455
26456	Add tests with round away mode.
26457
264582009-02-26  Vincent Lefèvre  <vincent@vinc17.net>
26459
26460	Updated version to 3.0.0-dev.
26461
264622009-02-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26463
26464	added round to away (still experimental)
26465
26466	[mpfr.h] added comments for rounding modes
26467
264682009-02-26  Vincent Lefèvre  <vincent@vinc17.net>
26469
26470	Added svn:ignore property on the m4 directory (these .m4 files are
26471	generated automatically).
26472
26473	Makefile.am: updated -version-info (since mpfr_random has been removed,
26474	we already know its value).
26475
26476	Makefile.am: do not check libtool -version-info value if the VERSION
26477	file contains "-dev".
26478
26479	Makefile.am: In a "make dist", check that libtool -version-info value
26480	is up-to-date (this is a heuristic only).
26481
26482	README.dev: updated "To make a release" -- it is important to read
26483	this section entirely before making any release (even if some steps
26484	may be skipped for some particular releases).
26485
264862009-02-25  Vincent Lefèvre  <vincent@vinc17.net>
26487
26488	tests/tsprintf.c: do not use VLA's (C99 only).
26489
26490	README.dev: update about patches.
26491
26492	tests/tsprintf.c: coding style: removed spurious spaces.
26493
26494	mpfr.texi: updated month.
26495
26496	printf.c: fixed assertion failures in the case buffer == NULL and
26497	size == 0 (see r5995). Also replaced MPFR_ASSERTD(buf != NULL) by
26498	MPFR_ASSERTN(buf != NULL) since buf is provided as an argument.
26499
26500	tests/tsprintf.c: added mpfr_snprintf/mpfr_vsnprintf tests with
26501	buffer == NULL and size == 0 (as allowed in C99 snprintf/vsnprintf
26502	and by the MPFR documentation).
26503
265042009-02-25  Philippe Théveny  <philippe.theveny@laposte.net>
26505
26506	mpfr.texi: Fix typos.
26507
265082009-02-24  Vincent Lefèvre  <vincent@vinc17.net>
26509
26510	tuneup.c: untabified.
26511
265122009-02-24  Philippe Théveny  <philippe.theveny@laposte.net>
26513
26514	printf.c: Fix wrong return value, mpfr_snprintf and mpfr_vsnprintf functions must always return the number of character that would be written if the parameter n had been sufficiently large (it previously returned zero when n == 0).
26515	tests/tsprintf.c: Fix test of mpfr_snprintf and mpfr_vsnprintf (the wrong return value was checked).
26516
265172009-02-24  Vincent Lefèvre  <vincent@vinc17.net>
26518
26519	printf.c: fix buffer overflow in mpfr_snprintf and mpfr_vsnprintf.
26520
26521	tsprintf.c: added a test showing a buffer overflow in mpfr_vsnprintf.
26522
26523	tsprintf.c: added a test showing a buffer overflow in mpfr_snprintf.
26524
265252009-02-23  Vincent Lefèvre  <vincent@vinc17.net>
26526
26527	Changed how the test of MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and
26528	MPFR_VERSION_PATCHLEVEL vs MPFR_VERSION_STRING is performed.
26529	Detailed explanations:
26530	  The test was enabled only in release tarballs (suffix not present),
26531	  where tests/tversion.c normally contained a "#if 1" (though this
26532	  is not the case in the MPFR 2.4.0 tarball). In patches, this test
26533	  should be disabled by changing the "#if 1" into "#if 0", due to
26534	  the suffix. But as one should be able to apply any patches (in any
26535	  order), this method was not satisfactory. The test has been moved
26536	  from tests/tversion.c to tests/tests.c (in function test_version),
26537	  and the suffix is now ignored in this test; the change of #if has
26538	  been removed from the update-version script.
26539
265402009-02-20  Vincent Lefèvre  <vincent@vinc17.net>
26541
26542	README.dev: corrected update-version usage for patches.
26543
26544	FAQ update.
26545
265462009-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26547
26548	[mparam_h.in] added default thresholds for sparc64
26549	[tuneup.c] print gcc patchlevel
26550
265512009-02-19  Vincent Lefèvre  <vincent@vinc17.net>
26552
26553	speed.c, tests/texp.c: untabified.
26554
26555	mpfr.texi: improved mpfr_strtofr documentation (completing r5965).
26556
265572009-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26558
26559	[mparam_h.in] added tuning for powerpc64
26560
265612009-02-18  Philippe Théveny  <philippe.theveny@laposte.net>
26562
26563	strtofr.c: fix typo.
26564
26565	strtofr.c: accept bases up to 62.
26566	mpfr.texi: modify mpfr_strtofr documentation accordingly.
26567	tests/tstrtofr.c: add tests for bases 62, 60, and 61.
26568
265692009-02-17  Philippe Théveny  <philippe.theveny@laposte.net>
26570
26571	mparam_h.in: Change core2/64bit parameters.
26572
265732009-02-17  Vincent Lefèvre  <vincent@vinc17.net>
26574
26575	Checks whether C99 length modifiers 'hh' and 'll' are supported by the
26576	system ('hh' is absent on alpha-OSF1-V5, bug reported by Kate Minola).
26577	[Merged changeset 5956 from the 2.4 branch.]
26578
265792009-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26580
26581	[texp.c] yet another better fix
26582
26583	[texp.c] fixed previous patch and added comment
26584
26585	[texp.c] fixed corner case test
26586
265872009-02-16  Vincent Lefèvre  <vincent@vinc17.net>
26588
26589	README.dev: improved latest change.
26590
26591	README.dev: mentioned update-version for patches.
26592
265932009-02-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26594
26595	[mpfr-gfx.c] added -p option to produce a Postscript file
26596
265972009-02-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26598
26599	[mparam_h.in] added thresholds for ARM
26600
26601	[README.dev] added description of how to tune MPFR
26602
26603	[README.dev] added another example of using mpfr-gfx
26604
26605	[Makefile] modified Makefile to compile statically, and to allow also
26606		   build directories of GMP/MPFR
26607
266082009-02-10  Philippe Théveny  <philippe.theveny@laposte.net>
26609
26610	mbench/mpfr-gfx.c: add option -rPREC_RATIO for geometric progression.
26611
266122009-02-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26613
26614	[mparam_h.in] updated Itanium parameters (now for Itanium2)
26615
26616	[mparam_h.in] added symbol __itanium__ for Itanium[12]
26617
266182009-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26619
26620	[README.dev] fixed typo
26621	[mpfr-gfx.c] added comments in the code (might be useful)
26622
26623	[README.dev] added pointer to mbench to check the thresholds
26624
26625	[mpfr-gfx.c] now also produces a plot.gnuplot file together with plot.data
26626
26627	[mparam_h.in] updated default thresholds with gmp-4.2.4
26628
26629	[tuneup.c] fixed typo
26630
26631	[Makefile.am] added stuff to compile speed program
26632
26633	[speed.c] preliminary program to check the tuning of mpfr (based on tuneup.c)
26634	          So far it only measures mpfr_mul up to 1000 bits, with increment
26635		  ratio of 1.1. Requires --with-gmp-build like tuneup.
26636		  Feel free to improve!
26637
26638	[mparam_h.in] allow __tune_ia64__ in addition to __ia64
26639
26640	[mparam_h.in] replaced __pentium4 by __tune_pentium4__, ...
26641
266422009-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26643
26644	[acinclude.m4] removed detection of HAVE_HOST_CORE2
26645	[mparam_h.in] replaced HAVE_HOST_CORE2 by __tune_core2__
26646
266472009-02-06  Philippe Théveny  <philippe.theveny@laposte.net>
26648
26649	tests/mpf_compat.h: complete r5922 adding missing mpz_init/mpz_clear.
26650
266512009-02-06  Vincent Lefèvre  <vincent@vinc17.net>
26652
26653	TODO: updated efficiency items.
26654
266552009-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26656
26657	[TODO] added 2 efficiency items
26658
266592009-02-06  Vincent Lefèvre  <vincent@vinc17.net>
26660
26661	mpfr.texi: moved MPFR_DECL_INIT specification into Section
26662	"Initialization Functions" (now in the standard MPFR API),
26663	and removed now empty Section "Advanced Functions".
26664
266652009-02-05  Vincent Lefèvre  <vincent@vinc17.net>
26666
26667	mparam_h.in: updated comment to mention -march=native and -mtune=native.
26668
26669	mpfr.h: updated a comment concerning MPFR_DECL_INIT.
26670
266712009-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26672
26673	[mpf2mpfr.h] added mpz_set_f (reported by Francois Morain)
26674
26675	[mpfr.texi] moved mpfr_inits, mpfr_inits2, mpfr_clears to supported functions
26676	[TODO] added new info about MPIR
26677
266782009-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26679
26680	[TODO] added info to distinguish GMP and MPIR
26681
266822009-01-26  Vincent Lefèvre  <vincent@vinc17.net>
26683
26684	Updated the version on the trunk.
26685
266862009-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26687
26688	[nightly-test] removed --disable-alloca (GMP option)
26689
266902009-01-25  Vincent Lefèvre  <vincent@vinc17.net>
26691
26692	README.dev: --disable-alloca is a GMP configure option.
26693
266942009-01-21  Philippe Théveny  <philippe.theveny@laposte.net>
26695
26696	tests/tsprintf.c: remove tests against libc's printf with "%a" (not in ISO C90), and with "%p" (implementation defined).
26697	[merge -c 5885 from branches/2.4]
26698
266992009-01-21  Vincent Lefèvre  <vincent@vinc17.net>
26700
26701	mpfr-impl.h: avoid a compiler bug under Mac OS X Tiger + Xcode (&x == &x
26702	is false) that makes tset_d fail; this problem was introduced in r5880.
26703
267042009-01-20  Vincent Lefèvre  <vincent@vinc17.net>
26705
26706	Fixed bug reported by Chris Saunders: if _GMP_IEEE_FLOATS is defined,
26707	the build of tset_ld.c fails because DOUBLE_ISNAN expects a lvalue.
26708	* mpfr-impl.h: documented that for such macros, the argument must
26709	  be a lvalue, and always make sure that it is a lvalue (so that
26710	  a failure doesn't depend on the environment).
26711	* tests/tset_ld.c: fixed the bug.
26712
26713	tests/tversion.c: be more tolerant when checking whether gmp.h version
26714	and libgmp version are the same (in case patch level is 0).
26715
26716	tests/tset_ld.c: added explanation of NaN-related failures in case
26717	MPFR_NANISNAN is defined.
26718
26719	Added missing void's.
26720
26721	tests/tsprintf.c: removed a blank line (for consistency with the
26722	2.4 branch).
26723
26724	vasprintf.c: deleted trailing spaces.
26725
267262009-01-19  Vincent Lefèvre  <vincent@vinc17.net>
26727
26728	mpfr-impl.h: comment for DOUBLE_ISNAN with MPFR_NANISNAN defined.
26729
26730	tests/tset_d.c: fixed test of mpfr_set_d on -0 with gcc -ffast-math
26731	(the -d for d = 0.0 was giving 0.0, hence a spurious failure).
26732
26733	mpfr-impl.h: the DOUBLE_ISNAN macro wasn't working with gcc -ffast-math
26734	(at least on x86_64); fixed that by adding another test.
26735	tests/tset_ld.c: Isnan_ld wasn't working either; also the NaN test was
26736	incorrect. Now, the failure on NaN is correctly reported.
26737
26738	tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: corrected message.
26739
26740	tests/tcmp_d.c, tests/tcmp_ld.c, tests/tset_d.c: added explanations
26741	of NaN-related failures in case MPFR_NANISNAN is defined.
26742	Note: in tset_d.c, moved the NaN test before the signed-zero test
26743	to catch the failure on the NaN first.
26744
26745	acinclude.m4: improved warning message.
26746
26747	INSTALL: updated "In case of problem".
26748
26749	acinclude.m4: added a warning message for the NAN != NAN test.
26750
267512009-01-19  Philippe Théveny  <philippe.theveny@laposte.net>
26752
26753	tcmp_d.c tset_d.c tcmp_ld.c: Remove tests with NaN when MPFR_NANISNAN is defined.
26754	tests.c: Add a warning in a comment that Isnan always returns 0 on systems where MPFR_NANISNAN is defined.
26755
26756	vasprintf.c: do not support 't' when NPRINTF_T is defined, HAVE_STDINT_H -> _MPFR_H_HAVE_INTMAX_T.
26757
26758	tests/tfprintf.c: renumber tests (there was two tests #9).
26759
267602009-01-19  Vincent Lefèvre  <vincent@vinc17.net>
26761
26762	tests/tfprintf.c: %c takes an int argument, not a char (see C standard).
26763
26764	tests/tprintf.c, tests/tsprintf.c:
26765	  * %c takes an int argument, not a char (see C standard), even though
26766	    this may be equivalent due to integer promotion.
26767	  * Add void in prototypes of functions taking no arguments.
26768
26769	mpfr.texi: updated references to the GMP manual.
26770
26771	mpfr.texi: typo in comment.
26772
26773	mpfr.texi: added .info extension in cross-references, to avoid the bug
26774	reported here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484740
26775
26776	mpfr.texi: added a reference to a texinfo bug in a comment.
26777
26778	mpfr.texi: added missing @code{}.
26779
26780	mpfr.texi: don't -> do not, doesn't -> does not, won't -> will not.
26781
26782	mpfr.texi: improved Section "Format String".
26783
267842009-01-19  Philippe Théveny  <philippe.theveny@laposte.net>
26785
26786	tests/tsprintf.c: check if native types are really processed by libc printf.
26787
267882009-01-19  Vincent Lefèvre  <vincent@vinc17.net>
26789
26790	README.dev: no longer mentions HAVE_QUAD_T since it is no longer used.
26791
267922009-01-19  Philippe Théveny  <philippe.theveny@laposte.net>
26793
26794	mpfr.texi: Explicit list of type supported by mpfr_printf functions.
26795	acinclude.m4: Remove detection of type modifier 'q'.
26796	vasprintf.c: Remove support of type modifier 'q'.
26797	tests/tfprintf.c tests/tprintf.c: Remove tests with type modifier 'q'.
26798
26799	INSTALL: Warn that --with-gmp, --with-gmp-include/--with-gmp-lib, and --with-gmp-build options are mutually exclusive.
26800	configure.in: Check and fail if --with-gmp, --with-gmp-include/--with-gmp-lib, or --with-gmp-build are use simultaneously.
26801
268022009-01-19  Vincent Lefèvre  <vincent@vinc17.net>
26803
26804	tests/tests.c: include <sys/fpu.h> only if need be.
26805
268062009-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26807
26808	[mpfr.texi] made difference between mpfr_set_str and mpfr_strtofr clearer
26809		(after remark from Luis Rivera)
26810
26811	[mpfr.texi] fixed order -> kind (typo found by Luis Rivera, thanks)
26812
268132009-01-16  Philippe Théveny  <philippe.theveny@laposte.net>
26814
26815	tfprintf.c tprintf.c: Test double with "%f" instead of "%e" so as to avoid failure due to exponent "e+000" on MS Windows.
26816
26817	tests/tfprintf.c tests/tsprintf.c tests/tprintf.c acinclude.m4 vasprintf.c: No longer check libc's printf.
26818
26819	acinclude.m4: Check if %Ld specification is supported (not always the case with MS Windows)
26820	tests/tfprintf.c tests/tprintf.c tests/tsprintf.c: do not check %Ld specification when not available.
26821
26822	get_uj.c get_sj.c tests/tset_sj.c tests/tfits.c fits_intmax.c fits_uintmax.c set_uj.c set_sj.c: make #include-s for intmax_t uniform.
26823	vasprintf.c: make #include-s for intmax_t uniform and use _MPFR_H_HAVE_INTMAX_T instead of HAVE_INTMAX_T.
26824
268252009-01-15  Philippe Théveny  <philippe.theveny@laposte.net>
26826
26827	tfprintf.c tprintf.c: Remove tests with u_quad_t (on Solaris 10, quad_t exists but u_quad_t doesn't, bug reported by Michael Abshoff).
26828
26829	tfprintf.c tprintf.c: Fix included headers, type intmax_t may be defined in inttypes.h or in stdint.h (see autoconf manual 5.6.1 Portability of Headers).
26830
268312009-01-15  Vincent Lefèvre  <vincent@vinc17.net>
26832
26833	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
26834
26835	vasprintf.c: deleted trailing spaces.
26836
26837	configure.in: be more tolerant when checking whether gmp.h version
26838	and libgmp version are the same (in case patch level is 0).
26839
26840	Copyright notice update: added 2009 with
26841	  perl -pi -e 's/2008 Free Software/2008, 2009 Free Software/' **/*(^/)
26842	under zsh.
26843
268442009-01-14  Vincent Lefèvre  <vincent@vinc17.net>
26845
26846	Fixed remaining printf format strings.
26847
26848	tests/tadd1sp.c, tests/tsub1sp.c: fixed function prototypes.
26849
26850	tests/teq.c, tests/tests.c: fixed printf format strings.
26851
26852	tests/tcmp2.c: fixed printf format strings.
26853
268542009-01-13  Vincent Lefèvre  <vincent@vinc17.net>
26855
26856	tests/tset_str.c: fixed printf format string.
26857
268582009-01-12  Vincent Lefèvre  <vincent@vinc17.net>
26859
26860	mpfr.texi: consistency changes and corrections concerning the "erange"
26861	flag (do not use @code{} as this is not an identifier, @emph{} is used
26862	as this is not an English word -- but @emph{} should probably be used
26863	too for the other flag names).
26864
26865	mpfr.texi: typo.
26866
268672009-01-12  Philippe Théveny  <philippe.theveny@laposte.net>
26868
26869	acinclude.m4: New macro MPFR_CHECK_PRINTF_SPEC looking for support of the "%jd", "%qd", and "%td" conversion specifications in printf and gmp_printf.
26870	configure.in: Call MPFR_CHECK_PRINTF_SPEC when we can link against a suitable gmp library and run test programs at compile time, otherwise (for instance, when cross compiling), everything is enable by default.
26871	vasprintf.c: Disable support for length modifiers not supported by libc's printf ('j' and 'q' for this time).
26872	tests/tprintf.c, tests/tfprintf.c: Disable tests for length modifiers not supported by gmp_printf ('j', 'q', and 't' for this time).
26873
26874	mpfr.texi: Fix typo.
26875
268762009-01-08  Vincent Lefèvre  <vincent@vinc17.net>
26877
26878	mpfr.texi: update to January 2009.
26879
26880	Removed useless #include of gmp.h from tests/tfprintf.c and
26881	tests/tsprintf.c for consistency.
26882
268832009-01-08  Philippe Théveny  <philippe.theveny@laposte.net>
26884
26885	tests/tfprintf.c: Make tests with 'M' specifier optional.
26886	mpfr.texi: Add a warning that gmp may not support 'M' specifier.
26887	vasprintf.c: Add warning comment about 'M' specifier.
26888
26889	mpfr.texi: Fix wrong definition of rounding specifiers.
26890
268912008-12-30  Vincent Lefèvre  <vincent@vinc17.net>
26892
26893	out_str.c: added assert (check that base is in the required range).
26894
268952008-12-26  Vincent Lefèvre  <vincent@vinc17.net>
26896
26897	README.dev: suggest "-Wformat=2".
26898
26899	zeta.c: fixed types for printf when DEBUG is defined.
26900
26901	sub1sp.c: fixed types for printf when WANT_ASSERT >= 2 and
26902	when DEBUG is defined.
26903
26904	sub1.c: fixed types for printf when DEBUG is defined.
26905
26906	set_d64.c: set T[] to unsigned int (instead of int) since its values
26907	are printed with %u.
26908
26909	add1sp.c: fixed types for printf when DEBUG is defined.
26910
26911	mpfr-impl.h: fixed MPFR_UNSIGNED_MINUS_MODULO logic and added missing
26912	parentheses.
26913
26914	div.c: fixed types for fprintf when DEBUG and/or DEBUG2 is defined.
26915
26916	div.c: fixed #ifdef.
26917
26918	round_p.c: fixed types for fprintf when WANT_ASSERT >= 2 (since
26919	mp_prec_t is unsigned, it's better to use unsigned long).
26920
26921	round_p.c: fixed types for fprintf when WANT_ASSERT >= 2.
26922
269232008-12-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26924
26925	[mpfr.tex] improve documentation of %P
26926
269272008-12-18  Vincent Lefèvre  <vincent@vinc17.net>
26928
26929	Deleted trailing spaces.
26930
269312008-12-17  Philippe Théveny  <philippe.theveny@laposte.net>
26932
26933	tests/tsprintf.c: clean-up code, improve comment, and put optional tests in tail so that they fail last.
26934
26935	tests/tsprintf.c: Add two regression tests.
26936
269372008-12-16  Philippe Théveny  <philippe.theveny@laposte.net>
26938
26939	acinclude.m4, vasprintf.c, tests/tfprintf.c, tests/tprintf.c, mpfr.texi: quad_t support
26940
26941	tests/tfprintf.c: code clean-up and output improvement.
26942	tests/tprintf.c: code clean-up.
26943	Note that unsigned long long variable is not set to 1 instead of -1 which was architecture dependent.
26944
269452008-12-16  Vincent Lefèvre  <vincent@vinc17.net>
26946
26947	tests/tprintf.c:
26948	  * stdout_redirect is a boolean (i.e., 0 or 1).
26949	  * output freopen(..., stdout) error message to stderr.
26950
269512008-12-16  Philippe Théveny  <philippe.theveny@laposte.net>
26952
26953	tfprintf.c: more user-friendly messages.
26954	tprintf.c: more user-friendly messages. Warning: because stdout might be redirected, error messages are printed to stderr.
26955
269562008-12-15  Vincent Lefèvre  <vincent@vinc17.net>
26957
26958	mpfr.texi: more explanations on the precision field for mpfr_printf.
26959
26960	untabify and remove trailing spaces
26961
269622008-12-15  Philippe Théveny  <philippe.theveny@laposte.net>
26963
26964	mpfr.texi: more explanations on the precision field.
26965
26966	mpfr.texi: Clearly mention that the length modifier 'q' is unsupported by mpfr-*printf.
26967	vasprintf.c: Do not take quad_t as a long long but as an insupported length modifier.
26968	acinclude.m4: Remove check for quad_t.
26969	tests/tprintf.c tests/tfprintf.c: Remove tests with 'q' length modifier.
26970
269712008-12-15  Vincent Lefèvre  <vincent@vinc17.net>
26972
26973	tests/tstrtofr.c: fixed a test (in case |res| > 1).
26974
26975	tests/tstrtofr.c: fixed alignment bug in error message.
26976
269772008-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26978
26979	[nightly-test] added MPFR_CHECK_LIBC_PRINTF
26980
269812008-12-15  Philippe Théveny  <philippe.theveny@laposte.net>
26982
26983	acinclude.m4: Check for quad_t.
26984	vasprintf.c: Accept length modifier 'q' if HAVE_QUAD_T is defined (instead of HAVE_LONG_LONG).
26985	README.dev: Add notice for new HAVE_QUAD_T macro.
26986
269872008-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
26988
26989	[mpfr.texi] added warning about usage of mpfr_init
26990
269912008-12-15  Vincent Lefèvre  <vincent@vinc17.net>
26992
26993	tests/tprintf.c: _MPFR_H_HAVE_INTMAX_T -> HAVE_STDINT_H for <stdint.h>.
26994
269952008-12-15  Philippe Théveny  <philippe.theveny@laposte.net>
26996
26997	tests/tsprintf.c: Tests against libc's sprintf function are no more executed unless the MPFR_CHECK_LIBC_PRINTF is defined.
26998
26999	tests/tsprintf.c: move bugs 20080610 and 20081214 outside the function random_double.
27000
270012008-12-15  Vincent Lefèvre  <vincent@vinc17.net>
27002
27003	tests/tsprintf.c: completed comment about the sign of a null exponent.
27004
27005	INSTALL: added a note saying the L modifier was added in C89 (source:
27006	C99 rationale, Section 7.19.6.1).
27007
270082008-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27009
27010	[INSTALL] more Windows-related changes
27011
27012	[INSTALL] update on Windows (from Brian Gladman)
27013
27014	[configure.in] removed useless comment
27015
270162008-12-14  Vincent Lefèvre  <vincent@vinc17.net>
27017
27018	INSTALL: references to ISO (international) instead of ANSI (American).
27019
27020	tests/tsprintf.c: corrected a comment.
27021
270222008-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27023
27024	[printf.c,vasprintf.c] include config.h if HAVE_CONFIG_H is defined, to
27025			       solve problem noticed by Brian Gladman
27026
270272008-12-14  Vincent Lefèvre  <vincent@vinc17.net>
27028
27029	tests/tsprintf.c: untabified.
27030
270312008-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27032
27033	[INSTALL] added hint for using the MinGW runtime
27034
27035	[tsprintf.c] added new hard-coded test (needs work to overcome error in
27036		system asprintf)
27037
27038	[tsprintf.c] fixed hard-coded test (spec was missing), and print values of
27039	             xi,yi,spec in case of error
27040
270412008-12-14  Vincent Lefèvre  <vincent@vinc17.net>
27042
27043	INSTALL: corrections on r5730.
27044
270452008-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27046
27047	[INSTALL] added notes on Windows Vista 64 problem
27048
270492008-12-12  Vincent Lefèvre  <vincent@vinc17.net>
27050
27051	README: added "compile" since it is distributed in the tarball.
27052
27053	Added "compile" to svn:ignore property (this file is installed by
27054	"automake --add-missing" due to AM_PROG_CC_C_O, added in r5710).
27055
27056	vasprintf.c: avoid an abort if field width or precision is > INT_MAX.
27057
270582008-12-12  Philippe Théveny  <philippe.theveny@laposte.net>
27059
27060	tests.c, tset_ld.c, tgeneric.c: Code clean-up based on icc warnings (as in r5492): Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
27061
27062	configure.in: remove line 'GCC=' in icc tests which seems to confuse libtool.
27063
270642008-12-12  Vincent Lefèvre  <vincent@vinc17.net>
27065
27066	set_ld.c: rewrote exp computation.
27067
27068	vasprintf.c: avoid a possible gcc 4.1.2 bug with -ftrapv.
27069
27070	vasprintf.c: revert incorrect change in r5713.
27071
270722008-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27073
27074	[set_ld.c] fixed problem with CC=g++ on 64-bit computer:
27075	$ g++ -v
27076	Using built-in specs.
27077	Target: x86_64-linux-gnu
27078	Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu
27079	Thread model: posix
27080	gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
27081
27082	[vasprintf.c] patch to MPFR_ASSERTN(...) call to avoid failure with gcc -ftrapv
27083		      with gcc 4.1.2 (probably compiler error)
27084
270852008-12-12  Philippe Théveny  <philippe.theveny@laposte.net>
27086
27087	Makefile.am, tmul.c: Rename macro __SRCDIR to MPFR_SRCDIR.
27088
270892008-12-11  Philippe Théveny  <philippe.theveny@laposte.net>
27090
27091	configure.in: Add AM_PROG_CC_C_O needed by tmul_CPPFLAGS.
27092	tests/Makefile.am: Add tmul.dat in EXTRA_DIST and pass srcdir to tmul.c through tmul_CPPFLAGS.
27093	tests/tmul.c: Add path to tmul.dat.
27094
270952008-12-09  Vincent Lefèvre  <vincent@vinc17.net>
27096
27097	INSTALL: TLS on darwin may work, but I don't know anything more.
27098	See thread <https://gcc.gnu.org/legacy-ml/gcc/2008-12/msg00107.html>.
27099
271002008-12-08  Vincent Lefèvre  <vincent@vinc17.net>
27101
27102	README: CVS -> Subversion.
27103
271042008-12-03  Vincent Lefèvre  <vincent@vinc17.net>
27105
27106	configure.in: format --enable-decimal-float description on 80 columns.
27107
27108	configure.in: for --enable-thread-safe, say that the system must support
27109	it (like what has been done for --enable-logging, just above).
27110
27111	INSTALL: added details about ---enable-thread-safe and TLS support.
27112
271132008-11-28  Vincent Lefèvre  <vincent@vinc17.net>
27114
27115	urandomb.c: added comments and cleaned up code.
27116	mpfr.texi: improved description of mpfr_urandomb.
27117
271182008-11-26  Vincent Lefèvre  <vincent@vinc17.net>
27119
27120	mpfr.texi: changed URL added in r5696 to avoid a redirection.
27121
271222008-11-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27123
27124	[mpfr.texi] added official url on ftp.gnu.org
27125
271262008-11-26  Vincent Lefèvre  <vincent@vinc17.net>
27127
27128	tests/tmul.c: removed useless variable.
27129
27130	tests/tmul.c: made reading a string from file more robust.
27131
271322008-11-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27133
27134	[tmul.c] moved long strings to file tmul.dat, so that gcc -ansi
27135		 -pedantic-errors works (ISO C90 does not support strings of length
27136		 > 509)
27137
271382008-11-26  Vincent Lefèvre  <vincent@vinc17.net>
27139
27140	tests/tinternals.c: updated tests for guaranteed C90 support, e.g. with
27141	gcc -ansi -pedantic-errors (avoid error "string length 'nnn' is greater
27142	than the length '509' ISO C90 compilers are required to support" because
27143	expression for #expr in ASSERT_FAIL macro is too long).
27144
27145	README.dev: in Section "To make a release", suggest -pedantic-errors.
27146
271472008-11-22  Vincent Lefèvre  <vincent@vinc17.net>
27148
27149	r5689 undone: some casts were incorrect (mp_exp_t may be greater than
27150	mp_prec_t, so that casting a mp_exp_t into a mp_prec_t can introduce a
27151	bug). There may be bugs in some cases, but the casts fix the symptom,
27152	not the bug (unless one casts the unsigned type to a signed type that
27153	is *strictly* larger, which is not possible here).
27154
271552008-11-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27156
27157	fixed some signed/unsigned warnings with g++ (please review)
27158
271592008-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27160
27161	[nightly-test] removed MPFR_CHECK_ALL (no longer used)
27162	               added possibility to choose compiler (e.g., g++)
27163
27164	[README.dev] better check ./configure CC=g++
27165
271662008-11-21  Philippe Théveny  <philippe.theveny@laposte.net>
27167
27168	Fix inclusion order: the limit of integer types like size_t are defined in C++ only when __STDC_LIMIT_MACROS is defined before <stdint.h> is included (from ISO C99 7.18.3).
27169
271702008-11-21  Vincent Lefèvre  <vincent@vinc17.net>
27171
27172	README: added m4 directory (since it is distributed in the tarball).
27173
271742008-11-20  Vincent Lefèvre  <vincent@vinc17.net>
27175
27176	Forgot to update Makefile.am too (for r5680).
27177
27178	configure.in: added AC_CONFIG_MACRO_DIR([m4]) for r5680.
27179
271802008-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27181
27182	[mpfr-gmp.c] added comment on recent bug fix on MacOS
27183
27184	[tests] changes to make compilation work with g++ (only fixed errors,
27185	        several warnings remain)
27186
271872008-11-20  Vincent Lefèvre  <vincent@vinc17.net>
27188
27189	Added m4/size_max.m4 file (from gettext).
27190
27191	README.dev: paragraph on tentative definitions.
27192
271932008-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27194
27195	[mpfr-gmp.c] replace tentative definitions by real definitions, solves
27196		     configure problems with mpc (see https://lists.gforge.inria.fr/pipermail/mpc-discuss/2008-November/000048.html)
27197
271982008-11-18  Vincent Lefèvre  <vincent@vinc17.net>
27199
27200	hypot.c: updated a comment.
27201
27202	tests/thypot.c: added a test.
27203
27204	hypot.c: simplified an expression; cosmetic changes.
27205
272062008-11-17  Philippe Théveny  <philippe.theveny@laposte.net>
27207
27208	hypot.c: Fix underflow problem when diff_exp<=MPFR_EMAX_MAX-2 using fma (provided that mpfr_fma is immune to it).
27209
27210	algorithms.tex: Fix one typo in dilogarithm section.
27211
272122008-11-12  Vincent Lefèvre  <vincent@vinc17.net>
27213
27214	mpfr.texi, NEWS: update concerning mpfr_eq.
27215
27216	mpfr.texi: improved mpfr_eq documentation.
27217
272182008-11-12  Philippe Théveny  <philippe.theveny@laposte.net>
27219
27220	tests/tstrtofr.c: Add more information when test bug20081028 fails.
27221
272222008-11-07  Philippe Théveny  <philippe.theveny@laposte.net>
27223
27224	strtofr.c: Replace non-zero digits look up by a simpler test, using the fact that parse_string did remove zeros at end of pstr->mant.
27225	tests/tstrtofr.c: Add other test values around 1 for the bug20081028 non regression test.
27226
272272008-11-07  Vincent Lefèvre  <vincent@vinc17.net>
27228
27229	strtofr.c: improved style ("exact" is a boolean).
27230
272312008-11-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27232
27233	[strtofr.c]  new patch (ternary value was still wrong in some cases), should
27234		     be ok now
27235	[tstrtofr.c] added new test
27236
272372008-11-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27238
27239	[strtofr.c] review of patch added in revision 5660, and added comments
27240
272412008-10-29  Vincent Lefèvre  <vincent@vinc17.net>
27242
27243	Updated NEWS file.
27244
27245	strtofr.c: in r5660, as pstr_size and pstr->prec both have type size_t,
27246	changed the type of i from mp_size_t to size_t for consistency.
27247
27248	strtofr.c: reverted the change done in r3008, which led to a trivial
27249	assertion. I think the goal is to make sure that pstr_size (of type
27250	size_t) can be represented in a mp_exp_t (as required in the code).
27251
272522008-10-29  Philippe Théveny  <philippe.theveny@laposte.net>
27253
27254	strtofr.c: fix bug '[#6604] incorrect directed rounding in mpfr_strtofr'.
27255
272562008-10-29  Vincent Lefèvre  <vincent@vinc17.net>
27257
27258	configure.in: replaced $(...) quoting style by "`...`" since the former
27259	is not supported everywhere (and indeed is not used by the autotools):
27260	https://gmplib.org/list-archives/gmp-bugs/2008-October/001185.html
27261
27262	tests/tstrtofr.c: added bug20081028 (bug found by Christoph Lauter
27263	in mpfr_set_str; this is the corresponding bug in mpfr_strtofr).
27264
27265	tests/tstrtofr.c: corrections related to C usage.
27266
27267	tests/tset_str.c: added bug20081028 (bug found by Christoph Lauter).
27268
272692008-10-27  Vincent Lefèvre  <vincent@vinc17.net>
27270
27271	mpfr.texi: updated @dircategory (request by Karl Berry).
27272
27273	This is now GNU MPFR!
27274
27275	README: CVS -> Subversion.
27276
272772008-10-23  Philippe Théveny  <philippe.theveny@laposte.net>
27278
27279	vasprintf.c: Fix bug with '#' and 'g' flag combination, see also defect report at  http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_233.htm.
27280	tests/tsprintf.c: Fix wrong test value accordingly, add non-regression tests.
27281
272822008-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27283
27284	[get_d64.c,set_d64.c] added reference to TR 24732
27285
272862008-10-16  Vincent Lefèvre  <vincent@vinc17.net>
27287
27288	mpfr.h: added a comment about MPFR_SIGN.
27289
272902008-10-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27291
27292	[mpfr.h] fixed typo, and added warning about MPFR_SIGN.
27293		 Shouldn't we move it in mpfr-impl.h?
27294
272952008-10-03  Vincent Lefèvre  <vincent@vinc17.net>
27296
27297	INSTALL, configure.in: corrected documentation of --with-gmp* options.
27298
272992008-10-02  Vincent Lefèvre  <vincent@vinc17.net>
27300
27301	INSTALL: gave more details about --with-gmp-build.
27302
273032008-10-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27304
27305	[INSTALL] added warning about usage of --with-gmp-build
27306
273072008-09-21  Vincent Lefèvre  <vincent@vinc17.net>
27308
27309	TODO: updated LIA-2 terminology ("pole" was in the latest public draft,
27310	"infinitary" in the final standard).
27311
273122008-09-19  Philippe Théveny  <philippe.theveny@laposte.net>
27313
27314	tests/tstrtofr.c: Remove underflow test unintentionally committed with revision 5640.
27315
273162008-09-18  Philippe Théveny  <philippe.theveny@laposte.net>
27317
27318	Remove obsolete mpfr_random function and replace it by mpfr_urandomb in tests.
27319
27320	Add void in prototype.
27321
273222008-09-18  Vincent Lefèvre  <vincent@vinc17.net>
27323
27324	tests/tests.c: added comments about the MPFR_FPU_PREC macro.
27325
273262008-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27327
27328	[tget_str.c] replaced 'double' input by 'char*' to avoid problems with single
27329	             precision (partially solves #3353)
27330
273312008-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27332
27333	[README.dev] added item about coverage of releases
27334
273352008-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27336
27337	final got rid of generic.c (bug 6199)
27338
27339	[generic.c] removed unused file
27340
273412008-09-16  Vincent Lefèvre  <vincent@vinc17.net>
27342
27343	NEWS, mpfr.texi: documented the fact that mpfr_random and mpfr_random2
27344	will be suppressed in the next release.
27345
27346	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".
27347
273482008-09-10  Philippe Théveny  <philippe.theveny@laposte.net>
27349
27350	tests/tpow_z.c: Check test for bug20080904 with the minimum possible negative exponent so as not to underflow with (future) 128 bits machine.
27351
273522008-09-06  Vincent Lefèvre  <vincent@vinc17.net>
27353
27354	pow.c: fixed bug20080904 (from tpow_z.c).
27355
27356	pow.c: added log messages.
27357
273582008-09-05  Philippe Théveny  <philippe.theveny@laposte.net>
27359
27360	tests/tpow_z.c: Add a test that underflows.
27361
273622008-09-05  Vincent Lefèvre  <vincent@vinc17.net>
27363
27364	configure.in: updated a comment (for the next automake version).
27365
27366	NEWS: added a note about mpfr_init_gmp_rand (removed in r4953).
27367
273682008-09-04  Vincent Lefèvre  <vincent@vinc17.net>
27369
27370	README.dev: update (about AM_MAINTAINER_MODE).
27371
273722008-09-02  Vincent Lefèvre  <vincent@vinc17.net>
27373
27374	Updated README file.
27375
273762008-09-01  Vincent Lefèvre  <vincent@vinc17.net>
27377
27378	Removed patch-libtool and updated README.dev as libtool has been fixed.
27379
27380	NEWS file update (get default $CC and $CFLAGS from gmp.h).
27381
27382	configure.in: removed a useless blank line.
27383
27384	README.dev: reverse-merged r5440 (about __GMP_CC/__GMP_CFLAGS) as said.
27385
273862008-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27387
27388	[algorithms.tex] the truncation error for rec_sqrt was correct, but the
27389	reasoning was not detailed enough
27390
273912008-08-27  Vincent Lefèvre  <vincent@vinc17.net>
27392
27393	Added patch-aclocal-icc; this is a port of the patch posted on
27394	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485421
27395	for aclocal.m4 when libtool 1.5.26-4 from Debian has been used.
27396
273972008-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27398
27399	[rec_sqrt.c] fixed bug "bad_case1" (truncation error was forgotten, when
27400	output precision was smaller than input precision)
27401
274022008-08-27  Vincent Lefèvre  <vincent@vinc17.net>
27403
27404	mpfr.texi: updated the month.
27405
274062008-08-26  Vincent Lefèvre  <vincent@vinc17.net>
27407
27408	tests/trec_sqrt.c: enable the tests only with MPFR 2.4.0+.
27409
27410	NEWS: noted when some changes were applied in 2.3.* versions.
27411
274122008-08-25  Vincent Lefèvre  <vincent@vinc17.net>
27413
27414	README.dev: completed information about integer types.
27415
27416	README.dev: added information about mixing signed and unsigned types.
27417
27418	li2.c: avoid even more mixing between signed and unsigned types, by
27419	casting mpfr_prec_t to mp_exp_t in expressions involving mp_exp_t.
27420	This time the bug is fixed: tli2 no longer freezes in 64 bits.
27421
27422	li2.c: use an "int" instead of "unsigned int" in li2_series() to avoid
27423	mixing signed and unsigned types, which can yield implicit conversions
27424	from signed into unsigned, and maybe problems on some platforms. This
27425	doesn't fix the current freeze of tli2 on 64-bit machines, though.
27426
274272008-08-24  Vincent Lefèvre  <vincent@vinc17.net>
27428
27429	tests/tgeneric.c: changed the way a warning with gcc 4.2+ is avoided
27430	(r5335), as suggested by Manuel López-Ibáñez on GCC bug 36299.
27431
274322008-08-21  Vincent Lefèvre  <vincent@vinc17.net>
27433
27434	Added data_check support to mpfr_sqr.
27435	Added bad_cases support to mpfr_sqr and mpfr_sqrt.
27436
27437	tests/tsqr.c: corrected function definitions.
27438
27439	Added data_check & bad_cases support to mpfr_rec_sqrt.
27440
27441	tests/trec_sqrt.c: added bad case that makes mpfr_rec_sqrt fail.
27442
27443	mpfr-impl.h: as not all ICC versions define the __ICC macro (only
27444	the __INTEL_COMPILER macro can be defined), define the __MPFR_ICC
27445	and __MPFR_GNUC macros in another way.
27446
27447	tests/tsprintf.c: fixed compilation failure when HAVE_DENORMS isn't
27448	defined, such as with icc 10.1 on Itanium.
27449
27450	tests/tprintf.c: to allow random values to be reproducible,
27451	do not call randlimb several times in a same expression,
27452	because the evaluation order is unspecified.
27453
27454	tests/tpow_all.c: added test of mpfr_rec_sqrt (only with MPFR 2.4.0+).
27455
27456	tests/tpow_all.c: removed useless parentheses.
27457
27458	rec_sqrt.c: added logging support.
27459
27460	algorithms.tex: replaced "towards" by "toward" for consistency with
27461	the MPFR manual and the standards.
27462
27463	algorithms.tex: corrected English usage, spelling and typography
27464	in the section on mpfr_hypot.
27465
274662008-08-20  Vincent Lefèvre  <vincent@vinc17.net>
27467
27468	tests/thypot.c: added a test for tiny x and y (already done by the
27469	generic tests, but not yet in the 2.3 branch in extended exponent
27470	range).
27471
27472	tests/tgeneric.c: for the special cases tested in precision p1
27473	for n <= 3, set the extended exponent range.
27474
27475	tests/thypot.c: improved error messages.
27476
27477	tests/thypot.c: perform some tests both in the current exponent range
27478	and in the extended exponent range, so that the lost-overflow bug of
27479	MPFR 2.3.1 can be triggered on 64-bit machines too.
27480
27481	tests/tpow_all.c:
27482	  * In cmpres(), if z1 and z2 were both zeros, their sign wasn't tested.
27483	  * Added test of mpfr_sqr and mpfr_sqrt.
27484
27485	mpfr.texi: added a paragraph on MPFR internal data.
27486
27487	pow_si.c: fixed the underflow/overflow detection for n < 0 by using
27488	a method similar to mpfr_pow_z.
27489
27490	pow_si.c: added logging support.
27491
27492	pow.c: fixed bug in mpfr_pow_general by computing correct bounds
27493	on exp(y*ln|x|). ==> tpow no longer fails in bug20080820.
27494	Note: this bug could affect only underflow cases and possibly cases
27495	near overflow.
27496
27497	tests/tpow.c: updated comment for bug20080820().
27498
27499	tests/tpow.c: added testcase for bug mentioned in r5552.
27500
27501	pow_z.c: solves the underflow problem in round-to-nearest by using
27502	mpfr_pow_general in precision 2 (like in mpfr_pow_pos_z), but this
27503	currently fails due to a more general bug from r4940 (the rounding
27504	modes to compute an upper bound on exp(y*ln|x|) are incorrect).
27505
27506	pow_z.c: formatting.
27507
27508	pow_z.c: moved a log message.
27509
27510	pow_z.c: added log messages.
27511
27512	tests/tpow_all.c: added an underflow test of x^y with y integer < 0.
27513
27514	pow_z.c: no longer take care of the possibly lost overflow flag, as
27515	the other functions do not do this either; this general problem has
27516	been fixed in mpfr_check_range (r5545).
27517
27518	Fixed the following problem:
27519	  The overflow flag can be lost in many functions called with the
27520	  maximum exponent equal to MPFR_EMAX_MAX (this is the default on
27521	  32-bit machines) when the temporary result (in a higher precision)
27522	  is representable but once rounded, it yields an overflow.
27523	This needed a slight change of behavior of the mpfr_check_range function
27524	(defined in exceptions.c). Described this change in mpfr.texi and NEWS.
27525
27526	pow_z.c: fixed some of the underflow/overflow problems for z < 0.
27527
27528	tests/tpow_all.c: fixed mpfr_clear in overflow_inv.
27529
27530	tests/tpow_all.c: more detailed error messages.
27531
27532	tests/tpow_all.c: improved overflow_inv tests to trigger a bug
27533	in mpfr_pow_z due to incorrect rounding mode settings in r5315:
27534	on a 64-bit Linux machine, "./tpow_all 1" ends with:
27535	Bad overflow flag in overflow_inv for mpfr_pow, extended exponent range,
27536	s = 1, t = 1, GMP_RNDZ
27537
27538	tests/tpow_all.c: in overflow_inv, reduced t to [0,5] and added tests.
27539
275402008-08-19  Vincent Lefèvre  <vincent@vinc17.net>
27541
27542	tests/tpow_all.c: improved error messages.
27543
27544	tests/tpow_all.c: changed the precisions in overflow_inv for clearer
27545	output (the reported failures are the same).
27546
27547	tests/tpow_all.c: information about extended exponent range wasn't
27548	always output. For simplicity to provide such an information, made
27549	ext a global variable.
27550
27551	tests/tpow_all.c: added overflow tests for x^(-1). -> Failure.
27552
27553	Fixed basic underflow checking in mpfr_pow.
27554
275552008-08-18  Vincent Lefèvre  <vincent@vinc17.net>
27556
27557	mpfr-impl.h: defined macro INITIALIZED to declare that some variable
27558	  is initialized before being used.
27559	README.dev: described the use of this macro.
27560	lngamma.c: replaced the dummy initialization by this macro.
27561
275622008-08-16  Vincent Lefèvre  <vincent@vinc17.net>
27563
27564	pow.c: updated comments.
27565
27566	tests/tpow_all.c: added tests -> assertion failed in pow.c line 603.
27567
275682008-08-15  Vincent Lefèvre  <vincent@vinc17.net>
27569
27570	tests/tpow_all.c: added test of mpfr_ui_div.
27571
27572	pow_z.c: improved comments.
27573
275742008-08-14  Vincent Lefèvre  <vincent@vinc17.net>
27575
27576	mpfr.texi: additions related to MPFR caches.
27577	  * Added Section "Memory Handling" mentioning caches.
27578	  * Added call to mpfr_free_cache in the first example.
27579	  * Updated description of function mpfr_free_cache.
27580
27581	tests/texp.c: improved an underflow test to trigger the bug fixed
27582	in r5453 on 32-bit machines too.
27583
27584	log.c: fixed a log message.
27585
27586	exp_2.c: fixed other log messages.
27587
27588	exp_2.c: fixed a log message (the format didn't correspond to the types)
27589	and improved it.
27590
275912008-08-12  Vincent Lefèvre  <vincent@vinc17.net>
27592
27593	tests/tdiv.c: completed underflow test by testing negative results too.
27594
27595	mul_2si.c, div_2si.c, div_2ui.c: fixed double-rounding problem in
27596	rounding to nearest when the rounded result in unbounded exponent
27597	range is 2^(emin - 2).
27598	tests/tmul_2exp.c: test x = 15/16 too. Now tmul_2exp no longer fails
27599	(with the correction in div.c from r5515).
27600
27601	tests/tdiv.c correction: the underflow bug was in case when the
27602	result had to be zero.
27603
27604	div.c: fixed underflow bug that occurs in rounding to nearest when
27605	the rounded result in unbounded exponent range is 2^(emin - 2) and
27606	inex > 0: one got a non-zero result instead of +/-0.
27607
27608	tests/tdiv.c: added a test that triggers a bug in mpfr_div in case of
27609	underflow in rounding to nearest when the result must be non-zero.
27610
27611	div.c: added logging support.
27612
27613	tests/tmul_2exp.c: test mpfr_div_2ui too.
27614
27615	tests/tmul_2exp.c: test mpfr_div_2si too.
27616
27617	tests/tmul_2exp.c: updated underflow() test to trigger a double-rounding
27618	bug in case of underflow.
27619
27620	tests/texp.c: updated comment (the double-rounding bug triggered by
27621	underflow_up() is in mpfr_mul_2si).
27622
27623	tests/texp.c: updated underflow_up() test: added case exp(eps) ~= 1/2,
27624	which fails due to a double-rounding problem in rescaling the result.
27625
27626	tests/texp.c: improved comments in underflow_up().
27627
276282008-08-11  Vincent Lefèvre  <vincent@vinc17.net>
27629
27630	Merged vlefevre branch:
27631	    svn merge -c-5445 .
27632	    svn merge -r5436:HEAD .../mpfr/branches/vlefevre
27633	* pow.c:
27634	  - Moved the general case from mpfr_pow() to a new internal function
27635	    mpfr_pow_general().
27636	  - In this function (from old code), avoid unnecessary overflow test
27637	    if the intermediate result is not an infinity (which was the case
27638	    of underflow with non-zero result, thus not an overflow).
27639	  - Fixed a double-rounding problem that occurred in this function in
27640	    some underflow cases when rescaling the result.
27641	  - Added log messages.
27642	* mpfr-impl.h: added mpfr_pow_general prototype.
27643	* pow_z.c:
27644	  - The underflow case of mpfr_pow_pos_z() in rounding to nearest,
27645	    which was incorrect, is now handled by calling mpfr_pow_general(),
27646	    which can scale the result thus decide whether the rounded result
27647	    should be 0 or nextabove(0). To avoid the exact cases of x^y with
27648	    y integer (not supported by mpfr_pow_general()), rounding is done
27649	    in precision 2 (this is also faster!).
27650	  - Fixed underflow-related bug (case exact result = 2^(emin-2), in
27651	    rounding to nearest).
27652	  - Added log messages.
27653	* pow_ui.c:
27654	  - Swapped parameters x and y for consistency (-> y = x^n).
27655	  - Fixed the internal overflows and underflows (which could yield
27656	    spurious overflows/underflows and incorrect results) by using
27657	    mpfr_pow_z.
27658	* tests/tpow_all.c:
27659	  - Test flags in test_others and cmpres; cmpres argument z1 can now
27660	    be a null pointer (if unknown pure FP value, thus not tested).
27661	  - Added a test of 2^(emin - i/4) with 0 <= i <= 12, that triggered
27662	    the bugs mentioned above (and now fixed).
27663
27664	[Added during the Subversion to Git conversion]
27665	A merge commit could not be generated for Git.
27666	Branch in Git: refs/deleted/r5506/heads/vlefevre
27667
276682008-08-11  Vincent Lefèvre  <vincent@vinc17.net>
27669
27670	tests/tmul_2exp.c: added underflow tests.
27671
27672	Added logging support to mpfr_{mul,div}_2{si,ui}.
27673
276742008-08-08  Vincent Lefèvre  <vincent@vinc17.net>
27675
27676	mpfr-impl.h: added a space for MPFR_LOG_MSG.
27677
27678	README.dev: corrected MPFR_LOG_MSG example.
27679
27680	mpfr.h: added a comment concerning ICC.
27681
276822008-08-07  Vincent Lefèvre  <vincent@vinc17.net>
27683
27684	Final code clean-up based on icc warnings.
27685
27686	Further code clean-up (and consistency) based on icc warnings:
27687	  * Removed useless code.
27688	  * Avoid hiding variable declarations.
27689	  * Use #ifdef BOOL_MACRO instead of #if BOOL_MACRO.
27690	  * In MPFR_RNDRAW_GEN macro definition, variables declared locally now
27691	    start with an underscore to avoid possible conflits with parameters
27692	    (and modified macro calls that use these variables).
27693
27694	round_prec.c: avoid hiding variable declaration (detected by icc).
27695
27696	pow_si.c: fixed Ziv's iteration (code from r3305) by using MPFR_ZIV_NEXT
27697	(problem detected by icc, because variable "loop" was never used).
27698
27699	mul_ui.c: removed variable that was set but never used (detected by icc,
27700	but not by gcc, probably because of early optimization).
27701
27702	inp_str.c: fixed possible implementation-defined behavior (a value
27703	from the unsigned char range -- from getc -- was stored in a char,
27704	and if the char type is signed and the value cannot be represented
27705	in a char, this is implementation-defined).
27706
27707	get_str.c: avoid hiding variable declaration (detected by icc).
27708
27709	div.c: avoid hiding variable declaration (detected by icc).
27710
27711	mpfr.h, mpfr-impl.h: avoid warnings with icc (at least icc 10.1).
27712	README.dev: added a paragraph on the test of "boolean" macros.
27713
277142008-08-05  Vincent Lefèvre  <vincent@vinc17.net>
27715
27716	configure.in: dist-lzma needs automake 1.10.1.
27717
277182008-08-04  Vincent Lefèvre  <vincent@vinc17.net>
27719
27720	configure.in: "make dist" generates lzma-compressed tarball too.
27721
277222008-08-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27723
27724	[exp_2.c] fixed case where cancel is negative, added comments and improved
27725	code when initial n is known to be 0
27726
277272008-08-01  Vincent Lefèvre  <vincent@vinc17.net>
27728
27729	exp_2.c: MPFR_EXP -> MPFR_GET_EXP.
27730
277312008-08-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27732
27733	[exp_2.c] fixed bug20080731
27734
277352008-07-31  Vincent Lefèvre  <vincent@vinc17.net>
27736
27737	Added algorithms.out to svn:ignore property.
27738
27739	tests/texp.c: added testcase for new bug found in mpfr_exp_2.
27740
27741	exp.c, exp_2.c: fixed the overflow/underflow detection. The underflow_up
27742	test in texp.c still fails for mpfr_exp_2 only, but this seems to be due
27743	to a bug in this function (incorrect error bound?).
27744
27745	tests/texp.c: added underflow tests to underflow_up; currently fail due
27746	to incorrect underflow detection in mpfr_exp (and if this detection is
27747	disabled, mpfr_exp_3 behaves correctly, but not mpfr_exp_2).
27748
277492008-07-31  Philippe Théveny  <philippe.theveny@laposte.net>
27750
27751	Fix typos, improve wording.
27752
277532008-07-31  Vincent Lefèvre  <vincent@vinc17.net>
27754
27755	Added logging support to mpfr_exp_2 (exp_2.c).
27756
27757	tests/texp.c: updated comment concerning the bug fixed in r5469.
27758
27759	exp.c: updated comment about the exp3.c routine.
27760
27761	exp3.c: fixed internal underflow.
27762
27763	fma.c, fms.c: added a comment about apparently incorrect scaling.
27764
27765	Added logging support to mpfr_sqr and mpfr_sqrt.
27766
277672008-07-31  Philippe Théveny  <philippe.theveny@laposte.net>
27768
27769	hypot.c: Fix comment.
27770	BUGS: Add known bug for mpfr_hypot.
27771
277722008-07-30  Philippe Théveny  <philippe.theveny@laposte.net>
27773
27774	algorithms.tex: Prove the correctness of the algorithm used for mpfr_hypot
27775	when the difference of inputs' exponents is less then exp_max - 2.
27776	hypot.c: Change algorithm according to its description in algorithms.tex
27777	tests/thypot.c: Fix tests (some were present but didn't trigger any error).
27778
277792008-07-30  Vincent Lefèvre  <vincent@vinc17.net>
27780
27781	tests/texp.c: completed a comment.
27782
27783	tests/texp.c: updated underflow_up test of log(2^(emin - 1)) + eps:
27784	  * In the old test (- log(2) < eps < 0 in GMP_RNDN), do not test
27785	    the flags, as this may be incorrect on some platforms (though
27786	    unlikely). Better tests will be provided later.
27787	  * Added test for case eps > 0, which triggers a bug in mpfr_exp_3
27788	    (underflow flag sometimes set while it shouldn't be set).
27789
27790	exp.c: completed a comment, describing how rigorous underflow/overflow
27791	detection can be done.
27792
27793	exp.c: removed an incorrect comment (corresponds to exp_2.c and already
27794	in exp_2.c).
27795
277962008-07-29  Vincent Lefèvre  <vincent@vinc17.net>
27797
27798	exp.c: underflow/overflow detection is still a bit incorrect.
27799
27800	TODO: added "test underflow/overflow detection...".
27801
27802	exp.c: fixed underflow/overflow detection.
27803
27804	exp_2.c: GNU style.
27805
27806	mpfr-impl.h: make sure that mpfr_get_exp_t and mpfr_set_exp_t are
27807	correctly defined.
27808
278092008-07-26  Vincent Lefèvre  <vincent@vinc17.net>
27810
27811	tests/texp.c: updated comment of underflow_up.
27812
27813	exp_2.c: solved the assertion failure by detecting a zero due to a
27814	cancellation and increasing the precision via Ziv's loop in such a
27815	case.
27816
27817	exp_2.c: added another assertion, that is checked independently of
27818	the value of MPFR_EXP_2_THRESHOLD (better for debugging).
27819
27820	exp_2.c: added an assertion (more explicit than a similar assertion
27821	that would fail later) in mpfr_exp2_aux, caught by the underflow_up
27822	test in texp.c for prec = 16 on a 64-bit Linux machine.
27823
278242008-07-25  Vincent Lefèvre  <vincent@vinc17.net>
27825
27826	tests/texp.c: added a test that shows incorrect underflow detection
27827	in mpfr_exp, with possible assertion failure.
27828
27829	tests/tpow_all.c: added test of mpfr_exp2 and mpfr_exp10.
27830
27831	TODO: update.
27832
27833	TODO: added "option to use a 32-bit exponent type on LP64 machines".
27834
278352008-07-23  Vincent Lefèvre  <vincent@vinc17.net>
27836
27837	acinclude.m4: updated AC_PREREQ line due to the use of AC_PROG_SED.
27838
278392008-07-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27840
27841	added reminder
27842
27843	patch from Patrick to get __GMP_CC and __GMP_CFLAGS from gmp.h
27844	(future undocumented feature for GMP 4.2.3) -> we need to check
27845	those are the names chosen by GMP 4.2.3 when it will be out
27846
278472008-07-21  Vincent Lefèvre  <vincent@vinc17.net>
27848
27849	pow.c: fixed incorrect rounding in the general case when the result
27850	is negative and rnd = GMP_RNDD or GMP_RNDU (bug20080721 in tpow.c).
27851
27852	tests/tpow.c: completed test bug20080721.
27853
27854	pow.c: fixed the non-trivial cases with large integer y.
27855
27856	tests/tpow.c: added comment for bug20080721.
27857
27858	tests/tpow.c: found another bug in mpfr_pow with large integers.
27859
27860	tests/tpow_all.c: added a test that detects a bug in an underflow case.
27861
27862	tests/tpow_all.c: made the comparisons between the power functions
27863	generic to be able to add other tests.
27864
278652008-07-20  Vincent Lefèvre  <vincent@vinc17.net>
27866
27867	pow_z.c: use MPFR_IS_POS(x) instead of MPFR_SIGN(x) > 0.
27868
27869	pow_si.c: corrected a comment.
27870
27871	tests/tpow_z.c: fixed NaN^0 test.
27872
27873	Fixed a bug in pow_ui.c and pow_z.c: NaN^0 returned NaN instead of 1
27874	(see documentation). Affected functions: mpfr_pow_ui, mpfr_pow_si and
27875	mpfr_pow_z (but not mpfr_pow). Added new test file tests/tpow_all.c
27876	to test all the MPFR power functions on simple and special values.
27877
278782008-07-19  Vincent Lefèvre  <vincent@vinc17.net>
27879
27880	mpfr.texi: forgot the case x^(±0).
27881
27882	pow_z.c: updated comments.
27883
27884	tests/tpow_z.c: test bug20080223() didn't check that the result wasn't
27885	a NaN. Fixed.
27886
27887	tests/tsprintf.c: removed trailing whitespace.
27888
278892008-07-11  Vincent Lefèvre  <vincent@vinc17.net>
27890
27891	BUGS: potential problem with integer division and pre-C99 compilers,
27892	noted by Philippe.
27893
278942008-07-08  Philippe Théveny  <philippe.theveny@laposte.net>
27895
27896	Fix typos
27897
278982008-06-30  Philippe Théveny  <philippe.theveny@laposte.net>
27899
27900	Fix typo (gmp macro TMP_ALLOC instead of MPFR_TMP_ALLOC).
27901
279022008-06-27  Vincent Lefèvre  <vincent@vinc17.net>
27903
27904	vasprintf.c: fixed comment from r5408.
27905
279062008-06-27  Philippe Théveny  <philippe.theveny@laposte.net>
27907
27908	acinclude.m4: add a check defining va_copy macro when needed.
27909	vasprintf.c: use TMP_ALLOC instead of variable-length array (C99).
27910	tests/tfprintf.c tests/tsprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
27911	tests/tprintf.c: #define length of array instead of const int so as to avoid variable-length array (C99).
27912	                 remove use of function dup (dependency with <unistd.h>).
27913
279142008-06-25  Vincent Lefèvre  <vincent@vinc17.net>
27915
27916	README.dev: updated "To make a release" (mention various compilers).
27917
279182008-06-23  Vincent Lefèvre  <vincent@vinc17.net>
27919
27920	configure.in: added comments about icc.
27921
279222008-06-22  Vincent Lefèvre  <vincent@vinc17.net>
27923
27924	TODO: added "replace the *_THRESHOLD macros by global (TLS) variables
27925	that can be changed at run time [...]".
27926
279272008-06-16  Vincent Lefèvre  <vincent@vinc17.net>
27928
27929	INSTALL: updated GMP's URL (the old one no longer worked), using
27930	http://www.gnu.org/software/gmp/ as suggested by Karl Berry (see
27931	GNU policies).
27932
279332008-06-13  Vincent Lefèvre  <vincent@vinc17.net>
27934
27935	mpfr.texi: changed the license for the inclusion of the manual in Debian
27936	(see <https://www.debian.org/vote/2006/vote_001).
27937
279382008-06-11  Vincent Lefèvre  <vincent@vinc17.net>
27939
27940	AUTHORS: converted from ISO-8859-1 to UTF-8 (this is the standard
27941	nowadays and this is the encoding declared on InriaGforge).
27942
279432008-06-11  Philippe Théveny  <philippe.theveny@laposte.net>
27944
27945	Fix typo in mpfr_printf documentation.
27946
279472008-06-11  Vincent Lefèvre  <vincent@vinc17.net>
27948
27949	vasprintf.c: removed a misleading and now useless comment.
27950
27951	vasprintf.c: improved a comment.
27952
27953	tsprintf.c: typo in a comment.
27954
279552008-06-11  Philippe Théveny  <philippe.theveny@laposte.net>
27956
27957	Fix comparison between mpfr string and libc string.
27958
279592008-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27960
27961	added test for bug(?) found by Vincent with icc
27962
279632008-06-10  Philippe Théveny  <philippe.theveny@laposte.net>
27964
27965	Change #include <stdio.h> to #include <cstdio> when compiled with a C++ compiler.
27966	Assume that mpfr_rnd_t and wchar_t arguments in a variadic functions are converted to 'int' by C++ compilers.
27967
279682008-06-10  Vincent Lefèvre  <vincent@vinc17.net>
27969
27970	mpfr-impl.h: generate an error (with a clear error message) with g++ and
27971	--enable-logging since compilation fails (--enable-logging is mainly for
27972	testing and is already incompatible with threading support anyway).
27973
279742008-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
27975
27976	the O(l^{1/2}) method to evaluate power series is due to
27977	Paterson and Stockmeyer and not Brent/Kung
27978
279792008-06-09  Vincent Lefèvre  <vincent@vinc17.net>
27980
27981	Clean-up and various changes to be able to build MPFR with g++.
27982	But the following 3 tests currently fail with g++ 4.3.1:
27983	  FAIL: tprintf
27984	  FAIL: tsprintf
27985	  FAIL: tfprintf
27986	This is an "Illegal instruction" error, so probably a bug in g++.
27987	[Edit: acinclude.m4 now uses gl_SIZE_MAX, typically from size_max.m4,
27988	but which is not installed on all machines; this will be added to the
27989	MPFR repository in changesets 5680 and 5683.]
27990
27991	vasprintf.c: do not use pointer arithmetic on void *.
27992
27993	configure.in: added -Wpointer-arith to gcc options (this warning
27994	is useful as pointer arithmetic on void * is a gcc extension and
27995	doesn't work with g++).
27996
27997	README.dev: mentioned a libtool bug with recent versions of icc.
27998
27999	sum.c:
28000	  * Completed a comment about T ** and const T ** mismatch.
28001	  * Removed a useless and misleading const that makes icc complain.
28002
280032008-06-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28004
28005	fixed typos
28006
280072008-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28008
28009	use DeclareMathOperator for erf and erfc
28010
28011	fixed typo, added argument reduction for atan (we should try it since I believe
28012	atan is slow wrt exp, log, sin, cos for large precisions)
28013
28014	simplified error analysis of log1p (did not match the code), and improved the
28015	code (in particular when 1+x is exact, directly call mpfr_log and avoid Ziv).
28016
280172008-06-06  Vincent Lefèvre  <vincent@vinc17.net>
28018
28019	rec_sqrt.c: removed execution bit.
28020
28021	mpfr.texi: update about build problems and the FAQ.
28022
28023	mpfr.texi: added a comment about why the cross reference to GNU Libtool
28024	doesn't work from MPFR's directory.
28025
28026	mpfr.texi: added Section 4.1 "Headers and Libraries" partly based on
28027	GMP's. Note: in the generated mpfr.info file, the cross reference to
28028	libtool does not work (though GMP's info manual has exactly the same
28029	one and it works there). I couldn't figure out why.
28030
28031	mpfr.texi: make cross reference in HTML similar to texinfo's default one
28032	in PDF.
28033
280342008-06-04  Vincent Lefèvre  <vincent@vinc17.net>
28035
28036	mpfr.texi: updated the month.
28037
28038	mpfrlint: check the LGPL license version.
28039
28040	mpfr.texi: updated paragraph on the license in "Introduction to MPFR".
28041
28042	mpfr.texi: updated GFDL version from 1.1 to 1.2 to match fdl.texi
28043	(this should have been done in r4059).
28044
28045	mpfrlint: check GFDL versions.
28046
28047	mpfr.texi, update-version: in the MPFR manual, replaced two
28048	http://www.mpfr.org/ by the URL corresponding to the version,
28049	which can be updated by update-version.
28050
28051	mpfr.texi: completed paragraph on MPFR vs double-precision numbers.
28052
28053	mpfr.texi: replaced each @code{mpfr} by MPFR (for consistency).
28054
280552008-06-03  Vincent Lefèvre  <vincent@vinc17.net>
28056
28057	mpfr.h: fixed a comment.
28058
280592008-05-23  Vincent Lefèvre  <vincent@vinc17.net>
28060
28061	tests: added tprintf to svn:ignore property.
28062
28063	Added documentation about "'var' may be used uninitialized in this
28064	function" warnings.
28065
280662008-05-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28067
28068	Added comments about int i = i trick to avoid warning about uninitialized
28069	variables. This has the advantage to generate no code, but works for gcc only.
28070
280712008-05-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28072
28073	initialize bbcp and bbcp1 to -1 (should be invalid)
28074	added MPFR_ASSERTN to check they are not -1 before reads
28075	simplified a test: (rnd == RNDN) || (rnd != RNDZ) ==> rnd != RNDZ
28076
28077	got rid of false (?) compiler warnings for uninitialized values
28078	-> we might want to revert this change if we find a better solution and/or
28079	   if the problem is fixed in gcc
28080
280812008-05-20  Vincent Lefèvre  <vincent@vinc17.net>
28082
28083	Reverted changeset r5355. Better patch to avoid the warnings
28084	"warning: label 'addoneulp_doit' defined but not used" in
28085	MPFR_RNDRAW_GEN by adding the dummy code in the macro itself.
28086
28087	Avoid warnings "warning: label 'addoneulp_doit' defined but not used"
28088	due to the use of MPFR_RNDRAW_GEN. Dummy source code is inserted, but
28089	this is safe, clean (optimized away) and IMHO not too obtrusive.
28090
280912008-05-08  Vincent Lefèvre  <vincent@vinc17.net>
28092
28093	acinclude.m4: locally add -I$srcdir to CPPFLAGS for the thread-safe test
28094	(fixes bug #5556).
28095
280962008-04-10  Vincent Lefèvre  <vincent@vinc17.net>
28097
28098	INSTALL: added a paragraph about -ffast-math / -fast compiler options.
28099
281002008-04-07  Vincent Lefèvre  <vincent@vinc17.net>
28101
28102	tcmp.c: fixed some tests (if mpfr_cmp2 returns an incorrect result,
28103	the bug may be some non-reproducible behavior, so don't compute it
28104	a second time to say what the value was!) and clean-up.
28105
281062008-04-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28107
28108	fixed compiler warning
28109
281102008-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28111
28112	some other changes suggested by Patrick Pelissier for 16-bit portability
28113
28114	a few patches suggested by Patrick Pelissier to ease porting to 16-bit
28115	architectures: removed useless #include <time.h>, changed 1024 to 1024L,
28116	int i to lng i
28117
281182008-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28119
28120	added item about frac_* functions
28121
281222008-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28123
28124	fixed typo
28125
281262008-03-11  Philippe Théveny  <philippe.theveny@laposte.net>
28127
28128	tests/tfprintf.c: set output to stdout when invocked with one command-line
28129	                  parameter.
28130	tests/tprintf.c: add IO errors processing.
28131
281322008-03-10  Philippe Théveny  <philippe.theveny@laposte.net>
28133
28134	tests/tprintf.c: add tests for mpfr_printf and mpfr_vprintf.
28135	Makefile.am: add tprintf.c to check_PROGRAMS.
28136
28137	TODO: remove newly added functions
28138	vasprintf.c: change type of some variables taking care of signed/unsigned
28139	             comparisons, improve conditional tests, improve buffer
28140	             allocation, improve comments.
28141	tests/tfprintf.c: remove silly code.
28142
28143	acinclude.m4: add check for long long compiler support, define HAVE_LONG_LONG.
28144	vasprintf.c: raise an error when it encounter an unsupported format in format
28145	             string.
28146	tests/tfprintf.c: HAVE_SDTINT_H -> _MPFR_H_HAVE_INTMAX_T
28147
28148	vasprintf.c: fix rounding bit bug with %RNa.
28149	tests/tsprintf.c: add tests for %RNa (rounding bit bug, tie case, trailing
28150	zeros in fractional part.
28151
28152	vasprintf.c: fix bug in macro CONSUME_VA_ARG with a mp_limb_t or mp_limb_t array argument
28153	vasprintf.c: clean code storing the number of character in a pointer and fix bug with a mp_limb_t or mp_limb_t array argument
28154	tests/tfprintf.c: add tests for %n with all kinds of type, get rid of machine dependent limits of type (use +1/-1 instead)
28155
28156	vasprintf.c: fix bug of forgotten decimal point with %#.0Rf
28157	tests/tsprintf.c: add test with %#Rf and an integer mpfr_t
28158
28159	li2.c: improve error estimation in Ziv loop.
28160	algorithm.tex:improve proof of mpfr_li2 algorithm.
28161
28162	hypot.c: change shift amount for exponents so as to avoid overflow in Ziv loop.
28163	algorithm.tex: improve proof for mpfr_hypot algorithm (unfinished).
28164
281652008-03-07  Vincent Lefèvre  <vincent@vinc17.net>
28166
28167	tgeneric.c: avoid a warning with gcc 4.2+ about a test that is always
28168	true (the style of the code is now a bit better too).
28169
281702008-02-29  Philippe Théveny  <philippe.theveny@laposte.net>
28171
28172	add mpfr_hypot
28173
28174	fix wrong arguments (set in r5332)
28175
28176	add missing functions
28177
28178	cosmetic changes
28179
281802008-02-28  Philippe Théveny  <philippe.theveny@laposte.net>
28181
28182	add mixed format tests (with different types and different sizes)
28183
28184	vasprintf.c: fix "%%" bug
28185	tests/tsprintf.c: add a test setting "%%" bug off
28186
28187	cosmetic changes
28188
28189	use system number of bits in the significant of a double (instead of 53)
28190
281912008-02-27  Philippe Théveny  <philippe.theveny@laposte.net>
28192
28193	add handle for the case exp(x) overflows but sinh(x) is representable
28194
28195	further code simplification
28196
28197	code simplification (same as in r5323)
28198
28199	code simplification.
28200
28201	add_d.c, div_d.c, sub_d.c, d_div.c, d_sub.c: restore flags in case of exception. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
28202	tests/tadd_d.c, tests/tsub_d.c, tests/tdiv_d.c, tests/tmul_d.c, tests/td_sub.c, tests/td_div.c, test/tmul_d.c: add checks for exception flags and ternary value
28203
28204	mul_d.c: restore flags set by mpfr_mul. This fixes the bug revealed by MPFR_SUSPICIOUS_OVERFLOW
28205	test/tmul_d.c: add checks for exception flags
28206
282072008-02-27  Vincent Lefèvre  <vincent@vinc17.net>
28208
28209	README.dev: updated the section about new functions (added a paragraph
28210	on exception handling).
28211
282122008-02-26  Philippe Théveny  <philippe.theveny@laposte.net>
28213
28214	improve proof for euclidean distance algorithm (unfinished)
28215
282162008-02-26  Vincent Lefèvre  <vincent@vinc17.net>
28217
28218	pow_z.c: rewrote an ambiguous comment.
28219
28220	pow_z.c: removed obsolete comments and updated a comment.
28221
28222	pow_z.c: the same variable was used with two different meanings.
28223	Changed the type and the name of the one inside the Ziv loop
28224	(unsigned is theoretically more correct due to the bitwise OR).
28225
282262008-02-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28227
28228	fixed bug reported by Carl Witty (on 32-bit computers):
28229	sage: RR(1.99999999)^RR(-(2^30))
28230	5.11264311088393e-323228495
28231	sage: RR(1.999999999)^RR(-(2^30))
28232	0.000000000000000
28233	sage: RR(2.0)^RR(-(2^30))
28234	2.38256490488795e-323228497
28235
282362008-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28237
28238	added bug reported by Carl Witty
28239
282402008-02-22  Philippe Théveny  <philippe.theveny@laposte.net>
28241
28242	remove commented code
28243
28244	add worst cases for RNDZ and RNDU with inexact flag checking
28245
282462008-02-22  Vincent Lefèvre  <vincent@vinc17.net>
28247
28248	hypot.c: added a FIXME comment.
28249
28250	algorithms.tex: one can have a better upper bound on \sqrt{x^2+y^2}-|x|
28251	(added as a comment in case this can be useful).
28252
28253	algorithms.tex: use hyperref.
28254
282552008-02-21  Philippe Théveny  <philippe.theveny@laposte.net>
28256
28257	add more details in mpfr_hypot description
28258
28259	cosmetic change: display "EXP" in small capitals
28260	no more use of {\rm \EXP}, use macro \Exp everywhere
28261
282622008-02-20  Philippe Théveny  <philippe.theveny@laposte.net>
28263
28264	add worst case test
28265
28266	add test with locale da_DK
28267
28268	actually trigger overflow on all architectures
28269
282702008-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28271
28272	added MPFR_SUSPICIOUS_OVERFLOW in nightly tests
28273
282742008-02-20  Vincent Lefèvre  <vincent@vinc17.net>
28275
28276	hypot.c: fixed overflow flag problem in RNDD/RNDZ modes (testcase was
28277	added in r5301, and another check in r5300).
28278
28279	tests/thypot.c: added check_overflow test (currently fails in 32 bits).
28280
28281	tests/tgeneric.c: added a test that detects suspicious overflows and
28282	fails when the overflow flag is not set. This test is enabled only if
28283	the MPFR_SUSPICIOUS_OVERFLOW environment variable is set, and shows a
28284	bug in mpfr_hypot on 32-bit machines (i.e. when the current exponent
28285	range is the maximum exponent range, so that mpfr_check_range() has
28286	no effect).
28287
282882008-02-19  Philippe Théveny  <philippe.theveny@laposte.net>
28289
28290	restore flag overflow dropped by MPFR_SAVE_EXPO
28291
282922008-02-18  Philippe Théveny  <philippe.theveny@laposte.net>
28293
28294	use of (*__gmp_allocate_func)/(*__gmp_free_func) instead of
28295	mpfr_allocate_func/mpfr_free_func;
28296	the modification in r5281 doesn't work when mpfr is compiled with --gmp_build
28297	option.
28298
282992008-02-18  Vincent Lefèvre  <vincent@vinc17.net>
28300
28301	hypot.c: it's better to scale by (Ex + Ey) / 2.
28302
28303	README.dev: now, the ChangeLog file should be in UTF-8, like in other
28304	software (not much difference in practice).
28305
283062008-02-18  Philippe Théveny  <philippe.theveny@laposte.net>
28307
28308	improve code coverage
28309
28310	code simplification
28311
28312	take trailing zeros into account when separating thousands
28313
283142008-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28315
28316	fixed problem when x and y are very small
28317
283182008-02-18  Philippe Théveny  <philippe.theveny@laposte.net>
28319
28320	hypot.c: set flags when returning
28321	tests/thypot.c: change custom random tests to tgeneric ones
28322
283232008-02-15  Vincent Lefèvre  <vincent@vinc17.net>
28324
28325	For the terminating null pointer of the functions mpfr_inits,
28326	mpfr_inits2, mpfr_clears, always use the type mpfr_ptr (no longer
28327	void *). Updated the description of these functions in the manual
28328	(mpfr.texi). The reason is that the C standard does not guarantee
28329	that (void *) 0 has the same representation as a null pointer to
28330	a structure (and even the same size). In most C implementations,
28331	the representations are the same, but one never knows (dynamical
28332	checking is also always possible)...
28333	The change has been done with: perl -pi -e \
28334	  's/(mpfr_(clear|init)s.*)\(void *\*\) *0\)/$1(mpfr_ptr) 0)/' **/*.c
28335	under zsh.
28336
283372008-02-15  Philippe Théveny  <philippe.theveny@laposte.net>
28338
28339	fix typo
28340
28341	vasprintf.c: fix buffer_sandwich (use for thousands separator)
28342	tests/tsprintf.c: add tests with "da_DK" locale
28343
28344	add generic tests
28345
28346	cosmetic changes
28347
28348	fix incorrect function call
28349
283502008-02-14  Philippe Théveny  <philippe.theveny@laposte.net>
28351
28352	fix "%P" case, add test for it.
28353
283542008-02-13  Philippe Théveny  <philippe.theveny@laposte.net>
28355
28356	avoid style 'f' with large numbers
28357
283582008-02-13  Vincent Lefèvre  <vincent@vinc17.net>
28359
28360	tests: updated svn:ignore property.
28361
283622008-02-12  Philippe Théveny  <philippe.theveny@laposte.net>
28363
28364	use of mpfr_allocate_func/mpfr_free_func instead of malloc/free
28365
28366	remove unneeded free and mpfr_clear
28367
28368	add tests for mpfr_snprintf and mpfr_vsnprintf
28369
283702008-02-12  Vincent Lefèvre  <vincent@vinc17.net>
28371
28372	README.dev: added a note about freeing the memory in the tests.
28373
283742008-02-12  Philippe Théveny  <philippe.theveny@laposte.net>
28375
28376	move tests of mpfr_get_str function from tout_str.c to tget_str.c
28377
28378	initialize fmt[] size
28379
28380	tfprintf.c: fix comment.
28381	tsprintf.c: fix comment and get rid of libc rand().
28382
28383	rename tprintf.c as tsprintf.c, because it does not deal with mpfr_printf.
28384	add tests for mpfr_fprintf functions
28385
28386	remove errno setting in snprintf, it is already done in vasprintf
28387	correct grammatical faults in comment
28388
283892008-02-08  Vincent Lefèvre  <vincent@vinc17.net>
28390
28391	tests/tests.c: undo r5270.
28392
28393	tests/tests.c: fixed assertion failure introduced in r5265.
28394
283952008-02-08  Philippe Théveny  <philippe.theveny@laposte.net>
28396
28397	remove exponent checking
28398
28399	mpfr-gmp.h: Cancel r5261 changes removing the overload due to added test.
28400	set_uj.c: Don't call memset when len is zero.
28401
28402	improve assertion.
28403
28404	add support of thousands separator option (' flag, defined in Single UNIX Specification v2)
28405
28406	better string buffer management
28407
284082008-02-07  Vincent Lefèvre  <vincent@vinc17.net>
28409
28410	In tests_default_random, allow emin and emax to be outside of the
28411	current exponent range, so that underflow/overflow checks can be
28412	done on 64-bit machines. If the resulting random number is outside
28413	of the current range, the exponent range is extended, and restored
28414	by the caller once the test has been done.
28415	In tests/tacosh.c, changed TEST_RANDOM_EMIN and TEST_RANDOM_EMAX
28416	to MPFR_EMAX_MAX for test_generic_huge, so that the intermediate
28417	overflow case in mpfr_acosh is tested on 64-bit machines.
28418
284192008-02-07  Philippe Théveny  <philippe.theveny@laposte.net>
28420
28421	fix comment.
28422	In fact, GNU libc4 accept '%F', libc5, glibc 2.0, and glibc 2.1 don't, and glibc 2.2 accept it with C99 semantics.
28423
284242008-02-06  Vincent Lefèvre  <vincent@vinc17.net>
28425
28426	mpfr.h: added a comment about the mpfr_rnd_t enum.
28427
28428	mpfr-impl.h: removed MPFR_CHECK* macros as they are not used.
28429
284302008-02-05  Philippe Théveny  <philippe.theveny@laposte.net>
28431
28432	MPN_ZERO (dst, n) doesn't call memset when n==0, it prevents warning when compiled with gcc -D_FORTIFY_SOURCE
28433
284342008-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28435
28436	added suggestion from Keith Briggs
28437
284382008-02-04  Philippe Théveny  <philippe.theveny@laposte.net>
28439
28440	vasprintf.c: add code for %n specifier with any type
28441	tests/tprintf.c: add test for %n specifier
28442
28443	improve mention on format string restriction
28444
28445	mention restriction on type field in the format string.
28446
28447	check possible overflows in exponent part, improve comments.
28448
28449	ensure null-terminated string for (v)snprintf.
28450
284512008-02-01  Philippe Théveny  <philippe.theveny@laposte.net>
28452
28453	improve mpfr_printf documentation
28454
284552008-02-01  Vincent Lefèvre  <vincent@vinc17.net>
28456
28457	tests.c: fixed perror argument in data_check.
28458
284592008-02-01  Philippe Théveny  <philippe.theveny@laposte.net>
28460
28461	improve error handling
28462
28463	check fscanf return value, manage error case
28464
284652008-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28466
28467	added parentheses to avoid ambiguity (suggested by Keith Briggs)
28468
284692008-02-01  Philippe Théveny  <philippe.theveny@laposte.net>
28470
28471	add some "%s" format string to prevent format string attack
28472
284732008-01-31  Philippe Théveny  <philippe.theveny@laposte.net>
28474
28475	fix typo
28476
284772008-01-30  Philippe Théveny  <philippe.theveny@laposte.net>
28478
28479	homogeneous use of logical variable
28480
284812008-01-30  Vincent Lefèvre  <vincent@vinc17.net>
28482
28483	rec_sqrt.c: use MPFR_GET_EXP instead of MPFR_EXP, and avoid the
28484	bitwise AND on a signed integer.
28485
28486	Reformat.
28487
28488	Document how to produce PDF and HTML versions of the manual.
28489
284902008-01-30  Philippe Théveny  <philippe.theveny@laposte.net>
28491
28492	change to values acceptable by 32-bits machines
28493
28494	fix wrong statement in MPFR_ASSERTD
28495
284962008-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28497
28498	added compilation options suggested by Debian:
28499	http://alioth.debian.org/projects/hardening/
28500	https://lists.debian.org/debian-devel/2007/12/msg00090.html
28501	(except -Wl,zrelro which does not seem to work)
28502
285032008-01-29  Philippe Théveny  <philippe.theveny@laposte.net>
28504
28505	So as to avoid conversion error, get rid of mpfr_set_d/mpf_set_d except in random_double().
28506	Skip conversion error in random_double().
28507
28508	fix typo in comment
28509
28510	get rid of limitation on number of character by specifier
28511
28512	vasprintf.c: fix %Rg case
28513	tests/tprintf.c: add %Re, %Rf, and %Rg tests
28514	tests/tprintf.c: add random checking against libc
28515
285162008-01-28  Philippe Théveny  <philippe.theveny@laposte.net>
28517
28518	remove (undocumented) integer conversion support for mpfr_t
28519
28520	set errno to EOVERFLOW when printf-like functions should return value exceeding INT_MAX
28521
28522	change internal name of printf-like functions under preprocessor conditionals, add explanation in comment.
28523
285242008-01-25  Vincent Lefèvre  <vincent@vinc17.net>
28525
28526	TODO: added a possible class of tests.
28527
285282008-01-23  Vincent Lefèvre  <vincent@vinc17.net>
28529
28530	tests.c: remove a blank line in an error message.
28531
28532	Test that the MPFR library version matches the mpfr.h version in any
28533	test file (this should avoid some bug reports that don't mention the
28534	real problem).
28535
28536	tversion.c: improved an error message.
28537
28538	acinclude.m4: fixed configure test for TLS support.
28539
28540	NEWS file update (configure test for TLS support).
28541
28542	Changes related to thread-local variables / TLS support.
28543	  * Moved the MPFR_THREAD_ATTR definition from mpfr-impl.h into a new
28544	    header file mpfr-thread.h, and updated Makefile.am accordingly.
28545	  * Removed the compiler check __MPFR_GNUC(3,3) || __MPFR_ICC(8,1,0)
28546	    as this test leaded to both false positives and false negatives
28547	    concerning TLS support. Assume that __thread should be used for
28548	    thread-local variables (except for the MS compiler).
28549	  * Added a configure test to acinclude.m4 (in MPFR_CONFIGS).
28550
285512008-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28552
28553	added item about timings for a new release
28554
28555	mbench program written by Patrick Pelissier to measure clock cycles of MPFR
28556	(and other libraries) for small precision
28557
285582008-01-22  Vincent Lefèvre  <vincent@vinc17.net>
28559
28560	NEWS: noted the changes concerning mpfr_strtofr (changesets 5146, 5147,
28561	5148, 5149, 5167, 5172, 5173).
28562
28563	mpfr-gmp.h: small fix of a macro.
28564
285652008-01-21  Vincent Lefèvre  <vincent@vinc17.net>
28566
28567	mpfr-gmp.h: for temporary allocations, use alloca() if size < 16384.
28568
285692008-01-19  Vincent Lefèvre  <vincent@vinc17.net>
28570
28571	mpfr.texi: inverse square root -> reciprocal square root.
28572
285732008-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28574
28575	added mpfr_rec_sqrt in mpfr.texi (forgot in last commit)
28576
285772008-01-18  Vincent Lefèvre  <vincent@vinc17.net>
28578
28579	NEWS: added mpfr_rec_sqrt for MPFR 2.4.*.
28580
285812008-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28582
28583	removed rec_sqrt (done)
28584
285852008-01-17  Philippe Théveny  <philippe.theveny@laposte.net>
28586
28587	vasprintf.c: merge code for "%Ra" and "%Rb"
28588
285892008-01-16  Philippe Théveny  <philippe.theveny@laposte.net>
28590
28591	cosmetic change: replace "enum _arg_type" by "enum arg_t"
28592
28593	vasprintf.c: fix %g case; merge %e, %f, %g code
28594	tests/tprintf.c: add tests for %Rg
28595
28596	add MPFR_SAVE_EXPO macros
28597
28598	cosmetic changes: only one leading underscore for an identifier with file scope
28599
28600	add needed va_list argument in READ_INT macro
28601
286022008-01-16  Vincent Lefèvre  <vincent@vinc17.net>
28603
28604	tests: added trec_sqrt to svn:ignore property.
28605
28606	mpfr-impl.h: when building MPFR with the GMP build directory,
28607	use TMP_ALLOC(s) instead of TMP_SALLOC(s), as we don't know
28608	whether allocations are small or big (see gmp-impl.h).
28609
286102008-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28611
28612	moved from ASSERTD to ASSERTN an assertion which does not depend on MPFR
28613
286142008-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28615
28616	this file might be useful to test mpfr_rec_sqrt...
28617
28618	rec_sqrt.c: complete rewrite, to allow to use directly the MPFR internal
28619		    representation as input (without shift), and to allow different
28620	            input and output precisions, without loss of efficiency
28621	other files: added new function mpfr_rec_sqrt
28622
286232008-01-14  Vincent Lefèvre  <vincent@vinc17.net>
28624
28625	rec_sqrt.c: deleted trailing whitespace.
28626
28627	mpfr-gmp.{c,h}: no longer use alloca() for the temporary allocations as
28628	this can make MPFR crash in some high precisions, due to limited stack.
28629
286302008-01-14  Philippe Théveny  <philippe.theveny@laposte.net>
28631
28632	add bug found by Paul Zimmermann
28633
28634	vasprintf.c: fix wrong computation of digit number with %Rf when 0 < op < 1
28635	tests/tprintf.c: simpler 10^-n case
28636
286372008-01-14  Vincent Lefèvre  <vincent@vinc17.net>
28638
28639	mpfr.texi: typo.
28640
286412008-01-11  Vincent Lefèvre  <vincent@vinc17.net>
28642
28643	mpfr.texi: updated month.
28644
28645	mpfr.texi: added a warning concerning huge precisions.
28646
286472008-01-10  Philippe Théveny  <philippe.theveny@laposte.net>
28648
28649	fix %f case
28650
28651	cosmetic changes
28652
286532008-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28654
28655	small changes for acos/asin/atan/atan2 rounded outside their output range
28656
286572008-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28658
28659	added note about output of acos/asin/atan/atan2 which might be outside the
28660	function domain
28661
286622008-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28663
28664	new version with improved tables, use macros from mpfr-impl.h, removed tabs
28665
286662008-01-04  Vincent Lefèvre  <vincent@vinc17.net>
28667
28668	Fixed return value of mpfr_strtofr in case of invalid data (it was -1,
28669	but it should be 0 since it is a ternary value and the result is 0,
28670	which is exact). Added test of the ternary value in this case.
28671
28672	mpfr.texi: better description of mpfr_strtofr.
28673
28674	NEWS update (new functions in the trunk).
28675
28676	Changes related to mpfr_strtofr.
28677	  * strtofr.c: for mpfr_strtofr, data corresponding to NaN can now have
28678	    an optional sign (since the documentation said that parsing followed
28679	    the standard C strtod function and this change makes invalid data
28680	    now valid, so that there should be no compatibility problems).
28681	  * tests/tstrtofr.c: changed the test for -42P17 in base 16 (this was
28682	    eventually regarded as a documentation bug); added tests.
28683	  * mpfr.texi: almost completely rewrote the specification of the
28684	    mpfr_strtofr function. Changes:
28685	    - the binary exponent is now accepted even without the 0b or 0x
28686	      prefix;
28687	    - data corresponding to NaN can now have an optional sign (this was
28688	      a bit ambiguous);
28689	    - many other ambiguities avoided.
28690
286912008-01-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28692
28693	the function mpfr_mpn_rec_sqrt() provides a faithful approximation of the
28694	inverse square root. Some improvements can still be made, but the interface
28695	should not change, thus we can start writing the mpfr_rec_sqrt function that
28696	calls it.
28697
286982008-01-02  Vincent Lefèvre  <vincent@vinc17.net>
28699
28700	FAQ update.
28701
287022008-01-01  Vincent Lefèvre  <vincent@vinc17.net>
28703
28704	tgamma.c: completed test in r5159 with another one that was failing
28705	in the default exponent range.
28706
28707	delete trailing spaces.
28708
287092008-01-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28710
28711	fixed bug in case of underflow (wrong sign)
28712
287132008-01-01  Vincent Lefèvre  <vincent@vinc17.net>
28714
28715	gen_inverse.h: fixed the bug reported by Kevin Rauch a few hours ago
28716	(and that was detected by the generic tests and by mpfrlint after the
28717	latest changes).
28718
28719	mpfrlint: incorrect use of mpfr_<flag>_p is also checked in .h files.
28720
28721	Copyright notice update: added 2008 with
28722	  perl -pi -e 's/2007 Free Software/2007, 2008 Free Software/' **/*(^/)
28723	under zsh.
28724
28725	tgeneric.c: in the bug detection with flags set before the function
28726	call, the erange flag was set, so that no checks were performed on
28727	the return value. Fixed that by not setting the erange flag.
28728	-> Now, 7 tests fail!
28729
287302007-12-31  Vincent Lefèvre  <vincent@vinc17.net>
28731
28732	tstrtofr.c: added test of -42P17 with base = 0 and 16. This currently
28733	fails with base = 16 (-42P17 is parsed as -0x42P17 instead of -42 with
28734	the remaining characters "P17"), but we could alternatively regard the
28735	mpfr_strtofr specification (in mpfr.texi) as incorrect.
28736
287372007-12-30  Vincent Lefèvre  <vincent@vinc17.net>
28738
28739	mpfr.texi: corrections in the specification of mpfr_strtofr (see FIXME).
28740
28741	strtofr.c: base arguments different from 0 and 2..36 have never been
28742	accepted. So, instead of returning the confusing -1 (it's a ternary
28743	value), let's add an assert for the moment. An alternative solution
28744	is to return 0 and set the erange flag.
28745
28746	strtofr.c: minor change (in the style); a comment was ambiguous.
28747
287482007-12-29  Vincent Lefèvre  <vincent@vinc17.net>
28749
28750	TODO update (tests: generic bad cases).
28751
28752	Added #if MPFR_VERSION >= MPFR_VERSION_NUM(2,4,0) conditionals to be
28753	able to test MPFR 2.3.* with the (more complete) tests from the trunk.
28754
28755	README.dev: updated item 6 of "To make a release".
28756
287572007-12-28  Vincent Lefèvre  <vincent@vinc17.net>
28758
28759	mpfr.texi: updated month.
28760
287612007-12-27  Vincent Lefèvre  <vincent@vinc17.net>
28762
28763	tests: check the exponent range, in particular at the end of each test.
28764
28765	texceptions.c: GNU coding style.
28766
28767	texceptions.c: restore the exponent range.
28768
28769	exp2.c: removed incorrect comment (the overflow test was OK due to the
28770	mpfr_clear_flags above, but the new test is slightly better anyway).
28771
287722007-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28773
28774	added tuning parameters for 32-bit Core 2
28775	(thanks to Patrick Pelissier and Emmanuel Thome)
28776
287772007-12-20  Vincent Lefèvre  <vincent@vinc17.net>
28778
28779	tpow.c: enable testcase bug20071218.
28780
287812007-12-19  Vincent Lefèvre  <vincent@vinc17.net>
28782
28783	BUGS: possible incorrect results due to internal underflow.
28784
28785	pow.c: detect all underflow cases (some of them were leading to
28786	an infinite loop, see bug20071218 in tpow.c).
28787
28788	mpfr-impl.h: updated description of MPFR_CAN_ROUND.
28789
28790	round_p.c: in comment, "round to zero" -> "round toward zero".
28791
28792	tpow.c: formatting.
28793
28794	tpow.c: added testcase for another bug found by Kevin P. Rauch.
28795	Execute tpow with an argument to enable it.
28796
287972007-12-19  Philippe Théveny  <philippe.theveny@laposte.net>
28798
28799	vasprintf.c: add sprnt_fp_e for "%e" processing
28800	tests/tprintf.c: change tests for decimal output (but need further tests)
28801
28802	add checks for zero
28803
288042007-12-18  Vincent Lefèvre  <vincent@vinc17.net>
28805
28806	Merged the feature-block branch to the trunk:
28807	* New MPFR_BLOCK* macros (see mpfr-impl.h) and mpfrlint check to test
28808	  exception flags in a more reliable way and detect possible problems
28809	  with mpfrlint.
28810	* Improved the generic tests (tests/tgeneric.c): for the second
28811	  function call, sometimes set all the flags since risk of failures
28812	  are known when some flags are already set.
28813	* Modified code to use these new MPFR_BLOCK* macros. This fixed bugs
28814	  related to exceptions (where flags are set before the call); in
28815	  particular, tcot and ty1 failed with the improved generic tests.
28816
28817	[Added during the Subversion to Git conversion]
28818	A merge commit could not be generated for Git.
28819	Branch in Git: refs/deleted/r5131/heads/feature-block
28820
288212007-12-18  Philippe Théveny  <philippe.theveny@laposte.net>
28822
28823	printf.c: each mpfr_printf-like function return -1 and set erange flag in error case
28824	vasprintf.c: change types in struct char_fp
28825	vasprintf.c: add many size checking
28826
28827	simplify code, improve comments
28828
288292007-12-18  Vincent Lefèvre  <vincent@vinc17.net>
28830
28831	Fixed bug in mpfr_pow_z: if x = y (same mpfr_t argument), the input
28832	argument is negative and not a power of two, z is positive and odd,
28833	an overflow or underflow occurs, and the temporary result res is
28834	positive, then the result gets a wrong sign (positive instead of
28835	negative). Testcase.
28836
28837	Fixed bug in mpfr_pow_ui (introduced in r3214): if x = y (same mpfr_t
28838	argument), the input argument is negative, n is odd, an overflow or
28839	underflow occurs, and the temporary result res is positive, then the
28840	result gets a wrong sign (positive instead of negative). Testcase.
28841
28842	pow_ui.c: fixed an assertion.
28843
28844	BUGS: update concerning overflow/underflow exceptions.
28845
288462007-12-18  Philippe Théveny  <philippe.theveny@laposte.net>
28847
28848	exponent continuity with one hexadecimal digit output
28849
288502007-12-17  Philippe Théveny  <philippe.theveny@laposte.net>
28851
28852	#define CASE_INT_MAX_ARG to nil when HAVE_STDINT_H is not defined
28853
28854	vasprintf.c: add sprnt_fp_b for "%b" processing
28855	tests/tprintf.c: add tests for binary output
28856
28857	fix count of characters in exponent part
28858
28859	simplify code, remove trailing spaces and improve comment
28860
288612007-12-17  Vincent Lefèvre  <vincent@vinc17.net>
28862
28863	TODO: added note about the successive calls to strcat in vasprintf.c.
28864
288652007-12-17  Philippe Théveny  <philippe.theveny@laposte.net>
28866
28867	add tests for 1 hexa digit output
28868
288692007-12-16  Vincent Lefèvre  <vincent@vinc17.net>
28870
28871	tests/tpow.c: fixed indentation.
28872
288732007-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28874
28875	fixed typo
28876
28877	fixed bug reported by Kevin Rauch
28878
288792007-12-14  Philippe Théveny  <philippe.theveny@laposte.net>
28880
28881	change display with just one hexadecimal digit
28882
288832007-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28884
28885	simplified MPFR_FAST_COMPUTE_IF_SMALL_INPUT part (in case of overlap)
28886
288872007-12-14  Philippe Théveny  <philippe.theveny@laposte.net>
28888
28889	fix wrong call
28890
288912007-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28892
28893	added comments, got rid of compiler warnings
28894
28895	added warning
28896
288972007-12-14  Vincent Lefèvre  <vincent@vinc17.net>
28898
28899	sin_cos.c: improved changeset 5084; in particular, added a missing cast.
28900
289012007-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28902
28903	sin_cos.c, tsin_cos.c: fixed bug occurring when arguments overlap and
28904	   MPFR_FAST_COMPUTE_IF_SMALL_INPUT fails
28905	reuse.c: improved output in case of error
28906
289072007-12-14  Philippe Théveny  <philippe.theveny@laposte.net>
28908
28909	improve one digit case, add comment
28910
289112007-12-14  Vincent Lefèvre  <vincent@vinc17.net>
28912
28913	vasprintf.c: added a FIXME comment. Bug?
28914
28915	Minor changes concerning num_to_text. The ending \0 isn't needed.
28916
289172007-12-14  Philippe Théveny  <philippe.theveny@laposte.net>
28918
28919	simplify error output code
28920
28921	add num_to_text array for hexadecimal digits
28922
28923	output errors to stdout
28924
289252007-12-13  Philippe Théveny  <philippe.theveny@laposte.net>
28926
28927	vasprintf.c: group hexadecimal output processing in a new sprnt_fp_a function.
28928	tests/tprintf.c: add tests for %a case
28929	tests/tprintf.c: factorize error message output
28930
289312007-12-13  Vincent Lefèvre  <vincent@vinc17.net>
28932
28933	get_d64.c: fixed comment.
28934
28935	vasprintf.c: added missing #include <string.h> (useful if MPFR is built
28936	with the GMP build directory, as mpfr-gmp.h isn't used in this case).
28937
289382007-12-13  Philippe Théveny  <philippe.theveny@laposte.net>
28939
28940	Fix typos.
28941
28942	Add handle for null size case in mpfr_snprintf
28943
28944	Add some comments and assertions.
28945
28946	#define's for nan and inf strings
28947
28948	short documentation of printf-like functions.
28949
289502007-12-12  Vincent Lefèvre  <vincent@vinc17.net>
28951
28952	README.dev: added information about my tool "eet" to be able to see the
28953	warnings more easily.
28954
28955	vasprintf.c: updated comment concerning the case nbchar > INT_MAX.
28956
289572007-11-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28958
28959	changed default return value in mpfr_jn_k0
28960
28961	fixed underflow problem in mpfr_exp_3
28962
28963	tests/tset_str.c: added command-line argument for output base
28964	jn.c: replaced double-precision LOG2 constant by binary string (more portable)
28965
28966	fixed underflow problem
28967
28968	experimental code to distinguish Core2 from AMD64
28969
28970	removed manual change to __gmpfr_emin outside the allowed range
28971
28972	added suggestion from Patrick Pelissier
28973
289742007-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28975
28976	Fixed another bug reported by Kevin Rauch (__gmpfr_emin was set smaller
28977	than the minimum allowed value, which produced an exponent wrap-around
28978	and a wrong result in mpfr_mul). Not sure if all problems are solved,
28979	nevertheless __gmpfr_emin is now in the allowed range.
28980
289812007-11-29  Vincent Lefèvre  <vincent@vinc17.net>
28982
28983	Fixed indentation.
28984
28985	tests.c: in test4rm, initialize rndnext with an invalid value (meaning
28986	that rndnext will really be initialized later), and added an assert to
28987	check that this value isn't propagated to rnd.
28988
28989	tests.c: added a comment about rndnext in test4rm.
28990
28991	tests.c: added an assertion.
28992
289932007-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
28994
28995	fixed bug reported by Kevin Rauch (wrong sign in case of underflow for
28996	large negative x and large odd negative y)
28997
289982007-11-29  Philippe Théveny  <philippe.theveny@laposte.net>
28999
29000	untabify and remove trailing spaces
29001
29002	fix padding error in sprnt_inf
29003
29004	factorization of special numbers output in sprnt_nan and sprnt_inf functions
29005
29006	fix comment about the size of format string buffer
29007
29008	replace memory management functions mpfr_default_* by __gmp_*_func
29009
290102007-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29011
29012	updated Core 2 thresholds (obtained with gmp-4.2.2 and Gaudry's patch)
29013
290142007-11-29  Vincent Lefèvre  <vincent@vinc17.net>
29015
29016	Typo in comment.
29017
290182007-11-29  Philippe Théveny  <philippe.theveny@laposte.net>
29019
29020	fix typo pointed out in revision 5044
29021
290222007-11-28  Vincent Lefèvre  <vincent@vinc17.net>
29023
29024	printf.c: more comments about snprintf.
29025
29026	printf.c: added a comment concerning a warning (a bug, IMHO).
29027
29028	vasprintf.c: added FIXME comment concerning the case nbchar > INT_MAX,
29029	with a reference to POSIX.
29030
290312007-11-28  Philippe Théveny  <philippe.theveny@laposte.net>
29032
29033	add explanations about buffer size
29034
29035	change __gmp_const into const
29036
290372007-11-28  Vincent Lefèvre  <vincent@vinc17.net>
29038
29039	vasprintf.c: added an assert.
29040
290412007-11-28  Philippe Théveny  <philippe.theveny@laposte.net>
29042
29043	fix output with space flag
29044
29045	add MPFR_ASSERTD to prevent buffer overflow
29046
29047	replace use of ptrdiff_t by size_t where possible
29048
290492007-11-27  Philippe Théveny  <philippe.theveny@laposte.net>
29050
29051	factorisation of temp string alloc in buffer_pad function
29052
29053	cosmetic changes
29054
29055	compatibility of types between nbc fields and mp_exp_t
29056	fix wrong size of buffer string exp_fmt
29057
290582007-11-27  Vincent Lefèvre  <vincent@vinc17.net>
29059
29060	Added initial mpfrlint sh script to check possible problems in
29061	the MPFR source.
29062
290632007-11-27  Philippe Théveny  <philippe.theveny@laposte.net>
29064
29065	change 'g'/'G' to 'e'/'E' or 'f'/'F' according to C99 rules
29066
290672007-11-26  Philippe Théveny  <philippe.theveny@laposte.net>
29068
29069	replace mpfr_default_(re)allocate by __gmp_(re)allocate for the returned string (freed by mpfr_free_str)
29070
29071	tprintf.c: replace __gmp_const by const
29072
290732007-11-26  Vincent Lefèvre  <vincent@vinc17.net>
29074
29075	printf.c: added FIXME comment: snprintf is new in C99. It must be
29076	checked with a configure test.
29077
29078	tests: updated svn:ignore property.
29079
29080	vasprintf.c: reformat.
29081
29082	MPFR_DECIMAL_POINT now needs to have type char (because of vasprintf.c).
29083
29084	tests/tprintf.c: changeset 4996 was incorrect. Fixed.
29085
29086	README.dev: Avoid variable names "l", "I" and "O".
29087
29088	README.dev: added a note about the locales.
29089
290902007-11-26  Philippe Théveny  <philippe.theveny@laposte.net>
29091
29092	printf.c: fix use of pointer of string
29093	vasprintf.c: add conditional compilation directives for wchar and wint_t
29094	vasprintf.c: add padding for special values
29095	vasprintf.c: fix output for value 1.0 and format "%Rf"
29096	vasprintf.c: replace __gmp_const by const
29097
290982007-11-26  Vincent Lefèvre  <vincent@vinc17.net>
29099
29100	acinclude.m4: check wchar.h header (see below).
29101	vasprintf.c:
29102	  * No longer depend on toupper (which returns locale-dependent results)
29103	    to generate 'A'..'F' (see C standard).
29104	  * Removed #include <ctype.h> which was hiding a bug (see below).
29105	  * Added missing #include <wchar.h> if HAVE_WCHAR_H is defined. But
29106	    the compilation fails if <wchar.h> doesn't exist due to the use of
29107	    wchar_t and wint_t.
29108
29109	vasprintf.c: updated comments.
29110
29111	vasprintf.c:
29112	  * Removed #include <stdlib.h> now useless.
29113	  * Added FIXME comment.
29114	  * Replaced _MP_EXP_FORMAT_SPEC (reserved) by MPFR_EXP_FORMAT_SPEC.
29115
29116	vasprintf.c: added FIXME comments.
29117
29118	vasprintf.c: fixed a typo in a comment and improved another comment.
29119
291202007-11-24  Vincent Lefèvre  <vincent@vinc17.net>
29121
29122	mpfr.h: moved function declarations out of "#ifdef _MPFR_H_HAVE_VA_LIST"
29123	and/or "#ifdef _MPFR_H_HAVE_FILE" when this makes sense.
29124
29125	tests/tprintf.c: added missing "void" in function declarations.
29126
29127	Untabified and removed trailing spaces.
29128
29129	mpfr.texi: corrections (English usage and texinfo). Added corresponding
29130	notes at the end of the README.dev file.
29131
29132	mpfr.texi: s/rounding to the nearest mode/rounding to nearest mode/
29133
29134	mpfr.texi consistency changes: "towards" -> "toward" (because this
29135	is what the IEEE-754 standard uses, and we have mpfr_nexttoward).
29136
29137	mpfr.texi: English typography corrections (no space before ":").
29138
29139	vasprintf.c: the use of the abs function was incorrect as its argument
29140	has type int, which may be smaller than an mp_exp_t. Fixed that and
29141	replaced uceil_log10 by uceil_log10_exp_p2.
29142
29143	vasprintf.c: fixed uceil_log10 for x close to ULONG_MAX.
29144
291452007-11-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29146
29147	got rid of math.h
29148
291492007-11-23  Vincent Lefèvre  <vincent@vinc17.net>
29150
29151	tests/tprintf.c: include <stdarg.h>.
29152
29153	stdarg-related corrections, as HAVE_STDARG is not standard thus must not
29154	be tested in mpfr.h!
29155
29156	tests/tprintf.c: enable the tests only if HAVE_STDARG is defined,
29157	i.e. if the printf-like functions are defined.
29158
29159	tests/tprintf.c:
29160	  * Non-standard headers should be included after the standard headers
29161	    (when possible).
29162	  * The setlocale function is used only if <locale.h> has been included.
29163	  * Use tests_start_mpfr / tests_end_mpfr; this shows a bug:
29164	      tests_free(): attempt to free bad pointer 0x1801200
29165
29166	tests/tests.c: setlocale is used only if <locale.h> has been included.
29167
29168	out_str.c: remove other occurrence of <locale.h>.
29169
291702007-11-23  Philippe Théveny  <philippe.theveny@laposte.net>
29171
29172	Makefile.am: add mpfr_printf-like functions
29173	mpfr.h: add mpfr_printf-like functions
29174	printf.c: printf, sprintf, snprintf, asprintf and 'v' variants
29175	vasprintf.c: vasprintf functions used by its likes
29176	mpfr.texi: add description for printf family functions
29177	tests/Makefile.am: add test for printf
29178	tests/tprintf.c: tests for printf-like functions
29179	acinclude.m4: define HAVE_LOCALE_H
29180	mpfr-impl.h: define MPFR_DECIMAL_POINT even if no locale.h
29181	strtofr.c: remove locale.h inclusion (done by mpfr-impl.h )
29182	tests/tests.c: use HAVE_LOCALE_H
29183
291842007-11-23  Vincent Lefèvre  <vincent@vinc17.net>
29185
29186	tests/tisqrt.c: test the 32-bit __gmpfr_cuberoot bound cases (9 per
29187	value) exhaustively (running tisqrt is still immediate on a recent
29188	machine).
29189
29190	tests/tisqrt.c: test the 32-bit __gmpfr_isqrt bound cases exhaustively.
29191
29192	acinclude.m4: test the availability of <string.h>.
29193
29194	acinclude.m4: test the availability of <locale.h>.
29195
29196	acinclude.m4: updated comment concerning the checked functions.
29197
29198	acinclude.m4: added memmove to the checked functions (though this test
29199	is currently useless, except for the corresponding information).
29200
29201	acinclude.m4: updated a comment concerning the function checking.
29202
29203	gmp_op.c: removed old "#include <stddef.h>" line (seems to be useless
29204	now, and note that <stdio.h> is included by default in mpfr-impl.h).
29205
29206	tests/tj0.c: fixed test.
29207
29208	jn.c: added integer overflow checking.
29209
29210	tests/memory.c: fixed copyright notice.
29211
292122007-11-21  Vincent Lefèvre  <vincent@vinc17.net>
29213
29214	tests/tzeta.c: completed test of mpfr_zeta bug fixed in r4920 (the value
29215	of zeta(large negative) was also wrong in GMP_RNDU: -Inf instead of the
29216	largest negative MPFR number).
29217
292182007-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29219
29220	reverted back to rev. 4951 (otherwise we would have to free memory for all
29221	exit calls)
29222
292232007-11-20  Philippe Théveny  <philippe.theveny@laposte.net>
29224
29225	use of RANDS instead of __gmp_rands
29226	tset_f.c add checking with random values
29227
292282007-11-19  Philippe Théveny  <philippe.theveny@laposte.net>
29229
29230	tli2.c: fix wrong assertion in copyright motice
29231	test.c: fixed seed for reproducible errors
29232	trandom.c tpow_z.c tset_f.c: integration with GMP_CHECK_RANDOMIZE process
29233
292342007-11-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29235
29236	added missing call to tests_end_mpfr
29237
29238	got rid of mpfr_init_gmp_rand/MPFR_TEST_USE_RANDS and not-reentrant gmp
29239	random functions (mpn_random*, mpz_random*, mpf_random*). Now all tests use
29240	either RANDS (which is cleared by tests_rand_end called by tests_end_mpfr),
29241	or the gmp_randstate_t mechanism.
29242
292432007-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29244
29245	added missing mpfr_clear and tests_end_mpfr (thanks Michael Abshoff)
29246
29247	fixed problem reported by valgrind (thanks to Michael Abshoff)
29248
292492007-11-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29250
29251	fixed bug in div_ui for x=0 and u<>0 (sign of result was not set)
29252
292532007-11-06  Philippe Théveny  <philippe.theveny@laposte.net>
29254
29255	algorithms.tex: fix bibtex references for dilogarithm function
29256	algorithms.bib: add references for dilogarithm function
29257
292582007-11-05  Vincent Lefèvre  <vincent@vinc17.net>
29259
29260	mpfr-impl.h: removed trailing spaces.
29261
292622007-11-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29263
29264	added new macro MPFR_ALIAS
29265
292662007-11-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29267
29268	removed unused label
29269
292702007-11-04  Vincent Lefèvre  <vincent@vinc17.net>
29271
29272	pow_z.c: fixed bug that occurs when x is a power of 2 and the result
29273	overflows (wrong sign); this bug has always been present (from r3215).
29274
29275	tpow.c, tpow_z.c: removed a printf that was left by mistake.
29276
29277	tpow_z.c: added testcase for the latest mpfr_pow bug (rev 4942),
29278	which is in fact a bug in mpfr_pow_z.
29279
29280	tpow.c: added testcase for new bug found by Kevin P. Rauch; removed a
29281	mpfr_dump that was left by mistake.
29282
292832007-11-03  Vincent Lefèvre  <vincent@vinc17.net>
29284
29285	pow.c: removed FIXME comment.
29286
292872007-11-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29288
29289	fixed case x < 0, y large integer
29290
292912007-11-03  Vincent Lefèvre  <vincent@vinc17.net>
29292
29293	pow.c: added FIXME comment.
29294
29295	tpow.c: added testcase for new bug found by Kevin P. Rauch. The problem
29296	occurs on x^y with x negative and y an integer whose exponent is > 256
29297	(so that mpfr_pow_z isn't used, and the generic code is used instead and
29298	fails because x is negative).
29299
293002007-11-02  Vincent Lefèvre  <vincent@vinc17.net>
29301
29302	Fixed several bugs in mpfr_pow (from rev 3592 and 4932); added testcase.
29303
29304	tpow.c: added an overflow test in reduced exponent range
29305	(-> assertion failure in the current pow.c code).
29306
29307	mpfr-impl.h: added a comment concerning __gmpfr_one, __gmpfr_two and
29308	__gmpfr_four.
29309
29310	Bug fix: in cmp_abs.c, changed MPFR_GET_EXP into MPFR_EXP to allow
29311	exponents outside the current exponent range (needed for mpfr_pow).
29312
293132007-10-31  Vincent Lefèvre  <vincent@vinc17.net>
29314
29315	Untabified and removed trailing spaces.
29316
293172007-10-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29318
29319	pow.c, tpow.c: fixed bugs reported by Kevin Rauch
29320	mpfr-impl.h: fixed typo
29321
29322	cosmetic changes
29323
29324	added missing \Li2
29325
293262007-10-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29327
29328	added more test cases for mpfr_li2
29329	improved MPFR_FAST_COMPUTE_IF_SMALL_INPUT case for x > 0
29330
29331	fixed bug mentioned by Kevin Rauch: mpfr_lgamma was hanging for tiny input
29332	(had to implement a complete loop in that case)
29333
29334	fixed bug reported by Kevin Rauch: wrong sign for jn(n even, large negative x)
29335
29336	removed item on mpfr_sinh_cosh (done)
29337	added more info on item on efficiency of mpfr_sin
29338
29339	added comment about function/macro in custom interface
29340
29341	jn.c: improved choice of initial precision in Taylor series (takes into
29342		account cancellation)
29343	tests/tjn.c: now "tjn p n z" evaluates j(n,z) to precision p
29344
293452007-10-27  Vincent Lefèvre  <vincent@vinc17.net>
29346
29347	factorial.c: added FIXME comment.
29348
29349	gamma.c: attempt to fix wrong fix in 4918 (the maximum exponent can
29350	be > 2^30 on 64-bit machines). There may still be problems in huge
29351	precisions.
29352
293532007-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29354
29355	added note about efficiency of special functions
29356	corrected typo
29357
29358	fixed bug in zeta(large negative) reported by Kevin Rauch [wrong inexact flag]
29359
29360	fixed inefficiency reported by Kevin Rauch when x large negative (erfc -> 2)
29361
293622007-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29363
29364	fixed another bug found by Kevin Rauch: gamma(huge integer) failed on 64-bit
29365
29366	fixed bug found by Kevin Rauch (emin/emax not restored for x=1,2)
29367
29368	added test for reference values
29369
29370	reference values for li2
29371
293722007-10-26  Philippe Théveny  <philippe.theveny@laposte.net>
29373
29374	algorithms.tex: description of dilogarithm algorithm
29375	li2.c: conformity with description in algorithm.tex
29376
293772007-10-23  Vincent Lefèvre  <vincent@vinc17.net>
29378
29379	mpfr.texi: small change in the description of mpfr_subnormalize.
29380
293812007-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29382
29383	added more details in the description of subnormalize
29384
293852007-10-23  Vincent Lefèvre  <vincent@vinc17.net>
29386
29387	subnormal.c: fixed the bugs when old_inex is INT_MIN or INT_MAX.
29388
29389	tsubnormal.c: added some tests showing bugs when old_inex is INT_MIN
29390	or INT_MAX.
29391
29392	subnormal.c: corrected comment.
29393
29394	Changeset r4904 introduced an assertion failure, but the assertion
29395	emax - emin >= PREC(x) wasn't necessary: the value of emax doesn't
29396	matter, except when the exponent is increased due to the rounding.
29397	So, we just document that if the result cannot be represented in the
29398	current exponent range, the behavior is undefined (updated mpfr.texi
29399	accordingly). Removed the assertion from subnormal.c and added a new
29400	one to have an abort if such an undefined behavior occurs.
29401
294022007-10-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29403
29404	fixed 2 bugs reported by Kevin Rauch
29405
294062007-10-22  Vincent Lefèvre  <vincent@vinc17.net>
29407
29408	subnormal.c: replaced incorrect comment.
29409
29410	tests: updated svn:ignore property.
29411
294122007-10-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29413
29414	added new references
29415
294162007-10-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29417
29418	added asymptotic expansions
29419
294202007-10-19  Philippe Théveny  <philippe.theveny@laposte.net>
29421
29422	li2.c: add Ziv's loop in li2_series
29423	tli2.c: add a function for fixed value checking
29424
294252007-10-17  Philippe Théveny  <philippe.theveny@laposte.net>
29426
29427	li2.c: fix a typo and fix use of taylor series
29428	tests/tli2.c: use default random function
29429
294302007-10-16  Philippe Théveny  <philippe.theveny@laposte.net>
29431
29432	add dilogarithm function
29433
294342007-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29435
29436	added item in Efficiency section
29437
29438	added table of contents
29439	removed last section (mpf/mpfr integration)
29440
294412007-10-15  Vincent Lefèvre  <vincent@vinc17.net>
29442
29443	Fixed acosh(x) with x slightly larger than 1, using sqrt(2(x-1)) and
29444	a complete error analysis.
29445
29446	tests/tacosh.c: added another test with x a bit larger than 1 and
29447	prec(y) << prec(x).
29448
294492007-10-12  Vincent Lefèvre  <vincent@vinc17.net>
29450
29451	acosh.c: added a comment about the fix I did in r4814.
29452
294532007-10-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29454
29455	added extra reference for slowness of mpfr_root
29456
294572007-10-09  Vincent Lefèvre  <vincent@vinc17.net>
29458
29459	FAQ update (added Question 8).
29460
29461	mpfr.texi: another small change in Contributors section.
29462
29463	mpfr.texi: small change in Contributors section.
29464
29465	mpfr.texi: mention Fiable and AOC actions in the Contributors section.
29466
294672007-10-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29468
29469	added reference to ACM TOMS paper
29470	updated other references, and Contributors section
29471
29472	fixed typo in sectioning
29473
294742007-10-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29475
29476	removed mpfr_get_d1 from documented functions
29477	removed old commented functions
29478
29479	renamed "Rounding Mode Related Functions" to "Rounding Related Functions"
29480	put mpfr_can_round in "Rounding Related Functions" (now exported)
29481	exchanged order of sections "Miscellaneous Functions" and "Rounding Related Functions"
29482
29483	added hint for mpfr_can_round to get ternary value
29484
29485	changed mpfr_can_round() call into MPFR_CAN_ROUND() call
29486
294872007-10-05  Vincent Lefèvre  <vincent@vinc17.net>
29488
29489	Updated update-version to make patches easier to produce.
29490
294912007-10-04  Vincent Lefèvre  <vincent@vinc17.net>
29492
29493	Fixed a bug (found by Robert Bajema) in mpfr_atan2, which can occur if
29494	the underflow flag is set before the call and x > 0; added testcase.
29495
294962007-10-03  Vincent Lefèvre  <vincent@vinc17.net>
29497
29498	mpfr.texi: improved mpfr_set_exp description too.
29499
29500	mpfr.texi: improved mpfr_get_exp documentation.
29501
29502	mpfr.texi: mantissa -> significand (to use the terminology from IEEE 754
29503	and ISO C99).
29504
29505	configure.in: better error message if libgmp is not found.
29506
295072007-10-02  Philippe Théveny  <philippe.theveny@laposte.net>
29508
29509	fix some typos
29510
295112007-09-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29512
29513	added references
29514
295152007-09-28  Philippe Théveny  <philippe.theveny@laposte.net>
29516
29517	merge fmod, remaider and remquo into a single file rem1.c.
29518	merge code into a single internal function mpfr_rem1.
29519	fix false statement in mpfr.texi: rop and op1 have the same sign for mpfr_fmod
29520	but not for mpfr_remainder and mpfr_remquo.
29521
295222007-09-26  Vincent Lefèvre  <vincent@vinc17.net>
29523
29524	tests/tfmod.c: added static.
29525
295262007-09-26  Philippe Théveny  <philippe.theveny@laposte.net>
29527
29528	new fmod function
29529
295302007-09-22  Vincent Lefèvre  <vincent@vinc17.net>
29531
29532	tests: updated svn:ignore property.
29533
29534	GNU coding style, reformatting, exit (-1) -> exit (1).
29535
295362007-09-21  Philippe Théveny  <philippe.theveny@laposte.net>
29537
29538	new mpfr_sinh_cosh function
29539
295402007-09-19  Vincent Lefèvre  <vincent@vinc17.net>
29541
29542	BUGS: removed __gmpfr_isqrt bug.
29543
29544	isqrt.c: quick fix of __gmpfr_cuberoot (a full proof is needed).
29545	tests/tisqrt.c: added much more tests for __gmpfr_cuberoot.
29546
29547	tisqrt.c: improved tests. When doing
29548	  touch tests.c tisqrt.c
29549	  make tisqrt CFLAGS="-g -O2 -ffloat-store -DMPFR_FPU_PREC=_FPU_SINGLE"
29550	  ./tisqrt
29551	with gcc 4.2.1 on a Linux/x86 machine, on gets:
29552	  Error in __gmpfr_cuberoot (4251527999): got 1620 instead of 1619
29553
29554	tisqrt.c: added __gmpfr_cuberoot() tests.
29555
29556	isqrt.c: corrected the explanation.
29557
29558	isqrt.c: fixed __gmpfr_isqrt.
29559
295602007-09-18  Vincent Lefèvre  <vincent@vinc17.net>
29561
29562	tests: updated svn:ignore property.
29563
29564	tests: added tisqrt.c (test file for __gmpfr_isqrt internal function).
29565
29566	BUGS: added __gmpfr_isqrt bug.
29567
29568	isqrt.c: fixed a cast and added a FIXME comment.
29569
29570	isqrt.c: GNU coding style.
29571
29572	sin.c: extend the exponent range.
29573
29574	sqr.c: set the global inexact flag.
29575
29576	sqrt.c: avoid the exponent range extension.
29577
29578	tsqr.c: added generic tests (shows that the inexact flag isn't set).
29579
29580	sqrt.c: extend exponent range (this also fixes the fact that the global
29581	inexact flag wasn't set).
29582
29583	tsqrt.c: added generic tests (shows that the inexact flag isn't set,
29584	which is a bug reported by Guillaume Revy).
29585
295862007-09-17  Philippe Théveny  <philippe.theveny@laposte.net>
29587
29588	modf.c: take care of user exponent range (possible underflow/overflow)
29589
295902007-09-16  Vincent Lefèvre  <vincent@vinc17.net>
29591
29592	tsin_cos.c: fixed the tiny() test.
29593
29594	sin_cos.c: fixed the overflow and cancellation problems by using
29595	MPFR_FAST_COMPUTE_IF_SMALL_INPUT from the mpfr_sin and mpfr_cos
29596	functions (I'll fix the test later).
29597
29598	tsin_cos.c: added test on tiny values.
29599
296002007-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29601
29602	Put back previous patch, now avoids overflow, and added more explanations.
29603	This is still not a definitive solution, but more efficient than 2.3.0
29604	in the case x is small.
29605
296062007-09-15  Vincent Lefèvre  <vincent@vinc17.net>
29607
29608	Efficiency regression wasn't fixed correctly -> commented out the code.
29609
296102007-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29611
29612	fixed efficiency regression pointed out by Andreas Enge
29613
296142007-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29615
29616	fixed bug in mpfr_sin_cos found by Philippe: z (to save the cosine) was not
29617	allowed to be identical to the input x
29618
296192007-09-13  Philippe Théveny  <philippe.theveny@laposte.net>
29620
29621	new function mpfr_modf and add restrictions on mpfr_sin_cos' variables
29622
296232007-09-11  Philippe Théveny  <philippe.theveny@laposte.net>
29624
29625	add some simple test cases in tadd_d.c and friends
29626
296272007-09-10  Vincent Lefèvre  <vincent@vinc17.net>
29628
29629	prepare: output a message saying that this script is obsolete.
29630
296312007-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29632
29633	added restrictions to mpfr_add_d and friends
29634
296352007-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29636
29637	removed functions mpfr_add_d ... which are done
29638
296392007-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29640
29641	added Philippe Theveny
29642
296432007-09-07  Philippe Théveny  <philippe.theveny@laposte.net>
29644
29645	new arithmetic functions with a double argument
29646
296472007-09-07  Vincent Lefèvre  <vincent@vinc17.net>
29648
29649	tacosh.c: added generic tests for the overflow case.
29650
29651	acosh.c: reduce the precision for ln(2); smaller error bound.
29652
29653	tgeneric.c: undefine some macros at the end.
29654
29655	acosh.c: fixed overflow bug.
29656
29657	acosh.c: mentioned bug due to overflow in mpfr_mul.
29658	tests/tacosh.c: added corresponding testcase (for 32-bit machines).
29659
29660	tacosh.c: use tests_default_random().
29661
29662	tests.c: improved tests_default_random().
29663
296642007-09-02  Vincent Lefèvre  <vincent@vinc17.net>
29665
29666	Makefile.am: fixed get_patches rule.
29667
29668	Makefile.am: cd $(srcdir) before executing get_patches.sh (thanks to
29669	Daniel Jacobowitz for noticing this); for more information, see the
29670	note just before the get_patches.c rule.
29671
296722007-08-31  Vincent Lefèvre  <vincent@vinc17.net>
29673
29674	acosh.c: added MPFR_UNLIKELY.
29675
29676	Added generic bad case tests.
29677
29678	algorithms.tex: deleted trailing spaces.
29679
29680	algorithms.tex: correction in section on mpfr_asinh: acosh -> asinh.
29681
29682	Fixed bug in mpfr_acosh for arguments slightly larger than 1;
29683	updated algorithms.tex; fixed testcase.
29684
29685	tacosh.c: added testcase for bug in mpfr_acosh (assertion failure).
29686
29687	tasin.c: increased the number of generic tests.
29688
29689	Improved generic tests by limiting the exponent range of the random
29690	numbers for some functions.
29691
296922007-08-30  Vincent Lefèvre  <vincent@vinc17.net>
29693
29694	Generic tests: adjust the proportion of negative numbers returned
29695	by the random function in order to get fewer NaN cases.
29696
29697	tgeneric.c: output a warning when too few normal cases are tested
29698	(so that the random function can be improved...).
29699
29700	tests.c: function split (for future addition).
29701
29702	configure.in: updated copyright notice (for consistency).
29703
29704	Bug fix: added missing _MPFR_PROTO in mpfr-test.h.
29705
29706	tgeneric.c: updated description line.
29707
297082007-08-29  Vincent Lefèvre  <vincent@vinc17.net>
29709
29710	Updated copyright notice (for an unknown reason, some files were missing
29711	from the change done in r4350).
29712
297132007-08-28  Vincent Lefèvre  <vincent@vinc17.net>
29714
29715	atan2.c: as we supposed some property, let's add an assertion (which
29716	can be evaluated at compile time).
29717
29718	atan2.c: improved comment.
29719
29720	atan2.c: completed the underflow case.
29721
29722	atan2.c: fixed the underflow case except in GMP_RNDN with
29723	2^(-emin-2) < |y/x| < 2^(-emin-1).
29724
29725	tatan.c: added small-value tests in the other rounding modes.
29726
29727	atan2.c: implemented the special case where x is positive and y/x is
29728	computed exactly (solving the underflow problems in this case).
29729
29730	tatan.c: added a similar test, but with an exact division result.
29731
29732	tatan.c: fixed test.
29733
29734	README.dev: added a paragraph concerning Ziv loops.
29735
29736	tatan.c: updated comment.
29737
29738	tatan.c: extended the latest testcase to any platform (e.g. 64 bits).
29739
29740	tatan.c: added testcase from a bug reported by Christopher Creutzig.
29741
297422007-08-27  Vincent Lefèvre  <vincent@vinc17.net>
29743
29744	Updated svn:ignore properties.
29745
29746	FAQ update:
29747	  * The question numbers are now hardcoded instead of being generated
29748	    with CSS rules.
29749	  * Added the list of questions at the top.
29750	  * CSS styles: a grey bar is displayed on the left of the target answer
29751	    (if the browser supports the ":target" pseudo-class from CSS3).
29752
29753	faq.xsl: added a comment.
29754
29755	FAQ update.
29756
297572007-08-22  Vincent Lefèvre  <vincent@vinc17.net>
29758
29759	INSTALL: added another warning concerning the --with-gmp options.
29760	For instance, under Linux, "cpp -I/usr/include -v < /dev/null" says:
29761	  ignoring duplicate directory "/usr/include"
29762	    as it is a non-system directory that duplicates a system directory
29763	and does not modify the include search path as wanted.
29764
297652007-08-15  Vincent Lefèvre  <vincent@vinc17.net>
29766
29767	mpfr.texi: improved description of mpfr_setsign.
29768
297692007-08-14  Vincent Lefèvre  <vincent@vinc17.net>
29770
29771	Added to NEWS: Thread-safe support with Microsoft Visual compiler.
29772
29773	mpfr-impl.h: if MPFR_USE_THREAD_SAFE is defined (--enable-thread-safe):
29774	  * Added support for MSC (thanks to Brian Gladman).
29775	  * Define MPFR_THREAD_ATTR even after #error to make the error more
29776	    visible (see comment in the source).
29777
297782007-08-13  Vincent Lefèvre  <vincent@vinc17.net>
29779
29780	tstckintc.c: fixed bus error on Solaris (the address of Buffer was not
29781	a multiple of 4).
29782
29783	NEWS: new functions mpfr_signbit, mpfr_setsign, mpfr_copysign.
29784
29785	Implemented changes suggested in
29786	<https://sympa.inria.fr/sympa/arc/mpfr/2007-07/msg00123.html>.
29787	* Made mpfr_copysign() like the corresponding function in IEEE 754
29788	  (was an internal function until now).
29789	* Added mpfr_signbit() and mpfr_setsign().
29790	* Documented these three functions.
29791	* Updated TODO.
29792
297932007-08-11  Vincent Lefèvre  <vincent@vinc17.net>
29794
29795	Fixed mpfr_inits and mpfr_clears calls in tests/tatan.c.
29796
29797	Added check_inits_clears Perl script to check that a cast is performed
29798	for the last argument of mpfr_inits, mpfr_inits2 and mpfr_clears.
29799
298002007-08-10  Vincent Lefèvre  <vincent@vinc17.net>
29801
29802	Updated version to 2.4.0-dev.
29803
29804	NEWS update.
29805
29806	ChangeLog update with "TZ=UTC svn log -v".
29807
29808	asinh.c: fixed assertion failure (see test 4 in tasinh.c, added
29809	in r4740), that was due to an exception.
29810
29811	tasinh.c: fixed test.
29812
29813	tasinh.c: added worst case that yields an assertion failure.
29814
298152007-08-09  Vincent Lefèvre  <vincent@vinc17.net>
29816
29817	Added data_check support to cbrt.
29818
29819	log.c: fixed assertion failure (see test x_near_one in tlog.c, added
29820	in r4736), that was due to an exception.
29821
29822	pow.c: added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO for the case where
29823	|y * log(x)| is very small (I can't really test because this code
29824	currently fails due to a bug in mpfr_log: see test x_near_one
29825	added to tlog.c as changeset 4736; this bug is also present in
29826	the 2.2 branch).
29827
29828	tlog.c: added a test leading to an assertion failure in mpfr_log.
29829
29830	tpow.c: added a test where x is close to 1.
29831
29832	Added empty file tests/data/exp10 to avoid an error with -dev versions.
29833
29834	Added a TODO concerning the description of mpfr_round_near_x.
29835
29836	Added empty files in tests/data to avoid errors with -dev versions.
29837
29838	mpfr_ui_pow fix: added a MPFR_SAVE_EXPO_UPDATE_FLAGS.
29839
29840	Added texp10.c (texp10 currently fails).
29841
29842	texp2.c: reformat and added some tests which were missing.
29843
298442007-08-08  Vincent Lefèvre  <vincent@vinc17.net>
29845
29846	Added data_check calls to texpm1, tlog1p and tlog2.
29847
29848	tests/tests.c: in data_check(), mode 'Z', do not test GMP_RNDN if
29849	the precision for the directed rounding modes is MPFR_PREC_MIN.
29850
298512007-08-04  Vincent Lefèvre  <vincent@vinc17.net>
29852
29853	TODO: more on mpfr_sin (and mpfr_cos).
29854
29855	TODO: update concerning sin/cos/tan.
29856
298572007-08-03  Vincent Lefèvre  <vincent@vinc17.net>
29858
29859	tests/tests.c: in data_check(), check the 4 rounding modes if rnd is 'Z'
29860	(in order to test the worst cases).
29861
29862	Fixed coding style (for ansi2knr in particular).
29863
298642007-08-02  Vincent Lefèvre  <vincent@vinc17.net>
29865
29866	Makefile.am: added a comment about "get_patches.c".
29867
29868	No longer set "CLEANFILES = get_patches.c" in Makefile.am so that a
29869	"make clean" doesn't remove the get_patches.c file, as rebuilding it
29870	needs a Unix shell (and some standard utilities). Anyway the update
29871	of this file should be regarded as part of the patch process, then
29872	this file is just like any other .c files. Note: "make dist" includes
29873	this file in the archives, so that concerning the build, everything
29874	is like before as long as no patches are applied.
29875
298762007-08-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29877
29878	added item about sNaN/qNaN
29879
298802007-07-31  Vincent Lefèvre  <vincent@vinc17.net>
29881
29882	copysign.c: reformat, updated comment (but this function is still not
29883	documented in mpfr.texi).
29884
29885	Updated version back to 2.3.0-dev since the 2.3 branch will be recreated
29886	from the trunk (too many changes!).
29887
29888	tl2b.c: enable output even when the constants are correct.
29889
29890	Added get_patches.c to the svn:ignore property, as this file is
29891	generated.
29892
29893	Replaced l2b cache by constants, as suggested by Patrick Pelissier,
29894	to avoid efficiency problems with the stack interface and heavily
29895	threaded applications.
29896	  * Added tests/tl2b.c to generate / check the constants.
29897	  * tests/Makefile.am: added tl2b to check_PROGRAMS.
29898	  * tests directory: added tl2b to the svn:ignore property.
29899	  * mpfr-impl.h: updated the __gmpfr_l2b declaration.
29900	  * free_cache.c: disabled free_l2b (since there's no longer a cache).
29901	  * get_str.c: added the code generated by tl2b; for the bootstrap, one
29902	    can just write:
29903	      const __mpfr_struct __gmpfr_l2b[BASE_MAX-1][2] = { { { 0 } } };
29904	    Removed the code (in ceil_mul) that computed these constants.
29905
299062007-07-30  Vincent Lefèvre  <vincent@vinc17.net>
29907
29908	mpfr.texi: updated the documentation of the mpfr_get_d function family.
29909
29910	Patch tracking: updated README.dev and TODO files.
29911
29912	Added support for tracking applied patches with new function
29913	mpfr_get_patches().
29914
29915	mpfr.texi: updated the example concerning mpfr_get_version() vs
29916	MPFR_VERSION_STRING ("Warning" instead of "Error", make sure that
29917	the example fits on 80 columns in the info file).
29918
29919	mpfr.texi: updated description of mpfr_get_version().
29920
29921	mpfr.texi: updated description of mpfr_get_version().
29922
299232007-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29924
29925	added files that are not 100% covered by tests
29926
299272007-07-27  Vincent Lefèvre  <vincent@vinc17.net>
29928
29929	coverage: added --disable-shared --enable-static to configure.
29930
29931	mpfr-impl.h: added more casts for g++.
29932
29933	Reformat.
29934
29935	Applied patch from Patrick to be able to build MPFR with g++.
29936
299372007-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29938
29939	added default thresholds for Core 2
29940
299412007-07-25  Vincent Lefèvre  <vincent@vinc17.net>
29942
29943	No longer use MPFR_CHECK_ALL in tests. In '-dev' versions, assume
29944	that the data files exist and return an error whenever a file cannot
29945	be opened. In the other versions, return silently if the file cannot
29946	be opened.
29947
29948	Moved mpfr-test.h into the tests directory.
29949
299502007-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29951
29952	fixed "efficiency bug" (argument reduction was broken)
29953
299542007-07-25  Vincent Lefèvre  <vincent@vinc17.net>
29955
29956	tests.c: in data_check(), made whitespace skipping consistent and
29957	check that the result value is immediately followed by a \n.
29958
29959	[tests.c] Fixed some types (the result of getc() is not necessarily
29960	representable in a char).
29961
29962	tests.c: changes in the error messages (BTW, we decided to output
29963	everything to stdout for consistency, even though messages for
29964	assertion failure are written to stderr) and replaced an abort ()
29965	by an exit (1).
29966
29967	Delete trailing spaces.
29968
299692007-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29970
29971	jyn_asympt.c: new common file for asymptotic expansion in jn/yn
29972	tests/tests.c: print precisions in case of failure
29973	jn.c: now use jyn_asympt.c
29974	yn.c: now implement asymptotic expansion (jyn_asympt.c)
29975
29976	fixed more wrong entries in Gonnet's test suite
29977
299782007-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29979
29980	contribution of first neglected term to error was wrong
29981
29982	fixed wrong entry (not enough precision was used in Maple)
29983
29984	implemented asymptotic expansion for large argument in j0/j1/jn
29985
299862007-07-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
29987
29988	define MPFR_CHECK_ALL for nightly tests
29989
29990	Added code to check mpfr against Gonnet's tables when the environment variable
29991	MPFR_CHECK_ALL is defined (some table entries were checked by MuPAD)
29992
29993	added comment
29994
29995	test data files mpfr mpfr_y0 and mpfr_y1, ***not*** checked with MuPAD
29996
29997	added auxiliary MuPAD functions
29998	improved Ziv's strategy: add half of DIGITS each time
29999
30000	test data file for mpfr_tanh, checked by MuPAD
30001
30002	test data file for mpfr_tan, checked with MuPAD (except 3 indicated entries)
30003
30004	test data file for mpfr_sqrt, checked with MuPAD
30005
30006	test data file for mpfr_sinh, checked by MuPAD (except indicated lines)
30007
30008	test data file for mpfr_sin, checked by MuPAD (except tiny inputs indicated
30009	in file)
30010
30011	test data file for x^(11/4), checked with MuPAD
30012
30013	finally, I was able to check it with MuPAD
30014
30015	test data file for 2^x, checked with MuPAD
30016
30017	test data file for Pi*x, checked with MuPAD
30018
30019	test data file for mpfr_log, checked with MuPAD
30020
30021	test data files for mpfr_j0, mpfr_j1, mpfr_lgamma, mpfr_log10,
30022	***not*** tested with MuPAD (not Dom::Interval interface)
30023
30024	test data file for 1/x, i.e., mpfr_ui_div(1,x), checked with MuPAD
30025
30026	test data file for mpfr_gamma, ***not*** checked by MuPAD
30027
30028	test data file for mpfr_exp, checked with MuPAD
30029
30030	test data files for erf and erfc (not checked by MuPAD, since Dom::Interval
30031	does not have an interface for those functions in MuPAD 3.2.0)
30032
30033	test data file for mpfr_cosh, checked with MuPAD
30034
30035	test data file for mpfr_cos, checked by MuPAD
30036
30037	test data file for mpfr_atanh, checked with MuPAD
30038
30039	test data file for atan, checked with MuPAD
30040
30041	test file for mpfr_asinh, checked with MuPAD
30042
30043	data file for mpfr_asin, checked with MuPAD using CheckData.mu
30044
30045	data file for mpfr_acosh, checked with MuPAD using CheckData.mu
30046
30047	improved output
30048
30049	MuPAD file to check a data file
30050
300512007-07-20  Vincent Lefèvre  <vincent@vinc17.net>
30052
30053	Renamed mpfr_l2b as __gmpfr_l2b for consistency.
30054
300552007-07-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30056
30057	patch from Brian Gladman to build mpfr.dll
30058
30059	added copyright information about Gonnet's package
30060
30061	modified data_check() to allow comment lines starting with #
30062
30063	new (experimental) mechanism to check data files (see example in tacos.c)
30064
30065	new directory for test data
30066
30067	added test for inexact flag (bug fixed in r4630)
30068
300692007-07-18  Vincent Lefèvre  <vincent@vinc17.net>
30070
30071	erfc.c, atan2.c: added missing "MPFR_SAVE_EXPO_FREE (expo);" before
30072	  "return mpfr_underflow (...);".
30073	erfc.c: replaced a goto by an else.
30074
300752007-07-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30076
30077	now deal with underflow in y/x (remains to deal with overflow)
30078
30079	now can specify output base when argc > 1
30080
30081	MPFR_EQUAL -> mpfr_equal_p
30082
30083	fixed problem with erfc() near underflow region
30084
30085	atan2.c: quick-and-dirty fix for atan2(y,1)
30086	tests/tatan.c: fix tests from Christopher [x and y were interchanged]
30087
30088	added test from Ch. Creutzig
30089
30090	apply patch suggested in bug #3604
30091
300922007-07-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30093
30094	previous bug fix for tiny negative inputs in mpfr_lgamma was incorrect:
30095	result was NaN, but this was not detected by the tests since mpfr_cmp (y, NaN)
30096	is always true!
30097
300982007-07-17  Vincent Lefèvre  <vincent@vinc17.net>
30099
30100	Added comments and fixed an indentation bug.
30101
301022007-07-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30103
30104	in reconstruction after computation of cos(x/2^k) for reduced argument,
30105	it may be that cos(x) is zero to the working precision. Then restart Ziv's
30106	algorithm with a larger precision.
30107
301082007-07-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30109
30110	lngamma.c: fix for small inputs
30111	tlgamma.c: added more tests from Kaveh Ghazi
30112
30113	sin_cos.c: 2nd arg of 1st mpfr_can_round call was wrong
30114	ttan.c: fixed wrong reference value
30115
30116	added comment about sinpi, etc.
30117
301182007-07-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30119
30120	added new test, and re-enabled test that was too slow
30121
301222007-07-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30123
30124	removed MPFR_CHECK_TINY, added MPFR_CHECK_MAX
30125
301262007-07-10  Vincent Lefèvre  <vincent@vinc17.net>
30127
30128	terf.c: added testcase for bug reported by Christopher Creutzig.
30129
301302007-07-09  Vincent Lefèvre  <vincent@vinc17.net>
30131
30132	Removed a #include that was probably added by mistake in r2590.
30133
30134	<stdio.h> and <limits.h> are now included unconditionally in mpfr-impl.h
30135	(removed their inclusion from the C files for consistency).
30136
301372007-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30138
30139	ternary flag was wrong in case s=1 or -1 and rounding up/nearest
30140
30141	updated algorithms.tex with new additive argument reduction for sin/cos/tan
30142
301432007-07-03  Vincent Lefèvre  <vincent@vinc17.net>
30144
30145	lngamma.c: reformat and replaced mpfr_cmp(...) == 0 by mpfr_equal_p.
30146
301472007-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30148
30149	changed stdlib to stdio for NULL (see README.dev)
30150
30151	fixed bug in tlgamma and added test (need to implement Ziv's strategy in
30152	tiny case)
30153
30154	added missing include
30155
301562007-07-03  Vincent Lefèvre  <vincent@vinc17.net>
30157
30158	Fixed the bug reported by David Billinghurst to the MPFR mailing-list
30159	on 2007-07-03 (memory leaks under some conditions):
30160	  * moved the free_l2b() function from tests/tests.c to free_cache.c;
30161	  * mpfr_free_cache() (from free_cache.c) now calls free_l2b();
30162	  * as a consequence, no longer call free_l2b() in tests_end_mpfr();
30163	  * documented the behavior in mpfr.texi (under mpfr_free_cache).
30164
30165	tj0.c: added testcase from Sisyphus (assertion failed).
30166
30167	README.dev: explain how to test the library interface compatibility.
30168
301692007-07-02  Vincent Lefèvre  <vincent@vinc17.net>
30170
30171	README.dev: mentions patch-libtool and how to apply it.
30172
30173	Added patch-libtool (patch for aclocal.m4 and configure that comes from
30174	<https://lists.gnu.org/archive/html/bug-libtool/2007-07/msg00007.html>
30175	or gmane.comp.gnu.libtool.bugs:5776).
30176
30177	NEWS: mention that the shared library is now enabled by default on 2.3.
30178
30179	README.dev: updated item 2 of "To make a release".
30180
30181	Reformat.
30182
30183	Updated version to 2.4.0-dev.
30184
30185	ChangeLog update.
30186
30187	NEWS: update.
30188
301892007-07-01  Vincent Lefèvre  <vincent@vinc17.net>
30190
30191	Makefile.am: updated comment concerning -version-info.
30192
30193	Added mpfr_fms based on mpfr_fma.
30194
30195	tfma.c: added a space.
30196
30197	tfma.c: typo.
30198
30199	Reformat.
30200
30201	fma.c: minor changes for consistency with the future fms.
30202
30203	Completed the implementation of mpfr_fma (except in some corner cases
30204	where overflows/underflows and huge precisions are involved at the
30205	same time). Added underflow tests. Removed item from the BUGS file
30206	(the remaining problems more or less correspond to the first item).
30207
30208	Untabified.
30209
30210	tfma.c: added overflow test to test_underflow.
30211
30212	fma.c: implemented the main cases where x * y underflows.
30213	tests/tfma.c: fixed overflow tests and added underflow tests.
30214
302152007-06-30  Vincent Lefèvre  <vincent@vinc17.net>
30216
30217	NEWS: update.
30218
302192007-06-29  Vincent Lefèvre  <vincent@vinc17.net>
30220
30221	BUGS: updated item on mpfr_fma.
30222
30223	fma.c: completed the cases where x*y/4 needs to be used, except the very
30224	particular cases where an underflow occurs, that remain to be done.
30225
30226	tfma.c: fixed a printf.
30227
30228	fma.c: added an assertion.
30229
30230	tfma.c: fixed overflow tests.
30231
30232	tfma.c: check NaN in test_overflow2.
30233
30234	fma.c: updated a comment.
30235
30236	tfma.c: added more overflow tests (needed to distinguish the cases
30237	where z/4 underflows or not -- see fma.c).
30238
30239	tfma.c: added tests (-> assertion failed because mpfr_fma implementation
30240	isn't complete).
30241
302422007-06-28  Vincent Lefèvre  <vincent@vinc17.net>
30243
30244	acos.c: disabled change from r3145 ("Optimize mpfr_acos by choosing
30245	a better initial precision.") that was buggy.
30246	BUGS: removed mpfr_acos bug.
30247
30248	BUGS: updated item on the mpfr_acos bug.
30249
30250	BUGS: updated item on the mpfr_acos test (the bug wasn't visible on
30251	32-bit machines due to an integer overflow, but the result should
30252	have been correct anyway).
30253
30254	acos.c: fixed integer overflows; to avoid undefined behavior, I had
30255	to add an assertion that is not always satisfied (the code needs to
30256	be rewritten to take tiny arguments into account).
30257
30258	BUGS: update (mpfr_cot has just been fixed).
30259
30260	cot.c: implemented the case |x| = 2^emin.
30261	tests/tcot.c: added tests for this case, in 3 exponent ranges
30262	(as this is an overflow limit).
30263
30264	Fixed bug in div.c: rnd_mode could be modified (MPFR_INVERT_RND), but
30265	the original value was assumed in case of underflow or overflow.
30266
30267	tdiv.c: added a test showing another bug in mpfr_div.
30268
30269	cot.c: use MPFR_SAVE_EXPO_UPDATE_FLAGS, but the case +/- 2^emin could
30270	still be buggy with the current code; added a MPFR_ASSERTN (0) until
30271	it is implemented.
30272	BUGS: updated item on mpfr_cot.
30273
302742007-06-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30275
30276	fixed several problems with huge arguments in periodic functions
30277	mpfr_sin: complete rewrite, using mpfr_remainder for argument reduction
30278	mpfr_sin_cos: ditto
30279
302802007-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30281
30282	fixed stupid bug (subtraction of unsigned longs)
30283
30284	cos.c: implemented argument reduction by 2Pi
30285	tcos.c/tgeneric.c: reduce large exponent used when MPFR_CHECK_MAX is defined
30286
302872007-06-22  Vincent Lefèvre  <vincent@vinc17.net>
30288
30289	BUGS: added bugs.
30290
30291	coth.c, sech.c: a rounding mode was incorrect.
30292	tests/tcoth.c: added underflowed_cothinf test.
30293	tests/tsech.c: added overflowed_sech0 test.
30294
30295	* gen_inverse.h: ACTION_TINY must be called after MPFR_SAVE_EXPO_MARK
30296	  (this is necessary for some functions). Moved MPFR_SAVE_EXPO_FREE
30297	  after the "end:" label.
30298	* coth.c, csc.c, csch.c: as a consequence, MPFR_SAVE_EXPO_UPDATE_FLAGS
30299	  had to be added before "goto end;".
30300	* sec.c: a rounding mode was incorrect.
30301	* tests/tsec.c: added overflowed_sec0 test.
30302
303032007-06-21  Vincent Lefèvre  <vincent@vinc17.net>
30304
30305	sin_cos.c: fixed a bug for x = 0 in reduced exponent range.
30306	tests/tsin_cos.c: added overflowed_sin_cos0 test.
30307
30308	BUGS: Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not
30309	behave correctly in a reduced exponent range.
30310
30311	factorial.c: a rounding mode was incorrect.
30312	tests/tfactorial.c: added overflowed_fac0 test.
30313
30314	exp2.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
30315	MPFR_FAST_COMPUTE_IF_SMALL_INPUT since 1 (__gmpfr_one) isn't
30316	necessarily representable.
30317	tests/texp2.c: added overflowed_exp2_0 test.
30318
30319	exp.c: fixed problems in reduced exponent range.
30320	tests/texp.c: added overflowed_exp0 test.
30321
30322	exp.c bug fix: a rounding mode was incorrect.
30323
30324	tcos.c: fixed error message in overflowed_cos0 test.
30325
30326	tcos.c: removed an obsolete comment from the overflowed_cos0 test.
30327
30328	tcos.c: improved overflowed_cos0 test.
30329
30330	get_str.c: use MPFR_SAVE_EXPO.
30331	tests/tget_str.c: enabled the test with a reduced exponent range.
30332
30333	tget_str.c: added a test (disabled by default) with emax = 0.
30334
30335	Corrected mpfr_inits, mpfr_inits2 and mpfr_clears calls with NULL
30336	argument (-> (void *) 0).
30337
30338	tget_str.c: reformatted/corrected a function.
30339
30340	Tests: when restoring the exponent range, save emin/emax first instead
30341	of using MPFR_EMIN_MIN/MPFR_EMAX_MAX (which have no longer corresponded
30342	to the default exponent range since quite a long time).
30343
30344	BUGS: update.
30345
303462007-06-20  Vincent Lefèvre  <vincent@vinc17.net>
30347
30348	Untabified and removed trailing spaces.
30349
30350	Bug fix: preprocessor # must be in the first column.
30351
30352	remquo.c bug fix: preprocessor # must be in the first column.
30353
30354	tcos.c: fixed and improved the overflowed_cos0 test.
30355
30356	cos.c bug fix: a rounding mode was incorrect.
30357
30358	cos.c: use MPFR_SMALL_INPUT_AFTER_SAVE_EXPO instead of
30359	MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
30360
30361	cos.c: untabified.
30362
30363	tcos.c: added tests for x very small and emax = 0 (some of them
30364	currently fail).
30365
30366	Added a comment concerning the MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro.
30367
30368	Added MPFR_SMALL_INPUT_AFTER_SAVE_EXPO macro; updated expm1.c to use
30369	this variant (and moved MPFR_SAVE_EXPO_MARK after the test ex < 0).
30370
303712007-06-19  Vincent Lefèvre  <vincent@vinc17.net>
30372
30373	Documented log(-0).
30374
30375	Added a few tests of log functions.
30376
303772007-06-18  Vincent Lefèvre  <vincent@vinc17.net>
30378
30379	mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
30380
303812007-06-12  Vincent Lefèvre  <vincent@vinc17.net>
30382
30383	TODO: allow generic tests to run with a restricted exponent range.
30384
30385	expm1.c: fixed bug for x = -max_value due to an intermediate overflow
30386	(flags were incorrect); at the same time, potential problems due to a
30387	restricted exponent range are also fixed.
30388
30389	tgeneric.c: check the function on large arguments (±maximum_value)
30390	when the MPFR_CHECK_MAX environment variable is defined.
30391
303922007-06-11  Vincent Lefèvre  <vincent@vinc17.net>
30393
30394	tests/tlgamma.c: re-enabled sign checking.
30395
303962007-06-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30397
30398	fixed problem with mpfr_lgamma for tiny negative input (and fixed use of
30399	generic test)
30400
304012007-06-05  Vincent Lefèvre  <vincent@vinc17.net>
30402
30403	[mpfr.texi] Small change in new Section "Floating-Point Values on
30404	Special Numbers" (suggested by Paul).
30405
304062007-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30407
30408	fixed bug for tiny negative input (and added corresponding test)
30409
304102007-06-05  Vincent Lefèvre  <vincent@vinc17.net>
30411
30412	algorithms.tex: Mulder -> Mulders.
30413
304142007-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30415
30416	added test for "Witty's bug" on 64-bit machines
30417
304182007-06-04  Vincent Lefèvre  <vincent@vinc17.net>
30419
30420	div.c: GNU coding style.
30421
304222007-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30423
30424	tdiv.c: added missing mpfr_clear's, and spaces before function calls
30425	div.c: fixed bug found by Carl Witty, and added more comments
30426
304272007-06-04  Vincent Lefèvre  <vincent@vinc17.net>
30428
30429	tdiv.c: oops... the result should be 1.
30430
30431	tdiv.c: added test from Carl Witty's bug report on 2007-06-03.
30432
304332007-06-01  Vincent Lefèvre  <vincent@vinc17.net>
30434
30435	mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
30436
30437	mpfr.texi: updated Section "Floating-Point Values on Special Numbers".
30438
30439	mpfr.texi: updated month.
30440
30441	mpfr.texi: added @: after "resp." (when it was missing).
30442
304432007-05-31  Vincent Lefèvre  <vincent@vinc17.net>
30444
30445	Started a new section "Floating-Point Values on Special Numbers".
30446
30447	mpfr.texi: inf -> Inf for consistency.
30448
30449	mpfr.texi @deftypefun correction: void * -> {void *} (for the PDF).
30450
30451	mpfr.texi: consistency changes in section titles; made titles unique.
30452
30453	set_d64.c: replaced an "if" by a "#if" to avoid a gcc warning.
30454
30455	get_d64.c: use BITS_PER_MP_LIMB instead of GMP_BITS_PER_LIMB (which
30456	does not seem to exist).
30457	set_d64.c: use BITS_PER_MP_LIMB instead of mp_bits_per_limb.
30458
30459	get_d64.c, set_d64.c: improved code to avoid some warnings.
30460
30461	Untabified get_d64.c and set_d64.c.
30462
30463	get_d64.c: added missing #include.
30464
30465	BUGS: update.
30466
30467	mpfr-impl.h: improved error message when thread safe is not supported.
30468
304692007-05-30  Vincent Lefèvre  <vincent@vinc17.net>
30470
30471	INSTALL: say that relative paths in configure options are not supported
30472	(autoconf doesn't seem to have support for them).
30473
30474	Documented the new behavior of mpfr_sgn (in fact, it was already partly
30475	required by the tsgn.c tests!) and added new mpfr_sgn tests.
30476
30477	TODO: added an item about the behavior of mpfr_sgn on NaN.
30478
30479	tgeneric.c: no longer check the MPFR_CHECK_TINY environment variable
30480	as all the bugs related to tiny arguments have been fixed.
30481
30482	mpfr.texi: corrections following the remarks by Nathalie Revol.
30483
304842007-05-29  Vincent Lefèvre  <vincent@vinc17.net>
30485
30486	yn.c: untabify.
30487
304882007-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30489
30490	fix for small inputs in y1
30491
304922007-05-29  Vincent Lefèvre  <vincent@vinc17.net>
30493
30494	Defined new macros SIGN and SAME_SIGN in mpfr-impl.h to canonicalize
30495	the ternary value and to compare such values. Use SAME_SIGN in erf.c
30496	and lngamma.c.
30497
304982007-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30499
30500	fixed problem of tiny arguments for y0
30501
30502	lngamma.c: fixed problem of tiny inputs in lngamma (still remains lgamma
30503		   to deal with)
30504	erf.c: small correction (inexact flags might have been inexact :-)
30505
30506	fixed tiny input problem with csch, j0, j1
30507
30508	added special code for tiny inputs
30509
305102007-05-29  Vincent Lefèvre  <vincent@vinc17.net>
30511
30512	tgeneric_ui.c: no longer check the MPFR_CHECK_TINY environment variable.
30513
30514	erf.c: removed workaround to mpfr_div_ui bug, as the bug is now fixed.
30515
30516	div_ui.c:
30517	  * Cleaned up the use of the sh variable (there was a useless sh = 0,
30518	    so I'm not sure that there isn't a bug...).
30519	  * Added underflow check.
30520
30521	Added check of tiny arguments to tgeneric_ui.c (if MPFR_CHECK_TINY is
30522	defined, like in tgeneric.c); mpfr_div_ui currently fails due to the
30523	lack of underflow checking.
30524
305252007-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30526
30527	README.dev: fixed typo
30528	erf.c: implemented special case for tiny x, and partially get rid of double
30529		usage
30530	implemented
30531
305322007-05-28  Vincent Lefèvre  <vincent@vinc17.net>
30533
30534	MPFR_RET (mpfr_check_range (...)) -> return mpfr_check_range (...)
30535	as mpfr_check_range already handles the inexact flag.
30536	Reformatting (removed trailing spaces, untabified).
30537
305382007-05-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30539
30540	fixed problem of tiny input
30541
30542	fixed problem of tiny input for coth (and new fix again for csc, which
30543	takes into account the sign of the input)
30544
30545	fixed problem of tiny inputs in mpfr_sec and mpfr_csc,
30546	by adding a SPECIAL_TINY macro in gen_inverse.h
30547
30548	the test for the tiny input case was too optimistic: fixed and added test.
30549
30550	fixed case of tiny input
30551
30552	fixed problem for tiny arguments
30553
30554	added MPFR_FAST_COMPUTE_IF_SMALL_INPUT call
30555
30556	changed 1st-order Taylor term from x to v to avoid confusion with the
30557	argument x of the function f(x), and fixed some typos
30558
30559	fixed direction of rounding for MPFR_FAST_COMPUTE_IF_SMALL_INPUT
30560	(was wrong for x < 0)
30561
30562	fixed typo
30563
30564	added call to MPFR_FAST_COMPUTE_IF_SMALL_INPUT in exp2
30565
30566	re-enabled MPFR_CHECK_TINY
30567
30568	improved documentation of mpfr_set/get_decimal64 functions
30569	fixed problem in configure.in (_Decimal64 was tested too early)
30570
305712007-05-28  Vincent Lefèvre  <vincent@vinc17.net>
30572
30573	tests/tests.c: fixed two bugs concerning the timeout (including an
30574	old one: we need to call getrlimit to initialize rlim_max).
30575
305762007-05-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30577
30578	new syntax for timeouts
30579
30580	fixed typo
30581
305822007-05-28  Vincent Lefèvre  <vincent@vinc17.net>
30583
30584	Added mkinstalldirs to svn:ignore property.
30585
30586	Changed --with-tests-timeout into --enable-tests-timeout as documented
30587	in the autoconf manual (--with-* are for external packages only). When
30588	this is enabled, environment variable MPFR_TESTS_TIMEOUT allows to
30589	override the default timeout (use the value 0 to disable timeouts).
30590
30591	Updated NEWS file.
30592
30593	mpfr.texi: small improvement.
30594
30595	Fixed a bug in the mpfr_cmp_ui macro occurring on NaN and the constant 0
30596	by specifying the behavior of mpfr_sgn on NaN.
30597
30598	mpfr.texi: typography corrections concerning "i.e.".
30599
30600	mpfr.texi: consistency changes.
30601
30602	mpfr.texi: more details in Section "Exceptions".
30603
30604	tgeneric.c: check the function on tiny arguments (±2^(emin-1)) when
30605	the MPFR_CHECK_TINY environment variable is defined.
30606
30607	Typo.
30608
30609	Avoid integer overflow in MPFR_FAST_COMPUTE_IF_SMALL_INPUT.
30610
306112007-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30612
30613	completed implementation of Vincent's algorithm for mpfr_remquo
30614	all tests now pass again
30615
306162007-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30617
30618	new version of mpfr_remainder, using Vincent's algorithm
30619	(still remains to deal with special arguments, and make mpfr_remquo call it)
30620
306212007-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30622
30623	added note about fms
30624
30625	fixed typo
30626
30627	fixed problem for x integer and rounding to nearest
30628
30629	workaround for bug when x is very small (check_tiny in tsin)
30630
306312007-05-22  Vincent Lefèvre  <vincent@vinc17.net>
30632
30633	Updated BUGS (again).
30634
30635	Updated BUGS and TODO (mpfr_lgamma has been implemented, but see BUGS,
30636	and gamma(-integer) with integer >= 1 is defined as NaN).
30637
30638	tsin.c: check sin on +/- 2^(emin-1) (test by Christopher Creutzig).
30639
30640	tgamma.c: added test of gamma on some integral values (from Christopher
30641	Creutzig); this test is enabled only when an argument is provided.
30642
30643	fma.c: improved comments and simplified the code.
30644
30645	fma.c: implemented exponent range expansion and the main part when the
30646	multiplication overflows. The following remains to do:
30647	  * when the multiplication overflows: some corner cases;
30648	  * when the multiplication underflows: everything.
30649
306502007-05-21  Vincent Lefèvre  <vincent@vinc17.net>
30651
30652	tlgamma.c: I re-enable the generic tests of mpfr_lgamma now, to make
30653	sure that it is fixed before the 2.3.0 release candidate.
30654
30655	tfma.c: added an overflow test (currently fails).
30656
30657	tfma.c: whitespace change.
30658
30659	tfma.c: added tests on special and exact values.
30660
306612007-05-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30662
30663	fixed error analysis in mpfr_lngamma
30664	added mpfr_inp_raw/mpfr_out_raw in TODO
30665
306662007-05-16  Vincent Lefèvre  <vincent@vinc17.net>
30667
30668	TODO: fixed mpfr_fms formula to match the one on Itanium and PowerPC.
30669
306702007-05-07  Vincent Lefèvre  <vincent@vinc17.net>
30671
30672	algorithms.tex: improved the description of mpfr_remquo.
30673
306742007-05-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30675
30676	improved description of remainder and remquo
30677
306782007-05-06  Vincent Lefèvre  <vincent@vinc17.net>
30679
30680	My latest change was not completely correct...
30681
30682	Updated description of algorithm for mpfr_remainder.
30683
306842007-05-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30685
30686	added description of algorithm for mpfr_remainder
30687
306882007-05-04  Vincent Lefèvre  <vincent@vinc17.net>
30689
30690	remquo.c: suggest to use mpz_powm.
30691
30692	remquo.c: added a comment (idea to compute the remainder much more
30693	efficiently in the case x much larger than y).
30694
306952007-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30696
30697	added assert and ideas for native implementation
30698
30699	put back test (disabled for test)
30700
30701	fixed problem when rem and x are the same variable
30702
307032007-05-04  Vincent Lefèvre  <vincent@vinc17.net>
30704
30705	tremquo.c: added a test that leads to a segmentation fault.
30706
30707	tremquo.c: fixed tests (= -> ==).
30708
307092007-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30710
30711	fixed two issues found by Kaveh Ghazi:
30712	* remainder was wrong for |x/y| < 1
30713	* remainder had wrong sign when zero
30714
30715	more details of error analysis
30716
307172007-05-03  Vincent Lefèvre  <vincent@vinc17.net>
30718
30719	Updated svn:ignore property.
30720
30721	Updated svn:ignore property.
30722
307232007-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30724
30725	fixed precision for command-line usage
30726
307272007-05-03  Vincent Lefèvre  <vincent@vinc17.net>
30728
30729	mpfr.texi: added mpfr_lgamma.
30730
307312007-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30732
30733	added code to use tremquo with command-line arguments (tremquo x y)
30734
307352007-05-02  Vincent Lefèvre  <vincent@vinc17.net>
30736
30737	configure.in: improved comment.
30738
30739	configure.in: added a comment on the AC_ARG_ENABLE(decimal-float...)
30740	part. The addition of this code was the cause of the test_CFLAGS problem
30741	(see r4425 log), but this code is still wrong.
30742
307432007-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30744
30745	modified test (2147483648 is not representable as 32-bit long in C90)
30746
307472007-05-02  Vincent Lefèvre  <vincent@vinc17.net>
30748
30749	Removed unused variables.
30750
30751	get_str.c:
30752	  * Removed useless prototype declaration (function no longer defined).
30753	  * Fixed initializer.
30754
30755	configure.in: moved the definition of test_CFLAGS upward (it was
30756	always set to "set", either because of things added to configure.in
30757	or because of new autoconf).
30758
30759	mpfr.h: added mpfr_lgamma prototype.
30760
307612007-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30762
30763	argument quo of remquo is now a pointer to long instead of int
30764	added new functions in NEWS
30765
30766	changed order of arguments: now mpfr_remquo (r, q, x, y, rnd).
30767
307682007-05-02  Vincent Lefèvre  <vincent@vinc17.net>
30769
30770	remquo.c: fixed variable name for MPFR_LOG_FUNC.
30771
307722007-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30773
30774	added mpfr_remquo and mpfr_remainder
30775
307762007-04-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30777
30778	fixed error analysis (error was over-estimated)
30779
307802007-04-26  Vincent Lefèvre  <vincent@vinc17.net>
30781
30782	lngamma.c: a bit more details in the error analysis for z0 < 1.
30783
30784	lngamma.c: a bit more details in the error analysis for z0 < 1.
30785
307862007-04-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30787
30788	u was used for two different meanings in the error analysis for z0 < 1
30789
307902007-04-25  Vincent Lefèvre  <vincent@vinc17.net>
30791
30792	Updated svn:ignore property.
30793
30794	Added preliminary support for mpfr_lngamma and tests.
30795	TODO: add support for negative numbers with small exponent.
30796	Re-enable the generic tests when this is done.
30797
30798	lngamma.c: There was an assertion failed, probably because the error
30799	was too large; fixed that by restarting with a larger precision.
30800
30801	lngamma.c: fixed -2k-1 <= x <= -2k test.
30802
30803	tests/tlngamma.c: added a test showing a bug in lngamma (due to the
30804	use of mpfr_get_si even when the number doesn't fit in a long).
30805
308062007-04-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30807
30808	fixed bug for negative even index in mpfr_jn (wrong sign)
30809
308102007-04-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30811
30812	added warning
30813
30814	added Bit Twiddling Hacks
30815
308162007-04-05  Vincent Lefèvre  <vincent@vinc17.net>
30817
30818	MPFR manual: added a brief description of mpfr_t (this may be needed
30819	to write correct code) and mpfr_ptr (used by mpfr_sum).
30820
308212007-04-02  Vincent Lefèvre  <vincent@vinc17.net>
30822
30823	Changed mpfr_{jn,yn}_si (mpfr_t res, mpfr_t x, long n, ...) into
30824	mpfr_{jn,yn} (mpfr_t res, long n, mpfr_t x, ...), as discussed by
30825	mail; fixed a typo in mpfr.texi in mpfr_{y0,y1,yn} description.
30826
308272007-03-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30828
30829	added url of GSL manual
30830
30831	fixed misunderstanding about definition of Bessel functions
30832
30833	removed Bessel functions J_n and Y_n
30834
30835	added Bessel functions of second kind (y0, y1, yn_si)
30836
30837	now test_generic calls respectively j0 and j1, not zeta!
30838
308392007-03-30  Vincent Lefèvre  <vincent@vinc17.net>
30840
30841	mpfr.texi: INF -> Inf for consistency.
30842
30843	mpfr.texi: PI -> Pi for consistency.
30844
308452007-03-29  Vincent Lefèvre  <vincent@vinc17.net>
30846
30847	mpfr.texi: -0 -> @minus{}0.
30848
30849	mpfr.texi: fixed bug introduced in rev 4377, which made TeX fail.
30850
30851	Added tj0, tj1 and tjn to svn:ignore property of "tests" directory.
30852
308532007-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30854
30855	mpfr_jn -> mpfr_jn_si
30856
308572007-03-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30858
30859	now check underflow for large n in mpfr_jn_si
30860	added more tests
30861
30862	added more tests (large values of n)
30863
30864	fixed another stupid bug
30865
30866	mpfr_jn -> mpfr_jn_si, with 'int' argument changed to 'long'
30867	fixed bug in mpfr_jn_si (forgot to increase working precision)
30868
308692007-03-23  Vincent Lefèvre  <vincent@vinc17.net>
30870
30871	README.dev: added a warning about the meaning of the output "inexact"
30872	value in the function logging code.
30873
30874	Added log support for mpfr_add and mpfr_sub.
30875
308762007-03-23  Laurent Fousse  <laurent@komite.net>
30877
30878	Correction: added missing $b_n$.
30879
308802007-03-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30881
30882	added Bessel functions of first kind: j0, j1, jn
30883
308842007-03-19  Vincent Lefèvre  <vincent@vinc17.net>
30885
30886	MPFR manual: improved description of mpfr_get_str.
30887
308882007-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30889
30890	fixed typos in comments
30891
308922007-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30893
30894	documented restriction to n in mpfr_get_str
30895
308962007-03-13  Vincent Lefèvre  <vincent@vinc17.net>
30897
30898	Updated INSTALL based on AIX/PowerPC tests and results from Julie Kurpa
30899	and information on <http://www.ess.uci.edu/esmf/FAQ.html#gcc-errors>.
30900
309012007-03-03  Vincent Lefèvre  <vincent@vinc17.net>
30902
30903	README.dev: updated "To make a release" section.
30904
309052007-03-02  Vincent Lefèvre  <vincent@vinc17.net>
30906
30907	Made modified paragraph on mpfr_get_str more correct from a logical
30908	point of view.
30909
309102007-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30911
30912	modified paragraph on mpfr_get_str (size of allocated string)
30913
309142007-02-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30915
30916	added tentative implementation of fmod
30917
309182007-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30919
30920	added suggestion about remquo
30921
309222007-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30923
30924	added comment
30925
30926	added C99 rationale for remquo
30927
30928	fixed error in generic error for the logarithm, and propagated new bound
30929	in algorithms.tex and source files
30930
309312007-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30932
30933	added new item
30934
309352007-02-15  Vincent Lefèvre  <vincent@vinc17.net>
30936
30937	Added update-patchv script to update some files before a patch is built
30938	(script from 2.2 branch).
30939
309402007-02-14  Vincent Lefèvre  <vincent@vinc17.net>
30941
30942	mpfr.texi: updated paragraph on the underflow before/after rounding.
30943
309442007-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30945
30946	added reference
30947
309482007-02-12  Vincent Lefèvre  <vincent@vinc17.net>
30949
30950	mpfr.texi: added Exceptions section.
30951
30952	mpfr.texi: updated month.
30953
30954	Note that the mpfr.info file is now installed in the share subdirectory.
30955
309562007-02-10  Vincent Lefèvre  <vincent@vinc17.net>
30957
30958	tests/tpow.c: removed comment since there are other <limits.h> macros
30959	in the file (and this is an old bug: the first one was introduced in
30960	rev 2783).
30961
309622007-02-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30963
30964	added missing include
30965
309662007-02-09  Vincent Lefèvre  <vincent@vinc17.net>
30967
30968	Fixed an integer overflow in pow_si.c (detected with -ftrapv) and
30969	added a corresponding testcase in tests/tpow.c.
30970
30971	pow_si.c: another comment about the overflow detection.
30972
30973	pow_si.c: added the proof of overflow checking.
30974
30975	mpfr-impl.h: added a comment about the exponent limits for MPFR numbers.
30976
309772007-02-08  Vincent Lefèvre  <vincent@vinc17.net>
30978
30979	Reimplemented mpfr_set_si_2exp and mpfr_set_ui_2exp, and mpfr_set_si
30980	and mpfr_set_ui using the 2exp versions with e = 0. This fixes a bug
30981	in corner cases (emin >= 4 and some other constraints) in mpfr_set_si
30982	and mpfr_set_ui that incorrectly lead to an underflow flag set, and
30983	fixes mpfr_set_si_2exp and mpfr_set_ui_2exp in case of overflow or
30984	underflow (replacing the r4346 fix). Added corresponding testcases.
30985
309862007-02-07  Vincent Lefèvre  <vincent@vinc17.net>
30987
30988	Added "Contributed by the Arenaire and Cacao projects, INRIA." to the
30989	copyright notices and removed a few old things.
30990
309912007-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
30992
30993	added missing macro (thanks to Izhar Wallach <izharw@keddem.com>)
30994
309952007-01-20  Vincent Lefèvre  <vincent@vinc17.net>
30996
30997	Fixed mpfr_set_si_2exp in case of overflow or underflow.
30998
309992007-01-19  Vincent Lefèvre  <vincent@vinc17.net>
31000
31001	pow_si.c: fixed the overflow detection for x power of 2 and n negative.
31002
31003	tests/tget_f.c: fixed a test that had an integer overflow (detected
31004	with -ftrapv).
31005
31006	pow_si.c: Before fixing the bug corresponding to the testcase added in
31007	rev 4342, let's fix another one that can be detected with -ftrapv when
31008	n = LONG_MIN (since -n is not representable in this case).
31009	With wrapping, we always got the correct result because mp_exp_t is
31010	currently at most a long *and* because of side effects!
31011
31012	tests/tpow.c: added a test which fails (undetected integer overflow).
31013
31014	tests/tpow.c: new test was wrong; fixed.
31015
31016	tests/tpow.c: corrected tests and added another test.
31017
31018	tests/tpow.c: added tests.
31019
31020	pow_si.c: added an assertion.
31021
310222007-01-18  Vincent Lefèvre  <vincent@vinc17.net>
31023
31024	TODO: merged both requests for mpfr_sinh_cosh.
31025
310262007-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31027
31028	added documentation for mpfr_dim (was missing)
31029
31030	added item
31031
310322007-01-17  Vincent Lefèvre  <vincent@vinc17.net>
31033
31034	Replaced some computations using the type double by computations using
31035	MPFR, for mpfr_get_str, allowing it to work with an x86 processor set
31036	up in single-precision mode.
31037
310382007-01-16  Vincent Lefèvre  <vincent@vinc17.net>
31039
31040	Updated comment concerning LONG_MIN / 1.
31041
310422007-01-15  Vincent Lefèvre  <vincent@vinc17.net>
31043
31044	README.dev: updated "To make a release" section.
31045
310462007-01-10  Vincent Lefèvre  <vincent@vinc17.net>
31047
31048	Removed mpzroot.c and rootrem.c from the repository.
31049
31050	Removed log_b2.h (has never been used) from the repository and from
31051	libmpfr_la_SOURCES in Makefile.am.
31052
31053	FAQ.html: Added details to MPF-related Q&A's.
31054
31055	Copyright notice update: added 2007.
31056
31057	* tests/tests.c: under Linux/x86, the FPU precision can be set before
31058	doing the tests (see MPFR_FPU_PREC), so that MPFR can be tested under
31059	various FP environments (2 tests currently fail with _FPU_SINGLE).
31060	* README.dev: updated "To make a release" section.
31061	* BUGS: mentioned the above bug.
31062
310632007-01-08  Vincent Lefèvre  <vincent@vinc17.net>
31064
31065	mpfr.texi -> January 2007.
31066
310672007-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31068
31069	added support from LIP, and different INRIA project-teams
31070
310712007-01-03  Vincent Lefèvre  <vincent@vinc17.net>
31072
31073	Minor change.
31074
310752006-12-29  Vincent Lefèvre  <vincent@vinc17.net>
31076
31077	TODO: macros/functions to get/set the sign of a MPFR number.
31078
310792006-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31080
31081	remove new rootrem implementation (unclear copyright status)
31082
310832006-12-19  Vincent Lefèvre  <vincent@vinc17.net>
31084
31085	Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
31086	mpfr_div_2ui respectively (when this makes sense, of course).
31087
310882006-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31089
31090	mpfr_div_2exp -> mpfr_div_2ui
31091
31092	improved efficiency of zeta_ui(s) for 3^(-s) < 1/2*ulp(1)
31093
310942006-12-18  Vincent Lefèvre  <vincent@vinc17.net>
31095
31096	mpfr.texi: update concerning MPFR_USE_EXTENSION.
31097
310982006-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31099
31100	added copyright header
31101
31102	added item
31103
311042006-12-15  Vincent Lefèvre  <vincent@vinc17.net>
31105
31106	Implemented MPFR_USE_EXTENSION support.
31107
311082006-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31109
31110	improved efficiency for zeta(m) in precision p when m is large
31111	but still smaller than p, for example m=1024 and p=2048 gives a
31112	speedup of about 23 (thanks to Jim White for reporting the problem)
31113
311142006-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31115
31116	added MPFR_ZIV_INIT stuff
31117
311182006-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31119
31120	fixed typo
31121
311222006-12-05  Vincent Lefèvre  <vincent@vinc17.net>
31123
31124	TODO: to be added: MPFR_USE_EXTENSION macro.
31125
311262006-11-29  Vincent Lefèvre  <vincent@vinc17.net>
31127
31128	README.dev: update.
31129
31130	INSTALL: update of the "Notes on Windows 32" section.
31131
311322006-11-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31133
31134	added comment about last change
31135
31136	fixed warning on 64-bit machines
31137
311382006-11-26  Vincent Lefèvre  <vincent@vinc17.net>
31139
31140	tests/tpow.c: added worst cases.
31141
31142	tests/troot.c: two more worst cases.
31143
311442006-11-25  Vincent Lefèvre  <vincent@vinc17.net>
31145
31146	tests/troot.c: added a worst case.
31147
31148	BUGS: removed obsolete "compiler bugs" section.
31149
311502006-11-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31151
31152	added worst case
31153
311542006-11-25  Vincent Lefèvre  <vincent@vinc17.net>
31155
31156	Partially rewrote the INSTALL file.
31157
311582006-11-24  Vincent Lefèvre  <vincent@vinc17.net>
31159
31160	Makefile.am: fixed libtool's -version-info flag (and comment).
31161
31162	configure.in: check for gmp.h a bit earlier.
31163
311642006-11-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31165
31166	added --with-tests-timeout=60 for nightly tests
31167
31168	test timeout is now a configure option (e.g. --with-tests-timeout=60)
31169
31170	replaced set_d by set_str_binary (more portable)
31171
311722006-11-23  Vincent Lefèvre  <vincent@vinc17.net>
31173
31174	INSTALL: several additions.
31175
311762006-11-22  Vincent Lefèvre  <vincent@vinc17.net>
31177
31178	INSTALL: small update.
31179
31180	FAQ update (added a CSS counter).
31181
31182	update-faq: added a workaround for the libxslt bug 377440.
31183
31184	TODO: update concerning the patches information.
31185
311862006-11-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31187
31188	set GMP_CHECK_RANDOMIZE to get random tests
31189
311902006-11-21  Vincent Lefèvre  <vincent@vinc17.net>
31191
31192	Updated README file.
31193
311942006-11-20  Vincent Lefèvre  <vincent@vinc17.net>
31195
31196	README.dev: mention the version suffix.
31197
31198	Updated version to 2.3.0-dev.
31199
31200	Added version suffix support (useful for dev and rc versions).
31201
31202	Rewrote nightly-test in sh and fixed a security hole.
31203
312042006-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31205
31206	added cpu time limit of 60 seconds in tests
31207
312082006-11-20  Vincent Lefèvre  <vincent@vinc17.net>
31209
31210	TODO: update.
31211
312122006-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31213
31214	added an argument to give the branch (use trunk or branches/2.2 for example)
31215
312162006-11-20  Vincent Lefèvre  <vincent@vinc17.net>
31217
31218	tests/tgamma.c: restore emin and emax to their default values.
31219
312202006-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31221
31222	fixed bug in overflow test
31223
31224	fixed bug in mpfr_gamma for exact result
31225
31226	added two configure options
31227
31228	simplified test :-)
31229
312302006-11-20  Vincent Lefèvre  <vincent@vinc17.net>
31231
31232	configure.in: unset GMP_CFLAGS and GMP_CC in case the user has set such
31233	environment variables for another use.
31234
31235	tests/texp2.c: fixed a problem with a value that is not necessarily
31236	representable (on platforms without long long).
31237
31238	BUGS: removed item on mpfr_eint (now fixed).
31239
31240	Untabify.
31241
312422006-11-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31243
31244	replaced double by mpfr_t (problem on 64-bit machines)
31245
31246	added more tests
31247
31248	script for nightly tests
31249
31250	fixed bug in pow (isodd -> assertion failed)
31251	fixed problem in erfc for large input
31252	reduced tests that took too much time
31253
312542006-11-19  Vincent Lefèvre  <vincent@vinc17.net>
31255
31256	mpfr.texi: updated description of mpfr_eint, as the whole input domain
31257	is now supported.
31258
31259	Untabify.
31260
31261	mpfr-impl.h: added a comment about MPFR_WARNING.
31262
312632006-11-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31264
31265	fixed bug in erfc (forgot to compare result of cmp_si)
31266	fixed infinite loop in eint (test for use of asympt was not tight enough)
31267
31268	added asymptotic expansion for mpfr_eint (don't need MPFR_WARNING any more)
31269
312702006-11-18  Vincent Lefèvre  <vincent@vinc17.net>
31271
31272	Added a mpfr_erfc test that shows a bug and updated BUGS file.
31273
312742006-11-17  Vincent Lefèvre  <vincent@vinc17.net>
31275
31276	configure.in: Added a comment concerning GMP version checking.
31277
31278	configure.in: Before testing GMP header and library versions, set
31279	LD_RUN_PATH locally if a --with-gmp* option is used, so that the
31280	right version of the GMP library is used. There is no need to do
31281	something similar for "make check" as libtool does the job.
31282
31283	Updated mpfr_erfc documentation (now supported in whole domain).
31284
31285	BUGS: removed mpfr_pow_z bug.
31286
312872006-11-17  Vincent Lefèvre  <vincent@vinc17.net>
31288
31289	Merged the new generic tests.
31290
31291	[Added during the Subversion to Git conversion]
31292	A merge commit could not be generated for Git.
31293	Branch in Git: refs/deleted/r4290/heads/new-generic-tests
31294
312952006-11-17  Vincent Lefèvre  <vincent@vinc17.net>
31296
31297	Partially fixed a bug in mpfr_pow_si (overflow/underflow detection for
31298	n < 0).
31299
31300	tests/tpow_z.c: various corrections.
31301
31302	Partially fixed another bug in mpfr_pow_z (overflow/underflow detection
31303	for z < 0) and added corresponding testcases.
31304
31305	Fixed a bug in mpfr_pow_z concerning the underflow flag and added the
31306	corresponding testcase (but the case z < 0 is still buggy concerning
31307	the flags).
31308
313092006-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31310
31311	implemented asymptotic formula for erfc (fixed both slowness for large
31312	arguments, and call to MPFR_WARNING with return value NaN for huge arguments)
31313
31314	added new test
31315
313162006-11-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31317
31318	fixed problem for large negative input
31319
313202006-11-14  Vincent Lefèvre  <vincent@vinc17.net>
31321
31322	TODO: slight change in the proposed mpfr_lgamma prototype (arg order).
31323
313242006-11-13  Vincent Lefèvre  <vincent@vinc17.net>
31325
31326	About mpfr_lngamma/mpfr_lgamma: added mpfr_lgamma to TODO and updated
31327	mpfr_lngamma description in mpfr.texi.
31328
31329	BUGS: update.
31330
31331	tests/terf.c: added a test that yields a segfault (execute "terf 1").
31332
313332006-11-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31334
31335	moved the [gs]et_decimal64 functions after the [gs]et_ld functions
31336
313372006-11-10  Vincent Lefèvre  <vincent@vinc17.net>
31338
31339	mpfr.texi: changed @code{--enable-decimal-float} into @samp{...}
31340	for consistency with the other configure options.
31341
31342	mpfr.texi: updated the note concerning mpfr_eint and mpfr_erfc.
31343
313442006-11-10  Vincent Lefèvre  <vincent@vinc17.net>
31345
31346	Added warnings support.
31347	  * configure.in: added --enable-warnings configure option.
31348	  * mpfr-impl.h: defined MPFR_WARNING(W) macro.
31349	  * eint.c, erfc.c: use MPFR_WARNING instead of fprintf.
31350	  * tests/Makefile.am (new-generic-tests branch): run the tests with
31351	    MPFR_QUIET=1 to avoid output of useless warnings, as some tests
31352	    (with large arguments) can generate such warnings, which are all
31353	    expected.
31354
31355	[[Split portion of a mixed commit.]]
31356
313572006-11-10  Vincent Lefèvre  <vincent@vinc17.net>
31358
31359	Added tget_set_d64 to svn:ignore property of "tests" directory.
31360
31361	TODO: "add a configure test for --enable-logging..."
31362
31363	More information for --enable-logging configure option.
31364
31365	Fixed test of logging support.
31366
31367	Removed --with-irix64 configure option and "case $OS_TYPE" code from
31368	configure.in; see
31369	  https://sympa.inria.fr/sympa/arc/mpfr/2006-11/msg00009.html
31370	for the reasons.
31371
313722006-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31373
31374	added more checks with native format
31375
31376	added detection of decimal format in configure (DPD or BID)
31377
313782006-11-09  Vincent Lefèvre  <vincent@vinc17.net>
31379
31380	strtofr.c: removed a useless cast (ISO C99 standard 6.2.5#3) and updated
31381	a comment as isdigit is no longer used.
31382
31383	strtofr.c fix: no longer use isdigit, as MPFR requires non-localized
31384	digits.
31385
313862006-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31387
31388	modified to work on 64-bit machines too
31389
313902006-11-09  Vincent Lefèvre  <vincent@vinc17.net>
31391
31392	get_d64.c: fixed problems related to signed/unsigned values.
31393
31394	strtofr.c: fixed a bug that could occur on platforms with signed chars,
31395	when the user provides a string with negative characters (e.g. accented
31396	characters, in practice).
31397
313982006-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31399
31400	complete rewrite of mpfr_set_decimal64 and mpfr_get_decimal64: now use
31401	internal string <-> _Decimal64 conversion functions, which perform native
31402	conversion from/to BID or DPD
31403
314042006-11-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31405
31406	added mpfr_set_decimal64 and mpfr_get_decimal64
31407
314082006-11-08  Vincent Lefèvre  <vincent@vinc17.net>
31409
31410	mpfr-impl.h: fixed a compile error if _Decimal64 is unknown.
31411
314122006-11-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31413
31414	added new configure option --enable-decimal-float to build mpfr_set_decimal64
31415	and mpfr_get_decimal64 (checks _Decimal64, and _GMP_IEEE_FLOATS is defined)
31416
314172006-11-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31418
31419	added --enable-decimal-float in configure, and corresponding macro
31420	WANT_DECIMAL_FLOATS
31421
314222006-11-07  Vincent Lefèvre  <vincent@vinc17.net>
31423
31424	tests/tversion.c: improved error message and added gmp.h/libgmp test.
31425
31426	Fixed a small bug in tests/tversion.c (should never occur anyway).
31427
314282006-11-06  Vincent Lefèvre  <vincent@vinc17.net>
31429
31430	logging.c: clean-up.
31431
314322006-11-05  Vincent Lefèvre  <vincent@vinc17.net>
31433
31434	README.dev: updated things to do before a release.
31435
314362006-11-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31437
31438	added new (preliminary) conversions functions to/from decimal64
31439
31440	changed header file: stdlib.h -> stdio.h
31441
314422006-11-03  Vincent Lefèvre  <vincent@vinc17.net>
31443
31444	Fixed a bug related to signed/unsigned types.
31445
31446	tgamma.c: avoid useless mpfr_get_d.
31447
31448	tpow.c: replaced a mpfr_cmp_d by a mpfr_cmp_str1.
31449
31450	lngamma.c: added a comment.
31451
31452	tlngamma.c: avoid useless mpfr_get_d.
31453
314542006-10-27  Vincent Lefèvre  <vincent@vinc17.net>
31455
31456	eint.c: better overflow checking; fix: all allocated memory now freed.
31457
31458	eint.c: forgot 2 mpfr_clear's.
31459
31460	eint.c fix: and changed the #if into if.
31461
31462	eint.c fix: replaced BITS_PER_MP_LIMB by sizeof(mp_exp_t) * CHAR_BIT.
31463
31464	The current implementation of mpfr_erfc cannot compute the result for
31465	large inputs. Return NaN with the erange flag set instead of aborting.
31466	Documented this behavior in mpfr.texi.
31467
314682006-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31469
31470	improved bound for x with BITS_PER_MP_LIMB=32
31471	   added bound for BITS_PER_MP_LIMB=64
31472
314732006-10-27  Vincent Lefèvre  <vincent@vinc17.net>
31474
31475	The current implementation of mpfr_eint cannot compute the result for
31476	large inputs. Return NaN with the erange flag set instead of aborting.
31477	Documented this behavior in mpfr.texi.
31478
31479	tzeta.c patch 4166 should have been committed to the trunk. Fixing...
31480
314812006-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31482
31483	added tests for overflows or underflows
31484
314852006-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31486
31487	fixed problem for large negative s (return +Inf or -Inf)
31488
31489	[[Split portion of a mixed commit.]]
31490
314912006-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31492
31493	fixed dummy error in last commit
31494
314952006-10-26  Vincent Lefèvre  <vincent@vinc17.net>
31496
31497	In latest change, replaced exit(1) by abort().
31498
314992006-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31500
31501	added test for eint()
31502	added error message when input is too large in eint(), waiting for asymptotic
31503		expansion
31504
315052006-10-26  Vincent Lefèvre  <vincent@vinc17.net>
31506
31507	Untabified and added a FIXME.
31508
315092006-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31510
31511	fixed overflow/underflow problems in csch and sech
31512	fixed problem for huge argument in coth
31513
315142006-10-25  Vincent Lefèvre  <vincent@vinc17.net>
31515
31516	FAQ-related updates:
31517	  * faq.xsl: Include styles from http://www.mpfr.org/styles/visual.css
31518	    by using a system entity (but GNOME libxslt bug 345147 is still
31519	    present in Debian, so don't use /*<![CDATA[*/ and /*]]>*/ yet).
31520	  * update-faq: add /*<![CDATA[*/ and /*]]>*/ after calling xsltproc.
31521	  * FAQ.html: update from the MPFR web site: various changes, including:
31522	      + added id attributes on dt elements (FAQ items) to allow anchors;
31523	      + updated FAQ for undefined references.
31524
31525	INSTALL: mention the MPFR FAQ.
31526
315272006-10-23  Vincent Lefèvre  <vincent@vinc17.net>
31528
31529	Added a comment about a warning (this confused a user).
31530
315312006-10-11  Vincent Lefèvre  <vincent@vinc17.net>
31532
31533	TODO: added an item about version information.
31534
315352006-10-05  Vincent Lefèvre  <vincent@vinc17.net>
31536
31537	TODO: updated item.
31538
315392006-10-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31540
31541	added item
31542
315432006-10-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31544
31545	fixed wrong emax in example for mpfr_subnormalize
31546
315472006-09-07  Vincent Lefèvre  <vincent@vinc17.net>
31548
31549	MPFR manual: say that errno may be set to non-zero.
31550
315512006-08-31  Vincent Lefèvre  <vincent@vinc17.net>
31552
31553	tests/tests.c: typo.
31554
315552006-08-28  Vincent Lefèvre  <vincent@vinc17.net>
31556
31557	Fixed texp2 overflow tests on 64-bit machines.
31558
31559	tests/reuse.c: avoid a warning; code reformatted (GNU style).
31560
315612006-08-23  Vincent Lefèvre  <vincent@vinc17.net>
31562
31563	BUGS: minor update.
31564
315652006-08-21  Vincent Lefèvre  <vincent@vinc17.net>
31566
31567	BUGS: updated "known bugs" section.
31568
31569	Fixed an exponent/flags-related bug in lngamma.c.
31570
31571	Updated svn:ignore property.
31572
315732006-08-20  Vincent Lefèvre  <vincent@vinc17.net>
31574
31575	Fixed several problems in pow.c concerning underflows, overflows and
31576	flags (including the inexact flag, which could be incorrectly set in
31577	case of NaN), and added some testcases. Problems in pow_z.c have not
31578	been fixed yet.
31579
31580	Partial fix: The inexact flag was not always set in some functions.
31581	In particular, it is now set by mpfr_check_range (if t is not zero)
31582	since mpfr_check_range usually comes just after MPFR_SAVE_EXPO_FREE
31583	(which restores the previous flags).
31584
315852006-08-19  Vincent Lefèvre  <vincent@vinc17.net>
31586
31587	Added an assertion for mpfr_exp2 and a test.
31588
315892006-08-16  Vincent Lefèvre  <vincent@vinc17.net>
31590
31591	Optimized mpfr_expm1 for large (in absolute value) negative values in
31592	order to avoid the TMD (the result is very close to -1). Without this
31593	patch, mpfr_expm1 could take dozens of MBs and the new generic tests
31594	for texpm1 could take several hours instead of less than 1 second.
31595
31596	Fixed a bug in expm1 for very small negative arguments (and perhaps
31597	some very small positive arguments too); this bug is similar to the
31598	one in log1p that was recently found and fixed. It was detected by
31599	the new generic tests (not committed yet), therefore no testcases
31600	are provided. Note: the mpfr_expm1 function is still buggy (freezes
31601	on -0.10E18, prec 2 -> prec 13); this is a different bug.
31602
31603	In mpfr_exp2, the overflow flag was not set if mpfr_exp2 overflowed
31604	with x < emax. Added testcase.
31605
316062006-08-15  Vincent Lefèvre  <vincent@vinc17.net>
31607
31608	The latest mpfr_exp2 fix contained a bug. Partially rewrote mpfr_exp2
31609	to fix this bug and another one (and added a corresponding testcase:
31610	exp2(10000000000.5), which was freezing).
31611
31612	Better fix for exp2 exponent range bug.
31613
31614	Fixed bug in mpfr_exp2 when the argument is an integer and emin > 1.
31615	Added a testcase to texp2.
31616
316172006-08-14  Vincent Lefèvre  <vincent@vinc17.net>
31618
31619	Added tget_ld_2exp to svn:ignore property of "tests" directory
31620	(should have been done in rev 4028).
31621
31622	Fixed bug in log1p for small negative values of x and added testcase.
31623
31624	Code style correction for ansi2knr.
31625
316262006-07-25  Vincent Lefèvre  <vincent@vinc17.net>
31627
31628	INSTALL: more information.
31629
31630	INSTALL: added a note about include/library paths.
31631
316322006-07-21  Vincent Lefèvre  <vincent@vinc17.net>
31633
31634	INSTALL: added information about setup after the library installation.
31635
316362006-07-20  Vincent Lefèvre  <vincent@vinc17.net>
31637
31638	Improved linker flag settings on darwin.
31639
316402006-07-18  Vincent Lefèvre  <vincent@vinc17.net>
31641
31642	configure.in: fixed a linking problem on darwin.
31643
316442006-07-16  Vincent Lefèvre  <vincent@vinc17.net>
31645
31646	One needs automake 1.6; autoreconf fails with automake 1.4. Adding
31647	the 1.6 automake option will make the error message less obfuscated,
31648	but unfortunately, one won't have the necessary automake version
31649	automatically called, even if it is installed.
31650
316512006-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31652
31653	added item
31654
31655	fixed wrong comment (thanks Keith Briggs)
31656
31657	new mpn_rootrem is still not in gmp-4.2
31658
316592006-06-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31660
31661	replaced <= by =
31662
316632006-06-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31664
31665	changed <= into =
31666
31667	comments from Keith Briggs
31668
316692006-06-09  Vincent Lefèvre  <vincent@vinc17.net>
31670
31671	algorithms.tex: corrected several English mistakes and typography.
31672
316732006-06-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31674
31675	fixed typo
31676
31677	replaced error() by \error()
31678
316792006-06-09  Vincent Lefèvre  <vincent@vinc17.net>
31680
31681	algorithms.tex: another fixed notation for roundings.
31682
316832006-06-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31684
31685	added section on Notations
31686	fixed notations for roundings
31687
316882006-06-09  Vincent Lefèvre  <vincent@vinc17.net>
31689
31690	algorithms.tex: changed the page style to plain (for page numbers).
31691
316922006-06-07  Vincent Lefèvre  <vincent@vinc17.net>
31693
31694	FAQ update.
31695
316962006-05-29  Vincent Lefèvre  <vincent@vinc17.net>
31697
31698	Define HAVE_ATTRIBUTE_MODE if supported; useful for s390, but incomplete
31699	and will fail on platforms with gcc and CHAR_BIT != 8.
31700
317012006-05-19  Vincent Lefèvre  <vincent@vinc17.net>
31702
31703	Add compiler flags (CPPFLAGS, LDFLAGS) in a consistent order.
31704
317052006-05-18  Vincent Lefèvre  <vincent@vinc17.net>
31706
31707	MPFR manual consistency: Custom interface -> Custom Interface.
31708
317092006-05-17  Vincent Lefèvre  <vincent@vinc17.net>
31710
31711	TODO: added a note about the change 4049 in div.c.
31712
317132006-04-18  Vincent Lefèvre  <vincent@vinc17.net>
31714
31715	Removed the #ifndef __hpux from mul.c (after a test on a HP-UX machine,
31716	I got no failures, even with the old mpfr-longlong.h).
31717
31718	README.dev: added a point on mpfr-longlong.h in "To make a release".
31719
31720	Updated mpfr-longlong.h from the GMP 4.2 longlong.h file.
31721
31722	mpfr.texi: removed dot from a section title.
31723
317242006-04-11  Vincent Lefèvre  <vincent@vinc17.net>
31725
31726	FAQ update.
31727
317282006-04-06  Vincent Lefèvre  <vincent@vinc17.net>
31729
31730	div.c: removed the bad use of MPFR_LIMB_ZERO.
31731
31732	In get_f.c, updated the case precy + sh > precx: this one was correct,
31733	but added a comment, assertions and simplified a MPN_ZERO.
31734
317352006-04-05  Vincent Lefèvre  <vincent@vinc17.net>
31736
31737	tget_f.c: test that there is no lost of accuracy when converting
31738	a mpfr_t number into a mpf_t number (test with various precisions
31739	and exponents).
31740
31741	The fix of get_f.c was wrong. This should be now OK for the case
31742	precy + sh <= precx.
31743
31744	Fixed bug in mpfr_get_f (reported by Yury Lukach) and added test.
31745
317462006-03-31  Vincent Lefèvre  <vincent@vinc17.net>
31747
31748	Updated FDL to version 1.2.
31749
31750	Updated FSF address.
31751
31752	Fixed FSF address.
31753
317542006-03-30  Vincent Lefèvre  <vincent@vinc17.net>
31755
31756	Another FAQ update (taking GMP 4.2 into account).
31757
31758	FAQ update.
31759
317602006-03-24  Vincent Lefèvre  <vincent@vinc17.net>
31761
31762	Removed all code related to mpn_sub_nc (no longer used).
31763
31764	div.c: fixed a bug and no longer use mpn_sub_nc.
31765
31766	Some clean-up in div.c; do not steal GMP's namespace (could lead to
31767	clashes if future GMP versions define the corresponding macros).
31768
31769	Build shared libraries by default.
31770
317712006-03-23  Vincent Lefèvre  <vincent@vinc17.net>
31772
31773	random2.c: minor change suggested by Patrick.
31774
31775	configure.in: typography consistency.
31776
31777	Mention --enable-thread-safe and --enable-shared in the INSTALL file
31778	since users may need them and could be confused otherwise (just seen
31779	that). Untabified the file.
31780
317812006-03-16  Vincent Lefèvre  <vincent@vinc17.net>
31782
31783	TODO: new exception "division by zero" / "pole".
31784
31785	README.dev: added "Do not use C99-only features, such as...".
31786
317872006-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31788
31789	replaced 6th empty argument of MPFR_FAST_COMPUTE_IF_SMALL_INPUT by {}
31790
317912006-03-14  Vincent Lefèvre  <vincent@vinc17.net>
31792
31793	In random2.c, replaced NULL by 0 (more general) and removed the
31794	now unnecessary #include <stdio.h>.
31795
317962006-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31797
31798	added missing include file
31799
318002006-03-14  Vincent Lefèvre  <vincent@vinc17.net>
31801
31802	Tests: added new worst case for x^(3/2).
31803
318042006-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31805
31806	added reference to INRIA report for Zeta
31807
31808	added another reference
31809
31810	added reference
31811
318122006-02-28  Vincent Lefèvre  <vincent@vinc17.net>
31813
31814	More details concerning mpfr_eq.
31815
318162006-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31817
31818	removed "but does not make much sense"
31819
31820	added contribution from Damien
31821
31822	new test file for mpfr_get_ld_2exp
31823
318242006-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31825
31826	added mpfr_get_ld_2exp (contributed by Damien Stehle)
31827
318282006-02-20  Vincent Lefèvre  <vincent@vinc17.net>
31829
31830	Updated mpfr_random2 user documentation.
31831
31832	Fixed bug in mpfr_random2 when size == 0 and added testcase.
31833
31834	trandom.c: reformat.
31835
31836	trandom.c: use calloc instead of malloc and check return value.
31837
31838	mpfr_random2_raw -> static.
31839
318402006-02-17  Vincent Lefèvre  <vincent@vinc17.net>
31841
31842	Added mpfr_remainder to TODO.
31843
318442006-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31845
31846	fixed wrong url
31847
318482006-02-15  Vincent Lefèvre  <vincent@vinc17.net>
31849
31850	Fixed various spelling mistakes, typos... in algorithms.tex.
31851
31852	In algorithms.tex, \em -> \emph.
31853
31854	Typography corrections in algorithms.tex.
31855
31856	In algorithms.tex, added a missing blackslash.
31857
31858	In algorithms.tex, removed \date (was incorrectly used) and added the
31859	web site as a footnote.
31860
318612006-02-13  Vincent Lefèvre  <vincent@vinc17.net>
31862
31863	Code reformatted. C99 comment replaced by traditional comment.
31864
318652006-02-13  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
31866
31867	* Added comments on all random number generator functions ;
31868	* Inlined the mpn_random2 code in mpfr_random2, to avoid the use of the
31869	same internal randstate ; added a mpfr_random2_raw (not exported at the
31870	time) to allow specification of a randstate ;
31871	* Checked normalization of the result of random2 in trandom.c
31872
318732006-01-31  Vincent Lefèvre  <vincent@vinc17.net>
31874
31875	Changed a part of the documentation of mpfr_get_d_2exp, introduced in
31876	rev 4008, to specify a behavior very similar to the ISO C standard.
31877
318782006-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31879
31880	fixed documentation bug
31881
318822006-01-19  Vincent Lefèvre  <vincent@vinc17.net>
31883
31884	Reverted comments on <float.h> (that were added in r3976).
31885
31886	Replaced -0.0 by a new macro DBL_NEG_ZERO. With MSVC, the negative zero
31887	no longer depends on the non-standard _chgsign function, as
31888	  static double double_zero = 0.0;
31889	  # define DBL_NEG_ZERO (-double_zero)
31890	has been reported to work.
31891
318922006-01-17  Vincent Lefèvre  <vincent@vinc17.net>
31893
31894	Added comments.
31895
318962006-01-13  Vincent Lefèvre  <vincent@vinc17.net>
31897
31898	Type clean-up.
31899
31900	The problem with the conversion was not completely fixed... Now OK.
31901
31902	Fixed conversion with a non-representable value.
31903
31904	Untabify.
31905
319062006-01-12  Vincent Lefèvre  <vincent@vinc17.net>
31907
31908	More reliable tests for mpfr_set_f (x, y, GMP_RNDN) for
31909	y = 2^emax and y = 2^(emax-1).
31910
31911	Use mpfr_get_emax() instead of obsolete __mpfr_emax.
31912
31913	More reliable test for mpfr_set_f (x, y, GMP_RNDN) for y=2^ULONG_MAX.
31914
31915	Untabified.
31916
31917	Fixed a bug related to exponent range.
31918
31919	Replaced obsolete __mpfr_emax by __gmpfr_emax.
31920
319212006-01-11  Vincent Lefèvre  <vincent@vinc17.net>
31922
31923	Removed add_one_ulp.c and sub_one_ulp.c (no longer used).
31924
319252006-01-10  Vincent Lefèvre  <vincent@vinc17.net>
31926
31927	MPFR manual: changes from Paul concerning the ulps.
31928
31929	In the manual, replaced "exact rounding" by "correct rounding",
31930	and added a sentence on the consequence of correct rounding (as
31931	suggested by Paul).
31932
319332006-01-05  Vincent Lefèvre  <vincent@vinc17.net>
31934
31935	Added ', Inc.' when missing after 'Free Software Foundation'.
31936
31937	README.dev: Added a note about copyright notices.
31938
31939	Updated the copyright notices according to the new GNU rules on:
31940	  https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
31941	i.e. added 2006 to every MPFR file.
31942	Note: the copyright notices (currently 336) should match the regexp
31943	  Copyright.* 2006 Free Software
31944	so that it will be easier to update them for the next year...
31945
319462006-01-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31947
31948	added suggestion from K. Briggs
31949
319502006-01-01  Vincent Lefèvre  <vincent@vinc17.net>
31951
31952	Updated copyright line (we are now in 2006!).
31953
319542006-01-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31955
31956	use mpfr_overflow
31957
319582005-12-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31959
31960	fixed bug in mpfr_set_f for huge argument
31961
319622005-12-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31963
31964	bug fix in mpfr_get_f
31965
319662005-12-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31967
31968	updated comment for float.h (_chgsign)
31969
31970	fixed bug found by Vincent (worst-case)
31971
31972	patch for Visual C (does not compile -0.0 properly)
31973
31974	patch for Visual C (-0.0)
31975
319762005-12-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31977
31978	fixed typo
31979
319802005-12-16  Vincent Lefèvre  <vincent@vinc17.net>
31981
31982	Better definition for mpf_set_prec_raw (so that the value is kept).
31983
319842005-12-08  Vincent Lefèvre  <vincent@vinc17.net>
31985
31986	Updated a comment.
31987
31988	Added test cases for a bug introduced on 2005-01-29 in sin.c rev 3248.
31989
31990	README.dev: remember to test MPFR on the worst cases.
31991
319922005-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
31993
31994	added lemma + reference
31995
319962005-11-25  Vincent Lefèvre  <vincent@vinc17.net>
31997
31998	Removed mpfr_div bug from BUGS (as it has been fixed).
31999
32000	Added consistency tests for mpfr_div (e.g. to test small-size divisors).
32001
320022005-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32003
32004	fixed efficiency bug for small divisor (division had same cost than for
32005	divisor of the same size than the result)
32006
320072005-11-23  Vincent Lefèvre  <vincent@vinc17.net>
32008
32009	Updated FAQ.
32010
32011	faq.xsl: add copyright information to the downloaded FAQ.
32012
32013	Added information about the patches to the INSTALL file.
32014
32015	BUGS: Noted the slow division when the precision of the divisor
32016	is small compared to the precision of the target.
32017
320182005-11-21  Vincent Lefèvre  <vincent@vinc17.net>
32019
32020	Fixed a bug preventing the compilation of MPFR with GMP 4.1.90
32021	(non-public development version) without the build directory.
32022
32023	Fixed memory leak in mpfr_mpn_rootrem().
32024
320252005-11-09  Vincent Lefèvre  <vincent@vinc17.net>
32026
32027	Added a note about running the trunk tests in a branch.
32028
32029	Make trunk tests work with MPFR 2.2 (branch), by testing the version.
32030
32031	Removed .cvsignore file (useless after the switch to Subversion).
32032
32033	Added a MPFR_UNLIKELY.
32034
32035	In mpfr_round_near_x, use the new MPFR_RNDRAW_GEN with a correct middle
32036	handler instead of MPFR_RNDRAW_EVEN so that the correction of the wrong
32037	rounding is no longer necessary (BTW, the wrong rounding could have lead
32038	to problems in case of intermediate underflow/overflow -- not checked).
32039
32040	mpfr_round_near_x test completed.
32041
32042	Added a test for mpfr_cbrt, from the following failure with MPFR 2.2
32043	and gcc 4.0.2 under Linux/m68k:
32044	  Seed GMP_CHECK_RANDOMIZE=1131612275 (include this in bug reports)
32045	  results differ for x=1.1000e-2 prec=5 rnd_mode=GMP_RNDN
32046	  got      1.1000e-1
32047	  expected 1.0111e-1
32048	  approx  0.101110001001100E0
32049	  FAIL: tcbrt
32050
320512005-11-04  Vincent Lefèvre  <vincent@vinc17.net>
32052
32053	Improved note r3493 concerning mpfr_set_d/ld.
32054
32055	More information in the "Reporting Bugs" section.
32056
32057	Added a comment about the macros MPFR_RNDRAW* and the labels.
32058
32059	Moved definitions of struct __gmpfr_cache_s and mpfr_cache_t, and
32060	declarations of mpfr_init_cache, mpfr_clear_cache and mpfr_cache
32061	from mpfr.h to mpfr-impl.h as they are internal (not documented).
32062
320632005-11-03  Vincent Lefèvre  <vincent@vinc17.net>
32064
32065	Eliminated the case inex == 0.
32066
32067	Started to write code to test mpfr_round_near_x.
32068
32069	Typos & English usage.
32070
32071	Fixed typos.
32072
320732005-11-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32074
32075	added hint on forbidden variable name
32076
32077	added "tune" item for new releases
32078
32079	done make tune for amd64 with gmp-4.1.4
32080
320812005-11-02  Vincent Lefèvre  <vincent@vinc17.net>
32082
32083	Merged the changes from branch vlefevre:
32084	  * mpfr-impl.h: Added MPFR_RNDRAW_GEN based on MPFR_RNDRAW and
32085	    MPFR_RNDRAW_EVEN codes, but taking an additional argument: a
32086	    handler executed in rounding to nearest mode when the value
32087	    is the middle of two consecutive numbers in dest precision.
32088	    MPFR_RNDRAW and MPFR_RNDRAW_EVEN are now defined by a "call"
32089	    to MPFR_RNDRAW_GEN.
32090	  * cache.c: Clean-up and use MPFR_RNDRAW_GEN instead of
32091	    MPFR_RNDRAW_EVEN to avoid an unnecessary correction in the
32092	    halfway case.
32093	  * hypot.c: Fixed mpfr_hypot when the rounding mode is to nearest,
32094	    x is "much larger" than y, and x is the middle of two consecutive
32095	    numbers in the target precision.
32096	  * tests/thypot.c: Added the corresponding testcase.
32097
32098	[Added during the Subversion to Git conversion]
32099	A merge commit could not be generated for Git.
32100	Branch in Git: refs/deleted/r3930/heads/vlefevre
32101
321022005-11-02  Vincent Lefèvre  <vincent@vinc17.net>
32103
32104	Updated svn:ignore property.
32105
321062005-11-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32107
32108	fixed remaining problems
32109
32110	declared variables as mp_prec_t instead of int
32111	use MPFR_MPZ_SIZEINBASE2 instead of mpz_sizeinbase
32112
321132005-11-02  Vincent Lefèvre  <vincent@vinc17.net>
32114
32115	Reverted the latest change to constant.c: removed MPFR_THREAD_ATTR as
32116	these constants can be shared. Removed MPFR_THREAD_ATTR from mpfr-impl.h
32117	too (this should have been the right correction for rev 3838 concerning
32118	the type mismatch). Thanks to Patrick for noticing this.
32119
321202005-10-31  Vincent Lefèvre  <vincent@vinc17.net>
32121
32122	Added an MPFR_UNLIKELY (suggested by Patrick) and an MPFR_ASSERTN.
32123
321242005-10-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32125
32126	factored calls to gmp_alloc
32127	removed unused variables
32128
32129	improved atan (now can cut series before 2^m)
32130	revised error analysis and code of tanh
32131
321322005-10-31  Vincent Lefèvre  <vincent@vinc17.net>
32133
32134	Reformat (GNU coding style).
32135
32136	Fixed MPFR_INT_CEIL_LOG2 (in mpfr-impl.h) and __gmpfr_int_ceil_log2
32137	(in int_ceil_log2.c) when the argument is a power of 2, and added a
32138	test (new test file tests/tinternals.c). This made a bug appear in
32139	div_ui.c and mul_ui.c; fixed that too.
32140
32141	Added a test that fails after fixing MPFR_INT_CEIL_LOG2.
32142
321432005-10-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32144
32145	improved exp_3 (binary-splitting algorithm)
32146
321472005-10-30  Vincent Lefèvre  <vincent@vinc17.net>
32148
32149	Fixed padding-bit test.
32150
32151	3 corrections in cos.c concerning maxi:
32152	  * corrected a comment;
32153	  * failed if sizeof(int) <= sizeof(long) / 2;
32154	  * now take possible padding bits into account.
32155
321562005-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32157
32158	patched root.c to use rootrem.c with gmp-4.1.90
32159	added comment in exp3.c
32160	added more initial guard bits in agm
32161
32162	now tune Mulders short square (not yet used)
32163	improved mpfr_cos
32164
321652005-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32166
32167	updated code for gmp-dev
32168
321692005-10-26  Vincent Lefèvre  <vincent@vinc17.net>
32170
32171	Removed .cvsignore file (useless after the switch to Subversion).
32172
321732005-10-25  Vincent Lefèvre  <vincent@vinc17.net>
32174
32175	More portable update-version script (use perl instead of sed).
32176
321772005-10-24  Vincent Lefèvre  <vincent@vinc17.net>
32178
32179	First revision after the switch to Subversion:
32180	  * Removed fixperm as it is now useless.
32181	  * Updated README and README.dev files.
32182
32183	Update.
32184
321852005-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32186
32187	documented algorithm used in mpfr_agm and fixed code accordingly
32188
321892005-10-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32190
32191	added efficiency item
32192
32193	now mpzroot/rootrem compile without gmp internal headers
32194
321952005-10-07  Vincent Lefèvre  <vincent@vinc17.net>
32196
32197	Disabled new rootrem/mpz_root as compilation fails (headers can't
32198	be found).
32199
32200	Temporary optimization (patch from Patrick Pelissier).
32201
322022005-10-06  Vincent Lefèvre  <vincent@vinc17.net>
32203
32204	One of the tests was using the fabs function, but -lm isn't given when
32205	generating the executable, making the linking fail under HP-UX. Fixed
32206	by not using this fabs function.
32207
322082005-10-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32209
32210	small improvement in sign detection
32211
32212	improved mpfr_root, using the new mpn_rootrem code written with Torbjo"rn
32213
322142005-09-29  Vincent Lefèvre  <vincent@vinc17.net>
32215
32216	Update.
32217
32218	Fixed bug in mpfr_set_ui macro when parameters are expressions
32219	with side effects.
32220
322212005-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32222
32223	fixed missing accent
32224
322252005-09-28  Vincent Lefèvre  <vincent@vinc17.net>
32226
32227	Small optimization.
32228
32229	Test the sign of 0.
32230
322312005-09-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32232
32233	fixed infinite loop for lngamma(2)
32234
322352005-09-28  Vincent Lefèvre  <vincent@vinc17.net>
32236
32237	Updated libmpfr_la_LDFLAGS (note: it shouldn't be incremented again
32238	before the 2.3.0 release).
32239
322402005-09-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32241
32242	new function: Zeta with integer argument
32243
322442005-09-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32245
32246	new function mpfr_zeta_ui for integer argument
32247
322482005-09-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32249
32250	added brief description of algorithm for mpfr_zeta
32251
322522005-09-18  Vincent Lefèvre  <vincent@vinc17.net>
32253
32254	Mentioned problems with the Tru64 make and other minor changes.
32255
322562005-09-17  Vincent Lefèvre  <vincent@vinc17.net>
32257
32258	Fixed the GMP linking test: replaced __gmp_version, which corresponds
32259	to a variable, by __gmpz_init (suggested by the GMP documentation),
32260	which corresponds to a function, as the auto tools assume the symbol
32261	corresponds to a function. It was failing with the AIX linker.
32262
322632005-09-16  Vincent Lefèvre  <vincent@vinc17.net>
32264
32265	Untabify.
32266
32267	Update.
32268
32269	Untabify.
32270
322712005-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32272
32273	added missing documentation for mpfr_get_f and mpfr_pow_z
32274
322752005-09-16  Vincent Lefèvre  <vincent@vinc17.net>
32276
32277	Fixed typos found by Tomonori Kouya.
32278
322792005-09-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32280
32281	fixed stupid bug (coth was computing 1/tan instead of 1/tanh)
32282
322832005-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32284
32285	fixed overflow problem for large precision
32286
32287	added log(precz) in initial precision
32288
322892005-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32290
32291	fixed bug in exp(-eps) for rounding toward zero (test was also wrong...)
32292
322932005-09-13  Vincent Lefèvre  <vincent@vinc17.net>
32294
32295	Updated "To make a release".
32296
32297	Minor update.
32298
32299	Added missing MPFR_THREAD_ATTR.
32300
323012005-09-11  Vincent Lefèvre  <vincent@vinc17.net>
32302
32303	Avoid a conflict with GMP.
32304
32305	Reverted to previous mparam_h.in and mul.c, and applied Patrick's
32306	patch instead.
32307
32308	Update.
32309
32310	Added #include <string.h> for memmove (see ISO C99 standard).
32311
32312	Minor change.
32313
32314	Fixed uninitialized variable (with gcc -std=c99).
32315
32316	Fixed a #ifdef (when --enable-assert isn't used).
32317
32318	Update.
32319
32320	Changed the MPFR_ASSERTD into a MPFR_ASSERTN for MPFR_INT_CEIL_LOG2
32321	since the assertion cannot be guaranteed for every C implementation.
32322
323232005-09-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
32324
32325	Fix spelling mistake.
32326
32327	Add new note about MPFR_TMP_DECL
32328
323292005-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32330
32331	reduced default of MPFR_MUL_THRESHOLD by 1, since now MPFR_MUL_THRESHOLD+1
32332	is considered in mul.c
32333
323342005-09-09  Vincent Lefèvre  <vincent@vinc17.net>
32335
32336	Fixed another LaTeX error.
32337
32338	Update.
32339
32340	Updated "To make a release".
32341
32342	Use (mpz_t *) 0 instead of NULL (this is not less clear and this
32343	works with the native SunOS 4 C compiler).
32344
323452005-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32346
32347	avoid . in mpf_set_str (locale-sensitive)
32348
32349	cleanup of gamma and lngamma
32350
323512005-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32352
32353	MUL_THRESHOLD -> MUL_THRESHOLD+1 (to allow MUL_THRESHOLD=0, needed for
32354	tuneup.c)
32355
32356	fixed LaTeX error
32357
323582005-09-08  Vincent Lefèvre  <vincent@vinc17.net>
32359
32360	Fix.
32361
32362	Update.
32363
32364	Added fixperm script to fix the file permissions broken by CVS.
32365
32366	Update.
32367
323682005-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32369
32370	added one item
32371
323722005-09-08  Vincent Lefèvre  <vincent@vinc17.net>
32373
32374	Update.
32375
32376	Fix: readded dependencies.
32377
323782005-09-06  Vincent Lefèvre  <vincent@vinc17.net>
32379
32380	More detailed error message.
32381
32382	Change for ansi2knr.
32383
32384	Code clean-up (again).
32385
32386	Use GMP's allocate functions instead of C's. Code clean-up.
32387
32388	Reformat.
32389
323902005-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32391
32392	missing set_emin
32393
32394	added missing call to MPFR_TEST_USE_RANDS() [3 blocks non-freed]
32395
323962005-09-06  Vincent Lefèvre  <vincent@vinc17.net>
32397
32398	Fixed a bug (detected after mpfr_set_str_binary has been fixed)
32399	in tests/tsub.c introduced in 1.6 (2001-10-19).
32400
32401	mpfr_set_str_binary was buggy and inefficient. Let's use mpfr_strtofr.
32402
32403	Replaced unsigned long bit-fields (GCC extension) by insigned int
32404	bit-fields.
32405
324062005-09-05  Vincent Lefèvre  <vincent@vinc17.net>
32407
32408	MPN_COPY now calls memcpy only if dst != src (otherwise this is an
32409	undefined behavior), and if WANT_ASSERT is defined, it checks that
32410	there is no overlap.
32411
324122005-09-02  Vincent Lefèvre  <vincent@vinc17.net>
32413
32414	Avoid MIPSpro / IRIX64 (incorrect) optimizations for DOUBLE_ISNAN.
32415
32416	More portable DOUBLE_ISNAN (useful for MIPSpro under IRIX64).
32417
324182005-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32419
32420	improved trade-off between fac_ui and gamma when argument is integer
32421
324222005-09-02  Vincent Lefèvre  <vincent@vinc17.net>
32423
32424	Reformat.
32425
324262005-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32427
32428	fixed remaining problem in gamma
32429	removed LogGamma from TODO
32430
324312005-09-02  Vincent Lefèvre  <vincent@vinc17.net>
32432
32433	Do not put expressions with side effects in MPFR_ASSERTN.
32434
324352005-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32436
32437	now uses lngamma code for x < 1 too
32438	added new tests from Kenneth Wilder
32439
32440	added another test
32441
32442	removed useless prototype
32443
324442005-08-31  Vincent Lefèvre  <vincent@vinc17.net>
32445
32446	Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
32447
32448	Fixed the code formatting.
32449
32450	Updated Point 6 of "To make a release".
32451
32452	Fixed memory leak (missing MPFR_TMP_FREE in a particular case).
32453
324542005-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32455
32456	added lngamma
32457
32458	added new test (emax)
32459
32460	now random tests also use x >= 1
32461
32462	added SAVE_EXPO stuff
32463
32464	new function lngamma
32465
32466	now uses lngamma code for x > 1
32467
32468	added lngamma
32469
324702005-08-31  Vincent Lefèvre  <vincent@vinc17.net>
32471
32472	Updated version to 2.3.0.
32473
32474	Fix for the following problem: #error is not sufficient with cc
32475	on IRIX64, and autoconf 2.59 doesn't cope with that.
32476
324772005-08-30  Vincent Lefèvre  <vincent@vinc17.net>
32478
32479	Added .cvsignore files.
32480
32481	Unobfuscated 2 assertions.
32482
32483	Fixed indentation and some comments.
32484
32485	Recommitted the patch (without discarding previous modifications).
32486
32487	Reverted to the previous version, as the patch discarded previous
32488	modifications.
32489
324902005-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32491
32492	added two new tests
32493
32494	patch from Patrick to solve efficiency problem when one operand is sparse
32495	(e.g. from ui_pow_ui)
32496
324972005-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32498
32499	check for overflow/underflow in pow and gamma
32500
325012005-08-24  Vincent Lefèvre  <vincent@vinc17.net>
32502
32503	When WANT_ASSERT >= 2: the corresponding messages are now output
32504	to stderr instead of stdout.
32505
32506	Update.
32507
32508	Improved C compliance when mp_limb_t and uintmax_t have the same size
32509	(concerning >> BITS_PER_MP_LIMB); some other small improvements.
32510
32511	No longer assume that a mp_limb_t fits in an unsigned long (this
32512	is not true under IRIX, where a mp_limb_t has 64 bits and a long
32513	has 32 bits by default). In round_p.c, error messages are output
32514	to stderr instead of stdout.
32515
325162005-08-23  Vincent Lefèvre  <vincent@vinc17.net>
32517
32518	Update.
32519
32520	This was wrong. Let's do it even more like the 2.1 branch.
32521
32522	Update.
32523
32524	Patch 1.25 didn't work under OSF1 with cc. Let's do it like
32525	the 2.1 branch (it now does work under OSF1 with cc).
32526
325272005-08-21  Vincent Lefèvre  <vincent@vinc17.net>
32528
32529	Better locale support (for the decimal point in string conversions
32530	and input/output).
32531
325322005-08-18  Vincent Lefèvre  <vincent@vinc17.net>
32533
32534	Update.
32535
32536	Misc changes (spelling, typography...).
32537
32538	Removed trailing spaces (better for future patches, as such spaces
32539	are sometimes stripped).
32540
32541	Converted tabs to spaces with expand.
32542
32543	Updated copyright line.
32544
32545	Support C implementations giving an incorrect value for the precision
32546	of long double or where long doubles are implemented with FP expansions
32547	(like under Mac OS X), as in the 2.1 branch.
32548
32549	Updated mpfr_get_ld: removed useless and non-portable hacks, fixed
32550	bugs, and slightly changed the behavior for the x87 extended format
32551	(we shouldn't return long double's with more precision than really
32552	supported, e.g. on FreeBSD and NetBSD).
32553
32554	Added an assertion.
32555
325562005-08-17  Vincent Lefèvre  <vincent@vinc17.net>
32557
32558	Reformatted (GNU style).
32559
325602005-08-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
32561
32562	Improve the warning message by adding the lines:
32563	"we cannot run a program linked with GMP (if you cannot
32564	see the version numbers above)."
32565
325662005-08-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32567
32568	added pointer for gamma
32569
32570	fixed comments (code did not change)
32571
32572	added formula for gamma function
32573
32574	fixed last test (expected result was wrong)
32575
32576	fixed bug for tiny input
32577
32578	added test case
32579
325802005-08-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
32581
32582	Reintroduce the computing of the dependencies.
32583
325842005-08-11  Vincent Lefèvre  <vincent@vinc17.net>
32585
32586	Added MPFR_DOUBLE_SPEC (not used yet, except for warning messages).
32587
325882005-08-10  Vincent Lefèvre  <vincent@vinc17.net>
32589
32590	Completed the documentation of mpfr_strtofr (concerning the exponent).
32591
32592	Removed double spaces in mpfr_strtofr description (this matters
32593	for the info format).
32594
32595	Added a temporary test for non-IEEE-754 double's.
32596
325972005-08-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
32598
32599	Fix bug for pre-ansi compiler.
32600
32601	Remove redundant entries.
32602
326032005-08-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32604
32605	fixed bug in mpfr_sin (possible wrong inexact flag for rounding to nearest)
32606	added items in NEWS and TODO
32607
326082005-08-05  Patrick Pélissier  <patrick.pelissier@gmail.com>
32609
32610	Update information
32611
32612	Rename mpfr_stack to mpfr_custom_
32613
326142005-08-03  Vincent Lefèvre  <vincent@vinc17.net>
32615
32616	Added/updated copyright information.
32617
326182005-08-03  Vincent Lefèvre  <vincent@vinc17.net>
32619
32620	Update.
32621
32622	[[Split portion of a mixed commit.]]
32623
326242005-08-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
32625
32626	Remove "Stack Interface" from TODO.
32627
326282005-08-01  Patrick Pélissier  <patrick.pelissier@gmail.com>
32629
32630	Add test file for mpfr_subnormalize
32631
32632	Add documentation for MPFR stack interface
32633
32634	Add a new test to avoid potential problems if mp_limb_t != long.
32635
326362005-08-01  Vincent Lefèvre  <vincent@vinc17.net>
32637
32638	Update.
32639
326402005-07-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
32641
32642	Add first version of MPFR stack interface.
32643	Need to check if everything is ok, specially the test.
32644
32645	Fix and clean up logging for GCC 4.0.x
32646
32647	Clean up code.
32648
32649	Improve logging:
32650	 + The file is not created if there is nothing to log.
32651	 + Add new ENVIRONMENT variables: MPFR_LOG_ALL and MPFR_LOG_STAT.
32652
32653	Add experimental code (Disabled).
32654
32655	Fix comment
32656
32657	Add a new regression test (to fix).
32658
326592005-07-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
32660
32661	Fix bug for high values of input (assertion failed)
32662	because erf(x) ~ 1, so 1-erf(x) ~ 0, and we can't
32663	get the EXP of tmp.
32664
326652005-07-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
32666
32667	Fix bug (AC_INIT version wasn't updated).
32668	Display a note about libtool version before quitting.
32669
32670	Clean up.
32671	Add comment.
32672	Add a new test: check if the charset has consecutive values.
32673
326742005-07-12  Vincent Lefèvre  <vincent@vinc17.net>
32675
32676	Updated documentation of mpfr_strtofr.
32677
326782005-07-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
32679
32680	Fix an overflow bug (use of int instead of unsigned long).
32681	Optimize code (5% faster).
32682
326832005-07-11  Vincent Lefèvre  <vincent@vinc17.net>
32684
32685	Fixed locale bug. Function strncasecmp is no longer used.
32686
326872005-07-09  Vincent Lefèvre  <vincent@vinc17.net>
32688
32689	In the tests, set the locale to the current one. This allows to test
32690	MPFR under various locales, showing a bug in the parse_string function
32691	due to the use of the strncasecmp function ('i' and 'I' don't match
32692	with LC_ALL="tr_TR.ISO8859-9").
32693
326942005-07-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
32695
32696	Improve displayed warning if GMP versions differ.
32697
326982005-07-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
32699
32700	Add a solution for a problem.
32701
327022005-07-05  Vincent Lefèvre  <vincent@vinc17.net>
32703
32704	Added in-place tests for atan(+/-0).
32705
327062005-07-05  Patrick Pélissier  <patrick.pelissier@gmail.com>
32707
32708	Fix bug of signed 0.
32709	Optimize code. (20% for 53 bits).
32710
32711	Improve test for signed 0.
32712
327132005-06-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
32714
32715	Simplify a condition which was always true.
32716	(p is always negative).
32717
32718	Add assertion.
32719
32720	Simplify code for final step (when i== n0):
32721	since we do n0-i=0 steps, atan(Ak/2^k) ~= Ak/2^k.
32722	So we could speed up the final computation (9% faster).
32723
32724	Optimize: when computing arctan(p/2^r) simplify
32725	p/2^r if p is even.
32726	Clean up and remove tabi table. It was useless.
32727
327282005-06-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
32729
32730	Clean up configure and acinclude:
32731	 + Remove useless test in MPFR_CONFIGS (Check for valid NAN).
32732	   Its result is not use by MPFR.
32733	 + Remove useless macros (AC_CHECK_OS, AC_CHECK_MACH and AC_MY_HEADERS).
32734	 + Move detection of math/rint,round,floor,ceil to MPFR_CONFIGS.
32735
327362005-06-20  Vincent Lefèvre  <vincent@vinc17.net>
32737
32738	GNU coding style.
32739
327402005-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32741
32742	improved m=0 case when b is a power of 2
32743
327442005-06-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
32745
32746	Replace mpfr_div_2ui call by SET_EXP/GET_EXP
32747	since it can't overflow.
32748
32749	Speed up a few (from 10822 to 10600).
32750
32751	Update
32752
327532005-06-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
32754
32755	Replace check for a power of 2 for the high limb by a check
32756	for "high bit limb" for the high limb.
32757
32758	Fix bug in mul_ui (always alloc buffer instead of trying to reuse it).
32759
32760	Add new test (failed).
32761
32762	Add Fast case for u==1
32763	Add Fast case for u a power of 2 (Call mul/div_2si).
32764
32765	Fix bug (use of GCC specific attribute).
32766
327672005-06-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
32768
32769	Rechnage the meaning of root for k=0.
32770
32771	Fix bug with x<0 and k even
32772
32773	Add special case for k==0
32774	Add test for special case k==0
32775
327762005-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32777
32778	added assertion
32779
327802005-06-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
32781
32782	Improve efficiency of initial call to mpfr_cache.
32783
32784	Add new check (+INF -INF --> NAN).
32785
327862005-06-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
32787
32788	Fix bug of NAN and INF.
32789	Fix bug in documentation (mpfr_sum wasn't exactly what is described).
32790	Improve test.
32791	Change internal names.
32792	Clean up.
32793
32794	Fix bug: check if mpfr_log returns 0.
32795
327962005-06-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
32797
32798	Replace MPFR_EXP to MPFR_GET_EXP
32799	Use GROUP function
32800	Use MPFR_MPZ_SIZEINBASE2
32801	Factorize the mpfr_mul_2exp chain.
32802
32803	Replace int to mp_prec_t for precision...
32804
32805	Fix warning due to comparison of unsigned and signed integers.
32806
32807	Fix warnings due to comparison between signed and unsigned.
32808	Reinclude string.h for strtofr.
32809
328102005-06-08  Vincent Lefèvre  <vincent@vinc17.net>
32811
32812	Fixed bug introduced with the new internal format on 2003-10-27.
32813
32814	Updated comments.
32815
328162005-06-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
32817
32818	Fix introduced bug due to missing NULL.
32819
32820	Fix introduced bug (NULL not defined).
32821
32822	Clean up use of stdio.h:
32823	 it is now included by mpfr-impl iff DEBUG is defined or WANT_ASSERT is
32824	defined.
32825
32826	Fix warnings.
32827
32828	Clean up code.
32829
32830	Improve checking if WANT_ASSERT >= 2
32831
328322005-06-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
32833
32834	Fix wrong assertion.
32835
32836	Improve test by adding special cases.
32837
32838	MPFR_GET_EXP was wrongly defined and does nothing due to recursive
32839	macro (mpfr_get_exp is also defined to be a fast macro). Fix this
32840	by removing the macro call in MPFR_GET_EXP in case of ASSERT >= 1.
32841	2 tests failed now!
32842
32843	Clean up and improve check.
32844
32845	Handle case n==0 and n==1 as special cases.
32846
32847	Simplify test to use tgeneric.
32848	Add note about Worst Case of const_catalan up to 100,000,000
32849
32850	Use GROUP functions.
32851
32852	Improve coverage.
32853
32854	Fix bug in MPFR_GROUP_REPREC_3.
32855
328562005-06-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
32857
32858	Improve coverage
32859
32860	Improve coverage test
32861
32862	Remove mpfr_sub_one_ulp from MPFR library.
32863	Keep the C file until we are sure it not needed anymore.
32864
32865	Improve coverage.
32866
32867	Remove mpfr_add_one_ulp from MPFR library.
32868	The function is still in the CVS.
32869
32870	Add experimental code (disabled).
32871	For 5000 bits, gamma(12.5) takes 4s instead of 18s.
32872	But it changes the error analysis...
32873
32874	Reduce use of intermediary variables.
32875
32876	Improve comment of previous change.
32877
32878	Use FastCompute if x is positive and big, ie it uses
32879	Zeta(x)=1+1/2^X+O(1/3^x)
32880
328812005-06-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
32882
32883	Add new and faster trivial case for y <= 1 and n <= 1
32884
328852005-06-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
32886
32887	Forget those two. Update from FSF site.
32888
32889	Finish updating files.
32890
32891	Change the address of the FSF.
32892
32893	Optimize it a few by avoiding calling fac_ui for each iteration
32894	of the main loop.
32895
32896	Reduce # of vars inside the main loop.
32897	Use GROUP function.
32898	Improve overflow problems (Use of int instead of mp_prec_t).
32899
32900	Improve efficiency by removing 2 variables (Loop uses only 4 vars).
32901	Use GROUP.
32902
32903	Add support for MPFR_GROUP functions.
32904
32905	Add attribute const and noreturn for function (via macros).
32906	Add new macros GROUP_INIT_6 and GROUP_REPREC_6 for zeta and gamma.
32907
329082005-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
32909
32910	added missing functions from gnumeric
32911
329122005-06-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
32913
32914	Update stack-interface.
32915	Remove round_near_x item.
32916	Add new functions to implement.
32917	Reformat file.
32918
32919	Fix input precision of mp_prec_t.
32920	May be outside 'int' range. So it uses 'long' instead and
32921	a proper check.
32922
329232005-05-25  Vincent Lefèvre  <vincent@vinc17.net>
32924
32925	Added coding recommendations concerning C++ compilers.
32926
329272005-05-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
32928
32929	Final version of MPFR_GROUP macros.
32930
32931	Improve coverage test.
32932
329332005-05-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
32934
32935	Remove variable t which wasn't used!
32936
329372005-05-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
32938
32939	Replace TMP_ALLOC by MPFR_TMP_ALLOC
32940	Replace TMP_DECL by MPFR_TMP_DECL
32941	Replace TMP_MARK by MPFR_TMP_MARK
32942	Replace TMP_FREE by MPFR_TMP_FREE
32943	Add support for GMP's TMP_SALLOC.
32944
32945	New way of handling exact value.
32946	Fix bug of wrong rounding and wrong ternary value if the power
32947	is exact, but at an upper precision than the working precision.
32948	Now it computes the power exactly if it detects it is exact.
32949
32950	Precise that 1 is not the only value.
32951
329522005-05-18  Vincent Lefèvre  <vincent@vinc17.net>
32953
32954	an 1 -> a 1.
32955
329562005-05-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
32957
32958	Add a note about special case 1
32959
32960	Add assertions
32961	Remove useless function is_odd_even.
32962
32963	Fix bug: returning 1 didn't take the rounding mode into account.
32964	Simplify dependencies of mpfr_pow.
32965
32966	Fix bug of overflow
32967	Fix bug of wrong ternary value in case of overflow
32968	Add test cases.
32969
32970	Fix bug of overflow.
32971	Fix bug of ternary value in case of overflow.
32972
32973	Clean up previous patch.
32974
32975	Fix bug of overflow.
32976	Fix bug of ternary value in case of overflow.
32977	Still some bugs...
32978
329792005-05-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
32980
32981	Rewrite the way of handling overflow.
32982	Fix bug due to overflow.
32983	Fix bug due to wrong ternary value.
32984
32985	Typo.
32986
32987	Fix bug of overflow.
32988	Still a problem if exp(x) is near the limit of EMAX_MAX.
32989
32990	Add new macro MPFR_SAVE_DECL_UPDATE_FLAGS
32991
32992	Improve way of handling overflow (still not perfect but far better).
32993	Improve coverage test.
32994
32995	Improve coverage test.
32996
329972005-05-17  Vincent Lefèvre  <vincent@vinc17.net>
32998
32999	hypot(±oo, NaN) now returns +oo, as in ISO C99 (wasn't documented).
33000
330012005-05-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
33002
33003	Improve coverage test.
33004
33005	Remove useless test.
33006
33007	Improve coverage test.
33008
33009	Improve coverage
33010
33011	Improve coverage test.
33012
33013	Add CFLAGS -g.
33014
33015	Clean up
33016
33017	Improve coverage tests.
33018
33019	Improve coverage test.
33020
33021	Special a condition by the simplified one.
33022
33023	Improve coverage test (Forget to test tiny functions).
33024
33025	Typo
33026
33027	Add 'coverage' script.
33028
33029	Add 'static'
33030
33031	Reformating code.
33032	Fix potential (?) overflow for very large precision.
33033	Various tiny optimizations
33034	Improve the initial estimation of the needed precision.
33035
33036	Extract constants (__gmpfr_one, two and four) from log.c to constant.c
33037	Fix bug in MPFR_SET_ONE.
33038
33039	Remove a space.
33040
330412005-05-16  Vincent Lefèvre  <vincent@vinc17.net>
33042
33043	Typography + spelling.
33044
33045	Note that mpfr_out_str has slightly changed.
33046
330472005-05-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
33048
33049	asin, atan, atanh are not slow anymore for small input.
33050	Remove it in the TODO.
33051
330522005-05-14  Vincent Lefèvre  <vincent@vinc17.net>
33053
33054	Fixed a bug due to a typo on a variable name. It produced a
33055	segmentation fault in the tests on Linux/ppc (uninitialized data were
33056	read), not always reproducible when stepping with gdb.
33057
330582005-05-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
33059
33060	Add support for MPFR_FAST_COMPUTE_IS_SMALL_INPUT
33061
33062	Add support for FAST_COMPUTE_IS_SMALL_INPUT.
33063
33064	Add round_near_x support for small arguments.
33065
33066	Add new internal function mpfr_round_near_x.
33067
330682005-05-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33069
33070	added missing documentation for mpfr_hypot
33071
330722005-05-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
33073
33074	Add a \n for all error strings.
33075
33076	Fix copyright date.
33077
33078	Fix some problems when you define mpfr_prec_t to be an unsigned short.
33079	Now all tests passed when mpfr_prec_t is defined to be an unsigned short
33080	on a 32 bit CPU!
33081
330822005-05-12  Vincent Lefèvre  <vincent@vinc17.net>
33083
33084	Detect/avoid potential integer overflows.
33085
330862005-05-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
33087
33088	Fix typos.
33089
330902005-05-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
33091
33092	Same patch for exp_3.
33093
33094	Fix bug when exp(x) is near the limit of an overflow or an
33095	underflow (mpfr_exp_2 didn't allow an overflow/underflow in its
33096	internal loop).
33097	Add corresponding test case. exp_3 may need similar patchs.
33098
330992005-05-11  Vincent Lefèvre  <vincent@vinc17.net>
33100
33101	Update (with reformatting so that the logs are readable on 80 columns).
33102
331032005-05-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
33104
33105	Fix bug due to wrong assertion.
33106
331072005-05-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
33108
33109	1. Change the prototype of mpfr_can_round to use const.
33110	2. Change the prototype of mpfr_round_raw_2 (remove first argument since it is
33111	   useless).
33112	3. Change round_raw_generic to use preprocessor if rather than compiler
33113	   to detect if flag == 1 or 0
33114	4. mpfr_round_raw_xxx use const attribute too.
33115	5. Remove mpfr_round_raw_3 since it is unused by MPFR.
33116	6. Add first prototype of MPFR_FAST_COMPUTE_IF_SMALL.
33117
33118	Update.
33119
33120	Fix a bug in the product of 2limbs per 2 limbs.
33121	Add new regression test.
33122
33123	Fix problem with mingw: if the configure detects MS-Windows, it skips the
33124	tests which try to link against GMP within the configure, hoping the Makefile
33125	works. The main problem is that we need libtool inside the configure to link
33126	against GMP.
33127
331282005-05-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
33129
33130	Improve random tests.
33131
331322005-05-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33133
33134	Replace initial estimation of K0 from sqrt (p/2)
33135	to sqrt(p/16). It seems to be 30% faster for 5000 bits, and 5% faster
33136	for 50 bits.
33137
331382005-05-04  Vincent Lefèvre  <vincent@vinc17.net>
33139
33140	Reformatted the code.
33141
331422005-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33143
33144	fixed dummy init2 followed by set_prec
33145
331462005-05-04  Vincent Lefèvre  <vincent@vinc17.net>
33147
33148	Added LIA-2 functions to implement.
33149
331502005-05-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33151
33152	Add functions mpfr_sech, mpfr_coth and mpfr_csch.
33153
33154	init2 alloc what is needed, not 2 (more efficient).
33155
331562005-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33157
33158	improved const_euler and eint
33159	removed dependency from input precision in several functions
33160	fixed two bugs in pow (detection of exact cases)
33161
331622005-05-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33163
33164	Update to reflect the current state.
33165
331662005-05-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
33167
33168	Fix computing of `sup` to reflect what is described in algorithms.tex.
33169
33170	Tiny optimization of mpfr_atan.
33171	On opteron with p=53, from 9231 / 18049.89 / 81758 to 9004 / 17522.76 / 78601.
33172
331732005-05-03  Vincent Lefèvre  <vincent@vinc17.net>
33174
33175	Fixed a problem in test_small (already done in the 2.1 branch)
33176	when long double = double.
33177
331782005-05-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
33179
33180	Improve detection again (use callback).
33181
33182	Improve previous change.
33183
33184	Add detection of function round, rint, ceil, floor and nearbyint at configure
33185	time so that spe206 which defines itself as C99 compliant can build the
33186	trint test.
33187
33188	Update (Move bugs to potential).
33189
331902005-05-03  Vincent Lefèvre  <vincent@vinc17.net>
33191
33192	Fixed the mpfr_hypot bug, and re-enabled the test_large_small test.
33193
331942005-05-02  Vincent Lefèvre  <vincent@vinc17.net>
33195
33196	Update.
33197
33198	Mention the mpfr_hypot bug.
33199
33200	Added a test showing a bug, enabled when TEST_LARGE_SMALL is defined
33201	(to avoid a freeze with make check).
33202
332032005-05-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
33204
33205	Fix bug.
33206
33207	Remove useless function f.
33208
33209	Fix a bug: the test to detect EVEN_rounding was wrong.
33210
33211	Update example of use of mpfr_subnormalize.
33212
33213	mpfr_cmp_str checks for NAN.
33214	Add macro mpfr_cmp0 in mpfr-test.
33215
33216	Undo previous change for tgeneric.
33217	troot uses tgeneric_ui instead.
33218
332192005-05-01  Patrick Pélissier  <patrick.pelissier@gmail.com>
33220
33221	Add new functions in reuse test.
33222
332232005-04-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33224
33225	added efficiency item
33226
33227	added mpfr_eint
33228
332292005-04-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
33230
33231	Add something to do :)
33232
332332005-04-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33234
33235	added comment about efficiency of atan
33236
332372005-04-29  Vincent Lefèvre  <vincent@vinc17.net>
33238
33239	The FAQ is now distributed with MPFR. Use update-faq to update it
33240	from the MPFR web site.
33241
332422005-04-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33243
33244	commented out argument reduction analysis for arctan (was wrong)
33245
332462005-04-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33247
33248	wrong commit, put revision 1.37 back
33249
33250	wrong commit, put back revision 1.47
33251
33252	added error analysis for Geoff's argument reduction for arctan
33253
332542005-04-27  Vincent Lefèvre  <vincent@vinc17.net>
33255
33256	Added a note about mpfr_set_d and mpfr_set_ld.
33257
33258	Define MPFR_VERSION_STRING using the update-version script
33259	(works with any compiler).
33260
332612005-04-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33262
33263	added internal interface
33264
33265	added suggestion from Geoff
33266
33267	added MPFR_VERSION_STRING
33268
332692005-04-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33270
33271	added new item
33272
33273	improved expm1/log1p for small argument
33274
33275	improved to taken account of case |x| small (reported by Keith Briggs)
33276
332772005-04-25  Vincent Lefèvre  <vincent@vinc17.net>
33278
33279	Added a missing "-" and replaced a few "-" by @minus{}.
33280
33281	Added a note for mpfr_cmp functions.
33282
332832005-04-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33284
33285	fixed bug with tiny number
33286
332872005-04-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33288
33289	removed done item
33290
332912005-04-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
33292
33293	Add a macro for mpfr_const_catalan for internal use.
33294
33295	Fix typos.
33296
332972005-04-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33298
33299	removed Root, updated eint*
33300
33301	added sec, csc, cot
33302
33303	proposal for exponential integral definition
33304
33305	added mpfr_root, removed from TODO
33306
33307	added mpfr_root
33308
333092005-04-21  Vincent Lefèvre  <vincent@vinc17.net>
33310
33311	Update.
33312
33313	Added the ability to change the control word when compiling tset_ld
33314	with -DWITH_FPU_CONTROL=1 and executing tset_ld with an argument
33315	(not used in the automatical tests yet).
33316
33317	Added test_small (the same as in the 2.1 branch).
33318
33319	Updated a comment and reformatted the code.
33320
333212005-04-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33322
33323	added explanation
33324
333252005-04-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33326
33327	adjusted initial guard digits for const_catalan to avoid failure for prec<=10^4
33328
33329	updated documentation and improved tests for mpfr_const_catalan
33330
33331	removed Catalan's constant (done)
33332
33333	added Catalan's constant
33334
33335	added efficiency items suggested by Geoff Bailey
33336
33337	fixed minor problem (wrong rounding mode for x=0, y<0), thanks Geoff Bailey
33338
333392005-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33340
33341	added one efficiency item
33342
33343	completely rewritten algorithm and error analysis for acosh
33344	(did not match those in acosh.c)
33345
33346	algorithm and error bound did not match those of algorithm.tex!!!
33347
33348	added missing functions for Magma
33349
33350	changed semantics of mpfr_get_str for ndigits=0
33351
333522005-04-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33353
33354	added one item (efficiency)
33355
333562005-04-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33357
33358	Fix atan2 to fit C99 semantic.
33359
33360	Fix typos.
33361
33362	Add TODO.
33363
33364	Add documentation for mpfr_subnormalize.
33365
33366	Fix bugs.
33367
333682005-04-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
33369
33370	Apply Guillaume's patch about mpfr_div_ui.
33371	Fix a bug in tsi_op (forget to clean memory).
33372
33373	Add function mpfr_subnormalize (To Test!!!!!)
33374
33375	Add TODO.
33376
33377	Fix wrong comment.
33378
333792005-04-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
33380
33381	Reenable tests.
33382
33383	Add documentation about mpfr_atan2.
33384
33385	Improve test suite by adding new random values.
33386
33387	Add random tests (tgeneric + random2).
33388
333892005-04-05  Vincent Lefèvre  <vincent@vinc17.net>
33390
33391	Test with -ansi when making a release.
33392
33393	Typo.
33394
333952005-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33396
33397	replaced // comments by /* ... */
33398
333992005-04-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33400
33401	Add note about mpfr_neg
33402
33403	Add function mpfr_atan2
33404
334052005-03-31  Patrick Pélissier  <patrick.pelissier@gmail.com>
33406
33407	Change to add future function mpfr_sqrhigh_n.
33408
33409	Add documentation for mpfr_erfc.
33410
33411	Add items.
33412
33413	Add function mpfr_erfc.
33414	Add a note about auto-checking correctness of MPFR.
33415
334162005-03-30  Vincent Lefèvre  <vincent@vinc17.net>
33417
33418	Added a testcase (the one added to the 2.1 branch).
33419
334202005-03-30  Patrick Pélissier  <patrick.pelissier@gmail.com>
33421
33422	Use random2 instead of random.
33423
334242005-03-30  Vincent Lefèvre  <vincent@vinc17.net>
33425
33426	Weaker conditions for return 0 in mpfr_round_p.
33427
334282005-03-30  Patrick Pélissier  <patrick.pelissier@gmail.com>
33429
33430	Add generic test for functions which looks
33431	 inexact = MPFR_TOTO (rop, op, INTEGER, RND);
33432
33433	Add ceil(log2(size)) bits to initial precision to avoid
33434	committing in error for huge operands.
33435
334362005-03-30  Vincent Lefèvre  <vincent@vinc17.net>
33437
33438	Added a test (corresp. to the one added on 2005-03-25 in tpow_z.c).
33439
334402005-03-29  Vincent Lefèvre  <vincent@vinc17.net>
33441
33442	Reformatted code (GNU style, untabify...).
33443
334442005-03-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
33445
33446	Tiny update.
33447	Add group functions macros.
33448
33449	Replace test ('p <= i') by assertion ('p > i).
33450
334512005-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33452
33453	fixed bug in pow_ui (and pow_z): missing factor 2 in error bound
33454	fixed bug in gamma of negative integer
33455
334562005-03-25  Patrick Pélissier  <patrick.pelissier@gmail.com>
33457
33458	Add info.
33459
33460	Add new internal function for debugging reasons.
33461
33462	Forget to free x and y
33463
33464	Add failed regression test.
33465
33466	Improved version.
33467
33468	Undo previous change (I was wrong).
33469	Add new regression test.
33470
334712005-03-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
33472
33473	Fix wrong extimated precision.
33474	It is log2(n+2) ulps so that log2(log2(n+2)) bits!
33475
33476	Add checking.
33477
334782005-03-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33479
33480	added new test
33481
334822005-03-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
33483
33484	Remove an signed integer trap overflow (GCC 4 + '-ftrapv').
33485
33486	Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1
33487
33488	Reduce the threshold for AMD64.
33489
334902005-03-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
33491
33492	Initial version of Short Division.
33493
33494	Fix bug on HP-UX.
33495	longlong's umul_ppmm seems to be buggy on such a system.
33496	Don't use it under HP-UX.
33497
334982005-03-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
33499
33500	Add case where bn == 1 and bn == 2 by using longlong.h.
33501	Modify tuneup to start with prec=2*BITS_PER_MP_LIMB+1
33502	Fix bug in computing the estimated precision when you switch from N limbs to N+1 limbs.
33503	Add regression tests.
33504
335052005-03-19  Vincent Lefèvre  <vincent@vinc17.net>
33506
33507	Typo.
33508
335092005-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33510
33511	added one efficiency item
33512
335132005-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33514
33515	added two property-tests
33516
335172005-03-17  Vincent Lefèvre  <vincent@vinc17.net>
33518
33519	Fixed a bug for mpfr_atanh(x) with 1 < |x| < 2 (found by Matt Reddick).
33520
335212005-03-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33522
33523	Update
33524
33525	Improve test: compare between mpfr_round_p and mpfr_can_round.
33526
33527	Replace mpfr_can_round (..., GMP_RNDN, GMP_RNDZ, ...) to fast replacement
33528	mpfr_round_p.
33529
33530	Remove a FIXME.
33531
33532	Add new internal function mpfr_round_p which is a fast replacement
33533	to mpfr_can_round (x, y, GMP_RNDN, GMP_RNDZ, ...)
33534
33535	Improve an error message.
33536
335372005-03-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
33538
33539	Fix bug: tmp may have changed in mulhigh code.
33540	Restore it before calling mpn_mul.
33541
335422005-03-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
33543
33544	Better defaults threshold.
33545
33546	Handle case where Prec(a) ~ estimated prec of mulhigh.
33547	Add one extra limb, and still uses mulhigh.
33548
33549	Fix bug: compute Mulder Threshold from n/2+1 instead of (n+1)/2
33550
33551	Forget ';;' in switch.
33552
33553	Add '-v' for tuneup.
33554
33555	Add assertion.
33556
33557	Improve checking
33558	Add test. Short Mulder product failed for this.
33559
33560	Improve full assertion mode (Check mpfr_mul).
33561
335622005-03-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
33563
33564	Move GLIBC detection from mpfr-impl to logging.c
33565
33566	Add log info.
33567
33568	Improve default threshold.
33569
33570	Add Mulder Short product for mpfr_mul.
33571	Update algorithm.tex to describe the estimated error.
33572
33573	Add an assert.
33574	Cosmetic change.
33575
33576	Update default values.
33577
33578	Clean up macro namespace.
33579
33580	Cosmetics change.
33581
335822005-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33583
33584	new function mpfr_get_f
33585
335862005-03-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
33587
33588	Fix bug in case of reuse of variable (a,b,a) with Exp(b)=Exp(a)+Prec(b).
33589	Move copy of mantissa after test.
33590
335912005-03-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
33592
33593	Add tune for mpfr_mulhigh
33594	Add --with-mulhigh-size option at configure time.
33595
335962005-03-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33597
33598	Fix bug due to wrong estimation of (get_d (x) / LOG2).
33599	TODO: Rexamine the algorithm of mpfr_exp_2!
33600
33601	Transform DEBUG message to LOG message.
33602
33603	Improve it.
33604
33605	Tune mpfr_exp_2 now!
33606
336072005-03-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
33608
33609	Fix bugs.
33610
33611	Update it.
33612	New code for mpfr_mul.
33613
336142005-03-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
33615
33616	Add new default threshold for different CPU.
33617
33618	Update for tune.
33619
33620	Fix bug in estimated error (See previous ChangeLog).
33621
336222005-02-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
33623
33624	Add tune program for MPFR.
33625	Do make tune instead of make.
33626	BUT you need to have configure MPFR with --with-gmp-build=...
33627	(It uses internal libspeed.la of GMP).
33628	Tuning is slow...
33629
33630	Add note.
33631
336322005-02-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
33633
33634	Tiny optimization
33635
33636	Update
33637
33638	Add logging.
33639
33640	Reduce InterObject dependency by moving mul_si, div_si and si_div
33641	to the unique function they used.
33642	Improve mul_ui by inlining the rounding.
33643
336442005-02-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
33645
33646	Improve test to 1.
33647
336482005-02-21  Vincent Lefèvre  <vincent@vinc17.net>
33649
33650	Updated copyright lines.
33651
33652	Code reindented / reformatted.
33653
33654	Fixed a bug for u == 0 and x == +0 introduced in ui_sub.c 1.23,
33655	when 0 was taken into account as a special case: the sign of the
33656	result 0 was incorrect. -> Consider the case u == 0 first.
33657
336582005-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33659
33660	added generic tests in tpow
33661
336622005-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33663
33664	fixed bug (variable used twice for different things)
33665
33666	more changes for interface with NTL
33667
336682005-02-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
33669
33670	Likely a test.
33671
33672	Update
33673
336742005-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33675
33676	added interface for NTL
33677
336782005-02-16  Vincent Lefèvre  <vincent@vinc17.net>
33679
33680	Update.
33681
33682	Suppress some spaces.
33683
336842005-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
33685
33686	Reenable underflow tests.
33687
33688	Update
33689
336902005-02-16  Vincent Lefèvre  <vincent@vinc17.net>
33691
33692	Removed texinfo.tex, as it can be installed by autoreconf -i.
33693
336942005-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
33695
33696	Fix LOADLIBES so that it works (it doesn't due to libtool change). But it
33697	still needs to have s static version of MPFR.
33698
336992005-02-16  Vincent Lefèvre  <vincent@vinc17.net>
33700
33701	autoreconf -> autoreconf -i
33702
337032005-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
33704
33705	Fix wrong integer types.
33706
337072005-02-16  Vincent Lefèvre  <vincent@vinc17.net>
33708
33709	Spelling mistakes & reformatted code.
33710
337112005-02-15  Vincent Lefèvre  <vincent@vinc17.net>
33712
33713	Reformatted code.
33714
337152005-02-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
33716
33717	Improve initial prec.
33718
33719	Remove code.
33720	Add special case if t=1.
33721
33722	mpfr_set doesn't produce an EVEN inexact flag.
33723	Fix this.
33724
33725	USe of mpfr_nexttozero.
33726
33727	Fix bug: use x instead of xf in LOG.
33728
33729	Log input and output of functions.
33730
33731	Fix bug of overflow in tan.
33732
33733	Use of MPFR_LOG_FUNC.
33734
33735	Do not print final log message if there was no call.
33736
33737	Add ZivLoop for sign
33738
337392005-02-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33740
33741	Fix bug: during the display of a logged var, logging is turn off.
33742
33743	Add MPFR_LOG_FUNC
33744	Use mpfr_cos as testing example.
33745
33746	Add ZivLoop controller for constantes.
33747	Augment exponent range in the cache.
33748	Remove it in const_pi.
33749
33750	Add generic ZivLoop controller.
33751
337522005-02-14  Laurent Fousse  <laurent@komite.net>
33753
33754	Document mpfr_sum returned int value.
33755
337562005-02-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33757
33758	Clean up code.
33759	Add generic ZivLoop controller.
33760
337612005-02-14  Laurent Fousse  <laurent@komite.net>
33762
33763	Consider return value's precision for rounding in mpfr_sum.
33764
337652005-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33766
33767	removed garbage
33768
337692005-02-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33770
33771	Clean up
33772	Add ZivLoop
33773
33774	Remove malloc/free.
33775	Use of MPFR_INT_CEIL_LOG2
33776	Add ZivLoop controller.
33777
33778	Clean up code.
33779	Fix bug with Exponent range.
33780	Add ZivLoop controller.
33781
33782	Cleanup code.
33783
337842005-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33785
33786	further efficiency improvement (avoid mpz_init/mpz_clear)
33787
337882005-02-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
33789
33790	Add ZivLoop controller.
33791	Clean up code.
33792	Optimize it by removing the # of used vars.
33793
33794	Add ZivLoop controller.
33795
337962005-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33797
33798	new faster algorithm for log(2)
33799
338002005-02-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
33801
33802	Remove detection of C++ and Fortran due to libtool.
33803	----
33804	Note (VL, 2010-02-08): this removal by an always false test was working
33805	with libtool 1.5.26, but doesn't work with libtool 2.2 to 2.2.6b (used
33806	by the MPFR 2.4.{0,1,2} tarballs).
33807	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568520
33808
33809	Clean up configure (simpler).
33810	Still a bug with CXXCPP to solve.
33811
33812	Clean up const_log2 code.
33813
338142005-02-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
33815
33816	Add log for other functions.
33817	Add ZivLoop too.
33818	Cleanup exp3.
33819
338202005-02-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
33821
33822	Update for ICC (disable shared since it doesn't work).
33823
33824	The previous fixs don't work. New one which works but is VERY ugly.
33825
33826	Fix again to avoid fail on laurent5...
33827
33828	Set CXXCPP to "g++ -E" to avoid detection (which may fail on some systems).
33829
33830	Reduce the tested compiler for C++ and Fortran to the minimum.
33831
33832	Update GMP detection to be much more libtool compatible.
33833	As a consequence some tests using AC_RUN_IFELSE may fail due to ugly things
33834	like LD_LIBRARY_PATH no set or wrong selection of libgmp.
33835	So they just produce a warning, not a fatal error.
33836	TODO: Check if we can avoid those problems...
33837
338382005-02-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
33839
33840	Remove automake and libtool files.
33841	Use `automake --add-missing --copy -i` to generate them.
33842
33843	Add support for ansi2knr
33844
33845	Add support for Shared Library in MPFR (both Unix and Windows) by using libtool.
33846	Improve configure (remove unused macros, make dist produce .zip and .bz2)
33847	Update update-version to modify configure.in too.
33848
33849	Update NEWS.
33850
338512005-02-04  Vincent Lefèvre  <vincent@vinc17.net>
33852
33853	Update.
33854
338552005-02-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
33856
33857	Add forgotten functions to reuse test.
33858
33859	Improve reuse tests (Include 1, -1, 1/2, 2, PI and PI/2 now).
33860
33861	Fix bug of atan(-1) (wrong sign).
33862
338632005-02-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
33864
33865	Remove unused option --disable-cache.
33866
33867	Add option "thread-safe" to configure.
33868	Limited to use with GCC and ICC (using extension __thread).
33869
33870	Add description of added functions.
33871
33872	mpfr.h doesn't export anymore any globals.
33873	It doesn't define MPFR_FLAGS too.
33874
33875	Change user interface for mpfr_const_pi, mpfr_const_log2 and
33876	mpfr_const_euler. No more access to the cache itself.
33877	Create dummy functions which call the cache, and rename old
33878	functions to "_internal".
33879	Internally, it doesn't change at all (You still call directly
33880	the cache instead of the dummy function which calls the cache).
33881
33882	Add functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_erangeflag,
33883	mpfr_set_inexflag, mpfr_set_nanflag
33884
33885	Rename internal functions mpfr_set_overflow in mpfr_overflow and
33886	 mpfr_set_underflow in mpfr_underflow so that we can add new functions
33887	mpfr_set_underflow and mpfr_set_overflow (which set the global flags).
33888
33889	Add support for logging.
33890	Add support for ZivLoop.
33891	Improve efficiency if prec(op) >> prec(rop), and rop ~= 0
33892
33893	Fix wrong place for MPFR_LOG_BEGIN.
33894
33895	Rename MPFR_LOG_BADCASE in MPFR_LOG_ZIV
33896
33897	Reduce the size of some lines (more than 80 chars).
33898
338992005-02-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
33900
33901	Fix again. My previous fix was incorrect.
33902
33903	Fix wrong order of include system files.
33904	(printf.h is not available everywhere).
33905
339062005-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33907
33908	inexact flag was inexact :-)
33909
339102005-02-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
33911
33912	Move mpfr_nexttozero and mpfr_nexttoinf from static to mpfr-impl.
33913	Use them in sub1 and sin.
33914
33915	Add forgotten logging file.
33916	Add description of new macros in README.dev
33917
33918	Add support for ZivLoop controller and logging.
33919
33920	Add experimental logging feature.
33921	Add ZivLoop controller.
33922
33923	Forget that mpf doesn't have mpf_free_str.
33924	Fix this.
33925
33926	Fix bug of sub1 if dest=src2 and src1 >> src2
33927	=> Fix problem of mpfr_sin
33928
339292005-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33930
33931	added two tests
33932
339332005-02-01  Patrick Pélissier  <patrick.pelissier@gmail.com>
33934
33935	Now MPFR tries to get GMP's CC and CFLAGS from its build directory.
33936
33937	Add AC_COPYRIGHT
33938	Clean up AC_ARG_ENABLE handling
33939	Add `--enable-logging` option.
33940
339412005-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33942
33943	added item
33944
339452005-01-31  Patrick Pélissier  <patrick.pelissier@gmail.com>
33946
33947	Fix a wrong assertion when double == long double.
33948
33949	Add loop counter
33950	Check if the result is 0 (Due to new algorithm, it may be 0)
33951	and in that case, increase a lot the precision.
33952
339532005-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33954
33955	changed algorithm for mpfr_sin (to get inexact flag)
33956
339572005-01-29  Vincent Lefèvre  <vincent@vinc17.net>
33958
33959	Fixed a sign bug in mpfr_exp (found by Mark J Watkins).
33960
339612005-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33962
33963	solved efficiency problem in mpfr_sin_sign for x near Pi
33964
339652005-01-28  Vincent Lefèvre  <vincent@vinc17.net>
33966
33967	Removed tests/tdump.c (was no longer used and mpfr_dump is already
33968	tested in toutimpl.c).
33969
33970	Updated copyright line.
33971
339722005-01-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
33973
33974	Clean up code (due to mix with Paul changes).
33975
33976	Improve inexact code since sin & cos can't be exact if x != 0
33977
339782005-01-28  Vincent Lefèvre  <vincent@vinc17.net>
33979
33980	Removed a useless test in macro MPFR_UNSIGNED_MINUS_MODULO.
33981
339822005-01-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
33983
33984	Much faster worst case (ie result near 0 or 1).
33985
339862005-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
33987
33988	speed-up special case where approximation is 1 or -1
33989
339902005-01-28  Vincent Lefèvre  <vincent@vinc17.net>
33991
33992	Updated comments about the rounding modes.
33993
339942005-01-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
33995
33996	Fix bug and optimize code.
33997
33998	FIx a warning (Wrong proto between declaration and implementation :
33999		forget some const).
34000
340012005-01-28  Vincent Lefèvre  <vincent@vinc17.net>
34002
34003	Updated copyright line.
34004
34005	Updated copyright lines.
34006
340072005-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34008
34009	fixed efficiency problem in case of cos(Pi)
34010
340112005-01-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
34012
34013	Fix bug if dest==src.
34014	Transform some MPFR_ASSERTN to MPFR_ASSERTD.
34015
340162005-01-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
34017
34018	Fix a buffer overflow.
34019
34020	New version of mpfr_set_ld and mpfr_get_ld for IEEE Extended Little Endian.
34021	(Due to problem on x86 with extended precision).
34022
340232005-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34024
34025	partially fixed memory leak
34026
34027	test for huge cancellation was misplaced
34028
34029	fixed memory leak
34030
34031	fixed inefficiency problem for x near from Pi
34032
34033	casts to allow compilation with g++
34034
34035	added missing cast
34036
34037	added missing casts
34038
340392005-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34040
34041	fixed bug (overlap in mpn_divrem)
34042
340432005-01-24  Vincent Lefèvre  <vincent@vinc17.net>
34044
34045	Removed tests/Makefile.in from CVS.
34046
340472005-01-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
34048
34049	Fix bug reported by Eric Buchlin by using new function
34050	mpfr_pow_z.
34051
34052	Add new function mpfr_pow_z and its test file.
34053
34054	Fix overflows problems.
34055	Clean up overflow handling.
34056	Maybe some bugs remain...
34057
340582005-01-24  Vincent Lefèvre  <vincent@vinc17.net>
34059
34060	Update.
34061
340622005-01-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
34063
34064	Add an explicit reference to mpfr_dump so that
34065	you can use this function inside the tests with GDB, even if
34066	you don't use it in the tests.
34067
340682005-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34069
34070	added check before mpz_get_si() call
34071
340722005-01-24  Vincent Lefèvre  <vincent@vinc17.net>
34073
34074	Update.
34075
34076	Corrections on the typography.
34077
34078	Corrected English usage.
34079
34080	Typos.
34081
340822005-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34083
34084	added LOADLIBES=...
34085
340862005-01-21  Vincent Lefèvre  <vincent@vinc17.net>
34087
34088	Updated Copyright line.
34089
340902005-01-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34091
34092	Fix again this previous patch!
34093
340942005-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34095
34096	fixed problems in get_str for huge exponent
34097
340982005-01-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34099
34100	Update longlong from GMP 4.1.4 (problem with opteron).
34101
341022005-01-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34103
34104	Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse).
34105
341062005-01-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
34107
34108	Add comments
34109	Fix bug in my patch (Need tests).
34110
34111	Optimize mpfr_atan_aux by removing all power of 2 in the sum to
34112	reduce the size of the multiplication, normalize the input to extract
34113	as many zeros as possible and add a special case if the input is 1
34114	(after normalisation). But it doesn't optimize too much...
34115	I need to invertigate a few more too understand what is still costly.
34116	It seems that mpz_mul is the most called function.
34117
34118	Improve and fix tanh for big floats.
34119
34120	Fix bug in some corner case (Just hope it doesn't add new bugs).
34121	It should be much faster in these cases too.
34122
34123	Remove warning
34124
34125	Tiny update
34126
34127	Fix bug (Forget a debug line).
34128
341292005-01-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
34130
34131	Fix overflow bug
34132	Optimize code
34133
34134	Fix bug in mpn_sub_nc in case the compiler optimize too much.
34135
341362005-01-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
34137
34138	Add forgotten 2005 copyright line.
34139
34140	Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a
34141	 (Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC)
34142	Add MPFR_LOG2_BIT_PER_MP_LIMB macro
34143
34144	Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!)
34145	Minor optimization of mpfr_acos
34146
341472005-01-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
34148
34149	Fix typo
34150
34151	Reduce size of code
34152	Optimize a few too.
34153
34154	Forget 2005 !
34155
34156	Improve and fix detection of NAN and GCC bug.
34157
341582005-01-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
34159
34160	new version (completely rewritten) by Paul Zimmermann.
34161
34162	Fix forgotten '2005' Line.
34163
34164	Fix wrong inexact value (regression).
34165	FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much
34166	 (since previously it always add 0, but the results were quite
34167	  always exact - this bug was only discovered under rare case).
34168
341692005-01-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34170
34171	added item (mpfr_printf)
34172
341732005-01-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
34174
34175	Optimize mpfr_exp2 by inlining some code, and by avoiding using
34176	mpz_sizeinbase.
34177
34178	Remove unused code.
34179	Remove _MPFR_PROTO for static functions.
34180	Other cosmetic change.
34181
34182	Remove _MPFR_PROTO for static functions.
34183
34184	Remove unused code.
34185
34186	Optimize mpfr_get_d.
34187
34188	Add a new configuration to check before releasing MPFR.
34189
34190	Fix problem of tab with ncurses.
34191
34192	Likely some tests
34193
34194	Fix bug if not gmp-impl.h (mpn_sub_nc is internal).
34195	Move MPFR_SET_EXP after checking the exponent range.
34196	Minor change in the way to return the ternary value.
34197
341982005-01-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34199
34200	changed tab[] into *tab (and removed 'tab' in mpfr.h)
34201
342022004-12-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34203
34204	new version (completely rewritten)
34205
34206	improved coverage (and fixed bug)
34207
342082004-12-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
34209
34210	Fixed errors reported by Nelson H. F. Beebe
34211	(forget to include sys/fpu.h if defined and math.h if std=c99).
34212
342132004-12-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34214
34215	Fix wrong integer type and a test.
34216
34217	Add some assertion.
34218
34219	Unlikely one test.
34220	Fix wrong integer type
34221
34222	Reindent the code.
34223
342242004-12-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
34225
34226	Optimize mpfr_tan
34227
34228	Optimize the computing of the sign of sinus if GET_EXP(x) < 0
34229
34230	Optimize mpfr_cos.
34231	From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron).
34232
34233	Fix precision used to test long double.
34234	Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113.
34235
34236	FIx wrong integer types
34237	Add an assertion.
34238
34239	Likely / Unlikely some code.
34240
34241	Fix problem with long double with ICC (Wrong x86 processor flag).
34242
342432004-12-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
34244
34245	Fix wrong integer types.
34246
34247	Fix bug.
34248
34249	Optimize mpfr_acos by choosing a better initial precision.
34250
34251	Optimize mpfr_asin by improving the choice of the initial precision.
34252
34253	Optimize mpfr_atan.
34254
342552004-12-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
34256
34257	Fix problem with GCC 4.0 20041212.
34258
34259	Remove thread attribute until I found a good way to use it.
34260
34261	Test
34262
34263	Add 'const' attribute to table.
34264
34265	Remove unused file.
34266
34267	New way of detecting GMP libraray, which should be more portable.
34268
342692004-12-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
34270
34271	Remove useless assembly code.
34272
34273	Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link
34274	directly with MPFR functions rather than using Macros to access
34275	them. It doesn't define MPFR variable inside mpfr.h too.
34276	Fix set.c and cmp.c in consequences.
34277	Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed.
34278
342792004-12-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
34280
34281	Improved prototype.
34282
34283	Fix bug of overflow (I hope).
34284
34285	Update mpfr_set_q overflow problem.
34286
34287	Fix wrong integer types.
34288
342892004-12-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
34290
34291	Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec)
34292
34293	Clean up code (Fix integer types + rewrite some code).
34294	Optimize the code by reducing the number of used variables inside the loop.
34295
34296	Replace mpfr_neg to MPFR_CHANGE_SIGN.
34297
34298	Cosmetic changes.
34299
34300	Clean the code.
34301	Avoid mixing integer types.
34302	Fix bug of overflow if Pi is in the range but not Pi/2.
34303
34304	Clean up the code (Removing useless variables and avoid mixing wrong integer types).
34305	Optimize the code by improving memory allocation scheme and by incrementating by
34306	BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec).
34307	Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2).
34308
343092004-12-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
34310
34311	Simplify MPFR_SIGN by removing unnecessary ( ).
34312
34313	Add support for new attribute sentinel in incoming GCC 4.0
34314
34315	Optimize initial precision in case of EXP(x) < 0.
34316
34317	Optimize mpfr_set4.
34318	Inline rounding in mpfr_set4 and mpfr_cache
34319	mpfr_set4 doesn't return MPFR_EVEN_INEX (It was undocumented before).
34320	Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1).
34321	Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support
34322
343232004-12-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
34324
34325	Optimize mpfr_mul by inlining and rewriting the rounding.
34326	It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP
34327	improves its performance (But it decreases it on Pentium4)...
34328
343292004-12-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34330
34331	first try to implement Mulders' algorithm
34332
343332004-11-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
34334
34335	Update TODO.
34336
343372004-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34338
34339	added new tests for corner cases
34340
34341	added algo for pi
34342
343432004-11-25  Patrick Pélissier  <patrick.pelissier@gmail.com>
34344
34345	Change initial term if exp(a)<0.
34346
34347	Simplify the inner loop.
34348
34349	Change initial precision if EXP(op) < 0.
34350
343512004-11-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
34352
34353	Optimize code and rewrite the rounding part.
34354	FIXME: It seems that the previous rounding code was buggy. Still I am not sure.
34355
34356	Improve tests.
34357
343582004-11-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
34359
34360	Improve the initial value of prec: 10% improvement (?) on average.
34361
34362	Improve coverage test.
34363
34364	Fix bug for mpfr_ui_pow_ui (Wrong inexact flag).
34365
34366	Improve coverage tests.
34367
34368	Fix typos in INSTALL.
34369	Sort README.dev, and add a new section about How to write a MPFR function.
34370	Add a link to README.dev in mpfr-impl.h.
34371
34372	Fix a bug on some compilators:
34373	 First MPFR_SAVE_EXPO_DECL, then TMP_DECL.
34374
343752004-11-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34376
34377	Fix an overflow bug.
34378
34379	Fix bug with inexact flag.
34380	FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ?
34381
34382	Remove mpfr_save_emin_emax and mpfr_restore_emin_emax
34383	from MPFR library since they are useless.
34384
34385	Forget to remove rndraw.c test.
34386
34387	Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax()
34388	by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster
34389	and thread safe.
34390
34391	Enable fast computing.
34392
343932004-11-18  Vincent Lefèvre  <vincent@vinc17.net>
34394
34395	Fix: GMP -> MPFR Copying Conditions (noted by Patrick).
34396
343972004-11-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34398
34399	Reorder the file and put sections to make it cleaner and more readable.
34400
34401	Reduce number of used variables.
34402	Optimize code and clean it.
34403
344042004-11-18  Vincent Lefèvre  <vincent@vinc17.net>
34405
34406	In HTML, suppress the non-existing link to GMP.
34407
344082004-11-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34409
34410	Add a prototype of own TMP_ALLOC. Don't know if it is a good idea.
34411	To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC.
34412
344132004-11-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
34414
34415	Fix bug with TMP_MARK.
34416
344172004-11-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
34418
34419	Optimize the code:
34420	 + Special case for n == 2
34421	 + The first squaring is done using the original input.
34422
34423	Add new assertion to check.
34424
34425	Likely / Unlikely some tests.
34426
344272004-11-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
34428
34429	Add unused code (Still needs a proof).
34430
34431	Add macro version for small functions:
34432	  mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode,
34433	  mpfr_get_default_prec and mpfr_set_ui
34434
34435	Refix another bug (The same).
34436
34437	Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2).
34438
344392004-11-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34440
34441	added algorithm for mpfr_sqrt
34442	improved algorithm for mpfr_div
34443
34444	use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++
34445
344462004-11-12  Vincent Lefèvre  <vincent@vinc17.net>
34447
34448	Bug fix: delayed all the initializations after the singular test.
34449
344502004-11-11  Vincent Lefèvre  <vincent@vinc17.net>
34451
34452	Untabified the source.
34453
34454	The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary
34455	since we decided to lower MPFR_EMAX_MAX to avoid such tests.
34456
344572004-11-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
34458
34459	Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal.
34460	Add MPFR_LIMB_ZERO.
34461
344622004-11-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34463
34464	new simpler and faster code
34465
344662004-11-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
34467
34468	Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible.
34469
34470	Add __extension__ to avoid warning useless in GCC.
34471
344722004-11-03  Vincent Lefèvre  <vincent@vinc17.net>
34473
34474	Update.
34475
344762004-11-03  Patrick Pélissier  <patrick.pelissier@gmail.com>
34477
34478	Fix wrong Visual C++ code.
34479
344802004-11-02  Vincent Lefèvre  <vincent@vinc17.net>
34481
34482	Code checking for GMP library wasn't working (always returning "yes"?).
34483
344842004-10-27  Vincent Lefèvre  <vincent@vinc17.net>
34485
34486	Updated copyright line.
34487
34488	Added a bug and updated copyright line.
34489
34490	Update.
34491
34492	Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for
34493	Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so
34494	that infinities are no longer used (this should fix a part of
34495	the problem for Visual C++). If IEEE 754 is not supported, one
34496	should probably use the standard INFINITY macro instead of
34497	(1.0/0.0), since (1.0/0.0) is specific to IEEE 754.
34498
34499	Applied patch by Steve M. Robbins for non-IRIX MIPS systems
34500	(originally for MPFR 2.0.3).
34501
345022004-10-26  Vincent Lefèvre  <vincent@vinc17.net>
34503
34504	Reformatted the code.
34505
34506	Replaced mpfr_set_emin/emax by set_emin/emax in tests to check
34507	the return value; defined set_emin/emax in "tests/tests.c".
34508	Fix: added missing #include <string.h> in "tests/tests.c".
34509	Removed variable names in prototypes in "mpfr-test.h".
34510
345112004-10-22  Vincent Lefèvre  <vincent@vinc17.net>
34512
34513	Reformatted the code -> GNU style.
34514
34515	Update.
34516
345172004-10-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
34518
34519	Declaration of "tests_rand_start" and "tests_rand_end" with the same storage class specifier
34520	in tests.c (static missing line 65 and 109).
34521
345222004-10-21  Vincent Lefèvre  <vincent@vinc17.net>
34523
34524	Bug fixed: cast to unsigned char instead of int for isspace (no,
34525	these are not "psycho" systems, just systems with signed chars).
34526	Untabified the source.
34527
345282004-10-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34529
34530	Improve ICC CFLAGS by removins meaningless warnings.
34531
34532	Remove some warnings on some "psycho" systems.
34533
34534	Update the chapter "Make a release".
34535
34536	Fix bug when you build MPFR outside source directory.
34537	Add function src_fopen to open a file in the source directory, which
34538	may be different from the current directory.
34539
34540	Fix a typo.
34541
345422004-10-19  Vincent Lefèvre  <vincent@vinc17.net>
34543
34544	Another correction (English).
34545
34546	Minor correction.
34547
345482004-10-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
34549
34550	Update NEWS to reflect the change in mpfr_set_str.
34551
34552	Update mpfr_set_str to be much more like strtofr.
34553	Update the documentation to reflect the changes.
34554
345552004-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34556
34557	changed contributors section
34558
345592004-10-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
34560
34561	Add a line about binary compatibility.
34562
345632004-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34564
34565	changed "contributors" section
34566
34567	changed rights (remove executable permission)
34568
345692004-10-18  Vincent Lefèvre  <vincent@vinc17.net>
34570
34571	Misc corrections:
34572	  + spelling mistakes
34573	  + consistency: in direction @var{rnd} -> in the direction @var{rnd}
34574	  + @code{NULL} pointer -> null pointer (as in the C standard)
34575	  + in the example for mpfr_inits2 / mpfr_clears: NULL -> (void *) 0
34576	    as NULL isn't necessarily a pointer.
34577
345782004-10-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34579
34580	Update
34581
34582	Change "unsigned int" to "int" for base in proto of strtofr.
34583	Change set_str to use strtofr (Fix a bug too).
34584	Limit base to 36 in strtofr (since get_str is limited to 36).
34585	Update documentation to reflect the changes.
34586	mpfr_get_d1 is moved to section internal in the documentation.
34587	Update the tests.
34588
34589	Hard code NAN, +INF and -INF values for MVC.
34590
34591	Fix problem on systems where "/dev/null" doesn't exist.
34592
345932004-10-16  Vincent Lefèvre  <vincent@vinc17.net>
34594
34595	Misc corrections.
34596
345972004-10-15  Vincent Lefèvre  <vincent@vinc17.net>
34598
34599	Updated the section "To make a release".
34600
34601	Updated the version on the trunk.
34602
34603	Update.
34604
34605	Update for 2.1.0.
34606
346072004-10-13  Vincent Lefèvre  <vincent@vinc17.net>
34608
34609	Added a comment about autoreconf and a bug in Debian (now fixed).
34610
346112004-10-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
34612
34613	Add a note about Windows 64.
34614
346152004-10-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
34616
34617	Update documentation.
34618
34619	Improve Windows installation.
34620
34621	Add a line about "near" and "far".
34622
346232004-10-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
34624
34625	Add support for ".lib" since it seems to work.
34626	Display GMP version inside the configure.
34627
346282004-10-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34629
34630	added one new test
34631
346322004-10-04  Vincent Lefèvre  <vincent@vinc17.net>
34633
34634	Added worst cases.
34635
346362004-10-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34637
34638	added new tests (worst-case)
34639
346402004-10-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34641
34642	added new worst-cases (directed rounding)
34643
34644	added new function to implement (dilog)
34645
346462004-09-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34647
34648	fixed bug in get_str_aux when one extra digit
34649
346502004-09-30  Vincent Lefèvre  <vincent@vinc17.net>
34651
34652	Added functions mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil,
34653	mpfr_rint_floor.
34654
346552004-09-30  Patrick Pélissier  <patrick.pelissier@gmail.com>
34656
34657	Add new test (One failed).
34658
346592004-09-30  Vincent Lefèvre  <vincent@vinc17.net>
34660
34661	The cast to uintmax_t wasn't really useful, so I removed it.
34662	Added a comment.
34663
34664	The real fix for sizeof(intmax_t) == sizeof(mp_limb_t).
34665
346662004-09-30  Patrick Pélissier  <patrick.pelissier@gmail.com>
34667
34668	Fix a bug if sizeof(intmax_t) == sizeof(mp_limb_t)
34669
346702004-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34671
34672	added worst-case
34673
346742004-09-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
34675
34676	cmp(x,y) if x=NAN or y=NAN returns 0 and erange flag.
34677
34678	Update documentation and NEWS to reflect new functions
34679	and functionality.
34680
34681	Improve assertion.
34682
34683	Add mpfr_clear_erangeflag and mpfr_erangeflag_p.
34684	Add test for theses two functions.
34685	mpfr_get_[s/u][i/j] have a deterministic behavior in case of OVERFLOW.
34686	(Return the MINIMUM or the MAXIMUM in the current type, and set
34687	ERANGE_flag).
34688
34689	Add mpfr_uintmax_p and mpfr_intmax_p.
34690
34691	Update INSTALL about C++
34692	Update TODO and VERSION.
34693
34694	Move mpfr_inits from mpfr-impl to mpfr.h.
34695	Add doc too.
34696
346972004-09-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
34698
34699	Reindent the sources (again).
34700
34701	Fix how to detect overflow so that it can be build with GCC -ftrapv
34702	option without any bugs (In the previous code, the overflow was
34703	detected afterwards, whereas, now, it is detected before).
34704	Fix also another real problem of overflow (Addition of two signed integers).
34705
34706	Rename this variable again.
34707
34708	Replace variable 'near' to 'the_real_near' since MSVC incorrectly
34709	recognize "far" and "near" as obsolete keywords (100% incorrect, and
34710	clearly MSVC fault but it doesn't cost many things to change the name).
34711
347122004-09-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
34713
34714	Fix typo in the documentation about get_ functions.
34715
34716	Retab the sources.
34717
347182004-09-27  Vincent Lefèvre  <vincent@vinc17.net>
34719
34720	Added mpfr_get_uj and mpfr_get_sj in the changes 2.0.3 -> 2.1.0.
34721
34722	Added an item about the future MPFR_FLAGS_ERANGE flag.
34723
34724	New functions mpfr_get_sj and mpfr_get_uj, with tests.
34725
347262004-09-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
34727
34728	Remove MPFR_NEED_LONGLONG_H macro.
34729
347302004-09-26  Vincent Lefèvre  <vincent@vinc17.net>
34731
34732	Added a cast to avoid an integer overflow.
34733
347342004-09-24  Vincent Lefèvre  <vincent@vinc17.net>
34735
34736	Fixed integer overflow.
34737
34738	Fixed bugs (like those in mpfr_get_ui).
34739
34740	The standard autoreconf script should now be used instead of prepare.
34741
347422004-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34743
34744	forgot to check for 0
34745
34746	now use mpfr_rint()
34747
347482004-09-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
34749
34750	Update doc of mpfr_get_str (Minimum space is 7).
34751
347522004-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34753
34754	fixed double-rounding bug in get_ui
34755
347562004-09-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
34757
34758	Prevent from multiple inclusion.
34759	mpf_init inits to 0 rather than NAN.
34760
34761	Fix some tiny problems.
34762
347632004-09-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34764
34765	added item on rounding to odd
34766
347672004-09-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
34768
34769	Fix a bug in FreeBsd 5.20 / Alpha / Gcc 3.3.3.
34770	Not a MPFR bug, but add some code to avoid it.
34771	Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=72024
34772
34773	Add a new test and clarify a comment.
34774
34775	Update Assertion for pow2.
34776
347772004-09-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34778
34779	Update NEWS.
34780
34781	Update TODO due to new function mpfr_strtofr
34782
34783	Add ICC detection && support.
34784	Remove some potential warnings in the test files.
34785
34786	Add mpfr_strtofr function.
34787	Add mpfr_strtofr test file.
34788	Add mpfr_strtofr documentation.
34789
34790	Improve GMP.h vs libgmp.a version checking.
34791
347922004-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34793
34794	added one entry (new function 1/sqrt(x))
34795
347962004-09-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
34797
34798	Use LIBS instead of LDADD for libraries (GMP).
34799
34800	Min GMP version is 4.1.0 now.
34801
348022004-09-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
34803
34804	Add a check if both gmp.h and libgmp.a have the same version.
34805
34806	Fix a typo.
34807
348082004-09-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
34809
34810	Add a forgotten regression test "1.2.3"
34811
348122004-09-15  Vincent Lefèvre  <vincent@vinc17.net>
34813
34814	Update from the autotools-dev Debian package.
34815
34816	Update.
34817
348182004-09-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
34819
34820	Add 2 new macros for handling correctly overflow.
34821
348222004-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34823
34824	fixed bug (several '.' allowed in mantissa)
34825
348262004-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34827
34828	added notes for Windows
34829
348302004-09-02  Patrick Pélissier  <patrick.pelissier@gmail.com>
34831
34832	Add a line about Dynamic Version of MPFR.
34833
348342004-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34835
34836	added warnings about init functions (mpf wrt mpfr)
34837
348382004-08-31  Patrick Pélissier  <patrick.pelissier@gmail.com>
34839
34840	Update documentations.
34841
34842	Rename mpz_set_fr to mpfr_get_z.
34843	Provide a conditionnal macro for mpz_set_fr.
34844
34845	Add doc for mpfr_sqr.
34846
34847	Fix month.
34848
348492004-08-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
34850
34851	Add a new test to check overflow.
34852
348532004-08-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
34854
34855	Try to retype correctly the functions (replace int by the correct type).
34856	Still some works to do.
34857
348582004-08-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
34859
34860	Add description of what does MPFR_INT_CEIL_LOG2.
34861
34862	Move __gmpfr_isqrt and __gmpfr_cuberoot to another file.
34863	Clean up the code of mpfr_exp_2: remove DEBUG condition to use TRACE, ASSERT and DUMP.
34864	Use MPFR_INT_CEIL_LOG2 instead of __gmpfr_ceil_log2.
34865
34866	Improve a comment.
34867
34868	Add MPFR_INT_CEIL_LOG2 macro and __gmpfr_int_ceil_log2 function
34869	(don't use function but macro).
34870
34871	Fix 2 typos.
34872
348732004-08-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
34874
34875	Fix a bug on 64-bits introduced due to huger MPFR_EMAX_MAX.
34876
34877	Add new functions: mpfr_get_emin_min, mpfr_get_emax_max, mpfr_get_emin_max and
34878	mpfr_get_emax_min.
34879	Add documentation and explanation about potential portability problem when
34880	you mpfr_set_emin and mpfr_set_emax.
34881
348822004-07-28  Vincent Lefèvre  <vincent@vinc17.net>
34883
34884	Added mpfr-longlong.h to libmpfr_a_SOURCES so that it is distributed
34885	with make dist.
34886
34887	Added mpfr-gmp.h to libmpfr_a_SOURCES so that it is distributed
34888	with make dist.
34889
348902004-07-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
34891
34892	Add a new section.
34893
348942004-07-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
34895
34896	Add function mpfr_sqr (TODO: Make doc)
34897
348982004-07-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
34899
34900	Fix an unsigned/signed comparison.
34901
34902	Improve the emulation of mpn_sqr_n and fix some typos.
34903
349042004-07-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
34905
34906	Remove unused item "rnd_mode" in cache struct.
34907
34908	Renamme mpfr_version to mpfr_get_version to be more GMP compatible.
34909	Add macro mpfr_version.
34910
34911	Likely some tests.
34912
349132004-07-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
34914
34915	Add a speciliation for set_si for GCC.
34916
349172004-07-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
34918
34919	Try to optimize a few agm by rewriting a few the loop.
34920
34921	Likely / Unlikely some tests using gcov.
34922
349232004-07-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
34924
34925	Remove some unused code.
34926	Add MPFR_LMIB_PER_DOUBLE
34927	Add MPFR_DUMP
34928	Add MPFR_TRACE
34929
34930	Likely some tests.
34931
34932	Used static precision for the array of limb for double.
34933
34934	Likely some tests / Other minor optimisations.
34935
34936	Minor modifications.
34937
34938	Unlikely a test so that it is faster when you call theses functions
34939	with the same dest and source which is the common case in MPFR.
34940
34941	Likely a test to optimize when dest and src are the same
34942	(which is very likely inside MPFR).
34943
34944	Likely a test (since cache should always work fine).
34945
349462004-06-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
34947
34948	Add some likely, and use a static table instead of a dynamic one.
34949
349502004-06-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
34951
34952	Unlikely some tests.
34953
349542004-06-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
34955
34956	Likely / Unlikely the code.
34957
34958	Respace some macro.
34959
34960	Retab some lines.
34961
34962	Optimize a bit.
34963
34964	Fix an overflow bug.
34965
349662004-06-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34967
34968	fixed bug in mpfr_exp_3 (wrong assert)
34969
349702004-05-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
34971
34972	Fix typos.
34973
34974	Update doc.
34975
349762004-05-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34977
34978	fixed problem for x near from Pi/2 (the internal precision should take
34979	into account the cancellation)
34980
349812004-05-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
34982
34983	Improve tests for sin.
34984
349852004-05-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
34986
34987	mpfr_sin_sign() should use at least MPFR_GET_EXP() bits
34988
349892004-05-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
34990
34991	Remove an item.
34992
349932004-05-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
34994
34995	Add a potential test (Too slow).
34996
34997	Simplify the code.
34998
349992004-05-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
35000
35001	Remove a C++ comment.
35002
350032004-05-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
35004
35005	Remove a forgotten "assertd" which isn't useful anymore.
35006
350072004-05-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35008
35009	Optimize cos.
35010
350112004-05-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35012
35013	improved initial value of working precision (did not take into account
35014	2K lost bits for large  arguments)
35015
350162004-05-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
35017
35018	Fix overflow and add corresponding tests.
35019
35020	Fix a bug in a formula.
35021
35022	Optimize it a bit.
35023
35024	Fix overflow problems.
35025
35026	Fix overflow bug.
35027
350282004-05-05  Patrick Pélissier  <patrick.pelissier@gmail.com>
35029
35030	Remove the double vars. (Use fixed instead).
35031
35032	Add a note about tanh.
35033
35034	Fix a bug in cas of overflow in tanh.
35035
35036	Optimize a few by reducing the # of used vars.
35037
35038	Fix critical bugs due to different kind of overflow in cosh.
35039
35040	Add MPFR_TMP_INIT_ABS macro.
35041
35042	Optimize cosh a few by removing an unused intermedary var.
35043
35044	Fix a critical bug in case of overflow.
35045
350462004-05-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
35047
35048	Fix a critical bug in cos in case you have set the float range for the exponents.
35049
35050	Optimize a few cos.
35051
35052	Optimize the way of computing initial precision.
35053
35054	Add a test to check an overflow in const_pi (called by log in case of emulation of the float type).
35055
35056	Move to ASSERT mode some code.
35057
35058	Push/Pop emin/emax so that an overflow can't occur in mpfr_set_z(x,pi,r)
35059	Add test too.
35060
35061	Add some UNLIKELY to the while.
35062
35063	Add some UNLIKELY to the tests.
35064
35065	Fix an overflow bug in add1sp.
35066
350672004-04-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
35068
35069	Fix a typo in AC_MY_LIBS.
35070
350712004-04-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
35072
35073	Add mpfr_cmp as a real function, not only a macro.
35074
35075	Add mpfr_set and mpfr_abs as real functions.
35076
350772004-04-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
35078
35079	When using GCC, optimize certain common comparisons.
35080
350812004-04-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35082
35083	added one item
35084
350852004-04-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
35086
35087	Minor Optimizations.
35088
35089	Fix a bug (Use nextbeloz instead of sub_one_ulp).
35090
350912004-04-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
35092
35093	Add option in configure: --disable-cache
35094	to disable the use of the cache for the const.
35095
35096	Fix a typo.
35097
35098	Add preliminary generic code to handle cached const.
35099	Move const_pi, const_log2 to use this generic cache,
35100	which fix bugs of the previous implementation.
35101	const_euler is now cached too.
35102
35103	Fix a bug (If x = Nan, the new new precision wasn't set).
35104
35105	Fix a typo bug.
35106
351072004-04-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
35108
35109	Add new test about the cache: new bug to fix.
35110
35111	Add forgotten file for mpfr_zero_p.
35112
35113	Add mpfr_zero_p.
35114	Add macros for mpfr_inf_p, mpfr_nan_p and mpfr_zero_p.
35115	Add macro for mpfr_sgn.
35116	Update doc.
35117	Add new tests.
35118
35119	Fix a bug in a proto.
35120
35121	Fix a bug when both op are < 0 (It seems it was my fault).
35122	Add a test to check it.
35123
351242004-04-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
35125
35126	Fix a bug (Remove useless function).
35127
351282004-04-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
35129
35130	Fix another bug (Maybe the last?).
35131
35132	Fix a tiny bug.
35133
35134	Update memory allocations scheme without gmp-impl.h.
35135	Now the semantic of the memory allocation scheme is the same
35136	with and without gmp-impl, as it should be.
35137
351382004-04-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35139
35140	For add/sub_type functions where type is a type without signed zeros,
35141	specify the expected result when both operands are 0.
35142
35143	Modify a few the allocation scheme without gmp-impl.h
35144	Add pseudo-constants __MPFR_EXP_NAN, __MPFR_EXP_ZERO and __MPFR_EXP_INF
35145	for future (?) inlining of some functions.
35146
351472004-04-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35148
35149	fixed problem when overflow in destination exponent happens
35150
351512004-04-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35152
35153	Fix a bug in case a mpz_t == 0 (mpz_sizeinbase(0Z,2)==0 and MPFR_PREC_MIN=2).
35154
35155	Fix a bug in case of pow(2E1000000,-10);
35156
351572004-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35158
35159	fixed problem (cmpabs doesn't work for x=0)
35160
351612004-03-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
35162
35163	Change from MP_LIMB_T_ONE to MPFR_LIMB_ONE and/or MPFR_LIMB_MASK.
35164
35165	Improve comments.
35166
35167	Fix a bug.
35168
35169	Move detecting macros (__MPFR_GCC, __MPFR_STDC, __MPFR_GLIBC and __MPFR_GMP) from mpfr to mpfr-impl
35170
351712004-03-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35172
35173	removed blank
35174
351752004-03-22  Vincent Lefèvre  <vincent@vinc17.net>
35176
35177	Test write access to CVS.
35178
351792004-03-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
35180
35181	Fix a bug in a string.
35182
351832004-03-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
35184
35185	Add documentation of 'j' functions.
35186
35187	Fix (?) definition of MPFR_PREC_MAX.
35188
35189	Change the order of the tests.
35190
35191	Rename mpfr_exp3 in mpfr_exp_3.
35192	Update THRESHOLD for mpfr_exp.
35193	Add MPFR_EXP_THRESHOLD.
35194
351952004-03-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
35196
35197	Add new option "--with-gmp-build="
35198
35199	Update INSTALL
35200
35201	Fix a bug (Forget to cast to mp_exp_t).
35202
35203	Update comment
35204
35205	Add mpz_set_fr function and its test.
35206
352072004-03-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
35208
35209	Add new functions:
35210	 mpfr_set_sj_2exp, mpfr_set_sj
35211	 mpfr_set_uj_2exp, mpfr_set_uj
35212
35213	Fix a compiler bug (limb !=0 instead of limb).
35214
35215	Fix a cast problem on some systems (sizeof(mp_limb_t) > sizeof(unsigned long)).
35216
352172004-03-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
35218
35219	Remove use of abort (They can create core dump on some systems).
35220
35221	Fix bug of inexact flag for acos(0).
35222
35223	Update.
35224
352252004-03-11  Patrick Pélissier  <patrick.pelissier@gmail.com>
35226
35227	Fix bug about forgotten MPFR_INVERT_RND.
35228	Add test too.
35229
35230	Add doc about HAVE_STDINT_H
35231
352322004-03-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
35233
35234	Fix doc about MPFR_DECL_INIT.
35235
35236	Fix the declaration of 'MPFR_DECL_INIT'
35237
35238	Add 'MPFR_DECL_INIT' macro.
35239
35240	Rename NEAREST_AWAY in GMP_RNDNA.
35241
35242	Add the description of mpfr_set_ui_2exp and mpfr_set_si_2exp.
35243
352442004-03-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
35245
35246	Add mpfr_set_si_2exp and mpfr_set_ui_2exp and their tests.
35247
35248	Add doc about mpfr_cmp_f function
35249
35250	Add mpfr_cmp_f and its test.
35251
35252	Add mpfr_cmp_ld and its test
35253
35254	Add doc of 2 macros.
35255
35256	Add mpfr_cmp_ui and mpfr_cmp_si as real functions
35257	(The macros are still defined and used).
35258
35259	Add mpfr_add_si, mpfr_sub_si, mpfr_si_sub, mpfr_mul_si, mpfr_div_si and
35260	mpfr_si_div.
35261	Add the corresponding test.
35262
35263	Add `mpfr_cmp_q` and `mpfr_cmp_z`.
35264
35265	Clean up configure
35266
35267	Add ASSERT for NAN.
35268
352692004-02-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
35270
35271	Add documentation for MPFR_VERSION
35272
352732004-02-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
35274
35275	Optimize a few mpfr_mul.
35276
35277	Add Laurent Fousse in the AUTHORS file.
35278
352792004-02-26  Vincent Lefèvre  <vincent@vinc17.net>
35280
35281	Fixed a bug in check2b and added a test; add1.c coverage is now
35282	complete.
35283
352842004-02-25  Vincent Lefèvre  <vincent@vinc17.net>
35285
35286	Improved coverage.
35287
35288	Improved coverage.
35289
35290	Bugs fixed in a test function -> improved coverage.
35291
352922004-02-25  Patrick Pélissier  <patrick.pelissier@gmail.com>
35293
35294	Optimize mpfr_round_raw_?
35295
35296	Simplify the code.
35297
352982004-02-24  Vincent Lefèvre  <vincent@vinc17.net>
35299
35300	Avoid integer overflow.
35301
35302	Ported code clean-up to trunk.
35303
353042004-02-24  Patrick Pélissier  <patrick.pelissier@gmail.com>
35305
35306	Remove some warnings.
35307	MPFR can be compiled (but not checked!) with a C++ compiler.
35308
35309	Improve test coverage.
35310
353112004-02-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35312
35313	further simplification of the code (replaced one in-place shift and copy
35314	by out-of-place shift or copy)
35315
353162004-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35317
35318	use GMP_RND_MAX instead of hard-coded constant
35319
35320	simplified the code of div.c and improved coverage
35321
353222004-02-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
35323
35324	Rename 'longlong.h' in 'mpfr-longlong.h' so that when MPFR is built
35325	within GMP it uses GMP's 'longlong.h' rather than MPFR's copy.
35326
353272004-02-23  Vincent Lefèvre  <vincent@vinc17.net>
35328
35329	Update.
35330
353312004-02-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
35332
35333	Add mpfr_free_cache (2).
35334
35335	Add mpfr_free_cache.
35336
35337	Add mpfr_free_str function.
35338
35339	Remove a warning.
35340
35341	Reorder the declarations of the functions.
35342	Remove duplicate declarations.
35343	Remove mpfr_factorial.
35344
353452004-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35346
35347	patch from Guillaume Hanrot
35348
353492004-02-23  Patrick Pélissier  <patrick.pelissier@gmail.com>
35350
35351	Improve coverage tests.
35352	Fix 2 underflow bugs.
35353
35354	Update comment
35355
35356	Improve comments.
35357
35358	Add a comment.
35359
353602004-02-22  Vincent Lefèvre  <vincent@vinc17.net>
35361
35362	Added tests.
35363
353642004-02-20  Laurent Fousse  <laurent@komite.net>
35365
35366	Changed mpfr_sum to use unsigned long instead of unsigned int. More tests.
35367
353682004-02-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
35369
35370	mpfr_neg (b, b, r) for b=NAN didn't set NAN flag.
35371
35372	mpfr_sgn is no longer a macro.
35373
353742004-02-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
35375
35376	Fix bug with exact rationnal arguments (0.5+3/2 freezes).
35377
353782004-02-18  Vincent Lefèvre  <vincent@vinc17.net>
35379
35380	Update from the autotools-dev Debian package (2004-01-05).
35381
35382	Fixed a bug in mpfr_set_f for 0 (wrong sign) and added the test.
35383
353842004-02-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
35385
35386	Fix bug if you build MPFR with ASSERT.
35387
353882004-02-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
35389
35390	Reduce the number of used variables.
35391
353922004-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35393
35394	improved again documentation
35395
35396	simplified rounding
35397
35398	improved documentation of *inexp
35399
354002004-02-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
35401
35402	Simplify the random code.
35403
35404	Optimize it a few.
35405
35406	Add 2004 in copyright line.
35407
35408	Add a section which describes the needed macros for building MPFR.
35409
354102004-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35411
35412	added comment about probability of normalized product
35413
354142004-02-17  Vincent Lefèvre  <vincent@vinc17.net>
35415
35416	Added a note about the ternary value, important in practice.
35417
354182004-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35419
35420	fixed 2 bugs and added test
35421
35422	added comment about return value
35423
354242004-02-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
35425
35426	Try so support GMP as a Shared Library.
35427
354282004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35429
35430	improved error message
35431
354322004-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
35433
35434	Fix the computing of the error for mpq_add and mpq_sub.
35435
354362004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35437
35438	Added more tests (improved tadd1.c coverage).
35439
354402004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35441
35442	added cancellation test for add_q
35443
354442004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35445
35446	Added tests (improved tadd1.c coverage).
35447
354482004-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
35449
35450	Fix bug of add_q and sub_q with special values (NAN, INF and ZERO).
35451
354522004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35453
35454	deal with overflow/underflow in mpfr_div
35455
35456	added hard-coded tests
35457
354582004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35459
35460	When the precisions are the same, test both mpfr_add1sp and mpfr_add1.
35461
35462	Added overflow check.
35463
354642004-02-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
35465
35466	Optimize add1sp, sub1sp and div.
35467	Improve coverage test for sub1sp.
35468
354692004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35470
35471	Removed unused label.
35472
35473	Really reverted to rev. 1.54 + kept optimization + commented out
35474	is_odd_even.
35475
354762004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35477
35478	take into account possible out-of-range exponent
35479
35480	revert to rev 1.54 code for case x infinite
35481	(was less efficient but simpler)
35482
35483	fixed bug with in-place computation
35484
354852004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35486
35487	Code clean-up and fix to avoid warnings.
35488
354892004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35490
35491	changed back to C99 standard for special values of x^y
35492
35493	added test for *function* mpfr_round
35494
35495	check return value of fopen
35496
354972004-02-16  Vincent Lefèvre  <vincent@vinc17.net>
35498
35499	Removed the no longer used label "fin" and fixed the indentation.
35500
35501	Fix: MPFR_NOT_ZERO -> MPFR_NOTZERO.
35502
35503	Commented out the now useless "double uo, vo;".
35504
355052004-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35506
35507	improved coverage tests
35508
355092004-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35510
35511	new coverage tests
35512
35513	improved coverage test
35514
355152004-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35516
35517	improved coverage test
35518
35519	improved test coverage
35520
35521	improved test coverage
35522
35523	improved test coverage
35524
355252004-02-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
35526
35527	Fix a bug in taddsp (Forget to check if random does not generate zero).
35528
355292004-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35530
35531	improved editing style
35532
35533	improved test coverage
35534
35535	partly rewritten, and improved test coverage
35536
355372004-02-13  Vincent Lefèvre  <vincent@vinc17.net>
35538
35539	Added tests for mpfr_mul_2si and mpfr_div_2si + corrections.
35540
35541	Replaced mpfr_mul_2exp and mpfr_div_2exp by mpfr_mul_2ui and
35542	mpfr_div_2ui as the 2exp form is obsolete.
35543
355442004-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35545
35546	removed warnings
35547
355482004-02-13  Patrick Pélissier  <patrick.pelissier@gmail.com>
35549
35550	Add test for mpfr_cmpabs
35551	Add test for mpfr_fits_
35552	Add test for internal dumping functions.
35553	Improve coverage test for exceptions / set / check.
35554
355552004-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35556
35557	improved coverage
35558
35559	removed Kevin, added missing accent
35560
35561	improved coverage test
35562
355632004-02-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
35564
35565	Rewrite (simplify) mpfr_dump.
35566	Change its proto.
35567	Fix mpf_dump macro in mpf2mpfr.
35568
35569	Remove MPFR_ASSERTN(0) and add MPFR_ASSERTD(last condition) instead.
35570
355712004-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35572
35573	improved coverage
35574
35575	improved coverage
35576
35577	improved cov. test
35578
35579	improved cov. test
35580
35581	improved coverage test
35582
35583	improved coverage test
35584
35585	improved test coverage
35586
355872004-02-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
35588
35589	Improve coverage of const_pi and const_log2 (Test for prec > 20000).
35590
355912004-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35592
35593	fixed tiny bugs for corner cases
35594	improved test coverage
35595
355962004-02-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
35597
35598	+ Add mpfr_add1sp which provides addition when all the operands have the same precision.
35599	+ Add new test files for mpfr_copysign and mpfr_min and mpfr_max.
35600	+ Add test for mpfr_exp10 in tests/texp.c
35601	+ Improve coverage of div_2ui.c and mul_2ui.c
35602	+ Add a forgotten ASSERT in mpfr_sqrt
35603
356042004-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35605
35606	improved test coverage
35607	replaced mpfr_get_d1 by mpfr_get_si
35608
35609	improved coverage test
35610
35611	added new coverage test
35612
356132004-02-12  Patrick Pélissier  <patrick.pelissier@gmail.com>
35614
35615	Fix some mistakes.
35616
35617	Add a description of the gcov tool.
35618
356192004-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35620
35621	now 100% of coverage of sub1.c
35622
35623	new test file for mpfr_dim
35624
356252004-02-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
35626
35627	Replace AS_HELP_STRING to AC_HELP_STRING (obsolete)
35628
35629	Add forgotten copyright 2004 line.
35630	Add a small documentation about mpfr_sum.
35631
35632	Added mpfr_sum function.
35633
35634	+ Better support of non IEEE doubles.
35635	+ You can compile MPFR without gmp internal files (ie gmp-impl.h, gmp-mparam.h, and config.h). You only need gmp.h and libgmp.a. But you can still compile with GMP internal files (configure detects them).
35636
356372004-02-06  Vincent Lefèvre  <vincent@vinc17.net>
35638
35639	Update.
35640
35641	Updated MPFR URL.
35642
35643	Added the changes from version 2.0.1 to version 2.0.2.
35644
35645	Added: "3) Update the NEWS file.".
35646
356472004-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35648
35649	fixed bug in get_str (case pow2, rnd=up or down)
35650
356512004-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35652
35653	fixed problem (s1 = s-1 inexact)
35654
35655	fixed problem in gamma/factorial
35656
35657	added new tests for agm and hypot (+ fixed bugs)
35658
356592004-01-29  Patrick Pélissier  <patrick.pelissier@gmail.com>
35660
35661	Add GMP_RND_MAX so that a for loop of the rounding modes looks like:
35662	 for(int r = 0 ; r < GMP_RND_MAX ; r++)
35663
356642004-01-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
35665
35666	Better supports of non IEEE-754 floats (don't use anymore ieee_double_extract if _GMP_IEEE is not set).
35667
356682004-01-28  Vincent Lefèvre  <vincent@vinc17.net>
35669
35670	Added comments and a temporary fix.
35671
356722004-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35673
35674	fixed bugs in atan cbrt erf
35675	added new hard-coded tests
35676
356772004-01-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35678
35679	removed argument reduction in sin(Pi*s/2) [delegated to mpfr_sin]
35680
35681	print inputs of test2 in binary form
35682	commented out test for 0.8 (input is not exactly representable)
35683
356842004-01-26  Patrick Pélissier  <patrick.pelissier@gmail.com>
35685
35686	+ Internal functions of zeta are now declared as static.
35687	+ Add new tests which fail.
35688
356892004-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35690
35691	added several hard-coded tests (and fixed bugs found)
35692
356932004-01-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
35694
35695	Fix tiny bug of Concept Index / Rounding Modes.
35696
35697	Update minor things.
35698
356992004-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35700
35701	minor change in contributions
35702
35703	added Patrick in the main contributors
35704
357052004-01-20  Vincent Lefèvre  <vincent@vinc17.net>
35706
35707	Fixed spelling mistake.
35708
357092004-01-20  Patrick Pélissier  <patrick.pelissier@gmail.com>
35710
35711	Reorder the documentation.
35712
357132004-01-19  Kevin Ryde  <user42@zip.com.au>
35714
35715	# Add a remark to mpf_strto.
35716
35717	# Drop my thought about addmul instead of fma.  The latter takes a
35718	# separate destination and is hence not the same as what mpn and mpz
35719	# addmul do.
35720
357212004-01-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
35722
35723	Update tests to remove the use of double when possible.
35724
35725	Reenable the cmp between inexact flags.
35726
35727	Add mpfr_get_default_rounding_mode.
35728	Add the tests for mpfr_get/set_default_rounding_mode.
35729	Fix mpfr_set_default_rounding_mode.
35730
357312004-01-19  Vincent Lefèvre  <vincent@vinc17.net>
35732
35733	_mpfr_ceil -> mpfr_ceil_double + check for overflow.
35734
35735	Moved the mpfr_mpn_exp function to a new file "mpn_exp.c" as it is
35736	used by both "get_str.c" and "set_str.c".
35737
357382004-01-16  Patrick Pélissier  <patrick.pelissier@gmail.com>
35739
35740	Update it to remove the use of float/double.
35741
357422004-01-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
35743
35744	Add a new check in tget_str.c.
35745
35746	Add new macros.
35747
35748	Readd stdio.h in case of DEBUG mode.
35749
35750	Optimize a few sub1sp by removing the normalisation in case of exact rounding and by removing the calcul of the rounding mode in case of exact rounding.
35751
357522004-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35753
35754	fixed problem in case m=0 and b=2^k (lost bits from 1st digit were not taken
35755	into account)
35756
35757	mpn_exp -> mpfr_mpn_exp
35758
357592004-01-15  Vincent Lefèvre  <vincent@vinc17.net>
35760
35761	Removed gammaPiAGMformula.c (old version, no longer used).
35762
357632004-01-14  Vincent Lefèvre  <vincent@vinc17.net>
35764
35765	Changed some error messages into assertions.
35766	Removed some useless #include's.
35767
357682004-01-14  Patrick Pélissier  <patrick.pelissier@gmail.com>
35769
35770	Continue to port tests so that they don't use double.
35771
357722004-01-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
35773
35774	Update the tests to reduce the use of floats.
35775
35776	Remove unused files mpfi.c and mpfi.h
35777
35778	Update test.
35779	Don't use floats anymore.
35780
35781	Add RND_RAND
35782	Add SIGN_RAND
35783
35784	+ Simplify the singular code.
35785	+ Fix potential type errors. (Used mpfr_prec_t instead of mpfr_uexp_t).
35786
357872004-01-08  Patrick Pélissier  <patrick.pelissier@gmail.com>
35788
35789	+ Add a new test file for checking functions mpfr_add/sub/mul/div_q/z (from gmp_op.c).
35790	+ Fix bugs of mpfr_add/sub/mul/div_q/z.
35791
357922004-01-07  Vincent Lefèvre  <vincent@vinc17.net>
35793
35794	-0 -> @minus{}0.
35795
35796	Specifications for mpfr_min and mpfr_max.
35797
35798	Updated MPFR_INTPREC_MAX definition, as mpfr_prec_t has changed.
35799
358002004-01-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35801
35802	Add a new test between sub1 and sub1sp.
35803
35804	Fix copyright line.
35805
358062004-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35807
35808	fixed wrong sign of inexact flag
35809
358102004-01-07  Vincent Lefèvre  <vincent@vinc17.net>
35811
35812	Added casts to size_t so that integers representing a size get
35813	this type as soon as possible.
35814
358152004-01-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35816
35817	Use MPFR_ASSERTN(0) instead of abort.
35818
35819	Fix the definition of MPFR_PREC_MAX
35820
358212004-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35822
35823	added new test to check bug repair
35824
35825	fixed bug (wrong inexact flag) for rounding to nearest when sh=0 and
35826	first trailing limbs coincide
35827
358282004-01-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
35829
35830	Fix copyright lines (2004).
35831
35832	Fix bug of sub1sp.c on sparck.
35833	Add new tests for sub1sp.
35834	Reenable sub1sp for mpfr_add / mpfr_sub.
35835
35836	Change output format of mpfr_print_mant_binary.
35837
358382004-01-07  Vincent Lefèvre  <vincent@vinc17.net>
35839
35840	Clarified comment.
35841
358422004-01-06  Vincent Lefèvre  <vincent@vinc17.net>
35843
35844	Updated copyright line.
35845
35846	Added mpfr_version function and test.
35847
35848	The mpfr_print_rnd_mode return type is const char *, not char *.
35849
358502004-01-06  Patrick Pélissier  <patrick.pelissier@gmail.com>
35851
35852	Update the copyright line of the source files to 2004.
35853
35854	Add the tests to check if 0 for signed class with unsigned 0 is set to 0+.
35855
358562004-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35857
35858	specified sign of zero in mpfr_set_*
35859
35860	removed test using denorms
35861
358622003-12-22  Patrick Pélissier  <patrick.pelissier@gmail.com>
35863
35864	Disable sub1sp in add.c and in sub.c since it provides some bugs on spark (Log/acos/asin and atan tests failed but not tsub or tsub1sp).
35865
35866	Change comment.
35867
35868	+ Rearrange the code to be more "compatible" with broken systems.
35869	+ Preprocessing checks are done in init2.c since GMP constants can't be used in preprocessing #if.
35870
35871	Use MPFR_UNSIGNED_MINUS_MODULO when needed.
35872
35873	Explicit support for K&R C since ansi2knr can't be used.
35874
358752003-12-20  Kevin Ryde  <user42@zip.com.au>
35876
35877	(tests_rand_start): Use gmp_randinit_default not the
35878	RANDS macro, to cope with new non-seeding MT setup by RANDS.
35879
358802003-12-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
35881
35882	Support of MPFR_PREC_FORMAT.
35883	Fix a bug in case mp_prec_t = unsigned short.
35884
358852003-12-19  Vincent Lefèvre  <vincent@vinc17.net>
35886
35887	Update due to a change in mpfr.h.
35888
358892003-12-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
35890
35891	+ Modify Version to 2.1.0.
35892	+ Add MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR and MPFR_VERSION_PATCHLEVEL in mpfr.h
35893	+ Add MPFR_VERSION_NUM and MPFR_VERSION to check Mpfr version.
35894
35895	Remove one warning in mpf_compat.h
35896	Create a new macro: MPFR_RET_NEVER_GO_HERE
35897	Modify ui_sub/div to use it to make Insure++ happy.
35898
358992003-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35900
35901	updated mpfr_root entry
35902
359032003-12-19  Vincent Lefèvre  <vincent@vinc17.net>
35904
35905	Added update-version script to update the MPFR version.
35906
359072003-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35908
35909	removed one item, added one
35910
359112003-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35912
35913	removed unused target "tests"
35914
35915	removed AC_DEFINE(hpux) [not used any more]
35916
359172003-12-15  Kevin Ryde  <user42@zip.com.au>
35918
35919	(EXTRA_DIST): Add round_raw_generic.c.
35920
359212003-12-15  Patrick Pélissier  <patrick.pelissier@gmail.com>
35922
35923	+ Optimize a few div.c
35924	+ Remove some warnings in asin.c, atan.c.
35925	+ Include limits.h before gmp-impl.h in mpfr-impl.h
35926	+ mpfr-tests.h doesn't include anumore standard include files.
35927	+ Test files include only standard includes and mpfr-tests.h.
35928	+ Add some forgotten mpfr_clear in mpf[r]_compat.
35929	+ Remove some warnings in the tests.
35930
359312003-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35932
35933	removed unused arguments
35934
35935	removed AC_DEFINE(__STDC__) for OSF
35936
35937	removed MISCFLAGS (not used any more)
35938
359392003-12-14  Kevin Ryde  <user42@zip.com.au>
35940
35941	Quote AC_DEFUN names, for automake 1.8.
35942
359432003-12-10  Patrick Pélissier  <patrick.pelissier@gmail.com>
35944
35945	+ Add a new test in case of underflow.
35946	+ Fix bug in case of underflow for sub1 / sub1sp (mpfr_powerof2 could be called with invalid numbers).
35947
359482003-12-09  Patrick Pélissier  <patrick.pelissier@gmail.com>
35949
35950	+ Fixed bugs of mpfr_print_mant_binary on 64 bits CPU (1L instead of 1).
35951	+ Fixed bugs of mpfr_sub1sp on 64-bits CPU (mp_limb_t instead of int).
35952
35953	+ Add function mpfr_print_mantissa_binary, for debugging reason.
35954	+ Rename MPFR_ALLOC_SIZE in MPFR_MALLOC_SIZE.
35955	+ Add conditionnal -DSMALL directive in mpfr-impl.h.
35956	+ Add new function: sub1sp.
35957	   Subtraction in case of all the ops have the same prec.
35958	+ Add its test (tsub1sp).
35959	+ Modify a few the tests to avoid comparing mpfr results with double, for portability reason.
35960
359612003-12-05  Vincent Lefèvre  <vincent@vinc17.net>
35962
35963	Added mpfr_exp10 function.
35964
359652003-12-01  Patrick Pélissier  <patrick.pelissier@gmail.com>
35966
35967	Port all the IEEE dependent remaining functions so that it uses a generic way to compute the result if it detects that the double is not in IEEE format ( _GMP_IEEE_FLOATS == 0).
35968	MPFR now should work well on non-IEEE machines.
35969
359702003-12-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35971
35972	added suggestion for 2 new functions
35973
35974	added entry (portability)
35975
359762003-11-25  Patrick Pélissier  <patrick.pelissier@gmail.com>
35977
35978	Optimize a few add1.c/sub1.c by using MPFR_LIKELY / MPFR_UNLIKELY.
35979
359802003-11-21  Patrick Pélissier  <patrick.pelissier@gmail.com>
35981
35982	Remove some warnings and potential errors (Comparison between signed and unsigned).
35983
35984	+ Add new internal function: mpfr_check.
35985	+ Add the corresponding test file.
35986	+ Translate mpfr_set_d to mpfr_set_str / mpfr_set_ui in the tests for portability reasons.
35987
359882003-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
35989
35990	use integers instead of double's
35991
359922003-11-21  Vincent Lefèvre  <vincent@vinc17.net>
35993
35994	Notes about not using mpfr_set_d in the tests.
35995
359962003-11-19  Patrick Pélissier  <patrick.pelissier@gmail.com>
35997
35998	 Optimization of mpfr_mul.
35999	 Tiny optimization of mpfr_pow (The case y=0 has been put inside the MPFR_ARE_SINGULAR block).
36000	 Tiny optimisation of mpfr_set_ui.
36001
360022003-11-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36003
36004	fixed bug in case exact result
36005
36006	added new tests
36007
360082003-11-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
36009
36010	 Optimize round_raw_generic by reducing the number of redundant tests.
36011
360122003-11-17  Patrick Pélissier  <patrick.pelissier@gmail.com>
36013
36014	* Optimize a few div.c and mul.c.
36015	* Reorder the tests.
36016	* Remove mpfr_round_raw_generic and create 4 new functions which replace it, for efficiency reasons.
36017	* Add round_raw_generic.c which is the generic file to create the 4 new functions.
36018	* Add new MACRO: MPFR_RNDUTEST_OR_RNDDNOTTEST which is a faster way to check if (rnd_mode==GMP_RNDU && test) || (rnd_mode==GMP_RNDD && !test).
36019	* Add new MACRO: MPFR_UNSIGNED_MINUS_MODULO.
36020	* Optimize mpfr_can_round_raw.
36021	* Some new defines in mpfr.h to increase compatibility with MPFR v2.0.1 and above.
36022
360232003-11-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36024
36025	fixed bug in pow_si (exact result, case z = x)
36026
36027	added test to check bug fix (bug was in mpfr_pow)
36028
36029	added new test to check for bug fix (output precision > input precisions)
36030
36031	just improved editing style
36032
36033	fixed bug for output precision > max(input precisions)
36034
360352003-11-14  Vincent Lefèvre  <vincent@vinc17.net>
36036
36037	Ported the gcc-3.3 bug detection patch to the trunk.
36038
360392003-11-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
36040
36041	Fix a stupid bug (diff_exp is not equal to the difference of prec)
36042
360432003-11-07  Vincent Lefèvre  <vincent@vinc17.net>
36044
36045	Initialize the exp field.
36046
360472003-11-07  Patrick Pélissier  <patrick.pelissier@gmail.com>
36048
36049	Some minor optimizations.
36050	Optimization of mul.c / sub1.c.
36051	Some clean up in the header files.
36052
360532003-11-05  Patrick Pélissier  <patrick.pelissier@gmail.com>
36054
36055	Fix some bugs (Use MPFR_ASSERT(1) instead of MPFR_ASSERT(0))
36056	Optimize swap.c and copysign.c.
36057
36058	Optimize mpfr_prec_round.
36059	Optimize mpfr_set (Case of both src & dest have the same precision).
36060	Start optimizing mpfr_sub1.
36061
36062	Add a real function for mpfr_sgn (not a call to mpfr_cmp_ui_2exp).
36063	Add a test for mpfr_sgn.
36064	Change the proto of mpfr_add1 and mpfr_sub1 by removing the last arg.
36065	Simplify the logic of the sign in mpfr_sub1.
36066	Tiny speed up for cmp/set/sqrt.
36067	mpfr-impl auto include all the needed local header files (gmp, gmp-impl, mpfr).
36068
360692003-11-04  Vincent Lefèvre  <vincent@vinc17.net>
36070
36071	Merged the mpfr-2-0-2-branch pow_ui.c changes to the trunk.
36072
36073	The check_inf test wasn't called. Added 2 missing mpfr_clear and \n.
36074
360752003-11-04  Patrick Pélissier  <patrick.pelissier@gmail.com>
36076
36077	+ Remove MPFR_CLEAR_NAN and MPFR_CLEAR_INF. Only use MPFR_CLEAR_FLAGS.
36078	  MPFR_SET_INF, MPFR_SET_ZERO and MPFR_SET_ZERO must clear the flags before setting them.
36079	+ Add a new test in tacosh.c : check Inf / Nan flags.
36080	+ Use MPFR_IS_SINGULAR in all the remaining files.
36081	+ Fix the use of MPFR_CLEAR_FLAGS.
36082	+ mpfr-impl.h auto include gmp.h, gmp-impl.h, mpfr.h and limits.h.
36083	+ Rename _PROTO to _MPFR_PROTO, and remove _GMP_PROTO.
36084	+ Add MPFR_INT_SIGN macro.
36085	+ Encapsulate a few more the sign.
36086
360872003-10-30  Vincent Lefèvre  <vincent@vinc17.net>
36088
36089	MPFR_RET_NAN -> MPFR_RET(0).
36090
360912003-10-28  Patrick Pélissier  <patrick.pelissier@gmail.com>
36092
36093	Use of MPFR_UNLIKELY and MPFR_IS_SINGULAR for fast detection of special values (Nan, Inf or Zero).
36094	Start to encapsulate the sign to be independent of the representation (Must be 1 or -1).
36095
360962003-10-27  Patrick Pélissier  <patrick.pelissier@gmail.com>
36097
36098	Change the internal format of MPFR: ZERO, INF and NAN have special values of exp.
36099	Rename MPFR_ESIZE in MPFR_LIMB_SIZE.
36100	Rename MPFR_ABSZISE in MPFR_ALLOC_SIZE.
36101	Rename MPFR_INIT in MPFR_TMP_INIT (INIT1 too).
36102	"mpfr.h" includes <gmp.h> if GMP isn't detected.
36103	Change the way of detecting stdio.h (To check).
36104	Use mpfr namespace for new definitions in "mpfr.h".
36105
361062003-10-27  Vincent Lefèvre  <vincent@vinc17.net>
36107
36108	Another fix, for acosh(-INF).
36109
36110	Fixed exit status.
36111
361122003-10-21  Vincent Lefèvre  <vincent@vinc17.net>
36113
36114	Merged the mpfr-2-0-2-branch changes to the trunk.
36115
361162003-10-20  Vincent Lefèvre  <vincent@vinc17.net>
36117
36118	Merged the mpfr-2-0-2-branch changes to the trunk.
36119
361202003-10-17  Vincent Lefèvre  <vincent@vinc17.net>
36121
36122	Merged the mpfr-2-0-2-branch changes to the trunk.
36123
361242003-10-16  Vincent Lefèvre  <vincent@vinc17.net>
36125
36126	Update.
36127
36128	Updated version on trunk.
36129
36130	Update.
36131
36132	Fixed several bugs.
36133
36134	Added XDEBUG support (like in set_d.c).
36135
361362003-10-15  Vincent Lefèvre  <vincent@vinc17.net>
36137
36138	Replaced all non-ASCII characters by an equivalent 7-bit sequence
36139	to support unpatched texinfo.tex files.
36140
361412003-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36142
36143	removed #define DEBUG (turned on accidentally)
36144
361452003-10-15  Vincent Lefèvre  <vincent@vinc17.net>
36146
36147	Bug on the ternary value was fixed by Paul Zimmermann on 2003-10-14.
36148
361492003-10-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36150
36151	added preamble about ternary flag for special functions
36152
36153	now uses #include "tgeneric.c" everywhere
36154	(and modified test_generic to check also the inexact flag)
36155
36156	check_nan() is back
36157
36158	removed old unused code
36159
36160	fixed tests for x=0
36161	removed composition tests (were already in-between #if 0 ... #endif)
36162
36163	replaced mpfr_can_round (approx, err, rnd1, GMP_RNDN, prec)
36164	by       mpfr_can_round (approx, err, rnd1, GMP_RNDZ, prec + 1)
36165	which in addition guarantees a correct inexact flag
36166
36167	added new items (version number, rounding modes)
36168
36169	added comment about --enable-alloca=debug
36170
361712003-10-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36172
36173	added section "Problems due to compiler bugs"
36174
36175	change in can_round calls to get correct inexact flag for rounding to nearest
36176
361772003-10-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36178
36179	fixed bug in mpfr_pow found by Ming J. Tsai (overflow)
36180
361812003-10-08  Vincent Lefèvre  <vincent@vinc17.net>
36182
36183	Removed useless inclusion of standard headers and some #ifdef DEBUG
36184	code. Partial reindentation.
36185
36186	Added a #include <stddef.h> because size_t is used.
36187
361882003-10-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36189
36190	reduced test time
36191
36192	reduced test time
36193
36194	reduced test time
36195
361962003-10-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36197
36198	fixed comment of mpfr_round_raw_generic
36199
36200	replaced ABSSIZE by ESIZE (ABSSIZE is the allocated size, and should be
36201	used only in functions init, set_prec, round_prec)
36202
36203	fixed bug in allocation for in-place operation
36204
36205	inexact flag should now be correct for directed rounding
36206	fixed a bug for mpfr_atan(-Inf) [gave +Pi/2 instead of -Pi/2]
36207
36208	added test for atan(-Inf)
36209
36210	use macros to avoid possible problem with float input
36211
36212	new proposal for mpfr_can_round
36213
36214	mpfr_mul_2exp/mpfr_div_2exp are not obsolete
36215
362162003-10-05  Vincent Lefèvre  <vincent@vinc17.net>
36217
36218	Clearer mpfr_eq documentation (thanks to Kevin Ryde for the remark).
36219
362202003-10-03  Vincent Lefèvre  <vincent@vinc17.net>
36221
36222	MPFR_ASSERTN rewritten to avoid "statement with no effect" warnings
36223	with gcc when the assertion is always true.
36224
36225	Optimization (thanks to Patrick Pelissier), as the allocated size
36226	may be larger than the size used by the significant bits.
36227
36228	Updated installation notes.
36229
36230	Infinities are now accepted in mpfr_cmpabs. Updated its definition
36231	in the source (no longer sign(abs(b) - abs(c))).
36232
362332003-10-02  Vincent Lefèvre  <vincent@vinc17.net>
36234
36235	Use @url{} for URLs.
36236
36237	As suggested by PZ:
36238	  o documentation of mpfr_fits_* functions moved to the section
36239	    on conversions;
36240	  o grouped some mpfr_pow special cases;
36241	  o explanation concerning the meaning of rnd in mpfr_frac.
36242
36243	Updated documentation. In particular, mpfr_set_str_raw renamed
36244	as mpfr_set_str_binary. This function and mpfr_print_binary are
36245	now internal functions. mpfr_print_binary no longer prints the
36246	non-significant 0 bits. Updated the source to match the manual.
36247	mpfr_print_binary has been completely rewritten (now directly
36248	prints to stdout, without using an intermediate string). In
36249	mpfr_set_str_binary, replaced atol by strtol + error checking.
36250
362512003-10-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36252
36253	added paragraph on support/grants
36254	added help for mpfr_erf
36255
362562003-10-02  Vincent Lefèvre  <vincent@vinc17.net>
36257
36258	Make node titles match section titles, and updated menus and xrefs.
36259	Added a line break after @samp{uninstall}.
36260
362612003-10-01  Vincent Lefèvre  <vincent@vinc17.net>
36262
36263	Corrections in the MPFR manual (PZ & VL). Functions mpfr_const_pi,
36264	mpfr_const_log2 and mpfr_zeta now return a ternary value. Updated
36265	TODO file.
36266
362672003-09-30  Vincent Lefèvre  <vincent@vinc17.net>
36268
36269	Added a bug related to the ternary value and worst cases.
36270
36271	Added exponent range support.
36272
36273	Corrections up to Section 5.6 (PZ & VL).
36274
36275	Re-added the assert on the exponent, but replacing MPFR_EMIN_MIN by
36276	MP_EXP_T_MIN (this makes more sense): an assertion failed would mean
36277	that the exponent is not representable (an undefined behavior in the
36278	ISO C standard). If need be, we could choose to return MP_EXP_T_MIN
36279	in such a case, or perhaps MP_EXP_T_MAX to signal an error. The
36280	mantissa would still be meaningful.
36281
362822003-09-30  Patrick Pélissier  <patrick.pelissier@gmail.com>
36283
36284	Update TODO & mpfr_set_prec.
36285
362862003-09-29  Vincent Lefèvre  <vincent@vinc17.net>
36287
36288	Corrections up to Section 4.
36289
36290	Added authors Kevin Ryde and Patrick Pelissier.
36291
36292	Removed "known problems" that are no longer problems.
36293
362942003-09-26  Vincent Lefèvre  <vincent@vinc17.net>
36295
36296	Removed bugs related to the tests and to the exponents
36297	as they no longer occur. Updated some potentials bugs.
36298
362992003-09-25  Vincent Lefèvre  <vincent@vinc17.net>
36300
36301	Removed mpfr_inits, mpfr_inits2, mpfr_clears from the documentation.
36302	Moved their prototypes to mpfr-impl.h (internal functions until
36303	decided otherwise).
36304
363052003-09-25  Patrick Pélissier  <patrick.pelissier@gmail.com>
36306
36307	Modify 'r' arg of GENERIC from int to long (min 32 bits).
36308
363092003-09-25  Vincent Lefèvre  <vincent@vinc17.net>
36310
36311	8-bit ISO-8859-1 characters + consistent spelling.
36312
36313	Update.
36314
36315	Changed the remaining stderr to stdout.
36316
363172003-09-24  Vincent Lefèvre  <vincent@vinc17.net>
36318
36319	Changed some stderr to stdout.
36320
36321	Added documentation for mpfr_greater_p, mpfr_greaterequal_p,
36322	mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p
36323	and mpfr_unordered_p.
36324
36325	Added tests for mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
36326	mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
36327
36328	Added a few more tests (involving mpfr_nexttoward). The tests for
36329	the mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward functions
36330	should now be sufficient.
36331
36332	Added generic tests for mpfr_nextabove and mpfr_nextbelow.
36333	Fixed a bug in next.c related to assertion checks.
36334
36335	Accept (case-insensitive) NaN and Inf in input for bases <= 16 for
36336	backward compatibility in these bases (for bases > 16, we cannot
36337	guaranty backward compatibility with the current wanted behavior).
36338	Added tests.
36339
363402003-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36341
36342	added one item from Kevin
36343
363442003-09-24  Vincent Lefèvre  <vincent@vinc17.net>
36345
36346	Added support for some top-bit-set characters in the .texi source.
36347
36348	Added information on special values for mpfr_pow.
36349
363502003-09-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36351
36352	added MAKEINFOFLAGS = --enable-encoding to get 8-bit characters in mpfr.info
36353
36354	used ISO-8859-1 in AUTHORS
36355	and @`e, @"o in mpfr.texi (waiting for code for ISO-8859-1 compatibility)
36356
363572003-09-24  Kevin Ryde  <user42@zip.com.au>
36358
36359	(MPFR_C_LONG_DOUBLE_FORMAT): Remove conftest* temporary
36360	files.
36361
363622003-09-24  Vincent Lefèvre  <vincent@vinc17.net>
36363
36364	Fixed comparisons (cases @NaN@ and @Inf@).
36365
363662003-09-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36367
36368	two updates
36369
363702003-09-22  Vincent Lefèvre  <vincent@vinc17.net>
36371
36372	Updated mpfr_pow description.
36373
363742003-09-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36375
36376	changed __gmp_const into const in *.c
36377	[Torbjo"rn: Please use __gmp_const just in user header files, plain C const in other files.]
36378
363792003-09-22  Vincent Lefèvre  <vincent@vinc17.net>
36380
36381	Removed
36382
36383	- allow the ISO C "P" exponent separator for base 16 in input functions
36384
36385	(already done).
36386
363872003-09-22  Vincent Lefèvre  <vincent@vinc17.net>
36388
36389	Implemented the following:
36390	- use (LDBL_MAX/2)+(LDBL_MAX/4*LDBL_EPSILON) instead of loop in tset_ld
36391	       to get largest power of 2 that fits in a long double
36392
36393	Added some MPFR_ASSERTN and improved a comment.
36394
36395	Avoid string literals longer than 509 characters (ISO C89 limit).
36396
36397	(test_set_underflow, test_set_overflow): Cleaner fix (for pre-C99
36398	compilers).
36399
364002003-09-22  Kevin Ryde  <user42@zip.com.au>
36401
36402	(test_set_underflow, test_set_overflow): Use
36403	"static" on "r" to allow non-constant initializers.
36404
364052003-09-21  Kevin Ryde  <user42@zip.com.au>
36406
36407	(Converting Floats): In mpfr_get_d_2exp, the rounding mode
36408	is given, it doesn't use the default mode.
36409
36410	(Assigning Floats): In mpfr_set_str and mpfr_set_str_raw,
36411	show "const" not "__gmp_const".
36412	(Simultaneous Float Init & Assign): In mpfr_init_set_str, ditto.
36413
36414	(Rounding Modes): Add blank line around @itemize.
36415
36416	(Miscellaneous Float Functions): In mpfr_urandomb and
36417	mpfr_random, use @math and @le.
36418
364192003-09-20  Kevin Ryde  <user42@zip.com.au>
36420
36421	(Assigning Floats): In mpfr_set_*, remove remarks about
36422	long being rounded (this should be clear already), about rounding of
36423	decimal double constants like 0.1 (too basic to appear here),
36424	(Converting Floats): In mpfr_get_d_2exp, remove remark about exp
36425	exceeding IEEE exponent range (should be clear already).
36426
364272003-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36428
36429	updated items: removed conversion from/to float (obsolete)
36430
36431	got rid of <math.h> dependency in mpfr_zeta
36432
36433	mpfr_round_prec is now obsolete
36434	new function mpfr_prec_round replaces it
36435
364362003-09-18  Vincent Lefèvre  <vincent@vinc17.net>
36437
36438	Fix for C implementations with 16-bit int.
36439
364402003-09-18  Patrick Pélissier  <patrick.pelissier@gmail.com>
36441
36442	 Optimization of macros MPFR_IS_INF, MPFR_IS_NAN and MPFR_IS_FP
36443
364442003-09-18  Vincent Lefèvre  <vincent@vinc17.net>
36445
36446	Removed a comment that should have been removed in revision 1.8.
36447
364482003-09-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36449
36450	No longer perform the pre-check for exactness when first division step was
36451	actually a complete division. This introduced way too much overhead.
36452
36453	replaced test stream==0 by stream==NULL
36454
364552003-09-15  Vincent Lefèvre  <vincent@vinc17.net>
36456
36457	Fixed a bug in mpfr_can_round_raw and added other mpfr_can_round
36458	tests.
36459
36460	Added a test to tests/tcan_round.c and assertions to round_prec.c.
36461
364622003-09-14  Vincent Lefèvre  <vincent@vinc17.net>
36463
36464	Fixed mpfr_set_overflow, added tests for mpfr_set_underflow
36465	and mpfr_set_overflow, and reverted exp.c.
36466
364672003-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36468
36469	overflow with round to zero was incorrect
36470
364712003-09-11  Vincent Lefèvre  <vincent@vinc17.net>
36472
36473	New functions mpfr_inits, mpfr_inits2 and mpfr_clears to initialize or
36474	free several floating-point numbers (written by Patrick Pélissier).
36475
364762003-09-09  Vincent Lefèvre  <vincent@vinc17.net>
36477
36478	Replaced malloc/free by __gmp_allocate_func/__gmp_free_func in
36479	mpfr_zeta_pos. zeta.c still uses math (libm) functions -> TODO:
36480	remove this dependence.
36481
36482	Added a test that makes MPFR crash (coming from the mpfr_zeta crash).
36483
36484	Case that crashes MPFR (coming from test_generic) -> function test1.
36485
36486	Ended up by simplifying mpfr_ui_pow to fix it completely (with a
36487	call to mpfr_pow, in a way similar to other ui functions). There
36488	isn't significant differences with the old code anyway, and the
36489	case integer^integer wasn't optimized like in mpfr_pow.
36490	The test tui_pow now passes, but the test tzeta now fails!
36491
36492	Code clean-up and reindented. Replaced a 8 by CHAR_BIT,
36493	as CHAR_BIT isn't necessarily equal to 8. The bug seems
36494	to occur on all machines.
36495
364962003-09-08  Vincent Lefèvre  <vincent@vinc17.net>
36497
36498	Added a test to reproduce a bug (to be fixed later) on all 64-bit
36499	machines.
36500
36501	Added a cast (useful under Linux/alpha).
36502
365032003-09-01  Vincent Lefèvre  <vincent@vinc17.net>
36504
36505	Changes (Patrick Pelissier's suggestions):
36506	  _ mpfr_print_rnd_mode now has __gmp_const char * return type;
36507	  _ some corrections in mpfr.texi, documentencoding set.
36508
365092003-08-30  Kevin Ryde  <user42@zip.com.au>
36510
36511	#Corrections to initial checkin.
36512
36513	(EXTRA_libfrtests_a_SOURCES): Add amd64.asm.
36514
36515	New file.
36516
36517	Correction to:
36518	(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
36519
36520	(tests_machine_prec_long_double): Add amd64 to the
36521	comments.
36522
36523	(MPFR_CONFIGS): Add amd64-*-* to x86 test objects.
36524
36525	(check_set_get): Improve error messages.
36526
36527	(ld_trace): New function.
36528
36529	(ldbl_max_struct): Use octal character constants, since hex
36530	is an ANSI-ism.
36531
365322003-08-07  Vincent Lefèvre  <vincent@vinc17.net>
36533
36534	Avoid a potential overflow.
36535
365362003-08-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36537
36538	fixed pb found by Damien Fisher
36539
365402003-07-24  Vincent Lefèvre  <vincent@vinc17.net>
36541
36542	If the exponent of the number is meaningless (src = NaN, inf or 0),
36543	0 is stored in expptr (behavior similar to the ISO C frexp function).
36544
365452003-07-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36546
36547	added one item
36548
365492003-07-19  Kevin Ryde  <user42@zip.com.au>
36550
36551	(check_PROGRAMS): Add tget_d_2exp.c.
36552
36553	New file, partly derived from tget_d.c.
36554
36555	(mpfr_get_d_2exp): Ensure 0.5 <= abs(ret) < 1.0 is respected
36556	when rounding away from zero.
36557
36558	(d_trace): New function.
36559
36560	(Converting Floats): mpfr_get_d_2exp stores to a long.
36561
36562	(mpfr_get_d_2exp): Store exp in a long, same as
36563	mpz_get_d_2exp and mpf_get_d_2exp.
36564
365652003-07-15  Vincent Lefèvre  <vincent@vinc17.net>
36566
36567	Updated comment.
36568
365692003-07-08  Vincent Lefèvre  <vincent@vinc17.net>
36570
36571	Correction in a comment (patch by Torbjorn).
36572
365732003-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36574
36575	can_round returns 0 for NaN/Inf
36576
36577	fixed Uninitialized memory read in mpfr_can_round
36578	(when b is NaN or Inf)
36579
365802003-06-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36581
36582	fixed array bound write (need 6+1 characters in s1 to represent -@inf@ + \0)
36583
365842003-06-28  Kevin Ryde  <user42@zip.com.au>
36585
36586	Add "const" to IEEE byte sequence data.
36587
36588	(tests_rand_end): Remove explicit __gmp_rands
36589	clearing, it's what RANDS_CLEAR does already.
36590
365912003-06-26  Kevin Ryde  <user42@zip.com.au>
36592
36593	# Clarify nan/inf bits under efficiency.
36594	# Add mpfr_get_d3 ieee portability.
36595	# Add mpfr_random not wanted in mpf integration.
36596
365972003-06-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36598
36599	moved macros for [L]DBL_MANT_DIG in mpfr-impl.h
36600
366012003-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36602
36603	fixed several problems noticed by Kevin
36604
36605	changed test for 2^1024, using LDBL_MAX_EXP
36606
366072003-06-25  Kevin Ryde  <user42@zip.com.au>
36608
36609	# Add efficiency of separate flag bit operations.
36610
366112003-06-24  Kevin Ryde  <user42@zip.com.au>
36612
36613	Remove file, no longer used.
36614
36615	(libmpfr_a_SOURCES): Remove mpfr-math.h.
36616
36617	(MPFR_DBL_INFP, MPFR_DBL_INFM, MPFR_DBL_NAN): Make private
36618	definitions based on IEEE byte sequences, in particular avoid HUGE_VAL
36619	from mpfr-math.h since that's not infinity on hppa1.1-hp-hpux10.
36620	Remove includes of mpfr-math.h, math.h and stddef.h.
36621
36622	(check_inf_nan): New test.
36623
36624	(MPFR_C_LONG_DOUBLE_FORMAT): Use octal char constants,
36625	'\xHH' is an ANSI-ism.
36626
366272003-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36628
36629	check 2^1024 only when sizeof(long double) > sizeof(double)
36630
36631	correction to previous patch
36632
36633	correction to previous patch: problem was that x and u can be 0,
36634	then MPFR_PREC() undefined
36635
366362003-06-24  Kevin Ryde  <user42@zip.com.au>
36637
36638	(tests_start_mpfr): Make stdout and stderr unbuffered.
36639
36640	(check_inexact): For pz, use at least MPFR_PREC_MIN
36641	since this is required by mpfr_set_prec.
36642
36643	# Correction to:
36644	# (check_inexact): For pz, use at least MPFR_PREC_MIN
36645	# since this is required by mpfr_set_prec.
36646
36647	(check_inexact): For pz, use at least MPFR_PREC_MIN
36648	since this is required by mpfr_set_prec.
36649
366502003-06-23  Kevin Ryde  <user42@zip.com.au>
36651
36652	Remove mingw portability of random/rand48, no longer used.
36653
36654	Remove __setfpucw, no longer used.
36655	Remove mpfr_integer_p, done.
36656	Remove gmp rand functions in test programs, done.
36657	Remove MPFR_CHECK_RANDOMIZE, done (as GMP_CHECK_RANDOMIZE).
36658
366592003-06-21  Vincent Lefèvre  <vincent@vinc17.net>
36660
36661	mpfr_random is deprecated.
36662
366632003-06-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36664
36665	changed since mpfr_random now can return 0
36666
366672003-06-20  Vincent Lefèvre  <vincent@vinc17.net>
36668
36669	The distribution should now be uniform (mpfr_random implemented
36670	by calling mpfr_urandomb).
36671
36672	Take the current exponent range into account in mpfr_urandomb
36673	(which now returns an int).
36674
36675	Bug fix.
36676
366772003-06-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36678
36679	moved _gmp_rands_initialized stuff from tests_end_mpfr() to tests_rand_end()
36680
36681	reduced default number of tests
36682	improved style
36683
36684	reduced default number of tests
36685	improved style
36686
366872003-06-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36688
36689	fixed bug in mpfr_exp2_aux2 (spe175.testdrive.hp.com)
36690
36691	improved style
36692
36693	added more information in case of failure
36694
36695	removed randseed() stuff [obsolete now we use the GMP mechanism]
36696
36697	added memory test mechanism
36698
36699	added new test from Parks
36700
36701	fixed allocation problem (forgot to clear)
36702
367032003-06-19  Vincent Lefèvre  <vincent@vinc17.net>
36704
36705	Removed drand48/lrand48/srand48 prototypes.
36706
367072003-06-18  Kevin Ryde  <user42@zip.com.au>
36708
36709	Don't use mpz_get_d1, since a 53-bit double is not
36710	enough when long is 64-bits.
36711
36712	Don't use mpz_get_d1, since a 53-bit double is not
36713	enough when long is 64-bits.
36714
367152003-06-13  Kevin Ryde  <user42@zip.com.au>
36716
36717	Use autoconf recommended style for time.h with
36718	sys/time.h.
36719
36720	(MPFR_CONFIGS): Require AC_HEADER_TIME, add
36721	AC_CHECK_HEADERS of sys/time.h.
36722
36723	(MPFR_CONFIGS): Add AC_CHECK_FUNCS of gettimeofday.
36724
367252003-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36726
36727	moved disabled test to "special" code
36728
36729	added reference to Higham
36730
36731	improved error analysis on erf
36732
36733	improved indentation
36734
367352003-06-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36736
36737	added support for random see
36738	(when env. variable GMP_CHECK_RANDOMIZE set)
36739
367402003-06-12  Vincent Lefèvre  <vincent@vinc17.net>
36741
36742	Replaced misc random functions by GMP ones.
36743
36744	Added function randlimb().
36745
36746	Fixed a few bugs concerning special values, code simplified.
36747
367482003-06-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36749
36750	added error function
36751
367522003-06-11  Vincent Lefèvre  <vincent@vinc17.net>
36753
36754	Make x positive + some minor changes.
36755
36756	New version written by Torbjorn Granlund.
36757
367582003-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36759
36760	updated formular for erf
36761	added url for Abramowitz & Stegun
36762
367632003-06-10  Vincent Lefèvre  <vincent@vinc17.net>
36764
36765	Added a comment concerning NO_MATH_DEFS.
36766
367672003-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36768
36769	made test faster
36770
36771	reduced test time
36772
36773	reduced time of test
36774
36775	reduced time
36776
367772003-06-09  Kevin Ryde  <user42@zip.com.au>
36778
36779	Patch by Torbjorn: use puts not putchar, to avoid GNUPro compiler bug.
36780
367812003-06-08  Kevin Ryde  <user42@zip.com.au>
36782
36783	Disable "8093416094703476*2^(-1075)" because mips64
36784	SGI cc doesn't seem to like the value (a denorm).
36785
36786	Include <stddef.h> before <math.h>, to avoid problems with
36787	gcc 3.2 on hppa2.0w-hp-hpux11.11.
36788
36789	(random): Remove prototype, since it conflicts with
36790	stdlib.h on osf4.
36791
367922003-05-28  Vincent Lefèvre  <vincent@vinc17.net>
36793
36794	Added prototypes of non-standard functions that weren't always defined.
36795
36796	MPFR_EXP_CHECK is now defined when WANT_ASSERT is defined.
36797
367982003-05-26  Vincent Lefèvre  <vincent@vinc17.net>
36799
36800	The special case s = 1 is taken into account (the previous code
36801	seemed to work, but perhaps not for rigorous reasons).
36802
36803	Added test for case s = 1.
36804
36805	(mpfr_round_prec): Bug fixed (case zero wasn't taken into account)
36806	and 'assertion failed' avoided.
36807
36808	Update related to MPFR_GET_EXP and MPFR_SET_EXP.
36809
36810	MPFR_GET_EXP (r) -> exp.
36811
36812	Function mpfr_swap rewritten using memcpy.
36813
36814	Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
36815
36816	Updates/optimizations related to MPFR_GET_EXP and MPFR_SET_EXP.
36817
368182003-05-23  Vincent Lefèvre  <vincent@vinc17.net>
36819
36820	Code clean-up. Assertion failed avoided.
36821
368222003-05-22  Vincent Lefèvre  <vincent@vinc17.net>
36823
36824	Update.
36825
36826	Macros MPFR_EXP_INVALID (invalid exponent value) and MPFR_EXP_CHECK
36827	added. Code update to use MPFR_GET_EXP and MPFR_SET_EXP instead of
36828	MPFR_EXP to allow more bug detection related to special values.
36829	Macros MPFR_SET_NAN, MPFR_SET_INF, MPFR_SET_ZERO and MPFR_INIT set
36830	the exponent of the number to MPFR_EXP_INVALID if MPFR_EXP_CHECK
36831	is defined. Compile with -DMPFR_EXP_CHECK and make check to see
36832	the potential problems; currently, 40 of 76 tests fail.
36833
368342003-05-21  Vincent Lefèvre  <vincent@vinc17.net>
36835
36836	#include "gmp-impl.h" added.
36837
36838	MPFR_ASSERTD: use MPFR_ASSERTN instead of ASSERT_ALWAYS so that
36839	it can be used as an expression.
36840	New macros MPFR_GET_EXP and MPFR_SET_EXP (they should almost
36841	completely replace MPFR_EXP).
36842
368432003-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36844
36845	added test 'special'
36846
36847	fixed bug when n_bits larger than size*BITS_PER_MP_LIMB
36848
368492003-05-18  Vincent Lefèvre  <vincent@vinc17.net>
36850
36851	Bugs fixed (special cases).
36852
368532003-05-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36854
36855	removed dummy test tdump
36856
36857	compatibility with mpf is done
36858
36859	updated mpfr_cmp_d
36860	added mpfr_cmp_d in mpf2mpfr.h and mpfr.texi
36861
368622003-05-13  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
36863
36864	Added cmp_d.c, tcmp_d.c.
36865
36866	Added cmp_d/tcmp_d.
36867
368682003-04-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36869
36870	moved test for NaN/Inf
36871
36872	added Riemann Zeta function (contribution from Jean-Luc Re'my)
36873
368742003-04-08  Kevin Ryde  <user42@zip.com.au>
36875
36876	Move macros down below @copying.
36877
36878	Add @: after various abbreviations.
36879
368802003-04-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36881
36882	fixed pb with count_leading_zeros (n=0)
36883
36884	added test for bug found by Franky Backeljauw
36885
36886	fixed bug found by Franky
36887
368882003-03-28  Vincent Lefèvre  <vincent@vinc17.net>
36889
36890	Added some asserts.
36891
368922003-03-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36893
36894	fixed pb found by Will Galway <galway@pims.math.ca> (continued)
36895
368962003-03-28  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
36897
36898	Patches from W. Galway.
36899
369002003-03-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36901
36902	fixed reference to Plouffe/Bailey/Borwein formula
36903
369042003-03-27  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
36905
36906	Credits for the pi formula modified.
36907
369082003-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36909
36910	changed back "unsigned char *" to "char *"
36911
369122003-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36913
36914	char * -> const unsigned char * for mpfr_set_str, mpfr_set_str_raw,
36915	and mpfr_init_set_str
36916
369172003-03-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36918
36919	removed unused variable
36920
369212003-03-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36922
36923	fixed documentation bug in mpfr_log2 (exact results)
36924
36925	changed new test in 'check4' style
36926
369272003-03-17  Vincent Lefèvre  <vincent@vinc17.net>
36928
36929	Update concerning underflow problems.
36930
369312003-03-17  Kevin Ryde  <user42@zip.com.au>
36932
36933	(main): Comment out underflows(), until it works.
36934
36935	Comment out an assert tickled for an f with exponent
36936	near MPFR_EMIN_MIN.
36937
369382003-03-16  Kevin Ryde  <user42@zip.com.au>
36939
36940	(LONGDOUBLE_NAN_ACTION): New version for IEEE quad big
36941	endian, fixing HP cc.
36942	(WANT_LONGDOUBLE_VOLATILE): New define for when LONGDOUBLE_VOLATILE is
36943	wanted.
36944	(WANT_GMPFR_LONGDOUBLE_VOLATILE): New define for when
36945	__gmpfr_longdouble_volatile is wanted.
36946
36947	Use WANT_GMPFR_LONGDOUBLE_VOLATILE.
36948
36949	(MPFR_C_LONG_DOUBLE_FORMAT): Add IEEE quad big endian,
36950	check long double exists before testing.
36951
369522003-03-14  Vincent Lefèvre  <vincent@vinc17.net>
36953
36954	Added underflow test showing a bug in mpfr_pow.
36955
369562003-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36957
36958	fixed bug for x=1
36959
369602003-03-14  Vincent Lefèvre  <vincent@vinc17.net>
36961
36962	This wasn't a compiler bug; mpfr_pow is really buggy.
36963	Added some asserts to show that.
36964
36965	The infinite loop concerning 1^0.5 was probably due to a bug in the
36966	compiler [cc (GCC) 3.2.3 20030309 (Debian prerelease)]: adding some
36967	printf's changes the values of the variables and the correct result
36968	is returned.
36969
369702003-03-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36971
36972	fixed sign problem in particular_cases()
36973
36974	declared mpfr_ui_pow_is_exact as static
36975
36976	gnu-style
36977
369782003-03-13  Vincent Lefèvre  <vincent@vinc17.net>
36979
36980	Removed some useless and inaccurate tests on NaN, infinities, zeros
36981	(as the behavior of mpfr_pow on such particular cases has changed);
36982	similar tests were added to "tests/tpow.c".
36983
36984	Test of mpfr_pow: particular cases. Bugs.
36985
369862003-03-12  Vincent Lefèvre  <vincent@vinc17.net>
36987
36988	Special cases for mpfr_pow().
36989
369902003-03-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
36991
36992	when stream=NULL, use stdout (as indicated in the documentation)
36993
369942003-03-03  Vincent Lefèvre  <vincent@vinc17.net>
36995
36996	mpfr_sin_sign -> static.
36997
36998	Useless declaration removed.
36999
37000	Special cases for mpfr_pow: like Section F.9.4.4 of the
37001	ISO C99 standard.
37002
37003	Prototype fixed.
37004
370052003-02-27  Vincent Lefèvre  <vincent@vinc17.net>
37006
37007	mpfr_set_str now accepts a binary exponent for base 16
37008	(as defined by the ISO C99 standard).
37009
37010	Comment concerning the installation of MPFR: done.
37011
37012	New recommendation to install MPFR.
37013
370142003-02-24  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
37015
37016	Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24].
37017
370182003-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37019
37020	added one test
37021
370222003-02-21  Vincent Lefèvre  <vincent@vinc17.net>
37023
37024	Fixed cast (though unnecessary).
37025
370262003-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37027
37028	added one test
37029
370302003-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37031
37032	added mpf_compat, mpfr_compat
37033
37034	test files for mpf-mpfr compatibility
37035
37036	added mpfr_init_set_str
37037
37038	added "const" to char* arg. of mpfr_init_set_str
37039
37040	added macros for new mpfr functions
37041	changed some old macros
37042
37043	mpfr_isinteger -> mpfr_integer_p
37044
37045	document new functions (fits_*, get_ui, get_si, get_d_2exp)
37046	added integer_p that was not documented
37047
37048	mpfr_isinteger -> mpfr_integer_p
37049	new functions: mpfr_fits_*, mpfr_get_ui, mpfr_get_si, mpfr_get_d_2exp
37050
37051	added mpfr_get_d_2exp
37052
37053	new functions mpfr_fits_* and mpfr_get_ui/si
37054
37055	new functions mpfr_fits_* and mpfr_get_[us]i
37056
370572003-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37058
37059	check for +/-0.0 after variable set to NaN
37060
370612003-01-25  Vincent Lefèvre  <vincent@vinc17.net>
37062
37063	Suppressed the underscores of AC_CHECK_LIBM in comments, otherwise
37064	aclocal 1.4-p6 includes libtool code in aclocal.m4 and this leads
37065	to compilation problems.
37066
370672003-01-25  Kevin Ryde  <user42@zip.com.au>
37068
37069	(_MPFR_H_HAVE_FILE): Copy FILE define tests from gmp.h, adds
37070	Borland, Microsoft and Apple MPW.
37071
37072	(libmpfr_a_SOURCES): Add volatile.c.
37073
37074	New file.
37075
37076	(Isnan_ld): New function based on LONGDOUBLE_NAN_ACTION, use it
37077	instead of LONGDOUBLE_ISNAN.
37078
37079	(LONGDOUBLE_ISNAN): Remove.
37080
37081	(LONGDOUBLE_ISNAN): Remove this, use LONGDOUBLE_NAN_ACTION instead.
37082
37083	(LONGDOUBLE_NAN_ACTION): New macro.
37084
370852003-01-24  Kevin Ryde  <user42@zip.com.au>
37086
37087	Allow "e" exponent in base<=10 not <10.  Restrict "E"
37088	exponent to base<=10 too, since digits are not case sensitive.
37089
370902003-01-24  Vincent Lefèvre  <vincent@vinc17.net>
37091
37092	Prototypes: use static. Some code reformatting.
37093
37094	The sign wasn't set when the result was zero.
37095
370962003-01-24  Kevin Ryde  <user42@zip.com.au>
37097
37098	Reject "", "+" and "-", also fixing an attempt to allocate a 0 length
37099	block in these cases.
37100
37101	Clear NAN and INF flags when setting result to zero.
37102
371032003-01-24  Vincent Lefèvre  <vincent@vinc17.net>
37104
37105	Fixed prototypes (use static...).
37106
37107	Missing #include.
37108
371092003-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37110
37111	workaround for gcc bug on m68040-unknown-netbsd1.4.1
37112
37113	added cast to double
37114
371152003-01-23  Kevin Ryde  <user42@zip.com.au>
37116
37117	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37118	not "double" nans and infs.
37119
371202003-01-22  Kevin Ryde  <user42@zip.com.au>
37121
37122	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37123	not "double" nans and infs.
37124
37125	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37126	not "double" nans and infs.
37127
37128	Use tests_start_mpfr / tests_end_mpfr.
37129
37130	Use tests_start_mpfr / tests_end_mpfr.
37131
37132	Use tests_start_mpfr / tests_end_mpfr.
37133	(check_large): Use __gmp_free_func to free mpfr_get_str result.
37134
37135	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37136	not "double" nans and infs.  Use tests_start_mpfr / tests_end_mpfr.
37137
37138	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37139	not "double" nans and infs.
37140
37141	Remove tests involving "double" nans and infs, covered by check_nan.
37142
37143	Use mpfr_set_nan and mpfr_set_inf for NaN and Inf tests,
37144	not "double" nans and infs.
37145
371462003-01-18  Kevin Ryde  <user42@zip.com.au>
37147
37148	Move log_b2.h from include_HEADERS to libmpfr_a_SOURCES, it doesn't
37149	want to be installed.
37150
37151	Correction to memory leak fix, need "result" for final rounding.
37152
371532003-01-17  Kevin Ryde  <user42@zip.com.au>
37154
37155	Fix two memory leaks.
37156
37157	(LDADD): Add $(MPFR_LIBM).
37158
37159	Remove -lm setups, now handled by MPFR_CHECK_LIBM.
37160
37161	(MPFR_CHECK_LIBM): New macro.
37162	(MPFR_CONFIGS): Use it.
37163
371642003-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37165
37166	added copyright notices and license statements
37167
37168	now use __gmpfr_floor_log2 instead of floor/log to get rid of math.h
37169
37170	removed unused function dagm(), and get rid of math.h
37171	added tests for NaN, Inf's
37172
371732003-01-17  Vincent Lefèvre  <vincent@vinc17.net>
37174
37175	Re-added $OBJEXT, using AC_REQUIRE([AC_OBJEXT]) for old autoconf.
37176
371772003-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37178
37179	put back math.h
37180
37181	added back math.h (for sqrt)
37182
37183	added log_b2.h in include_HEADERS
37184
37185	added tsin_cos
37186
37187	added #ifdef HAVE_DENORMS for denormalized test
37188
37189	removed math.h
37190
37191	added year 2003 in copyright line
37192	removed math.h
37193
37194	added 2003, removed math.h
37195
37196	added 2003
37197
37198	removed math.h
37199
37200	added year 2003
37201	removed math.h
37202
37203	patch for compiler bug on hppa2.0w-hp-hpux11.11
37204
372052003-01-16  Vincent Lefèvre  <vincent@vinc17.net>
37206
37207	Macro LONGDOUBLE_ISNAN wasn't defined.
37208
372092003-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37210
37211	now always define Isnan
37212
37213	moved LONGDOUBLE_ISNAN to mpfr-test.h
37214
37215	removed check from isnan
37216
37217	replaced isnan() by Isnan()
37218
372192003-01-16  Vincent Lefèvre  <vincent@vinc17.net>
37220
37221	AC_PREREQ(2.50) added (useful when both autoconf 2.13 and autoconf
37222	2.50 are installed, with a wrapper to select the required version).
37223
37224	Comment in mpfr_test_init: s/preprocessor/compiler/.
37225
372262003-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37227
37228	fixed pb in mpfr_test_init with the compiler optimizing too much
37229	(this happened on Alpha with -O1 or higher)
37230
372312003-01-15  Vincent Lefèvre  <vincent@vinc17.net>
37232
37233	Standard prototype only. Particular cases added.
37234
372352003-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37236
37237	moved common prototype for mpn_exp in mpfr-impl.h
37238
37239	removed spurious ; after MPFR_ESIZE
37240	added prototype for mpn_exp
37241
37242	removed items done
37243
37244	new tests from Alain Delplanque
37245
37246	new version using mpn_set_str
37247	[written by Alain Delplanque, edited by Paul Zimmermann]
37248
372492003-01-15  Vincent Lefèvre  <vincent@vinc17.net>
37250
37251	Replace $OBJEXT by o (as $OBJEXT isn't defined everywhere).
37252
37253	A ` must be quoted to avoid an error with Autoconf 2.13.
37254
37255	Use type mp_prec_t for precisions.
37256
37257	Source re-indented.
37258
37259	Several bugs fixed concerning the particular cases.
37260	<stdio.h> and <stdlib.h> not included by default.
37261	int mpfr_gamma _PROTO ... removed (was useless).
37262
372632003-01-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37264
37265	get rid of ceil() call, that requires -lm
37266
372672003-01-14  Kevin Ryde  <user42@zip.com.au>
37268
37269	Force LDBL_MANT_DIG on IEEE extended, to avoid problems with
37270	some i386 gcc.
37271
37272	Avoid problems with bad LDBL_MAX and LDBL_MANT_DIG on some i386 gcc.
37273
37274	(MPFR_C_LONG_DOUBLE_FORMAT): New macro.
37275	(MPFR_CONFIGS): Use it.
37276
372772003-01-11  Vincent Lefèvre  <vincent@vinc17.net>
37278
37279	Required casts added (and switch from uint to ulong);
37280	in particular, useful on Alpha.
37281
372822003-01-10  Kevin Ryde  <user42@zip.com.au>
37283
37284	# Add a copyright year.
37285
37286	Tolerate empty argv[1], which can arise from ancient bash executing
37287	the libtool shared library wrapper script.
37288
37289	Tolerate empty argv[1], which can arise from ancient bash executing
37290	the libtool shared library wrapper script.
37291
37292	Avoid unnecessary extra power of 2 squaring, so as not to provoke an
37293	overflow exception when result is in range.
37294
372952003-01-10  Vincent Lefèvre  <vincent@vinc17.net>
37296
37297	Extended precision detection fixed.
37298
372992003-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37300
37301	fixed possible overflow when EXP=1024
37302
37303	rewritten to avoid overflows
37304
37305	added one test
37306
373072003-01-08  Kevin Ryde  <user42@zip.com.au>
37308
37309	# Add a copyright year.
37310
37311	#Add a copyright year.
37312
37313	(mpn_exp): Don't store -1 in a uint then return it as a long.
37314	Fixes systems such as alpha where sizeof(uint)!=sizeof(long).
37315
37316	(AC_CHECK_HEADERS): Remove fpu_control.h, no longer required.
37317
37318	Use tests_machine_prec_long_double.
37319	Use LDBL_MAX for largest value and to find largest power of 2.
37320
37321	(__setfpucw, _FPU_EXTENDED, etc): Remove these setups.
37322	(tests_machine_prec_double, tests_machine_prec_long_double,
37323	x86_fstcw, x86_fldcw): Add prototypes.
37324
37325	(tests_machine_prec_double, tests_machine_prec_long_double): New functions.
37326	(mpfr_test_init): Replace __setfpucw with tests_machine_prec_double.
37327
37328	(MPFR_CONFIGS): Add tests/x86.asm support.
37329
37330	(X86_PATTERN): New define, supporting acinclude.m4.
37331
37332	Add x86.asm support.
37333
37334	New file.
37335
373362003-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37337
37338	fixed pb for underflow and rounding to nearest
37339
37340	added macro LONGDOUBLE_ISNAN
37341	use LONGDOUBLE_ISNAN in set_ld instead of cast to double and DOUBLE_ISNAN
37342	(did raise exception under freebsd)
37343
373442003-01-07  Vincent Lefèvre  <vincent@vinc17.net>
37345
37346	Added assertions that can be resolved at compile time: the exponents
37347	must be representable in a long int (IMHO, this limitation should be
37348	avoided in a clean way).
37349
373502003-01-06  Kevin Ryde  <user42@zip.com.au>
37351
37352	Remove mpfr_get_ld, done.
37353
37354	Remove mpfr_set_machine_rnd_mode, done.
37355
373562003-01-06  Vincent Lefèvre  <vincent@vinc17.net>
37357
37358	Bug fix: __mpfr_emax -> __gmpfr_emax.
37359
373602003-01-06  Kevin Ryde  <user42@zip.com.au>
37361
37362	Use separate function calls to second strncasecmp and strncmp
37363	for consistency and to avoid gcc warnings.
37364
373652003-01-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37366
37367	fixed infinite loop for 2^integer
37368
373692003-01-06  Vincent Lefèvre  <vincent@vinc17.net>
37370
37371	Use digit_value_in_base for the part after the '.'.
37372
37373	Static function digit_value_in_base is now compatible with any locale.
37374
373752003-01-03  Kevin Ryde  <user42@zip.com.au>
37376
37377	(<sys/fpu.h>) [__mips]: Move from mpfr-test.h to tests/tests.c,
37378	and conditionalize with HAVE_SYS_FPU_H.
37379
37380	(AC_CHECK_HEADERS): Add sys/fpu.h.
37381
37382	(HAVE_DENORMS) [__mips]: Remove this, let the configure test decide.
37383
37384	Use separate function calls to strncasecmp and strncmp, rather than
37385	?: on function pointers, since the latter demands declarations not
37386	present on SunOS.  Both forms are optimized the same by gcc.
37387
373882003-01-03  Vincent Lefèvre  <vincent@vinc17.net>
37389
37390	Added some potential bugs (mpfr_exp2 is known to have such a bug).
37391
373922003-01-02  Kevin Ryde  <user42@zip.com.au>
37393
37394	Add gmp-impl.h for __gmp_free_func.
37395
373962002-12-16  Vincent Lefèvre  <vincent@vinc17.net>
37397
37398	Suppress some #define and fix symbol names (makes code cleaner):
37399	perl -pi -e 's/__mpfr_flags/__gmpfr_flags/g' **/*.{c,h}
37400	perl -pi -e 's/__mpfr_emin/__gmpfr_emin/g' **/*.{c,h}
37401	perl -pi -e 's/__mpfr_emax/__gmpfr_emax/g' **/*.{c,h}
37402	perl -pi -e 's/__mpfr_default_fp_bit_precision/__gmpfr_default_fp_bit_precision/g' **/*.{c,h}
37403	perl -pi -e 's/__gmp_default_rounding_mode/__gmpfr_default_rounding_mode/g' **/*.{c,h}
37404	perl -pi -e 's/__mpfr_const_log2_prec/__gmpfr_const_log2_prec/g' **/*.{c,h}
37405	perl -pi -e 's/__mpfr_const_pi_prec/__gmpfr_const_pi_prec/g' **/*.{c,h}
37406	perl -pi -e 's/_mpfr_ceil_log2/__gmpfr_ceil_log2/g' **/*.{c,h}
37407	perl -pi -e 's/_mpfr_floor_log2/__gmpfr_floor_log2/g' **/*.{c,h}
37408	perl -pi -e 's/_mpfr_ceil_exp2/__gmpfr_ceil_exp2/g' **/*.{c,h}
37409	perl -pi -e 's/_mpfr_isqrt/__gmpfr_isqrt/g' **/*.{c,h}
37410	perl -pi -e 's/_mpfr_cuberoot/__gmpfr_cuberoot/g' **/*.{c,h}
37411	perl -pi -e 's/^#define __gmpfr_.*\n//' *.h
37412
374132002-12-13  Vincent Lefèvre  <vincent@vinc17.net>
37414
37415	Update.
37416
37417	IEEE 754 / IEEE P754 -> IEEE 754-1985.
37418
37419	Correction.
37420
37421	Added a note about the signed zero.
37422
37423	Assertion re-added.
37424
37425	Update for new version of automake/autoconf.
37426
37427	depcomp script added for new version of automake.
37428
374292002-12-12  Kevin Ryde  <user42@zip.com.au>
37430
37431	Don't -D define PACKAGE_VERSION etc, to avoid conflict with gmp config.h.
37432
374332002-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37434
37435	added paragraph about accuracy
37436
37437	rewritten unclear paragraph about precision
37438
37439	added one item
37440
37441	use MPN_NORMALIZE_NOT_ZERO instead of loop
37442
374432002-12-11  Vincent Lefèvre  <vincent@vinc17.net>
37444
37445	Added #include "mpfr.h" (needed by mpfr-test.h as it uses
37446	mp_rnd_t in one of the prototypes).
37447
374482002-12-10  Vincent Lefèvre  <vincent@vinc17.net>
37449
37450	Patch by Torbjorn Granlund <tege@swox.com>: Don't use TMP_ allocation
37451	mechanism for fixed size objects. Resulting streamlining. Misc
37452	addressing changes to work around GNUPro bugs.
37453	Patch by VL: Some other changes in mpfr_set_d.
37454
374552002-12-07  Vincent Lefèvre  <vincent@vinc17.net>
37456
37457	(mpfr_const_euler_S, mpfr_const_euler_R)
37458	Make declaration match prototype (patch by Torbjorn Granlund).
37459
374602002-12-04  Vincent Lefèvre  <vincent@vinc17.net>
37461
37462	Update from ftp://ftp.gnu.org/pub/gnu/config/
37463
374642002-12-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37465
37466	Use @ifnottex/@end iffnotex instead of @ifinfo/@end ifinfo
37467
374682002-12-02  Vincent Lefèvre  <vincent@vinc17.net>
37469
37470	Fix rnd_mode.c (again).
37471
374722002-12-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37473
37474	put redefinitions of external symbols just before prototypes
37475
37476	updated
37477
37478	added new known bugs
37479
374802002-11-29  Kevin Ryde  <user42@zip.com.au>
37481
37482	Add notes on mpf_t maintaining actual size for efficiency.
37483
37484	Remove mpfr_set_machine_rnd_mode task.
37485
37486	Tweak some math formatting for tex.
37487
37488	(mpfr_set_machine_rnd_mode): Move prototype to mpfr-test.h.
37489
37490	(libfrtests_a_SOURCES): Add rnd_mode.c.
37491
37492	(libmpfr_a_SOURCES): Remove rnd_mode.c.
37493
37494	Remove file, moved to tests directory.
37495
37496	New file, moved from top-level directory.
37497
37498	(Rounding Modes): Remove mpfr_set_machine_rnd_mode.
37499
37500	Use GNU style code layout.
37501
37502	Use GNU style code layout.
37503
375042002-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37505
37506	redefined external symbols in the __gmpfr namespace
37507
375082002-11-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37509
37510	added one fprintf in case of error
37511
375122002-11-25  Vincent Lefèvre  <vincent@vinc17.net>
37513
37514	mpfr_set_machine_rnd_mode fixed to compile on some architectures
37515	(e.g. ARM). Now returns an int.
37516
37517	Bug fixed.
37518
375192002-11-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37520
37521	removed all tests that compare to libm
37522
37523	changed to distinguish mpfr failures from libm failures
37524
37525	added 3 tests that make libm fail under HP-PA
37526
375272002-11-23  Vincent Lefèvre  <vincent@vinc17.net>
37528
37529	Update.
37530
375312002-11-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37532
37533	forgot to remove debug statement
37534
37535	fixed bug (infinite loop) for exact powers
37536
375372002-11-21  Kevin Ryde  <user42@zip.com.au>
37538
37539	More on tuned thresholds, more on config.h etc, new section on mpf/mpfr
37540	integration.
37541
375422002-11-20  Vincent Lefèvre  <vincent@vinc17.net>
37543
37544	Code clean-up.
37545
375462002-11-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37547
37548	fixed some problems found by insure
37549
37550	forgotten fclose() call
37551
37552	fixed array bound write
37553
375542002-11-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37555
37556	fixed non-ansi features
37557
37558	added explicit cast
37559
375602002-10-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37561
37562	added mpfr_cbrt
37563
375642002-10-20  Vincent Lefèvre  <vincent@vinc17.net>
37565
37566	Update.
37567
375682002-10-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37569
37570	fixed bug with wrong sign detection
37571
375722002-10-19  Vincent Lefèvre  <vincent@vinc17.net>
37573
37574	Some fixes to avoid overflows.
37575
375762002-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37577
37578	fixed bug for large arguments
37579
37580	improved code for rounding to nearest
37581
37582	fixed bug for EXP(x) > EMAX/2
37583
37584	modified description of hypot and cbrt
37585
375862002-10-18  Vincent Lefèvre  <vincent@vinc17.net>
37587
37588	Update.
37589
37590	Added test showing bug in sign detection.
37591
37592	Added newline.
37593
37594	Bug in mpfr_hypot.
37595
37596	Added test that makes mpfr_hypot fail.
37597
37598	Precision Nt: int -> mp_prec_t.
37599
37600	Added some tests.
37601
37602	main () -> main (void).
37603
376042002-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37605
37606	added tcbrt.c, test file for mpfr_cbrt
37607
37608	fixed overflow problem
37609
37610	completely rewritten using mpz_root
37611
37612	added cbrt
37613
376142002-10-17  Vincent Lefèvre  <vincent@vinc17.net>
37615
37616	C9X -> ISO/IEC 9899:1999 (ISO C99).
37617
37618	Cases NaN and -0.0 taken into account.
37619
376202002-10-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37621
37622	added check for +0 and -0
37623
37624	added one test (2^1024)
37625
37626	fixed bug when overflow for double type
37627
37628	added mpfr_set_ld and mpfr_get_ld
37629
376302002-10-16  Vincent Lefèvre  <vincent@vinc17.net>
37631
37632	Fix for -0.0.
37633
376342002-10-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37635
37636	constants for mpfr_get_str and mpfr_set_str
37637
376382002-10-16  Vincent Lefèvre  <vincent@vinc17.net>
37639
37640	Obsolete comment removed.
37641
37642	Removed log_b2.h as it doesn't seem to be necessary.
37643
376442002-10-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37645
37646	added prototype for mpfr_get_ld
37647
37648	added mpfr_get_ld and tests for set_ld/get_ld
37649
37650	added cast to long double
37651
376522002-10-16  Vincent Lefèvre  <vincent@vinc17.net>
37653
37654	Update (tset_ld).
37655
37656	Test removed as the minimal precision for a long double is something
37657	like 10 decimal digits. Anyway, there are implementations for which
37658	long double = double = IEEE double precision.
37659
37660	DBL_MANT_DIG and LDBL_MANT_DIG are normally defined by <float.h>.
37661
376622002-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37663
37664	added mpfr_set_ld and test file
37665
376662002-10-13  Vincent Lefèvre  <vincent@vinc17.net>
37667
37668	Bug in mpfr_sin (and perhaps other functions): error analysis.
37669
37670	Bug fixed (found by Dmitrii Baksheyev): atan(1) cannot be exact.
37671
376722002-10-08  Kevin Ryde  <user42@zip.com.au>
37673
37674	Remove mpfr_get_str using mpn_get_str (done).
37675	Remove no grepping for __setfpucw, done (near enough).
37676	New thread-safety section, add const_pi and const_log2 caching.
37677	New portability section, add mingw random and _mpfr_ceil_log2 IEEE-ism.
37678
37679	(AC_MY_LIBS): Show the filename in the error message.
37680
376812002-10-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37682
37683	mpfr_get_default_prec was missing (thanks to F. Morain)
37684
376852002-09-30  Vincent Lefèvre  <vincent@vinc17.net>
37686
37687	Removed get_str.c bug, as the mpfr_get_str function has
37688	completely been rewritten.
37689
376902002-09-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37691
37692	fixed wrong inexact flag for a - b where a and b are of different signs
37693	and EXP(a) < EXP(b)
37694
37695	added test for inexact flag (bug found by Andreas Enge)
37696
376972002-09-23  Kevin Ryde  <user42@zip.com.au>
37698
37699	(mpfr_init, mpfr_init2, mpfr_set_prec): Make void return, these always
37700	succeed.
37701
377022002-09-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37703
37704	fixed various tiny problems
37705
37706	added more tests for mpfr_urandomb, and for small precision
37707
37708	fixed bugs in mpfr_random2 (wrong exponent, invalid numbers)
37709
37710	added checks for mpfr_random2
37711
37712	cmp_abs -> cmpabs (for compatibility with mpz)
37713
377142002-09-21  Kevin Ryde  <user42@zip.com.au>
37715
37716	(Converting Floats): Don't refer to the internal _mp_free_func with
37717	mpfr_get_str.
37718
37719	(Special Functions, Internals): Make these into nodes.
37720
377212002-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37722
37723	now accept uppercase letters too
37724
37725	added test for uppercase letters
37726
377272002-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37728
37729	now mpfr_agm returns an int (inexact flag)
37730
377312002-09-13  Vincent Lefèvre  <vincent@vinc17.net>
37732
37733	Some more information.
37734
377352002-09-12  Vincent Lefèvre  <vincent@vinc17.net>
37736
37737	On HP-UX, use the +allowunsats switch for ld, otherwise ld complains
37738	that some GMP symbols are unsatisfied.
37739
377402002-09-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37741
37742	fixed bug in reflection formula for x<1
37743
377442002-08-23  Vincent Lefèvre  <vincent@vinc17.net>
37745
37746	MPFR now needs GMP 4.1 or higher.
37747
377482002-08-22  Kevin Ryde  <user42@zip.com.au>
37749
37750	(__mpfr_nan): Clarify comments about HP C and alpha.
37751
37752	(_MPFR_NAN_BYTES, _MPFR_INFP_BYTES, _MPFR_INFM_BYTES):
37753	Use HAVE_DOUBLE_IEEE_LITTLE_ENDIAN etc to select endianness, not a big
37754	block of #ifdefs.
37755
377562002-08-12  Vincent Lefèvre  <vincent@vinc17.net>
37757
37758	strcasecmp.c -> strcasecmp.c & strncasecmp.c
37759
377602002-08-07  Kevin Ryde  <user42@zip.com.au>
37761
37762	Use $(top_builddir) consistently with libmpfr.a, for the benefit of
37763	srcdir!=builddir.
37764
377652002-08-02  Vincent Lefèvre  <vincent@vinc17.net>
37766
37767	Don't touch user specified flags (CFLAGS). [patch by Kevin Ryde]
37768
377692002-07-30  Vincent Lefèvre  <vincent@vinc17.net>
37770
37771	Better check for strcasecmp and strncasecmp. Bug fixed.
37772
377732002-07-28  Vincent Lefèvre  <vincent@vinc17.net>
37774
37775	Functions mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p,
37776	mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
37777
37778	Use AUTOMAKE_OPTIONS = gnu [suggested by Kevin Ryde]
37779
37780	check target -> TESTS = $(check_PROGRAMS) [suggested by Kevin Ryde]
37781
37782	strcasecmp and strncasecmp -> mpfr_strcasecmp and mpfr_strncasecmp
37783	if they are provided by MPFR.
37784
37785	TMP_MARK missing (patch by Kevin Ryde).
37786
377872002-07-26  Vincent Lefèvre  <vincent@vinc17.net>
37788
37789	Update.
37790
37791	Update (mainly concerning CVS use).
37792
37793	Prototype of mpfr_setmax and mpfr_setmin changed (exponent given).
37794	In mpfr_exp for x ~= 0, add_one_ulp and sub_one_ulp are no longer
37795	used (sub_one_ulp was incorrect). These cases should now be faster.
37796	Small fix in mpfr_nextabove, mpfr_nextbelow and mpfr_nexttoward.
37797
37798	New internal functions mpfr_setmin and mpfr_setmax.
37799	New functions mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward.
37800	Small fix in mpfr_sub_one_ulp.
37801
378022002-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37803
37804	improved the computation of g = ceil((e-1)/log_2(beta)), using two tables
37805
378062002-07-25  Vincent Lefèvre  <vincent@vinc17.net>
37807
37808	Function mpfr_check_range now propagates the inexact ternary value.
37809	Function mpfr_restore_emin_emax OR's the saved flags with the current
37810	flags, as this is more useful in general.
37811	Macro MPFR_RESTORE_RET removed (no longer useful).
37812
378132002-07-24  Vincent Lefèvre  <vincent@vinc17.net>
37814
37815	Change concerning an assertion, due to GMP limitation.
37816
378172002-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37818
37819	gnu indentation
37820
37821	reduce range of tests (did take too much time)
37822
37823	added plenty of new cases, now covers all lines of get_str.c
37824
37825	updated documentation of mpfr_get_str
37826
37827	completely new version, written by Alain Delplanque and Paul Zimmermann.
37828	It now directly uses mpn_get_str, with subquadratic complexity.
37829	About 3 times faster than previous version in most cases.
37830
378312002-07-24  Vincent Lefèvre  <vincent@vinc17.net>
37832
37833	Bug fixed: unsigned int variables changed to int to avoid operations
37834	with mixed signed/unsigned variables and unwanted casts.
37835
37836	Function mpfr_frac and tests added.
37837
37838	Bug fixed (0 was forgotten).
37839
37840	Optimization: mpfr_trunc no longer used!
37841
37842	mpfr_isinteger extended to non-fp numbers and to zero.
37843
37844	Simpler test.
37845
378462002-07-23  Vincent Lefèvre  <vincent@vinc17.net>
37847
37848	Re-adding mul.c with fixed permissions.
37849
37850	Temporarily removing mul.c in order to try to fix its permissions.
37851
37852	Function mpfr_check_range improved in the underflow case.
37853
378542002-07-22  Vincent Lefèvre  <vincent@vinc17.net>
37855
37856	Update.
37857
378582002-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37859
37860	now dump in base 2
37861
37862	forgot one free() call
37863
378642002-07-22  Vincent Lefèvre  <vincent@vinc17.net>
37865
37866	mpfr_pow bug removed.
37867
37868	Reindentation.
37869
37870	pow.c: bug fixed (in the call to mpfr_can_round).
37871	tpow.c: mpfr_clear added.
37872
37873	Modified the two tests to make the bug appear.
37874
378752002-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37876
37877	added two tests
37878
378792002-07-19  Vincent Lefèvre  <vincent@vinc17.net>
37880
37881	Updated note concerning rcs2log.
37882
37883	Line mpfr_get_exp / mpfr_set_exp removed.
37884
378852002-07-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37886
37887	added function check_large
37888
378892002-07-15  Vincent Lefèvre  <vincent@vinc17.net>
37890
37891	Update from ftp://ftp.gnu.org/pub/gnu/config/
37892
378932002-07-14  Vincent Lefèvre  <vincent@vinc17.net>
37894
37895	Add __sparc__ (patch by Nix <nix@esperi.demon.co.uk>).
37896
37897	Note about randomized tests.
37898
378992002-07-04  Vincent Lefèvre  <vincent@vinc17.net>
37900
37901	Bug concerning the rounding of pow().
37902
37903	mpfr_pow() didn't work when the exponent was a negative integer.
37904
37905	mpfr_get_z_exp() didn't work when the MPFR number was negative.
37906
37907	New functions mpfr_get_exp and mpfr_set_exp.
37908
379092002-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37910
37911	removed duplicated entry (thread-safe)
37912
37913	added new items
37914
37915	added special cases
37916
37917	added one reference (nocite)
37918
37919	added one reference
37920
37921	fixed bug in return value
37922
37923	new additions
37924
37925	added pointer to mpfr_inp_str in mpfr_set_str
37926
379272002-06-26  Vincent Lefèvre  <vincent@vinc17.net>
37928
37929	Update.
37930
37931	MP_LIMB_T_HIGHBIT -> MPFR_LIMB_HIGHBIT.
37932	MPFR is now compatible with GMP 4.1.
37933
379342002-06-15  Vincent Lefèvre  <vincent@vinc17.net>
37935
37936	Added: make MPFR thread-safe.
37937
379382002-06-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37939
37940	fixed bug found by Gerardo Ballabio
37941
37942	added one test (bug in mpfr-2.0.1 found by Gerardo Ballabio)
37943
379442002-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37945
37946	added mpfr_modf
37947
379482002-06-12  Vincent Lefèvre  <vincent@vinc17.net>
37949
37950	Added modf (to implement).
37951
379522002-06-08  Vincent Lefèvre  <vincent@vinc17.net>
37953
37954	check: Apply a hack to the parameter order to make sparc gcc 2.95.2
37955	happy (patch by Kevin Ryde) + static added.
37956
37957	Patch by Kevin Ryde.
37958
37959	Suppress tests if sqrt is not affected by mpfr_set_machine_rnd_mode
37960	(patch by Kevin Ryde).
37961
37962	Update.
37963
37964	fdl.texi added.
37965
37966	Patch by Kevin Ryde (and Vincent Lefevre).
37967	mpfr.texi: Change license to FDL, use @copying per texinfo 4.2.
37968	Use @dircategory, @direntry, @documentdescription.
37969	Move @contents to start of file.
37970	(VERSION, UPDATED): New variables.
37971	(m, GMPtimes, times): New macros.
37972	(Float Arithmetic): Fix html output.  Reported by Richard Dawe.
37973	(GNU Free Documentation License): New appendix.
37974
379752002-06-06  Vincent Lefèvre  <vincent@vinc17.net>
37976
37977	Use gmp-impl.h to get MPFR_HAVE_FESETROUND (reported by Kevin Ryde).
37978
379792002-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
37980
37981	patch for mpfr.texi
37982
37983	patch from Richard Dawe <richdawe@bigfoot.com> to generate HTML
37984
37985	added mpfr_gamma in libmpfr
37986
379872002-06-05  Vincent Lefèvre  <vincent@vinc17.net>
37988
37989	Check for isnan.
37990
379912002-05-29  Vincent Lefèvre  <vincent@vinc17.net>
37992
37993	Bug fixed (possible integer overflow).
37994
37995	Bug fixed (possible integer overflow).
37996
37997	Bug fixed (possible integer overflow).
37998
37999	Note added for mpfr_check_range. Bug fixed.
38000
38001	Sign wasn't set (reported by Dmitrii Baksheyev).
38002	Types fixed and code clean-up.
38003
38004	Types fixed and code clean-up.
38005
380062002-05-27  Vincent Lefèvre  <vincent@vinc17.net>
38007
38008	Patch by Kevin Ryde for memory leak checking + misc declaration fixes.
38009	Code moved from mpfr-test.h to tests.c.
38010
380112002-05-14  Vincent Lefèvre  <vincent@vinc17.net>
38012
38013	Ternary flag for mpfr_agm.
38014
38015	Copyright line updated.
38016
380172002-05-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38018
38019	ternary flag for mpfr_agm?
38020
38021	update wrt mpfr_set_machine_rnd_mode
38022
38023	added mathematical description of arithmetico-geometric mean
38024
380252002-05-08  Vincent Lefèvre  <vincent@vinc17.net>
38026
38027	The problem on a G4 PowerPC was a bug in gcc; this is now tested
38028	in configure (float-conversion bug) and -ffloat-store is used if
38029	need be.
38030
380312002-05-06  Vincent Lefèvre  <vincent@vinc17.net>
38032
38033	Problem on the G4 PowerPC.
38034
380352002-04-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38036
38037	fixed problem (infinite loop) in mpfr_pow for exact powers
38038
38039	fixed errors found by Sylvain Pion
38040
380412002-04-27  Vincent Lefèvre  <vincent@vinc17.net>
38042
38043	not relevant -> undefined.
38044
38045	Some changes concerning the internals and zeros
38046	(including remarks by Kevin Ryde).
38047
380482002-04-25  Vincent Lefèvre  <vincent@vinc17.net>
38049
38050	Check if HUGE_VAL is supported.
38051
38052	Changes in mpfr_set_str.
38053
380542002-04-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38055
38056	update
38057
38058	mpfr_set_str doesn't require any more a final '\0'
38059	             and return the number of characters read
38060
38061	modified tests for special values
38062
380632002-04-24  Vincent Lefèvre  <vincent@vinc17.net>
38064
38065	Description updated.
38066
38067	mpfr_cmp_abs no longer an internal function and described in mpfr.texi.
38068	In mpfr.texi, a @var{} was forgotten.
38069
38070	mpfr_cmp_abs can now be called on zero numbers.
38071
38072	Structures are used to get correct alignment.
38073
380742002-04-23  Vincent Lefèvre  <vincent@vinc17.net>
38075
38076	_MPFR_INF*_BYTES fix. On alpha, use a "double" for the bytes,
38077	to avoid a mis-conversion on alpha gcc 3.0.2. (Kevin Ryde)
38078
38079	Underflow semantics changed (not tested).
38080
38081	Code simplified due to change in the maximum exponent range.
38082
380832002-04-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38084
38085	modifs from Andreas
38086
380872002-04-22  Vincent Lefèvre  <vincent@vinc17.net>
38088
38089	Union -> array + cast because of the HP compiler.
38090
380912002-04-20  Vincent Lefèvre  <vincent@vinc17.net>
38092
38093	Avoid constant floating expression, as this doesn't give the correct
38094	result with gcc on some Alpha machines. (patch by Paul Zimmermann)
38095
380962002-04-19  Vincent Lefèvre  <vincent@vinc17.net>
38097
38098	RAND_MAX defined if not already defined (as it should be).
38099
38100	Include config.h, for the benefit of test programs not using
38101	gmp-impl.h (Kevin Ryde).
38102
381032002-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38104
38105	added tests in mpfr_test_init for denorms and extended precision
38106
38107	mpfr_init and mpfr_init2 now return an int
38108
381092002-04-19  Vincent Lefèvre  <vincent@vinc17.net>
38110
38111	Exponent range saved/restored. Returns NaN when the numerator
38112	or the denominator is too large for MPFR.
38113
38114	Added some assertions (any unsigned long must be representable
38115	in a mp_limb_t).
38116
38117	SAFE_ABS changed so that it can be used for any unsigned type.
38118
381192002-04-18  Vincent Lefèvre  <vincent@vinc17.net>
38120
38121	Added code to prevent possible integer overflow when the input number
38122	is very large.
38123
38124	New values for exponent range.
38125
381262002-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38127
38128	call get_d with rounding mode in check2, to avoid problems near +Inf
38129
38130	2147483647 -> INT_MAX
38131
38132	improved ulp() to deal with infinities
38133	and fixed tadd/check2 to deal with infinities
38134
381352002-04-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38136
38137	improved documentation of mpfr_set_precset_prec.
38138
381392002-04-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38140
38141	fixed documentation of cosh/sinh/tanh
38142
381432002-04-16  Vincent Lefèvre  <vincent@vinc17.net>
38144
38145	mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp rewritten.
38146	Prototype changed.
38147
38148	Use AC_CANONICAL_HOST and $host instead of $OS_TYPE and $MACHTYPE
38149	(patch suggested by Kevin Ryde).
38150
38151	Added files from ftp.gnu.org for automake and AC_CANONICAL_HOST.
38152
381532002-04-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38154
38155	replaced 2.2e-307 by DBL_MIN
38156
381572002-04-15  Vincent Lefèvre  <vincent@vinc17.net>
38158
38159	Typo: Gnu -> GNU.
38160
38161	Update for future 2.0.2.
38162
38163	Update for mpfr 2.0.1.
38164
38165	Back to version 2.0.1, updated documentation.
38166
38167	Post-release commit.
38168
38169	Update for mpfr 2.0.1.
38170
38171	mpfr_cmp_ui_2exp and mpfr_cmp_si_2exp can no longer be called with a NaN.
38172	Misc bugs fixed.
38173
381742002-04-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38175
38176	added main changes in version 2.0.1
38177
381782002-04-15  Vincent Lefèvre  <vincent@vinc17.net>
38179
38180	Update for "make dist".
38181
38182	COPYING -> COPYING.LIB and GPL re-added.
38183
38184	Update.
38185
38186	Removed switches -g -O2 as already done by configure.
38187
381882002-04-14  Vincent Lefèvre  <vincent@vinc17.net>
38189
38190	Update.
38191
38192	Removed useless @iftex...
38193
38194	Update.
38195
38196	When q = 0, +0 is returned.
38197
381982002-04-13  Vincent Lefèvre  <vincent@vinc17.net>
38199
38200	Update for the next pre-release.
38201
38202	Support for NaN and Inf (case insensitive) in mpfr_set_str. Tests.
38203
38204	Bug fixed.
38205
38206	Update for the next pre-release.
38207
38208	Misc changes. Use of AC_CACHE_CHECK.
38209
382102002-04-12  Vincent Lefèvre  <vincent@vinc17.net>
38211
38212	Code clean-up.
38213
38214	Update for the next pre-release.
38215
38216	New tests.
38217
38218	mpfr_get_d* fixed.
38219
38220	Types fixed in const_log2.c (this fixes the tconst_log2 crash).
38221
38222	Added a note about the native SunOS 4 C compiler.
38223
382242002-04-11  Vincent Lefèvre  <vincent@vinc17.net>
38225
38226	Type fixed.
38227
38228	mpfr_set_d bug fixed, but other bugs still remain...
38229
38230	NULL was undeclared on some architectures (reported by Torbjorn Granlund).
38231
38232	#include ordering changed for Windows + Cygwin 32.
38233
38234	LDFLAGS changed on HP-UX.
38235
38236	Update for the next pre-release.
38237
38238	Subnormal test in different rounding modes + fix.
38239
38240	Function MPFR_CONFIGS.
38241
38242	Tests added.
38243
38244	get_d.c partly rewritten (Paul Zimmermann).
38245
38246	#include ordering fixed.
38247
38248	Check for gcc float-conversion bug.
38249
382502002-04-10  Vincent Lefèvre  <vincent@vinc17.net>
38251
38252	Added comment for mpfr_round_raw_generic (about using 1-bit precision).
38253
38254	Update (thanks to Nathalie Revol).
38255
38256	Update for the next pre-release.
38257
38258	HAVE_FESETROUND renamed to MPFR_HAVE_FESETROUND to avoid possible
38259	name conflict.
38260
38261	Added missing headers in libmpfr_a_SOURCES.
38262
382632002-04-09  Vincent Lefèvre  <vincent@vinc17.net>
38264
38265	Update for the next pre-release.
38266
38267	Possible tconst_log2 crash under Solaris.
38268
38269	Under OSF, use option -ffloat-store only when the compiler is gcc.
38270
38271	include_HEADERS should contain only mpfr.h and mpf2mpfr.h.
38272
38273	Added code to support fesetround under Solaris.
38274
38275	"In case of problem" update.
38276
38277	Old URL removed.
38278
38279	Renaming: DIR -> GMPINSTALL, GMPDIR -> GMPBUILD. Bug on IRIX updated.
38280
38281	Removed note about stack-alloc.h.
38282
38283	Check for fenv.h -> check for fesetround.
38284
38285	Added note concerning patch submission.
38286
382872002-04-08  Vincent Lefèvre  <vincent@vinc17.net>
38288
38289	Note about overflows. Functions mpfr_{div,mul}_{si,ui} described.
38290
382912002-04-07  Vincent Lefèvre  <vincent@vinc17.net>
38292
38293	Update for the next (and last?) pre-release.
38294
38295	Stricter test for HAVE_INFS.
38296
38297	Update.
38298
38299	Added note about IRIX.
38300
38301	Update for the next pre-release.
38302
38303	mpfr_get_d -> mpfr_get_d1 and mpfr_get_d2 -> mpfr_get_d.
38304
383052002-04-06  Vincent Lefèvre  <vincent@vinc17.net>
38306
38307	Update for the next pre-release.
38308
38309	Update.
38310
383112002-04-05  Vincent Lefèvre  <vincent@vinc17.net>
38312
38313	New file from Paul.
38314
38315	COPYING.LIB removed.
38316
38317	COPYING.LIB -> COPYING.
38318
38319	README.dev added.
38320
383212002-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38322
38323	put back label removed by error
38324
38325	removed _FPU_RC_NEAREST ... for x86 (not used any more, now use fenv.h)
38326
38327	removed nested TMP_MARK's (problems when configuring gmp with --disable-alloca)
38328
38329	fixed pb with two markers (with --disable-alloca)
38330
383312002-04-05  Vincent Lefèvre  <vincent@vinc17.net>
38332
38333	Removed (not used).
38334
383352002-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38336
38337	use AC_CHECK_HEADERS to check for fenv.h
38338	and AC_CHECK_FUNCS to check for lrand48
38339
383402002-04-04  Vincent Lefèvre  <vincent@vinc17.net>
38341
38342	Added "VERSION" and "prepare" descriptions.
38343
383442002-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38345
38346	fixed bugs found by Nathalie
38347
383482002-04-04  Vincent Lefèvre  <vincent@vinc17.net>
38349
38350	Update for the next pre-release.
38351
38352	Removed check for extended precision, as no longer used.
38353
383542002-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38355
38356	added check for denormalized numbers
38357
38358	added new functions to implement
38359
383602002-04-03  Vincent Lefèvre  <vincent@vinc17.net>
38361
38362	Update for the next pre-release.
38363
38364	-ffloat-store is a gcc option.
38365
38366	Added 4th argument to AC_TRY_RUN.
38367
38368	Re-fix.
38369
383702002-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38371
38372	added check for fpu_control.h
38373
38374	added missing cast to double
38375
383762002-04-02  Vincent Lefèvre  <vincent@vinc17.net>
38377
38378	[ ] used around error message.
38379
38380	Update.
38381
38382	Check BITS_PER_MP_LIMB and BYTES_PER_MP_LIMB.
38383
38384	sqrtrem.c removed.
38385
38386	New ChangeLog file (generated by rcs2log).
38387
38388	Suppress PACKAGE and VERSION definitions for the compiler.
38389
383902002-04-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38391
38392	old file
38393
383942002-03-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38395
38396	more "internal" changes suggested by Vincent
38397
38398	added suggestions from Kevin in "internals"
38399
384002002-03-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38401
38402	added test for denorms
38403
38404	on a 32-bit machine, denormalized numbers with high 32 bits to 0
38405	were flushed to zero
38406
384072002-03-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38408
38409	sign of sin(-1) was not set
38410
38411	added check for asin(-1)
38412
38413	added one test
38414
38415	previous fix was completely wrong
38416
38417	fixed pb in cmp_si when i = -2^31 (then beware that -1 * i < 0 !!!)
38418
38419	added check for underflow
38420
384212002-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38422
38423	- use mpfr_test_init to initialize hardware floats
38424	- use #ifdef HAVE_INFS when using DBL_NAN, ...
38425	- fixed some problems with wrongly converted f-p values (esp. under IRIX)
38426
38427	use AC_TRY_CPP instead of AC_TRY_RUN for fenv.h
38428	(otherwise fails on Itanium)
38429
38430	added function mpfr_test_init to initialize full IEEE behaviour
38431
38432	put back simple algorithm that computes x*y exactly and then
38433	directly calls mpfr_add, to avoid wrong inexact flags
38434
38435	added 2002 in copyright line
38436
38437	fixed problem on x86 (set precision to double to avoid double rounding)
38438
38439	added check for valid 1/0, denormalized, and extended precision
38440
384412002-03-26  Vincent Lefèvre  <vincent@vinc17.net>
38442
38443	New-style comment removed.
38444
384452002-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38446
38447	added a description of the mpfr_t type in "Internals"
38448
384492002-03-26  Vincent Lefèvre  <vincent@vinc17.net>
38450
38451	#include <unistd.h> removed. Redefined macros ABS removed.
38452
38453	Patch by Kevin Ryde + misc fixes.
38454
384552002-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38456
38457	replaced getpid() by time(NULL)
38458
38459	MPFR_SIZE and sign were incorrectly set [thanks Kevin]
38460
38461	added check_nan (from Kevin)
38462
38463	fixed bug for sqrt(-0) found by Kevin [NaN flag not cleared]
38464
384652002-03-22  Vincent Lefèvre  <vincent@vinc17.net>
38466
38467	Error message now copes with extended precision.
38468
384692002-03-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38470
38471	added test in configure for checking rand48 functions (HAVE_RAND48)
38472	and fenv.h (HAVE_FENV)
38473	added mpfr_set_machine_rnd_mode (if fenv.h exists)
38474	replaced TEST by HAVE_FENV
38475
384762002-03-22  Vincent Lefèvre  <vincent@vinc17.net>
38477
38478	Missing #include.
38479
38480	MPFR_RETNAN shouldn't be used as no value is returned.
38481
38482	Regarde 0 as positive rather than negative (though it's better not to use it).
38483
38484	Memory leak (patch by Kevin Ryde).
38485
384862002-03-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38487
38488	replaced rand/lrand48, drand48, srand/srand48 by macros
38489	         LONG_RAND, DBL_RAND, SEED_RAND
38490	and time(NULL) by getpid()
38491
38492	added macros LONG_RAND, DBL_RAND, SEED_RAND
38493
38494	added VERSION and mpfr-math.h for "make dist"
38495
384962002-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38497
38498	new functions
38499
38500	now use macros DBL_NAN, DBL_POS_INF, DBL_NEG_INF,
38501	and functions mpfr_set_nan, mpfr_set_inf
38502
38503	defined macros for 0/0, 1/0, -1/0
38504
38505	added new functions mpfr_set_nan and mpfr_set_inf
38506
385072002-03-19  Vincent Lefèvre  <vincent@vinc17.net>
38508
38509	File VERSION added. Contains the next version (currently 2.0.1).
38510	configure.in updated accordingly.
38511
38512	Macros MPFR_DBL_NAN, MPFR_DBL_INFP and MPFR_DBL_INFM.
38513
385142002-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38515
38516	MP_LIMB_T_HIGHBIT -> ULONG_HIGHBIT
38517
38518	moved code under #ifdef
38519
38520	moved code under #ifdef TEST
38521
38522	remove variable sizer (not used)
38523
38524	Library GPL -> Lesser GPL
38525
38526	updated
38527
385282002-03-17  Vincent Lefèvre  <vincent@vinc17.net>
38529
38530	Some changes in the types.
38531
385322002-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38533
38534	changed Nt variable to signed
38535
385362002-03-17  Vincent Lefèvre  <vincent@vinc17.net>
38537
38538	Bugs fixed.
38539
385402002-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38541
38542	added back mpfr_sin_cos
38543
38544	new version (adapted from sin.c)
38545
38546	added tests for tan(3*Pi/4) and tan(7*Pi/4)
38547
38548	fixed bug for tan(3*Pi/4) [wrong sign]
38549
38550	added test for log(10^n)
38551
38552	fixed infinite loop problem for log(10^n)
38553
385542002-03-13  Vincent Lefèvre  <vincent@vinc17.net>
38555
38556	Fix (patch by Kevin Ryde).
38557
38558	Do not read the exponent if it has no meaning.
38559
385602002-03-12  Vincent Lefèvre  <vincent@vinc17.net>
38561
38562	mpfr_random update (patch by Kevin Ryde).
38563
38564	2 more known bugs.
38565
38566	mpfr_a{cos,sin,tan} documentation at a better place.
38567
38568	Some mpfr_clear added (patch by Kevin Ryde).
38569
385702002-03-11  Vincent Lefèvre  <vincent@vinc17.net>
38571
38572	mpfr_get_d3 partially rewritten (to follow the new specifications).
38573	tget_d.c updated because of changes in get_d.c.
38574
38575	Return a null pointer if rnd_mode is an invalid rounding mode.
38576
385772002-03-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38578
38579	set sign before calling mpfr_check_range
38580
38581	stupid typo in previous commit
38582
38583	removed expx (not used)
38584
38585	fixed typo (ai [potentially unsigned] replaced by i)
38586
385872002-03-11  Vincent Lefèvre  <vincent@vinc17.net>
38588
38589	New mpfr_get_d, mpfr_get_d2, mpfr_get_d3.
38590
385912002-03-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38592
38593	added return
38594
385952002-03-11  Vincent Lefèvre  <vincent@vinc17.net>
38596
38597	set_d.c split into get_d.c and set_d.c
38598
385992002-03-11  David Daney  <david.daney@inria.fr>
38600
38601	add cbrt in fonctionnality
38602
386032002-03-11  Vincent Lefèvre  <vincent@vinc17.net>
38604
38605	Bug removed.
38606
38607	#include changes.
38608
386092002-03-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38610
38611	fixed problem when te=ti=1 (i.e. t=0) found by Kevin Ryde
38612
38613	simplified test4()
38614
386152002-03-06  Vincent Lefèvre  <vincent@vinc17.net>
38616
38617	Update.
38618
38619	Update.
38620
38621	Patch by Kevin Ryde concerning nodes/menus.
38622
386232002-03-05  Vincent Lefèvre  <vincent@vinc17.net>
38624
38625	Casts fixed.
38626
386272002-03-04  Vincent Lefèvre  <vincent@vinc17.net>
38628
38629	File renaming.
38630
38631	Copyright line changed.
38632
386332002-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38634
38635	updated
38636
38637	changed name of mpz_set_fr to mpfr_get_z_exp
38638
386392002-02-28  Vincent Lefèvre  <vincent@vinc17.net>
38640
38641	Removed some <math.h> dependencies.
38642
38643	Fixed.
38644
38645	mpfr_get_d rewritten (still needs to be fixed when the result is a subnormal).
38646
386472002-02-27  Vincent Lefèvre  <vincent@vinc17.net>
38648
38649	mpfr_get_d2 tested.
38650
38651	Update.
38652
38653	New tests.
38654
38655	Additional flags for gcc + minor changes.
38656
38657	Minor update.
38658
386592002-02-25  Vincent Lefèvre  <vincent@vinc17.net>
38660
38661	mpfr_get_d2 prototype changed (mp_exp_t instead of long).
38662	__mpfr_scale2 fixes: checks for integer overflows, signed zeros, exact
38663	rounding for subnormals in the rounding to the nearest mode (problems
38664	due to multiple roundings avoided).
38665	mpfr_get_d2: signed zeros taken into account. This function still needs
38666	to be rewritten (because of multiple roundings).
38667
386682002-02-21  Vincent Lefèvre  <vincent@vinc17.net>
38669
38670	_mpfr_ceil_log2, _mpfr_floor_log2, _mpfr_ceil_exp2 in separate files.
38671
386722002-02-19  Vincent Lefèvre  <vincent@vinc17.net>
38673
38674	Fixes, code clean-up and some asserts against integer overflows.
38675	Code need to be checked.
38676
386772002-02-14  Vincent Lefèvre  <vincent@vinc17.net>
38678
38679	mpfr_{div,mul}_2exp -> mpfr_{div,mul}_2ui.
38680
38681	Partial code clean-up and some asserts against integer overflows (2).
38682
386832002-02-13  Vincent Lefèvre  <vincent@vinc17.net>
38684
38685	Partial code clean-up and some asserts against integer overflows.
38686
38687	MP_EXP_T_MAX and MP_EXP_T_MIN defined.
38688
38689	Macros IS_POW2 and NOT_POW2.
38690
386912002-02-12  Vincent Lefèvre  <vincent@vinc17.net>
38692
38693	Use mpfr_save_emin_emax and MPFR_RESTORE_RET.
38694
38695	Update due to changes in mpfr_get_str.
38696
38697	mpfr_get_str: the returned exponent for 0 is 0 (like in frexp()).
38698	mpz_set_fr.c: comment added.
38699	out_str.c: minor changes.
38700
38701	Update.
38702
38703	Bug fixed and other changes.
38704
38705	NULL -> null pointer and other small changes.
38706
38707	mpfr_get_str: null pointer returned in case of error, NaN taken into account.
38708
387092002-02-11  Vincent Lefèvre  <vincent@vinc17.net>
38710
38711	mpfr_set_str partially rewritten to cope with integer overflows.
38712	The rounding code hasn't been fixed yet.
38713
387142002-02-08  Vincent Lefèvre  <vincent@vinc17.net>
38715
38716	Typo.
38717
38718	mpfr_set_str: base must be between 2 and 36.
38719
387202002-02-06  David Daney  <david.daney@inria.fr>
38721
38722	change the return values
38723
38724	Change the test return values
38725
387262002-02-06  Vincent Lefèvre  <vincent@vinc17.net>
38727
38728	Some optimizations.
38729
387302002-02-04  Vincent Lefèvre  <vincent@vinc17.net>
38731
38732	Misc bug fixes and code clean-up.
38733
38734	Misc bug fixes and code clean-up.
38735
387362002-02-03  Vincent Lefèvre  <vincent@vinc17.net>
38737
38738	For the value 0, return __mpfr_emin instead of 0.
38739
387402002-02-01  Vincent Lefèvre  <vincent@vinc17.net>
38741
38742	Misc bug fixes and code clean-up.
38743
387442002-02-01  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
38745
38746	Patch.
38747
387482002-01-30  Vincent Lefèvre  <vincent@vinc17.net>
38749
38750	Bux fixed.
38751
38752	mpfr_set_z rewritten.
38753
38754	Update concerning mpfr_round_prec, mpfr_rint, mpfr_ceil, mpfr_floor,
38755	mpfr_round and mpfr_trunc.
38756
38757	Tests added (mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round).
38758
38759	mpfr_rint, mpfr_trunc, mpfr_floor, mpfr_ceil, mpfr_round rewritten.
38760
387612002-01-25  Vincent Lefèvre  <vincent@vinc17.net>
38762
38763	mpfr_round -> mpfr_round_prec.
38764
38765	Code reformatted.
38766
387672002-01-23  Vincent Lefèvre  <vincent@vinc17.net>
38768
38769	MAX, MIN, ABS macros undefined before being redefined.
38770	Fix in ABS macro.
38771
387722002-01-22  Vincent Lefèvre  <vincent@vinc17.net>
38773
38774	Example with high bit set.
38775
38776	Fix (Kevin Ryde).
38777
38778	MPFR_PREC_MAX redefined.
38779	MPFR_INTPREC_MAX defined (internal maximum precision).
38780	Some integer overflow detection.
38781
387822002-01-21  Vincent Lefèvre  <vincent@vinc17.net>
38783
38784	Set sign of sqrt(0).
38785	Support for exponent range.
38786
38787	can_round type changed: char -> int.
38788	Case sqrt(0) improved.
38789
38790	Bug fixes:
38791	  * return 1 -> MPFR_RET_NAN
38792	  * a MPFR_CLEAR_INF was missing.
38793
387942002-01-20  Vincent Lefèvre  <vincent@vinc17.net>
38795
38796	New macro MPFR_RESTORE_RET.
38797
387982002-01-18  Vincent Lefèvre  <vincent@vinc17.net>
38799
38800	Code clean-up (goto suppressed).
38801
38802	Cases 0 * 0 + 0.
38803
38804	Nt: int -> mp_prec_t
38805
38806	<> changed back to "".
38807
388082002-01-18  David Daney  <david.daney@inria.fr>
38809
38810	change "" -> <> in headers
38811
38812	Change indentation + replace "" -> <> in header
38813
388142002-01-17  Vincent Lefèvre  <vincent@vinc17.net>
38815
38816	Particular cases rewritten.
38817
38818	Test "__hpux", not "hpux".  Mask off mrand48 return value to 31 bits
38819	to work around sloppy mpfr #include practices. (Torbjorn Granlund)
38820
38821	#include fixes (Torbjorn Granlund).
38822
388232002-01-16  Vincent Lefèvre  <vincent@vinc17.net>
38824
38825	Comments were incorrect.
38826
388272002-01-15  Vincent Lefèvre  <vincent@vinc17.net>
38828
38829	Note concerning mpfr_trunc, mpfr_floor and mpfr_ceil.
38830
388312002-01-14  Vincent Lefèvre  <vincent@vinc17.net>
38832
38833	Special cases.
38834
388352002-01-12  Vincent Lefèvre  <vincent@vinc17.net>
38836
38837	Patches by Kevin Ryde for K&R compilers
38838	and other fixes in prototypes.
38839
388402002-01-10  Vincent Lefèvre  <vincent@vinc17.net>
38841
38842	Test check_min added.
38843
38844	Test check_max added.
38845
38846	Spelling: "canceled"
38847
388482002-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38849
38850	GMP_PROTO change was already done by Vincent
38851
38852	prepare change PROTO -> GMP_PROTO
38853
388542002-01-04  Vincent Lefèvre  <vincent@vinc17.net>
38855
38856	The precision can no longer be 1.
38857
38858	__GMP_PROTO defined if not already defined.
38859
38860	Optimization: mpfr_cmp2 now accepts any combination of real arguments
38861	and computes the sign of |b| - |c| (in addition to the number of
38862	cancelled bits); mpfr_add, mpfr_sub, mpfr_sub1, mpfr_agm and some
38863	tests updated to take this change into account.
38864
388652001-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38866
38867	added check for sin(3*Pi/2)
38868
38869	fixed bug for sin(3*Pi/2)
38870
388712001-12-19  Vincent Lefèvre  <vincent@vinc17.net>
38872
38873	Global NaN flag set when result is NaN.
38874
388752001-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38876
38877	forgot to clear nan flag for Inf
38878
38879	changed description of mpfr_cmp to correspond to the implementation:
38880	NaNs are not allowed
38881
38882	fixed mpfr_cmp2 : there was a bug noticed by Nicolas Magaud and Didier
38883	Bondyfalat for inputs:
38884	100 011 111
38885	100 010 110
38886	where it gave 8 instead of 5.
38887
388882001-12-19  Vincent Lefèvre  <vincent@vinc17.net>
38889
38890	Better comments.
38891
388922001-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38893
38894	added "PI and the AGM"
38895
388962001-12-06  Vincent Lefèvre  <vincent@vinc17.net>
38897
38898	Files renamed (log in base 2 and 10).
38899
38900	Files renamed (constants).
38901
38902	File aclocal.m4 removed, as generated by aclocal (called by prepare).
38903
38904	Files log_base_*.c renamed.
38905
38906	Functions (constants) renamed.
38907
38908	Files configure, Makefile.in, tests/Makefile.in removed.
38909	Use the `prepare' script to generate them.
38910
38911	Removed 2 bugs.
38912
38913	Initial release.
38914
389152001-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38916
38917	added arc-tangent (from Mathieu)
38918
38919	added paragraph on asin and acos from Mathieu Dutour
38920
38921	added tacos
38922
38923	in check5, test NaNs before calling mpfr_cmp
38924
38925	added acos
38926
38927	added acos.c
38928
38929	added acos (from Mathieu Dutour)
38930
38931	use now new sqrtrem from gmp-4.0
38932
38933	improved test (avoid mpfr_get_d)
38934
38935	removed isnan prototype
38936
38937	added stdlib.h for exit
38938
389392001-11-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38940
38941	test NaN before Inf
38942	changed precision to 2 for test
38943
389442001-11-30  Vincent Lefèvre  <vincent@vinc17.net>
38945
38946	Cast added.
38947
389482001-11-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38949
38950	added a new test (worst case)
38951
38952	nouvelle version de Mathieu Dutour,
38953	corrigeant certains bugs avec les pires cas de Vincent
38954
389552001-11-30  Vincent Lefèvre  <vincent@vinc17.net>
38956
38957	#include order changed.
38958
38959	Misc fixes.
38960
38961	Unused variables.
38962
389632001-11-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
38964
38965	start tests with precision 2 instead of 1
38966
38967	start from precision 2
38968
38969	big rewrite to fix problems when the estimate base exponent is too small
38970
38971	fixed detection of exact cases (in particular 0)
38972
38973	now use MPFR_PREC_MIN
38974
38975	exptol is now of type mp_exp_t
38976
38977	rewritten part with Taylor series
38978
38979	changed MPFR_PREC_MIN to 2
38980
38981	updated wrt MPFR_PREC_MIN/MPFR_PREC_MAX
38982
38983	case x=0 was forgotten
38984
38985	now use MPFR_PREC_MIN
38986
38987	added comment
38988
389892001-11-30  Vincent Lefèvre  <vincent@vinc17.net>
38990
38991	mpfr_set_z rewritten to support overflows/underflows and ternary value.
38992
38993	0 -> set to +0.
38994
38995	Better sign comparison.
38996
389972001-11-29  Vincent Lefèvre  <vincent@vinc17.net>
38998
38999	Use MPFR_SET_POS.
39000
39001	Bug fixed concerning integer overflows.
39002
390032001-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39004
39005	added comment
39006
39007	fixed bug for small precision, where r can be >= 1
39008
390092001-11-29  Vincent Lefèvre  <vincent@vinc17.net>
39010
39011	Functions mpfr_{mul,div}_2{si,ui} added.
39012	Functions mpfr_{mul,div}_2exp still exist for backward compatibility;
39013	they are obsolete and should not be used any longer.
39014
390152001-11-28  Vincent Lefèvre  <vincent@vinc17.net>
39016
39017	Particular cases (NaN and signed zeros).
39018
39019	Init variables to NaN instead of 0.
39020
39021	Possible integer overflow fixed.
39022
39023	Particular cases fixed.
39024
390252001-11-25  Vincent Lefèvre  <vincent@vinc17.net>
39026
39027	Overflow support.
39028
39029	K&R -> ISO C prototype.
39030
39031	mpfr_div_2exp rewritten.
39032
39033	mpfr_mul_2exp rewritten.
39034
39035	Overflow support.
39036
39037	Casts to size_t added (safer and could be required in the future).
39038
390392001-11-23  Vincent Lefèvre  <vincent@vinc17.net>
39040
39041	Minor change.
39042
39043	mpfr_mul partially rewritten:
39044	  * Integer overflows almost completely avoided.
39045	  * Now supports signed zeros and overflows.
39046	Not tested yet.
39047
390482001-11-22  Vincent Lefèvre  <vincent@vinc17.net>
39049
39050	mpfr_can_round_raw: integer overflows checked and code duplication avoided.
39051
39052	More bugs.
39053
39054	mpfr_can_round and mpfr_can_round_raw: prototypes changed.
39055
390562001-11-21  Vincent Lefèvre  <vincent@vinc17.net>
39057
39058	Bug fixed.
39059
39060	mpfr_add_one_ulp and mpfr_sub_one_ulp changed.
39061
39062	Added MPFR_PREC_MIN and MPFR_PREC_MAX.
39063
39064	Error test -> assert.
39065	mp_prec_t -> mp_size_t.
39066
390672001-11-20  Vincent Lefèvre  <vincent@vinc17.net>
39068
39069	Test added.
39070
39071	mpfr_round rewritten.
39072	mpfr_round_raw_generic: NULL changed to 0 as not necessarily defined.
39073
39074	Added macro MPFR_SET_ABSSIZE.
39075
39076	mpfr_round: Check for overflow.
39077
390782001-11-17  Vincent Lefèvre  <vincent@vinc17.net>
39079
39080	Some type changes.
39081
390822001-11-16  Vincent Lefèvre  <vincent@vinc17.net>
39083
39084	Integer overflows checked.
39085
39086	MPFR_ASSERTN instead of fprintf + exit.
39087
39088	GMP assert mechanism: macros changed until GMP is fixed.
39089
390902001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39091
39092	version -> 2002
39093	removed executable flag
39094
39095	mpfr_print_raw -> mpfr_print_binary
39096
39097	split from init.c
39098
390992001-11-16  David Daney  <david.daney@inria.fr>
39100
39101	remove math.h
39102
39103	remve math.h
39104
391052001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39106
39107	added one test
39108
391092001-11-16  David Daney  <david.daney@inria.fr>
39110
39111	remove math.h
39112
391132001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39114
39115	init -> init + init2.
39116
391172001-11-16  David Daney  <david.daney@inria.fr>
39118
39119	remove math.h
39120
391212001-11-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39122
39123	Ajoute retours chariots dans div.c, etc.
39124
39125	if () remplace par if ( ==0) ou if ( != 0)
39126
391272001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39128
39129	removed K&R function headers
39130
391312001-11-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39132
39133	Beuh ?
39134
39135	return -> MPFR_RET, patch d'un leak dans inp_str.c
39136
391372001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39138
39139	changed to use GMP assert mechanism
39140
391412001-11-16  David Daney  <david.daney@inria.fr>
39142
39143	remove stdio.h math.h
39144
391452001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39146
39147	assert -> MPFR_ASSERT
39148
391492001-11-16  David Daney  <david.daney@inria.fr>
39150
39151	remove stdio math .h
39152
39153	remove stdio.h math.h
39154
391552001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39156
39157	ASSERT_ALWAYS -> MPFR_ASSERTN
39158
39159	added COPYING.LIB
39160
39161	replaced by GPL
39162
391632001-11-16  David Daney  <david.daney@inria.fr>
39164
39165	remove limits.h
39166
391672001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39168
39169	changed Library GPL to Lesser GPL
39170
39171	GNU Lesser General Public License, version 2.1
39172
391732001-11-16  David Daney  <david.daney@inria.fr>
39174
39175	remove limits.h math.h
39176
391772001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39178
39179	now treats all *.h
39180
391812001-11-16  David Daney  <david.daney@inria.fr>
39182
39183	remove the proto, remove math.h
39184
391852001-11-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39186
39187	removed DEBUG's
39188
39189	removed old patch for GMP 2.xx
39190
39191	GNU MP -> MPFR
39192
39193	added year 2001 in copyright line
39194
39195	added year 2001 in copyright line
39196
39197	added year 2001 in copyright line
39198	removed #if __STDC__
39199
39200	now two separate files cos.c and sin.c
39201
39202	added year 2001 in copyright line
39203
39204	updated
39205
39206	old version, removed
39207
39208	added isinf and isnum (split from isnan)
39209
39210	new files (split from isnan.c)
39211
39212	removed prototype already in mpfr.h
39213
39214	translated french comments to english
39215
39216	added mpfr_sub
39217
39218	added static to local functions
39219
39220	1 -> MP_LIMB_T_ONE
39221
39222	1 -> BITS_PER_MP_LIMB
39223
39224	added static to local functions
39225	removed prototype already in mpfr.h
39226
39227	removed mpfr_exp2_si (not used)
39228
39229	added static to local functions
39230	translated french comments to english
39231
39232	translated french comments to english
39233	removed prototype already in mpfr.h
39234
39235	initialized inexact to 0
39236
39237	used TMP_ALLOC
39238	translated french comments to english
39239
39240	simplified test
39241
39242	moved inf_p and number_p to different files
39243
39244	added static to local functions
39245	explained threshold
39246
39247	removed prototypes already in mpfr.h
39248
39249	does not include stdio.h any more
39250
39251	added stdio.h
39252
39253	1 -> BITS_PER_MP_LIMB
39254	1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT
39255
39256	removed french comment
39257
39258	added static to local functions
39259
39260	removed prototype already in mpfr.h
39261
39262	1 -> BITS_PER_MP_LIMB
39263	translated french comments to english
39264	added static to local functions
39265
39266	1 -> BITS_PER_MP_LIMB
39267
39268	1 -> BITS_PER_MP_LIMB
39269	translated french comments to english
39270
39271	1 -> BITS_PER_MP_LIMB
39272	added static to local functions
39273
39274	removed proto already in mpfr.h
39275
39276	1 -> MP_LIMB_T_ONE
39277
39278	added stdio.h
39279
392802001-11-15  Vincent Lefèvre  <vincent@vinc17.net>
39281
39282	add.c -> add.c & add1.c
39283	sub.c -> sub.c & sub1.c + some changes.
39284
392852001-11-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39286
39287	iff the results are exact -> iff the result is exact
39288
392892001-11-10  Vincent Lefèvre  <vincent@vinc17.net>
39290
39291	GNU coding style. K&R function headers removed.
39292
39293	MP_LIMB_T_ONE defined.
39294	mp_size_unsigned_t defined.
39295	Important bugs fixed (in particular when int has fewer than 32 bits).
39296	Still unavoidable possible bugs due to the fact that mp_size_t is signed.
39297
392982001-11-09  David Daney  <david.daney@inria.fr>
39299
39300	add tests file for gamma
39301
39302	add gamma function an other version
39303
39304	add gamma function
39305
393062001-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39307
39308	mis a` jour valeur de retour de mpfr_tan
39309
393102001-11-09  Vincent Lefèvre  <vincent@vinc17.net>
39311
39312	Some -'s missing in floating-point.
39313
393142001-11-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39315
39316	modifs suite aux remarques de Nathalie
39317
393182001-11-08  David Daney  <david.daney@inria.fr>
39319
39320	remove some name of variables
39321
393222001-11-08  Vincent Lefèvre  <vincent@vinc17.net>
39323
39324	cmp2.c: Integer overflows checked.
39325
39326	Update.
39327
39328	Fix.
39329
393302001-11-08  David Daney  <david.daney@inria.fr>
39331
39332	suppress variable name in dim min max
39333
39334	export isinteger in the file isinteger.c
39335
39336	exporte pow_si from pow2.c to pow_si.c
39337
39338	rename pow2.c in pow.c (source for mpfr_pow)
39339
39340	add ui_pow_ui.c (initially in pow.c)
39341
39342	add pow_ui.c file (initially in pow.c)
39343
393442001-11-08  Vincent Lefèvre  <vincent@vinc17.net>
39345
39346	mpfr_cmp2: return type changed to mp_prec_t.
39347
393482001-11-08  David Daney  <david.daney@inria.fr>
39349
39350	add function test4 for 3 input test + fma tests
39351
393522001-11-08  Vincent Lefèvre  <vincent@vinc17.net>
39353
39354	Macros added.
39355
39356	MP_LIMB_T_MAX instead of (mp_limb_t) -1 (a little nicer...).
39357
393582001-11-06  Vincent Lefèvre  <vincent@vinc17.net>
39359
39360	Code clean-up.
39361
393622001-11-05  Vincent Lefèvre  <vincent@vinc17.net>
39363
39364	Prototypes for K&R C.
39365
39366	mpfr_round_raw_generic prototype fixed.
39367
393682001-11-01  David Daney  <david.daney@inria.fr>
39369
39370	clear xp for Nan Inf or 0 are returned
39371
39372	clear variable if an error is return
39373
39374	clear x for Nan inf 0 return
39375
39376	clear x for Nan Inf 0 return
39377
39378	clear te
39379
393802001-11-01  Vincent Lefèvre  <vincent@vinc17.net>
39381
39382	Added prototype.
39383
39384	Bug fixed.
39385
393862001-11-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39387
39388	fixed MLK's
39389
39390	fixed MLK's in mpfr_isinteger
39391
39392	fixed MLK's
39393
39394	fixed missing mpfr_clear's
39395
39396	added missing mpfr_clear
39397
39398	added clear's in bug_ddefour
39399
39400	added mpfr_clear's
39401
39402	fixed MLK's
39403
394042001-10-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39405
39406	fixed MLK for Inf or Nan
39407
39408	fixed MLK in check_case_2
39409
394102001-10-31  David Daney  <david.daney@inria.fr>
39411
39412	rename factorial -> fac_ui
39413
394142001-10-30  Fabrice Rouillier  <Fabrice.Rouillier@inria.fr>
39415
39416	Change mpfr_<op>_mpz to mpfr_<op>_z
39417	Change mpfr_<op>_mpq to mpfr_<op>_q
39418	where <op> is mul,div,add,sub
39419
394202001-10-30  David Daney  <david.daney@inria.fr>
39421
39422	correct factorial -> fac_ui in comments
39423
39424	rename tfactorial -> fac_ui
39425
39426	rename factorial -> fac_ui
39427
394282001-10-27  Vincent Lefèvre  <vincent@vinc17.net>
39429
39430	Bug fixed.
39431
394322001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39433
39434	drand -> drand48
39435
39436	put MAX_PREC back to 100
39437
39438	added test for inexact flag
39439
39440	use MPFR_RET_NAN and MPFR_RET
39441
39442	removed MPFR_DEBUG_LEVEL definition
39443
39444	mpfr_set_q and mpfr_abs now return an int
39445	mpfr_pow_ui and mpfr_ui_pow_ui now implement exact rounding
39446	updated the documentation of the mpfr_*pow* functions
39447	removed some internal functions
39448
39449	implemented exact rounding (but no ternary flag)
39450
394512001-10-26  David Daney  <david.daney@inria.fr>
39452
39453	add some flags
39454
39455	mixed version between DD and Pau => (gestion des flag inexacte dirige)
39456
39457	rien
39458
394592001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39460
39461	MAX_PREC included
39462
39463	implemented inexact flag
39464
394652001-10-26  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39466
39467	Clearing high part of rem2.
39468
394692001-10-26  Fabrice Rouillier  <Fabrice.Rouillier@inria.fr>
39470
39471	adds gmp_op.c
39472
394732001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39474
39475	mpfr_set_q now returns an int
39476
39477	added test for inexact flag
39478
394792001-10-26  Fabrice Rouillier  <Fabrice.Rouillier@inria.fr>
39480
39481	Adds the file gmp_op.c containing the implementations of operations between
39482	mpfr and mpz/mpq data
39483
394842001-10-26  David Daney  <david.daney@inria.fr>
39485
39486	err <0 => is now tester
39487
394882001-10-26  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39489
39490	Patch for bits shifted out when the high word of the quotient is nonzero.
39491	Induced error on inexact flag (and hence on rounding in some cases).
39492
394932001-10-26  David Daney  <david.daney@inria.fr>
39494
39495	add copysign.c
39496
394972001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39498
39499	added one test
39500
395012001-10-26  David Daney  <david.daney@inria.fr>
39502
39503	simplify dim
39504
39505	add exact flag
39506
39507	err => long int
39508
395092001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39510
39511	added one test
39512
39513	cosmetic changes
39514
39515	can_round return 0 for b=0
39516
395172001-10-26  David Daney  <david.daney@inria.fr>
39518
39519	add thypot
39520
39521	add coopysign
39522
39523	add copysign
39524
39525	correct mp_prec_t err => long int
39526
39527	correst mp_prec_t err => long int
39528
395292001-10-26  Fabrice Rouillier  <Fabrice.Rouillier@inria.fr>
39530
39531	Add multiplication/division/addition/subtraction by mpz and mpq
39532
395332001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39534
39535	added two tests
39536	fixed bug in generic tests (one more bit is needed to get an exact result)
39537
39538	fixed pb with exact results not detected (ck was < 0)
39539
395402001-10-26  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39541
39542	Rien.
39543
39544	Patch for the computation of the u_lo + r part of the remainder when u_lo = 0.
39545
395462001-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39547
39548	added test for inexact flag
39549
39550	fixed pbs with inexact flag
39551
39552	now mpfr_div and mpfr_ui_div return an int
39553
39554	implemented ternary flag in mpfr_ui_div
39555
39556	removed unnecessary CLEAR_FLAGS
39557	used MPFR_RET_NAN
39558
39559	reduced number of tests
39560
39561	removed unnecessary CLEAR_FLAGS
39562
39563	improved mpfr_compare
39564	fixed wrong function name for mpfr_log2
39565
39566	rewritten to implement ternary inexact flag
39567
39568	fixed generic test (pb with double rounding)
39569
39570	increased MAX_PREC
39571
395722001-10-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39573
39574	Changed the type of err from mp_prec_t (unsigned) to int.
39575
39576	Added tests for inexact flag.
39577
39578	Patch for even rounding.
39579
395802001-10-25  David Daney  <david.daney@inria.fr>
39581
39582	rien
39583
39584	rien
39585
395862001-10-25  Vincent Lefèvre  <vincent@vinc17.net>
39587
39588	Warning avoided.
39589
395902001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39591
39592	added tfma
39593
39594	slong -> t
39595
39596	nouvelew version (without loop)
39597
395982001-10-25  David Daney  <david.daney@inria.fr>
39599
39600	rien
39601
39602	rien
39603
39604	change
39605
396062001-10-25  Vincent Lefèvre  <vincent@vinc17.net>
39607
39608	Bug fixed.
39609
396102001-10-25  David Daney  <david.daney@inria.fr>
39611
39612	correct bugs with reuse
39613
39614	test for log2 log10 pow
39615
396162001-10-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39617
39618	La division nouvelle est arrivee.
39619
396202001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39621
39622	ajoute' nouveau test
39623
396242001-10-25  Vincent Lefèvre  <vincent@vinc17.net>
39625
39626	Bug fixed.
39627
396282001-10-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39629
39630	round_raw, round_raw2 -> round_raw_generic. Macros to simulate previous
39631	behaviour. Even rounding returns +- MPFR_EVEN_INEX.
39632
396332001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39634
39635	fixed pb with mpfr_log10(a, a) with a=-Inf
39636
39637	added two tests
39638
39639	added one test
39640
396412001-10-25  David Daney  <david.daney@inria.fr>
39642
39643	add log2 and log10
39644
39645	correction for reuse
39646
39647	coorection for reuse
39648
396492001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39650
39651	test file for testing exceptions
39652
396532001-10-25  Vincent Lefèvre  <vincent@vinc17.net>
39654
39655	mpfr_add1 completely rewritten. Overflows are checked.
39656	The ternary value should now be supported (but it hasn't been tested yet).
39657
396582001-10-25  David Daney  <david.daney@inria.fr>
39659
39660	new version
39661
396622001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39663
39664	added one test
39665
39666	add possibility to define a random function (default is mpfr_random)
39667	to get random variables in specific ranges
39668
39669	now use tgeneric.c
39670
39671	added texceptions
39672
39673	documented exception mechanism (with Vincent Lefe`vre)
39674
39675	changed stupid test (was computing only 200!)
39676
39677	implemented inexact flag
39678
39679	1999 -> 2001
39680
39681	check overflow
39682
39683	added two tests
39684
39685	implemented overflow/underflow
39686
396872001-10-25  David Daney  <david.daney@inria.fr>
39688
39689	correct atanh(INF)=INF exact
39690
39691	correct test inf for atanh
39692
396932001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39694
39695	added warning for mpfr_set_d
39696
396972001-10-25  David Daney  <david.daney@inria.fr>
39698
39699	correct bug in tests file (test of atanh for + or - Inf)
39700
397012001-10-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39702
39703	added tadd_ui (forgotten?)
39704
39705	added special test
39706
39707	fixed bug in rounding part when rounding towards 0 (infinite loop due to bn<an)
39708
39709	added one special test
39710
397112001-10-24  David Daney  <david.daney@inria.fr>
39712
39713	correct the Nan case
39714
39715	add the function mpfr_dim
39716
39717	add function mpfr_min and mpfr_max
39718
39719	correct these tesats files
39720
39721	correct some bugs
39722
397232001-10-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39724
39725	added EXTRA_DIST= tgeneric.c
39726
397272001-10-24  David Daney  <david.daney@inria.fr>
39728
39729	remove tfma
39730
39731	add tfma
39732
39733	acosh revue et corrige...+beau
39734
397352001-10-23  David Daney  <david.daney@inria.fr>
39736
39737	add mpfr_log10
39738
39739	add log_base_10
39740
39741	add tlog_base_10
39742
39743	add test file for log_base_10 function
39744
39745	correct a bug in mpfr_log10 section
39746
39747	add help of log10 + fma
39748
39749	correct particular cases
39750
39751	improve the clear flags
39752
39753	correction dans l'entete
39754
397552001-10-21  Vincent Lefèvre  <vincent@vinc17.net>
39756
39757	Some changes to avoid warnings.
39758
39759	Bug fixed (char -> int).
39760
397612001-10-19  Vincent Lefèvre  <vincent@vinc17.net>
39762
39763	Update.
39764
39765	Bugs fixed concerning the "inexact" ternary value.
39766
397672001-10-19  David Daney  <david.daney@inria.fr>
39768
39769	suppress thypot tgeneric
39770
39771	suppress sample
39772
397732001-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39774
39775	void -> int as return value for mpfr_add_ui
39776
39777	added ternary flag
39778
39779	void -> int for mpfr_add and mpfr_add_ui
39780
397812001-10-19  David Daney  <david.daney@inria.fr>
39782
39783	add test for hypot
39784
39785	add some test
39786
39787	add some functions
39788
39789	add some proto
39790
39791	add test file for pow
39792
39793	add the help for pow and pow_si
39794
39795	add the function pow and pow_si
39796
397972001-10-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39798
39799	added two tests for 0-c and c-0 with prec(c) > prec(a)
39800
398012001-10-19  Vincent Lefèvre  <vincent@vinc17.net>
39802
39803	Removed #include <stdio.h>, "return 0;" replaced by "MPFR_RET(0);".
39804
39805	mpfr_add1 and mpfr_sub1 prototypes moved to mpfr-impl.h (to detect clashes).
39806	Bug fix concerning the inexact ternary value in mpfr_sub.
39807	mpfr_add now returns an int (inexact ternary value unsupported if true add).
39808
39809	Update.
39810
39811	Underflow/overflow check.
39812
39813	Documentation updated.
39814
39815	Comment added.
39816
39817	MPFR_RET(0) replaced by MPFR_RET_NAN.
39818
39819	Macro MPFR_RET_NAN.
39820
398212001-10-18  Vincent Lefèvre  <vincent@vinc17.net>
39822
39823	Code clean-up in mpfr_round_raw (well... IMHO).
39824
398252001-10-18  David Daney  <david.daney@inria.fr>
39826
39827	take in account of CHAR_BIT in ui_pow
39828
398292001-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39830
39831	cast to mp_limb_t was missing
39832
398332001-10-18  Vincent Lefèvre  <vincent@vinc17.net>
39834
39835	BITS_PER_CHAR replaced by the standard CHAR_BIT.
39836
398372001-10-18  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39838
39839	*** empty log message ***
39840
398412001-10-18  David Daney  <david.daney@inria.fr>
39842
39843	add test of ui_pow
39844
39845	add the help of ui_pow
39846
39847	add the function pow(unsign long int, mpfr_t)
39848
398492001-10-18  Vincent Lefèvre  <vincent@vinc17.net>
39850
39851	Improved configure.in.
39852	configure generated by Autoconf 2.52.
39853
398542001-10-18  David Daney  <david.daney@inria.fr>
39855
39856	ajout du flag inexact
39857
398582001-10-18  Vincent Lefèvre  <vincent@vinc17.net>
39859
39860	fixed and improved check for gmp.h/gmp-impl.h/config.h/gmp-mparam.h/longlong.h
39861	and corresponding error message
39862
398632001-10-18  David Daney  <david.daney@inria.fr>
39864
39865	add the help on log2
39866
39867	add the test file of the log2 (log in base 2)
39868
39869	ajout de log2 (log en base 2)
39870
39871	correst tanh(0)
39872
398732001-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39874
39875	added two more tests
39876
39877	wrong sign passed to mpfr_can_round (mp_limb_t may be unsigned)
39878
398792001-10-18  David Daney  <david.daney@inria.fr>
39880
39881	correct a bug for sinh(Inf)
39882
398832001-10-17  David Daney  <david.daney@inria.fr>
39884
39885	correct syntax of tanh.c
39886
39887	correct an error
39888
39889	correct few things
39890
39891	little patch for cosh
39892
39893	add the test function of expm1
39894
39895	add the test of the function log1p
39896
39897	add the function expm1
39898
39899	add the function log1p
39900
39901	add to mpfr.texi log1p and expm1
39902
39903	actualisation de exp2.c
39904
39905	actualisation de exp2
39906
399072001-10-17  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
39908
39909	New tests in tdiv.c.
39910
39911	New division in div.c, old one renamed in mpfr_div2. Remains to implement
39912	exact/inexact flag. Should not be *that* hard.
39913
399142001-10-16  David Daney  <david.daney@inria.fr>
39915
39916	ajout de functions pow, fma, hypot etc etc
39917
399182001-10-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39919
39920	added fma.c
39921
39922	added prototypes for mpfr_fma and mpfr_hypot
39923
39924	small changes for inexact flag
39925
39926	added some cases for Inf
39927	implement (partly) inexact flag
39928
399292001-10-16  David Daney  <david.daney@inria.fr>
39930
39931	ajout hypot
39932
39933	ajout de fma
39934
399352001-10-16  Vincent Lefèvre  <vincent@vinc17.net>
39936
39937	Comment: // --> /* ... */
39938
399392001-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39940
39941	generic test file
39942
39943	added cast to (void*) for new functions returning an int
39944
39945	added test for inexact flag
39946
39947	now use tgeneric.c
39948	added more tests
39949
39950	now use tgeneric.c
39951
39952	fixed test of return values for infinities: foo(+/-Inf) is *exact*
39953
39954	now also try with negative numbers
39955
39956	implement ternary inexact flag
39957
39958	implement inexact flag
39959
39960	return type is now int for mpfr_mul_2exp and mpfr_div_2exp
39961
39962	return type is now int for more functions
39963
39964	sign was not set
39965
39966	rewritten completely mpfr_can_round_raw
39967
39968	documented mpfr_set4
39969
39970	return non-zero if malloc failed
39971
39972	cosmetic changes
39973
39974	implement ternary inexact flag
39975
39976	avoid one variable
39977
399782001-10-12  David Daney  <david.daney@inria.fr>
39979
39980	correction d'erreurs sur les notations + correction de la regle 9
39981
399822001-10-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
39983
39984	fixed MPFR_ASSERT
39985	documented MPFR_ASSERTN and MPFR_ASSERTD
39986
39987	added test for mpfr_init_set_f prototype
39988
39989	added test for inexact flag
39990	corrected a wrong test
39991
39992	cosmetic change
39993
39994	added tsub_ui (did exist but forgotten in Makefile) and tset (new file)
39995
39996	test file for mpfr_set, initial version
39997
39998	void -> int as return value for several functions
39999	and explained the ternary return value
40000
40001	implemented inexact flag
40002
40003	void -> int as return value for new functions implementing inexact flag
40004
40005	implemented inexact flag in mpfr_set_d
40006
40007	implemented inexact flag in mpfr_round
40008
40009	completely rewritten
40010
40011	computation of inexact flag now directly uses mpfr_round_raw
40012
40013	added 'if' in MPFR_ASSERT to avoid compiler warning
40014
40015	put initial value in variables which may be used without being initialized
40016
40017	updated things done, added Rounding section
40018
400192001-10-11  David Daney  <david.daney@inria.fr>
40020
40021	ajout de log1p et expm1
40022
400232001-10-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40024
40025	reduced number of random tests (took too much time)
40026
40027	added random tests for inexact flag
40028
40029	implemented inexact flag
40030
40031	added random tests for inexact flag
40032
400332001-10-11  David Daney  <david.daney@inria.fr>
40034
40035	ajout du log generic et de fma
40036
400372001-10-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40038
40039	inexact flag was wrong in some cases
40040
40041	added random tests for inexact flag
40042
40043	reduced number of loops per precision from 100 to 10
40044	(test was too long)
40045
40046	improved check for gmp-impl.h/config.h/gmp-mparam.h/longlong.h
40047	and corresponding error message
40048
40049	stack-alloc.h no longer needed (will be included in gmp-impl.h)
40050
40051	stack-alloc.h is no longer needed (will be included in gmp-impl.h)
40052
400532001-10-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40054
40055	added proof of rules
40056
40057	fixed buggy test
40058
400592001-10-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40060
40061	fixed bug for b + d where b=2^900+2^500+2^110, d=2^900-2^500-2^110
40062
400632001-10-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40064
40065	fixed bug in mpfr_set_d on 64-bit machines
40066
400672001-09-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40068
40069	fixed a few problems in mpfr_set_d for sizer < MPFR_LIMBS_PER_DOUBLE
40070
40071	added paper of Brent and McMillan
40072
40073	does not call compare_exp2_exp3 when argc=4
40074
40075	added one item
40076
40077	now mpfr_set_prec returns 1 instead of producing an error in case prec=0
40078
400792001-09-27  David Daney  <david.daney@inria.fr>
40080
40081	New version with new generic function + / * etc
40082
400832001-09-20  Vincent Lefèvre  <vincent@vinc17.net>
40084
40085	BUGS updated.
40086
400872001-09-13  Vincent Lefèvre  <vincent@vinc17.net>
40088
40089	Prototype changes.
40090
40091	<strings.h> -> <string.h> (ISO C).
40092
40093	#include added.
40094
40095	#include added/removed.
40096
40097	GCC option -Wno-implicit removed and prototype added to mpfr-impl.h
40098
400992001-09-12  Vincent Lefèvre  <vincent@vinc17.net>
40100
40101	INCLUDES in Makefile.am: -I$(top_srcdir) and @INCLUDES@ swapped.
40102	This defines the following precedence for the tests:
40103	  1) MPFR directories
40104	  2) User-defined directory
40105	  3) GMP include directory
40106	This allows the user to override the GMP longlong.h file with the
40107	gcc-3 one, by using: INCLUDES="-I.../include" ./configure ...
40108
40109	#include order fixed.
40110
40111	Tests added (in particular, inex value).
40112
40113	Bug fixed.
40114
401152001-09-11  Vincent Lefèvre  <vincent@vinc17.net>
40116
40117	MPFR_RET: definition changed to avoid warning.
40118
40119	Inexact ternary value for mpfr_set4, mpfr_set_ui and mpfr_set_si.
40120
40121	Macro SAFE_ABS.
40122
40123	Inexact ternary value and flag for mpfr_set_underflow, mpfr_set_overflow
40124	and mpfr_check_range.
40125
40126	Macro MPFR_RET added. Ternary value for mpfr_set4.
40127
40128	New flags.
40129
401302001-09-10  Vincent Lefèvre  <vincent@vinc17.net>
40131
40132	Parameter added to mpfr_round_raw: pointer to inexact ternary value.
40133
401342001-09-10  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40135
40136	Zqwiuyt
40137
40138	Zorgs.
40139
40140	Gleurbs.
40141
40142	Patch grotesque.
40143
40144	Patch for the case SIZE(r) < MPFR_LIMBS_PER_DOUBLE.
40145
401462001-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40147
40148	test file for mpfr_tan
40149
40150	fixed a few typos
40151
40152	added mpfr_tan
40153
40154	added ttan
40155
40156	added the tangent
40157
40158	added tan.c
40159
40160	tangent function
40161
401622001-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40163
40164	removed mpfr_sin and mpfr_cos (now separate implementations)
40165
40166	removed sin_cos
40167
40168	added sine and cosine
40169
40170	removed sin_cos, added sin and cos
40171
40172	removed mpfr_sin_cos
40173
40174	removed sin_cos, added sin and cos
40175
40176	removed tsin_cos, added tsin and tcos
40177
40178	test files for mpfr_cos and mpfr_sin
40179
40180	new implementation of mpfr_sin, using mpfr_cos
40181
40182	new (faster) implementation of mpfr_cos
40183
401842001-09-06  Vincent Lefèvre  <vincent@vinc17.net>
40185
40186	Fix: flags set in mpfr_set_{under,over}flow().
40187
40188	Cases where the result is 0 fixed.
40189	Integer overflow checked in mpfr_sub.
40190
40191	In add.c: use mpfr_cmp_abs instead of mpfr_cmp3; x - x fixed for GMP_RNDD.
40192
40193	Compare the absolute values of two nonzero FP numbers.
40194
401952001-09-05  Vincent Lefèvre  <vincent@vinc17.net>
40196
40197	mpfr_cmp3 changed and integer overflows checked.
40198
401992001-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40200
40201	added efficiency item
40202
402032001-09-03  Vincent Lefèvre  <vincent@vinc17.net>
40204
40205	Cases [+-]0 + [+-]0 fixed (depending on the rounding mode).
40206
402072001-08-29  Vincent Lefèvre  <vincent@vinc17.net>
40208
40209	Optimization + overflow support.
40210
40211	Case +0 + -0 fixed.
40212
402132001-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40214
40215	added one test
40216
40217	another test from Norbert
40218
40219	another fix (final copy when xsize > ysize was wrong)
40220
402212001-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40222
40223	added several tests for case (1b)
40224
40225	another fix (previous one was incomplete)
40226
40227	added one more test (from Norbert)
40228
402292001-08-28  Vincent Lefèvre  <vincent@vinc17.net>
40230
40231	Bug fixed.
40232
40233	Bug fixed and update to check the exponents.
40234
402352001-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40236
40237	added test for 53 <= xprec, yprec <= 128
40238
40239	added multiple tests for 53 <= xprec, yprec <= 128
40240
40241	was completely wrong for ysize > xsize
40242
40243	added faster formula in exp(-8*n) for Euler's constant
40244
402452001-08-25  Vincent Lefèvre  <vincent@vinc17.net>
40246
40247	Assertion support with debug level.
40248
40249	Some support for exponent change and exceptions.
40250
402512001-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40252
40253	added constant ALPHA (for mpfr_const_euler)
40254
40255	added euler/teuler
40256
40257	added teuler
40258
40259	added euler.c
40260
40261	fixed pb with c2 = c2old << dif with dif negative
40262
40263	fixed bug for (2^53+4) - 1
40264
40265	added new test from Norbert Mueller
40266
40267	fixed pb: sh becomes "negative"
40268
40269	included Euler's constant
40270
40271	bibtex file for algorithms.tex
40272
40273	test file for mpfr_const_euler
40274
40275	computation of Euler's constant 0.577...
40276
40277	added missing prototype
40278
40279	mpfr_const_euler returns an int
40280
40281	added mpfr_const_euler
40282
402832001-08-22  Vincent Lefèvre  <vincent@vinc17.net>
40284
40285	Tests added.
40286
40287	Bugs fixed (particular cases).
40288
40289	"mant(c) != 1/2" test was broken.
40290
40291	check fixed. Check added: 2^53 + 1 --> 2^53.
40292
40293	Update.
40294
402952001-08-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40296
40297	added one test
40298
40299	fixed stupid bug when dif < 0
40300
403012001-08-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40302
40303	added mpfr_asin
40304
40305	added missing cast
40306
40307	test file for mpfr_asin
40308
40309	arc-sine, contributed by Mathieu Dutour
40310
40311	added mpfr_asin
40312
40313	new name for file tarctan.c
40314
40315	renamed to tatan.c
40316
40317	renamed tarctan.c into tatan.c
40318	added tasin.c
40319
40320	renamed arctan.c to atan.c
40321	added asin.c
40322
40323	new name for file arctan.c
40324
40325	moved to atan.c
40326
40327	low significant bit is in ap[0] and not in ap[an-1] !!!
40328
403292001-08-13  Vincent Lefèvre  <vincent@vinc17.net>
40330
40331	Cleaner MPFR_SET_SAME_SIGN.
40332
40333	Macros MPFR_SET_SAME_SIGN, MPFR_INIT and MPFR_INIT1 changed to expressions.
40334
403352001-08-10  Vincent Lefèvre  <vincent@vinc17.net>
40336
40337	Bugs fixed (wrong types).
40338
40339	Macros mpfr_init_set_* changed to expressions.
40340
40341	Makefile.in update.
40342
403432001-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40344
40345	edited wrt GNU style
40346
40347	fixed stupid bug: ceil(a/b) isn't (a+b-1)/a but simply a/b for a negative!
40348
40349	fixed array bound write (bn < an + cancel1 + 1)
40350
40351	macros MPFR_NOTZERO and MPFR_ISZERO did not work properly with 64-bit words
40352
403532001-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40354
40355	fixed bug for output base 2^k
40356
40357	added one test
40358
40359	added a section for the exponential
40360
40361	fixed bug when dividend is 0
40362
403632001-06-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40364
40365	moved TMP_FREE
40366
40367	added 2 things
40368
403692001-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40370
40371	added mpfr.info to files to remove for "make distclean"
40372
403732001-06-23  Vincent Lefèvre  <vincent@vinc17.net>
40374
40375	Non-existent C source references removed.
40376
40377	Macros MPFR_INIT and MPFR_INIT1 fixed.
40378
403792001-06-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40380
40381	nested double TMP_DECL's
40382
403832001-06-14  David Daney  <david.daney@inria.fr>
40384
40385	A few patches.
40386
403872001-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40388
40389	added mpfr_sin and mpfr_cos
40390	corrected in the documentation some exact values
40391
403922001-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40393
40394	removed 2 tabs
40395
40396	added change explaining the LGPL with non-free programs
40397
403982001-05-31  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40399
40400	Patch for the case b = 0 or c = 0.
40401
404022001-05-23  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40403
40404	Added DDefour's bug.
40405
404062001-05-22  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40407
40408	Patch in the case MPFR_PREC(b) > MPFR_PREC(a)+cancel.
40409
404102001-05-10  Vincent Lefèvre  <vincent@vinc17.net>
40411
40412	fixed bug in mpfr.texi
40413
404142001-05-10  David Daney  <david.daney@inria.fr>
40415
40416	correction du bug donne par vincent + ajout des aides des fonctions hyperbolic
40417
404182001-05-09  David Daney  <david.daney@inria.fr>
40419
40420	*** empty log message ***
40421
404222001-04-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40423
40424	log(0) now returns 0 (exact infinity)
40425
404262001-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40427
40428	fixed pbs with NaN/Inf
40429
40430	fixed new bug found by Nathalie Revol (case when add_one_ulp produces a carry)
40431
40432	added new bug found by Nathalie Revol
40433
40434	fixed bug for 1.0000... - 0.000001 for rounding up or nearest
40435
404362001-04-17  Nathalie Revol  <Nathalie.Revol@inria.fr>
40437
40438	Case where argument < 0 included, NR 17-04-2001
40439
404402001-04-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40441
40442	added new (special) tests
40443
40444	test file for mpfr_sub
40445
40446	added tsub
40447
404482001-04-06  David Daney  <david.daney@inria.fr>
40449
40450	change old exp2 (conflict with 2^x) to exp_2
40451
404522001-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40453
40454	0 -> GMP_RNDN
40455
40456	check apart the case c=0 (otherwise some low significant limbs may be
40457	non zero, which may produce a wrong result)
40458
40459	mpfr_exp2 -> mpfr_exp_2
40460
40461	mpfr_exp2 -> mpfr_exp_2
40462
404632001-04-05  David Daney  <david.daney@inria.fr>
40464
40465	reactualise .h
40466
40467	change header
40468
40469	change reuse to suppress factorial
40470
40471	suppress of timing in makefile
40472
40473	add the old exp2 function and file renamed by exp_2
40474
40475	change makefile for new functions
40476
40477	change make file test for hyperbolic function exp2 and factorial
40478
40479	add new test file for hyperbolic function
40480
40481	add test file for new function
40482
40483	add function
40484
40485	new file function
40486
40487	new function file
40488
404892001-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40490
40491	new version with cmp2.c
40492
40493	fixed pb with inexact flag when 'int' and 'mp_limb_t' has different sizes
40494
404952001-04-05  David Daney  <david.daney@inria.fr>
40496
40497	fixed bug for mpfr_cmp_ui (Inf, 0)
40498
40499	fixed bug for mpfr_set_ui (x, 0) [was giving -0]
40500
405012001-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40502
40503	added algorithm for mpfr_cmp2
40504
40505	added cmp2.c
40506
40507	fixed bug when diff_exp >= BITS_PER_MP_LIMB
40508
40509	added new test for worst cases: 1 - 1/2^i and (1 + 1/2^i) - 1/2^i
40510
40511	changed return value of mpfr_cmp2
40512
40513	new file for mpfr_cmp2
40514
40515	moved mpfr_cmp2 to separate file cmp2.c
40516
40517	added several tests, and a routine that generates worst cases
40518
40519	two changes suggested by Kevin Ryde
40520
405212001-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40522
40523	new version from new Makefile.am
40524
405252001-03-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40526
40527	added new test
40528
40529	fixed new bug in mpfr_cmp2 found by Fabrice
40530
405312001-03-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40532
40533	added new test
40534
40535	fixed bug found by Nathalie Revol
40536
405372001-03-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40538
40539	added 2 items
40540
40541	added test for mpfr_cmp_ui (-0, 0)
40542
40543	now prints -0 for -0
40544
405452001-03-19  Nathalie Revol  <Nathalie.Revol@inria.fr>
40546
40547	Comparison between 0- and 0 now returns 0, NR 19-03-2001
40548
405492001-03-16  Vincent Lefèvre  <vincent@vinc17.net>
40550
40551	added cast to avoid a warning
40552
405532001-03-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40554
40555	added tests for inexact return value
40556
40557	tiny bug in inexact value determination
40558
40559	mpfr_mul now returns an int
40560
405612001-03-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40562
40563	description of algorithms
40564
40565	reorganized
40566
405672001-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40568
40569	added few things
40570
40571	added arc-tangent
40572
40573	added tarctan
40574
40575	added test to mpfr_arctan
40576
40577	added header
40578
40579	test file for mpfr_arctan
40580
40581	removed math.h
40582
40583	arctangent function (contributed by Mathieu Dutour, done slight changes)
40584
40585	added Mathieu Dutour in contributors
40586
40587	added mpfr_arctan
40588
40589	added one test
40590
40591	fixed bug in mpfr_can_round_raw, when err > bn*BITS_PER_MP_LIMB
40592
40593	now tset_str <number> <prec> is possible
40594
405952001-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40596
40597	fixed bug for Infinity (was testing zero before)
40598
405992001-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40600
40601	replaced (mp_limb_t) 4294967295 by CNST_LIMB(0xFFFFFFFF)
40602
406032001-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40604
40605	forgot to declare q in mpfr_get_d2 when BITS_PER_MP_LIMB=64
40606
406072001-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40608
40609	removed fprintf() when unexpected end of string
40610
40611	added undef's to avoid warnings at compilation
40612
406132001-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40614
40615	removed mpfr_set_machine_rnd_mode
40616
406172001-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40618
40619	changed "int main(..)" to two lines
40620
40621	now initialize str_is_null correctly
40622
40623	added more tests
40624
40625	don't change MPFR_SIZE when allocated size is enough
40626
40627	updated specification of mpfr_sgn
40628
40629	changed definition of mpfr_sgn to get rid of MPFR_NOTZERO
40630
40631	size of freed block by __gmp_free_func was wrong
40632
40633	added tisnan and tget_d
40634
40635	fixed bug for Inf (recognized as an ordinary number)
40636
40637	new test file
40638
406392001-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40640
40641	check overflow in _mpfr_ceil_exp2
40642
406432001-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40644
40645	added prototype for Ulp
40646
40647	changed _d to _p, added mpfr_number_p
40648
40649	changed MPN_COPY into MPN_COPY_INCR/MPN_COPY_DECR in mpfr_round_raw
40650
40651	added tests for one of arguments NULL
40652
40653	moved mpfr_sgn to mpfr.h (defined in manual)
40654
40655	use MPZ_REALLOC
40656
40657	added const to 2nd argument of mpfr_set_str
40658
40659	added set_ui.c
40660
40661	added cast to "unsigned long" for ai = ABS(i)
40662	moved mpfr_set_ui to separate file
40663
40664	now when str==NULL return a block which is exactly strlen(str)+1 bytes long
40665
40666	fixed problems with old K&R compilers (_PROTO missing)
40667
406682001-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40669
40670	added more items
40671
406722001-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40673
40674	fixed ulp computation
40675
406762001-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40677
40678	changed behaviour for "tlog N": prints only differences with increasing ulps
40679
40680	fixed pb in mpfr_get_d2 for 64-bit machines: in q + res/MP_BASE_AS_DOUBLE,
40681	q seems first to be cast into a double, which gives more than one ulp of
40682	error
40683
406842001-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40685
40686	added guard to prevent multiple inclusion
40687
40688	fixed bug in mpfr_cmp2 (found on the IA64)
40689
406902001-01-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40691
40692	added tests for 0 in mpfr_set_str_raw
40693
40694	fixed bug for +0000E0
40695
40696	incorporated changes from Kevin/Torbjorn for GMP 3.2
40697
40698	truncate the last uk (when the precision is not a power of 2)
40699
40700	_mp_allocate_func -> _gmp_allocate_func
40701
40702	_mp_reallocate_func -> _gmp_reallocate_func
40703
40704	__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
40705
40706	_mp_xxx_func -> _gmp_xxx_func
40707
40708	removed mpfr_srandom
40709
40710	sprintf -> fprintf
40711	_mp_free_func -> _gmp_free_func
40712
40713	_mp_reallocate_func -> __gmp_reallocate_func
40714
40715	added paragraph on NaN and infinities, docu on mpfr_nan_d and mpfr_inf_d
40716	removed mpfr_srandom
40717	some renamings
40718
40719	removed srandom
40720	__gmp_default_fp_bit_precision -> __mpfr_default_fp_bit_precision
40721	added protocols for mpfr_get_default_prec, mpfr_nan_d and mpfr_inf_d
40722
40723	removed superfluous TMP_FREE(marker)
40724
40725	_mp_xxx_func -> _gmp_xxx_func
40726
40727	_mp_free_func -> _gmp_free_func
40728
40729	functions to check for NaN and infinities
40730
40731	added isnan.c, removed srandom.h
40732
40733	added two items from Kevin
40734
40735	add 2 items
40736
40737	0.4 -> 1.0
40738
407392001-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40740
40741	added one test for large operands
40742
40743	fixed bug in _mpfr_ceil_exp2 (underflow when exp < -1022)
40744
407452000-12-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40746
40747	remove what was done
40748
40749	added mpfr-test.h
40750
40751	added Vincent
40752
40753	1.1 -> 2001
40754
40755	cast for _mpfr_floor_log2 was on the wrong side
40756
40757	added one test
40758
40759	simplified _mpfr_floor_log2
40760
40761	code was wrong for infinity
40762
40763	only editing
40764
40765	added special() cases
40766
40767	removed #if 0 (on Alpha with cc the enclosed code was still used
40768	since the # was not in the first column)
40769
40770	changes for version 1.1
40771
40772	added one test (exp2 vs exp3)
40773
40774	changed c from mp_limb_t into unsigned long in mpfr_exp2_aux2
40775	(otherwise bugs on IRIX -n32)
40776
40777	added one test
40778
40779	fixed wrong combination of conditions for Infinity
40780
40781	added mpfr-test.h for MIPS
40782
407832000-12-22  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40784
40785	Modified macro calls
40786
407872000-12-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40788
40789	added cast (int) to random() to avoid warning on Solaris
40790
40791	added <string.h>
40792
40793	tiny change at the end of main routine (suggested by Guillaume)
40794
40795	added one test
40796
40797	added two more tests
40798
40799	fixed bug when c does not overlap with a, b is negative and GMP_RNDN
40800
40801	moved prototypes for mpfr_set4 and mpfr_cmp3 to mpfr.h
40802
40803	fixed bug in mpfr_cmp2 when d=0 and lots of bits match
40804
40805	updated for version 1.1
40806
408072000-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40808
40809	test file for power functions
40810
40811	test file for in-place operations
40812
40813	unsigned char (or int) -> mp_rnd_t
40814
40815	unsigned char -> mp_rnd_t
40816
40817	unsigned int -> mp_rnd_t
40818
40819	k2r -> ansi style
40820	removed #include <math.h> by defining auxiliary functions
40821	fixed several tiny remaining bugs with NaN/Inf
40822
40823	updated description of mpfr_cmp* and mpfr_sin_cos
40824
40825	added MPFR_SIGN
40826
40827	added MPFR_CLEAR_NAN
40828	MPFR_RESET_INF -> MPFR_CLEAR_INF
40829	moved MPFR_SIGN to mpfr.h
40830	added prototypes for log2/isqrt/cuberoot functions
40831
40832	added reuse, tcmp2, teq, tpow, trandom, ttrunc
40833
40834	removed isnan(), ...
40835
40836	removed gmp-impl.h, isnan(), ...
40837
40838	removed gmp-impl, isnan(), ...
40839
40840	removed cputime stuff
40841
40842	k&r -> ansi style
40843
40844	removed isnan() decl.
40845
40846	MINNORM -> mpfr-test.h
40847
40848	ulp -> mpfr-test.h
40849
40850	removed isnan() declaration
40851
40852	now use MINNORM and MAXNORM
40853
40854	max, min -> macros
40855
40856	added new tests
40857
40858	added MINNORM, MAXNORM, MIN, MAX, ABS
40859
408602000-12-20  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40861
40862	A few basic patches.
40863
40864	Added support for PPC/Linux
40865
40866	Patch for wrong prototype.
40867
40868	Added prototypes for all test files.
40869
408702000-12-18  Vincent Lefèvre  <vincent@vinc17.net>
40871
40872	Warnings suppressed on Alpha/OSF1.
40873
408742000-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40875
40876	added mpfr-test.h
40877
40878	back to 1.3
40879
40880	auxiliary test files
40881
40882	moved to main directory
40883
40884	auxiliary test functions
40885
40886	changed name of mpfr struct fields: _mp_d -> _mpfr_d
40887		(to detect conflicts with mpf)
40888	fixed a few problems in non-STDC headers
40889	moved definitions of mpfr-impl.h to mpfr-test.h and created a real mpfr-impl.h
40890
408912000-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40892
40893	removed tzeta
40894
40895	explained how to enter NaN/Inf with mpfr_set_str_raw
40896
40897	removed zeta.c
40898
40899	added 'to do' for NaN/Inf flags
40900
40901	clear NaN/Inf flags of result
40902
40903	improved indentation
40904
40905	adapted to NaN/Inf
40906
40907	nothing (only better indenting)
40908
40909	adapted to NaN/Inf
40910	removed warnings
40911
40912	adapted to NaN/Inf
40913
40914	removed warnings
40915
40916	clear NaN/Inf flags in normal case
40917
40918	adapted to NaN/Inf
40919
40920	added prototype for mpfr_srandom
40921
40922	now uses directly mpn_random, to avoid all problems with include files
40923
40924	added 4 tests
40925
40926	_mp_d -> MPFR_MANT
40927
40928	added error message when memory allocation fails
40929
40930	added error message when memory allocation fails
40931
40932	_mp_d -> MPFR_MANT
40933
40934	0 -> NULL
40935
40936	added error message if memory allocation fails
40937
40938	_mp_d -> PTR
40939
40940	_mp_prec -> MPFR_PREC
40941	_mp_d -> MPFR_MANT
40942
40943	added mpfr_swap
40944
40945	removed MPFR_SET_IS_FP (not used)
40946
409472000-12-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40948
40949	A few patches.
40950
409512000-12-15  Vincent Lefèvre  <vincent@vinc17.net>
40952
40953	MPFR_CHANGE_SIGN modified to avoid a possible side effect.
40954
409552000-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
40956
40957	warning: x is a MPF not a MPFR!
40958
409592000-12-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40960
40961	Modification of the order of includes in random.c
40962
409632000-12-15  Vincent Lefèvre  <vincent@vinc17.net>
40964
40965	Added some warning flags for GCC.
40966
409672000-12-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40968
40969	Header file for srandom()
40970
40971	Patches for compiler warnings.
40972
40973	Yet another patch for include files.
40974
40975	Permutation of includes to avoid warnings due to careless multiple definition
40976	of ULONG_MAX.
40977
409782000-12-14  Vincent Lefèvre  <vincent@vinc17.net>
40979
40980	Bug fixed concerning the flags.
40981
40982	Bugs fixed (in case char is signed and accented characters are given).
40983
40984	Include "urandom.h". Old code removed.
40985
40986	Take into account Inf, Nans ; clear the flags of the return variable
40987	in most function calls.
40988
40989	Use urandom().
40990
40991	Take into account Inf, Nans ; clear the flags of the return variable
40992	in most function calls.
40993
409942000-12-14  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
40995
40996	Yet another random patch.
40997
40998	Replaced random by rand.
40999
410002000-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41001
41002	fixed pb with mp_ptr vs mp_srcptr
41003
410042000-12-13  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41005
41006	Take into account Inf, Nans ; clear the flags of the return variable
41007	in most function calls. Tests updated accordingly
41008
41009	Take into account Inf, Nans ; clear the flags of the return variable
41010	in most function calls.
41011
410122000-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41013
41014	check that we can round the cosine too
41015
410162000-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41017
41018	removed TIMING stuff
41019	ensures prec_x >= 0
41020
41021	we need m >= 2 in mpfr_exp2_aux2
41022
41023	forgot TMP_MARK(marker)
41024
41025	forgot TMP_MARK(marker) or free'd in wrong order
41026
41027	forgot TMP_MARK(marker)
41028
41029	fixed mpf_reldiff, mpf_urandomb and mpf_t
41030
41031	added stack-alloc.h when --disable-alloca
41032
410332000-12-11  Vincent Lefèvre  <vincent@vinc17.net>
41034
41035	out_str.c: <string.h> included
41036	set_d.c: (0./0.) instead of sqrt(-1) for NaN (doesn't need <math.h>)
41037	set_d.c: () added for macros Infp and Infm
41038
410392000-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41040
41041	shortened string in mpfr_set_str_raw which was greater than precision
41042
41043	replaced isnan/isinf/math.h (not portable, for example isinf does not exist
41044	on Sparc) by new macros from mpfr.h
41045
41046	added an error message when the mantissa is larger than the precision
41047	(in mpfr_set_str_raw)
41048
41049	added macros to recognize doubles that are NaNs and infinities
41050	(isinf is not portable and requires math.h)
41051
41052	in case the destination precision is less than that of the operands,
41053	and the 1st iteration fails, increase directly the precision to the maximum
41054	of that of the operands, otherwise divisions by 1.0 may need lots of
41055	iterations
41056
41057	added 'return' after dealing with infinities
41058
41059	added wish from JC Fauge`re
41060
410612000-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41062
41063	mpfr_init/mpfr_init2 initialize to 0 (compatibility with mpf)
41064
41065	fixed bug in mpfr_cmp2 when return value is k*BITS_PER_MP_LIMB-1
41066
41067	added new test for mpfr_cmp2
41068
41069	now ABSSIZE uses only 29 bits
41070
410712000-12-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41072
41073	added some explanations how to free the memory space allocated by mpfr_get_str
41074
41075	fixed one bug found by N. Mueller (MPFR_ABSSIZE(u) was used instead of usize)
41076
41077	added one more test from N. Mueller
41078
410792000-12-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41080
41081	cleaned calls to mpfr_extract
41082
41083	added new line
41084
41085	added error message when _mp_allocate_func returns 0
41086
41087	added header for mpfr_extract
41088
41089	- documented what function does
41090	- cleaned code
41091	- added header about license...
41092
41093	replaced log(2.0) by LOG2 [first step in getting rid of math.h]
41094
41095	added extern "C" { ... } for inclusion in C++
41096	removed old KARATSUBA threshold for gmp 2.0.2
41097
41098	fixed bug in mpfr_cmp3 (when b=0, s not taken into account)
41099
41100	added swap/tswap
41101
41102	test file for new function mpfr_swap
41103
41104	added new function mpfr_swap
41105
41106	changed copyright to Free Software Foundation
41107
41108	added possible bug in mpfr_get_str
41109
41110	now all is in mpfr.h
41111
41112	return value was wrong for input non-zero (should return 1 = inexact)
41113
41114	fixed/improved doc. of mpfr_sin_cos and mpfr_urandomb
41115
41116	removed macro for mpfr_init_set_str_raw
41117
41118	added prototype for mpfr_sin_cos
41119
41120	sign of result was not correctly (re)set
41121
41122	added test to check sign of square root
41123
411242000-11-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41125
41126	gained a factor of 2 in most cases (replaced initial constant factor=2
41127	for additional bits for cos(x) by log(n))
41128
41129	added tsin_cos
41130
41131	fixed potential problem in mpfr_sub1 (k=0 and kc<0)
41132
41133	test file for sin/cos
41134
411352000-11-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41136
41137	forgot cast to int before comparison between imax (can be negative) and an
41138
41139	returned value was one too small in case d=1
41140
41141	added new test from N. Mueller
41142
41143	added return for case of infinities
41144
41145	added macro MPFR_RESET_INF
41146
41147	don't forget to reset infinity flag if set!
41148
41149	fixed bug in mpfr_cmp2: wrong limb considered after cp[cn--] when
41150		cp[cn] was not 111...111
41151
41152	fixed bug when imax>an
41153
411542000-11-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41155
41156	added macro MPFR_IS_ZERO
41157
411582000-11-21  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41159
41160	Infinis, premiere tentative (tests)
41161
41162	Infinis, premiere tentative.
41163
411642000-11-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41165
41166	added one remark from GH
41167
41168	removed mpfr_cmp2
41169
411702000-11-13  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41171
41172	Added support for Inf. Modified zeta.
41173
411742000-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41175
41176	protection of macros done
41177
41178	shell-script to replace xxx by yyy in all source files
41179
41180	protected macros: xxx -> MPFR_xxx
41181
41182	protected all macros: xxx -> MPFR_xxx
41183
411842000-10-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41185
41186	fichier d'include pour mpfi.c
41187
41188	interval arithmetic level (1st version)
41189
41190	added two suggestions from Ben Hinkle
41191
411922000-10-19  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41193
41194	Bof.
41195
41196	Suppression de vieilleries.
41197
41198	1 << 31 -> ((unsigned int)1) << 31.
41199
41200	Correction de prototypes faux dans le cas ou on n'est pas -D__STDC__.
41201
412022000-10-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41203
41204	malloc -> *_mp_allocate_func or TMP_ALLOC
41205
41206	mpfr_t -> mpfr_ptr or mpfr_srcptr
41207
412082000-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41209
41210	removed -> all is in texp.c
41211
41212	added comparison between exp2 and exp3
41213
41214	take also the target precision into account for the guard bits
41215
41216	new faster version with O(n^(1/3)*M(n)) algorithm
41217
41218	adjusted exp2-exp3 threshold for new faster version of mpfr_exp2
41219
41220	added mpz_set_fr.c
41221
41222	added tdump
41223
41224	fixed pb for op=0 (added \0 at the end of string)
41225
41226	use strlen to determine memory to free
41227
41228	test file for mpfr_dump
41229
41230	removed karasqrt.c, added sqrtrem.c
41231
41232	kara_sqrtrem -> mpn_sqrtrem_new
41233
41234	now replaced by new code in sqrtrem.c
41235
41236	now uses new code mpn_sqrtrem_new
41237
41238	new version of fast MPN square root
41239	(should be integrated in a future release of GNU MP)
41240
412412000-09-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41242
41243	added another example from N. Mueller
41244
41245	fixed another ABW bug
41246
41247	fixed two Array Bound Writes
41248
41249	fixed one Array Bound Read (to_nearest, bp=cp and k>=cn)
41250
41251	added 2 new tests from Norbert Mueller
41252
412532000-09-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41254
41255	added new test
41256
41257	fixed Array Bound Write
41258
412592000-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41260
41261	added some words about the inclusion of mpfr.h
41262
41263	we need to better protect macros
41264
41265	removed MPFR_OBJECTS (does not work)
41266
41267	added $(MPFR_OBJECTS) in libmpfr_a_LIBADD
41268
41269	added $(MPFR_OBJECTS) in libmpfr_a_DEPENDENCIES
41270
41271	added contributions from Emmanuel Jeandel and Thom Mulders
41272
41273	added Thom Mulders
41274
41275	routines for naive/fast short multiplication,
41276	contributed by Thom Mulders (ETH Zu"rich)
41277
412782000-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41279
41280	added new test for overlapping x, y
41281
41282	fixed problem when x=y
41283
412842000-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41285
41286	added pb from Norbert Muller
41287
41288	fixed SEGV (mpn_lshift doesn't seem to like src_size=0)
41289
41290	now prints "failed" when test file doesn't return 0
41291
412922000-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41293
41294	replaced mpn_divrem by mpn_tdiv_qr for gmp 3 or later
41295	and avoid copy of one operand when possible
41296
41297	updated (make check, make install)
41298
41299	described each file
41300
41301	News for version 1.0
41302
413032000-08-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41304
41305	fixed bug for 0.9999999999...
41306
41307	added test for 0.99999999999999999
41308
413092000-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41310
41311	added mpfr_swap
41312
41313	now store last computed value together with last rounding mode
41314
413152000-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41316
41317	target ps -> mpfr.ps
41318
41319	added $(srcdir) to trunc.c for sub-directory compilation
41320
413212000-08-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41322
41323	removed some memory leaks
41324
41325	solved memory leaks with T[i] and qtoj[i]
41326
41327	updated (done autoconf, faster mpfr_exp, sin/cos)
41328
41329	updated for version 1.0
41330
41331	COPYING.LIB -> COPYING
41332
41333	renamed back (wanted for "make dist")
41334
41335	renamed back to COPYING (wanted for "make dist")
41336
41337	GNU Library General Public License
41338
41339	renamed to COPYING.LIB, according to mpfr.texi
41340
41341	result was free'd twice when good=1
41342
41343	put information about authors
41344
41345	PACKAGE and VERSION are not defined any more
41346
41347	gmp-mparam.h is required too
41348
41349	IRIX make does not recognize $< (MISCFLAGS)
41350
41351	do not define PACKAGE and VERSION in AM_INIT_AUTOMAKE,
41352	this avoids conflicts with GMP 3.1 config.h
41353	[thanks to Kevin Ryde]
41354
41355	updated for GMP 3.1
41356
41357	MP_BASE_AS_DOUBLE already defined in gmp-impl.h
41358
41359	nb_terms[0] was not initialized
41360
41361	fixed some FNH (free not in heap) problems for binary splitting method
41362	(prec >= 30000)
41363
41364	gmp.info -> mpfr.info
41365
41366	set_dfl_rnd.* -> set_rnd.* (to avoid conflict with set_dfl_prec.* on DOS 8.3)
41367
41368	now automatically generated by configure
41369
41370	added if (__GNU_MP_VERSION < 3) for mpn_divrem_1-bug patch
41371
41372	set_dfl_rnd -> set_rnd
41373
41374	new name of set_dfl_rnd.c (avoids clash with set_dfl_prec.c on DOS 8.3)
41375
41376	renamed to set_rnd.c (otherwise truncates like set_dfl_prec.c on
41377	a DOS 8.3 filesystem)
41378
41379	setfilename: gmp.info -> mpfr.info
41380
41381	replaced path for libmpfr.a by $(top_builddir)
41382	test files are now in check_PROGRAMS instead of bin_PROGRAMS (they don't need
41383		to be installed)
41384
41385	replaced back BITS_PER_MP_LIMB by mp_bits_per_limb
41386	(not important in test files)
41387
413882000-08-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41389
41390	replaced macros for mpfr_init_set_si by "do { ... } while (0)" so
41391	they'll work in an if/else like
41392
41393	        if (foo)
41394	          mpfr_init_set_si (f, -123, GMP_RNDN);
41395	        else
41396	          bar ();
41397
41398	[thanks to Kevin Ryde]
41399
414002000-08-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41401
41402	replaced mp_bits_per_limb by BITS_PER_MP_LIMB (constant)
41403
414042000-08-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41405
41406	added mpf2mpfr.h
41407
41408	define check2 only with -DTEST
41409
41410	updated for new configure from Emmanuel Jeandel, to GMP 3.xxx
41411	and removed errors with texinfo
41412
41413	solaris --> __sparc__
41414
41415	ifdef IRIX64 -> ifdef __mips
41416
41417	IRIX/make does not understand $< : expanded to trunc.c
41418
41419	use standard macro for Alpha
41420
414212000-07-13  Emmanuel Jeandel  <emmanuel.jeandel@loria.fr>
41422
41423	autoconf options described
41424
41425	timestamp modified
41426
41427	timestamp changed
41428
41429	nothing to say
41430
41431	Timestamp
41432
41433	Small bug fixed
41434
41435	Timestamp modified ?
41436
41437	Timestamp modified
41438
41439	Nothing
41440
41441	New release
41442
41443	Bugs fixed
41444
41445	Bug fixed
41446
41447	sin_cos added
41448
41449	New algorithm, new wrapper
41450
414512000-07-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41452
41453	replaced 0 by GMP_RNDN
41454
41455	fixed (hopefully) bug for 1/1 in precision 32, 64, ...
41456
41457	added test for 1/1 in precision 32 or 64
41458
414592000-07-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41460
41461	use mpfr_print_rnd_mode now
41462
414632000-07-11  Emmanuel Jeandel  <emmanuel.jeandel@loria.fr>
41464
41465	Bug Fixed, and installation guide made
41466
41467	Fixed bug
41468
41469	Bug Fixed with Solaris make
41470
41471	strings.h added
41472
41473	Deps included
41474
41475	Bug Fixed
41476
41477	Bug fixed
41478
41479	Bug Fixed
41480
41481	First Release
41482
41483	*** empty log message ***
41484
41485	First Release
41486
41487	First release
41488
41489	Added sin_cos
41490
41491	First Release
41492
414932000-06-29  Emmanuel Jeandel  <emmanuel.jeandel@loria.fr>
41494
41495	Memory problems fixed
41496
41497	Memory Leaks Fixed
41498
414992000-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41500
41501	added prototype for mpfr_sub_ui
41502
41503	now use mpfr macros
41504
41505	be careful not to call mpn_sub_n/mpn_sub_1 with a size 0
41506
41507	fixed to free an entire number of limbs
41508
41509	test file for sub_ui
41510
415112000-06-28  Emmanuel Jeandel  <emmanuel.jeandel@loria.fr>
41512
41513	mpfr_exp3 and mpfr_extract added to Makefile
41514
41515	First Release
41516
415172000-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41518
41519	distinguish between mpfr failure and difference with sqrt()
41520
41521	ensures random numbers given to sqrt() are positive
41522
41523	adapted for freebsd
41524
41525	modified drand to avoid false NaNs (makes SEGV under FreeBSD)
41526
41527	added entry for FreeBSD, removed -pedantic option
41528
41529	added one test
41530
41531	added new tests
41532
41533	added prototype for mpfr_set_prec_raw
41534
41535	removed work done
41536
41537	fixed several bugs
41538
41539	merged different roundings in case diff_exp<PREC(a), dif<=PREC(c)
41540
41541	removed printf for argc=1
41542
41543	added one test
41544
41545	make ceil.o,floor.o,trunc.o depend on trunc.c
41546
415472000-06-20  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41548
41549	Various patches for leaks, UMR and (one) BUS.
41550
415512000-06-19  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41552
41553	This patch suppresses a few mem leaks.
41554
41555	Suppressed memory leaks.
41556
41557	Patch for 1 << (BITS_PER_MP_LIMB - x) when x is 0 (produces inexact results
41558	on PPCs).
41559
415602000-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41561
41562	arguments of gmp_randinit were in wrong order
41563
415642000-06-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41565
41566	Patch in the case when n_bits is a multiple of 32.
41567
415682000-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41569
41570	added patch to get denorms on IRIX64
41571
41572	put instruction to get denormalized numbers on IRIX64 out of #ifdef TEST
41573
41574	fixed bug occurring on LinuxPPC (1 << 32)
41575
41576	added one test (bug on LinuxPPC)
41577
41578	added one test
41579
41580	fixed several problems
41581
41582	added more tests
41583
415842000-06-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41585
41586	Patches for the case where the precision is a multiple of the word size.
41587
415882000-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41589
41590	fixed another bug
41591
41592	added one test
41593
41594	added prototype for mpz_set_fr
41595
41596	improved choice of initial precision
41597
41598	added mpz_set_fr (conversion from mpfr to mpz)
41599
41600	added return type 'int' for main
41601
416022000-06-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41603
41604	Added TESTFLAGS to the main Makefile. Added ttrunc.
41605
41606	Minor patch (put to 0 the nonsignificant bits).
41607
41608	Added declaration of trunc, ceil, floor.
41609
41610	Tests for trunc, ceil, floor.
41611
41612	Added TESTFLAGS variable to the compile instruction, for use as
41613	make "TESTFLAGS=-DTEST"
41614
416152000-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41616
41617	1 -> (mp_limb_t) 1 [pb on 64-bit machines]
41618	reduced number of tests to 1000
41619
416202000-06-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41621
41622	Display of statistics is only toggled if a number of tests to be performed
41623	is given. Shameful hack, but is getopt really portable ?
41624
41625	Added trandom, teq
41626
41627	Added random2, urandomb
41628
41629	Added div_2exp to the (very rough) test.
41630
41631	Very basic statistical tests for random, random2, urandomb.
41632
41633	Patch for random (libc's random() is on 31 bits only)
41634
41635	Test for mpfr_eq.
41636
41637	Patch a few incoherences of eq.c wrt the manual + adapt to mpfr usual semantics
41638
416392000-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41640
41641	header file providing cputime() function
41642
41643	test file comparing mpfr_exp and mpfr_exp2
41644
41645	O(n^(1/3)*log(n)) algorithm using Brent's method
41646	and Brent-Kung's O(sqrt(t)) algorithm to evaluate
41647	a power series of order t [exact rounding not yet finished]
41648
416492000-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41650
41651	fixed bug in mpfr_round (wrong sign)
41652
41653	fixed bug in mpfr_round: did not check allocated space was large enough
41654
41655	main -> int main
41656
41657	added #ifdef TEST: if not defined (default), then function
41658	mpfr_set_machine_rnd_mode is not defined
41659
41660	added #ifdef TEST to disable comparison with machine arithmetic
41661	by default (i.e. calls to mpfr_set_machine_rnd_mode)
41662
41663	removed longlong.h (not needed)
41664
41665	now deals with NaN
41666
41667	RND_MODE -> rnd_mode
41668
41669	mpfr_init is now a function (no more a macro)
41670
41671	printf -> fprintf
41672	added mpfr_init as function
41673
41674	changed (x) -> x
41675	fixed several typos
41676
41677	removed printf
41678
416792000-05-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41680
41681	added ifdef TEST
41682
41683	removed debug line
41684
41685	added one test
41686
41687	added 2 new tests
41688
41689	little change
41690
41691	more changes
41692
41693	added ifdef TEST
41694
41695	does not use machine rounding mode any more
41696
41697	added 7 new tests
41698
41699	fixed typo in printf format
41700
41701	fixed several rounding problems
41702
41703	rewritten case dif<=0 and PREC(b)>PREC(a) (merged all roundings)
41704
41705	removed DEBUG, VERBOSE ifdef's
41706
41707	fixed (hopefully) the case dif<=0, PREC(b)>PREC(a), directed rounding
41708
41709	replaced (mp_limb_t)1 by macro ONE
41710	fixed bug for GMP_RNDN with overlap=1
41711
41712	removed misplaced comment
41713
41714	added one test
41715
41716	does not use rnd_mode.c by default
41717
41718	removed unused label
41719
41720	fixed more tiny bugs
41721
417222000-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41723
41724	use mpfr_print_rnd_mode now
41725
41726	added one test
41727
41728	added more tests
41729
41730	removed TMP_ALLOC stuff
41731
41732	fixed new bug when a <- b - c with tiny c
41733
41734	fixed bug in a <- b-c when c very small but does not overlap with a
41735
41736	removed 'inline' (does not compile on Alpha with gcc 2.8.1)
41737
41738	added include file unistd.h
41739
41740	fixed warning with long arguments
41741
41742	initial version
41743
41744	added tests for mpfr_set_str
41745
41746	now returns 0 if all works
41747
41748	changed to return the error in ulps
41749
41750	added new functions mpfr_set_str and mpfr_inp_str
41751
41752	added prototypes for set_str, inp_str
41753	changed return value for mpfr*pow*
41754
41755	separated functions with/without rounding argument
41756
41757	added tabs
41758
41759	added set_str.o and inp_str.o
41760
417612000-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41762
41763	initial version
41764
41765	added rule for sub_ui.o
41766
41767	use only one file (trunc.c) for ceil, floor, trunc
41768
41769	now use trunc.c for all 3 functions (ceil, floor, trunc)
41770
41771	added ifdef to avoid warning at compilation
41772
41773	removed unused variable
41774
41775	fixed output type for mpfr_ui_div
41776
41777	removed 3rd argument (use PREC(rop) instead)
41778	added include longlong.h
41779
41780	stupid typo: ABSSIZE -> ABSSIZE(x)
41781
41782	change due to new semantics of mpfr_init_set* macros
41783
41784	now makes an error when precision too large wrt allocated space
41785
41786	added new implemented functions
41787
41788	- added macro for mpfr_sgn
41789	- removed argument 'p' in mpfr_init_set* macros for compatibility with mpf
41790
41791	updated wrt new functions
41792
41793	added sub_ui
41794
41795	added new test files
41796
41797	new test files
41798
41799	added new tests
41800
41801	improved tests
41802
41803	new functions (compatibility with mpf)
41804
41805	added 4th arg (was missing in non-stdc def)
41806
41807	added new functions (compatibility with mpf)
41808
41809	added several prototypes
41810
41811	fixed remaining bug (case overlap=5, dif>0)
41812
41813	added add_ui, sqrt_ui, ui_div, ui_sub, reldiff
41814
418152000-05-21  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41816
41817	Compatibility mpf/mpfr, second part. Ceil, floor, trunc. Yet untested.
41818
41819	Include file for compatibility module mpf -> mpfr.
41820
41821	Compatibility with mpf. WARNING: THESE FUNCTIONS ARE UNTESTED IN THEIR PRESENT
41822	FORM. THEY *DO* COMPILE HOWEVER.
41823
418242000-05-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41825
41826	removed unused variables
41827
41828	removed ';'
41829
41830	added return
41831
41832	added calls to mpf[r]_clear, and rewrote to avoid memory leaks
41833
41834	added calls to free
41835
41836	corrected comment about field mp_size
41837
418382000-05-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41839
41840	added tests for negative numbers
41841
41842	added one test
41843
41844	fixed pb with rounding of negative numbers
41845
418462000-05-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41847
41848	added mpfr_abs
41849
41850	test file for mpfr_abs
41851
41852	added mpfr_abs (macro using mpfr_set4)
41853
41854	updated wrt done/new tasks
41855
418562000-05-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41857
41858	added two tests
41859
41860	split mpfr_init2 into mpfr_init and mpfr_set_prec
41861
41862	removed karadiv.o
41863
41864	replaced mpn_divrem_n by mpn_divrem (efficient in GMP 3.0)
41865
41866	not needed any more with GMP 3.0
41867
41868	removed mpn_divrem_n stuff, now that Burnikel/Ziegler algorithm is in GMP 3.0
41869
41870	added one test
41871
418722000-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41873
41874	completely rewritten (changed semantics)
41875
41876	initialized variable bh to avoid warning at compilation
41877
41878	added prototype for mpfr_set_default_rounding_mode
41879
41880	fixed pb in mpfr_cmp_ui_2exp for i=0
41881
41882	updated according to meeting from May 4, 2000
41883
41884	updated for AIX
41885
41886	updated for AIX (thanks to Gerardo Ballabio)
41887
418882000-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41889
41890	added one test
41891
41892	fixed bug found by G. Ballabio for b=0 and 0<c<1
41893
41894	added info for GMP2 vs GMP3
41895
418962000-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41897
41898	added -ffloat-store for Alpha/OSF
41899
41900	added cast to mp_limb_t (bug on Alpha in tadd with -O2)
41901
41902	added one test
41903
41904	removed #if 0
41905
41906	swapped gmp-impl.h and longlong.h for GMP 3.0
41907
419082000-04-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41909
41910	added more tests
41911
41912	fixed pb when target precision is less than integer length
41913
41914	fixed problem not solved so far, i.e. when adding round bit
41915	produces a change of exponent
41916
419172000-04-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41918
41919	fixed computation of ulps
41920
41921	removed variable xrw in mpfr_round_raw (not used)
41922
41923	replaced 1st my by my+sh in mpfr_round_raw call
41924
41925	added 2 more tests
41926
419272000-04-13  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
41928
41929	Correction d'un bug quand le carry contient tous les bits significatifs.
41930
419312000-02-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
41932
41933	improved indentation
41934	mpfr_pi -> mpfr_const_pi
41935
41936	added one test
41937
41938	mpfr_pi -> mpfr_const_pi
41939
41940	use mpfr_cmp_ui instead of SIGN
41941
41942	mpfr_log2 -> mpfr_const_log2
41943
41944	added -O2 compilation flag
41945	added set_q
41946
41947	convert rational (mpz_q) to floating-point (mpfr_t)
41948
41949	removed things which were done
41950
41951	unsigned char -> mp_rnd_t
41952	SIGN -> MPFR_SIGN
41953
41954	use PREC() macro instead of _mp_prec, and corrected size to free
41955
41956	SIGN -> MPFR_SIGN
41957
41958	unsigned char -> mp_rnd_t
41959	SIGN -> MPFR_SIGN
41960	added non standard C header
41961
41962	unsigned char -> mp_rnd_t
41963
41964	unsigned long int -> mp_prec_t
41965
41966	renamed to mpfr_const_log2
41967	unsigned char -> mp_rnd_t
41968
41969	unsigned char -> mp_rnd_t
41970	SIGN -> MPFR_SIGN
41971	unsigned long int -> mp_prec_t
41972
41973	unsigned char -> mp_rnd_t
41974	unsigned long int -> mp_prec_t
41975
41976	unsigned char -> mp_rnd_t
41977
41978	renamed to mpfr_const_pi
41979	unsigned char -> mp_rnd_t
41980
41981	unsigned char -> mp_rnd_t
41982	added non standard C header
41983
41984	SIGN -> MPFR_SIGN
41985
41986	added non standard C header
41987
41988	unsigned char -> mp_rnd_t
41989	SIGN -> MPFR_SIGN
41990	unsigned long int -> mp_prec_t
41991
41992	unsigned char -> mp_rnd_t
41993	SIGN -> MPFR_SIGN
41994
41995	unsigned long int -> mp_prec_t
41996
41997	har -> mp_rnd_t
41998
41999	changed rounding mode to mp_rnd_t
42000
420012000-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42002
42003	now distinguish between true mpfr errors and possible errors from libm.a
42004
42005	now use print_rnd_mode
42006
42007	added suggestion from JP Merlet
42008
42009	added print_rnd_mode.c
42010
42011	added more tests
42012
42013	fixed bug(s) found by Jean-Pierre Merlet
42014
42015	changed prototype of mpfr_set_f (takes now only 3 arguments)
42016
420172000-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42018
42019	added karasqrt.o
42020
42021	added prototype for kara_sqrtrem
42022	added redefinition of KARATSUBA_MUL_THRESHOLD (if not defined)
42023	removed definition of LOG_MP_BITS_PER_LIMB (was not used)
42024
42025	changed return type to mp_size_t and included mpfr.h
42026
42027	moved definition of KARATSUBA_MUL_THRESHOLD (if not defined) to mpfr.h
42028
42029	implements Katatsuba square root
42030
42031	now use kara_sqrtrem instead of mpn_sqrtrem
42032
42033	fixed bug when high limb of quotient is zero
42034
420352000-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42036
42037	added one test [did fail on alpha]
42038
42039	added cast to mp_limb_t in front of 1<<sh
42040
42041	modified to be compatible with gmp-2.0.2
42042
42043	added further sqrt pb on alpha
42044
42045	swapped longlong.h and gmp-impl.h (pb on alpha)
42046
42047	added test for bug in sub.c found by JP Merlet on Solaris
42048
42049	fixed mpn_rshift which could have 0 as shift argument
42050	(caused bug in exp on Solaris found by JP Merlet)
42051
42052	moved debug messages to stdout
42053
420542000-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42055
42056	added prototype for mpn_divrem_n (Burnikel-Ziegler algorithm)
42057
42058	use mpn_divrem_n (Burnikel-Ziegler algorithm) instead of mpn_divrem
42059	when rsize=rrsize
42060
42061	added karadiv.c (to be removed when incorporated in GMP)
42062
42063	Burnikel-Ziegler division
42064
420652000-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42066
42067	added further examples from V. Lefe`vre
42068
420691999-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42070
42071	added macri VERSION for target dist
42072
42073	added new tests from V. Lefe`vre
42074
42075	improved interface: tdiv N for doing N random tests
42076
42077	added one test
42078
42079	DEBUG2 -> DEBUG
42080
42081	added debug instructions
42082
42083	fixed nasty bug in mpfr_cmp2 (case cc=1)
42084
42085	replaced printf by fprintf for error
42086
420871999-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42088
42089	added new tests for large input
42090
42091	fixed bug for large input
42092
42093	rewritten the error analysis:
42094	- now analyzes the cancellation a posteriori
42095	- takes into account errors from rounding and initial approximation
42096
42097	added tests from Vincent Lefe`vre
42098
42099	no warning any more for negative exponent (thanks to V. Lefe`vre)
42100
421011999-12-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42102
42103	fixed bug found by V. Lefe`vre (when n<0, we have to compute
42104	an upper bound of log(2) instead of a lower bound)
42105
42106	added new test (bug found by V. Lefe`vre)
42107
421081999-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42109
42110	added suggestion from V. Lefe`vre
42111
42112	added several remarks from Vincent Lefe`vre
42113
42114	corrected many typos found by Vincent Lefe`vre
42115
421161999-11-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42117
42118	removed executable rights
42119
42120	improved GMP link (thanks to Vincent Lefe`vre)
42121	added pointer to Alpha-Linux f-p problems
42122
42123	removed executable right on file
42124
421251999-10-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42126
42127	put back test for x=y
42128
42129	modified to avoid y=-0.0
42130
42131	modified test procedure to return 53 when x=y
42132
42133	mpfr_cmp2(b,c) now returns PREC(b) if b=c, even if c=0
42134
42135	added one test
42136
42137	added test under Cygwin
42138
42139	$make -> $MAKE
42140
42141	removed *rand48 prototypes (pb under Cygwin)
42142
42143	removed *rand48 prototypes
42144
42145	removed lrand48 prototype (pb under Cygwin)
42146
42147	added rounding instructions for Cygnus compiler under Windows
42148
42149	added dummy *rand48 functions for CYGWIN
42150
42151	added info about gmp-mparam.h
42152
42153	incorporated data for CYGWIN
42154
421551999-10-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42156
42157	added one test
42158
42159	added boundary cases from paper from Michael Parks
42160
421611999-10-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42162
42163	now set sign correctly
42164
42165	added test to check sign is correctly set
42166
42167	added worst case for arg. reduction
42168
42169	fixed bug when initial approx. floor(x/log(2)) is too large
42170
421711999-10-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42172
42173	now use macros for Linux case, and added ifdef for _ISOC9X_SOURCE
42174
42175	changed target dist to create archive in a directory
42176
421771999-10-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42178
42179	added targets doc and dist
42180
42181	added documentation and contact for problems
42182
42183	file for installation of mpfr
42184
42185	added more tests
42186
42187	now deal with 0 and fixed bug on 64-bit machine
42188
42189	moved to sqrt.c
42190
42191	now use directly mpn_sqrtrem (previously sqrt3.c)
42192
42193	updated prototypes of mpfr_div/mpfr_sqrt
42194
42195	removed div3 and sqrt3
42196
42197	div3 -> div
42198
42199	moved to div.c
42200
42201	replaced implementation using Goldschmidt's algorithm
42202	by that using directly mpn_divrem (previously div3.c)
42203
42204	sqrt3 -> sqrt
42205
42206	GNU Library Public License
42207
422081999-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42209
42210	removed printf statement
42211
42212	added ABS for SIZ(z) when z<0
42213
42214	removed special 'exact' stuff for n=0
42215
42216	fixed prototype of random
42217
422181999-07-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42219
42220	replaced GNU MPFR by MPFR (not yet the GNU label)
42221
42222	added copyright notice
42223
422241999-07-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42225
42226	added one test with prec=160
42227
42228	error term is N+1 and not N
42229
42230	fixed bug in case sh=0
42231
422321999-07-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42233
42234	completely rewritten mpfr_can_round_raw, which costs now O(1)
42235	--- or more probably O(log n) --- instead of O(n)
42236
422371999-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42238
42239	changed mpfr_init2 to mpfr_set_prec
42240
42241	added one test
42242
42243	added prototype for mpfr_add1
42244
42245	added mpfr_clear
42246
422471999-07-07  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42248
42249	sqrt3 now returns an exact / inexact flag.
42250
42251	sqrt3 now returns an exact/inexact flag.
42252
422531999-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42254
42255	fix UMR (missing 0 terminating string)
42256
42257	put initialization of exponent back (avoids some UMRs)
42258
42259	fixed array bound write bug
42260
42261	added one test
42262
42263	added several tests, and does not print on stdout when no argument
42264
42265	fixed several bugs
42266
422671999-07-07  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42268
42269	Added an example which causes an ABW in mpz_get_str.
42270
422711999-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42272
42273	moved drand to mpfr-impl.h and added test in large precision
42274
42275	added tout_str
42276
422771999-07-07  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42278
42279	Problem with the exponents in the destructive case.
42280
422811999-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42282
42283	more changes from G. Hanrot
42284
42285	use now drand48 instead of drand
42286
42287	simply set to zero the non-significant bits, don't call mpfr_round_raw
42288
42289	upgrade from bug fixes from Guillaume Hanrot
42290
42291	stores now last computed value together with its rounding mode
42292
42293	checks now destructive version
42294
422951999-07-07  Sylvie Boldo  <sylvie.boldo@inria.fr>
42296
42297	changes on random
42298
42299	using div3
42300
42301	using sqrt3
42302
423031999-07-06  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42304
42305	HPUX support, 2nd try.
42306
42307	Patch for the (very seldom encountered) case of even rounding.
42308
423091999-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42310
42311	added def. for random/srandom, which do not exist under HPUX
42312
42313	store now computed values
42314
42315	_mpfr_log2_* -> __mpfr_log2_*
42316
42317	merged machine rounding instructions for Sun and HP
42318
42319	patch for HPUX (no random function)
42320
42321	added print_rnd_mode
42322
42323	fixed prototype of mpfr_print_rnd_mode
42324
42325	improved ulp to deal with case a=0.0
42326
42327	added return 0 to main
42328
423291999-07-06  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42330
42331	Forgotten casts.
42332
42333	Added sqrt3 + tentative support for Alpha linux.
42334
42335	The word added when the exponent is odd was sometimes uninitialized.
42336
42337	Initial version.
42338
42339	Added mpfr_sqrt3.
42340
423411999-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42342
42343	added several functions, and updated others
42344
42345	changed prototype of mpfr_log
42346
42347	returns now an int instead of void
42348
42349	removed initialization of exponent
42350
42351	special case for exp(0)
42352
42353	added test for exp(0)
42354
423551999-07-06  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42356
42357	config.in -> ./config.in
42358
423591999-07-05  Sylvie Boldo  <sylvie.boldo@inria.fr>
42360
42361	new, quick & clean
42362
423631999-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42364
42365	added two tests and converted to double's
42366
423671999-07-05  Sylvie Boldo  <sylvie.boldo@inria.fr>
42368
42369	more checking ways
42370
423711999-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42372
42373	distinguishes now between true errors and differences with libm.a
42374	(which may fail too)
42375
42376	removed mpf stuff in check
42377
42378	added some mpfr_clear's
42379
42380	changed defs of random/srandom to work on Alpha
42381
42382	mpfr_init2 -> mpfr_set_prec in check64
42383
42384	added function dbl
42385
42386	added prototypes for mpfr_cmp3 and mpfr_set4
42387
42388	use mpfr_set4 now (no modification of const parameters any more)
42389
42390	return 0 in mpfr_can_round_raw
42391
42392	introduced auxiliary function mpfr_set4
42393
42394	fixed possible bug (testing sign of unsigned long) in mpfr_mul_ui
42395
42396	replaced PREC(r) by prec (which was defined but not used)
42397
42398	moved drand and ulp to mpfr-impl
42399
42400	moved ulp to mpfr-impl.h
42401	and used input routine 'dbl' in some tests
42402
42403	modified one test to avoid rounding from double input routines
42404
42405	introduced auxiliary function mpfr_cmp3(x,y,sign) to compare x and sign*y
42406
42407	moved drand and ulp to mpfr-impl.h
42408
42409	mpfr_sub now calls directly mpfr_add1/mpfr_sub1 (no modification of
42410	const parameters any more)
42411
42412	moved drand to mpfr-implh.h
42413
42414	use mpfr_cmp3 instead of mpfr_cmp (avoids warning due to modification of
42415	const parameters)
42416
42417	moved drand to mpfr-impl.h and removed warnings
42418
42419	use the result of mpfr_can_round
42420
42421	moved drand and ulp to mpfr-impl.h
42422
42423	moved drand to mpfr-impl.h
42424
42425	moved drand to mpfr-impl and removed warnings
42426
42427	added include of math.h
42428
42429	moved drand and ulp to mpfr-impl.h
42430
42431	include file for mpfr developers only
42432
42433	long -> int in drand
42434
42435	adapted drand to sizeof(long)=64
42436
42437	config.in -> ./config.in (otherwise don't work under IRIX)
42438
42439	removed warnings
42440
42441	patch for GMP bug when UDIV_NEEDS_NORMALIZATION=1
42442
424431999-07-02  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42444
42445	Correction of a typo.
42446
424471999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42448
42449	fixed horrible hack yp[-1]
42450
424511999-07-02  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42452
42453	Support of IRIX64 (n32/64 modes) plus cosmetic modifications.
42454
424551999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42456
42457	added one test, and adapted to ANSI C
42458
424591999-07-02  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42460
42461	Yet Another Backslash Forgotten...
42462
42463	Bug le plus stupide de tous les temps corrige. Ca marchait sous Solaris...
42464
424651999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42466
42467	added one test and removed warnings
42468
424691999-07-02  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42470
42471	Added mpfr_div3.
42472
42473	Added div3.c
42474
424751999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42476
42477	fixed bug when sizeof(long) <> sizeof(mp_limb_t)
42478	and removed DEBUG2 stuff
42479
42480	added one test, and removed warnings
42481
424821999-07-02  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42483
42484	Added div3.c, initial release.
42485
42486	Patch of the patch :)
42487
42488	Pattern matching rules in tests Makefile for non-GNU make (eg Solaris)
42489
424901999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42491
42492	adapted to enable denormalized numbers on IRIX64, added one test and
42493	removed warnings
42494
42495	changed type of 3rd arg. 'neg' of mpfr_can_round_raw from char to int
42496	(pb with signed char's on some machines, e.g. IRIX64)
42497
42498	adapted to IRIX64 (enable denorm. numbers) and removed warnings
42499
42500	adapted to IRIX64 (enable denormalized numbers) and removed warnings
42501
42502	adapted to IRIX64 (no denormalized by default) and removed warnings
42503
42504	unsigned long -> mp_limb_t
42505
425061999-07-02  Sylvie Boldo  <sylvie.boldo@inria.fr>
42507
42508	unused variables
42509
42510	unused variable
42511
425121999-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42513
42514	added ifdef to avoid warning "unused variable" on 64-bit machine
42515
42516	added def. of swapRM to avoid warning on IRIX64
42517
42518	1UL -> ((mp_limb_t) 1)
42519
42520	changed type of mask to mp_limb_t in mpfr_round_raw2
42521
42522	adapted for denormalized on IRIX64
42523	now test NaNs too
42524
425251999-07-01  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42526
42527	Due to the representation of 0 it might have happened that 0 != 0.
42528
42529	Patch mpfr_set -> MPN_COPY
42530
42531	Patch when prec < 32.
42532
425331999-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42534
42535	fixed bugs for 64-bit machines
42536
42537	added casts to mp_limb_t
42538
42539	added cast to mp_limb_t for shifts
42540
425411999-07-01  Sylvie Boldo  <sylvie.boldo@inria.fr>
42542
42543	prints nothing is everything is allright
42544
42545	memory gestion
42546
42547	one single bug
42548
42549	more bad cases
42550
425511999-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42552
42553	added some certified tests
42554
42555	added one test to check that 1*y = y
42556
425571999-07-01  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42558
42559	Patch of an MLK due to multiple initialization of the same variables without
42560	freeing them in-between.
42561
42562	Same as in sqrt (allocation problem).
42563
425641999-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42565
42566	fixed bug due to shift=0 in mpn_rshift
42567
425681999-07-01  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42569
42570	(Temporary) patch for memory gestion in sqrt.c
42571
425721999-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42573
42574	mpfr_init -> mpfr_init2
42575
42576	initialize temporary variables with current precision
42577
425781999-06-30  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42579
42580	Unbelievably stupid bug fixed.
42581
42582	Two patches : one for an UMR which actually had no effect, one for an FNH in
42583	old code..
42584
425851999-06-30  Sylvie Boldo  <sylvie.boldo@inria.fr>
42586
42587	new bug
42588
42589	there were some conflicts
42590
42591	there were some conflicts
42592
42593	memory gestion
42594
425951999-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42596
42597	replaced outputs by direct comparison when no argument
42598
42599	modified to do only certified test when no argument
42600
42601	modified to do only tests with precomputed values when no argument
42602
42603	does exact rounding only for n=0
42604
426051999-06-29  Jean-Luc Rémy  <Jean-Luc.Remy@loria.fr>
42606
42607	added zeta/tzeta
42608
42609	added prototypes for mpfr_exp and mpfr_zeta
42610
42611	computes Riemann function Zeta(s)
42612	first version: only works for s=2 with PREC(result)=53 and rnd_mode=nearest
42613
42614	test file for mpfr_zeta
42615
42616	added prototype for mpfr_set_default_prec
42617
42618	file renamed zeta.c
42619
42620	first version: computes Zeta(2) with fixed precision 53 bits and round
42621	to nearest
42622
426231999-06-29  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42624
42625	Patch in the case when the number of bits is a multiple of the word size.
42626
42627	Patch in the case when the low words of the product are zero.
42628
426291999-06-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42630
42631	changed arguments of mpfr_round_raw (continued)
42632
42633	changed arguments of mpfr_round_raw (now uses precision instead of size)
42634
42635	modified wrt warnings at compilation
42636
42637	modified description of mpfr_get_str for n_digits=0
42638
42639	now performs an exact output when n_digits=0
42640
426411999-06-28  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42642
42643	Yet another corrected prototype.
42644
426451999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42646
42647	Prototypes et quelques causes de warnings corriges.
42648
42649	Modifs cosmetiques.
42650
42651	Fichier vide.
42652
426531999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42654
42655	do not print anything when no argument
42656
42657	use GMP allocate/free functions instead of malloc/free
42658
42659	do not print anything on stdout
42660
42661	put correctly sign with macro CHANGE_SIGN
42662
426631999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42664
42665	Ajoute la dépendance de libmpfr.a pour le Makefile des tests.
42666
426671999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42668
42669	correctly handle case sizer=1 in mpfr_set_d
42670
42671	corrected allocated size in mpfr_round
42672
42673	make clean does not remove config.in any more
42674
426751999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42676
42677	Correction d'un UMR en inversant le while (sans incidence tres probablement).
42678
426791999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42680
42681	added four tests
42682
42683	adapted mpfr_set_d to case where allocated limbs > significant limbs
42684
42685	fixed bug for b=2^n and c very small
42686
426871999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42688
42689	Some limbs of the result where not set to zero as they should.
42690
426911999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42692
42693	added prototypes, and errors to stderr
42694
42695	binary file -> remove it
42696
42697	use PREC(x) instead of ABSSIZE(x) to get number of significant limbs
42698	adapted to different numbers of significant limbs for x and y
42699
42700	fixed pbs with ABSSIZE(x) wrt PREC(x) in mpfr_round
42701
42702	added pointer to exponent, removed test with sprintf
42703
42704	removed DEBUG stuff
42705
42706	use PREC(x) instead of ABSSIZE(x) to get the number of significant limbs
42707
42708	do 10^6 tests if no argument
42709
427101999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42711
42712	J'avais oublie -g...
42713
42714	Ajoute des flags de paranoiaque schizophrene.
42715
427161999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42717
42718	now prints nothing with no argument
42719
42720	added texp and tdiv_ui
42721
42722	test file for div_ui, initial revision
42723
42724	commented out "avant arrondi..."
42725
42726	clear res1/res2
42727
427281999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42729
42730	Patches an ABR.
42731
42732	Patch of an ABR.
42733
42734	Patch in the case n = 0.
42735
42736	Patch for a memory leak.
42737
427381999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42739
42740	added two tests for exact roots
42741
42742	removed DEBUG stuff and fixed pb with exact root and GMP_RNDZ
42743
427441999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42745
42746	Correction d'un ABR.
42747
427481999-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42749
42750	added test for prec=53 bits, removed output for argc==1
42751
427521999-06-25  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42753
42754	Initial revision.
42755
427561999-06-24  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42757
42758	Patched an Array Bound Read.
42759
42760	Corrected an Array Bound Read when all the bits are significative.
42761
427621999-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42763
42764	i -> s in tests on mpfr_cmp_si
42765
42766	fixed pb in mpfr_cmp_si_2exp (case b=0 or i=0)
42767
42768	& -> &&
42769
42770	removed 3rd arg. of mpfr_set_prec
42771
42772	treats case b=c in mpfr_sub(a,b,c)
42773
42774	removed 3rd argument in mpfr_set_prec
42775	reallocates only when more limbs are needed
42776
42777	removed 3rd arg. of mpfr_set_prec
42778
42779	added some mpfr_clear's that were missing
42780
42781	removed 3rd argument from mpfr_set_prec
42782
42783	removed 3rd argument of mpfr_set_prec
42784
42785	changed prototype of mpfr_set_prec (no rounding mode needed any more)
42786
42787	added test for case of missing exponent
42788	and if one argument, print it as a double
42789
42790	fixed bug when exponent was missing (wrong result when part before
42791	binary point is not zero)
42792
42793	added tests from JM Muller and V Lefevre
42794
427951999-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42796
42797	corrected bad case in mpfr_can_round_raw where rnd1=GMP_RNDN
42798	and err is a multiple of BITS_PER_MP_LIMB (was modifying an
42799	extra limb perhaps not allocated)
42800
428011999-06-23  Sylvie Boldo  <sylvie.boldo@inria.fr>
42802
42803	qq bugs d'arrondis
42804
428051999-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42806
42807	added exp and div_ui
42808
42809	added test of exp(Pi*sqrt(163)/3)-640320 [texp 0.0 prec]
42810
42811	test file for mpfr_exp, initial revision
42812
42813	added two tests
42814
42815	removed printf's and added one test for leading '+'
42816
42817	now allows leading '+'
42818
428191999-06-23  Sylvie Boldo  <sylvie.boldo@inria.fr>
42820
42821	nettoye
42822
428231999-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42824
42825	removed printf
42826
42827	removed printf's
42828
42829	added tests for large precision (tlog x prec rnd)
42830
42831	added test for exact division
42832
42833	mpfr_cmp -> mpfr_cmp2
42834
42835	removed printf, added exit on error
42836
42837	initial revision
42838
42839	cleaned local variables
42840
42841	changed prototype of mpfr_div (now returns int)
42842
42843	now deals correctly with exact division
42844	removed DEBUG stuff
42845	returns 0/1 according to exact division
42846
428471999-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42848
42849	fixed bug found by F. Rouillier: x * Z(2/x) -> 0 [carry from mpfr_round_raw]
42850
428511999-06-22  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42852
42853	Fill with 0 the part added in case of a larger reallocation.
42854
42855	Rajoute le bug report de Fabrice.
42856
428571999-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42858
42859	fixed bug in mpfr_can_round when prec or err are multiples of BITS_PER_MP_LIMB
42860
42861	added test to check sign of result
42862
42863	fixed bug: wrong sign when SIGN(a)<0 at beginning
42864
428651999-06-22  Sylvie Boldo  <sylvie.boldo@inria.fr>
42866
42867	avec plein de cas d'erreurs
42868
42869	marche bien
42870
42871	Marche bien
42872
428731999-06-21  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42874
42875	Corrected prototype of mpfr_can_round_raw.
42876
42877	Various patches.
42878
42879	Added prototype for mpfr_can_round_raw
42880
42881	Added mpfr_can_round_raw ; mpfr_can_round just calls it.
42882
42883	Declaration mpfr_print_rnd_mode.c
42884
42885	print_rnd_mode.c -> mpfr_print_rnd_mode.c
42886
42887	Print the rounding mode.
42888
42889	Changement de semantique (plus d'arrondi) et alloc + free -> realloc.
42890
428911999-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42892
42893	initial revision
42894
42895	added one test
42896
42897	now deal with carry from mpfr_round_raw
42898
42899	fixed problem with count_leading_zeros undefined for 0
42900
42901	store computed value and try to reuse it for next calls
42902
42903	added test cn>= in mpfr_cmp2
42904
42905	added mpfr_sub_one_ulp
42906
429071999-06-18  Sylvie Boldo  <sylvie.boldo@inria.fr>
42908
42909	tests par rapport aux doubles
42910
42911	pour decouvrir les erreurs
42912
42913	version qui marche
42914
429151999-06-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42916
42917	special cases NaN and 0
42918
42919	fixed a few errors
42920
429211999-06-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42922
42923	added tests for n=0 and d=0
42924
42925	added test for 0.0/1.0
42926
42927	SET_NAN(q) -> SET_NAN(Q)
42928
42929	added one exact root with rounding towards zero
42930
42931	added one test
42932
42933	added two tests
42934
42935	patch to detect exact roots (otherwise problem with rounding to zero)
42936
42937	changed way zero is represented : most sign. limb is zero
42938
42939	added special case for zero
42940
42941	special case for zero
42942
42943	special cases for NaN and zero
42944
42945	special case when one of the arguments is zero
42946
42947	added bug found by S. Boldo and fixed (pb in mpfr_round_raw2)
42948
42949	fixed bug in mpfr_round_raw2 which was returning other values than 0 or 1
42950
429511999-06-17  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42952
42953	Corrected a potential problem in add(a, a, a);
42954
42955	Corrected a potential problem in sub(a, a, a);
42956
429571999-06-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42958
42959	SET_NAN(x) -> SET_NAN(X)
42960
429611999-06-17  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42962
42963	Patch in cmp2 for some dirty cases (2^a + 2^b <-> 2^a + z, z << 2^a, b << a)
42964
429651999-06-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42966
42967	added test to check bug found by JL Remy
42968
42969	added TMP_DECL/TMP_MARK/TMP_FREE in mpfr_sub1 to deal with case
42970	where destination=source
42971
429721999-06-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42973
42974	Bug dans set_d(0) ; la mantisse n'est pas initialisee a 0 correctement.
42975
42976	Gere differemment les problemes d'egalite entre destinations et arguments.
42977
42978	Rajoute log.o et tlog
42979
42980	Vire fichier inutile.
42981
429821999-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42983
42984	added new tests
42985
42986	fixed bug for overlap=k*mp_bits_per_limb, k>=1
42987
429881999-06-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
42989
42990	Vire Makefile de CVS.
42991
42992	Vire les Makefile de CVS.
42993
429941999-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
42995
42996	added one test and random init.
42997
42998	added one test
42999
43000	added tests for cases where destination = source
43001
43002	cases NaN and destination=source
43003
43004	now iterates if one cannot round after 1st try,
43005	and deals with case destination = source
43006
43007	mpfr_can_round again and again
43008
43009	added case of NaN
43010
43011	added macro SET_ZERO
43012
43013	now allows destination = source
43014
430151999-06-16  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43016
43017	Vire les tests de cvs.
43018
430191999-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43020
43021	printf -> fprintf
43022
43023	error message when destination equals source (case not yet treated)
43024
43025	now uses the given rounding mode internally instead of always GMP_RNDZ
43026
43027	now rounding to nearest should be correct
43028
430291999-06-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43030
43031	Encore et toujours mpfr_can_round...
43032
43033	Nettoyage.
43034
43035	Patch pour mpfr_can_round.
43036
430371999-06-15  Sylvie Boldo  <sylvie.boldo@inria.fr>
43038
43039	sans instructions de debuggage
43040
43041	rajout de log.o et tlog
43042
43043	rajout de tlog
43044
43045	ajout du log
43046
43047	*** empty log message ***
43048
43049	premiere version du log
43050
430511999-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43052
43053	now recognizes division by exact power of 2
43054
43055	added mpfr_cmp_[us]i_2exp
43056
43057	added mpfr_[us]i_2exp
43058
43059	added mpfr_cmp_[us]i_2exp
43060
430611999-06-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43062
43063	Correction de bug (pas msb normalise).
43064
430651999-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43066
43067	fixed mistake in error analysis (does not change code)
43068
430691999-06-15  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43070
43071	Ajout de random.o dans les objets.
43072
43073	random.c : engendre un mpfr_t dans [0, 1[. GH, 15/06
43074	TODO : un random qui engendre un mpfr_t avec exposant gaussien centre.
43075
430761999-06-15  Jean-Luc Rémy  <Jean-Luc.Remy@loria.fr>
43077
43078	changed return value to void
43079
430801999-06-14  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43081
43082	Ajoute les modes d'arrondi RNDN et RNDD.
43083
43084	Correction du prototype de mpfr_mul_ui
43085
43086	Correction du prototype de mpfr_mul_ui
43087
430881999-06-14  Sylvie Boldo  <sylvie.boldo@inria.fr>
43089
43090	*** empty log message ***
43091
430921999-06-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43093
43094	added several files
43095
43096	added several prototypes
43097
43098	added set_z, add_one_ulp
43099
43100	added mpfr_get_d2 which only considers the mantissa
43101
43102	now uses mpfr_get_d2 (no side effect on arguments)
43103
43104	test file for mpfr_log2
43105
43106	test file for mpfr_set_z
43107
43108	test file for mpfr_pi
43109
43110	computes log(2)
43111
43112	add one ulp
43113
43114	set a mpfr from an integer
43115
43116	computes Pi to n bits
43117
431181999-06-14  Sylvie Boldo  <sylvie.boldo@inria.fr>
43119
43120	*** empty log message ***
43121
431221999-06-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43123
43124	Initial revision of mpfr documentation
43125
431261999-06-10  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43127
43128	Patch d'un mpfr_set_d dans tsqrt.c ; GH, 100699
43129
43130	Patch d'un mpfr_set_d dans get_str.c ; GH, 100699
43131
43132	Tentative de configuration automatique, v. initiale. GH, 100699
43133
431341999-06-10  Sylvie Boldo  <sylvie.boldo@inria.fr>
43135
43136	*** empty log message ***
43137
431381999-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>
43139
43140	added tout_str
43141
43142	Initial revision.
43143
43144	added out_str.c and pow.c
43145
43146	added proto for mpfr_pow_ui and mpfr_ui_pow_ui
43147
43148	Initial revision.
43149
43150	added include <stdio.h> (needed for FILE in mpfr.h)
43151
43152	added proto for mpfr_out_str
43153
43154	function to print a mpfr to a stream. Initial revision.
43155
43156	changed proto of mpfr_get_str: 2nd arg is mp_exp_t*, not char*
43157
43158	now conforms to the specification
43159
431601999-06-09  Guillaume Hanrot  <Guillaume.Hanrot@ens-lyon.fr>
43161
43162	tset_i -> tset_si dans le Makefile de tests.
43163
43164	Version corrigee de mmpfr.
43165
43166	Makefile qui devrait fonctionner pour tous.
43167
43168	Correction de warnings dans tmul_2exp.c
43169
43170	Initial revision
43171