2023-08-22  Vincent Lefevre  <vincent@vinc17.net>

	Updated version to 4.2.1.

2023-08-18  Vincent Lefevre  <vincent@vinc17.net>

	ChangeLog update with tools/update-changelog

	[tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository.

	Updated version to 4.2.1-rc1.

2023-08-18  Vincent Lefevre  <vincent@vinc17.net>

	[configure.ac] More checks for the support of old dtags.

	There is an attempt to use the old dtags when LD_LIBRARY_PATH is
	defined in order to avoid issues with the testsuite when this path
	contains some compatible version of the MPFR library. However, the
	old dtags do not work everywhere at run time, even when they appear
	to work at link time (via -Wl,--disable-new-dtags).

	So, let's restrict to *-*-linux-gnu hosts. Unfortunately, this is
	not sufficient for Android/Termux, where config.guess currently
	identifies the host as GNU/Linux (matching *-*-linux-gnu) instead of
	Android, but the old dtags do not work at run time. So, let's also
	exclude Termux explicitly (a test to exclude all Android hosts would
	be better, though).

	Note: in most cases, LD_LIBRARY_PATH is not set, so that there should
	be no issues in practice.

2023-08-18  Vincent Lefevre  <vincent@vinc17.net>

	[NEWS] Update for 4.2.1

2023-08-18  Vincent Lefevre  <vincent@vinc17.net>

	[src/compound.c] Removed obsolete FIXME.

	The implementation changed in 63cc8dfaf4dd93d68bb4f12c0787046f8a525893
	(cherry picked in 952fb0f5cc2df1fffde3eb54c462fdae5f123ea6).

2023-08-17  Vincent Lefevre  <vincent@vinc17.net>

	[strtofr.c] Fixed 2 mpfr_strtofr bugs in case of huge negative exponent.

	This fixes the bugs triggered by bug20230606, mentioned at
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html

	These bugs are integer overflows, meaning undefined behavior.
	In practice, the consequences may be incorrect results. But
	for the first bug, it has been seen that a GCC optimization
	makes the bug invisible.

	Note: There are other issues with the code for huge exponents
	(in strtofr.c and the MPFR_SADD_OVERFLOW macro from mpfr-impl.h).
	See FIXME from commits
	  aa30bfe3c868640852fa2510b0f228170e39c0c5
	  e06a073c157fe95dd24d16d9fc3eef3781b58795
	in master. But it is not clear whether the problematic cases can
	occur in the context of mpfr_strtofr: my attempts to trigger a
	problematic case failed, so that there is a chance that the code
	is actually correct; but many parameters are involved, including
	those based on the internal structure in limbs, so that it is
	difficult to say for now. A closer analysis needs to be done.
	Even if correct, the code would need to be cleaned up, proved,
	and better documented.

2023-08-17  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Added testcases for mpfr_strtofr integer overflows.

	These bugs occur on inputs with a large negative exponents, such as
	"0.1E-99999999999999999999".

	A first bug was reported by Michael Jones at
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00000.html

	Second bug mentioned at
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-06/msg00001.html

2023-08-16  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2023-08-15  Vincent Lefevre  <vincent@vinc17.net>

	Formatted output functions: fixed ‘+’/space flags on NaN and Inf.

	This is about the documentation and behavior of the mpfr_printf,
	etc. functions on MPFR numbers (mpfr_t) only, i.e. with the ‘R’
	type specifier.

	The ‘+’ and space flags were ignored on NaN and Inf. While this
	was loosely documented as such (without an explicit mention of
	these flags), the GNU MPFR manual also says that the flags have
	the same meaning as for the standard ‘printf’ function. So this
	was contradictory and regarded as a bug.

	Behaving like the ISO C standard should give less surprise, and
	this is probably what is expected (better for alignment purpose).

	This was partly discussed at
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-03/msg00003.html
	(only for NaN and the ‘+’ flag at that time).

	* doc/mpfr.texi: corrected the documentation.
	* src/vasprintf.c: fixed (the code is now simpler since the rule
	  is the same in all cases: real and non-real values).
	* tests/tsprintf.c: grouped all the tests of NaN and Inf, and
	  added much more tests (by constructing the format string in
	  nested loops instead of just a few hardcoded cases).

2023-08-15  Vincent Lefevre  <vincent@vinc17.net>

	[src/vasprintf.c] Coding style.

2023-08-10  Vincent Lefevre  <vincent@vinc17.net>

	[configure.ac] For libgmp, replaced AC_CHECK_LIB by our own link test.

	The issue with AC_CHECK_LIB is that it cannot know the prototype of
	mpz_init. Thus it declares the function without a prototype, which
	is obsolescent in ISO C, so that the compiler may complain (e.g.
	with GCC's -Werror=strict-prototypes option, which may be useful to
	detect bugs in MPFR). Moreover, the call is done with an incorrect
	prototype, which could also be an issue on some systems (currently,
	no prototype check is done when linking, but this might change in
	the future).

	Note also that this new test is more robust, in case GMP changes the
	symbol name in the future (the API does not need to be changed).

	For the reference:
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-08/msg00003.html

2023-08-10  Vincent Lefevre  <vincent@vinc17.net>

	[configure.ac] Do the MPFR_CHECK_MP_LIMB_T_VS_* tests without -lgmp.

	Moved the two tests

	  MPFR_CHECK_MP_LIMB_T_VS_LONG
	  MPFR_CHECK_MP_LIMB_T_VS_INTMAX

	before the LIBS="-lgmp $LIBS" as linking with GMP is not needed for
	these tests (only mp_limb_t is used from gmp.h), and it is actually
	better not to link with GMP. Indeed, as said for these tests, which
	use AC_LINK_IFELSE:

	  AC_LINK_IFELSE is safer than AC_COMPILE_IFELSE, as it will detect
	  undefined function-like macros (which otherwise may be regarded
	  as valid function calls with AC_COMPILE_IFELSE since prototypes
	  are not required by the C standard).

	So linking with GMP could make a failure disappear in case of a bug
	somewhere, so that the bug could remain undetected.

2023-08-10  Vincent Lefevre  <vincent@vinc17.net>

	[acinclude.m4] Replaced <gmp.h> by "gmp.h" for #include.

	The tests from configure.ac all use #include "gmp.h", and for the
	MPFR build and tests, gmp.h is also included with #include "gmp.h"
	(by mpfr-impl.h). For consistency, do the same in acinclude.m4.

	Note: In practice, there should not be a difference, except if there
	is a gmp.h file somewhere in the MPFR build tree. But this is not
	supported, and this may break the build or the testsuite (whatever
	is used in the configure tests).

2023-07-19  Vincent Lefevre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Fix integer overflow when mp_limb_t < int (mini-gmp).

	When mp_limb_t is shorter than int (which is possible with mini-gmp),
	an integer promotion in udiv_qr_3by2 triggers an integer overflow,
	detected by testing MPFR with

	  ./configure --with-mini-gmp=/path/to/mini-gmp CC=gcc-13 \
	  CFLAGS="-O2 -fsanitize=undefined -fno-sanitize-recover
	          -DMINI_GMP_LIMB_TYPE=short"

	(many tests fail).

	Note that this is not detected by GCC 12 and before, probably due to
	an optimization bug that hides the UBsan error.

	Moreover, mini-gmp currently has the same bug in gmp_udiv_qr_3by2,
	but also in gmp_udiv_qrnnd_preinv; it needs to be fixed too in order
	to avoid the failures in the MPFR tests.

2023-07-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/trint.c] C2x compat: replaced function without a prototype.

	The second parameter of test_fct was "int (*g)()", i.e. a pointer to
	a function without a prototype, because 2 kinds of prototypes can be
	used:
	  * one with args (mpfr_ptr, mpfr_srcptr);
	  * one with args (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t),
	    but only for mpfr_rint.
	This was not a problem thanks to the test "g == &mpfr_rint", i.e.
	we knew which one to use. However, as the Clang 16 warning message
	says for -Wdeprecated-non-prototype:
	"passing arguments to a function without a prototype is deprecated
	in all versions of C and is not supported in C2x".

	The best way to fix this is to use the prototype with 2 arguments
	(mpfr_ptr, mpfr_srcptr) for the parameter, as this is the general
	case. All we need to do is to cast &mpfr_rint to this prototype
	(this appears only twice).

	As these casts trigger the -Wcast-function-type warning when enabled,
	let's explicitly disable this warning for GCC and Clang in versions
	where it has been introduced.

2023-07-18  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tfpif.c] Removed "fclose (fh);" under "if (fh == NULL)".

	The fopen() failed, so fclose() is not needed, and this is even UB.

	Issue reported by Jerry James:
	  https://sympa.inria.fr/sympa/arc/mpfr/2023-07/msg00002.html
	as GNU libc recently added a "nonnull" function attribute:
	  https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=71d9e0fe766a3c22a730995b9d024960970670af

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[src/inp_str.c] Resolved the FIXME on a deprecated use of ungetc.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	Fixed mpfr_strtofr bug in parse_string when isspace(0) is true.

	When isspace(0) is true (allowed by ISO C for non-"C" locales), '\0'
	would be skipped if part of the leading whitespace. But it must be
	regarded as the terminating null character, from the definition of
	a string (before the notion of whitespace is involved). So let's
	stop explicitly on '\0'.

	Note: in such locales (Mutt's lib.h suggests that some systems are
	affected, but this was in 1998), this is a security vulnerability,
	because characters after the terminating null character are read to
	determine the result.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[inp_str.c] mpfr_inp_str: fixed the handling of '\0' in the word.

	When '\0' is not a whitespace character (which is almost always the
	case in practice), it was not handled correctly. For instance, if the
	word is the sequence { '1', '\0', '2' }, the string "1" was passed to
	mpfr_set_str because '\0' is regarded as a terminating null character,
	and one was getting a valid number while '\0' in a word is necessarily
	invalid. This is fixed by putting '*' at the beginning of the string,
	which is thus necessarily invalid.

	This fixes the failure after c9523bc6fb11c8eefc75524e947e5eb81e682675
	(4642e68fb3cd6793a51537cfc86a7cb3ef1c0a4c in the 4.2 branch).

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/inp_str.dat] Make the word that contains '\0' look like a number.

	Changed ".\0." to "1\01" (\0 being the null character) in order to
	trigger a failure with the current mpfr_inp_str code. The issue is
	that '\0' makes the word look like the string "1", the '\0' being
	regarded as a terminating null character. This is incorrect as '\0'
	is part of the full word.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[manual] Clarified the return value of mpfr_inp_str.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	Added a '\0' test for mpfr_inp_str.

	After ensuring that isspace(0) is false, make sure that '\0' is
	handled as a normal non-whitespace character.

	Also note that inp_str.dat does not end with a newline character
	on purpose, in order to check that a number at the end of the file
	(with no whitespace after it) is handled correctly.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	Improved the mpfr_inp_str tests.

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/inp_str.dat] Added the other standard whitespace characters.

	These are:
	  * space (' ');
	  * ^I (horizontal tab '\t');
	  * ^J (newline '\n', already there);
	  * ^K (vertical tab '\v');
	  * ^L (form feed '\f');
	  * ^M (carriage return '\r').

2023-07-12  Vincent Lefevre  <vincent@vinc17.net>

	[MPFR manual] Corrected description of mpfr_inp_str.

	The description seemed to assume that there was leading and trailing
	whitespace (due to "between whitespace"). Also clarify what whitespace
	is: defined by isspace(), which depends on the current locale.

2023-06-26  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tfpif.c] Workaround for GCC bug 106155.

	This GCC bug is:
	  [12/13/14 Regression] spurious "may be used uninitialized" warning

	This bug appeared in GCC 12, but it is more serious in GCC 13
	(at least for tfpif.c), which warns also at -O2:
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155#c12

	Silencing this warning avoids an error when -Werror is used.

2023-06-26  Vincent Lefevre  <vincent@vinc17.net>

	[src/pow.c] Typo detected by codespell.

2023-05-26  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Fixed large_prec_for_g with 32-bit mpfr_intmax_t.

	If mpfr_intmax_t is a 32-bit type (meaning that int is a 32-bit type
	too), then allow a failure on "%.2147483648Rg" (return value < 0),
	due to a (reasonable) limit on the current implementation.

	This can currently be tested with
	  -std=c90 -Werror -pedantic -Wformat -Wno-error=overlength-strings

2023-05-25  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] large_prec_for_g: C++ compatibility.

	Note that after this change, the test is still meaningful.

2023-05-23  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Improved large_prec_for_g even more.

2023-05-23  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] A few more tests for large_prec_for_g.

	... to really check that the results are correct.

2023-05-22  Vincent Lefevre  <vincent@vinc17.net>

	[tests/trec_sqrt.c] Updated bad_case3() test.

	Also check the result, though this is not the real purpose of
	this test (the purpose is to detect a stack overflow, which
	just makes the program crash).

2023-05-22  Vincent Lefevre  <vincent@vinc17.net>

	[tests/trec_sqrt.c] Added bad_case3() test.

	Simple hardcoded test for the stack overflow bug fixed on 2023-04-17
	in commits
	  270f4df6b3a49caae1cf564dcdc1c55b1c5989eb (master)
	  934dd8842b4bdeb919a73123203bc8ce56db38d1 (4.2 branch)

	Otherwise, this bug was triggered by a generic bad_cases() test,
	based on random values.

2023-05-22  Vincent Lefevre  <vincent@vinc17.net>

	[tests.c] In bad_cases(), improved alignment in debug messages.

	Needed as some trec_sqrt tests use a precision with up to 6 digits.

2023-05-17  Vincent Lefevre  <vincent@vinc17.net>

	[tcompound.c] Updated comment for bug_20230517.

	Similar to b8ee84929ef6caf66d7c694cf74534b7190339c5 in master.

2023-05-17  Vincent Lefevre  <vincent@vinc17.net>

	[compound.c] Improved tests and corresponding comment.

	[compound.c] Avoid a possible integer overflow; other improvements.

2023-05-17  Vincent Lefevre  <vincent@vinc17.net>

	[tcompound.c] Added bug_20230517 (integer overflow in compound.c).

	and updated comment for the 4.2 branch.

2023-05-16  Vincent Lefevre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed bug triggered by the large_prec_for_g test.

	Bug fixes in partition_number():
	* Fixed the type of the variable `threshold`: as this variable may
	  contain spec.prec, it needs to be of type mpfr_intmax_t.
	  This was the cause of the "MPFR assertion failed: threshold >= 1"
	  (or the incorrect size when assertions are not checked) with the
	  large_prec_for_g test.
	* Also make sure that the 4th argument given to mpfr_get_str fits
	  in a size_t (if it doesn't, return with a failure, as done when
	  reaching other environmental limits).
	  In practice, this could be an issue only with a 32-bit size_t and
	  mpfr_exp_t on more than 32 bits.

2023-05-16  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added large_prec_for_g, which makes MPFR crash.

	On a 64-bit Linux machine, the case %.2147483648Rg yields an incorrect
	size computation and MPFR wants to allocate 18446744071562070545 bytes.
	This case should either succeed or fail as reaching an environmental
	limit like with glibc (note that the precision does not fit in an int).

2023-05-16  Vincent Lefevre  <vincent@vinc17.net>

	[manual] Detailed mpfr_compound_si description (special cases).

	The MPFR manual should be self-contained. So, let's describe
	the special cases of mpfr_compound_si that do not follow the
	usual rules (or are ambiguous), instead of just referring to
	the IEEE 754 standard.

2023-05-16  Vincent Lefevre  <vincent@vinc17.net>

	[compound.c] Fixes concerning the overflow and underflow detection.

	Note: It is not clear whether overflow and underflow detection is
	now correct. There may still be potential issues, but currently,
	after these fixes, no tests yield any failure (however, we do not
	test some of the most problematic cases yet; this should be a
	future improvement of ofuf_thresholds in the master branch).

	Note: compound.c now corresponds to the version in master.

2023-05-16  Vincent Lefevre  <vincent@vinc17.net>

	[tcompound.c] Added various tests.

	* Added bug_20230206, based on a bug report by Patrick Pélissier.
	* Implemented the inverse function x^(1/n) - 1 of the compound function
	  on non-special cases: useful to build and check hard-to-round cases
	  and test the behavior close to the overflow and underflow thresholds.
	* Check hard-to-round cases for n = 2, 3, 4, 5, 17, 120 (like in tpow.c)
	  and also call the generic tests for these values.
	* Added bug_20230211 (buggy overflow detection for 32 bits after the
	  fix of bug_20230206 in master).

	and updated two comments for the 4.2 branch.

	Note: Every change has been cherry picked from master, except a
	TODO comment and the ofuf_thresholds() calls (feature not yet in
	the 4.2 branch). And bug_20230206 has not been fixed yet in the
	4.2 branch.

2023-05-15  Vincent Lefevre  <vincent@vinc17.net>

	[tests.c] In bad_cases(), handle the inex_inv case better.

	The "f exact while f^(-1) inexact" case is actually almost the same
	as the "inverse doesn't match" case. So, handle it in the same way,
	avoiding a fatal error (which would be bad for the non-developers):
	a few occurrences of this case should be regarded as normal, and if
	this occurs too often, this will be detected like the other case
	when the MPFR_CHECK_BADCASES environment variable is set.

	This is useful for future bad_cases() calls.

2023-05-12  Vincent Lefevre  <vincent@vinc17.net>

	[src/pow.c] Fixed a corner case in mpfr_pow_general (bug20230427).

	This fixes the bug triggered by bug20230427 added in commit 85bc7331c:
	  bug20230427 triggers another bug in mpfr_pow_general, which
	  occurs in destination precision 1 in the particular case of
	  rounding to nearest, z * 2^k = 2^(emin - 2) and real result
	  larger than this value.

	This corresponds to a particular hunk of a diff from master,
	or with a cherry-pick from commits
	  ef31bb98521ecf7d100593346e2f4d7a7724c573
	  27bc582645e513200c56c99a9da83eb4e47c669a
	  e1f9f14a3829081503c027f4d38eb51778da26e6
	  ff5012b61d5e5fee5156c57b8aa8fc1739c2a771
	  3b63024c640181cb5fe7fd87bac94a8f942a07da
	  4f5de980be290687ac1409aa02873e9e0dd1a030
	  467b17025a5b05e888ed7117d6730ac0954f01cb
	restoring the changes not related to this hunk.

2023-05-12  Vincent Lefevre  <vincent@vinc17.net>

	[src/pow.c] Fixed error bound in mpfr_pow_general (bug20230213).

	This fixes the bug triggered by bug20230213 added in commit 85bc7331c:
	  bug20230213 triggers a bug in mpfr_pow_general, where the
	  computation of the error term is incorrect when there has
	  been an intermediate underflow or overflow (k_non_zero is
	  true); the error analysis is correct, but the associated
	  code is not (due to the change of the value of a variable).

2023-05-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/texp10.c] Added bug20230213 and bug20230427 tests.

	* bug20230213 triggers a bug in mpfr_pow_general, where the
	  computation of the error term is incorrect when there has
	  been an intermediate underflow or overflow (k_non_zero is
	  true); the error analysis is correct, but the associated
	  code is not (due to the change of the value of a variable).
	* bug20230427 triggers another bug in mpfr_pow_general, which
	  occurs in destination precision 1 in the particular case of
	  rounding to nearest, z * 2^k = 2^(emin - 2) and real result
	  larger than this value.

	Note: The code has been copied from master (and because of changes
	of other parts of the code by commits in master, cherry-picking
	was impossible or much more complex). These bugs have been fixed
	in master, but these fixes will be provided in the 4.2 branch by
	separate commits in order to facilitate testing (e.g., to check
	that one gets failures without these fixes).

	Both bugs were found by the current ofuf_thresholds tests in master
	(but there are currently issues with these tests).

2023-05-12  Vincent Lefevre  <vincent@vinc17.net>

	Added bad_cases tests for mpfr_exp2, mpfr_exp10, mpfr_log2, mpfr_log10.

	[tests/tui_pow.c] Added generic tests.

	Added /treldiff to tests/.gitignore

2023-05-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tui_pow.c] Some small corrections.

	* Improved organization and style.
	* Replaced output to stderr by output to stdout (as usual).
	* Added missing "\n" at the end of 2 printf strings.

2023-05-05  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tset_float128.c] check_special(): output values in error messages.

2023-05-04  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[src/Makefile.am] Updated -version-info to 8:1:2 for MPFR 4.2.1.

2023-05-04  Vincent Lefevre  <vincent@vinc17.net>

	Updated version to 4.2.1-dev (with tools/update-version).

	This should have been done just after 4.2.0 was published,
	i.e. just after the 4.2.0 tag, but I forgot.

2023-05-04  Vincent Lefevre  <vincent@vinc17.net>

	Added treldiff.c test, assuming that mpfr_reldiff behaves as documented.

	Basically, mpfr_reldiff is tested with all special numbers and some
	regular ones, with various precisions and all the rounding modes
	(including MPFR_RNDF since in practice, the implementation cannot
	exploit it to give failures). The result is just compared with the
	basic algorithm (as documented), which does not use any optimization
	(i.e. it does not treat special numbers in a particular way): the
	formula is just computed using the precision of the destination and
	the provided rounding mode for all operations (thus, in general,
	this mpfr_reldiff function is not correctly rounded).

	This test would detect the bugs on special values that have been fixed
	in 81e4d4427eed0404292ac69c17f986a6cb640562.

2023-05-04  Vincent Lefevre  <vincent@vinc17.net>

	[src/reldiff.c] Fixed mpfr_reldiff on special values.

	The mpfr_reldiff function, which computes |b-c|/b, was buggy on
	special values, e.g. on the following (b,c) values:
	  * (+Inf,+Inf) gave ±0 instead of NaN (like NaN/Inf).
	  * (+0,+0) gave 1 instead of NaN (like 0/0).
	  * (+0,1) gave 1 instead of Inf (like 1/0).

	The sign of 0 for (+Inf,+Inf) or (-Inf,-Inf) was not set, i.e. it
	was just the sign of the destination before the call. This made
	the "reuse" test fail after its update to check the sign of zero
	(commit e6d47b8f5ab666e658e05fe282e3490a06c0278e), as the results
	were not consistent.

	For b = 0, there was a comment "reldiff = abs(c)/c = sign(c)", which
	mixed up b and c (one should divide by b, not by c), and this could
	explain some bugs.

	Note that this comment (and associated code), if corrected, seemed to
	imply that for c = 0 and b finite (and non-zero?), the intent was to
	return sign(b). However, this does not follow the documentation, which
	says that the formula is just computed using the precision of the
	destination and the provided rounding mode for all operations. So the
	final result may be affected by intermediate roundings, while sign(b)
	assumes that the function is correctly rounded, which is not the case
	for this function (just there for compatibility with MPF). Deviating
	from the documentation in some cases could break some properties (like
	monotonicity?).

	These bugs were not found because mpfr_reldiff is not tested at all,
	except by "reuse", which just checks some consistency when a variable
	is reused for the destination.

2023-05-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests/reuse.c] Check the sign of zero; other improvements.

	* Replaced the static mpfr_compare by "! SAME_VAL" to do a complete
	  comparison of MPFR numbers. In particular, this checks the sign of
	  zero, revealing a bug in mpfr_reldiff (failure 0 vs -0).
	* More consistent output of errors (use of mpfr_dump for ref and res
	  in all cases).
	* Code style.

2023-04-20  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Updated comment for snprintf_size.

	Like commit 524c7bf4ff4f0dc1c83bc9a36d621a4a9607ee3b in master,
	but without the "Code reworked..." line, as this isn't done in
	the 4.2 branch.

2023-04-17  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Update about the glibc 2.37 bug.

	This updates commit 78ff7526dea103f73acc98d9a9ffa7429050c0dd.

2023-04-17  Vincent Lefevre  <vincent@vinc17.net>

	Fixed possible stack overflow in mpfr_rec_sqrt + non-regression test.

	* src/rec_sqrt.c: use a standard Ziv loop.
	* tests/trec_sqrt.c: added a non-regression test with bad_cases().

	Details:

	The issue is due to many allocations in the stack (with alloca(),
	via MPFR_TMP_LIMBS_ALLOC) on cases that are very hard to round (from
	an analysis on a testcase given by Fredrik Johansson, not included
	here) with a not too large destination precision: many iterations
	are needed due to a specific Ziv loop where the working precision
	is increased additively, and it is not possible to free the data
	allocated in the previous iterations.

	The fix is to use a standard Ziv loop, as it increases the working
	precision multiplicatively instead of additively, so that it needs
	much fewer iterations in such cases. This should also make the code
	much faster in such cases.

	This issue was not detected by bad_cases() in tests/trec_sqrt.c
	because to be able to reproduce it, one needs a much larger precision
	than the ones tested with the chosen parameters.

	A new bad_cases() instance, with a large enough precision for the
	input (py = 9999, psup = 120000, giving px = py + psup = 129999),
	is added here in order to be able to reproduce the failure.

	The testcase given by Fredrik Johansson is not included here because
	it uses a very large string for the input (the point of bad_cases()
	is to generate such an input automatically).

2023-04-15  Vincent Lefevre  <vincent@vinc17.net>

	[src] Since mpfr_prec_t is signed, changed %Pu to %Pd.

	Note: Even the mpfr_prec_t is not supposed to contain negative values
	(at least in these cases), this may still be useful in case of bugs.

2023-04-14  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2023-04-14  Vincent Lefevre  <vincent@vinc17.net>

	[manual] Improved example on how to print a mpfr_prec_t value.

	mpfr_prec_t is signed, so that it is better to use %Pd than %Pu.

2023-04-12  Vincent Lefevre  <vincent@vinc17.net>

	[src/mpfr-thread.h] Output a message in case of lock/unlock failure.

	The message is output just before abort(), so that one can know
	the cause of the abort().

	Tested with --enable-shared-cache CC=i686-w64-mingw32-gcc-posix
	(which has the effect to enable POSIX threads inside MPFR via
	AX_PTHREAD, with MinGW), where

	MPFR_LOCK_DECL(mpfr_lock_memory)
	int main (void)
	{
	  MPFR_LOCK_WRITE(mpfr_lock_memory);
	  return 0;
	}

	fails with the "MPFR lock failure" message and exit status 3 due to
	the abort(). Note that there is no failure with GNU/Linux.

2023-03-22  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[manual] Detailed mpfr_set_str a bit more.

2023-02-28  Vincent Lefevre  <vincent@vinc17.net>

	[tests] Added/improved tests for the log, log2 and log10 functions.

	* Added log(1) test.
	* For the special tests of these functions: test in all rounding modes
	  and use MPFR_IS_ZERO(x) rather than mpfr_cmp_ui(x,0) to exclude NaN.

2023-02-21  Vincent Lefevre  <vincent@vinc17.net>

	Fixed mpfr_ui_pow_ui infinite loop in case of overflow, with testcases.

	* src/ui_pow_ui.c:
	    - Cleanup. In particular, renamed a variable as this was confusing:
	      one usually uses y = f(x), but here it was x = f(y,n). Let's use
	      x = f(k,n) since here, both arguments are integers.
	    - Added mpfr_ui_pow_ui logging.
	    - Handle the +Inf case in the Ziv iteration.
	      This is done by calling mpfr_pow_z (this should be a bit more
	      efficient than calling mpfr_pow_ui, which would eventually call
	      mpfr_pow_z to handle the overflow).
	      Note that mpfr_pow_z avoids spurious overflows by internally
	      rounding toward 1 (for positive results). This might be an
	      alternative solution here to avoid calling mpfr_pow_z.
	* tests/tlog10.c: added bug20230213 test: infinite loop in mpfr_log10,
	  which was occurring before the above bug fix.
	* tests/tui_pow.c: added testcase for this mpfr_ui_pow_ui bug.

2023-02-14  Vincent Lefevre  <vincent@vinc17.net>

	For -dev versions, enable timeout support by default (when possible).

	* configure.ac:
	    - added dev_version variable, set to 1 for -dev versions;
	    - updated --enable-tests-timeout handling;
	    - use $dev_version for a test that already considers -dev versions.
	* acinclude.m4:
	    - handle absent --enable-tests-timeout option and case "yes".

2023-02-03  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a comment about a failure with glibc 2.37.

	Klaus Dittrich reported in the MPFR mailing-list that the modified
	test from commit 4f03d40b5a5ceeb3126dc51c3511bdceef3bab19 was still
	failing with the glibc git. But this time, this is entirely a bug
	in glibc, present in glibc 2.37:

	  https://sourceware.org/bugzilla/show_bug.cgi?id=30068

	with even a possible buffer overflow in sprintf (as I guessed
	in Comment 2 and was confirmed later). → CVE-2023-25139

	Thus the test still fails with glibc 2.37, and the future fix of
	the glibc vulnerability should also fix this failure.

2023-02-01  Vincent Lefevre  <vincent@vinc17.net>

	[tests/{tfprintf.c,tprintf.c}] Fix when decimal_point > 1 byte.

	These tests were failing in locales where localeconv()->decimal_point
	takes several bytes, such as in the ps_AF locale under Linux, where
	decimal_point is U+066B ARABIC DECIMAL SEPARATOR, which takes 2 bytes
	(d9 ab, as encoded in UTF-8).

	Note: A multibyte decimal-point is currently honored only with
	native C types (via the C library), so that the length of the
	decimal-point had to be taken into account only for a small number
	of tests. Once a multibyte decimal-point is supported for the MPFR
	numbers ("R" type specifier), the expected lengths in many tests
	will have to be updated. See the code about MPFR_DECIMAL_POINT in
	"src/mpfr-impl.h".

2023-02-01  Vincent Lefevre  <vincent@vinc17.net>

	[tests] Consistency in the error messages.

2023-02-01  Vincent Lefevre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Updated FIXME comment for decimal_point/thousands_sep.

	* Added info for the fr_FR.UTF-8 and ps_AF locales.
	* Removed the sentence about the C standard (since multibyte characters
	  are used for decimal_point and thousands_sep in practice, the term
	  "character" could have a broader mean, e.g. the abstract one in 3.7).

	This completes commit 00ad47c8ec4ba31ad0afd067286f2fab8d7283ff.

2023-01-11  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Modified a buggy test of the thousands separator.

	The test

	  check_vsprintf ("+01,234,567  :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567);

	is based on the output from glibc up to 2.36, which is incorrect:

	  https://sourceware.org/bugzilla/show_bug.cgi?id=23432

	The GNU C Library has apparently been partially fixed in its Git
	repository for the future 2.37, since a tsprintf failure has been
	reported (this is a bug in this test, not in the MPFR library):

	  https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00001.html

	So, modified the test to avoid the particular case of leading zeros
	due to the precision field larger than the number of digits. This
	case has already been tested without the thousands separator (where
	there are no issues with the C libraries), so that we do not miss
	much testing. Added a comment explaining the issue and a possible
	solution for future testing of this particular case (if need be).

2023-01-06  Vincent Lefevre  <vincent@vinc17.net>

	[BUGS] Added a note for a bug that cannot occur in practice.

	[doc/README.dev] Updated "To make a release".

	ChangeLog update with tools/update-changelog

	Updated version to 4.2.0.

2023-01-05  Vincent Lefevre  <vincent@vinc17.net>

	[src/zeta.c] For s < 1/2, use mpfr_sinpi now that it is available.

	This replaces the use of mpfr_sin with a multiplication by π and
	resolves a potential (but very unlikely) underflow issue; a comment
	is updated, with an explanation about that.

2023-01-05  Vincent Lefevre  <vincent@vinc17.net>

	Updated copyright notice for all the Makefile.am files.

	To be similar to the other files, added:
	* Contributed by the AriC and Caramba projects, INRIA.
	* This file is part of the GNU MPFR Library.

	(These Makefile.am files still have their special license.)

2023-01-05  Vincent Lefevre  <vincent@vinc17.net>

	Copyright notice update: added 2023.

	Command used:
	  perl -pi -e 's/ (\d{4}-)?(2022)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh, reverting doc/texinfo.tex (copied from GNU Texinfo)
	and the tools/mbench directory (not distributed with MPFR).
	Removed 2022 from the example in the doc/README.dev file.

2023-01-04  Vincent Lefevre  <vincent@vinc17.net>

	[src/zeta.c] Updated a comment about mpfr_sinpi.

	[doc/mpfr.texi] Updated the month.

2022-12-17  Vincent Lefevre  <vincent@vinc17.net>

	[tools/mpfrlint] Updated the __gmp_ test.

	* No longer exclude '^tests/tabort_defalloc': this is no longer needed
	  since commit 41bed90365fd1296cd05f49c813ab0a0b151a62e in 2017.
	* Exclude a new comment.

2022-12-15  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a comment about a possible test failure.

	In short, if the error is like
	  repl-vsnprintf.c:389: GNU MP assertion failed: len < total_width
	this is a GMP (or MPIR) issue in __gmp_replacement_vsnprintf.

	References:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00027.html
	  https://gmplib.org/list-archives/gmp-bugs/2022-October/005200.html

2022-12-15  Vincent Lefevre  <vincent@vinc17.net>

	Documentation: update about requirements for building MPFR.

	* doc/mpfr.texi: mentioned C++ compilers and the potential issue
	  with type punning via union.
	* INSTALL: completed (0) to be similar to what doc/mpfr.texi says.

2022-12-15  Vincent Lefevre  <vincent@vinc17.net>

	[tools/update-version] Fixed replacements in "INSTALL".

	Due to commit 4885b57add174f390eff29abe14d12fb5ebd6a61, only the first
	of the 4 replacements in INSTALL was done.

2022-12-14  Vincent Lefevre  <vincent@vinc17.net>

	[configure.ac] Added a comment about a possible AM_PROG_AR failure.

	The reason is that on some platforms, GMP chooses a non-default mode
	(a.k.a. ABI). MPFR has some workaround thanks to GMP_CC and GMP_CFLAGS
	provided by GMP, but this may not be sufficient, e.g. on power-aix. In
	such a case, the user needs to either force GMP to use the default mode
	or provide an AR variable for MPFR's configure; see INSTALL file.

2022-12-13  Vincent Lefevre  <vincent@vinc17.net>

	ChangeLog update with tools/update-changelog

	[doc/README.dev] "To make a release": update.

	[NEWS] Update for the 4.2.0 release: binary compatibility.

	[doc/README.dev] "To make a release": update about <branch>-root tag.

	[README] Updated URL of the README.dev file (for the 4.2 branch).

	Updated version to 4.2.0-rc1.

	ChangeLog update with tools/update-changelog

	[src/Makefile.am] Updated -version-info to 8:0:2 for MPFR 4.2.0.

	[manual] Section "API Compatibility": lexicographic order.

2022-12-13  Vincent Lefevre  <vincent@vinc17.net>

	[NEWS,doc/mpfr.texi] Clarification for mpfr_pown.

	Note: Though implemented as a macro, it is mainly documented as a
	function (not as a macro) because it cannot be distinguished from
	a function (for instance, one can take the function pointer).

2022-12-13  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tget_flt.c] Added a comment.

2022-12-13  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated a pathname.

	This should have been done with the source reorganization on 2010-08-17
	(see commit a6c9580d75b967e0d121d606edf03515ada45a7a).

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	Updated doc/texinfo.tex to 2022-12-10.11

	The only change concerning MPFR is that in the PDF manual, the
	section titles in the table of contents are now clickable.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tstdint.c] Added missing conditional config.h inclusion.

	The consequence of the missing inclusion is that on build systems that
	need config.h (some MS Windows ones?), this test would be skipped.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Clarification about the need of config.h inclusion.

	[tests/tstdint.c] Updated comment.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tstdint.c] Added a comment.

	In short, this test allows one to detect that mpfr.h can be included
	without any other inclusion before. For instance, it can detect any
	unprotected use of FILE in the mpfr.h header file.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added comment about the update of the version string.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	Revert "changed %.8e into %a to avoid potential decimal output bug"

	This reverts commit e18ebe062042c01ad44b238df212f229bd251cd6.

	We currently still support C90 (in particular, here this concerns
	the C library of the platform).

2022-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed %.8e into %a to avoid potential decimal output bug

	(cf https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00015.html)

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[src/mpfr-cvers.h] Added a comment about (major,minor) tests.

2022-12-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests/mpfr-test.h] Improved the change done a few hours earlier.

	The code introduced by commit 558a246e612fa230623fb0dfa0570b1c626a103c
	was changing the conditions under which IGNORE_CPP_COMPAT is defined
	(to ignore -Wc++-compat with a GCC pragma). Let's simplify it by using
	our __MPFR_GNUC() macro. The only possible change of behavior is that
	this excludes Intel's compiler (which is probably better as testing
	the GCC version on Intel's compiler doesn't make sense).

	Note concerning the behavior of Intel icx 2021.3.0 under Linux: Before
	the above commit, it was not excluded; but after this above commit, it
	was excluded as it identifies itself as GCC 4.2.1 (like Clang). With
	this new change, it is still excluded. Anyway, it ignores -Wc++-compat
	and doesn't complain on the GCC pragmas, so the above choice currently
	doesn't matter.

2022-12-11  Vincent Lefevre  <vincent@vinc17.net>

	Avoid a testsuite build failure with GCC older than 4.6.

	In tests/mpfr-test.h, we must not define IGNORE_CPP_COMPAT for
	GCC < 4.6 as it does not allow "#pragma GCC diagnostic" inside
	functions. Moreover, let's define it for all Clang versions,
	including MS Windows (where __GNUC__ is not defined).

	Changes based on information and a patch by Bruno Haible:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00007.html

2022-12-09  Vincent Lefevre  <vincent@vinc17.net>

	[autogen.sh] Improved comment about the INSTALL file.

	[autogen.sh] Updated comment about the INSTALL file.

2022-12-07  Vincent Lefevre  <vincent@vinc17.net>

	[Makefile.am] Corrected a note about version-ext.sh in EXTRA_DIST.

	In short, since commit a6e9d69047a358bfd1aaa1418d9999b8abe0bb62,
	version-ext.sh should no longer be needed in EXTRA_DIST because
	it will no longer be executed. But since this script is small,
	we distribute it just in case it would be used.

2022-12-06  Vincent Lefevre  <vincent@vinc17.net>

	Fixed version-ext.sh usage, avoiding "make check" failure and incorrect
	version information.

	The use of version-ext.sh could be incorrect when the MPFR source tree
	was in a Git working tree:
	  * "make check" could fail in some cases, see the bug report by
	    Trevor Spiteri:
	       https://sympa.inria.fr/sympa/arc/mpfr/2022-12/msg00000.html
	  * Version information output by "make check" could be incorrect.

	Changes:
	* tests/Makefile.am: For output_info, we now also check whether
	  $(top_srcdir)/.git is readable in order to avoid escaping the
	  MPFR source tree. In particular, if one extracts an MPFR tarball
	  within a Git working tree (e.g. after "make dist"), then running
	  "make check" in this extracted source tree will work as expected,
	  giving correct version information.
	* tests/Makefile.am, version-ext.sh: Updated comments. In particular,
	  moved a comment from tests/Makefile.am to version-ext.sh; this should
	  have been done in commit 0d3abf10458ca4fdd26daa77a02f7f1f4e361deb,
	  i.e. when version-ext.sh was created.

2022-12-06  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Removed useless leading spaces in examples.

	All examples should have at least one line that does not have
	leading spaces. Texinfo already indents examples in all cases.

2022-12-06  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Removed useless single quotes in an example.

	Texinfo changes these quotes to U+2019 RIGHT SINGLE QUOTATION MARK
	with TeX output (PDF), and it is no part of ASCII, which might yield
	issues in case of reuse in actual code. The subsequent example does
	not use quotes, so let's do the same.

2022-12-06  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2022-12-06  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a FIXME about the @need issue.

	Context:
	  https://lists.gnu.org/archive/html/bug-texinfo/2022-11/msg00228.html

2022-11-30  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] 2 replacements of ASCII "-" by @minus{}.

	Note: these should be the last remaining issues with the minus sign.

2022-11-30  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] 3 replacements of ASCII "-" by @minus{}.

2022-11-28  Vincent Lefevre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added a comment for the umul_hi(h, x, y) macro.

	Say that MPFR_NEED_LONGLONG_H needs to be defined to use it.

	This macro is defined unconditionally (this is not an issue) because
	MPFR_NEED_LONGLONG_H has been undefined earlier in mpfr-impl.h (why?),
	so we can no longer test MPFR_NEED_LONGLONG_H.

2022-11-28  Vincent Lefevre  <vincent@vinc17.net>

	Get rid of the _mulx_u64 intrinsic.

	It was found that this intrinsic has issues with ICC, Cygwin, and more
	generally, the Microsoft toolchain; even MPFR's strong detection at
	configure time (an AC_RUN_IFELSE test) was not sufficient. Moreover,
	_mulx_u64 is useless as umul_ppmm from mpfr-longlong.h does the same
	thing from the spec point of view (and thus was used as the fallback).
	So, if there is a reliable way to use the mulx instruction whenever
	possible (including via compiler optimization and the use of __int128
	when available, as done by GCC's _mulx_u64 implementation), this
	should be done in the umul_ppmm definition. Alternatively, we could
	redefine umul_ppmm for the use of __int128 when possible.

	Context and references:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00008.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00027.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00030.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-11/msg00031.html
	  https://stackoverflow.com/a/54815033/3782797

	* src: corrected the umul_hi(h, x, y) macro (the only code that was
	  using _mulx_u64) and moved it from invert_limb.h and invsqrt_limb.h
	  to mpfr-impl.h.
	* tests/tversion.c: removed the output info about _mulx_u64.
	* acinclude.m4: removed the check for _mulx_u64.

2022-11-25  Vincent Lefevre  <vincent@vinc17.net>

	[NEWS] Added release name for 4.2.0: "fondue savoyarde".

	mpfr-longlong.h update from the current GMP development code.

2022-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] updated svn revision to git revision
	[tools/bench/README] likewise

2022-11-23  Vincent Lefevre  <vincent@vinc17.net>

	[tools/build-patch] Update for patches generated by git.

	Such patches are of the form
	  --- a/path/name
	  +++ b/path/name
	so with need to use the -p1 patch option if the --- line
	starts with "--- a/".

2022-11-23  Vincent Lefevre  <vincent@vinc17.net>

	[tools/build-patch] Updated a comment for Git.

2022-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Fix mpfr_custom_get_kind() macro bug.

	* src/mpfr.h: in the mpfr_custom_get_kind() macro, changed mpfr_ptr to
	  mpfr_srcptr for _x to agree with the function prototype, in order to
	  avoid a compilation failure of user code in some cases. This bug was
	  introduced by commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e, which
	  introduced the temporary variable _x to avoid an incorrect number of
	  evaluations of the x argument.
	* tests/tstckintc.c: improved the tests to detect this bug.

	This should fix mpfr bug #1.

	Bug initially reported by FX Coudert:
	  https://github.com/CGAL/cgal/issues/7064

	It affects Fedora Linux:
	  https://bugzilla.redhat.com/show_bug.cgi?id=2144197

2022-11-17  Vincent Lefevre  <vincent@vinc17.net>

	ChangeLog update with tools/update-changelog

2022-11-17  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Changed a @need command due to a bug in @need.

	A page break was introduced for "@need 800" while there was the
	space for 12 lines of text + 3 paragraph skips, as seen after the
	change. That's much more than the 8/10 in needed by "@need 800".
	So the page break was incorrect!

2022-11-17  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added @need commands to prevent page breaks.

2022-11-17  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Hack to improve TeX output (PDF).

	Define a @fptt macro to fix the TeX output (PDF) issue mentioned
	in commit 1877cf9aef96c2280aab60f67e5e7302676d199a (if the style
	of HTML output is fixed to be more like TeX output, this code will
	need an update).

2022-11-17  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a note about a TeX output (PDF) issue.

	This affects "[]", which appears in the mpfr_sum and mpfr_dot
	function prototypes.

2022-11-16  Vincent Lefevre  <vincent@vinc17.net>

	Consistency: s/non(zero|positive|negative)/non-$1/

	Changed non(zero|positive|negative) to non-zero, etc. for consistency
	(target files: src & tests directory, doc/README.dev, doc/mpfr.texi).
	Did it this way because the former was in minority (21 vs 165) and
	the IEEE 754-2019 standard uses a hyphen.

2022-11-16  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Final typographic and style corrections.

	Actually a bit more than that, since this affected the textual part
	of the PDF file (used for searching and copy-paste): the underscore
	character needs to be in something like @code or @samp to be present
	in this textual part.

2022-11-16  Vincent Lefevre  <vincent@vinc17.net>

	Updated version to 4.2.0-dev with the new tools/update-version.

	All the expected replacements have now *really* been done thanks to
	commit a4dec8938b85afbca2d448ae2dd4e0d3ab72b00c.

2022-11-16  Vincent Lefevre  <vincent@vinc17.net>

	[tools/update-version] Fixed replacements in "doc/mpfr.texi".

	The change done in commits 4885b57add174f390eff29abe14d12fb5ebd6a61
	and 7eda345244f503359d14cd5bae1ed42865d39ee8 was incorrect as there
	are 2 identical replacements to do in "doc/mpfr.texi", not just one.
	The previous code changed lines separately. But for the check of
	failing replacements, a global change on the full file is needed;
	thus the 2 identical replacements were expected to be done at the
	same time, so that the "g" modifier is needed on the regexp.

2022-11-15  Vincent Lefevre  <vincent@vinc17.net>

	Updated doc/texinfo.tex to 2022-11-13.08

	[TODO] Added URL for the Clang multiprecision arithmetic builtins.

2022-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] add reference to __builtin_addcll

2022-11-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": mention the README file.

2022-11-10  Vincent Lefevre  <vincent@vinc17.net>

	Updated version to 4.2.0-dev with the new tools/update-version.

	All the expected replacements have now been done in doc/mpfr.texi,
	thanks to commit 7eda345244f503359d14cd5bae1ed42865d39ee8.

2022-11-10  Vincent Lefevre  <vincent@vinc17.net>

	[tools/update-version] Updated a replacement.

	This was needed due to a change done on 2018-09-07 in doc/mpfr.texi
	(commit 84796030c7c732e8e66e5e650ec929c541dd207f / SVN r13153), as
	said in the previous commit.

2022-11-10  Vincent Lefevre  <vincent@vinc17.net>

	[tools/update-version] Check for failing replacements.

	This script currently fails due to a change done on 2018-09-07 in
	doc/mpfr.texi (commit 84796030c7c732e8e66e5e650ec929c541dd207f /
	SVN r13153), and this issue remained unnoticed until now,
	in particular due to the absence of checking for failing
	replacements.

	The penultimate non-patchlevel release was done on 2017-12-25, i.e.
	before this change, and no patchlevel releases have been done yet
	for the latest release, so that no current releases are affected by
	this issue, but the 4.1.1 release candidate is affected.

2022-11-09  Vincent Lefevre  <vincent@vinc17.net>

	Updated doc/texinfo.tex to 2022-11-07.17 (from GNU Texinfo 7.0).

2022-11-08  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated comment about an issue with math operators.

	[doc/mpfr.texi] Added a comment about an issue with math operators.

	[doc/mpfr.texi] Another typographic improvement.

2022-11-08  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a comment for \mathop with a single character.

	Workaround to avoid an alignment issue described at
	  https://tex.stackexchange.com/questions/41261/mathop-shifts-the-baseline-declaremathoperator-doesnt
	when the math operator @EXP{} was just "E".

2022-11-08  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] More typographic corrections and improvements.

	Also did some changes to improve the consistency.

2022-11-07  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a comment (ref to the GNU Texinfo spacing bug).

2022-11-07  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] More typographic corrections for math expressions.

	* Note a spacing bug in texi2dvi from GNU Texinfo 6.8 with macros
	  (found while testing).
	* Define macro @EXP (and \EXP in TeX).
	* Typographic corrections for math expressions.

2022-11-07  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a comment.

	[doc/mpfr.texi] Improved typography and English usage.

	[doc/mpfr.texi] More documentation for the @m{T,N} macro.

2022-11-04  Vincent Lefevre  <vincent@vinc17.net>

	[src/set_zero.c] IEEE 754 terminology in a comment.

2022-11-04  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved consistency about infinity and zero.

	Note: one writes "+0", but "positive zero", not "plus zero", etc.
	See the IEEE 754 standard.

2022-11-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Minor corrections related to infinity.

	This completes commit 75041697429ba467c448195b4f0863d0eb92e20c
	done in 2021-02.

2022-11-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Style corrections.

2022-11-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Style improvement for TeX (PDF) output.

	For mpfr_acosu, mpfr_asinu, mpfr_atanu and mpfr_atan2u, make the style
	similar to the one for mpfr_cosu, mpfr_sinu and mpfr_tanu.

2022-11-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] More use of @tm (typographic corrections).

2022-11-01  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Completed the description of the @mm macro.

2022-11-01  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved typography for the formatted output functions.

	For what is displayed (or output text), @samp{...} should be used,
	as already done in some cases (note: never enclose @samp{...} with
	quotes as this is already done in the Texinfo processing).

2022-11-01  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved the readability of an example.

2022-11-01  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] More typographic corrections for TeX (PDF) output.

	* Define a @mm{T} macro to be used for math symbols outside of @m,
	  @tm, @code or similar (but not for the "+" in "C++").
	* Use this macro when applicable.
	* Add missing @tm for some simple math expressions.

2022-10-28  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added tm macro and improved math typography.

2022-10-27  Vincent Lefevre  <vincent@vinc17.net>

	[tools/nightly-test] Corrections and cleanup.

	In particular, reverted most changes done in SVN r9832
	(commit 1ca64e34907c5a968ca7fcc3d22cdca2ede7f28b):
	  * switch back to /bin/sh (bash is not needed by this script);
	  * do not use --enable-decimal-float and --enable-float128 with
	    a C++ compiler as they are not supported (configure fails).

	And for the "git clone" command:
	  * take the BRANCH argument into account;
	  * use --depth 1 to avoid an unnecessary full clone.

	Better g++ detection (e.g. g++-12 or /usr/bin/g++, not just g++).

2022-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tools/nightly-test] change to git

2022-10-26  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Cosmetic consistency change in the .texi source.

	Let's use the same code for "start of header" and "end of header".

2022-10-25  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated @m{T,N} macro, with comments.

	The @m{T,N} macro is used for math formatting and textual equivalent
	(human-readable text). However, it was generating emphasis in HTML,
	which was unexpected. This commit removes the use of @math for the
	Info and HTML output (for Info, this does not change anything, and
	for HTML, this removes the incorrect emphasis). It also updates the
	documentation and adds a comment about the history of this macro and
	various issues related to it.

2022-10-24  Vincent Lefevre  <vincent@vinc17.net>

	Updated doc/texinfo.tex to 2022-10-18.18

	Update from the texinfo Git repository.
	  * The generated mpfr.html and mpfr.info files remain the same.
	  * For mpfr.pdf, there are some spacing improvements.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Fix formatting for mpfr_can_round.

	Consistency changes and use of no-break space (@tie{}).

	Note: Once @math{...} has been clarified/fixed, apply the suggestions
	by Ivan Panchenko:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Consistency correction for mpfr_get_str_ndigits.

	Use @math{m} (instead of just m) as already used a bit earlier.

	But the use of @math may need to be revised. See
	https://lists.gnu.org/archive/html/bug-texinfo/2022-10/msg00045.html

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved spacing.

	2 changes suggested by Ivan Panchenko at

	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html

	but do not use @math{...} as with HTML output, it puts everything
	in italics with <em class='math'>...</em>, which is incorrect for
	things like digits.

	However, this behavior of @math{...} is not what is documented in
	the GNU Texinfo 6.8 manual, which says:

	  The '@math' command has no special effect on the Info output or (by
	  default) the HTML output, merely outputting the contents verbatim.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a comment about the use of @math{...}.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	[doc/mpfr.texi] Fixed italicization for mpfr_eint.

	An issue reported by Ivan Panchenko:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html

	I also had to fix the occurrences of k in @ifnottex for HTML.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	Fixed some minor mistakes.

	* Minor mistakes in doc/mpfr.texi reported by Ivan Panchenko:
	    https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00020.html
	  (spacing and italicization not fixed yet).
	* Fixed similar mistakes in the other files.

2022-10-11  Vincent Lefevre  <vincent@vinc17.net>

	mpfrlint: updated text checking (spelling...)

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	ChangeLog update with tools/update-changelog

	[tools/update-changelog] Use UTC to generate the ChangeLog file.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[tools/gitlog-to-changelog] Improve --strip-cherry-pick for this repository.

	Remove all the cherry-pick information from what can be found in
	the 4.1 branch.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": precision about the tag.

	[doc/README.dev] "To make a release": correction about the tag.

	[tests/tnrandom.c] Fixed compilation failure with mini-gmp.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[tools] Improvement for the ChangeLog generation.

	* tools/gitlog-to-changelog: modified regexp for --strip-cherry-pick
	  to support some log message in the MPFR Git repository (currently,
	  only commit 4c5973c2f0153a3a4708cab79ed142e72c4a50eb, but similar
	  ones could occur in the future).
	* tools/update-changelog: use this --strip-cherry-pick option.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": update for the ChangeLog file.

	See commit 1dc281851408fc7d330576327545857c93392521 for the reason.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": update for abi-compliance-checker.

	Added an example of use of build-multi and abi-compliance-checker
	for the 4.1.1 release candidate.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	Fix for "make dist" / "make distcheck" about ChangeLog regeneration.

	The "ChangeLog: FORCE" rule in Makefile.am was incompatible with
	GNU Automake's "make dist" / "make distcheck" because GNU Automake
	creates a "distdir-am: $(DISTFILES)" rule, which was regenerating
	the ChangeLog file in "make dist"; such a change is not allowed
	(it fails with "make distcheck") and not wanted anyway.
	Issue introduced by commit 52652c41978089be57aca658bacf19b758c73be4.

	* Added tools/update-changelog sh script to update the ChangeLog file.
	* Makefile.am: replaced the incorrect rule mentioned above by a rule
	  update-changelog to run tools/update-changelog; added a comment.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": update for abi-compliance-checker.

2022-10-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": update about build-multi.

	Needed due to the switch from InriaForge to Inria GitLab.

2022-10-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tnrandom.c] Improved the support non-default seed.

	As suggested by mpfrlint, use a different randstate rather than
	re-seeding mpfr_rands (with a fixed seed). So the corresponding
	test no longer needs to be at the end.

2022-10-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tnrandom.c] Added a comment for tnrandom with an argument.

	This concerns a slowness of mpfr_clear() in the MPFR tests due to
	the O(n) search in tests_memory_find(), used to detect memory leaks.

2022-10-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tnrandom.c] Support non-default seed (GMP_CHECK_RANDOMIZE).

	This fixes a failure due to 4c5973c2f0153a3a4708cab79ed142e72c4a50eb
	when GMP_CHECK_RANDOMIZE is set.

2022-10-04  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": added note about GMP_CHECK_RANDOMIZE.

2022-10-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/update-faq] Ensure that the code is run from the doc directory.

	[tools/coverage] Typo.

	[doc/README.dev] Updated "To make a release".

	Updated URLs.

	Updated URLs.

	Updated URLs.

2022-10-03  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Corrected "To make a release".

	The addition of the <branch>-root tag applies only after a branch
	is created, i.e. for non-patchlevel releases (item 0).

2022-09-14  Vincent Lefevre  <vincent@vinc17.net>

	Updated doc/texinfo.tex to 2022-09-14.01

	Update from the texinfo Git repository.
	  * The generated mpfr.html and mpfr.info files remain the same.
	  * For mpfr.pdf, this version fixes all the issues I've reported.

2022-09-09  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

	[src/mpfr-impl.h] Added TODO for MPFR_MAYBE_UNUSED.

2022-09-07  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] New C2x draft (N3054).

2022-09-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release" (about texinfo.tex).

	[autogen.sh] Added a comment about files we handle in the repository.

2022-09-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/.gitignore] Removed /texinfo.tex since it is in the repository.

	doc/texinfo.tex was added to the Subversion repository on 2017-11-27
	and the svn:ignore property should have been updated at this time,
	but I forgot.

2022-09-03  Vincent Lefevre  <vincent@vinc17.net>

	[tests/RRTest.c] Replaced "egrep" by "grep -E" in comment.

	In the GNU grep 3.8 release notes:
	  The egrep and fgrep commands, which have been deprecated since
	  release 2.5.3 (2007), now warn that they are obsolescent and should
	  be replaced by grep -E and grep -F.

2022-08-27  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Changed "trunk" (Subversion) to "master" (Git).

	[doc/README.dev] New C2x draft (N3047).

2022-08-26  Vincent Lefevre  <vincent@vinc17.net>

	[tools/announce-text] Updated key ID for the future releases.

2022-08-19  Vincent Lefevre  <vincent@vinc17.net>

	[codespell.ignore] Ignore RO and SIZ (codespell 2.2.0).

	Corrected spelling mistake found by codespell 2.2.0

2022-08-16  Vincent Lefevre  <vincent@vinc17.net>

	Cleanup about decimal floating constants matching ".0d".

	In general, the trailing 0 is not needed, and even not wanted
	(this has the effect to decrease the quantum by 1 compared to the
	"natural value"), though the quantum is not yet specified in MPFR.

	In tests/tget_set_d64.c, kept this trailing 0 in mpfr_set_decimal64,
	but added similar tests without this trailing 0.

2022-08-08  Vincent Lefevre  <vincent@vinc17.net>

	version-ext.sh: replaced a remaining "sed" by "$SED".

	Thanks to Trevor Spiteri for noticing that.

2022-08-08  Vincent Lefevre  <vincent@vinc17.net>

	version-ext.sh: handle the case where no Git branches are found.

	This should solve the issue reported on 2022-08-08 by Trevor Spiteri:
	https://sympa.inria.fr/sympa/arc/mpfr/2022-08/msg00002.html

2022-07-08  Vincent Lefevre  <vincent@vinc17.net>

	doc/mpfr.texi: Updated the month.

2022-07-08  Vincent Lefevre  <vincent@vinc17.net>

	[manual] Added a note for mpfr_nexttoward (exceptions, sign of 0).

	Also applies to mpfr_nextabove and mpfr_nextbelow, whose description
	refers to mpfr_nexttoward.

	See additional details in the comment in the src/next.c source.

2022-07-08  Vincent Lefevre  <vincent@vinc17.net>

	[src/next.c] Updated comment (exceptions and sign of 0).

	Concerned functions: mpfr_nexttoward, mpfr_nextabove, mpfr_nextbelow.

	Clarification was needed due to the differences between the
	IEEE 754-1985, IEEE 754-2008/2019 and ISO C99+ standards on
	similar functions (nextafter, nextUp, nextDown).

2022-07-06  Vincent Lefevre  <vincent@vinc17.net>

	[configure.ac] Update about GNU gold ld and LD_RUN_PATH.

	* Comment update: added URL of the upstream bug report.
	* Mention the GNU gold linker in the warning.

2022-06-13  Vincent Lefevre  <vincent@vinc17.net>

	[README] Replaced "Subversion" by "Git".

	[doc/README.dev] Completed the update for Git.

	[doc/README.dev] Moved and clarified a paragraph about the tests.

2022-06-11  Vincent Lefevre  <vincent@vinc17.net>

	Fixed tsprintf %a tests when GMP and libc produce different outputs.

	With some 32-bit mingw-w64 implementations, the GMP and libc
	formatted output functions produce different outputs for %a (this
	is not completely specified by the C standard). In the MPFR tests
	introduced by commit 22db634294c27eabbc0c55b04267d3ab5bc9a648 on
	2022-05-19, the comparison is done between the MPFR result, which
	is based on GMP, and the libc result; hence a failure.

	So, changed the 4 concerned tests of tests/tsprintf.c to compare
	the MPFR result with the GMP result (for the other tests on the
	C native types, it is still better to compare MPFR with libc).

	Bug report:
	  https://sympa.inria.fr/sympa/arc/mpfr/2022-06/msg00004.html

2022-06-10  Vincent Lefevre  <vincent@vinc17.net>

	[tools/announce-text] Completed the update for Git.

	[tools/announce-text] Check that one has an annotated tag at origin.

	[tools/announce-text] Update.

	[tools/announce-text] Minor git-related simplification.

	[tools/announce-text] Started the update for Git.

	[tools/announce-text] Removed code and text related to InriaForge (obsolete).

2022-06-08  Vincent Lefevre  <vincent@vinc17.net>

	Updated www.open-std.org URLs: http → https.

2022-06-07  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] New C2x draft (N2912).

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

	This completes the update for Git and Inria GitLab. But the
	tools/announce-text script has not been updated yet.

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	[tools/export-release] Completed the script.

	Fix the timestamps so that each file or directory has a timestamp
	corresponding to its last change.

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	Added tools/export-release sh script.

	Export some release identified by a Git tag in order to get a tarball.

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	[mbench] Updated Copyright lines.

	Added tools/mbench/.gitignore file.

	[mbench/Makefile] Added missing dependencies on timp.h

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	[mbench/timp.h] Bug fix for "make rt" on 32-bit machines. Reindent.

	For the code used when USE_CLOCK_MONOTONIC is defined ("make rt"):
	If both time_t (type of tv_sec) and long are 32-bit types, there was
	an overflow in the timp_rdtsc() macro, due to the multiplication of
	the tv_sec (coming from CLOCK_MONOTONIC, thus typically larger than 5)
	by the value 1000000000 (≈ 2^32 / 4.3) of type unsigned long, because
	this multiplication would be done on 32 bits. Changed the type of the
	constant to unsigned long long so that the operations are done with
	the target type unsigned long long (at least).

2022-06-02  Vincent Lefevre  <vincent@vinc17.net>

	[mbench] Removed trailing whitespace.

2022-06-01  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release" (about ChangeLog).

	ChangeLog update with "make ChangeLog"

	[tools/ck-copyright-notice] Better indentation.

	[tools/ck-copyright-notice] Support the future ChangeLog format.

2022-06-01  Vincent Lefevre  <vincent@vinc17.net>

	[tools/ck-copyright-notice] Better error handling.

	Note: One currently gets a failure with the future ChangeLog format,
	obtained with gitlog-to-changelog (via "make ChangeLog").

2022-06-01  Vincent Lefevre  <vincent@vinc17.net>

	Support ChangeLog regeneration from a Git working tree.

	* Added tools/gitlog-to-changelog file from Gnulib.
	* Makefile.am: added a rule for the Changelog file.

	Needed as the GNU MPFR repository has been converted to Git.

	The '%B%n' format string is used rather than the default '%s%n%b%n'
	because Git's commit message convention is not always followed
	(in particular before the conversion of the repository to Git).

	Note: In the future, if there is any change to do to a Git commit
	message (typo, etc.), the --amend option could be used.

2022-05-30  Vincent Lefevre  <vincent@vinc17.net>

	Started to update doc/README.dev for Git.

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[manual] Clarify the description of the formatted output functions.

	Emphasize the fact that the conv specifier F is not supported, except
	for the type specifier R (for mpfr_t arguments).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[src/vasprintf.c] Consistency with the non-support of %F by GMP.

	The F conversion specifier as defined by the C standard is not
	supported by the GMP formatted output functions because it is
	already used as the type specifier for mpf_t (which comes before
	the conversion specifier). Let's take this fact into account.

	Note: this conversion specifier is still allowed with MPFR numbers
	(e.g., "%RF") to avoid breaking the compatibility (it has never
	been an issue).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] native_types: added tests to differentiate %G from %g.

	The tested value -1.25 had the same output -1.25 with %g and %G.
	Added 7.62939453125e-6 (= 2^(-17)), whose output by %g and %G has
	an exponent introduced by 'e' and 'E' respectively.

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] native_types: added tests for %a, %A, %la, %lA

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added/fixed native_types tests.

	* Added tests of %E and %G.
	* Removed the test of %lF, which is not supported by GMP (and yields
	  a heap buffer overflow, detected by AddressSanitizer): even though
	  there would be no ambiguity in this particular case, it is not
	  supported because the standard F conversion specifier isn't due to
	  the use of the F type specifier for mpf_t.

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] Correction for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG

	Reverted commit 2b60707d22717e0f582be5de680d7fa7004e2512 and added
	tests for the missing %lE, %lF, %lG in native_types, protected by
	a #if (see commit ecd3279f3dfd281fc8e51aac7509b76b27497a6c) as they
	may need an ISO C99 compiler.

	Note: The test of %la and %lA was incorrect because the first digit
	is unspecified (and really depends on the C library). A test could
	be added in the future, perhaps also with a configure test, because
	the compiler may support ISO C99 but not the C library (there was
	an issue like that at least with old versions of Solaris).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] native_types: test %le, %lf, %lg only with C99+

	… since the l length modifier for the FP types (a, A, e, E, f, F, g, G
	conversion specifiers) has been added in ISO C99.

2022-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsprintf.c] added tests for %la, %lA, %le, %lE, %lf, %lF, %lg, %lG

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[src/vasprintf.c] Bug fix for the l length modifier with FP type.

	The l length modifier is now supported with the a, A, e, E, f, F, g, G
	conversion specifiers, as required by the ISO C standard on printf and
	other formatted output functions. As specified, it is just ignored.

	For that, to improve code maintainability, the CASE_LONG_ARG() macro
	was simplified:
	  * The c and s conversion specifiers are always supported by this
	    macro (this is a potential fix for implementations with incomplete
	    wide-character handling, without any guarantee to work).
	  * A MPFR_RET_NEVER_GO_HERE() for unsupported conversion specifiers
	    has been added (if specinfo_is_valid() is consistent with this
	    macro, one should effectively never reach this case).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[src/vasprintf.c] Made case ordering consistent (no change of behavior).

	The "case" ordering in specinfo_is_valid() and in CONSUME_VA_ARG() for
	integer specifiers and for floating-point specifiers was not the same.
	Improved code readability by using the same order across the code
	(also OK with CASE_LONG_ARG()).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] native_types: test %le, %lf, %lg.

	These tests are currently failing. Bug reported by Paul Zimmermann
	for %la (but %a and %la are not currently tested, because of their
	possible lack of support in the C library).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsprintf.c] native_types: same tests for i as for d.

	[tests/tnrandom.c] With mini-gmp, disable the tests that check the values.

	[acinclude.m4] Added a comment about the unreliable NAN != NAN check.

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/cmp_str.c] In mpfr_cmp_str, check that s is a valid number.

	In the tests, the string provided to mpfr_cmp_str is normally a
	valid number (the common use is to check that a result is equal to
	some hardcoded value given by a string). A string s that does not
	represent a valid number probably has a typo, and the consequence
	was that in such a case, any non-NaN result was regarded as correct.

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsubnormal.c] Removed invalid testcase bug20220518.

	The testcase bug20220518 added in
	  commit 7640a832fbf0b7f9057889e076cf7f42fe4f8e58
	was invalid as the mpfr_subnormalize input was not in the current
	exponent range (it had exponent -1074 while emin = -1073).

	As usual, inputs outside the current exponent range are not supported
	(the mpfr_subnormalize description in the manual is explicit:
	"The subnormal exponent range is from ‘emin’ to ‘emin+PREC(X)-1’.").
	Supporting values outside the current exponent range is not needed
	in practice (see examples in the manual).

2022-05-19  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tsubnormal.c] Code style in coverage().

	[tests/tsubnormal.c] Added missing cleanup at the end of bug20220518.

	[tests/tsubnormal.c] Simplified bug20220518.

	[tests/tsubnormal.c] C90 compatibility.

2022-05-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsubnormal.c] added test case that exhibits a bug in mpfr_subnormalize
	[src/subnormal.c] fixed typo

2022-05-18  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tnrandom.c] Check some mpfr_nrandom values to detect changes.

	The values should be the same on different machines and with
	different MPFR versions (or this would be an ABI change).

2022-05-17  Vincent Lefevre  <vincent@vinc17.net>

	For version-ext.sh, use "$SED" instead of "sed".

	* tests/Makefile.am: pass $SED to version-ext.sh.
	* version-ext.sh: use $SED (default to "sed").

2022-05-17  Vincent Lefevre  <vincent@vinc17.net>

	Fixed version-ext.sh when in an origin/* remote branch.

2022-05-13  Vincent Lefevre  <vincent@vinc17.net>

	Tests: the check of subnormal support is done when running the tests.

	The check of support for double and float subnormals was done at
	configure time, but it could not be done when cross-compiling.
	Since it is useful only for the tests, it is better to do it when
	running the tests.

	* tests/tests.c: added have_subnorm_dbl() and have_subnorm_flt()
	  functions to check support for double and float subnormals;
	  removed such a check from mpfr_test_init().
	* tests/mpfr-test.h: declare these functions.
	* tests/tget_flt.c: use have_subnorm_flt() instead of HAVE_SUBNORM_FLT.
	* tests/tset_d.c, tests/tsprintf.c: removed the useless test of
	  HAVE_SUBNORM_DBL (this was a minor optimization).
	* acinclude.m4: updated comment about the check of subnormal support;
	  minor improvement in the check for float subnormals.
	  Note: keep the check just for build information (it might be useful
	  for debugging or in case of a related bug report).
	* tools/mpfrlint: check that the HAVE_SUBNORM_* macros are not used.

2022-05-13  Vincent Lefevre  <vincent@vinc17.net>

	[acinclude.m4] Updated comment about the check of subnormal numbers.

	* Removed text about DBL_HAS_SUBNORM and FLT_HAS_SUBNORM (which
	  was added in commit 3ee30bcf34bfb5d042e5a1aa9b7cf8a42b51cb91
	  on 2019-10-01) since these macros should be made obsolescent:
	  https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2981.htm
	  And their use would be incorrect in C++ (different meaning):
	  https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2988.pdf
	* A bit more details.
	* Added a FIXME for better cross-compiling support.

2022-05-10  Vincent Lefevre  <vincent@vinc17.net>

	doc/mpfr.texi: Updated the month.

	[NEWS] Mention the fixes of the macros of the custom interface.

2022-05-10  Vincent Lefevre  <vincent@vinc17.net>

	Improved 2 macros of the custom interface and updated manual.

	* src/mpfr.h: The mpfr_custom_init() and mpfr_custom_move() macros
	  could not be used in contexts where an expression was expected.
	  This limitation was not necessary and is now removed.
	* doc/mpfr.texi: In commit 743a63c480318f60ac2a953007bac08f37b7d71d,
	  the manual was clarified about the macros of the custom interface,
	  i.e. behaving like macros, which may evaluate arguments multiple
	  times or none. This was incomplete and error prone, in addition
	  to being undocumented in the current MPFR versions. Almost all
	  issues have now been fixed (the only minor limitation is that the
	  mpfr_custom_init_set() macro is not usable in contexts where an
	  expression is expected, but this cannot yield unnoticed bugs).
	  So, changed the manual to reflect these fixes and added an item
	  in Section "API Compatibility" (also removed an obsolete comment
	  about that from src/mpfr.h).

2022-05-08  Vincent Lefevre  <vincent@vinc17.net>

	Improved a comment.

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Added text about tests of function-like macros.

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	In comments, changed "stack interface" to "custom interface".

	* src/mpfr.h: changed "stack interface" and "mpfr_stack interface"
	  to "(the) custom interface".
	* src/stack_interface.c: changed "mpfr_stack" to "custom interface".

	The mpfr_stack_ prefix was changed to mpfr_custom_ in 2005
	(see commit 0a010e55364d1cc3681273eee70c91dab0a61946) and
	the MPFR manual says "Custom Interface".

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	Other corrections about the custom interface.

	This time, the build of tstckintc was failing with "gcc -Wc++-compat"
	because __cplusplus is not defined.

	* tests/tstckintc.c: use the same solution as already done in
	  tcopysign.c (commit 3dbf3387669030b264317202806fc3d938704618),
	  i.e. ignore -Wc++-compat with "GCC diagnostic" pragmas when
	  testing with void * arguments.
	  Also simplified the code thanks to the VOIDP_CAST macro that
	  was introduced at that time (cast to void * except in C++):
	  commit 9076e47ceb41c60cab526870757f2098ced5c26d.

	Everything should now be OK.

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	Other corrections about the custom interface.

	In C++, implicit pointer conversions are forbidden. This made the
	build of tstckintc fail with g++ and -DMPFR_USE_NO_MACRO in CFLAGS.

	* src/mpfr.h: do not attempt to support implicit pointer conversions
	  with a C++ compiler in the macros, since this is not supported by
	  the functions, i.e. removed 2 useless casts; this is a bit like the
	  code like before commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.
	* tests/tstckintc.c: test a "void *" argument instead of mpfr_ptr only
	  in C, not C++ (which cannot work if -DMPFR_USE_NO_MACRO is used).
	  Note: for newx and newx2, revert to the code that was before the
	  commit mentioned above.

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	Testsuite: C++11 compatibility (GCC's -Wliteral-suffix).

	With "g++ -Werror", several .c files in the "tests" directory were
	yielding

	  error: invalid suffix on literal; C++11 requires a space between
	  literal and string macro [-Werror=literal-suffix]

2022-05-06  Vincent Lefevre  <vincent@vinc17.net>

	Fixed build failure of user code using mpfr_custom_get_kind() / g++.

	* src/mpfr.h: added missing cast in the mpfr_custom_get_kind() macro
	  (invalid C++ code, but this is in a GNU __extension__ block, thus
	  unfortunately, it was not detected by "gcc -Werror=c++-compat";
	  see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105499>).

	Bug introduced in commit 9f94e0311ed53d0c64d4fbca249d19cc4888027e.

2022-05-05  Vincent Lefevre  <vincent@vinc17.net>

	Fixed issues with the macro versions of the custom interface.

	* src/mpfr.h: fixed issues with the mpfr_custom_* macros:
	    - a "void *" argument instead of mpfr_ptr could make the
	      compilation fail (with the function, the conversion is
	      implicit, thus this should be accepted by the macro);
	    - some arguments could be evaluated 0 times, which is wrong
	      if their evaluation has side effects.
	* tests/tstckintc.c: added various tests to check these kinds
	  of issues.

2022-05-05  Vincent Lefevre  <vincent@vinc17.net>

	Avoid a -Wsign-conversion warning that could occur in user code.

	Issue reported by Andreas Enge concerning PariTwine.

	* src/mpfr.h: added a cast in the mpfr_custom_get_size() macro so that
	  a size_t * size_t product is done instead of mpfr_prec_t * size_t
	  (where mpfr_prec_t is signed and size_t is unsigned, triggering a
	  warning when GCC's -Wsign-conversion is used).

2022-05-05  Vincent Lefevre  <vincent@vinc17.net>

	Fixed mpfr_custom_get_size() macro and added non-regression test.

	* src/mpfr.h: added missing cast in mpfr_custom_get_size() macro.
	* tests/tstckintc.c: added testcases (would fail on LP64 platforms).

2022-04-22  Vincent Lefevre  <vincent@vinc17.net>

	[mpfr-impl.h] Rounding mode macros: added assertion; updated comments.

2022-04-22  Vincent Lefevre  <vincent@vinc17.net>

	Updated TODO to improve mpfr_pow_si/sj for negative n.

	I thought that there would be some drawbacks with the underflow
	by computing the power before the division, but this actually
	seems to be more or less equivalent (mpfr_pow_general is already
	used for MPFR_RNDN).

	Also, removed the suggestion with rescaling as this may not be
	possible for large values of n compared to the maximum exponent.

2022-04-17  Vincent Lefevre  <vincent@vinc17.net>

	Corrected comment about the ".POSIX" line in all Makefile.am files.

2022-04-08  Vincent Lefevre  <vincent@vinc17.net>

	[TODO] Added idea of implementation for to_chars.

2022-04-07  Vincent Lefevre  <vincent@vinc17.net>

	[manual] For sqrt and rec_sqrt, mention the relation with rootn.

	Updated TODO about rootn (now that mpfr_rootn_si is implemented).

2022-04-06  Vincent Lefevre  <vincent@vinc17.net>

	[src/pow_si.c] Added a static assertion and comments about code improvement.

2022-04-06  Vincent Lefevre  <vincent@vinc17.net>

	[src/log_ui.c] Updated comments to better understand that the code is correct.

	Note: these are the same as in the 4.1 branch (commit 8f357dd48).
	So the ULONG2LONG macro was not necessary, but let's keep it for
	maintainability. This does not change for GCC and Clang. But tcc
	even generates shorter x86_64 code with this macro.

2022-04-06  Vincent Lefevre  <vincent@vinc17.net>

	[tests/tpow.c] Improved/added bad_cases tests of mpfr_pow_ui/si (x^n).

	* For n odd, generate negative values y (thus x) with a probability
	  1/2 (instead of a very low probability), as there is no reason to
	  favor positive values in this case.
	* Added bad_cases tests of mpfr_pow_si with n negative (with the help
	  of mpfr_rootn_si). This was the TODO from commit 58fc9fb0e.

2022-04-06  Vincent Lefevre  <vincent@vinc17.net>

	[tests] In some bad_cases messages, output the name of the function.

	This is useful for tests with several bad_cases invocations,
	such as tpow, troot and trootn_si.

2022-04-06  Vincent Lefevre  <vincent@vinc17.net>

	[tests/{troot,trootn_si}.c] Added a comment about bad_cases.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	Added /trootn_si to tests/.gitignore

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	src/root.c: for mpfr_rootn_si with k = -2, use mpfr_rec_sqrt.

	The mpfr_rec_sqrt code is faster than the generic mpfr_rootn_si code
	for k = -2.

	Also added a TODO: if MPFR_WANT_ASSERT >= 2, do both computations
	and compare the results.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	tests/trootn_si.c: fixed typo in error messages.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	src/pow_ui.c: bug fix with mini-gmp and limb < unsigned long.

	The initial precision was too small for large values of n.
	→ tpow and trootn_si no longer fail.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	tests/tpow.c: better generic tests for mpfr_pow_ui and mpfr_pow_si.

	Changed INT_RAND_FUNCTION, in particular to use randulong / randlong
	for mini-gmp, yielding an assertion failure when MINI_GMP_LIMB_TYPE
	is shorter than "long".

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	mpfrlint: ignore mini-gmp in some test.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	mpfr_rootn_si(): bug fix for n = LONG_MIN; added generic tests.

	* src/root.c: bug fix in mpfr_rootn_si() for n = LONG_MIN
	  (integer overflow on -n, triggered by the generic tests).
	* tests/trootn_si.c: added generic tests.
	  Note: they currently yield an assertion failure in pow_ui.c with
	  mini-gmp when MINI_GMP_LIMB_TYPE is shorter than "long".

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	[tests] Add randulong and randlong functions (useful with mini-gmp).

	To get a random unsigned long, randlimb() is currently used, but with
	mini-gmp, a limb may be shorter than an unsigned long, so that one
	does not get all the possible "unsigned long" values. So these new
	randulong() and randlong() functions should now be used instead.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	Define a ULONG2LONG() macro to convert from unsigned long to long.

	The conversion is done with the two's complement rule
	(i.e. modular arithmetic) in a portable way.
	  * doc/README.dev: mention this macro (the technique was already
	    described).
	  * src/log_ui.c: use this macro instead of non-portable code due to
	    the case n = LONG_MAX + 1.
	  * src/mpfr-impl.h: define this macro.

2022-04-05  Vincent Lefevre  <vincent@vinc17.net>

	trootn_si.c: more mpfr_rootn_si tests on special values

	doc/mpfr.texi: Updated the month.

	New function mpfr_rootn_si

2022-04-04  Vincent Lefevre  <vincent@vinc17.net>

	[src/root.c] Updated a comment for mpfr_rootn_ui.

	This comment was correct for mpfr_root, but I forgot to update it when
	changing this function to mpfr_rootn_ui (where this case differs) in
	commit 117c726a863e243634c8e5fbaae0265cac90a4a1.

2022-04-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests/troot.c] Added a comment.

	[tests/tpow.c] Added a TODO about tests with bad_cases.

	[tests/tpow.c] Corrected messages.

	[tests/tpow.c] For rootN, use mpfr_root and mpfr_rootn_ui randomly.

2022-04-04  Vincent Lefevre  <vincent@vinc17.net>

	[tests] Define RAND_BOOL() macro (random boolean) and use it.

	In the tests directory:
	* mpfr-test.h: define RAND_BOOL() macro, with type int.
	* mpfr-test.h and various .c files: replace "randlimb () & 1" and
	  "randlimb () % 2" by "RAND_BOOL ()".
	* tfprintf.c, tsprintf.c: use the same code as tprintf.c.

2022-04-04  Vincent Lefevre  <vincent@vinc17.net>

	In the tests, fixed "randlimb () % 1", mistaken for "randlimb () & 1".

	This occurred only in tests/tfmma.c (5 occurrences), with the
	consequence of fewer cases of different kinds in the tests.

	Such a kind of mistake is now detected by mpfrlint (commit 2a90f0c91).

2022-04-04  Vincent Lefevre  <vincent@vinc17.net>

	mpfrlint: detect "% 1" (modulo 1), which always gives 0.

	This is probably mistaken for "& 1" or "% 2", as currently in
	"tests/tfmma.c".

2022-03-30  Vincent Lefevre  <vincent@vinc17.net>

	[TODO] Moved and updated item.

	Since this is about functions in IEEE 754-2019, it makes more sense
	to have this item after the new functions of IEEE 754-2008.

2022-03-30  Vincent Lefevre  <vincent@vinc17.net>

	[TODO] Updated item (with non-public URL removed).

2022-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added item

2022-03-29  Vincent Lefevre  <vincent@vinc17.net>

	Fixed version-ext.sh, in particular when used after "./autogen.sh".

	After running autogen.sh, version-ext.sh incorrectly detected files
	as modified. Solution: refresh the git index before git diff-index.

2022-03-28  Vincent Lefevre  <vincent@vinc17.net>

	[acinclude.m4] Fix/improve MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.

	With a GCC snapshot, -Werror=infinite-recursion was yielding an
	error in AC_CHECK_LIB for function "main". So, define MPFR_HAVE_LIB
	to be used instead of AC_CHECK_LIB when it is not needed to test any
	function. So, use it in MPFR_CHECK_LIBM and MPFR_CHECK_LIBQUADMATH.
	Also updated MPFR_CHECK_LIBM from the current libtool.m4 code, as
	done in the past.

2022-03-24  Vincent Lefevre  <vincent@vinc17.net>

	[get_d128.c] Updated FIXME comment.

2022-03-24  Vincent Lefevre  <vincent@vinc17.net>

	Added a TODO efficiency item about the size of the MPFR library.

	Reduce the size of the MPFR library generated by GCC by avoiding
	operations on _Decimal128 in get_d128.c when its encoding is BID.

2022-02-18  Vincent Lefevre  <vincent@vinc17.net>

	[algorithms.tex] Cleanup: ^\infty → ^{\infty}

	Using a command after _ (subscript) or ^ (superscript) is discouraged
	as it might break with future TeX versions, as already seen.
	Discussion:
	  https://tug.org/pipermail/tex-live/2022-February/047780.html

2022-02-18  Vincent Lefevre  <vincent@vinc17.net>

	[algorithms.tex] Updated 2 URLs in comments (http → https).

2022-02-03  Vincent Lefevre  <vincent@vinc17.net>

	Updated a comment: added a ref to WG14/N2921 about large bit-fields.

2022-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/nrandom.c] added reference

2022-01-18  Vincent Lefevre  <vincent@vinc17.net>

	Updated the FIXME in acinclude.m4 for MPFR_CHECK_LIBM.

2022-01-18  Vincent Lefevre  <vincent@vinc17.net>

	Added FIXME in acinclude.m4 for MPFR_CHECK_LIBM.

	With a GCC snapshot:
	  error: infinite recursion detected [-Werror=infinite-recursion]

2022-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] removed an item (done in the web page for each release)

2022-01-14  Vincent Lefevre  <vincent@vinc17.net>

	doc/mpfr.texi: Updated the month.

2022-01-12  Vincent Lefevre  <vincent@vinc17.net>

	[tests] Added a comment about the output of pointer values.

2022-01-10  Vincent Lefevre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

	Added a paragraph about config.guess and config.sub.

2022-01-06  Vincent Lefevre  <vincent@vinc17.net>

	Added a TODO to improve mpfr_pow_si/sj.

	Computing POW_U before the division (instead of after) would reduce
	the error in the intermediate result.

2022-01-06  Vincent Lefevre  <vincent@vinc17.net>

	Updated a comment about a clang bug.

	Updated a comment about a clang bug.

2022-01-06  Vincent Lefevre  <vincent@vinc17.net>

	Copyright notice update: added 2022.

	Command used:
	  perl -pi -e 's/ (\d{4}-)?(2021)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh.
	Removed 2021 from the example in the doc/README.dev file.

2021-12-26  Vincent Lefevre  <vincent@vinc17.net>

	README.dev: added C2x draft URL (N2731).

	Corrected style (spurious space before comma).

2021-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	gnu style

2021-11-25  Vincent Lefevre  <vincent@vinc17.net>

	Move code for git info to its own shell script "version-ext.sh".

	* New version-ext.sh file: sh script to output MPFR version information
	  for a Git working tree (old code from tests/Makefile.am).
	* tests/Makefile.am: replace some output_info code by the use of this
	  script.
	* Makefile.am: add version-ext.sh to EXTRA_DIST as a consequence
	  (a comment explains why).
	* README: list this new version-ext.sh file as a consequence.

2021-11-25  Vincent Lefevre  <vincent@vinc17.net>

	Another fix in the code for git info output by "make check".

	tests/Makefile.am: in output_info, replaced "grep" by "$(GREP)".

2021-11-25  Vincent Lefevre  <vincent@vinc17.net>

	Fixed git info output by "make check".

	tests/Makefile.am: when discarding excluded branches, the match should
	be done on the full branch name, not a subword; so, added the -x grep
	option (specified by POSIX).

2021-11-25  Vincent Lefevre  <vincent@vinc17.net>

	Updated tests_run_within_valgrind() comment in "tests/tests.c".

2021-11-23  Vincent Lefevre  <vincent@vinc17.net>

	README.dev: added note about the formally proven code and requirements.

	Update of INSTALL file about CompCert.

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	doc/mpfr.texi: Updated the month.

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	For git info output by "make check", check for modifications.

	tests/Makefile.am: updated output_info code to add " (modified)"
	when the working tree has been modified (compared to HEAD).

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Added info to doc/README.dev about <branch>-root tags.

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Removed a usless comment about git info output by "make check".

	tests/Makefile.am: removed the comment about the unimplemented
	solution with possible *-branch tags (I think that it would not
	work well with merges).

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Improved code to output git info from "make check".

	tests/Makefile.am: updated output_info code and comment.
	We now use <branch>-root tags to find to correct branch, by excluding
	branches created after the current HEAD.

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Fixed git info output by "make check".

	tests/Makefile.am: in output_info, added a "|| true" on a shell command
	that may fail (grep with no matches).

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Added a FIXME for git info output by "make check".

	The recent additions to tests/Makefile.am work well for master (and
	detached HEAD state), but not for the 4.1 branch, where $gitb gets
	empty, even though testing from an interactive shell (/bin/sh = dash)
	does not show any issue.

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Improved git info output by "make check".

	tests/Makefile.am: modified output_info to output:
	  * the detected branch, which also works in detached HEAD state
	    (for old commits that can be found in multiple branches,
	    "master" is prefered over the other branches);
	  * the total commit count;
	  * the commit id (hash).

2021-11-22  Vincent Lefevre  <vincent@vinc17.net>

	Add git info with "git describe" for "make check" (to be improved).

	tests/Makefile.am: in output_info, add git info, but this does not
	output the branch. For instance, on master, one gets something like
	"4.1-root-491-g2933fad3a", and something similar on the 4.1 branch.
	As the solution needs to work in detached HEAD state, we may want to
	add *-branch tags to identify the first commit of a branch, and use
	  git describe --match '*-branch'
	instead of
	  git describe --match '*-root'

2021-11-15  Vincent Lefevre  <vincent@vinc17.net>

	Documentation: some improvements about the "decimal-point character".

	* doc/README.dev: update about the use in the MPFR manual (mpfr.texi).
	* doc/mpfr.texi: minor correction.

2021-11-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/algorithms.tex] Add \pdfglyphtounicode{lscript}{2113} for \ell.

	Otherwise one gets a grave accent (thus "s − l" cannot be found).
	If the "ℓ" is still an issue, one could alternatively use
	  \pdfglyphtounicode{lscript}{006C}
	to get an "l" (but "l" also matches "ℓ" in xpdf and atril).

2021-11-05  Vincent Lefevre  <vincent@vinc17.net>

	[doc/algorithms.tex] Add some ToUnicode mappings.

	This fixes some regressions compared to old LaTeX versions (in 2009).

2021-10-24  Vincent Lefevre  <vincent@vinc17.net>

	doc/mpfr.texi: Updated the month.

2021-10-24  Vincent Lefevre  <vincent@vinc17.net>

	mpfrlint: fixed git usage.

	The change done in 52138701d9b920d608871b20d4bee30f59adede6 wasn't
	working when the latest commit wasn't on "doc/mpfr.texi".

2021-10-24  Vincent Lefevre  <vincent@vinc17.net>

	mpfrlint: update for git.

	This is used to check that the doc/mpfr.texi UPDATED-MONTH value is
	up-to-date by comparing it with the date of the latest commit.

2021-10-24  Vincent Lefevre  <vincent@vinc17.net>

	In mpfr.texi, added a "@." to avoid a warning from mpfrlint.

	Note: This is not needed at the end of a paragraph like here, but
	this is a general warning, just in case text is added or moved.

2021-10-24  Vincent Lefevre  <vincent@vinc17.net>

	mpfr.texi cleanup: removed the obsolete @refill command.

	This command was needed in the past, but it now generates a warning
	"@refill is obsolete" (as of Texinfo 6.8 - 2021-07-03).
	It is no longer needed, as least since Texinfo 4.2:
	https://ftp.gnu.org/old-gnu/Manuals/texinfo-4.2/html_node/Refilling-Paragraphs.html

2021-10-19  Vincent Lefevre  <vincent@vinc17.net>

	Added .mailmap file.

2021-10-17  Vincent Lefevre  <vincent@vinc17.net>

	Added a TODO/FIXME to add Git information to "make check".

	Partial update of doc/README.dev due to the migration to Inria GitLab.

	Updated README due to the migration to Inria GitLab.

2021-09-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mparam_h.in] Updated comment about GCC.

2021-09-24  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Update about MinGW: the old mingw.org website no longer
	exists, and MinGW has actually been replaced by Mingw-w64, which
	is for both 32-bit and 64-bit Windows.

	[README] Updated URLs.

2021-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	missing url

	added new preprint

2021-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2021-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected garbled mpfr_set* description.

	Thanks to Rob for noticing:
	  https://sympa.inria.fr/sympa/arc/mpfr/2021-09/msg00003.html

	The cause is a sentence that was inserted at the wrong place in r8225
	(2012-06-25).

2021-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/inp_str.c] Added a FIXME on a deprecated use of ungetc.

2021-09-13  Vincent Lefèvre  <vincent@vinc17.net>

	Autoconf / AX_PTHREAD related update and cleanup.

	* m4/ax_pthread.m4: update to AX_PTHREAD 31, fixing a change
	  from AX_PTHREAD 29, which has eventually been regarded as
	  a bug (workaround in r14481).
	* configure.ac: removed the now unneeded AC_CANONICAL_TARGET;
	  updated the corresponding comment.

2021-09-09  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] More about intrinsics (e.g. _addcarry_u64).

	[TODO] + use intrinsics when available (needs a configure test).

2021-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] In a comment with a GMP_CHECK_RANDOMIZE value, mention
	the SVN revision and date, as this value may no longer be valid in the
	future (when tests are added or changed).

	[tests/tests.c] Fixed bad_cases when y is ±0 (rare case).

2021-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated/reduced note about MinGW and stdio.

2021-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Updated information about MinGW and the formatted output
	functions (printf, etc.).

	Thanks to Pali Rohár for the information about -std=c89.

2021-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_set_d128.c] Removed a useless C99 comment, which makes
	the MPFR build fail with "i686-w64-mingw32-gcc -std=c89" (e.g. via
	./configure --host=i686-w64-mingw32, and -std=c89 in CFLAGS).

	[tests/tsprintf.c] In locale_da_DK(), also try da_DK.utf8 (preferably):
	in Debian/unstable, da_DK no longer exists.

2021-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Corrected latest change (typography).

	[doc/mpfr.texi] Detail the mpfr_min and mpfr_max description.

2021-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_flt.c] Avoid a warning about unused function equal_flt
	when HAVE_SUBNORM_FLT is not defined.

	[tests/tget_flt.c] Code style: replaced "… == 0" by "! …" on
	the Boolean _p functions.

2021-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_flt.c] Removed bug_icx (duplicate test).

	What was tested was just mpfr_get_flt on a NaN mpfr_t. But this was
	already tested in main(). And one gets the same result and error with
	icx (without -fp-model=strict). Moreover, the old test was correctly
	protected by "#if !defined(MPFR_ERRDIVZERO)", needed because NaN is
	defined by 0.0 / 0.0.

2021-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_flt.c] In bug_icx: replaced mpfr_set_flt, whose float
	argument was yielding an underflow (not portable), by mpfr_set_si_2exp
	(it is mpfr_get_flt that is tested, not mpfr_set_flt).

	[tests/tget_flt.c] Added FIXME for test added in r14552.

	[tests/tget_flt.c] Portability correction.

2021-08-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	need -fp-model=strict for icx

2021-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Mention "[[noreturn]]".

2021-07-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ieee_floats.h] URL update (http → https).

2021-07-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Detect when the return value of fclose() or fflush()
	is compared with -1 instead of EOF.

2021-06-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Portability correction (EOF is not necessarily -1).

2021-06-21  Vincent Lefèvre  <vincent@vinc17.net>

	Punctuation (missing comma after "however").

	[doc/README.dev] No longer use /tmp in examples so that the reader is
	not encouraged to use it. Punctuation.

2021-06-08  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Fixed subnormal detection (issue found with icx).

2021-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_d.c] Improved error messages.

2021-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_d.c] Error message when check_inf_nan() fails for NaN.

	Note: With "icx -O2" (at least), 8 tests are now failing with
	Intel(R) oneAPI DPC++ Compiler 2021.2.0 (2021.2.0.20210317).
	But no failures when the compiler is invoked as "clang".

2021-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2021-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] some figures about slowdown with C++ interface

2021-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/data/j1] added more tests

	[tests/tests.c] fixed bug introduced in r13787, which invalidated data_check
	in some cases

2021-05-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Completed mpfr_fmodquo and mpfr_remquo description.

	[src/rem1.c] Improved comments.

2021-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Cosmetic revert of blank line removal in r14519.

2021-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed buffer_cat: replaced incorrect assertion len > 0
	by a test.

	Note that len == 0 is possible when outputting an integer 0 (either a
	native one or mpfr_prec_t) with precision field = 0. The consequence
	of this bug:
	  * In debug mode (MPFR_ASSERTD assertion checking), one would get an
	    assertion failure.
	  * Otherwise, there should be no side effects since the code was valid
	    for len == 0, possibly except with LTO (very unlikely, though).

	This incorrect assertion was added on 2009-03-13 in r6099.

2021-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Similarly to r14514, added tests of native integer 0
	with precision field 0 (also yields a call to buffer_cat with len = 0).

	[tests/tsprintf.c] For various test functions, changed the return type
	from int to void (when the value is never used).

2021-05-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Updated comment about the output for the 'a'/'A'
	conversion specifier.

	[doc/mpfr.texi] Formatted output functions (mpfr_*printf): completed
	the specification concerning the precision (this was needed because
	the conversion specifier 'b' does not exist in C).

2021-05-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Added a comment about the output for the 'a'/'A'
	conversion specifier, which is completely unintuitive. FIXME?

	[doc/mpfr.texi] Punctuation.

	[tests/tsprintf.c] Added tests of specifier 'P' with precision field 0.

2021-05-11  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] More about mpfr_fda / mpfr_fds.

	[TODO] + Fused divide-add and fused divide-subtract (mpfr_fda, mpfr_fds).

2021-05-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi,src/mpfr.h] Detail about the mpfr_pown implementation.

2021-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] added missing mpfr_pown (alias for mpfr_pow_sj)

	[manual] added mpfr_powm in NEWS
	(https://sympa.inria.fr/sympa/arc/mpfr/2021-05/msg00000.html)

2021-05-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month (due to r14505).

2021-04-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sin.c] Added a TODO about range reduction.

2021-04-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Check more infinity strings.

2021-04-26  Vincent Lefèvre  <vincent@vinc17.net>

	[doc] Update about "case insensitive" and issue with Turkish locales
	for "I" / "i".

	  * mpfr.texi: added "with the rules of the C locale" in the
	    mpfr_strtofr description.
	  * README.dev: completed information about Turkish locales.

2021-04-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpowr.c] Added generic tests.

	[src/exceptions.c] Corrected latest comment.

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exceptions.c] Replaced comment about logging (the issue was due to
	the mpfr_check_range macro).

	[src/exceptions.c] Completed comment about a logging issue.

	[src/exceptions.c] Added a comment about a logging issue.

	[src/mpfr-impl.h] Logging: output the flags at "IN" and "OUT".

	[tests/tsgn.c] Also test in a very reduced exponent range.

	[tests/tsgn.c] Also test the flags.

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Fixed bug in mpfr_get_str_ndigits introduced in r14494.

	Note: the issue (an uninitialized variable) was detected by GCC 6.5.0;
	recent GCC versions miss the -Wmaybe-uninitialized warning.

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	mpfr_get_str_ndigits: added an assertion / exploitable compiler hint.

	[src/get_str.c] Improved mpfr_get_str_ndigits code structure.

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	In various functions, use mpfr_equal_p() instead of mpfr_cmp() == 0.

	Note: In these cases, the test should be false if one of the arguments
	is NaN (it is not always clear whether NaN is impossible, but just in
	case, mpfr_equal_p is safer, in particular if the code around changes;
	and this is more readable too).

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Use mpfr_equal_p() instead of mpfr_cmp() == 0.

	[tests] Added tpowr to svn:ignore property.

2021-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	Fixed bug in mpfr_get_str_ndigits.

	* src/get_str.c: use MPFR_SAVE_EXPO_MARK / MPFR_SAVE_EXPO_FREE to fix
	  2 issues in mpfr_get_str_ndigits: the inexact flag could be raised
	  (bug reported by Pierre Chatelier[*]); undefined behavior in a very
	  reduced exponent range.
	* tests/tget_str.c: check the above issues in the tests.

	[*] https://sympa.inria.fr/sympa/arc/mpfr/2021-04/msg00000.html

2021-04-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added cast to int for __LINE__ in formatted output.

	The standard just says that __LINE__ in an integer constant. So its
	type might be larger than int, even though the value is representable
	in an int (like in MPFR). This concerns logging code, only available
	for GCC compatible compilers, so that there should not be any issue
	without the cast, but just in case...

2021-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/thypot.c] added one test

2021-03-19  Vincent Lefèvre  <vincent@vinc17.net>

	Added m4/ax_pthread.m4 file, and related updates.

	Added m4/ax_pthread.m4 from
	  https://github.com/autoconf-archive/autoconf-archive
	and updated:
	  * acinclude.m4 (in particular, set CXX and CXXFLAGS)
	  * doc/README.dev

2021-03-19  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Avoid an issue with ordering of macros we don't use
	explicitly, which appears with ax_pthread.m4 29, i.e. with
	  https://github.com/autoconf-archive/autoconf-archive/commit/2567e0ce0f3a11b535c6b527386197fb49ff172b

2021-03-18  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Added a comment about AX_PTHREAD.

2021-03-18  Vincent Lefèvre  <vincent@vinc17.net>

	Get rid of obsolescent AC_HEADER_TIME. Cleanup about sys/time.h usage.

	The AC_HEADER_TIME macro is obsolescent in autoconf 2.69 (2012),
	and autoconf 2.71 (2021) outputs a warning, which makes autogen.sh
	fail due to "--warnings=all,error", so let's avoid the warnings.
	This macro defines TIME_WITH_SYS_TIME, used only in tests/tests.c
	(but actually not needed). We actually have two cases:
	  1. HAVE_GETTIMEOFDAY is defined: we use gettimeofday(), which
	     needs <sys/time.h>.
	  2. Otherwise: we use time(), which needs <time.h>.

	Based on that, we can simplify the condition in tests/tests.c for
	the inclusion of time-related headers, and we no longer need to
	check the <sys/time.h> availability. If gettimeofday() is defined
	but <sys/time.h> is not available (which shouldn't occur), then
	the current gettimeofday() usage may be incorrect anyway.

	Changes:
	  * acinclude.m4:
	      - no longer use AC_HEADER_TIME;
	      - no longer check the sys/time.h header.
	  * tests/tests.c: simplify the inclusion of time-related headers.

2021-03-18  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Detect mpn_mul_n with identical 2nd and 3rd arguments,
	which can be replaced by the faster mpn_sqr.

2021-03-16  Vincent Lefèvre  <vincent@vinc17.net>

	Replaced "intensional" by "intentional" in comments.

	Untabify and remove trailing spaces.

2021-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/rec_sqrt.c] replace a call to mpn_mul_n with identical arguments by
			 a call to mpn_sqr + similar changes in other files
			 (thanks Fredrik Johansson)

	[tests/trec_sqrt.c] added timing test

2021-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[src/mpfr.h] Comment: no need to write "user" with uppercase letters.

2021-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tset_si.c,tset_sj.c}] Fix when -DMPFR_USE_NO_MACRO is used.

	The mpfr_get_exp() function checks that the argument is a regular
	number, but the corresponding macro doesn't. The test code was
	calling mpfr_get_exp() on 0, thus failed with MPFR_USE_NO_MACRO
	defined. Here, the code was correct with the macro, because the
	value was not used for the particular case 0.

	This is fixed by testing 0 earlier (and doing a goto, but the code
	has fewer tests and should be simpler to understand). Moreover,
	mpfr_get_exp has been replaced by MPFR_GET_EXP, so that the argument
	is checked with --enable-assert.

2021-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{texceptions.c,tset_exp.c}] Forgot to protect the tests with
	casts to "void *", invalid in C++ (completing r14460 and r14461).

2021-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	Clarification about the custom interface and macros.

	* doc/mpfr.texi: added some text in Section "Custom Interface".
	* src/mpfr.h: replaced the remaining FIXME by another comment.

2021-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Ignore GCC's -Wc++-compat in the tests that are invalid in C++
	(these tests are enabled only if __cplusplus is not defined).

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] In C++, do not cast to "void *" in the tests of macros.

	These casts make the build of these tests fail with a C++ compiler.
	But this means that the use of macros will not introduce any issue
	concerning the type of the arguments, i.e. with a C++ compiler, the
	tests are still complete after this change.

	However, GCC's -Werror=c++-compat still cannot be used.
	To avoid this issue, diagnostic pragmas will be needed.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Fixed mpfr_set macro (now only available with __GNUC__).

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset.c] Added tests of the mpfr_set macro.

	Without MPFR_USE_NO_MACRO, the compilation currently fails because
	the second argument is not converted to mpfr_srcptr when MPFR_SIGN
	is applied.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Fixed mpfr_copysign and mpfr_signbit macros.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	Added tests of mpfr_copysign, mpfr_setsign and mpfr_signbit macros.

	Without MPFR_USE_NO_MACRO, the compilation of these tests in tcopysign.c
	currently fails because some arguments are not converted to mpfr_srcptr.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ubf.c] Forgot a cast from UBF pointer to mpfr_t pointer.

	This became visible with the fix of the mpfr_get_prec macro in r14454.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Fixed mpfr_get_prec and mpfr_get_exp macros.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	Added tests of mpfr_get_prec and mpfr_get_exp macros.

	Without MPFR_USE_NO_MACRO, the compilation of these tests
	in texceptions.c and tset_exp.c currently fails because
	the argument is not converted to mpfr_srcptr.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Better implementation of macros changed in r14451.
	__GNUC__ is no longer needed.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Fixed some macros implementing functions.

	Macros mpfr_nan_p, mpfr_inf_p, mpfr_zero_p and mpfr_regular_p were
	incorrect since they yielded a compilation error when the argument
	was of type void *, for instance. Their definition as macros is now
	available only with __GNUC__.
	The tisnan test r14448 should no longer fail.

	Also added a comment for mpfr_sgn, which is correct since documented
	as a macro.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tisnan.c] Added commented code for testing compilation errors.

2021-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr.h] fixed typo

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tisnan.c] Check that when mpfr_nan_p, mpfr_inf_p, mpfr_number_p,
	mpfr_zero_p and mpfr_regular_p is implemented as a macro, it behaves
	like a function.

	[src/mpfr.h] Added a comment and a FIXME for functions implemented
	as macros.

2021-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	Reverted r14445: This is about functions implemented as macros, and
	in this case, a macro must behave like a function.

	In particular, each argument must be evaluated one time exactly.
	Macros that behave differently will need to be fixed.

	Tests should also be added like the one in tests/tset_si.c with the
	comment:

	  /* Note: the ++'s below allow one to check that the corresponding
	     arguments are evaluated only once by the macros. */

2021-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] document that functions defined as macros might evaluate
			their arguments several times
	(see https://sympa.inria.fr/sympa/arc/mpfr/2021-03/msg00007.html)

	[src/mpfr.h] fixed typo

2021-03-04  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Clarification.

	[TODO] Updated item on pkg-config due to a bug in pkg-config.

	[TODO] Added "add some option to use pkg-config...".

2021-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invsqrt_limb.h] use "unsigned short" for table T[] instead of mp_limb_t.
	On araignee.loria.fr, this saves about 1 cycle, when GMP 6.2.1 and MPFR are
	configured with --disable-shared, using mbench.

	Before this change (medium of 5 runs, with turbo-boost disabled):
	$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
	 mpfr_sqrt:         48 /    53.39 /    60
	$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
	 mpfr_sqrt:         75 /    81.44 /    89

	After this change:
	$ numactl --physcpubind=0 ./mfv5 -i0 -p53 mpfr_sqrt mpfr_sqrt mpfr_sqrt
	 mpfr_sqrt:         48 /    52.37 /    60
	$ numactl --physcpubind=0 ./mfv5 -i0 -p113 mpfr_sqrt mpfr_sqrt mpfr_sqrt
	 mpfr_sqrt:         75 /    80.27 /    88

2021-02-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpfr-test.h] Added mpfr_cmp_si_2exp0 macro (check NaN).
	[tests/tj1.c] Replaced mpfr_cmp_si_2exp by mpfr_cmp_si_2exp0.

	[tests/tdigamma.c] Use mpfr_cmp_ui0 to detect NaN.

	[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.

2021-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/jyn_asympt.c] fixed bug when s=0 at the end of the for loop
	[tests/tj1.c] added corresponding non-regression test

	[src/digamma.c] fixed a bug in mpfr_digamma_reflection when the approximations
			of Digamma(1-x) and Pi*cot(Pi*x) cancel exactly
	[tests/tdigamma.c] added corresponding non-regression test

	renamed mpfr_compound to mpfr_compound_si, since in C2X, compoundn takes
	an intmax_t and not a long, thus we can later implement mpfr_compoundn
	taking as input an intmax_t

2021-02-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/texpm1.c] Improved special tests.

2021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/pow_sj.c] removed spurious comment

2021-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{pow_sj.c,pow_uj.c}] Added missing "#ifdef _MPFR_H_HAVE_INTMAX_T".

	[doc/mpfr.texi] General cleanup, in particular related to the IEEE 754
	standard. Added IEEE Standard 754-2019 to the references.

	[src/pow_{si,sj,ui,uj}.c] Fixed logging for mpfr_pow_{sj,uj}.

	[src/pow_uj.c] untabify

	[tests/tpow.c] Replaced mpfr_cmp_ui by versions that can detect NaN.
	Note: this is particularly important to check that pow(NaN,0) returns 1,
	not NaN.

	[src/pow_uj.c] Some corrections in the mpfr_mpz_set_uj helper function,
	still with limitations (which could be avoided by sharing code with
	mpfr_set_uj_2exp).

2021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	forgot to commit those files

	added mpfr_powr

2021-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{pow_si.c,pow_ui.c}] untabify

2021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_pow_uj and mpfr_pow_sj
	now mpfr_pown is an alias for mpfr_pow_sj

2021-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi,src/mpfr.h] Added a FIXME for mpfr_pown, which should
	be an alias of mpfr_pow_sj (not implemented yet) to follow ISO C2x,
	where pown is defined with intmax_t n.

2021-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_pown (alias for mpfr_pow_si)

2021-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Updated comments on the types for mpfr_prec_t/mpfr_exp_t.

	  * For mpfr_prec_t, removed the comment saying that under Windows 64,
	    "long long" could be used (this would imply that mpfr_prec_t and
	    mpfr_exp_t will not fit in a long, and this is not supported yet,
	    see below).

	  * For mpfr_exp_t and _MPFR_EXP_FORMAT == 4, changed an unclear note
	    and added other information; in particular, this value is currently
	    not supported since the MPFR code assumes that mpfr_exp_t fits in a
	    long.

2021-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added texp2m1 and texp10m1 to svn:ignore property.

	[src/jyn_asympt.c] Use mpfr_set4 instead of mpfr_set or mpfr_neg.

	[tests/tj0.c] Latest test: also check the flags.

	[src/digamma.c] Added a comment about the bug fixed in r14399.

	[tests/tdigamma.c] Latest test: also check the flags.

	[tests/tdigamma.c] Moved the r14399 test to its own test function.
	Note: for this one, there is no need to use the maximum exponent range.

	[src/digamma.c] Use MPFR_NOTZERO instead of !MPFR_IS_ZERO.

2021-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/jyn_asympt.c] fixed bug when sin(z)+cos(z) or sin(z)-cos(z) round to 0
	[tests/tj0.c] added corresponding non-regression test

	[src/digamma.c] fixed bug in mpfr_digamma_positive when t-u is zero
	[tests/tdigamma.c] added corresponding non-regression test

2021-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/digamma.c] Fix: increased GUARD from 20 to 30.
	[tests/tdigamma.c] Added 2 precisions for which GUARD=20 is not
	sufficient, yielding a "too much memory" error.

2021-02-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/digamma.c] Punctuation in a comment.

2021-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/digamma.c] fixed bug20210206

2021-02-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/digamma.c] Added a FIXME for mpfr_digamma_positive: q can be
	too large, e.g. equal to the maximum exponent!

	[src/digamma.c] In mpfr_digamma_positive, log the value of q.

	[src/digamma.c] In mpfr_digamma_positive, do not compute the precision q
	until we are certain that it will be used.

	[src/digamma.c] In mpfr_digamma_positive, added an assertion, as a
	precision is set from the exponent of x, and I suppose that it may
	be larger than MPFR_PREC_MAX when mpfr_exp_t > mpfr_prec_t.

	[tests/tdigamma.c] Added testcase for a bug found by test_generic.

	[tests/tgeneric.c] Added debug info.

2021-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp2m1.c] Use block-level flags.

2021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new function mpfr_exp10m1

	[tests/texp2m1.c] added a test for exact values

2021-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added mpfr_mul_uj and mpfr_mul_sj.

	[src/log.c] Optimization: avoid a temporary variable for a*2^m;
	use an alias to a instead. In corner cases, this could yield a
	new internal TMD for the mpfr_div when the precision of a is
	very large, but this is avoided by changing the RNDN to RNDF.
	The error bound of 2 ulp on the mpfr_div should still be valid
	(it should now actually be 1 ulp).

2021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new function mpfr_exp2m1 for 2^x-1

2021-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Fixed length modifier in error messages.

	[src/log10p1.c] In mpfr_log10p1_small: an "else" case is better than
	a "goto"; do not initialize inex to an arbitrary value.

	[src/compound.c] Exact cases: additional detail in the comment.

	[src/compound.c] Exact cases: this is simpler without a separate
	function (the t = 0 was artificial). Added full explanations.

2021-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/compound.c] removed FIXME corresponding to previous commit

	[src/compound.c] fixed infinite loop for exact results like compound(0.5,2)
			 which are not powers of 2

2021-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/compound.c] Fixed 2 issues with mpfr_compound_near_one:
	  * this function must be called in the extended exponent range,
	    to be sure that 1 is representable;
	  * it wasn't setting the inexact flag, and this is now done via
	    mpfr_check_range.

	[src/compound.c] Added missing MPFR_ZIV_FREE before the "return" in
	the Ziv loop.

	[tests/tcompound.c] Added generic tests with n = 2 and n = 3.
	They trigger a failure: bad inexact flag for mpfr_compound2.

	[src/compound.c] Added a FIXME: possible infinite loop when the result
	is exact.

	[src/compound.c] Optimize the easy case n = 1.

	[src/compound.c] Special cases: fixed compound(-Inf,0) and improved
	comments.

	[tests/tcompound.c] More tests of compound(x,n) for x < -1, showing
	a failure on compound(-Inf,0).

	[doc/README.dev] Note that the logging feature (--enable-logging)
	needs GCC to build MPFR, and it is not available with mini-gmp,
	since mpfr_fprintf cannot be defined with mini-gmp.

2021-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcompound.c] Fixed a test in the case mpfr_exp_t < long.

	[tests/tcompound.c] Corrected an error message.

	[src/compound.c] Fixed bug found by clang:
	compound.c:32:29: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
	  if (rnd_mode == MPFR_RNDN || MPFR_RNDF
	                            ^  ~~~~~~~~~

	[tests/tatan2u.c] Fixed a bug (as of C99, for *decimal* constants, one
	must use a suffix that contains "U" if the constant cannot be signed).

	[tests/tcompound.c] Corrected the conditions of a test for machines
	with 32-bit long. Added comments.

	[tests] Added tlog10p1 to svn:ignore property.

	[tests/tatan2u.c] Improved comment in bug20210203 about type sizes.

	[tests/tatan2u.c] Make sure that the bug20210203 test is run only
	when the value for u is representable.

2021-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added section number

	[src/compound.c] fixed case n < 0 and underflow
	[tests/tcompound.c] added corresponding non-regression tests

	compound(NaN,0) is 1

2021-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/compound.c] Correction for n = LONG_MIN. Added FIXMEs.

2021-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcompound.c] fixed comment

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan2u.c] fixed error analysis

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/compound.c] Portability.

	[tests/tatan2u.c] Make sure that 64-bit constants are supported before
	using one.

	[src/log10p1.c] Improved checking / debugging support.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tatan2u.c] added a test which currently fails

	[src/log2p1.c] added note about underflow

	added a new function mpfr_log10p1 to compute log10(1+x)

	[tests/tlog2p1.c] set the precision locally to one test

	[doc/mpfr.texi] document atan2u and atan2pi

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typography.

	[doc/mpfr.texi] In Section "Added Functions", do not put the patchlevel
	in MPFR versions (changed "4.2.0" to "4.2").

	[src/log2p1.c] Bug fix: memory accessed after it is cleared.

	[src/log2p1.c] More logging.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] document mpfr_compound

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_prec.c] Log the precision.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/compound.c] completed the general case
	[tests/tcompound.c] added one hard-coded test

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added tcompound and tlog2p1 to svn:ignore property.

	[tests/tlog2p1.c] Use mpfr_cmp_si0 to detect NaN.

	[tests/tcompound.c] Do not use mpfr_printf in the tests.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/log2p1.c] use ULSIZE as in atan2u.c

	[src/atan2u.c] better explain the choice of prec in mpfr_atan2u_aux3

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/compound.c] Fixed logging.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan2u.c] simplified code

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/atan2u.c] Support unsigned long != 64-bit type. Avoid a warning.

2021-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tlog2p1.c] added tests for exact cases

	added log2p1 and compound (mpfr_compound is not finished yet)

	[src/log1p.c] fixed comment

	[src/atan2u.c] deal with underflow and overflow in y/x

2021-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/atan2u.c] Added a FIXME: the code is incorrect if y/x yields
	an overflow or an underflow.

	[src/atan2u.c] Fixed 2 bugs in mpfr_atan2u_aux2. Minor changes.

	[src/atan2u.c] Minor corrections in comments.

2021-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added tatan2u and tatanu to svn:ignore property.

	[tests/tatan2u.c] Do not use mpfr_printf in the tests.

	[src/atan2u.c] Use MPFR_RET_NEVER_GO_HERE.

	[tests]
	  * tgeneric.c: cleanup about the type of the arguments; added support
	    for functions with 3 arguments (x1,x2,u), such as mpfr_atan2u.
	  * tatan2u.c: enabled the generic tests (test_generic).

2021-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan2u.c] fixed atan2u with respect to the four quadrants
	[tests/tatan2u.c] added corresponding non-regression tests

	added mpfr_atan2u (work in progress)

	[src/atanu.c] fixed bug for u=0
	[tests/tatanu.c] added non-regression test case

2021-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	Changed "plus/minus infinity" to "positive/negative infinity".

	[tools/mpfrlint] In the "+/- infinity" test (just added), also check
	the doc/algorithms.tex file.

	[tools/mpfrlint] Added a test for the use of "plus/minus infinity"
	instead of "positive/negative infinity".

	[doc/mpfr.texi] Minor corrections related to infinity. The IEEE 754-2019
	standard says "positive/negative infinity", not "plus/minus infinity".

2021-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typos.

	[{src,tests}/Makefile.am] Untabified values of variables to avoid
	wrapping in diffs on 80 columns.

2021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] asinpi, acospi and atanpi are done (and their *u variants)

	[src/atanu.c] added comment

	[src/acosu.c] simplified the code when x is tiny

	added mpfr_atanu and mpfr_atanpi

2021-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Correction about mpfr_get_* and NaN.

2021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/asinu.c] improved a comment

	[src/asinu.c] fixed typo

	[src/asinu.c] resolved FIXME
	[tests/tasinu.c] added more underflow tests

2021-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c] Replaced a useless goto.

	Code readability.

2021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_ld.c] added comment about LONGDOUBLE_NAN_ACTION

2021-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typography.

	[doc/mpfr.texi] Updated the month.

2021-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_ld.c] forgot get_ld in previous commit

	make it clear that we don't propagate the sign bit in mpfr_get_d and mpfr_set_d
	and similar functions for binary32, decimal64 and binary128

	added asinu and asinpi

	[src/asinu.c] return NaN for u=0 and |x| > 1
	[tests/tasinu.c] added more tests

	[src/acosu.c] for u=0 and |x| > 1, return NaN
	[tests/tacosu.c] added corresponding test

2021-01-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Use RND_LOOP.
	Changes with:
	  perl -pi -e 's/^( *)for *\((\w+) *= *0 *; *\2 *< *MPFR_RND_MAX *; *\2 *\+\+\) *$/\1RND_LOOP (\2)/' *.c

	[tests] Added tacosu and tasinu to svn:ignore property.

	[tests/mpfr-test.h] Added mpfr_cmp_si0 macro (check NaN).
	[tests/tasinu.c] Replaced mpfr_cmp_ui / mpfr_cmp_si by the ...0 version.

	[tests/tasinu.c] Replaced mpfr_cmp by !mpfr_equal_p.

	[tests/tacosu.c] Replaced mpfr_cmp by !mpfr_equal_p.

	[tests/tacosu.c] Fixed failing test with --with-mini-gmp
	and -DMINI_GMP_LIMB_TYPE=int under Linux/x86_64.

	[tools/mpfrlint] Detect the use of mpfr_set_emin / mpfr_set_emax
	when set_emin / set_emax could be used (checking failures).

	[tests/tdiv.c] Use set_emax rather than mpfr_set_emax with a test.

	[tests/*.c] When not in a test, use set_emin and set_emax rather than
	mpfr_set_emin and mpfr_set_emax, in order to check failures.
	Done with: perl -pi -e 's/^ *\Kmpfr_(set_e(min|max) *\()/\1/' *.c

	[tests/tests.c] Improved error message in set_emin / set_emax to
	better support platforms where mpfr_exp_t > long int.

	[tests/tcot.c] Use set_emin and set_emax rather than mpfr_set_emin and
	mpfr_set_emax with a test (test done in set_emin / set_emax).

	[src/{acosu.c,asinu.c,cosu.c,sinu.c,tanu.c}] Typos in comments.

	[tests/tasinu.c] Use set_emin rather than mpfr_set_emin.

2021-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/acosu.c] fixed case x=-1/2 which was wrong
	[tests/tacosu.c] added test cases

2021-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tacosu.c] reduced number of generic tests
	[tests/tasinu.c] likewise

	[src/asinu.c] fixed case x=-1 and underflow case
	[tests/tasinu.c] added test for underflow

2021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added asinu (work in progress, not yet usable)

	[doc/mpfr.texi] improve description of mpfr_acosu

	[src/acosu.c] fixed another typo

	[src/acosu.c] fixed typo

2021-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/acosu.c] Simplified code.

	[tests/tgeneric.c] Added a cast for printf.

	[tests/tgeneric.c] Corrected indentation.

	[tests/tgeneric.c] Corrected indentation.

2021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added cosu and cospi in the manual and NEWS

	new function mpfr_acosu (still to be added in NEWS and mpfr.texi)

2021-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{cosu.c,sinu.c,tanu.c}] Function logging: added missing u.

	[TODO] LIA-2 URL after redirection (i.e. https).

2021-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added pointer to LIA-2

2021-01-26  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL,doc/update-faq,tools/announce-text] With wget, use
	the --no-config option as the user's .wgetrc file may significantly
	change the behavior and possibly yield errors. See discussion at
	<https://lists.debian.org/debian-user/2021/01/msg01021.html>.

2021-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] update about powr, rootn and rsqrt

	[TODO] update about reserved cr_xxx names from C standard

2021-01-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{cosu.c,sinu.c,tanu.c}] Range reduction: improved a test, renamed
	a variable (e to p, as this is more like a precision), and updated
	comments, making the code and comments similar for these 3 functions.

	Added function logging for mpfr_fmod_ui and mpfr_sqrt_ui.

2021-01-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/memory.c] Call "fflush (NULL)" before abort() in order to flush
	all the output streams, in particular the log file (when there is one),
	so that setting MPFR_LOG_FLUSH (which may be inefficient) is not needed
	to debug tests that end with a memory error.

	This fixes a regression with glibc 2.27+: the streams are no longer
	flushed by abort(), as permitted by POSIX; see the abort(3) man page.

2021-01-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Fixed typo in mpfr_printf format from MPFR_LOG_FUNC for several
	functions.

	[doc/mpfr.texi] Completed mpfr_fmod_ui description.

	[src/cosu.c] Fixed bug when the reduced argument is 0.

	[tests/tcosu.c] Added tests that give a reduced argument equal to 0.

	[src/cosu.c] Fixed memory leak with very small reduced arguments.

2021-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcosu.c] increase nmax in test_generic call
	[tests/tsinu.c] likewise
	[tests/ttanu.c] likewise

2021-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tcosu.c,tsinu.c,ttanu.c}] For the generic tests, no need
	to reduce emax any longer, now that the fast range reduction has
	been implemented.

	[src/tanu.c] Implemented range reduction for mpfr_tanu.

	[src/{cosu.c,sinu.c}] Corrected the position of a comment.

	[src/cosu.c] Implemented range reduction for mpfr_cosu.

2021-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sinu.c] removed FIXME (done)

2021-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS,doc/mpfr.texi] For the new trigonometric functions mpfr_cosu,
	mpfr_sinu, mpfr_tanu, mpfr_cospi, mpfr_sinpi, mpfr_tanpi, removed the
	"experimental" mention. In mpfr.texi, also added missing functions to
	Section "Added Functions" (API Compatibility).

	[doc/mpfr.texi] Style consistency: more "[unsigned] long int"
	instead of just "[unsigned] long".

	[doc/mpfr.texi] Style: use always "[unsigned] long int" in prototypes
	rather than sometimes just "[unsigned] long".

	[NEWS,doc/mpfr.texi] New function mpfr_fmod_ui.

2021-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	Implemented range reduction for mpfr_sinu (and defined mpfr_fmod_ui).

	This is done by computing x mod u; and a new function mpfr_fmod_ui
	has been defined for this purpose. As mpfr_fmod_ui could be useful
	to the user, its declaration is put in src/mpfr.h, with the intent
	to document this new function later.

	In the src directory:
	  * Added fmod_ui.c file (mpfr_fmod_ui function) based on sqrt_ui.c
	    (hence the same copyright line).
	  * Makefile.am: added fmod_ui.c to libmpfr_la_SOURCES.
	  * mpfr.h: added mpfr_fmod_ui.
	  * sinu.c: implemented range reduction for mpfr_sinu.

2021-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsinu.c] Added tests where x/u is a "big" integer, so that
	the reduced argument is 0 (exactly).

	[tests/tsinu.c] Added a test on a large input such that x mod u may need
	more precision than x. This will be important to test range reduction.

	[src/sqrt_ui.c] Coding style.

	[src/{cosu.c,sinu.c,tanu.c}] Changed MPFR_PREC to MPFR_GET_PREC.

2021-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tcosu.c,tsinu.c,ttanu.c}] C90 compatibility for the tests with
	large inputs (added in r14236). Also avoid the hardcoded size by using
	the numberof() macro.

2021-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcosu.c] added hard-coded tests with large inputs
	[tests/tsinu.c] likewise
	[tests/ttanu.c] likewise

2021-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_ld.c] added pointer to "double double" format

2021-01-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc] Updated FAQ.html with update-faq.

2021-01-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2021 with
	  perl -pi -e 's/ (\d{4}-)?(2020)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh. Removed 2020 from the example in the doc/README.dev file.

	[src/mpfr-impl.h] Removed a now useless test on __clang__, corresponding
	to a bug fixed in Clang 3.4 (see <https://bugs.debian.org/705583>).

2020-12-20  Vincent Lefèvre  <vincent@vinc17.net>

	Optimize mpfr_abs, mpfr_copysign and mpfr_setsign in the case of reused
	argument, like what was already done for mpfr_neg: one can just set the
	sign and handle NaN instead of calling mpfr_set4.
	Completed tests/tcopysign.c to test with a reused argument.

	[src/cosu.c] Avoid a possible integer overflow (triggered by the tests
	with UBsan) from r14225.

2020-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed initial precision in sinu, cosu and tanu
	also in cosu, treat special case when 2*pi*x/u is small

2020-12-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgeneric.c] Removed the use of __func__ as it is not supported
	by ISO C90 (it was not really useful here, though).

	[tests/tcosu.c] Increased the maximum precision for test_generic and
	added a comment about this.

	[tests] Added tcosu, tsinu and ttanu to svn:ignore property.

	For the generic tests, output the number of normal cases and the total
	if the MPFR_TGENERIC_STAT environment variable is defined.
	Added description to the README.dev file.

	[tests/tcosu.c] Increased the number of generic tests. This should make
	the warning "Too few normal cases in generic tests" much less common.

	[tests]
	  * Added data/tan2pi: hardest-to-round cases of tanu with u = 1
	    in double precision, interval [0,1/4].
	  * ttanu.c: test tan2pi values with u = 1.

	[tests/ttanu.c] C89 compatibility.

2020-12-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Removed spurious blank line; .texi source reformat.

	[doc/mpfr.texi] Typography: "resp." must be followed by "@:".

	[doc/check-typography] Also check "resp.".

	[doc/mpfr.texi] Removed misplaced @tie{}.

2020-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] fixed another typo

	[doc/mpfr.texi] fixed typos

	added sinpi, cospi, tanpi

	added new function mpfr_tanu

	[src/sinu.c] improved comment

2020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sinu.c] added reference

	[src/sinu.c] fixed compiler warning
	[src/cosu.c] deal with other exact cases
	[tests/tcosu.c] added tests for other exact cases

	[src/sinu.c] fixed bug in detection of pi/6 and friends

2020-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] mpfr_cosu and mpfr_sinu: improved item.

2020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsinu.c] added more tests

	[src/sinu.c] fixed case where 2xpi/u is +/-pi/6 mod pi
	[tests/tsinu.c] added corresponding test case

2020-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests]
	  * Added data/{cos2pi,sin2pi}: hardest-to-round cases of cosu and sinu
	    with u = 1 in double precision, interval [0,1/2].
	  * tcosu.c, tsinu.c: test cos2pi and sin2pi values with u = 1.

	[tests/tests.c] test5rm(): mention test5rm in the error message.

	[src/{cosu.c,sinu.c}] Added function logging.

2020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new function mpfr_cosu

	[src/sinu.c] fixed typo in comment

	[tests/tsinu.c] fixed typos in comments

2020-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sin_cos.c] Code improvement:
	  * replaced a MPFR_PREC(c) by m since the precision of c was set to m;
	  * as a consequence, the initial precision of xr in the Ziv loop will
	    always be m (whether expx >= 2 or not), so that one can use this
	    precision for the mpfr_init2.

2020-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sinu.c] forgot to count the rounding error in mpfr_sin (t, t, MPFR_RNDA)

	[src/sinu.c] fixed issue with case t=0

2020-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{sin.c,sin_cos.c}]
	  * Do not initialize variables with the default precision, which
	    could have been set to a large value by the user; this would
	    be a waste of memory.
	  * In sin.c, do not initialize xr in the case where this variable
	    will not be used (in sin_cos.c, let's initialize it with the
	    minimum precision as it is used with different purposes).

	[src/{ai.c,yn.c}] Do not initialize variables with the default
	precision, which could have been set to a large value by the
	user; this would be a waste of memory.

	[tools/mpfrlint] Added a test to detect when mpfr_init or mpfr_inits is
	used, i.e. when a variable is initialized with the default precision.
	This should not be done as the default precision could have been set to
	a large value by the user, so that this is a waste of memory.

	[src/sinu.c] Correction: variables must not be initialized with the
	default precision, which could have been set to a large value by the
	user, and this would be a waste of memory.

2020-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sinu.c] Fixed 2 bugs:
	  * in case of underflow, the flags were not set;
	  * mpfr_odd_p(t) could be called with t = 0, which is unsupported.

2020-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sinu.c] fixed typo (thanks Jeffrey Sarnoff)

2020-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sinu.c] Added a FIXME: the range reduction should be done in this
	function (that's the whole point of sinu compared to sin, besides a
	smaller rounding error).

	[tests/tsinu.c] Added a FIXME concerning the size of the exponent.

	[doc/mpfr.texi] Typographic correction of math formulas.

	[doc/mpfr.texi] mpfr_sinu: corrections and improvements.

	[doc/mpfr.texi] Updated the month.

2020-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] added mpfr_sinu
	[doc/mpfr.texi] improve documentation of mpfr_sinu, and say it is experimental

	added mpfr_sinu (work in progress)

2020-12-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] Minor correction of a comment.

2020-12-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Added a comment about Intel's compiler ICC and the
	unsupported returns_nonnull attribute.

2020-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added an item to add "const" in prototypes in the manual.

	[doc/mpfr.texi] mpfr_subnormalize: define EXP(x) and PREC(x).

	[doc/mpfr.texi] More detailed beginning of "Nomenclature and Types",
	which now specifies the convention for the significand and the exponent.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Document the mpfr_srcptr type.

2020-10-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/talloc-cache.c] Check that malloc() doesn't return a null pointer
	(in order to avoid an error with GCC's -fanalyzer, dev version).

2020-10-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/invert_limb.h] Added a comment about r14171.

	[src/invert_limb.h] Fixed potential issues introduced in 14170.
	  * The code isn't valid with 16-bit int (allowed by ISO C). So,
	    make sure with MPFR_STAT_STATIC_ASSERT that unsigned int is
	    large enough for invert_limb_table2.
	    Note: since the code is under "#if GMP_NUMB_BITS == 64",
	    this is unlikely to affect any system in practice, as
	    GMP_NUMB_BITS == 32 (or 16, if supported) should be better
	    on such a system.
	  * Make sure that the "<< 11" shifts do not overflow.

2020-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invert_limb.h] patch from Alexei Sibidanov, which reduces memory usage,
	without degrading performance

2020-10-23  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Replaced WG14 N2405 reference by the new N2579.

2020-10-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.

	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.

	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.

2020-10-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated mpfr_rootn_ui description about "agree with
	the rootn function", now that IEEE 754-2019 is there (needed as
	rootn was underspecified in IEEE 754-2008, so that TS 18661-4
	incorrectly specified the case rootn(-inf, n even); see WG14 N2309
	from the C FP group for the correction).

2020-10-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed typo

2020-10-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a note about _Float128 vs long double.

	[src/mpfr-impl.h] Added a TODO for the numberof() macro: make it a
	constant expression and possibly change its type "long" to "ptrdiff_t".

	[doc/mpfr.texi] Minor changes in Section "Formatted Output Functions".

	[NEWS] Update.

	[doc/mpfr.texi] Section "API Compatibility", formatted output functions
	(mpfr_printf, etc.): completed r14155.

	[doc/mpfr.texi] Updated the month.

	[src/vasprintf.c] Improved comment for READ_INT.

2020-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	Fixed the formatted output functions (mpfr_printf, etc.) in the case
	the precision consists only of a period.
	  * doc/mpfr.texi: correction and clarifications (be closer to ISO C);
	    note the change in Section "API Compatibility".
	  * src/vasprintf.c: fixed the bug.
	  * tests/tsprintf.c: update.

2020-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Consistency: in prototypes, changed
	  mpz_t to mpz_ptr (mpfr-impl.h, pool.c);
	  mpfr_random_deviate_t to mpfr_random_deviate_ptr (random_deviate.c).

	Note: This completes the changes I had done in r14103 (2020-08-21) for
	mpfr_t. This time, the issue was detected by a GCC 11 snapshot, thanks
	to the -Warray-parameter option (included in -Wall), which was added
	on 2020-09-19 in GCC commit 6450f07388f9fe575a489c9309c36012b17b88b0.

2020-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Updated a comment.

	Added tests/gen-printf-dot-prec Perl script to generate a .c file
	showing printf and mpfr_printf output with:
	  * a missing precision field;
	  * a precision field with just a period (".");
	  * a precision field with an explicit precision 0 (".0").

2020-09-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_z_2exp.c] Fixed typo detected by GCC.

	[src/set_z_2exp.c] Fixed overflow/underflow detection in exponent ranges
	where emax < 0 or emin >= 0 (bug introduced in r14145).

	[tests/tset_z_2exp.c] Added some tests in a reduced exponent range (and
	improved existing tests).
	Note: Due to an incorrect change in set_z_2exp.c r14145, various tests
	are failing with mini-gmp (for which mpfr_set_z_2exp is used more often
	because a long does not fit into a limb) in unusual exponent ranges. So
	such tests were obviously missing in tset_z_2exp.c before this commit.

2020-09-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_z_2exp.c] Fix: avoid possible integer overflows.

	[tests/tset_z_2exp.c] Test a result.

	[doc/README.dev] Added how to convert an unsigned integer to the
	corresponding signed integer with the two's complement rule (i.e.
	modular arithmetic) but in a portable way.

	[tests] Updated svn:ignore property due to the rename in r14125.

2020-09-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_z_2exp.c] Added another test that fails with just
	"-m32 -fsanitize=undefined -fno-sanitize-recover".
	This corresponds to what is described in the FIXME in src/set_z_2exp.c
	(about the modified tnrandom.c test yielding an integer overflow).

	[tests/tset_z_2exp.c] Added a test that triggers an integer overflow
	in set_z_2exp.c with MPFR_CHECK_LARGEMEM=1 when MPFR is compiled with
	"-m32 -fsanitize=undefined -fno-sanitize-recover -D_MPFR_EXP_FORMAT=4"
	in CFLAGS:
	  set_z_2exp.c:71:26: runtime error: signed integer overflow:
	  134217726 * 32 cannot be represented in type 'long int'

2020-09-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp2.c] Added support for -D_MPFR_EXP_FORMAT=4 in the 32-bit ABI,
	i.e. 32-bit long, so that the MPFR compilation no longer fails due to
	a static assertion in this file. Note: many tests fail (not texp2),
	but at least this allows some testing of various functions.

2020-09-23  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.

	The change done in r13668 seems to be a bit wrong (at least unclear).
	This was done after finding
	https://fr.osdn.net/projects/mingw/lists/archive/users/2019-January/000199.html
	saying that __USE_MINGW_ANSI_STDIO became deprecated, during a
	discussion on the vsnprintf() behavior:
	https://gmplib.org/list-archives/gmp-bugs/2020-January/004716.html

	However, it seems that printf() conformity issues have completely been
	resolved only recently, in version 8.
	http://mingw-w64.org/doku.php says:
	  Version 8 has been released
	  v8.0.0: 2020-09-18
	  Notable changes:
	  [...]
	    * __USE_MINGW_ANSI_STDIO now automatically enabled in C99 and C11
	      mode when not using UCRT by Pali Rohár
	  [...]

	Compiling
	  #include <stdio.h>
	  int main (void) { volatile double d = -1.25; printf ("%e\n", d); }
	gives with mingw-w64 version 7: -1.250000e+000
	  and with mingw-w64 version 8: -1.250000e+00

	So, when testing MPFR with mingw-w64 version 8 but with GMP still built
	with mingw-w64 version 7 (and static libraries), one gets a failure in
	tsprintf:
	  Error in mpfr_vsprintf (s, "%e", ...);
	  expected: "-1.250000e+00"
	  got:      "-1.250000e+000"
	because the expected result has changed (it comes from sprintf used in
	the MPFR test, which is now ISO-compliant).

2020-09-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_z_2exp.c] Added a FIXME: possible integer overflow, which
	can be reproduced with a 32-bit ABI by defining MPFR_PREC_MAX as
	((mpfr_prec_t) ((((mpfr_uprec_t) -1) >> 1) - 63)) and in tnrandom.c,
	using "test_special (MPFR_PREC_MAX);".

2020-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mini-gmp] Say that the build with mini-gmp may require ISO C99+
	features (as "long long" is currently needed by src/get_ld.c in the
	case GMP_NUMB_BITS == 8).

	For consistency, changed "C89" to "C90" in comments of *.{c,h} files.

	[doc/mpfr.texi] Changed C89 to C90, as when mentioning ISO, one must
	say C90 (C89 is the ANSI version). The GCC manual uses "C90" rather
	than "C89", so this is probably better anyway.

	[src/get_ld.c] Bug fix with GMP_NUMB_BITS == 8 (thus mini-gmp) and
	32-bit long (e.g. with -m32 on x86_64).

2020-09-15  Vincent Lefèvre  <vincent@vinc17.net>

	Renamed some .c files for consistency:
	  src/get_z_exp.c     →  src/get_z_2exp.c
	  src/set_z_exp.c     →  src/set_z_2exp.c
	  tests/tset_z_exp.c  →  tests/tset_z_2exp.c
	and updated src/Makefile.am and tests/Makefile.am files.

	[src/random_deviate.c] The latest change r14123 was actually incorrect:
	the real issue was non-portable code (with an incorrect comment) to
	convert an unsigned integer to a signed, negative integer. Incorrect
	behavior could occur with some C implementations and/or when mpfr_exp_t
	does not have the same size as long. So, fixed this portability issue,
	and avoid an assertion failure in a very rare case.

	[src/random_deviate.c] Corrected an assertion. → Test failures.

	[tests/tests.c] Added a note about tests done in "src/init2.c".

	[src/init2.c] Check that __MPFR_EXP_MAX  == MPFR_EXP_MAX too.

	[tests/tget_z.c] Updated comment to mention that mpfr_get_z_2exp is
	tested by this file.

	[src/mpfr-mini-gmp.c] Fixed bug in gmp_urandomb_ui when the parameter n
	is equal to the width of unsigned long.
	Note: This case occurs in function random_deviate_generate() from
	src/random_deviate.c with a 32-bit ABI (thus 32-bit unsigned long)
	since n = W, which is defined as 32.

2020-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.c] Simplified gmp_randseed_ui (note: the code in
	r14114 and r14115 was not the intended one due to the wrong variable
	in srand).

	[src/mpfr-mini-gmp.c] Corrected latest change for gmp_randseed_ui.

	With mini-gmp, use the standard rand() and srand() functions instead of
	the POSIX (thus less portable) lrand48() and srand48().

2020-09-10  Vincent Lefèvre  <vincent@vinc17.net>

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
	Note: this includes URL updates.

	Updated URLs.

	[src/sub1sp.c] Updated a URL (http → https).

	[doc/README.dev] Updated URLs.

	[configure.ac] Updated a URL (http → https).

	[configure.ac] Updated a URL concerning the "Intel® C++ Compiler 9.0
	for Linux Release Notes" (the URL was not archived).

	Updated a freebsd.org URL (bug tracker).

2020-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src,tests] Consistency: in prototypes, changed
	  const mpfr_t  to  mpfr_srcptr
	  mpfr_t        to  mpfr_ptr
	(except for mpfr_t *), as this is equivalent (the array is converted
	to a pointer) and the mpfr_srcptr/mpfr_ptr form is the usual one.

2020-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a note about "string + integer" expressions.

	[tests/tsprintf.c] Replaced another occurrence of the code triggering
	the warning "adding 'int' to a string does not append to the string
	[-Wstring-plus-int]" with Clang (at least with 3.5 and above).

2020-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
	aarch64-unknown-linux-android):

	tsprintf.c:1613:27: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
	        strcat (buf, ",0" + (j % 3 != 0));
	                     ~~~~~^~~~~~~~~~~~~~

2020-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed a compiler warning found by Clang 10.0.1 on armv8-a (Samsung S8
	aarch64-unknown-linux-android):

	./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]
			(double) randlimb () / MPFR_LIMB_MAX;
	                                     ~ ^~~~~~~~~~~~~
	../src/mpfr-impl.h:1277:28: note: expanded from macro 'MPFR_LIMB_MAX'
	#define MPFR_LIMB_MAX     ((mp_limb_t) -1)
	                           ^~~~~~~~~~~~~~

2020-08-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] In the paragraph about cases that are hard to round,
	also mention potentially exact cases.

2020-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a paragraph on the issue with GCC and
	conversions between binary and decimal types.

	[src/get_d128.c] Updated FIXME comment (after r14087).

	[src/get_d128.c] Removed unused variable due to r14087.

	[src/get_d128.c] For the special values, avoid double to _Decimal128
	conversions, as for such conversions, GCC generates from 2 to 3 MB in
	the shared library when the decimal encoding is BID, and there will be
	no fix in GCC:
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173
	We now use computations on _Decimal128 constants directly, which could
	thus be done at compile time. We expect no problems similar to double,
	as the _Decimal128 implementation should follow the IEEE 754 rules.
	This commit should avoid a large part of the problem reported at:
	  https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21849&group_id=136

2020-07-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Improved an error message.

2020-07-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Simplified the d_trace and ld_trace functions:
	we do not need a union (with its potentional padding) as there
	are no aliasing issues with unsigned char.

	[tests/tset_ld.c] Fixed mpfr_out_str usage in error messages
	(see the change in r12520).

	[tests/tget_ld_2exp.c] Corrected a function call in an error message.

	[examples/version.c] "Compiler:" line: detect TCC (__TINYC__ macro).
	(merged r14078 from tests/tversion.c)

	[tests/tversion.c] "Compiler:" line: detect TCC (__TINYC__ macro).

2020-07-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d128.c] Updated the FIXME.

	[src/get_d128.c] Added a FIXME to work around GCC bug 96173.

2020-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/jyn_asympt.c] Added an assertion.

	[doc/README.dev] In the MPFR_CHECK_EXPENSIVE description, say that
	  --enable-assert=full should not be used (too expensive, not needed).
	[tests/tjn.c] Added a related comment for the expensive bug20200703
	  test (which may take more than 1 hour with --enable-assert=full).

	[tests/tjn.c] Corrected indentation.

2020-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tjn.c] added another test

	[src/jyn_asympt.c] fixed previous commit

	[src/jyn_asympt.c] partly solved the slowness of jn(733333,733333)

2020-07-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/jyn_asympt.c] Replaced some MPFR_EXP by MPFR_GET_EXP.

	[src/jyn_asympt.c] Added a log message.

	[tests/tjn.c] Added testcase for bug reported by Alex Coplan:
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96044
	mpfr_jn is very slow or doesn't terminate on (733333,733333).

2020-07-01  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] For MPFR 4.1.0, added an item saying that TLS can safely be
	(re-)enabled on Sparc.

2020-06-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpfr-test.h] Avoid a GCC bug on Sparc, at least when using TLS.
	The MPFR library itself is not affected, only a particular test. Normal
	code using the MPFR library should not be affected either, as the bug
	occurs when accessing __gmpfr_flags directly (and the public mpfr.h
	header file does not provide any macro that accesses an internal
	variable directly). So a workaround for the tests is the best solution.

2020-06-18  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Update for the next release.

	[src/mpfr-longlong.h] Mention applied patch (in r14035).

2020-06-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-longlong.h] Applied patch on
	  https://gmplib.org/list-archives/gmp-bugs/2020-June/004807.html
	to fix add_ssaaaa and sub_ddmmss on arm / aarch64 (after a
	reverse-merge of r14032 and r13997), in order to resolve
	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00017.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00059.html

	[tests/tcmp_ui.c] Added a comment about a failing test with tcc if
	one adds tcc support for macros using __builtin_constant_p in mpfr.h
	by testing __TINYC__.
	Bug report against tcc: https://savannah.nongnu.org/bugs/?58606

2020-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-longlong.h] disable buggy sub_ddmmss for aarch64

2020-06-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected and detailed the description of
	mpfr_get_str_ndigits.

	[src/get_str.c] Since the mpfr_get_str_ndigits function is in the
	public API, use MPFR_ASSERTN instead of MPFR_ASSERTD on the condition
	on the argument b in order to get an assertion failure (by default)
	if this condition is not satisfied.

2020-06-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] specify the range of b for mpfr_get_str_ndigits

2020-06-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdigamma.c] Increase the number of tests.

2020-06-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/digamma.c] fixed bug found while testing mpfr-4.1.0-rc1

2020-06-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/digamma.c] Added a FIXME.

	[src/digamma.c] Replaced mpfr_get_exp by MPFR_GET_EXP.

	[src/digamma.c]
	  * Replaced some MPFR_EXP by MPFR_GET_EXP to check that the MPFR number
	    has an exponent (i.e. it is not a special value).
	    → Assertion failure in tdigamma (on x86_64).
	    Note: this might be the cause of an unexpected loop (infinite loop?)
	    on a Debian 10.4 POWER9 machine:
	      https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00025.html
	  * Added an integer overflow check on a precision.

2020-06-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] In a test specific to x86 extended precision, in case
	of incorrect result, detect whether Valgrind is used and one gets the
	result obtained with Valgrind due to
	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890215
	  https://bugs.kde.org/show_bug.cgi?id=421262
	(long double behaves as double); in this case, output a message without
	an error since Valgrind is the only cause of the miscalculation.

	[tests/tset_ld.c] bug_20160907 (tests on subnormals):
	  * Replaced an assertion by a test with detailed output.
	  * Corrected a value in a test, which did not match the comment.

	[tests] Skip tabort_defalloc1 and tabort_defalloc2 under Valgrind, as
	Valgrind complains due to the large allocation size.
	  * mpfr-test.h, tests.c: added tests_run_within_valgrind() function to
	    guess whether the test runs within Valgrind.
	  * tabort_defalloc1.c, tabort_defalloc2.c: skip the test (exit code 77)
	    if this function returns true.

	[configure.ac] Improvements concerning the default CFLAGS with GCC.
	  * Add -Wc++-compat option to CFLAGS with GCC ≥ 4.1 not in C++ mode.
	    Changes based on Bruno Haible's patch suggested at
	      https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html
	    (with some autoconf related fixes).
	  * Output the $CFLAGS value that is eventually used.

	[configure.ac] No longer add -Wc++-compat to CFLAGS when the compiler
	is GCC not in C++ mode (reverting the change done in r13406) since this
	option is not available before GCC 4.1:
	  https://sympa.inria.fr/sympa/arc/mpfr/2020-06/msg00008.html

	[doc/mpfr.texi] ACM TOMS article: use the preferred DOI URL.

	[tests/tfpif.c] Updated comment about the bug detected on AIX.

	[tools/announce-text] For release candidates, automatically adapt the
	flow of the text.

	[NEWS] Updated mpfr.org URLs (http → https).

	[tools/announce-text] Better line lengths for release candidates.

2020-06-12  Vincent Lefèvre  <vincent@vinc17.net>

	[README] Added URL of the official GNU MPFR website and a note about the
	future migration, since InriaForge will shut down in December 2020.

	[tests/tests.c] Removed a useless "#include <errno.h>" (added in r5252,
	useless since r5253).

	[tests/tfpif.c] Fixed a bug (in the test) detected on AIX[*], where
	an fclose failed due to a previous read failure. At the same time,
	check that a read failure no longer occurs. Note: the read failure
	made mpfr_fpif_import fail, but this is a test where it is expected
	to fail, i.e. we now check that it fails for a good reason.
	[*] gcc119.fsffrance.org on the GCC Compile farm.

	[tools/update-version] Improved a message.

	[src/mpfr-longlong.h] Corrected a comment from GMP's longlong.h, which
	makes codespell complain in particular.

	[tools/mpfrlint] Improved the __GMP_DECLSPEC test:
	  * No longer exclude "src/mpfr.h".
	  * Avoid false positives in "src/mpfr.h" and "src/mpfr-longlong.h".

	[doc/mpfr.texi] Updated the month.

	Updated version to 4.2.0-dev.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".

2020-06-11  Vincent Lefèvre  <vincent@vinc17.net>

	Renamed mpfr_total_order to mpfr_total_order_p for consistency with the
	other predicates (by convention, the function name should end with _p).

	[NEWS] New function mpfr_total_order. Detailed mpfr_get_str_ndigits.

	[doc/README.dev] Updated "To make a release".

	[doc/README.dev] Updated "To make a release".

	[src/Makefile.am] Updated -version-info to 7:0:1 for MPFR 4.1.0.

	[NEWS] Additional details, in particular binary compatibility.

	[NEWS] Some improvements.

2020-06-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] one more test is skipped now

	[doc/mini-gmp] add test results with reduced limb size (int)

2020-06-11  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

2020-06-10  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Added release name for 4.1.0: "épinards à la crème".

	[doc/mini-gmp] English usage improvement.

	Fixed 2 issues with tests/tvalist.c:
	  1. When building with mini-gmp (--with-mini-gmp=DIR) without
	     optimizations (-O0), the build of tvalist was failing because
	     the formatted output functions are not supported (this issue
	     wasn't noticed with optimizations due to dead code elimination).
	     Fix: this test is disabled with mini-gmp (not needed anyway).
	  2. Dead code elimination with optimizations partly broke the goal
	     of this test, i.e. checking that mpfr_vfprintf was available.
	     This dead code was introduced in r7648 "Make sure that fct is
	     used (avoid a warning)." (where fct = mpfr_vfprintf) but was
	     actually not sufficient.
	     Fix: call mpfr_vfprintf unconditionally, but on an empty string
	     in order to avoid output to stdout.
	In addition to these changes in tests/tvalist.c, src/mpfr-impl.h could
	be simplified as a consequence.

	Removed '# undef HAVE_STDARG' before '# include "config.h"' when it
	was used, as it was not always undefined (e.g. in tests/tsprintf.c)
	and there are no reasons to undefine this macro specifically.
	Note: this code was introduced in r2665 (2004-02-06), perhaps for
	the MPFR build inside GMP, which has been dropped a long time ago.

	[tests/tvalist.c] Updated a comment.

	[tests/tvalist.c] Correction when config.h is used (code copied from
	src/inits.c).

2020-06-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] review

2020-06-10  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Typo in option name.

	[src/mpfr-longlong.h]
	  * Updated comment about this file and the changes against GMP 6.2.0.
	  * Define __GMP_GNUC_PREREQ if it isn't defined (this is currently not
	    needed since it is defined in gmp.h as used also there, but this is
	    useful in case some future gmp.h version no longer defines it).

	[src/mpfr-longlong.h] Update: applied the diff of GMP's longlong.h
	between GMP 6.1.0 and GMP 6.2.0, after reverting changesets 13251,
	11042, 11025, and 10727, as these changes are present in the diff.

	[configure.ac] With mini-gmp, also check the availability of srand48.

	[src/mpfr-mini-gmp.c] For gmp_randseed_ui, which uses srand48, use
	a portable version of the conversion from unsigned long to long.

	[doc/mini-gmp] Note also that the random functions are not thread-safe.

	[doc/mini-gmp] Major update.

	[NEWS] Removed a FIXME (no problems found).

2020-06-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Code style: replaced (mp_limb_t) -1 by MPFR_LIMB_MAX.

	[src/mul_ui.c] Bug fix: in the code where MPFR_LONG_WITHIN_LIMB is
	not defined, update the flags (needed for the possible overflow).

	[tests/tmul_ui.c] Added an overflow check that fails in MPFR_RNDZ with
	mini-gmp and mp_limb_t < long (e.g. "-DMINI_GMP_LIMB_TYPE=short").

	[tests/tgeneric.c] In the MPFR_SUSPICIOUS_OVERFLOW case, output yprec.

	[src/mpfr-impl.h] Changed the code that defines MPFR_LONG_WITHIN_LIMB
	in order to support mini-gmp with -DMINI_GMP_LIMB_TYPE=...

	[src/get_ld.c] Fixed build failure with GMP_NUMB_BITS == 8 due to the
	use of uint64_t in src/get_ld.c, while <stdint.h> was not included:
	replaced it by "unsigned long long", which does not need a specific
	header (an exact 64-bit type is not needed, we just need at least a
	64-bit width, which unsigned long long is guaranteed to have).
	Note: unsigned long long may not be available with a pre-C99 compiler,
	but this is not worse than uint64_t. This limitation is currently OK
	as GMP_NUMB_BITS == 8 support is just for testing.

	[acinclude.m4] Make MPFR_CHECK_MP_LIMB_T_VS_LONG and
	MPFR_CHECK_MP_LIMB_T_VS_INTMAX similar:
	  * Use AC_LINK_IFELSE in MPFR_CHECK_MP_LIMB_T_VS_LONG too: this
	    is safer than AC_COMPILE_IFELSE, as it will detect undefined
	    function-like macros.
	  * Define MPFR_USE_STATIC_ASSERT in MPFR_CHECK_MP_LIMB_T_VS_INTMAX
	    too in order to make sure that a static assertion is used (not
	    the MPFR_ASSERTN fallback).
	Note: These constitute redundant safeguards because if MPFR_ASSERTN
	is used, it will be regarded as a function since the macro is not
	defined in this context, and linking will fail as a consequence.
	But this redundancy will protect more against MPFR code evolution.

	[acinclude.m4] Fixed MPFR_CHECK_MP_LIMB_T_VS_LONG macro by forcing
	MPFR_USE_STATIC_ASSERT to 1 before including mpfr-sassert.h, i.e.
	by requiring static assertions: because AC_COMPILE_IFELSE is used
	(i.e. just compiling, no linking), the test could incorrectly succeed
	when MPFR_USE_STATIC_ASSERT was not defined, i.e. whatever the value
	of "(mp_limb_t) -1 >= (unsigned long) -1"; indeed, in this case,
	MPFR_ASSERTN() was used instead of a static assertion, and since the
	macro was not defined here, MPFR_ASSERTN was regarded as a function
	(without a prototype), which was fine for compiling (except when the
	compiler is configured to regard warnings such as missing prototype
	as errors). In short, one could get "yes" while long was larger than
	mp_limb_t.
	Note: In uncommon cases (non-standard compiler...), one can still get
	"no" while a long fits in mp_limb_t, but this isn't much an issue as
	the MPFR code should work in such a case. Moreover, src/mpfr-impl.h
	will also have the chance to set MPFR_LONG_WITHIN_LIMB in practice.

	Removed MPFR_DECL_STATIC_ASSERT macro as it was buggy, unused, rather
	useless, and it had drawbacks. Details:
	  * In src/mpfr-sassert.h, the default definition of this macro in the
	    MPFR_USE_STATIC_ASSERT case ended with a spurious ";". Since this
	    macro was unused, this wasn't noticeable... except in the configure
	    test for static assertions, which failed in some cases (e.g. with
	    CFLAGS="-std=c99 -pedantic-errors -Wno-error=overlength-strings")
	    for this reason, which had the effect to let MPFR_USE_STATIC_ASSERT
	    undefined, while static assertions were actually working.
	  * Still in src/mpfr-sassert.h, but when MPFR_USE_STATIC_ASSERT is not
	    defined, the MPFR_DECL_STATIC_ASSERT(c) expanded to nothing, which
	    would yield invalid code as
	      MPFR_DECL_STATIC_ASSERT(some_assertion);
	    would yield an extra ";" (about the same issue as above). Given
	    the fact that the portable MPFR_USE_STATIC_ASSERT code does not
	    work with this compiler, it is not clear whether this is fixable
	    in a completely reliable way.
	  * MPFR_DECL_STATIC_ASSERT can be replaced by MPFR_STAT_STATIC_ASSERT
	    after moving it to the statement section of a function, with almost
	    no drawbacks (just a bit readability in some cases?).
	  * When MPFR_USE_STATIC_ASSERT is not defined, MPFR_STAT_STATIC_ASSERT
	    will check the assertion at run time (for free, since the result is
	    known at compile time), while MPFR_DECL_STATIC_ASSERT would not be
	    able to do anything useful.
	Changes:
	  * acinclude.m4: removed the test of MPFR_DECL_STATIC_ASSERT.
	  * src/mpfr-sassert.h: removed MPFR_DECL_STATIC_ASSERT definitions.
	  * tune/tuneup.c: removed MPFR_DECL_STATIC_ASSERT redefinition.

2020-06-08  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] MPFR_CHECK_MP_LIMB_T_VS_LONG: updated comment to say
	that using MPFR_ASSERTN (as the code tries to do if static assertions
	are not supported, but currently fails) would be incorrect.

	[acinclude.m4] In MPFR_CHECK_MP_LIMB_T_VS_INTMAX, do the test only if
	intmax_t is defined (assuming that it is iff uintmax_t is defined).

	[tests/tversion.c] Also output the results of the detection of
	"long within limb" and "intmax_t within limb".

2020-06-04  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Removed an obsolete FIXME, which is probably wrong.

	[configure.ac] Updated a comment, replacing a resolved FIXME.

	[acinclude.m4] MPFR_CHECK_DBL2INT_BUG test: avoid potentially reserved
	exit status.

	[acinclude.m4] Fixed r13938: the new MPFR_C_REALFP_FORMAT macro also
	needs to take the printf length modifier in argument.

	[acinclude.m4] Improved the code to determine the format of double,
	resolving the FIXME. The issue was that it used an AC_RUN_IFELSE,
	so that the format could not be determined when cross-compiling.
	The code to determine the format of long double did not have such
	an issue: the object file was analyzed by an awk script. Since a
	long double can have the same format as a double, this code was
	already able to recognize a double, in particular. So the change
	consisted in slightly adapting this code to accept the tested type
	as an argument ("double" or "long double", the mpfr_cv_… variable
	name being obtained thanks to AS_VAR_PUSHDEF) and reusing it for
	the detection of the format of double.

	[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT cleanup:
	  * Removed an unused AH_VERBATIM.
	  * Removed "not available" condition, no longer possible since r13936.

	[acinclude.m4] Fix concerning r13935: also removed code that tested
	the availability of long double. This code was useless since it was
	just outputting "not available" if long double was missing, and one
	would get an error later since MPFR requires long double. But since
	long double is in ISO C89, it is useless to add a test just to return
	an error for pre-C89 compilers.

	[acinclude.m4] Removed "AC_CHECK_TYPES([long double])", whose only
	  purpose is to define a HAVE_LONG_DOUBLE macro.
	[configure.ac] Removed HAVE_LONG_DOUBLE from the cleanup: no longer
	  needed with the change in acinclude.m4.

2020-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Minor change in a comment.

	Cleanup about the function detection by autoconf.
	  * acinclude.m4: removed the detection of memmove, memset and strtol,
	    which was not used (a macro "HAVE_..." was defined... to be removed
	    in configure.ac!); for AC_CHECK_FUNCS, remove options starting with
	    "-Werror" as they can yield a spurious failure due to the way this
	    test is done (this occurred on memmove and memset with GCC due to
	    builtins, and similar issues could still occur in practice with the
	    remaining functions in the AC_CHECK_FUNCS list).
	  * configure.ac: removed HAVE_STRTOL from the macro cleanup: no longer
	    needed since strtol has been removed from the AC_CHECK_FUNCS list.

	[acinclude.m4] Minor improvement: in the MPFR_CHECK_GMP test, changed
	the exit status values 1..3 to 81..83 in order to avoid confusion, as
	low values can typically be returned in case of compile or link error.

2020-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/memory.c] Updated a comment.

	[src/mpfr-longlong.h] Added code to check that mpfr-longlong.h is not
	included directly; MPFR_NEED_LONGLONG_H must be defined instead.

	[acinclude.m4] To complete r13928, one also needs to define
	MPFR_NEED_INTMAX_H here when mpfr-intmax.h is used.

	[src/{mpfr-impl.h,mpfr-intmax.h}] Added code to check that mpfr-intmax.h
	is not included directly; MPFR_NEED_INTMAX_H must be defined instead.

2020-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	Bug fixes and cleanup related to "src/mpfr-intmax.h" by introducing
	a new macro MPFR_NEED_INTMAX_H, which should be defined instead of
	using: #include "mpfr-intmax.h"

	Details on the bugs fixed:
	  * The code added in r13916 forgot a #include <limits.h> since this
	    code does a test on ULLONG_MAX. With the cleanup, <limits.h> is
	    already always included by mpfr-impl.h (early enough).
	  * In src/get_str.c and tests/memory.c, a #include "config.h" was
	    missing before #include "mpfr-intmax.h"; this issue would affect
	    platforms where "config.h" is needed and where <inttypes.h> or
	    <stdint.h> does not exist or does not work.

2020-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgamma.c] For the non-regression test added in r13907, one
	also needs to temporarily increase the memory limit, thus require
	MPFR_CHECK_LARGEMEM too.

2020-05-26  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] If decimal floats are explicitly disabled, do not do
	the check of the bit-field ordering for _Decimal128.

	[acinclude.m4] Fixed detection of bit-field ordering for _Decimal128:
	a compiler error with exit status 1 was mixed up with little endian.

2020-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-intmax.h] Added support for Silicon Graphics IRIX 6.5 (1998)
	with native /usr/bin/cc, which knows the long long type but defines
	ULONGLONG_MAX, etc. instead of ULLONG_MAX, etc.

	[tests/tget_ld_2exp.c] Reverted r13914 as we still need to support
	pre-C99 compilers (and this change was useless).
	If C99 syntax is needed, there should be a configure test, and the
	code should be conditional.

2020-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_ld_2exp.c] put expected value in hex in bug20180904()

2020-05-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": mention MPFR_CHECK_EXPENSIVE.

2020-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tgamma.c] added comment about bug fix

	[src/bernoulli.c] improve initial precision in mpfr_bernoulli_internal()
			  (avoid failures for n <= 10000)

	[src/bernoulli.c] fix bug with non-regression test added in r13907

	[src/bernoulli.c] temporary fix for the bug in mpfr_gamma, something must be
	                  wrong in the error analysis of mpfr_bernoulli_internal()

	[doc/README.dev] added MPFR_CHECK_EXPENSIVE
	[tests/tgamma.c] use MPFR_CHECK_EXPENSIVE

	added non-regression test for bug reported by Frithjof Blomquist

2020-05-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Use of codespell: better workaround to python ugliness.

2020-04-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Section "Rounding" / even-rounding rule: the odd
	radices β are actually not concerned since in such radices, β^k
	is always odd, so that the exponent does not matter.

	[doc/mpfr.texi] In Section "Rounding", for MPFR_RNDN, added a note
	about the even-rounding rule in particular cases: 1-digit precision
	and odd radices.
	Note: A short explanation was already in the mpfr_get_str description,
	which is where the issue could occur at the time the minimum precision
	of MPFR numbers was 2. Now that the minimum precision is 1, this rule
	in such special cases is more general.

	[doc/mpfr.texi] + "than": also in a comment.

	[doc/mpfr.texi] Corrected a typo. Changed "{less,greater} or equal to"
	to the more common "{less,greater} than or equal to".

2020-04-26  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] In the paragraph on mpfr_rnd_t, give a reference
	to Section "Rounding".

	[doc/mpfr.texi] s/can not/cannot/

	[doc/mpfr.texi] Improved Section "Rounding" even more:
	  * Added a note about the sign of the result (important for 0).
	  * Described the directed rounding modes (BTW, this notion of
	    "directed rounding modes" was used but never defined).

	[doc/mpfr.texi] Improved the description of the rounding modes:
	  * Be more clear that MPFR_RNDN uses the even rounding rule.
	  * In "two representable numbers", add "consecutive".
	  * Be more general than radix 2 (due to conversions to a string).
	  * Consistent typography.

2020-04-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi]
	  * mpfr_init2: mention mpfr_prec_round; added a note about
	    memory allocation.
	  * mpfr_prec_round: clarification ("new allocation" could be
	    surprising since one needs less memory).

2020-04-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] document that mpfr_prec_round does no new allocation
			in case the allocated memory is enough

2020-04-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/atan.c] Removing the FIXME: I can't see anything wrong in the
	MPFR code. This could be a bug in GCC's analyzer (which is currently
	experimental). And GCC bug 94713 in the analyzer prevents debugging
	as it makes impossible to track uninitialized values: warnings do not
	occur the first time an uninitialized value occurs.

	[src/atan.c] Added an assertion.

	[src/atan.c] Reduce the number of mpz_get_ui calls with assertions.

	[src/atan.c] Added a FIXME.

2020-04-14  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/texinfo.tex] Update to 2020-02-11.09 with "autoreconf -i -f"
	under Debian/unstable.
	Note: The generated mpfr.html and mpfr.info files remain the same.
	In mpfr.pdf, there are minor changes concerning horizontal spacing
	in paragraphs with a URL.

2020-04-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_set_d64.c] Fixed missing "#if _MPFR_IEEE_FLOATS" that
	became visible with r13878 now that the encoding of decimal floats
	can be detected at compile time. But by fixing the defined macros
	manually, this issue could be visible before r13878.

2020-04-10  Vincent Lefèvre  <vincent@vinc17.net>

	Reworked decimal support and detection, resolving FIXMEs.
	  * INSTALL, acinclude.m4, configure.ac: --enable-decimal-float can
	    take new values. Change of macro DPD_FORMAT (DPD was assumed in
	    case of cross-compilation, which could be wrong) to 3 new macros:
	    DECIMAL_DPD_FORMAT, DECIMAL_BID_FORMAT, DECIMAL_GENERIC_CODE.
	  * doc/README.dev: documented these 3 new macros.
	  * src/mpfr-impl.h: the detection of the BID encoding can now be
	    done at compile time when GCC defines __DECIMAL_BID_FORMAT__
	    (as on x86); support of the 3 new macros.
	  * src/{get_d64.c,set_d64.c,set_d128.c}: update.
	  * tests/{tget_set_d64.c,tget_set_d128.c,tversion.c}: update.

2020-04-08  Vincent Lefèvre  <vincent@vinc17.net>

	Updated URLs of the GCC mailing-list archives.

2020-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Updated FIXME about AC_FUNC_ALLOCA (in 2019-01, I
	already noticed a probable bug in the AC_FUNC_ALLOCA description,
	but forgot about it).

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Formatted output functions: added a comment with the URL
	of the bug report.

	[NEWS,doc/mpfr.texi] Documented the improvement in the formatted output
	functions (mpfr_printf, etc.) with an empty precision field, about
	trailing zeros.

2020-04-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Corrected MPFR_ASSERTD to MPFR_ASSERTN.

	[tests/tsub.c] Reverted r13862 and fixed the test_ubf test: A random
	precision was too small, so that an input for the test was not computed
	exactly (I had modified the values of the inputs for better tests, but
	forgot to change the minimum precision). Also check that the inputs are
	computed exactly (which is what I often do, but here, I had forgotten),
	in order to make errors like the above one easier to understand in case
	the test will have to be modified later.
	Note: With the incorrect input, the mpfr_sub1 result and flags were
	actually correct, so that this was only a bug in the test.

2020-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] update CompCert instructions

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] fixed CompCert instructions

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Reverted r13858: the check_overflow test was already
	in MPFR 4.0.1 and was succeeding on armv5tejl-unknown-linux-gnueabi,
	which had mpfr_cv_c_long_double_format='IEEE double, little endian'.
	The issue should be investigated.
	Note: MPFR_LDBL_MANT_DIG may be larger than the actual number of bits,
	but this should not cause a failure in the tests.

	[tests/tget_ld_2exp.c] Proper fix: the bug20180904 test was designed
	for the x87 extended precision, so enable it only in this case.

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsub.c] modify test_ubf() to always hit a current failing test

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Fixed the change done in r13853 (about removed macros),
	making the code simpler and more maintainable at the same time.

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] added configuration for CompCert test

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c] Removed obsolete workaround due to LDBL_MAX being buggy
	on old i386 systems (the tests were not using this workaround).

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_ld_2exp.c] fixed for case where long double = double
	[tests/tset_ld.c]      likewise

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Moved MPFR_CONFIGS invocation: MPFR_CONFIGS uses LDFLAGS,
	thus must be invoked after LDFLAGS has been determined completely.

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] now all tests pass with compcert

	[acinclude.m4] added missing LDFLAGS for long double test

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added HAVE_ALLOCA description.

	[configure.ac] Do not remove the HAVE_ALLOCA macro, which is now used
	by MPFR to determine the default MPFR_ALLOCA_MAX value.

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] update CompCert instructions

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Output whether MPFR is built with the GMP build,
	and the MPFR_ALLOCA_MAX value if not.

	[src/mpfr-gmp.h] If HAVE_ALLOCA is not defined, i.e. if alloca() is
	not available (as detected by the configure script), then set the
	default MPFR_ALLOCA_MAX value to 0 so that alloca() is not used.

2020-04-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] added instructions for CompCert

2020-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated MPFR_ALLOCA_MAX description.

	[src/mpfr-gmp.h] When MPFR_ALLOCA_MAX = 0 (set at configure time),
	do not reference alloca() since we don't need it.

2020-03-31  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] About mpfr_printf with %Re and empty precision field,
	added a comment with URLs of the discussion and the bug report.

2020-03-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Typo in a comment.

	[configure.ac] Updated message output when the gmp.h vs libgmp test
	fails: another cause may be that LD_RUN_PATH is not honored (problem
	seen under OpenBSD 6.6 / gcc302.fsffrance.org).

2020-03-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_sj.c] Forgot a "#ifndef NPRINTF_J" for printf("%jd",...).

	[src/set_uj.c] Fixed underflow detection.

	[src/set_uj.c] Added early overflow detection to avoid a possible
	integer overflow. Added a FIXME (incorrect underflow detection).

	[tests/tset_sj.c] Added tests of mpfr_set_sj_2exp and mpfr_set_uj_2exp
	in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
	MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
	MPFR_EXP_MAX-7 to MPFR_EXP_MAX (like in tset_si.c, see r13808), but
	also exponents INTMAX_MIN and INTMAX_MAX. This shows bugs in set_uj.c,
	to be fixed...

	[src/set_sj.c] Coding style.

	[src] Moved the definition of the numberof() macro from mpfr-gmp.h to
	mpfr-impl.h in order to always use our own. Also make sure that the
	type is signed, so that the value can be used in arbitrary expressions
	without the risk of silently switching to unsigned arithmetic.

2020-03-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/texpm1.c] Updated the bad_cases() parameters to increase the
	proportion of generated bad cases.

	[tests/tset_si.c] Forgot a cast for MPFR_EXP_FSPEC argument.

	[doc/mpfr.texi] Updated the month.

	Consistency: "a UBF" → "an UBF" since UBF stands for "unbounded float".

	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.

	[src/mpfr-impl.h] Updated UBF comment about aliasing rules.

	[src/mpfr-impl.h] Bug fix (MPFR_ZEXP(x) as used for an assignment
	could yield undefined behavior on platforms where mpfr_exp_t has
	trap representations); this is also a general improvement.

	[tests/tsub.c] Avoid the build failure with -Werror=strict-aliasing by
	replacing x[…] by p[…] (but this doesn't eliminate the problem itself).

	[src/mpfr-impl.h] UBF: updated comment: this breaks aliasing rules, but
	there isn't any other acceptable solution.
	Note: when trying to build MPFR without --enable-assert, with GCC and
	CFLAGS="-O2 -Werror=strict-aliasing", the compilation of tests/tsub.c
	currently fails because of that.

2020-03-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Fixed tests on UBF.

	[src/sub1.c] Fixed underflow handling in case c small (can occur only
	with UBF).

	[tests/tfma.c] Minor correction.

	[tests/tfma.c] Changed a RND_LOOP to RND_LOOP_NO_RNDF as the behavior
	with RNDF changed after a bug fix.

	[tests/tsub.c] Completed tests for UBF (currently fail).

	[src/sub1.c] Bug fix for UBF and MPFR_RNDF.

	[src/set_{si,ui}_2exp.c] Bug fix in MPFR_LONG_WITHIN_LIMB defined case:
	added early underflow/overflow checking to avoid integer overflow or
	errors due to special exponent values.

	[tests/tset_si.c] Added tests of mpfr_set_si_2exp and mpfr_set_ui_2exp
	in precision 3 with integers from -31 to 31 and exponents MPFR_EXP_MIN,
	MPFR_EMIN_MIN-7 to MPFR_EMIN_MIN, MPFR_EMAX_MAX-7 to MPFR_EMAX_MAX,
	MPFR_EXP_MAX-7 to MPFR_EXP_MAX, showing bugs in these functions when
	MPFR_LONG_WITHIN_LIMB is defined.

2020-03-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] More tests on UBF. The results are not checked yet,
	but running the tests with UBsan could allow one to trigger bugs
	(such as the one fixed in r13806).

	[src/sub1.c] If exp_b = MPFR_EXP_MIN, an integer overflow may occur in
	the "MAX (aq, bq) + 2 <= diff_exp" branch. This is possible only with
	UBF. Fixed this bug with an early underflow detection in the UBF case.

	[tests/tfmma.c] Added extreme_underflow test: before the r13798 bug fix,
	this was triggering an integer overflow.

	[tests/tsub.c] Corrected a function name.

	[tests/tsub.c] More tests on UBF, in particular with an exponent change
	(including subnormal → normal and normal → overflow due to that).

	[tests/tsub.c] Tests on UBF: underflow/overflow cases done.

2020-03-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] More tests on UBF.

	[src/mpfr-impl.h] UBF: reordered macro definitions.

	[src]
	  * mpfr-impl.h: define MPFR_UBF_GET_EXP macro.
	  * add1.c, sub1.c: use this macro.

	[src/sub1.c] Detect an underflow case (before the main detection) to
	avoid a possible integer overflow with UBF.

	[tests/tsub.c] Added comments.

	[tests/tsub.c] First tests on UBF.

	[src/agm.c] Avoid a potential integer overflow with huge precisions.

2020-03-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/root.c] Removed useless cast in a comparison, as both operands are
	non-negative.

	[src/rem1.c]
	  * Portability fix: when mpfr_exp_t <= long (which is the default),
	    an addition was done in unsigned integer arithmetic instead of
	    signed integer arithmetic, with a conversion back to a signed
	    type, i.e. with potentially implementation-defined behavior.
	    There could also be an integer overflow on huge-precision values
	    if mp_bitcnt_t > unsigned long.
	  * Updated a comment.

	[src/pow.c]
	  * Portability fix: when mpfr_exp_t <= long (which is the default),
	    an addition with a negative result was done in unsigned integer
	    arithmetic instead of signed integer arithmetic, with a conversion
	    back to a signed type, i.e. with implementation-defined behavior.
	    There could also be an integer overflow on huge-precision values
	    if mp_bitcnt_t > unsigned long.
	  * Updated comments.

	[src/cos.c] Updated a comment.

	[src/cos.c] Updated a comment.

	[src/const_log2.c] Corrected type for the return value of mpz_scan1.

2020-03-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Revert a change done in r13783 for function bad_cases():
	  no longer fail if a generated value does not correspond to a bad case.
	  But fail if the MPFR_CHECK_BADCASES environment variable is defined
	  and too few bad cases are generated (less than 90%).
	[doc/README.dev] Document MPFR_CHECK_BADCASES.

	[tests] Update to test the ternary value in test5rm() when possible,
	and support the exact cases.
	  * tests.c:
	      - test5rm(): modified the prototype again and the behavior.
	        Now, either only one test is done and the ternary value is
	        not checked, or the test is done in the 5 rounding modes and
	        the ternary value is checked.
	      - data_check(): corresponding update; updated description.
	      - bad_cases(): test the exact cases too.
	  * tatanh.c: for the bad_cases() call, reduce emax to avoid errors in
	    the generation of bad cases due to the rounding of tanh(y) to 1,
	    which does not correspond to a bad case for atanh, but to an exact
	    case.
	  * tlog1p.c: for the bad_cases() call, reduce emax to avoid errors in
	    the generation of bad cases due to the rounding of expm1(y) to -1,
	    which does not correspond to a bad case for log1p, but to an exact
	    case.
	  * trec_sqrt.c: corrected the bad_cases() call to avoid negative
	    numbers.
	Note: the following tests
	  GMP_CHECK_RANDOMIZE=5 ./tacos
	  GMP_CHECK_RANDOMIZE=6 ./tatan
	  GMP_CHECK_RANDOMIZE=4 ./tcos
	currently fail, but because of a change in r13783 (see associated log
	for the reason). To be fixed later.

	[tests/tests.c] Modified the prototype of test5rm() to support a
	parameter "exact". Therefore the parameter "test_one" is now a boolean
	(the value 2 is no longer supported, as redundant with "exact"), and
	about data_check() with rnd = '*', the loop is now done in test5rm(),
	i.e. test5rm() is called with test_one being false.

2020-03-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsqrt.c] For bad_cases(), use the same pos and psup parameters
	as in troot.c for "rootn[2]", allowing inexact cases.

	[tests/tcbrt.c] For bad_cases(), use the same pos and psup parameters
	as in troot.c for "rootn[3]", allowing inexact cases.

	[tests]
	  * tests.c, function bad_cases(): updated/added debug messages;
	    assume that the parameters are chosen in such a way that this
	    test always generates hard-to-round cases (including exact cases),
	    i.e. exit with an error if one does not get a bad case, otherwise
	    this can leave unexpected failures unnoticed (either due to a bug
	    in the MPFR library or due to poorly chosen parameters such as in
	    troot.c until now).
	    Note: ideally, this would require a proof, but it is better to get
	    (unlikely) spurious failures with a non-default GMP_CHECK_RANDOMIZE
	    value than missing important tests.
	  * troot.c, bad_cases() invocation:
	      - corrected the pos parameter: when n is even, it is useless to
	        generate a negative number as the function is not defined (the
	        inverse function generates a positive number, and the mismatch
	        now yields a failure due to the change in bad_cases); when n is
	        odd, generate as many negative numbers as positive ones.
	      - for n ≤ 5, reduce the psup parameter in order to also generate
	        inexact cases, instead of always exact cases.

	[tests/tests.c] Added a TODO for bad_cases, as the exact cases are not
	tested yet. As a consequence, the bad_cases test added in tcbrt.c r13776
	is not really useful yet, as the cbrt bad cases are only exact cases.

	[tests/tests.c]
	  * test5rm: removed additional useless tests added in r6037 in the
	    case test_one true and rnd = MPFR_RNDZ or MPFR_RNDA, since the
	    description was a bit incorrect and this was used only by
	      - data/digamma, where this yielded only duplicate tests (mode *);
	      - data/li2, where mode z is used on a few tests and could be
	        replaced by mode Z (i.e. test_one false) if need be;
	    updated description and added details.
	  * data_check: corrected/updated description.

	[tests/tests.c] Minor change in an initialization.

	[tests/tget_set_{d64,d128}.c] Added a FIXME and improved a message.

	[acinclude.m4] Added a FIXME: in case of cross-compiling, the guess
	"DPD" can be wrong, e.g. for the build with MinGW under Linux. One
	does not get a failure just because of other issues in the code,
	forcing the portable implementation of the decimal functions.

2020-03-11  Vincent Lefèvre  <vincent@vinc17.net>

	Added bad_cases tests for mpfr_cbrt.

	[src/cbrt.c] Improved the algorithm in the case the precision of the
	input is larger than 3n, where n is the precision of the output, + 1
	if the rounding mode is MPFR_RNDN: instead of truncating the output,
	call mpz_root on the truncated input.

	[tests/tcbrt.c] Test the ternary value on other exact cases.

	[tests/tcbrt.c] Test the ternary value on special cases.

	[src/cbrt.c] Description of the algorithm: improvement; corrected the
	end, which was incorrect and did not match the code (the comment was
	introduced in r2057 and was already incorrect in the round-down case;
	then the round-to-nearest case was improved in r2070, but the comment
	was not updated).

	[src/cbrt.c] Description of the algorithm: correction; added a TODO.

2020-03-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cbrt.c] Description of the algorithm: corrected indentation;
	renamed variable r to t in order to avoid confusion with the code
	(where r has a different meaning).

	[src/cbrt.c] Clarified a comment.

	[src/cbrt.c] Resolved the second FIXME and simplified the code
	(basically by removing duplicate code).

	[src/cbrt.c] Description of the algorithm:
	  * Since there was no upper bound on s, let's remove the upper bound
	    on m (this now matches the code).
	  * Replaced the FIXME by one due to the lack of upper bound on s.

	[src/cbrt.c] Added another FIXME as the code does not match the
	algorithm described in a comment.

	[src/cbrt.c] Improved a condition to avoid operations that correspond
	to a no-op.

	[src/cbrt.c] Added an assertion.

	[src/cbrt.c] Code cleanup and simplification. Added logging messages and
	a FIXME about a comment (coming from r2057 with its associated code).

	[src/cbrt.c] Removed a useless cast on a comparison operand, since
	both operands are non-negative.

	[src/atan.c] Added assertions.

	[tools/mpfrlint] Workaround to Debian bug 953369 in libpython3.8-minimal
	for the codespell invocation.

2020-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/eint.c] Bug fix: possible integer overflow with some
	C implementations (or some _MPFR_PREC_FORMAT / _MPFR_EXP_FORMAT values)
	due to the use of incorrect integer types.

	[src/eint.c] Added other logging messages.

	[src/eint.c] Added some logging messages.

2020-03-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsin.c] added one test

2020-03-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] cancel: also log its value; range checking/tracking.

	[src/cmp2.c] Added a comment giving the range of the value returned
	in "cancel" and explaining why there is no integer overflow in the
	computation of this value.

	[src/cmp2.c] Comment: some absolute values are not needed (again).

	[src/cmp2.c] Minor correction for |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.

	[src/cmp2.c] Better explanation when |EXP(b) - EXP(c)| >= MPFR_EXP_MAX.

2020-03-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cmp2.c] Finished the review of mpfr_cmp2: simplified the code even
	more; corrected/updated comments (in the case high_dif = 0, one can have
	dif = 1 if c has entirely been taken into account, so that the comment
	"dif > 1 here" was incorrect; only dif >= 1 is needed anyway).

	[src/cmp2.c] Changed high_dif to type int since it is manipulated like
	a boolean. Updated comments.

2020-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cmp2.c] Simplified the mpfr_cmp2 code and updated comments.

	[src/cmp2.c] Updated comments.

2020-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr.h] added comment

2020-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: improved comment.

	[src/mpfr.h] _MPFR_PREC_FORMAT and _MPFR_EXP_FORMAT: added a detailed
	comment (the previous comment was not obsolete, but misleading).

2020-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr.h] removed obsolete comment (_MPFR_PREC_FORMAT=3 is the default
		     under Linux x86_64)

2020-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sin.c] increase initial precision even more

2020-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpow.c] Replaced mpfr_cmp by !mpfr_equal_p for NaN detection.

	[tests/tsin.c] Replaced obsolete function mpfr_mul_2exp by mpfr_mul_2ui.

2020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sin.c] increase initial precision when x is large

2020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/rem1.c] workaround for efficiency bug in mpz_powm_ui, which was making
	argument reduction in mpfr_sin for huge x very slow.

	Before:
	$ ./mfv5 -p113 -e16384 -d-2 mpfr_sin
	 mpfr_sin:	 3289620 / 3576511.59 / 6841956

	After this commit:
	 mpfr_sin:	 166868 / 182661.01 / 343224

2020-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tpow.c] added one test

	added value -2 for option -d to generate random number with exponent
	exactly e. Example:
	$ mfv5 -p113 -e16384 -d-2 -v mpfr_sin

2020-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tpow.c] added a test

	[tests/tsin.c] fixed and completed check_binary128()

2020-02-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cmp2.c] Started to review mpfr_cmp2. Minor changes.

	[src/cmp2.c] Detailed a comment concerning UBF.

2020-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsin.c] Cleanup of the latest test (note: mpfr_equal_p is better
	than mpfr_cmp as it makes the test fail on a NaN result).

2020-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsin.c] added one test with precision 128

2020-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Updated a comment (underscore version of attribute name).

	[tools/mpfrlint] Detect the use of the non-underscore version of the
	attribute names in mpfr.h (see README.dev).

2020-02-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Use the underscore version of the attribute names.
	[doc/README.dev] Added information on this subject.

	[TODO] Added item on GNU Automake and -I options.

2020-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Removed an incorrect comment before MPFR_TMP_INIT1
	(this macro does not allocate anything, and MPFR_TMP_INIT just after
	can allocate more than 1 limb).

	[TODO] About the use of MPFR_MANT(x).

2020-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Typo.

2020-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcmpabs.c] Added missing tests of mpfr_cmpabs with NaN.

	[tests/tcmpabs.c] For mpfr_cmpabs: like mpfr_cmpabs_ui, do each test
	in 4 different contexts, combinations of:
	  * flags all unset or flags all set;
	  * usual exponent range or reduced exponent range.
	Minor corrections in the old tests.

	[tests/tcmpabs.c] For mpfr_cmpabs_ui: do each test in 4 different
	contexts, combinations of:
	  * flags all unset or flags all set;
	  * usual exponent range or reduced exponent range.

2020-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcmpabs.c] added tests for mpfr_cmpabs_ui

2020-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h]
	  * MPFR_ALIAS: use the comma operator instead of "do ... while (0)"
	    so that this macro can be used in an expression context.
	  * MPFR_TMP_INIT_ABS, MPFR_TMP_INIT_NEG: use MPFR_ALIAS.

	[src/mpfr.h] Added prototype for mpfr_cmpabs_ui.

	[doc/mpfr.texi] Added mpfr_cmpabs_ui to Section "Added Functions"
	(API Compatibility).

	[tests/trint.c] Replaced obsolete mpfr_cmp_abs by mpfr_cmpabs.

	[doc/mpfr.texi] Typo from r13708.

2020-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] mention new mpfr_cmpabs_ui

	added new function mpfr_cmpabs_ui

	renamed cmp_abs.c to cmpabs.c

2020-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Typo.

	[TODO] + Serialization / Deserialization (suggested by Frédéric Pétrot).
	I've also added an idea of implementation to reuse most of the code and
	change very little.

	[src/ubf.c]
	  * Optimized mpfr_init_get_zexp() for _MPFR_EXP_FORMAT <= 3
	    (as in the default configuration).
	  * Updated comments.

	[src/mpfr-impl.h] Added UBF-related comments.

	[src/mpfr-impl.h] Added UBF-related comments.

	[src/mpfr-impl.h] Added a comment for UBF and types.

2020-02-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added a comment for INEXPOS.

	[src/mpfr-impl.h] INEXPOS and VSIGN code improvement.

	Removed duplicate macro definitions.

	[tests/tfmma.c] Use mpfr_set_str instead of mpfr_set_d.

	[src/sub1.c] Got rid of some goto's. Added log messages.

2020-02-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Bug fix: the underflow case (possible with UBF, e.g. via
	mpfr_fmma or mpfr_fmms) was not tested in the case c small.
	Note: this completes r11418 and r12752 for underflow detection.

	[src/sub1.c] Added log messages and checked the UBF cases yielding
	exp_b == MPFR_EXP_MAX and/or diff_exp == MPFR_EXP_MAX.

2020-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Added log messages for MPFR_PREC_ARG ('P' specifier).

	[tests/tsprintf.c] Fixed some tests: the 'P' specifier was missing.

2020-02-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fmma.c] Reverted the mpfr_check_range from r13688.
	The exponent range has not been extended by mpfr_fmma_aux, and the
	result comes from mpfr_add, mpfr_sub, or mpfr_set_1_2, which return
	results in the current range. If the result of mpfr_fmma_aux is not
	in the current range, this is due to a bug in one of these functions.
	Note: mpfr_add and mpfr_sub accept UBF inputs.

2020-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fmma.c] fixed bug (result might be out of exponent range)
	[tests/tfmma.c] added non-regression test

2020-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] In the paragraph "MPFR internal data such as flags",
	no longer mention caches as caches may now also be global when MPFR
	has been compiled as thread safe (locking is used). Caches have been
	discussed earlier in the section anyway.

2020-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] URL update.

2020-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[tests/Makefile.am] Updated a comment; in particular, replaced the two
	obsolete gmane.org URLs by lists.gnu.org/archive/html/bug-gnulib ones.

	[INSTALL] Removed reference to a gmane.org URL, which no longer exists.

2020-01-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/beta.c,tests/ttanh.c] towards → toward (for consistency).

2020-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tfprintf.c,tprintf.c}] Updated an error message about MinGW,
	now output only if MinGW is used.

	[doc/README.dev] Concerning MinGW, added a sentence about the use of
	the __USE_MINGW_ANSI_STDIO macro, confirming the existing note.

	[TODO] Removed obsolete item on MinGW and -D__USE_MINGW_ANSI_STDIO.

	[INSTALL] Update concerning MinGW and the __USE_MINGW_ANSI_STDIO macro.

	[doc/mpfr.texi] Updated mpfr_get_str documentation, correcting r13666
	(we still need the extra two bytes and to take -@Inf@ into account).

2020-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] fixed out-dated documentation for mpfr_get_str

2020-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] In the latest update, forgot to remove the CC=...

	[doc/README.dev] Update about the test under Wine.

	[acinclude.m4,configure.ac]
	  * Moved the code that tries to determine the format of double from
	    configure.ac to acinclude.m4 in MPFR_CONFIGS (as required), just
	    before the one for long double.
	  * Added a FIXME comment: This code uses AC_RUN_IFELSE, which cannot
	    run the test when cross-compiling; use a test like for long double
	    instead.

	[acinclude.m4] English usage.

	[acinclude.m4] Updated messages about the format of "long double".
	[configure.ac] Ditto for "double". Added missing AC_MSG_RESULT.

	[tests/tversion.c] Updated/fixed an output line to match the other ones.

	[tests/tsprintf.c] Added tests for %Ra and %Rb on the value 0 with an
	empty precision field.

	[src/vasprintf.c] Fixed output precision bug with decimal output
	(i.e. e, f and g conversion specifiers) and an empty precision field
	on the value 0.

	[tests/tsprintf.c] Also added tests with %Rf, %Rg and %#Rg on 0.

	[tests/tsprintf.c] Added a test with %Re and an empty precision field
	on the value 0; it currently fails.

2020-01-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/ck-copyright-notice] Added a note about the mpfr.pc.in file.

	Copyright notice update: added 2020 with
	  perl -pi -e 's/ (\d{4}-)?(2019)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh. Removed 2019 from the example in the doc/README.dev file.

	[TODO] + base conversion with the round-trip property using a minimal
	precision, such as the to_chars functions from the C++ standard.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Formatted output: improved the text concerning the
	empty precision field, i.e. focus on the chosen precision rather
	than the round-trip property (as the rounding mode is not necessarily
	to nearest).

	[doc/mpfr.texi] Formatted output with %Re (empty precision field):
	added a reference to mpfr_get_str_ndigits.

	[src/vasprintf.c] Simplified the conditions under which trailing zeros
	are kept (the spec_g variable is no longer needed as a consequence).

	[tests/tsprintf.c] Re-added tests changed by r13644 and r13645, but
	with a variable of smaller precision in order to get the same output
	as before.

	[tests/tsprintf.c] Updated other two tests (in da_DK locale).

2020-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed tests for new more precise semantics for mpfr_printf ("%Re", x),
	and documented it

	[src/vasprintf.c] tentative fix so that mpfr_printf ("%.Re", x) prints a number
			  of decimal digits independent from x

2019-12-24  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL,doc/mpfr.texi] Typography.

2019-10-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Ulp calculus: put the old Rule 8 just after Rule 2,
	as the old Rule 3 (now Rule 4) uses it directly (proof updated).

	[doc/algorithms.tex] Ulp calculus: simplified the proof of Rule 8.

	[doc/algorithms.tex] Ulp calculus Rule 3: missing absolute values in
	the proof.

	[doc/algorithms.tex] Actually assume that no underflows nor overflows
	occur for the whole section "Error calculus".

	[doc/algorithms.tex] Ulp calculus Rule 6: corrected it (we need to
	assume no underflows nor overflows) and its proof, and generalized
	it with absolute values (like in the previous rules).

2019-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Ulp calculus Rule 3: more powerful result and
	much simpler proof.

	[doc/algorithms.tex] Section 2 (Error calculus): When n was a precision,
	replaced it by p as this is the usual notation (see Section 1) and n
	sometimes had a double meaning.

2019-10-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcmp_ui.c] Updated comment: this is a bug in Clang 9.

	[tests/tcmp_ui.c] Added a comment: failure of a test with the
	clang-9 1:9-1 Debian package.

2019-10-01  Vincent Lefèvre  <vincent@vinc17.net>

	Clean-up concerning the tests of subnormals for double and float.
	  * acinclude.m4: renamed variables
	      mpfr_cv_have_denorms_flt to mpfr_cv_have_subnorm_flt
	      mpfr_cv_have_denorms     to mpfr_cv_have_subnorm_dbl
	    and improved messages.
	  * acinclude.m4, tests/tget_flt.c: renamed macro
	      HAVE_DENORMS_FLT to HAVE_SUBNORM_FLT
	  * acinclude.m4, tests/{tests.c,tset_d.c,tsprintf.c}: renamed macro
	      HAVE_DENORMS     to HAVE_SUBNORM_DBL
	  * doc/README.dev: updated / completed the corresponding documentation.
	  * tests/tget_d.c: renamed function check_denorms to check_subnorm.

	[acinclude.m4] Updated comment about the tests for subnormal numbers.

	[acinclude.m4] Added a comment about the tests for subnormal numbers.

2019-09-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/Makefile.am] Added missing texinfo.tex prerequisite.

2019-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added FIXME comment in tfprintf.c, tout_str.c and tprintf.c:
	The output is not tested (thus coverage data are meaningless).

2019-09-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{add1sp.c,sub1sp.c}] Get rid of useless goto's.

2019-09-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[src/hypot.c] Replaced a TODO by a FIXME.

	The mpfr_out_str function now accepts bases from -2 to -36, in order to
	follow mpfr_get_str and GMP's mpf_out_str functions.

	[doc/mpfr.texi] Changed an incorrect use of @xref, which must always
	occur at the beginning of a sentence (use "see @ref{...}" instead).

	[doc/mpfr.texi] At the end of "Arithmetic Functions", added a sentence
	referencing the power functions (since x^n is an arithmetic function).

2019-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Removed the useless "Float ..." index entries.

	[doc/mpfr.texi] Moved the mpfr_pow class of functions from
	"Arithmetic Functions" to "Transcendental Functions".

	[doc/mpfr.texi] Added "Float transcendental functions" to the index
	for consistency ("transcendental functions" implies floating point,
	but the user should expect to find it with the other index terms
	starting with "Float").

	[doc/mpfr.texi] Renamed "Basic Arithmetic Functions" to just
	"Arithmetic Functions".

	[doc/mpfr.texi] Transcendental functions: added a sentence to the
	important note (about cases theoretically very hard to round).

	[doc/mpfr.texi] Renamed Section "Special Functions" to
	"Transcendental Functions" (as after changes in r13605 and r13606,
	it now contains only the transcendental functions), and slightly
	rewrote its important note.

	[doc/mpfr.texi] Moved mpfr_free_cache, mpfr_free_cache2, mpfr_free_pool
	and mpfr_mp_memory_cleanup from "Special Functions" to a new section
	"Memory Handling Functions".

	[doc/mpfr.texi]
	  * Moved mpfr_fac_ui, mpfr_fma, mpfr_fms, mpfr_fmma, mpfr_fmms,
	    mpfr_hypot, mpfr_sum and mpfr_dot from "Special Functions" to
	    "Basic Arithmetic Functions" (as these are functions based on
	    +, -, *, / and roots).
	  * Added a FIXME for mpfr_pow: does this function really belong
	    to "Basic Arithmetic Functions"?

	[doc/mpfr.texi] Improved warning about huge precisions.

	[src/mul.c] For the --enable-assert=full test, also test the flags
	(like what has been done for mpfr_add1sp and mpfr_sub1sp).

	[src/sub1sp.c] For the --enable-assert=full test, improved output of
	ternary value and flags, like in r13582 for mpfr_add1sp.

	[src/add1sp.c] Cosmetic change (consistent ordering).

2019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsub1sp.c] added non-regression test for bug in mpfr_sub1sp2n
	[src/sub1sp.c] fixed that bug

2019-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro for MS-Windows.

	[NEWS] More details about mpfr_add and mpfr_sub.

2019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] mention that mpfr_sub was also improved for 128 bits

	[NEWS] coverage improved to 98.6% on x86_64

	[tests/tadd1sp.c] improve coverage

2019-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Fixed MPFR_C_LONG_DOUBLE_FORMAT macro: the patch had
	a spurious ";" at the end of conftest.c, which made its compilation
	fail with -pedantic -Werror (using gcc or clang).

2019-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] rewrote mpfr_sub1sp2n (inspired from mpfr_sub1sp1n)

2019-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Updated MPFR_C_LONG_DOUBLE_FORMAT to support compilation
	with GCC's and clang's LTO (-flto). This new test is inspired by the one
	used by GMP for the double type.
	Thanks to Paul Mulders for a preliminary version of the patch for MPFR.

2019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] added new function mpfr_sub1sp2n for p = 2*GMP_NUMB_BITS
		       (still to be tested)

2019-09-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tadd1sp.c] bug20190903:
	  * Fixed the second test for GMP_NUMB_BITS != 64.
	  * Updated comments.

2019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] improved comment

2019-09-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] mpfr_add1sp2n: improved a comment.

	[src/add1sp.c] Fixed the bug.

	[tests/tadd1sp.c] bug20190903: do the second test in MPFR_RNDU too.

	[tests/tadd1sp.c] bug20190903: in the second test, check the mpfr_t
	value, the ternary value and the flags, in order to get a failure
	even without "--enable-assert=full".

	[tests/tadd1sp.c] When testing mpfr_add, use a wrapper mpfr_add_cf
	that calls mpfr_clear_flags first, so that if --enable-assert=full
	is used, the flags can be better checked too (and automatically).
	Now tadd1sp outputs with --enable-assert=full, as wanted:
	  add1  : ternary = -1, flags = inexact (8)
	  add1sp: ternary =  0, flags = none (0)

	[src]
	  * exceptions.c: define flags_fout if MPFR_WANT_ASSERT >= 2, i.e. with
	    --enable-assert=full (for better flags output in add1sp.c, etc.).
	  * mpfr-impl.h: declare flags_fout if MPFR_WANT_ASSERT >= 2.
	  * add1sp.c: improve output of ternary value and flags.

	[tests/tadd1sp.c] Updated comments of bug20190903.

	[tests/tadd1sp.c] Added a test that triggers a bug in mpfr_add1sp2n
	(corresponding to the FIXME), yielding a failure with
	"--enable-assert=full".
	Note 1: The computed values are equal (with MPFR_RNDN), but one gets
	  Inexact sp = 0 | Inexact = -1
	  Flags sp = 10 | Flags = 10
	Note 2: The fact that the flags do not match the ternary value in the
	error message is due to a missing mpfr_clear_flags in the test.

	[src/add1sp.c] mpfr_add1sp2n:
	  * Code refactoring, eliminating the unnecessary goto's.
	  * In the d >= 2 * GMP_NUMB_BITS case, use a single test for rb and sb.
	  * Improved code consistency.
	  * Added a FIXME about suspicious code. → Find a failing test and fix
	    the code, or explain the code if it is correct.

2019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] fix for bug20190903

2019-09-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Corrected a comment.

	[tests/tadd1sp.c] More random tests in the special precisions
	GMP_NUMB_BITS and 2 * GMP_NUMB_BITS (but they don't trigger
	the bug due to r13574).

	[tests/tadd1sp.c] Added testcase for bug due to r13574 (found with
	the other test programs, using --enable-assert=full).

2019-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] added mpfr_add1sp2n for 128-bit precision (with 64-bit limb)

2019-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp1_extracted.c] replace hard-coded bounds by emin/emax

	added sub1sp1_extracted.c (not ready yet)

2019-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added github source for Jianyang Pan formal proof

2019-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpfr-test.h] At the end, with GCC, undef volatile if defined.
	Explanations:
	  With GCC, a macro "volatile" can be defined to test some special code
	  in mpfr-impl.h (code for compilers that define such a macro), but the
	  volatile keyword is necessary in some tests to avoid some GCC bugs.
	  Thus we need to undef this macro (if defined). We do that at the end,
	  so that mpfr-impl.h (included earlier) is not affected by this undef.

	[tests/tget_set_d128.c] Updated a test with a non-canonical encoding:
	  * More meaningful name ("noncanonical" instead of "coverage").
	  * Output details in case of failure.
	  * Avoid GCC bug 91226: wrong propagation of non-canonical _Decimal64
	    and _Decimal128 constant (BID only).

2019-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update concerning the "decimal-point character".

	[doc/mpfr.texi] Changed "decimal point" to "decimal-point character",
	which is the term used in the ISO C standard. This is better as this
	character is also used with non-decimal bases: "decimal-point" is
	just the name of this character (as initially defined for base 10)
	and does not imply a number written in decimal.

	[doc/mpfr.texi] Compatibility With MPF: added an item on the difference
	of the output format between mpf_out_str and mpfr_out_str.

	[doc/mpfr.texi] Rewrote and completed the mpfr_out_str description.

2019-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/out_str.c] Fixed bug in mpfr_out_str: When the exponent of the
	converted value is 0, it was not output, contrary to what is described
	in the MPFR manual. Note that this does not change the value of the
	printed string, so that this has no effect on applications that just
	re-read the value (with MPFR or another code).
	This was regarded as a bug rather than an error in the documentation,
	thus the output now looks more similar to what printf with %e yields;
	the GMP function mpf_out_str also outputs the exponent 0.
	Short discussion:
	  https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00012.html

	Note: The tests still pass, as this function is currently not really
	tested.

2019-08-14  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Update/corrections about MinGW and __USE_MINGW_ANSI_STDIO.

	[tests/tversion.c] When building with MinGW, output a line about it:
	MinGW32 / MinGW64, and the __USE_MINGW_ANSI_STDIO definition.

	[src/set_d128.c] Moved a definition under the #if where it is used.

2019-08-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improve INSTALL (feedback from sisyphus <sisyphus359@gmail.com>)

2019-08-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a FIXME for mpfr_out_str about the exponent 0.

	[doc/mpfr.texi] About mpfr_get_str / mpfr_out_str:
	  * In the mpfr_get_str description, changed argument "b" to "base" for
	    consistency with similar functions (now, only mpfr_get_str_ndigits
	    has b as this looks better in the formula). Also added a link to
	    mpfr_get_str_ndigits.
	  * In the mpfr_out_str description, replaced the ambiguous and even
	    incorrect sentence "enough digits so that op can be read back
	    exactly" (issues with trailing zeros and with the directed rounding
	    modes) by text similar to the one in the mpfr_get_str description
	    (keeping the reference to mpfr_get_str).

	[src/out_str.c] Coding style (e is not a boolean).

2019-08-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tout_str.c] Use mpfr_print_rnd_mode in a message.

	[tests/tout_str.c] Code simplification: a test from r1888 on a
	random value was unnecessary (the log message of r1888 did not
	even correspond to the change).

	[tests/tout_str.c] GNU coding style.

	[tests/tout_str.c] Added missing newline characters in the output
	after calls to mpfr_out_str.

	[tests/tout_str.c] By default, output the results to a file instead of
	/dev/null (this was already done only if opening /dev/null failed), so
	that they can be checked later. Fixed 2 issues at the same time:
	  * Do not close stdout (when an argument was provided).
	  * Remove the file at the end.

	[tests/tfpif.c] GNU coding style.

	[tests/tfpif.c] Added a comment about the use of perror.

	[tests/tfpif.c] Also check fclose failure when the file has been opened
	for writing (typically an error in case the buffer cannot be written to
	the file). Call perror after all fopen/src_fopen/fclose failures to get
	the reason of the failure.

	[tests/tfpif.c] In case of failure of fopen or src_fopen, write the
	error message on stderr (as one should do for errors not directly
	related to the tests, such as memory allocation and I/O errors).
	Also improved the error messages and made them consistent.

2019-08-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2019-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved consistency with @item.

2019-08-02  Vincent Lefèvre  <vincent@vinc17.net>

	For Makefile.am and each one in SUBDIRS, added the .POSIX target to
	select the POSIX behavior (since we do not require GNU "make").
	See: https://sympa.inria.fr/sympa/arc/mpfr/2019-08/msg00005.html

	[tools/get_patches.sh] Fixed change in r13543 (the contents of PATCHES
	should still be written as a list of words separated by a space).

	Fixed src/get_patches.c generation that was changed in r13542.
	  * src/Makefile.am, tools/get_patches.sh: since get_patches.sh is
	    no longer run from $(top_srcdir), the PATCHES absolute pathname
	    now needs to be passed in argument.
	  * src/Makefile.am: fixed the get_patches.c rule (the automatic
	    variable $< was used with the meaning "first prerequisite" of
	    GNU Make; an "exit 1" was missing, so that a failure did not
	    abort "make" immediately).
	  * tools/get_patches.sh: detect errors with "set -e".

2019-07-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] Define get_patches.c as a built source to avoid a
	non-portable make rule ("/" character in target), causing an error
	in FreeBSD with its "make" command. This change should be OK as the
	get_patches.sh script that generates get_patches.c is very simple
	and portable. As a consequence, put get_patches.c in CLEANFILES.
	See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2019-07/msg00003.html

	[Makefile.am] Fixed dist-hook for ck-mparam, which was run from a
	read-only directory with "make distcheck" while a temporary file
	is created in the current directory, yielding a failure (ck-mparam
	has been run in dist-hook since r12533 on 2018-04-03).

	[tools/ck-mparam] Updated comment to warn that the source tree that is
	checked is the one that contains this script, not the one corresponding
	to the current working directory (the rule for the other scripts in the
	tools directory is currently different).

	[tools/ck-mparam] This script can now be run from any directory (which
	must still be writable). This change has been done to be able to run
	it from the build directory, as if it is run via "make distcheck" and
	a dist-hook rule, then neither the top-level directory nor the tools
	directory is writable.

2019-07-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_set_d64.c] Updated comment (only the x86 and x86_64 targets
	are affected).

	[tests/tget_set_d64.c] Improved a comment.

2019-07-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_set_d64.c] Avoid GCC bug 91226: wrong propagation of
	non-canonical _Decimal64 constant.

	[src/set_d64.c] In decimal64_to_string, log the memory representation
	of the _Decimal64 argument.

	[src/set_d64.c] In decimal64_to_string, log the various fields of the
	_Decimal64 argument whose memory data is regarded as a double (as this
	is the current implementation of this function).

	[tests/tget_set_d64.c] More output details in the noncanonical test.

	[tests/tget_set_d64.c] Improved the noncanonical test, but this does not
	solve the failure with gcc-snapshot.

	[tests/tget_set_d64.c] More meaningful name of a test with a
	non-canonical encoding and more details (fails with Debian's
	gcc-snapshot 10.0.0 20190718, trunk revision 273586).

2019-07-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": mention -Wsuggest-attribute=...
	options (but mpfr.h first needs some macros like __MPFR_SENTINEL_ATTR).

	Renamed MPFR_CONST_ATTR macro to MPFR_CONST_FUNCTION_ATTR in order to be
	similar to the MPFR_{PURE,HOT,COLD}_FUNCTION_ATTR macro names.

2019-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update concerning the MPFR manual:
	  * Updated information about the papersize issues (should be fixed,
	    but manual checking is recommended).
	  * Detailed English typography.
	  * Removed mention of the old texinfo bug 33329 (Debian bug 583558).

2019-07-08  Vincent Lefèvre  <vincent@vinc17.net>

	[codespell.*] Update for codespell 1.15.0.

	Fixed spelling mistakes found by codespell 1.15.0.

2019-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Added missing "const" qualifier to "char *" in a test;
	needed with GCC's "-Wwrite-strings -Werror".

2019-07-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] MPFR_GROUP_* macros / mpfr_group_t structure: when
	MPFR_GROUP_STATIC_SIZE is 0 (for testing), use a flexible array member
	(ISO C99) instead of a zero-length array (GNU extension, forbidden in
	ISO C).

	[tests/*.c] Added missing "const" qualifier to "char *" when this
	involves string literals (detected by using GCC's -Wwrite-strings
	option, via the default -Wdiscarded-qualifiers warning).

2019-07-01  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4,configure.ac] MPFR_C_LONG_DOUBLE_FORMAT: also detect
	clang's LTO.
	Note: no longer use $FGREP (see r13513) as its status is unclear on
	non-POSIX systems (though very probably available when $EGREP is).

	[acinclude.m4,configure.ac] For MPFR_C_LONG_DOUBLE_FORMAT, when the
	format is unknown and it is detected that LTO has been used, output
	"recognition prevented by LTO".
	Note: at the same time, since AC_PROG_FGREP was needed, replaced
	$EGREP by $FGREP when applicable.

	[acinclude.m4] MPFR_C_LONG_DOUBLE_FORMAT: improved comment and added a
	warning saying that this does not work with GCC's LTO (gcc -flto ...).

2019-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] simplified code of sub1sp1 for bx = cx

2019-06-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] About r13506-13509 and optimization: added a comment
	about Clang after some tests (without giving details, as in practice,
	this is more complex... but this is the general idea).

2019-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed typo

2019-06-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Added reference to GCC PR30315 about a misoptimization
	on x86/x86_64 (see r13506 and r13507).

	[src/sub1sp.c] Completed r13506: added MPFR_ASSERTD to justify the
	new code and give more information to the compiler; added comments
	about this optimization issue.

2019-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] small speedup (following discussion with Félix Breton)

2019-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a note about MPFR_DISABLE_IEEE_FLOATS.

	[doc/README.dev] Updated MPFR_DISABLE_IEEE_FLOATS description.

	[src/mpfr-impl.h] Undefine HAVE_LDOUBLE_IS_DOUBLE & HAVE_LDOUBLE_IEEE_*
	macros if MPFR_DISABLE_IEEE_FLOATS is defined, as the goal is to test
	code not relying on IEEE floats.

2019-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Code simplification with the generic
	LONGDOUBLE_NAN_ACTION macro (the WANT_LONGDOUBLE_VOLATILE macro is not
	needed as used only once, thus removed). Improved the related comment.

	[src] Instead of including <float.h> in volatile.c (r13493), do that
	unconditionally in mpfr-impl.h to make sure that macro definitions
	in this header file are always correct: some definitions depend on
	various macros from <float.h>, such as FLT_RADIX and DBL_MANT_DIG.

2019-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	applied patch from #21762
	(https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21762&group_id=136)

2019-05-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added another URL on undefined behavior.

2019-04-30  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Note that -static-libasan does not work with MPFR.

	[doc/README.dev] Update about the use of GCC's "-fsanitize=address".

2019-04-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/zeta.c] fixed out-of-bound read reported by Thomas Bailleux

	Note: This bug was introduced in r12066.

2019-04-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/ck-version-info] Minor corrections in a comment.

	[doc/README.dev] Update about the VERSION file:
	  * Added a paragraph on the meaning of the "-dev" suffix.
	  * Removed a confusing and useless "-dev" in an example.

	[tools/ck-news] Changed the condition of the test for FIXME or TODO:
	Previously it was disabled only for -dev versions. Now it is enabled
	only for releases and release candidates. This will allow snapshots,
	for which the NEWS file may still contain a FIXME or TODO.

	[tools/ck-version-info] Corrected check. Added explanations in comments.

	[tools/ck-version-info] Better error message if $vinfo is not defined.

	[src/Makefile.am] Added a comment.

2019-04-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Updated the list of rounding modes in the description
	of the mpfr_print_rnd_mode function. Choose the same order as in the
	"Rounding Modes" section in "MPFR Basics".

	[tools/mpfrlint] Lists of rounding modes: also check with the
	"Rounding Modes" section in "MPFR Basics".

	[src/print_rnd_mode.c] Added a comment to remember to update the manual.

	[tools/mpfrlint] Check that the lists of rounding modes in
	src/print_rnd_mode.c and doc/mpfr.texi are identical.

	[src/mpfr.h] Added a blank line (grouping of function declarations).

	Added support for GCC's returns_nonnull attribute (with GCC 4.9+).

	[TODO] Update about GCC's nonnull and returns_nonnull attributes.

2019-04-16  Vincent Lefèvre  <vincent@vinc17.net>

	New macro MPFR_FALLTHROUGH to avoid -Wimplicit-fallthrough warnings
	with GCC 7+. This macro also makes the code more readable by bringing
	the attention on an unusual fallthrough in a switch case.
	  * src/mpfr-impl.h: define this macro.
	  * src/vasprintf.c: use this macro in a case of fallthrough.

2019-04-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Minor bug fix: when an integer is to be read for
	  the field width or precision, regard strings like "17*" as invalid
	  instead of regarding it as "*" (ignoring the integer that precedes,
	  except in case of overflow). In C's printf, such an invalid string
	  yields undefined behavior, but in MPFR, we normally print the
	  invalid format specifier as a literal string in such a case.
	  Bug detected with -Wimplicit-fallthrough from GCC 7+.
	[tests/tsprintf.c] Added non-regression test.

2019-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Updated --enable-logging description.

	[acinclude.m4] When logging support is requested, run a test to check
	that code with nested functions and the 'cleanup' attribute can be
	compiled, as these features are needed.

	[configure.ac] AC_ARG_ENABLE(float128,...): updated comment and
	description.

	[configure.ac] Updated comment for AC_ARG_ENABLE(decimal-float,...).
	  * Removed information about very old GCC versions.
	  * _Decimal128 is considered too, in addition to _Decimal64.
	  * No longer just a GCC extension, but part of ISO/IEC TS 18661.
	  * Added a FIXME for new options about _Decimal64 and _Decimal128.

	[configure.ac] Cleanup: moved some AC_ARG_ENABLE's where they should be.

2019-03-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c]
	  * Corrected FIXME by modifying the assertion. The failure could occur
	    only when mpfr_intmax_t has the same size as int (which is the case
	    when long = int and either intmax_t and long long are not available
	    or intmax_t = long = int), and only when INT_MIN is provided as a
	    field width argument.
	  * Related to that, updated a test to improve optimization.
	  * Added comments.

	[src/vasprintf.c] Added a FIXME: tsprintf yields an assertion failure
	with sizeof(mpfr_intmax_t) = 4 (which was not tested until now).

2019-03-29  Vincent Lefèvre  <vincent@vinc17.net>

	Cleanup / fixes related to intmax_t, mpfr_intmax_t, etc.

	The issues were:
	  * The build of the tests (make check) could fail with CFLAGS implying
	    "-std=c90 -Werror=format", i.e. if intmax_t was available but the
	    use of the "j" printf length modifier made the compilation fail
	    (its unconditional use was incorrect anyway).
	  * MPFR_INTMAX_MAX had definitions in both mpfr-impl.h & mpfr-intmax.h,
	    with inconsistent usage.

	Detailed changes:
	  * acinclude.m4: removed the definition of MPFR_PRINTF_MAXLM, which
	    could be incorrect (large numbers were not tested to select its
	    value); in the MPFR_FUNC_GMP_PRINTF_SPEC macro, check sprintf()
	    in addition to gmp_sprintf() as it is now also used in the tests;
	    updated some comments and messages.
	  * src/mpfr-impl.h: removed the MPFR_*INTMAX* definitions; they had
	    been added due to
	      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582698
	    with -ansi -pedantic-errors, but this issue was fixed in GCC 4.8
	    (released 6 years ago), so that they are no longer needed.
	  * src/mpfr-intmax.h: completed the definitions; mpfr_intmax_t is now
	    the largest integer type available and fully working (in particular
	    with printf), thus it may be smaller than intmax_t.
	  * doc/README.dev: updated the description of mpfr_intmax_t, etc.
	  * tests/tversion.c: output sizeof(mpfr_intmax_t) too.
	  * Various .c files in src and tests related to (u)intmax_t: use
	    INTMAX_MAX instead of MPFR_INTMAX_MAX, etc. as Debian bug 582698
	    (mentioned above) no longer occurs and mpfr_intmax_t may be smaller
	    than intmax_t; use the "j" printf length modifier instead of
	    MPFR_PRINTF_MAXLM, and protect it with "#ifndef NPRINTF_J"
	    (only the tests are concerned, so that this is not an issue).

2019-03-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/urandomb.c] Removed the FIXME: this is a bug in GMP or in Clang's
	memory sanitizer.

	[src/urandomb.c] Added a FIXME (use-of-uninitialized-value with
	Clang's memory sanitizer).

2019-03-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/printf.c] Removed unused definitions.

2019-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update about coverage:
	  * Mention not to enable optimizations.
	  * Replaced "-fprofile-arcs -ftest-coverage" by "--coverage", as
	    this is what is used by the tools/coverage script (note: this
	    is a synonym when compiling, but also allows the right options
	    to be used when linking, thus might be better in doubt).

2019-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Use MPFR_DBL_* macros when necessary.

	[tools/mpfrlint] For consistency, use "[ch]" instead of "{c,h}".

	[tools/mpfrlint] Detect use of DBL_* macros instead of MPFR_DBL_* ones.

	[tools/mpfrlint] Improved message about division by zero.

	[doc/README.dev] Improved description of MPFR_ERRDIVZERO.
	[tools/mpfrlint] Added a comment about division by zero.

	[tools/mpfrlint] Check that native FP division by zero is not used.

2019-01-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] In check-exported-symbols, replaced grep by $(GREP)
	as usual and like in check-gmp-symbols.

2019-01-30  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Updated comment about default options in CFLAGS for GCC.

	Update about CC / CFLAGS settings from GMP (__GMP_CC / __GMP_CFLAGS).
	  * configure.ac: remove -pedantic unconditionally; since r7044, it was
	    removed only when logging was enabled, as at that time only logging
	    was using C extensions.
	  * NEWS: added a line about this change.
	  * INSTALL: updated the note about CC / CFLAGS, removing the obsolete
	    reference to GMP 4.3.0 at the same time.

2019-01-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/announce-text] Corrected subject for Release Candidate > 1.

2019-01-25  Vincent Lefèvre  <vincent@vinc17.net>

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[NEWS] Update about shared caches.

	[NEWS] Added: "Shared caches: cleanup."

	[src/mpfr-thread.h] Fixed the lock macros:
	  * in case of failure, one must abort, otherwise this would generally
	    be undefined behavior;
	  * added missing "do {} while (0)" (currently not mandatory).

	[src/mpfr-impl.h] Updated a comment about MPFR_DECL_INIT_CACHE and
	the shared cache.

	[acinclude.m4] Avoid a warning with the pthread_rwlock_t test,
	as it is an error with -Werror.

	[acinclude.m4] Fixed another C++ compatibility issue detected by
	the -Werror=c++-compat GCC option (it led the "long double" format
	to be unknown).

2019-01-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] Fixed C++ compatibility issue (arithmetic on enum)
	detected by the -Werror=c++-compat GCC option.

2019-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] By default (i.e. if CFLAGS is not already set), if
	the compiler is GCC not in C++ mode, add the -Wc++-compat warning
	since we expect the code to compile with a C++ compiler.

2019-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcheck.c] Corrected meaningless error message.

	[doc/mpfr.texi] Minor correction for non-tex versions.
	Thanks to Trevor Spiteri for the bug report.

2019-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	Moved the compatibility test of the configure options even earlier, from
	acinclude.m4 to configure.ac, just after the code that defines them.
	Also added an associated AC_MSG_CHECKING message for better clarity.

	[acinclude.m4] Simplified a message.

	[tests/tversion.c] When the shared cache is enabled, also output the
	lock method (this information has been lost in r13032).

	[acinclude.m4] When checking support for POSIX threads (pthread), also
	check that pthread_rwlock_t is supported, as it is needed by MPFR and
	conditionally defined in glibc's bits/pthreadtypes.h (via <pthread.h>).

	Cleaned up configure code related to threading and the shared cache.
	  * acinclude.m4:
	      - detect incompatibilities between configure options at the
	        beginning of MPFR_CONFIGS, forcing enable_thread_safe to
	        "no" or "yes" when necessary, so that the subsequent code
	        can rely on that;
	      - check ISO C11 thread support and/or POSIX thread support
	        only when necessary;
	      - handle --enable-shared-cache early in MPFR_CONFIGS, because
	        the use of POSIX threads (pthread) may need to change CC,
	        CFLAGS, and LIBS (thus affecting other tests);
	      - test $enable_shared_cache instead of $mpfr_want_shared_cache;
	      - removed the now useless MPFR_CHECK_SHARED_CACHE function.
	  * configure.ac: no longer set the mpfr_want_shared_cache variable,
	    as enable_shared_cache (now used) already has the same usage.
	Note: currently,
	  ./configure --enable-shared-cache CFLAGS="-std=c99"
	still succeeds and still makes the compilation fail. This seems to
	be due to a limitation of AX_PTHREAD, which just tests linking, not
	compilation.

	[acinclude.m4] In MPFR_CHECK_SHARED_CACHE (used when the shared cache
	was requested), also set CC="$PTHREAD_CC" as documented by ax_pthread
	(autoconf-archive). This is not guaranteed to work, but according to
	the ax_pthread.m4 source, in the cases where "$PTHREAD_CC" != "$CC",
	not setting it will probably not work either.

	[src/mpfr-impl.h] Added a comment about the cache-related types, which
	depend on the locking methods.

2019-01-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Updated comment about GCC bug 86554: now fixed in
	the GCC trunk.

2019-01-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Replaced "env -u DISPLAY" by "env DISPLAY=''" as
	the -u option is not supported by NetBSD.

	Updated files:
	  * COPYING from https://www.gnu.org/licenses/gpl-3.0.txt
	  * COPYING.LESSER from https://www.gnu.org/licenses/lgpl-3.0.txt
	These are URL updates and cosmetic changes.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC0 svn log -rHEAD:0 -v".
	Note: For r5400, this changes an incorrect update done via r13372 back
	to the old log message, as the URL in this log message here describes
	a change in one of the files.

	[doc/README.dev] Updated some URL's (http → https).

	[doc/texinfo.tex] Update to 2018-02-12.17 with "autoreconf -i -f".

	Updated the www.gnu.org URL's (http → https) on all the files with:
	  perl -pi -e 's,http://www.gnu.org/,https://www.gnu.org/,g' **/*(.)
	under zsh.

	[tests/tstrtofr.c] Updated comment about GCC bug 86554: the MPFR build
	is still affected with the latest gcc-snapshot version (20190102-1)
	when using --with-gmp-build=... together with --enable-assert.

2019-01-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Added a comment about GCC bug 86554: the MPFR build
	seems no longer affected by recent gcc-snapshot versions.

2019-01-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2019 with
	  perl -pi -e 's/ (\d{4}-)?(2018)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh. Removed 2018 from the example in the doc/README.dev file.

2018-12-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmma.c] Added double_rounding test to trigger errors before
	the fix in mpfr_set_1_2 (set.c r13347).

	[src/set.c] In mpfr_set_1_2, evaluate MPFR_PREC(s) just once.

	[src/set.c] Clarified the mpfr_set_1_2 description.

	[src/set.c] For mpfr_set_1_2, corrected the comments and simplified the
	generic algorithm (there is no need to distinguish the rounding modes,
	except for the double-rounding test, and this simplification avoids the
	non-portable inex | inex2).

2018-12-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mini-gmp] Removed "#define GMP_LIMB_BITS 8": it is not used by
	mini-gmp.h and yields a failure when building mini-gmp.c (which has
	its own definition of GMP_LIMB_BITS, equivalent but not identical).

	[configure.ac] Support mini-gmp with reduced limb size, in the case
	GMP_NUMB_BITS is not defined: guess GMP_NUMB_BITS from the size of
	mp_limb_t instead of the size of unsigned long.

	[doc/mini-gmp] Correction to avoid a "conflicting types for 'mp_limb_t'"
	error.

2018-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] added note about using mini-gmp (development version) with
		       reduced limb size

	[src/set.c] fixed double-rounding bug in mpfr_set_1_2
	[tests/tset.c] added corresponding tests

	[tests/tset.c] added a test of test_set_1_2(), which currently fails

	[tests/tcan_round.c] disabled tests that don't agree with mpfr_can_round documentation

2018-12-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.

	[tests/tsprintf.c] Updated a comment about ISO C vs POSIX for snprintf.

	[TODO] Added item: new functions mpfr_cmp_uj and mpfr_cmp_sj.

	[TODO] Removed obsolete "check again coverage" from 2007.

2018-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] fixed same issue as in r13338 and r13339

	[src/mul.c] fixed bug in mpfr_mul() when sizeof(mp_limb_t) < sizeof(mpfr_exp_t)
		    (same issue as in r13338)

2018-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] For MPFR_WANT_ASSERT >= 2: minor changes in the code;
	corrected a comment (even with mp_limb_t >= mpfr_exp_t, there was an
	issue: the expression b1 - 1 + cc was computed in unsigned arithmetic,
	then converted to mpfr_exp_t, with an implementation-defined result
	when -1 was expected, i.e. with b1 = cc = 0).

	[src/mul.c] Corrected a typo in a comment.

	[src/mul.c] Fixed error message with MPFR_WANT_ASSERT >= 2.

2018-12-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] For count_leading_zeros (MPFR_LONG_WITHIN_LIMB
	not defined), no longer assume GMP_NUMB_BITS <= 32.

	[src/mpfr-gmp.h] Fixed count_leading_zeros (avoid undefined behavior
	on shift counts, which must be nonnegative and smaller than the width
	of the type of the shifted value).

2018-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] fixed reference routine mpfr_mul3() when sizeof(limb) < sizeof(exp)

	[src/mpfr-gmp.h] fixed count_leading_zeros for mini-gmp with 32-bit limb

2018-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] added remark about random functions

	[tests/tdiv.c] fixed test_20151023 (was giving an error with micro-gmp-8
	and GMP_CHECK_RANDOMIZE=1544431052619574)

2018-12-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Added a test for some avoidable use of gmp_printf.

2018-12-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests]
	  * mpfr-test.h, tests.c: added n_trace function to output a mpn.
	  * tcan_round.c: use n_trace instead of gmp_printf ("%NX\n",...),
	    which is not available with mini-gmp.

2018-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcan_round.c] Corrected all the error messages for mini-gmp.

	[tests/tcan_round.c] Corrected error message for mini-gmp.

2018-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpow_z.c] Another fix and minor improvements.

	[tests/tpow_z.c] Fixed a test (midpoint case) that was failing
	with micro-gmp-8 and GMP_CHECK_RANDOMIZE=1544033327230569.

	[tests/tpow_z.c] Fixed a test for MPFR_RNDF: do not check the ternary
	value (a failure was occurring with --with-mini-gmp=.../micro-gmp/8
	and GMP_CHECK_RANDOMIZE=1544025040809270).

	[tests/tpow_z.c] Improved error message.

	[src/mpfr-mini-gmp.c] Added missing "void" in function prototype.

	[configure.ac] When building against mini-gmp, check the availability of
	lrand48, in particular because it is not part of the ISO C standard.

2018-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-mini-gmp.c] put back unconditional assert from r13316 (removed by error)

	[src/mpfr-mini-gmp.c] improved random_limb (the low bits of lrand48 are bad)
			      and fixed gmp_urandomm_ui

2018-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.c] gmp_urandomm_ui: added a MPFR_ASSERTN
	unconditionally, as n == 0 is always forbidden.

2018-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-mini-gmp.c] the static assert introduced in r13313 makes the
			      compilation fail for 8-bit limbs, while the code
			      was valid for n <= 256 in that case

2018-12-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.c] Fixed types.

	[src/mpfr-mini-gmp.c] Added a static assertion to make sure that
	the MPFR_ASSERTD added in r13312 is valid.

2018-12-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-mini-gmp.c] gmp_urandomm_ui did not generate uniform values

2018-12-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d.c] Improved comment.

2018-11-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] About r13308, added references to the bugs.

	[tests/Makefile.am] Unset DISPLAY as it is not needed and it can yield
	error messages when running the tests with LOG_COMPILER=wine (for builds
	with MinGW).

	[tests/tversion.c] Updated a comment about an output issue with MinGW,
	with the test run under Wine (which is really the cause of the issue).

2018-11-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] In case of failure of some particular test, output
	the probable cause of this failure (GCC bug 86554) with a workaround.

2018-11-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Updated a comment about a printf issue with MinGW.

	[src/strtofr.c] Added a FIXME about the error analysis (info that was
	part of the FIXME resolved in r13303 and inadvertently dropped).

	[src/strtofr.c] Resolved a FIXME; tstrtofr no longer fails due to
	bug20181127 with 8-bit limbs (micro-gmp/8).

	[tests/tstrtofr.c] Added bug20181127 (test found with random_tests),
	which fails with 8-bit limbs (micro-gmp/8).

	[src/mpfr-impl.h] Added a comment with a warning concerning the
	  meaning of MPFR_EXP_FSPEC.
	[tests/tstrtofr.c] Fixed a MPFR_EXP_FSPEC related bug in a test
	  for _MPFR_EXP_FORMAT <= 2, e.g. with -D_MPFR_PREC_FORMAT=2.

	[tests/tdiv.c] Fixed bad format string for an error message, detected
	with -D_MPFR_PREC_FORMAT=2 (using -Werror...).

2018-11-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Moved bug20180908() from tget_str.c to tset_str.c since it tests
	mpfr_set_str() only. This test was introduced in r13164.

2018-11-23  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] + More UBF functions.

	[doc/mpfr.texi] Updated the month.

	[src/strtofr.c] Changed some unsigned long to unsigned int.

	[src/strtofr.c] Some cleanup in parsed_string_to_mpfr. Avoid a potential
	integer overflow in very high precision if mp_size_t < mpfr_prec_t.

2018-11-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Updated FIXME, due to new tests added to
	tests/tstrtofr.c in r13278-13279,13286-13288.

	[src/nbits_ulong.c] Added missing initialization from r13269
	when MPFR_LONG_WITHIN_LIMB is not defined.

	[tests/tstrtofr.c] Resolved the FIXME and fixed the issue related to
	the old mpfr_get_str description (see r13283).
	Note: with the later fix r13289, a test still fails with 8-bit limbs
	(incorrect exponent, possibly corresponding to the FIXME just before
	"exp = GMP_NUMB_BITS - count;" in src/strtofr.c).

	[tests/tstrtofr.c] Added comments, including a FIXME.

	[tests/tstrtofr.c] Resolved the FIXME for the random tests, and
	increased the number of tests to trigger a failure.

	MPFR manual: corrected/completed the mpfr_get_str description in order
	to follow the historical behavior and GMP's mpf_get_str function.
	(Discussion in the Trier meeting.)

	[src/get_str.c] Code style.

	[doc/README.dev] Update about issues with mixing signed/unsigned types.

	[doc/README.dev] Added a note about the disallowed conversions between
	function pointers and other kinds of pointers (including to void *).

2018-11-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Added a FIXME, which explains the current failure.
	But there is currently an inconsistency in mpfr_get_str, whose digits
	are not specified:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00021.html

	[tests/tstrtofr.c] Added random tests, which currently fail.

2018-11-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] mpfr_can_round_raw: improved the code structure about
	rnd1 and rnd2, making clear that they are not changed several times;
	avoid the use of cc with 2 different meanings in the same code path.

2018-11-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] fixed bug in mpfr_can_round when rnd2=RNDF, rnd1 is a
			   directed rounding, and the input is exact

2018-11-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment.
	In short, the current tstrtofr.c tests seem to always be hard-to-round
	cases. The consequence is that some parts of the code are run, but not
	completely tested, because for these cases, some intermediate results,
	potentially incorrect, are thrown out due to the next Ziv iteration!

	[src/strtofr.c] parsed_string_to_mpfr: minor changes.

	[src/strtofr.c] parsed_string_to_mpfr: added log messages.

	[src/strtofr.c] Minor change to use MPFR_ASSERTD.

	[src/{int_ceil_log2.c,mpfr-impl.h}] Consistent postcondition for
	MPFR_INT_CEIL_LOG2 and __gmpfr_int_ceil_log2 (result >= 0).

	[src/nbits_ulong.c] Code refactoring. Added {pre,post}condition.

	[src/strtofr.c] parsed_string_to_mpfr: removed an incorrect cast.

	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (again,
	another issue).

	[src/strtofr.c] parsed_string_to_mpfr: updated a FIXME comment (there
	is another issue to solve first).

	Removed trailing whitespace.

	[src/strtofr.c] parsed_string_to_mpfr: updated a comment (useless code
	in this function or incomplete tests).

	Avoid GCC's -Wcast-align warnings with 8-bit limbs (a correct alignment
	is ensured by the code itself, and GCC cannot check just from a cast).

	[src/strtofr.c] parsed_string_to_mpfr: updated comments.

2018-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] parsed_string_to_mpfr: more code review, with minor
	changes and corrections + a FIXME.

	[src/strtofr.c] Typo.

	[src/strtofr.c] Fixed an allocation bug for GMP_NUMB_BITS = 8.

	[src/strtofr.c] Updated a comment: the issue with mpn_set_str found
	in 2013-12 (see r8722) was actually an error in the GMP manual.

	[src/strtofr.c] parsed_string_to_mpfr: improved an assertion; comments.

2018-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcan_round.c] fixed some TODOs, which exposes a bug

2018-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Near the beginning of parsed_string_to_mpfr: corrected
	comments; added an assertion; minor change of a test.

2018-11-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mulders.c] fixed issue with --enable-gmp-internals
	[tune/tuneup.c] likewise
	(see https://sympa.inria.fr/sympa/arc/mpfr/2018-11/msg00015.html)

2018-10-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-longlong.h] applied patch from https://sympa.inria.fr/sympa/arc/mpfr/2018-10/msg00010.html

2018-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	[codespell.ignore] Also ignore "ue" (codespell 1.14).

2018-10-01  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac,src/Makefile.am] About the --with-mini-gmp support, since
	there are some advantages with the new code, one will probably not go
	back. Thus removed the references to the Automake 1.15 bug and to the
	old code. Also removed the mini_gmp_path=. workaround needed with the
	old code (even with Automake 1.16), which had been added in r13217.
	Also slightly improved the setup for mini-gmp.

	[doc/with-mini-gmp.patch] Updated comment.

	[configure.ac,src/Makefile.am] Avoid a "make" failure due to a bug in
	Automake 1.15 automatic dependency tracking: instead of using mini-gmp
	directly in an external directory with a $(mini_gmp_path) variable in
	src/Makefile.am, make the configure script add symbolic links to the
	mini-gmp sources in the build directory, and use these symbolic links
	for the MPFR build (as if they were plain files).
	Tested under various conditions: static and shared; separate source and
	build directories; changing the mini-gmp version without "make clean".

2018-09-28  Vincent Lefèvre  <vincent@vinc17.net>

	Added doc/with-mini-gmp.patch file (for the developers):
	Modifications to configure.ac and src/Makefile.am that had been done
	for --with-mini-gmp support. This is kept for the reference, as changes
	may be needed as a workaround to a bug fixed in GNU Automake 1.16, and
	other future changes might break things (to remember what was working
	at this time).

2018-09-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mini-gmp] Update.

2018-09-19  Vincent Lefèvre  <vincent@vinc17.net>

	[Makefile.am] Distribute the doc/mini-gmp file.
	[configure.ac] For --with-mini-gmp, say:
	  "(experimental, please read doc/mini-gmp file)"

	[src/Makefile.am] Added nodist_ for mini-gmp.{c,h} so that these files
	(not part of MPFR) are not put in the tarballs by "make dist".

	Removed --enable-mini-gmp configure option.
	  * NEWS: say that it is replaced by --with-mini-gmp.
	  * configure.ac: --enable-mini-gmp removed.
	  * doc/mini-gmp: update.

	[src/mpfr-mini-gmp.c] Missing #else (from r13156).

	[configure.ac] When using --with-mini-gmp, define GMP_NUMB_BITS if this
	macro is not already defined in mini-gmp.h (this is done a bit like
	with --enable-mini-gmp, but the handling in this option is buggy as
	GMP_NUMB_BITS is defined with AC_DEFINE_UNQUOTED unconditionally,
	though is most cases the contents of the macros are the same).

	[configure.ac] Do not split "Setup GMP detection". When building
	MPFR against mini-gmp, do not run any "Setup GMP detection" test
	(in particular, no longer check gmp.h, as it is useless).

	[src/mpfr-mini-gmp.h] Removed incorrect GMP_NUMB_BITS macro definition,
	and this macro needs to be usable in preprocessor tests, and sizeof and
	types are not available at this level. GMP_NUMB_BITS must be defined by
	mini-gmp.h, by the configure script, or by the user.

	[tools/mpfrlint] Update due to r13221.

2018-09-18  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Run tversion at the beginning of the tests,
	then show its output and svnversion's output too.

	[src/mpfr-mini-gmp.h] Added a FIXME (failure with a mini-gmp that
	does not define GMP_NUMB_BITS, such as the official one).

	[tests/random2.c] Avoid undefined behavior on shift count.

	[src/mpfr-impl.h] Fixed MPFR_LIMB_MASK() macro.

	[configure.ac] Avoid a configure failure with automatic dependency
	tracking when --with-mini-gmp is not used (bug in Automake?).

	[NEWS] + Mini-gmp support via the --with-mini-gmp configure option.

2018-09-17  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the with-mini-gmp branch into the trunk: new --with-mini-gmp
	configure option to build MPFR against mini-gmp (instead of GMP).

	[doc/mini-gmp] Update.

	Merged the latest changes from the trunk.

	[src/mul_ui.c] Better code organization (with the MPFR_RET at the right
	place). Corrected indentation after #else.

2018-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-mini-gmp.c] added #if 0 ... #endif for mpz_dump (unused)
	[src/mul_ui.c] fixed compiler warning for limb < long

2018-09-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] Update for mini-gmp (install mini-gmp.h).

	Merged the latest changes from the trunk (bug fix for 8-bit limb).

	[tests/random2.c] Fix for 8-bit limb.

	Merged the latest changes from the trunk.

	[tests/tests.c] Define only one buffer in test_version().

	[tests/random2.c] Improved code by using MPFR_LIMB_* macros.

	[src/mpfr-impl.h] Improved MPFR_LIMB_* macros for mp_limb_t < int
	(e.g. 16-bit or 8-bit limb), as in such a case, integer promotion
	transforms mp_limb_t to int.

2018-09-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tests.c] fixed compiler warning

2018-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk (bug fixes).

	[src/get_si.c] Code refactoring/simplification like what has been
	done for get_ui.c in r13185, fixing also an integer overflow when
	MPFR_LONG_WITHIN_LIMB is not defined.

	[tests/random2.c] Fix for 16-bit limb.

	[src/add1.c] Fix for 16-bit limb.

	[src/mpfr-gmp.h] Fixed bug in add_ssaaaa / sub_ddmmss from r13081.

	Completed --with-mini-gmp support (not fully tested).

	Merged the latest changes from the trunk.

	[src/Makefile.am] Moved a comment in a better place.

	[configure.ac] Define MINI_GMP Automake conditional (AM_CONDITIONAL).

2018-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	Started to implement --with-mini-gmp (building mini-gmp and linking
	not correctly handled yet, thus "make check" failure is expected).

	[Added during the Subversion to Git conversion]
	This commit includes a merge of r13191 from the trunk.

2018-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Typo.

	[configure.ac] Updated comments about configure options for mini-gmp.

2018-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsin.c] reduce REDUCE_EMAX with mini-gmp

2018-09-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ui.c] Added assertions.

	[src/get_ui.c] Code refactoring/simplification.

	[src/sin_cos.c] Added assertions protecting against buffer overflow.

2018-09-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sin_cos.c] fix for small limb size

2018-09-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.h] Fix: Since gmp_version is not defined in mini-gmp,
	we must not declare it (otherwise one would get a link failure instead
	of a compilation failure if gmp_version is used by mistake).

	[tests/tests.c] Improved change in r13179 for mini-gmp.

	[configure.ac] Do not check for CC and CFLAGS in gmp.h if mini-gmp is
	used, i.e. if --enable-mini-gmp (current option) or --with-mini-gmp
	(future option) is given.

2018-09-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tests.c] libgmp is not defined with mini-gmp (issue found with -O0)

2018-09-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.h] Removed #include lines as mpfr-mini-gmp.h is
	included only in mpfr-impl.h, which already does these #include's.

	[src/mpfr-impl.h] Check that MPFR_HAVE_GMP_IMPL and MPFR_USE_MINI_GMP
	are not both defined.

	[src/mpfr-mini-gmp.c] Removed #include "mpfr-mini-gmp.h" as this include
	is already done in mpfr-impl.h (in both cases, when MPFR_USE_MINI_GMP is
	defined).

	[src/rec_sqrt.c] Replaced "if (GMP_NUMB_BITS >= 16)" by a preprocessor
	test "#if GMP_NUMB_BITS >= 16" like earlier. Use static assertions.

	[src/rec_sqrt.c] Fixed types for 8-bit limb. Removed useless casts.

	[src/rec_sqrt.c] Fixed a type from r13172 (int was obviously too short
	and was yielding a segmentation fault).

2018-09-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/rec_sqrt.c] fixed for 8-bit limb

	[tests/tcan_round.c] fixed test for small value of GMP_NUMB_BITS

	[src/strtofr.c] fixed r13168: in case exact=0, mpn_rshift was not done

	[tests/tsqrt.c] modified test_sqrt1n() so that it passes with 8-bit limbs

2018-09-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Replaced "exact &=" by "exact = exact &&" as usual.

2018-09-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] fix for 8-bit limb

	[src/strtofr.c] added comment

2018-09-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2018-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] fix from r13163 was incorrect
	[tests/tget_str.c] added a testcase, and fixed an error message

2018-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] resolved a FIXME

	[tests/tdiv_ui.c] fixed corner_cases() test

	[src/int_ceil_log2.c] fixed __gmpfr_int_ceil_log2 for limb < long

2018-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/random2.c] fixed mpfr_random2 for GMP_NUMB_BITS <> 64

	[src/mpfr-mini-gmp.c] fixed another compiler warning

	[src/get_ui.c] fixed compiler warning

	some fixes for 8-bit limb support

	adapt to 8-bit limbs (work in progress)

	[tests/tl2b.c] extend to 8-bit limb

	[src/mpfr-gmp.h] fix for 8-bit limb

2018-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added @tie{} (normal non-breakable space) at various
	places to avoid unwanted line breaking.

	[doc/mpfr.texi] mpfr_rootn_ui, mpfr_root: changed k to n in order to
	match IEEE 754-2008. Also improved the description of mpfr_rootn_ui,
	mentioning the P754/D2.41 draft of the next IEEE 754 standard because
	IEEE 754-2008 is incomplete.

2018-09-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] !mpfr_equal_p is better than mpfr_cmp.

2018-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/rint.c] fixed bug with 16-bit limb
	             (found by trint with GMP_CHECK_RANDOMIZE=1536206745598891)

	[tests/tdiv.c] fixed test_20151023()

2018-09-06  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

	[src/get_ld.c] Removed incorrect and useless assertions (manl
	has exactly 32 bits, thus a shift count of 32 bits is invalid,
	but also useless).

2018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_ld.c] fixed (hopefully definitively) for 16-bit limb

2018-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d64.c] 2 fixes concerning rp[]:
	  * If GMP_NUMB_BITS >= 64, there is a shift of 32 bits, thus one
	    uses mp_limb_t (> 32 bits) instead of unsigned int.
	  * Otherwise use unsigned long as an unsigned int might be on 16 bits.

	[src/mpfr-impl.h] Indentation.

	[src] Moved mpfr_nbits_ulong to its own file "nbits_ulong.c".

	[src/pow_si.c] MPFR_NEED_LONGLONG_H is still needed.

	[tests/tget_set_d64.c] Removed xxx suffix added in r13139 (by mistake?).

2018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/exp_2.c] export (internally) nbits_ulong (renamed to mpfr_nbits_ulong)
	[src/mpfr-impl.h] added prototype for mpfr_nbits_ulong
	[src/pow_si.c] fixed for 16-bit limb

	[src/get_d64.c] fixed for 16-bit limb
	[src/set_d64.c] likewise
	[tests/tget_set_d64.c] improved error message

2018-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ld.c] In the case GMP_NUMB_BITS == 16, cast to unsigned long
	instead of unsigned int since shift counts can be up to 16 and an int
	might be on 16 bits only.

2018-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_ld.c] when denorm=16, a 32-bit shift on an unsigned int is undefined

	[src/exp_2.c] fix for 16-bit limb
	[tests/texp.c] improve error message

	[src/mpfr-mini-gmp.c] fixed gmp_urandomb_ui for 16-bit limb, added mpz_dump
	[tests/terandom_chisq.c] more details in case of error

	[src/random_deviate.c] fixed typo

2018-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_z_exp.c] Avoid a GCC bug.

	[tests/tset_z_exp.c] Attempt to fix randexp, but GCC complains.

	[src/mpn_exp.c] Avoid useless "while" in nbits_mpfr_exp_t.

2018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tset_ld.c] give more digits in case of error
	[tests/tget_ld_2exp.c] added one test (currently fails for 16-bit limb)

	[src/set_ld.c] partial fix for 16-bit limb (typo + nice bug!)

	[tests/tset_z_exp.c] fixed infinite loop in test code for limb < mpfr_exp_t

	[src/mpn_exp.c] adapt to bitsize(mpfr_exp_t) > GMP_NUMB_BITS

2018-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Code simplification.

	[src/round_prec.c] MPFR_LIMB is actually useless now...

	[src/round_prec.c] Code style and potential correction for 16-bit limb.

	[src/sqrt_ui.c] Moved MPFR_SAVE_EXPO_FREE after mpfr_sqrt because
	the uu argument may be out of range and there is no guarantee that
	mpfr_sqrt can handle that. Improved consistency; code refactoring.

2018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] fixed for 16-bit limb
	[tests/tcan_round.c] improve error message

	[src/sqrt_ui.c] fixed for 16-bit limb

2018-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_si.c] Make sure that a left shift is done on an unsigned type
	(as a left shift on a 0 of signed type was not specified by C90).

2018-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] fix for 16-bit limbs, and added comments

	[src/rint.c] fix for 16-bit limb

	[tests/tdiv.c] more detailed error message

	[src/get_si.c] forgot cast when long > limb

	[src/get_ui.c] forgot cast when long > limb

2018-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/odd_p.c] fix for 16-bit limb

	[tests/tbeta.c] exit at the first error

	[src/get_si.c] adapt to 16-bit limbs
	[src/get_ui.c] likewise

	[src/cmp_si.c] adapt for reduced exponent range for 16-bit limbs
	[src/cmp_ui.c] likewise

2018-09-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpfr-test.h] If MPFR_TESTS_ABORT is defined, replace exit(1) by
	  abort(), thus with a core dump.
	[doc/README.dev] Document MPFR_TESTS_ABORT.

2018-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tgeneric.c] revert 13107 (abort might lose some data in open files)
	[src/mul_ui.c] fixed for 16-bit limb and reduced exponent range

	[tests/tgeneric.c] replace exit(1) by abort() to allow debugging with gdb

	[src/isinteger.c] fix for 16-bit limb

	[src/cmp_si.c] fixed error for 16-bit limb
	[src/cmp_ui.c] adapted to 16-bit limb

2018-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/cmp_si.c] adapt for 16-bit limb

2018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul_ui.c] adapt for 16-bit limb

2018-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.c] Fixed potential undefined behavior (when mp_limb_t
	is defined as an unsigned short) with MPFR_LIMB_LSHIFT.

	[src/mpfr-impl.h] Define MPFR_LIMB_LSHIFT(x,c) macro to do a left shift,
	making sure that the shifted argument is unsigned (needed due to the
	integer promotion rules when mp_limb_t is defined as an unsigned short).
	[src/add1.c] Fixed potential undefined behavior with MPFR_LIMB_LSHIFT.

	[src/mpfr-impl.h] Corrected a comment and added a warning.

2018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-impl.h] fix MPFR_INT_CEIL_LOG2 for 16-bit limb

	[src/set_si_2exp.c] support 16-bit limbs

2018-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ui_2exp.c] Code formatting. Removed a FIXME (done in r13078).

2018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] missing cast

	removed TEST_FLAGS stuff

2018-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] More correction about the MPFR_TESTS_TIMEOUT macro.

	[doc/README.dev] Clarification about MPFR_TESTS_TIMEOUT.

	[doc/README.dev] Reverted r13090: this was already mentioned at the
	right place (do not mix up macros and environment variables).

2018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] added missing udiv_qrnnd for 16-bit limb
	[src/mul.c] fixed for 16-bit limb
	[src/ui_div.c] likewise

	[README.dev] mention that MPFR_TESTS_TIMEOUT only works with --enable-tests-timeout

2018-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fix for MS Windows.

	[src/mpfr-impl.h] Make sure that MPFR_LONG_WITHIN_LIMB is defined if
	__GMP_SHORT_LIMB is not defined, as required by the current code.

	[src/mpfr-gmp.h] Untabified.

2018-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-impl.h] fixed wrong #ifdef

	[src/mpfr-mini-gmp.c] fix for 16-bit limb

	[src/add1.c] fix for 16-bit limb
	[tests/tadd.c] more output in case of error

	[src/add1.c] fixed compiler warning

	[src/mpfr-gmp.h] removed leftover debug statement
	[src/mpfr-impl.h] added MPFR_LIMB macro
	[src/sub1sp.c] fix for 16-bit limb

2018-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] more changes for 16-bit limb
	[src/mpfr-impl.h] mpfr-longlong.h should not be used for limb < long

	[mpfr-gmp.h] added comment

	[mpfr-mini-gmp.c] fix for 16-bit limb

	[src/set_ui_2exp.c] fix for 16-bit limb

2018-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_p.c] gmp_fprintf is not defined in mini-gmp

	[tests/tadd.c] fix for 16-bit limb

	[src/add1.c] revert previous commit since it does not remove the warning:
	add1.c: In function ‘mpfr_add1’:
	add1.c:407:30: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context]
	           if (difs && (cprev << (GMP_NUMB_BITS - difs)))
	                       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

	[src/add1.c] fixed compiler warning (with gcc 8.2.0)

2018-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv_ui.c] Added a comment about a spurious failure
	with MPFR_RNDF if RND_LOOP_NO_RNDF were not used.

2018-08-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsinh.c] Fixed test introduced in r13047.

	[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the bug introduced in r13066
	for the cases where MPFR_LONG_WITHIN_LIMB is defined (make sure that a
	significand allocated in the stack is not freed before the associated
	mpfr_t object).

	[src/div_ui.c] Extend the exponent range in the case where
	MPFR_LONG_WITHIN_LIMB is not defined, resolving the FIXME.
	Note: a test was already there in tdiv_ui via the generic tests.

	[tests/tdiv_ui.c] Disabled rnd=MPFR_RNDF in a loop as this now fails.

	[tests/tdiv_ui.c] Corrected an error message.

	[src/div.c] Avoid an infinite recursion when MPFR_LONG_WITHIN_LIMB
	is not defined (mpfr_div calls mpfr_div_ui, which calls mpfr_div).
	[src/div_ui.c] Made the preprocessor test on MPFR_LONG_WITHIN_LIMB
	consistent with the ones in the other .c files.

	[src/{add_ui.c,sub_ui.c,ui_sub.c}] Fixed the cases where
	MPFR_LONG_WITHIN_LIMB is not defined (regression in the
	latest changes). Also avoid unused variables.

	Removed trailing whitespace.

	[src/ui_sub.c] Extend the exponent range early enough.

	[src/add_ui.c] Extend the exponent range early enough.

	[src/sub_ui.c] Extend the exponent range early enough.

2018-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_ld.c] adapt to GMP_NUMB_BITS=16

2018-08-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_ui.c] Added a FIXME.

2018-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_ld.c] adapt to GMP_NUMB_BITS=16

	[src/set_d.c] adapt to GMP_NUMB_BITS=16 (not yet tested)

	[src/exp_2.c] removed a static assertion (duplicate with MPFR_LONG_WITHIN_LIMB)

	[src/init2.c] split a static assertion in two

	[src/mpfr-gmp.h] allow GMP_NUMB_BITS=16 (experimental, do not use!)

	[src/set_d.c] make it easier to extend to GMP_NUMB_BITS<32

	[configure.ac] read GMP_NUMB_BITS from mini-gmp.h when available
		       (otherwise assume mp_limb_t == unsigned long)

	[src/ui_sub.c] make code work for limb < long

	[src/sub_ui.c] make code work for limb < long

	[src/div_ui.c] make code work for limb < long

	[src/add_ui.c] make code work for limb < long

	[mini-gmp] update

	[tests/tsinh.c] improve coverage

	[tests/tsubnormal.c] improve coverage

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Added a FIXME about cp vs tp.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tmul.c] improve coverage

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Avoid bad usage of tp in the generic code:
	  * In the case d == 1, two branches were inconsistent: tp not defined
	    at the same level, with one shadowing the other one.
	  * In the case 2 <= d < p, tp was reused with a different meanings;
	    renamed the second one to cp, as this is MPFR_MANT(c).

	[src/sub1sp.c] Re-added/updated FIXME about the long backward goto's.

	[src/{add1sp.c,mul.c}] Updated the condition to use the formally
	extracted code and added a corresponding comment.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/const_log2.c] further improve coverage

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cache.c] Improved variable names (→ dprec for the precision of dest
	and cprec for the precision of the cache) and added/updated comments.

	[src/cache.c] Reverted r13036 as what matters is the target precision,
	which can be very small.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp1_extracted.c] replaced extracted code by new for MPFR_PREC_BITS=64
	[src/mul_1_extracted.c]   likewise
	[src/add1sp.c] changed condition to use the formally extracted code
	[src/mul.c]    likewise (but code is still not yet activated here)

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cache.c] Comment: In practice, the "overflow handler" of
	MPFR_RNDRAW_GEN should never be called.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/const_log2.c] avoid hard-coded values
	[tests/tconst_log2.c] improve coverage

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cache.c] Replaced a test + mpfr_overflow by a MPFR_ASSERTD since
	the cached value (in extended exponent range) cannot overflow.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/const_euler.c] better choice of (initial) working precision
	[tests/tconst_euler.c] added coverage test

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Update concerning the shared cache, to be consistent
	with the other mpfr_buildopt_*_p features:
	  * check that mpfr_buildopt_sharedcache_p() and MPFR_WANT_SHARED_CACHE
	    match;
	  * for the output of the value, test mpfr_buildopt_sharedcache_p()
	    instead of the macro.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tconst_catalan.c] improve coverage

	[tests/tbuildopt.c] added check of mpfr_buildopt_sharedcache_p()

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

2018-08-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed even rule for p=1

2018-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Mention WG14/N2270 (proposed maybe_unused attribute),
	which could be useful to avoid MPFR_DBGRES.

2018-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] finished simplifying the mpfr_sub1sp code

	[src/sub1sp.c] simplified the computation of sbb

	[src/sub1sp.c] full rewrite of mpfr_sub1sp (work in progress)

2018-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Output "Enable formally proven code" info.

	[doc/README.dev] Describe MPFR_WANT_PROVEN_CODE.

	Renamed WANT_PROVEN_CODE to MPFR_WANT_PROVEN_CODE for consistency with
	the other WANT macros (and to avoid potential clashes with foreign .h
	files).

	[tools/mpfrlint] For some tests, ignore extracted files (proven code).

2018-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	the mpfr_mul_1 extracted code is not proven yet

2018-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	For --enable-formally-proven-code, instead of requiring a check of the
	type sizes in configure, just enable the proven code only if the types
	have the sizes expected by this code.
	  * configure.ac: removed the FIXME.
	  * src/add1sp.c, src/mul.c: updated the #if test that enables the
	    proven code (add1sp1_extracted.c and mul_1_extracted.c).

	[configure.ac] Updated FIXME for --enable-formally-proven-code
	(many failures with -m32 due to assumptions on type sizes).

	[configure.ac] Added a FIXME for --enable-formally-proven-code.

	[configure.ac] Updated message for --enable-formally-proven-code.

2018-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added configure option --enable-formally-proven-code and corresponding code

2018-08-22  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Ulp calculus: swap Rule 4 and Rule 5.

	[doc/algorithms.tex] Ulp calculus Rule 4: make the proof much simpler.

	[doc/algorithms.tex] Error calculus: implicitly assume x ≠ 0 in ulp.

	[src/sub1sp.c] Updated a FIXME.

	[src/sub1sp.c] Removed a comment that brings nothing and is not
	really correct (this is not a "flag").

2018-08-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/mpfr-test.h] added macro TEST_FLAGS (debug use only)

2018-08-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Portability corrections related to the use of the
	preprocessor / code robustness.

2018-08-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] revert mpfr_sub1sp to the version of revision 12241

	[src/sub1sp.c] fixed bug20180813

	[tests/tsub1sp.c] improved comment about bug20180813()

2018-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2018-08-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsub1sp.c] added a test for a bug in mpfr_sub1sp (to be fixed)

2018-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Replaced "Section ``Rounding''" by "@ref{Rounding}".

2018-08-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] renamed Section "Rounding Modes" to "Rounding"

2018-08-18  Vincent Lefèvre  <vincent@vinc17.net>

	Avoid a pointer-to-int-cast warning with GCC (e.g. under 32-bit Linux)
	by casting pointers to uintptr_t before the cast to mpfr_uintmax_t.
	  * acinclude.m4: use AC_TYPE_UINTPTR_T to define uintptr_t if
	    not available.
	  * tests/memory.c: added casts to uintptr_t.

2018-08-16  Vincent Lefèvre  <vincent@vinc17.net>

	Code robustness in macro definitions.

	[src/sqr.c] Changed a variable name to avoid confusion with the function
	parameter of the same name, which has a different type.

	[src/mpfr-impl.h] Added a cast to mp_bitcnt_t in order to fix potential
	integer overflow in MPFR_MPZ_SIZEINBASE2.

	[src/round_raw_generic.c] Type consistency.

	Added MPFR_INC_PREC definition (similar to MPFR_ADD_PREC) and replaced
	some MPFR_ADD_PREC occurrences by MPFR_INC_PREC. In src/bernoulli.c,
	replaced += by MPFR_INC_PREC to detect overflow.

2018-08-11  Vincent Lefèvre  <vincent@vinc17.net>

	Replaced "TZ=UTC" by "TZ=UTC0" for portability.

2018-08-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_raw_generic.c] Avoid a useless variable. This should
	also avoid warnings with Windows ICC, reported at:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html

	[tests/tcan_round.c] Added missing casts for printf (error messages).
	Bug detected under MS Windows, where size_t > unsigned long. See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html

	[tests/tdiv_ui.c] Improved the conditions for test_20170105().
	In particular, the new preprocessor test can avoid spurious warnings
	on large shifts (false positives) with MS Windows. See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html

	[doc/README.dev] More details about intmax_t, mpfr_intmax_t, etc.

	[tests/memory.c] To print a size_t or a pointer in error messages,
	cast to mpfr_uintmax_t (largest integer type available) instead of
	unsigned long, which may be too short (e.g. under MS Windows).
	See: https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00002.html

	[src/mpfr-intmax.h] Define MPFR_INTMAX_FSPEC macro: length modifier
	for printf corresponding to mpfr_intmax_t and mpfr_uintmax_t.

	[doc/README.dev] Updated/added links about coding standards and C.

2018-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Updated a comment: more details about __GMP_DECLSPEC,
	in particular those found in GMP's longlong.h file.

2018-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-longlong.h] Replaced __GMP_DECLSPEC by __MPFR_DECLSPEC.

	Otherwise, with Windows DLL, __GMP_DECLSPEC is replaced by
	__declspec(dllimport), which is wrong when building MPFR and
	yields warning LNK4217 such as:

	  eint.obj : warning LNK4217: locally defined symbol mpfr_clz_tab
	  imported in function mpfr_eint

	due to

	  extern const unsigned char __GMP_DECLSPEC __clz_tab[129];

	(note that mpfr_clz_tab is defined with "#define __clz_tab mpfr_clz_tab"
	only without the GMP build).

	See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00000.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-08/msg00001.html

2018-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Check that __GMP_DECLSPEC is not used by MPFR.

2018-07-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Try to detect missing output from the first printf
	that occurred once with i586-mingw32msvc-gcc -D__USE_MINGW_ANSI_STDIO
	and run under Wine.
	(merged changesets r12968-12969 from the 4.0 branch)

2018-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4,configure.ac] Check the support of the group flag for
	  native integers, which is a Single UNIX Specification extension.
	[tests/tsprintf.c] Test the group flag with the P length modifier only
	  when supported, since the implementation relies on this support.

	[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t):
	  a '0' flag was always added when calling gmp_asprintf. This bug
	  wasn't detected under Linux because the case for which it was
	  occurring (left space padding without a precision and without a
	  '0' flag) was not tested. With Wine, tsprintf was failing because
	  of a bug in the stdio library: the '0' flag added by mistake should
	  have been ignored in some test with a precision, but it wasn't.
	[tests/tsprintf.c] Added a test that made a failure occur under Linux.

	[tests/tsprintf.c] Added 2 other tests with the P length modifier.

	[src/vasprintf.c] Fixed bug with the P length modifier (mpfr_prec_t).
	[tests/tsprintf.c] Corrected/added tests with the P length modifier.

2018-07-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed various overflow and close-to-overflow issues.
	Those with the P length modifier (mpfr_prec_t) will be fixed later.

	[tests/tsprintf.c] Another failure with the P length modifier.

	[tests/tsprintf.c] Added tests with the P length modifier (mpfr_prec_t),
	yielding mode failures.

	[src/vasprintf.c] Fixed "store to null pointer" and free of bad pointer
	in case of error.

	[tests/tsprintf.c] Added a test that yields a "store to null pointer",
	detected by UBsan.

2018-07-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Bug fix: in case of some errors (via "goto error;"),
	va_end wasn't called, yielding undefined behavior.

2018-07-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added tget_set_d128 to svn:ignore property.

	[src/erf.c] More security about tauk.

	[src/erf.c] Removed a meaningless cast.

2018-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/erf.c] replaced double's by mpfr_t to fix bug reported by Naoki Shibata

2018-07-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/terf.c] Added a testcase for bug reported by Naoki Shibata:
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-07/msg00028.html
	(uceil_log2.c:40: MPFR assertion failed: exp < 1023).
	Increased the number of generic tests in order to reproduce the bug
	there too with the default seed.

2018-07-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/subnormal.c] C89 compatibility.

2018-07-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/subnormal.c] experimental support for RNDNA

2018-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	Added examples/threads.c (and updated Makefile.am): multithreading test
	to detect scaling issues with MPFR.

2018-07-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Updated a FIXME.

	[src/vasprintf.c] More FIXME's.

	[src/vasprintf.c] Reindentation.

	[src/vasprintf.c] Added a FIXME for MPFR_PREC_ARG handling.

2018-07-18  Vincent Lefèvre  <vincent@vinc17.net>

	Shared caches: fix and minor changes.
	  * Fixed detection and use of C11 thread support: the C11 header is
	    <threads.h>, not <thread.h>.
	  * Renamed WANT_SHARED_CACHE to MPFR_WANT_SHARED_CACHE for consistency
	    with the other MPFR_WANT_* macros.
	  * Added MPFR_THREAD_LOCK_METHOD macro, giving the thread locking
	    method as a string (when shared caches are enabled).
	  * doc/README.dev: documented 4 macros for shared caches.
	  * tests/tversion.c: output MPFR_WANT_SHARED_CACHE and
	    MPFR_THREAD_LOCK_METHOD information.

	[tests/tconst_pi.c] Removed an incorrect assertion, as the #else would
	be applicable when WANT_SHARED_CACHE is defined but not HAVE_PTHREAD
	(which may occur when MPFR_HAVE_C11_LOCK is defined).

	[src/vasprintf.c] Fixed type in partition_number to be consistent with
	the end of the function.

2018-07-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Added 2 FIXME and removed an incorrect MPFR_ASSERTN
	(which came from r5236).

	[tests/tsprintf.c] Added other tests to check_length_overflow, which
	would trigger other bugs in src/vasprintf.c (e.g. when removing the
	other failing tests).

	[tests/tsprintf.c] Added check_length_overflow to check the behavior of
	mpfr_snprintf on a large number of output characters (> INT_MAX) with
	size = 0. This test is actually done only if INT_MAX == 2147483647 and
	currently fails in such a case.

	[src/vasprintf.c] Updated comment about overflow on the number of output
	characters, taking into account the latest ISO C and POSIX standards.

	[tests/tsprintf.c] Updated a comment.

2018-07-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Simplified mpfr_get_str_wrapper.

	[src/vasprintf.c] Added a log message.

	[src/mpfr-impl.h] Added a FIXME: _Decimal128 code and _MPFR_IEEE_FLOATS
	(which is about binary IEEE-754 floating point) should be unrelated.

	[src/get_d64.c]
	  * Added FIXME's for get_decimal64_nan and get_decimal64_inf internal
	    functions: possible issue with _MPFR_IEEE_FLOATS code, which also
	    seems more complex than the generic code.
	  * Simplified get_decimal64_zero internal function to generate a
	    decimal zero directly instead of using the fact that a binary64
	    zero is also the encoding of a decimal zero (and assuming that
	    double = binary64 with perfect endianness matching).

	[acinclude.m4] Updated message about the _Float128 support, since
	this is not just about the compiler.

	[acinclude.m4] Fixed the _Float128 / __float128 detection for NetBSD:
	Optimization made the "undefined reference" error disappear, so that
	__float128 was misdetected as being supported.

2018-07-12  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] For the _Float128 / __float128 detection, changed
	AC_COMPILE_IFELSE to AC_LINK_IFELSE since an error may occur only
	at link time, such as under NetBSD:
	  https://mail-index.netbsd.org/pkgsrc-users/2018/02/02/msg026220.html
	  https://mail-index.netbsd.org/pkgsrc-users/2018/02/05/msg026238.html

	[src/Makefile.am] Corrected check-exported-symbols to avoid a failure
	when the default .SHELLFLAGS value is '-ec' (POSIX) instead of '-c'
	(GNU Make, which is not in POSIX-conforming mode by default).
	Bug found on FreeBSD 11.1 (Compile Farm @ HouseGordon.com).

2018-07-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] In buffer_sandwich, simplified the handling of the
	trailing zero (avoid memset and a useless assignment).

2018-07-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] More changes to Section "Nomenclature and Types";
	in particular, defined regular numbers and exponents.

	[doc/mpfr.texi] In Section "Nomenclature and Types", removed all the
	@noindent, whose purpose is unclear (if one needs something special,
	an itemized list would be better, or possibly @deffn).

	[doc/mpfr.texi] Rewrote the paragraph defining "floating-point number"
	in Section "Nomenclature and Types", avoiding ambiguities.

2018-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Grrr... again a copy-paste error. Now OK.

	[tests/{tprintf.c,tsprintf.c}] Corrected the tests added in r12898,
	but tprintf still fails.

	[tests/tsprintf.c] Corrected the latest tests.

	[tests/tsprintf.c] Added tests (failure on "%09.3Rg" for 1000).

	[tests/tsprintf.c] Corrected comments.

	[tests/{tprintf.c,tsprintf.c}] Added tests (both programs fail).

	[doc/mpfr.texi] Updated the month.

	[src/vasprintf.c] Corrected comments and coding style.

	[src/vasprintf.c] Resolve the FIXME.
	  * Renamed ip_trailing_zeros to ip_trailing_digits, since when
	    spec.size == 0, these can be any digits.
	  * Simplified the buffer_sandwich function since it can be called
	    only when spec.size != 0, in which case tz (= ip_trailing_digits)
	    is either 0 or 1 (a trailing zero must be added only when rounding
	    to the next power of ten in the %f case).
	  * Corrected/removed/added comments.

	[tests/{tprintf.c,tsprintf.c}] Added tests with powers of ten in all
	rounding modes and powers of ten + 0.5 in rounding to nearest.

2018-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] typo in Fredrik's name

	[AUTHORS] typo in Fredrik's name

2018-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Added a TODO (for the FIXME in src/vasprintf.c).

	[src/vasprintf.c] Updated the FIXME comment.

	[src/vasprintf.c] Added a FIXME comment about an incorrect comment.

	[src/vasprintf.c] Added log messages in buffer_sandwich.

	[tests/tsprintf.c] Added more tests of the form 10^i - 1/2
	(like in tprintf.c).

	[tests/tprintf.c] Added more tests of the form 10^i - 1/2.

	[tests/tsprintf.c] Added test_locale() test based on the tprintf.c one.

	[tests/tprintf.c] Minor correction.

	[tests/tprintf.c] More test_locale() cleanup.

	[src/vasprintf.c] English usage in a comment.

	[src/vasprintf.c] Renamed mpfr_get_str_aux to mpfr_get_str_wrapper
	in order to avoid a confusion with the mpfr_get_str_aux function
	from get_str.c (moreover, this is really a wrapper, which is the
	reverse of an aux function).

	[tests/tsprintf.c] locale_da_DK() cleanup.

2018-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/vasprintf.c] partly revert commit 12873

2018-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] test_locale() cleanup.
	  * Conditional #include <locale.h> with the other header inclusions.
	  * Completed a #if (to be like in tsprintf.c).
	  * Moved a global variable as local to test_locale().

2018-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/vasprintf.c] replaced overflow tests by assertions
	[tests/tprintf.c] improve test coverage

2018-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	Added MPFR_CHECK_LOCALES environment variable for the tests (to be
	used by developers): when set, terminate with an error if locales
	cannot be tested.

2018-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed several bugs in buffer_sandwich, which could
	yield memory corruption with non-default memory allocators and other
	undefined behavior; check the return value when this function is called.

	Details:
	  * check integer overflow on the size computations;
	  * computation of q and r without tests;
	  * fixed the case where r > len (e.g. len = 1 and tz = 1);
	  * in the loop, increase the str pointer only when needed, otherwise
	    str could be beyond of the end of the string of the digits, which
	    is undefined behavior.

	The first consequence of the r > len issue was an incorrect generated
	string. Moreover, since the generated string was shorter than expected,
	mpfr_free_str would provide an incorrect buffer size to the "free"
	function of the current GMP memory allocator. By default, this size is
	ignored, but it may matter if the memory allocators have been changed
	with the mp_set_memory_functions GMP function, in which case a possible
	consequence could be memory corruption.

2018-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/vasprintf.c] added an assertion
	[tests/tprintf.c] added two tests (one currently fails)

2018-06-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] C90 compatibility.

2018-06-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsprintf.c] fixed another test

	[tests/tsprintf.c] fixed test

	[src/vasprintf.c] improve coverage

	[tests/tsprintf.c] improve coverage

	[tests/tsprintf.c] improve coverage

2018-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tgamma_inc.c] improve coverage

	[tests/tgamma_inc.c] added coverage test

	[src/gamma.c] added comment
	[src/gamma_inc.c] fixed bug for gamma_inc(-Inf, 0)
	[tests/tgamma_inc.c] added coverage tests

2018-06-23  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Do not do specific CFLAGS settings for MS-Windows ICC.
	See <https://sympa.inria.fr/sympa/arc/mpfr/2018-06/msg00027.html>.

	[src/mpfr-impl.h] Spelling in a comment.

	[src/mpfr-impl.h] Fixed change in r12847.

	[tests/tget_set_d64.c] Improved a test.

	[tests/tget_set_d128.c] Replaced d != d by DOUBLE_ISNAN (d).

	[doc/mpfr.texi] Updated the month.

	[tests/tget_set_{d64,d128}.c] When MPFR_ERRDIVZERO is defined,
	disable tests that can trigger a FP exception DIVBYZERO or INVALID
	(issue detected with -DMPFR_TESTS_FPE_DIV -DMPFR_ERRDIVZERO).

2018-06-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Improved a comment about union ieee_decimal128.

	Do not assume that the bit-field ordering for _Decimal128 is necessarily
	little endian or big endian (this is more than the usual endianness
	issue). If this cannot be detected, instead of failing or assuming a
	possibly wrong default, switch to the portable code.

2018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_get_decimal128 and mpfr_set_decimal128 to the manual

	[tests/tget_set_d128.c] test some random 16-byte inputs

	[tests/tget_set_d64.c] test random inputs

	[acinclude.m4] added configure test to determine the encoding of _Decimal128 (little or big endian)

	[doc/README.dev] added standard suffixes

	[tests/tget_set_d64.c] fixed a test

	[tests/tget_set_d64.c] removed TODO (done), added comment
	[tests/tget_set_d128.c] removed TODO (done)

	[src/set_d64.c] added comment (like for set_d128.c)

	[src/get_d64.c] improve comment
	[src/get_d128.c] likewise

	[src/set_d64.c] also deal with non-canonical BID encoding
	[tests/tget_set_d64.c] added test with non-canonical BID encoding

2018-06-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d128.c] Bug fix (buffer overflow detected by AddressSanitizer).

	[src] Moved the FIXME comment from set_d128.c to get_d128.c since the
	bug occurs in mpfr_get_decimal128 according to the AddressSanitizer.

	[src/set_d128.c] Updated FIXME comment.

	[src/sqrt.c] Replaced a umul_ppmm by umul_hi, and removed an unused
	variable as a consequence.

	[src/set_d64.c] Code improvement (like r12809 and r12828 in set_d128.c).

	[src/set_ld.c] Removed unused variable for
	HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE (PowerPC).

	[src/invsqrt_limb.h] Avoid a "variable ‘_l’ set but not used" warning
	on some platforms, such as powerpc64le-unknown-linux-gnu.

	[src/invert_limb.h] Avoid a "variable ‘_l’ set but not used" warning
	on some platforms, such as powerpc64le-unknown-linux-gnu.

	[src/set_d128.c] Avoid "unused variable" warnings on platforms with DPD.

	[src/mpfr-impl.h] About union ieee_double_decimal64: removed an
	incorrect comment and added a TODO.

	Changed union ieee_double_decimal128 to union ieee_decimal128 since this
	has nothing to do with double (unlike union ieee_double_decimal64). Also
	refactored code for this union definition.

	[src/mpfr-impl.h] Updated TODO for DPD.

	[src/mpfr-impl.h] Added TODO for DPD (better structure definition).

	[tests/tget_set_d128.c] Execute BID code only with BID.

	[tests/tget_set_d128.c] Simplification and better portability.

2018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_set_d128.c] added coverage tests for non-canonical BID encodings

	[src/set_d128.c] improve last commit

	[src/set_d128.c] improved a comment

2018-06-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d128.c] Re-added "while (...)" erroneously removed in r12817.

2018-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_d64.c] added comment
	[src/set_d128.c] likewise

	[src/set_d128.c] avoid variable conflict for DPD

	[src/set_d128.c] implement for DFD encoding

	[src/set_d64.c] added comment and space

2018-06-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d128.c] Added a FIXME (stack-buffer-overflow).

	[src/set_d128.c] Corrected r12811.

	[src/set_d128.c] _MPFR_IEEE_FLOATS code for BID: correctly support
	the decoded significand >= 10^34 cases (non-canonical encodings),
	which must be zero.

	[tests/{tget_set_d64.c,tget_set_d128.c}] TODO: Also test non-canonical
	encodings.

	[src/set_d128.c]
	  * Enable the _MPFR_IEEE_FLOATS code only for GMP_NUMB_BITS == 32 or 64
	    (as the other values are not supported by this code).
	  * Bug fix for GMP_NUMB_BITS == 32 (→ tget_set_d128 no longer fails).
	  * Added an assertion corresponding to a comment.

	[src/set_d128.c] Fit on 80 columns.

2018-06-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Updated a title comment (→ Decimal support).

	[src/mpfr-impl.h] Corrected a comment.

2018-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_d128.c] added comments

	[src/set_d128.c] remove debug stuff

	[src/mpfr-impl.h] assume little-endian double implies little-endian decimal128

2018-06-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] FIXME for _Decimal128.

2018-06-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_d128.c] (partly) implement the _MPFR_IEEE_FLOATS case (BID only so far)
	[tests/tget_set_d128.c] added more tests

	[src/set_d64.c] added comments

	[src/get_d128.c] removed useless comment

2018-06-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_d128.c] avoid using doubles
	[tests/tget_set_d128.c] improve test coverage

	[tests/tget_set_d128.c] improve test coverage

	[tests/tget_set_d128.c] improve coverage

	added mpfr_get_decimal128 (still experimental)

	[get_d64.c] added comments and simplified code

2018-06-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tget_set_d64.c,tget_set_d128.c}] Tests on powers of 10:
	test negative numbers too.

2018-06-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a note about FP constants and native FP.

	[tools/mpfrlint] Check that preprocessing directives have no spaces
	before.

	[src/set_d128.c] Modified a comment.

	[src/set_d128.c] Avoid double, which is unreliable with GCC
	in non-standard mode (see GCC bug 323 and the discussion in
	GCC bug 85957). But the failure in tget_set_d128 probably came from
	the fact that (_Decimal128) 0.1 is not 1/10 exactly (the double 0.1
	has about a 17-digit precision only, while _Decimal128 has more);
	this test now passes.

	[src/set_d128.c] Simplified code and added assertions.

	[src/set_d64.c] Added a log message (like in set_d128.c).

	[src/{set_d64.c,set_d128.c}] Bug fix: use mpfr_strtofr instead of
	mpfr_set_str to get the ternary value.

	[tests/{tget_set_d64.c,tget_set_d128.c}] Added tests on powers of 10.
	  * tget_set_d64 fails on negative due to a bad ternary value.
	  * tget_set_d128 fails on negative due to bad value, etc.

	[tests/tget_set_d128.c] Test the flags too.

	[tests/tget_set_d128.c] Test more values.

	[tests/tget_set_d128.c] Converting an integer into _Decimal128 is better
	than converting a double into _Decimal128.

	[tests/tget_set_d128.c] Simplified the test, avoiding a bug in ICC 15
	at the same time (1.0D was regarded as 0).

	[tests/tget_set_d128.c] Fixed indentation.

	[tests/tversion.c] Decimal formats: output the encoding type (DPD/BID).

	[src/set_d128.c] Changed _GMP_IEEE_FLOATS to _MPFR_IEEE_FLOATS as per
	r10958 (in set_d128.c, currently in a comment due to r12772).

	[src/set_d128.c] Added a log message.

	[tests/tget_set_d128.c] Added an informative error message.

	[src/set_d128.c] Disable the _GMP_IEEE_FLOATS code, which is not
	complete yet and makes the compilation fail.

2018-06-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d128.c] Corrected year in copyright notice.

	[src/set_d128.c] Minor improvements.

2018-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_set_d64.c] added -v option to get verbose output
	[tests/tget_set_d128.c] likewise

2018-06-13  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Missing "r".

2018-06-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] update for mpfr_set_decimal128

	added mpfr_set_decimal128 (work in progress, not yet fully tested)

2018-06-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tools/coverage] added branch coverage

2018-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Moved some computations on the exponents earlier
	since they may yield an early overflow or underflow, and computing
	the division by b^e would be useless in such a case.

	[src/strtofr.c] Added a MPFR_ASSERTD and a FIXME on things that don't
	make much sense in the error analysis (still trying to understand…).

2018-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/const_pi.c] missing reference about Brent-Salamin

	[doc/algorithms.bib] added reference

2018-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tfmma.c] improve coverage of the UBF case in mpfr_sub
			(now coverage of sub.c is 100%)

2018-06-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated TODO from r12755.

2018-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fmma.c] now mpfr_fmms calls mpfr_sub for a better coverage

2018-06-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated TODO from r12755.

	[src/sum.c] Added a comment with a TODO about potentially dead code on
	some platforms.

	codespell: simplified exceptions.
	  * Added codespell.exclude file.
	  * codespell.ignore: removed some words (particular cases).
	  * tools/mpfrlint: use the codespell.exclude exclude file, and for
	    the doc directory, replaced -S by an explicit list of files.

	[codespell.ignore] Also ignore "objext" and "tim" (codespell 1.13).

2018-06-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1.c] fixed a bug and solved a FIXME (underflow for UBFs)
	Note: this mostly reverts r12319, r12321, and the remaining FIXME
	from r12327.
	[tests/tfmma.c] added non-regression tests

2018-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Concerning r12738, the safer code can be avoided
	with GCC in ISO C mode (__STRICT_ANSI__).

2018-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invert_limb.h] fixed two typos reported by Marco Bodrato

2018-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] For GCC, output __STRICT_ANSI__ when defined.

2018-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] fixed/improved comments

2018-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invsqrt_limb.h] fixed typos in comments

2018-05-31  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated a URL.

	[src/mpfr-impl.h] Fixed potential compilation failure with _Decimal64,
	detected with r12738.

	[doc/mpfr.texi] Updated the month.

	Updated mpfr.org URL's to use https (except in ChangeLog and NEWS).

	[src/mpfr-impl.h] With GCC, select safer code for DOUBLE_ISNAN(x).

2018-05-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/announce-text] http → https (for mpfr.org).

	[doc] Updated FAQ.html with update-faq.

	[doc] Workaround due to the lack of https support in libxml2
	and the fact that mpfr.org now uses https with HSTS.
	  * faq.xsl: for the visual.css, use a local URL.
	  * update-faq: download visual.css from mpfr.org first.

	[doc/update-faq] http → https

	[src/mpfr-impl.h] Added a FIXME about DOUBLE_ISNAN and GCC.

2018-05-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Continued to review the new error analysis and code.
	Changes:
	  * made the code more SSA-like (avoid a "y += ysize; y -= ysize;");
	  * clarified comments;
	  * use MPFR_LIMB_MSB;
	  * added a FIXME on the error analysis.

	[doc/README.dev] Added info about shell portability, and in particular
	about quotes (covering changes in r5659, r6128, r12711 and r12721).

	[tools/{ck-clz_tab,ck-copyright-notice,ck-mparam,update-version}] Fixed
	non-portable quote nesting in backticks.

	[examples] Added "mpfr_free_cache ();" at the end of all programs,
	as this is something that should be done systematically (at least
	to detect memory leaks with valgrind).

2018-05-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Started to review the new error analysis and code
	(r12705,12706). Minor improvements.

	[src/{mpfr-impl.h,mpn_exp.c}] Changed the return type of mpfr_mpn_exp
	from long to int for consistency with the mpfr_mpn_exp code and with
	strtofr.c (which expects an int).

	[src/mpn_exp.c] Code cleanup and protection against integer overflow.

2018-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/hypot.c] Do bitwise operations in unsigned arithmetic.

	[src/hypot.c] Added 2 TODO.

2018-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/{ck-clz_tab,ck-copyright-notice}] Changed the POSIX $(…) to `…`
	for Bourne shell compatibility (as under Solaris 10).
	Note: these scripts are called via dist-hook for "make dist".

2018-05-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added a comment for UBF.

	[src/mpfr-impl.h] Added a comment about UBF and alignment requirements.

2018-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Removed TODO added in r12681, now obsolete.

2018-05-16  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

2018-05-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] revisit error analysis in the division case (end)

2018-05-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] revisit error analysis in the division case (work in progress,
			not yet finished)

2018-05-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Updated the comment added in r12701.

	[tests/tsub.c] Added a comment about the bug fixed in r10697:
	bug20180217 is a non-regression test for this bug.

2018-05-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstckintc.c] Avoid false warnings with -Wcast-align=strict from
	GCC 8.1 by adding casts "(long *) (void *)", still allowing checks of
	other alignment requirements (which are not handled by the tstckintc.c
	code).

	[TODO] + Use GCC's nonnull and returns_nonnull attributes.

	[acinclude.m4] Added a note on _Decimal64 detection.

2018-04-30  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added info about spelling.

	Corrected "runtime" to "run time" (noun) or "run-time" (adjective)
	when it means the time at which the program is run.
	See:
	  https://gcc.gnu.org/codingconventions.html#Spelling
	  https://en.wikipedia.org/wiki/Run_time

2018-04-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Potentially unnecessary code: comes from r8384.

	[src/strtofr.c] Updated TODO about potentially unnecessary code.

	[src/strtofr.c] Updated TODO about potentially unnecessary code,
	showing that this code probably increases the error bound (errors
	accumulate instead of compensating without this code).

	[src/strtofr.c] Added a TODO about potentially unnecessary code.

	[src/strtofr.c] Corrected/updated comments and added a log message.

	[src/strtofr.c] Corrected a comment (exp_base and exp_bin description).

	[src/strtofr.c] Added a FIXME: possible bug in very special cases with
	large exponents, 32-bit mpfr_exp_t and very long strings.

	[src/strtofr.c] Added/clarified comments.

	[tests/tstrtofr.c] Added a TODO related to the bug fixed in r12573.

2018-04-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgmpop.c] Coding style.

	[tests/tgmpop.c] For mpfr_cmp_q, improved the test where x is NaN by
	checking all the flags (not just erange) and added a test where y is
	a NaN rational.
	Note: this could be used to detect 2 bugs, fixed in r12343 and r12499,
	respectively.

	[tests/tcan_round.c] Removed a r2 != MPFR_RNDF test and added 3 TODO's
	to support r2 == MPFR_RNDF in some other tests.

2018-04-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Clarified a comment (the "if" is part of the code,
	not the English word).

2018-04-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] added comment about MPN_FILL

2018-04-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/out_str.c] Check for integer overflow (here, a minor issue).

	[src/out_str.c] Support mpfr_exp_t larger than long (with mpfr_eexp_t).

2018-04-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added tdot to svn:ignore property.

	[tests/tdot.c] Various improvements.

	[doc/mpfr.texi] Note that mpfr_dot does not yet handle intermediate
	underflows either.
	[src/dot.c] Changed an MPFR_ASSERTD to MPFR_ASSERTN since the assertion
	is not satisfied on some user inputs. Minor improvements.

	[NEWS] Added mpfr_dot.

	[doc/mpfr.texi] In the added functions, note that mpfr_dot is incomplete
	and experimental.

	[tests/tsum.c] Code style.

	[doc/mpfr.texi] Updated the month.

	[tests/tdot.c] Code style.

2018-04-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_dot

2018-04-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_flt.c] Correction about the use of mpfr_signbit, in case
	the implementation would change.

	[src/sqr.c] Minor code improvement.

	[src/sqr.c] Code formatting.

	[src/sqr.c] Clarified a comment and slightly improved code.

	[src/sqr.c] Typo in a comment.

	[tests/tfma.c] Added test_underflow5.

	[tests/tfma.c] Minor correction for test_underflow4.

	[tests/tfma.c] Added a comment.

2018-04-18  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] Added test_underflow4. This allows to show that the
	bound MAX (MPFR_PREC (z), MPFR_PREC (s) + 1) in fma.c is optimal:
	  * If one subtract 1 from the 1st term MPFR_PREC (z), a failure
	    occurs in test_underflow4.
	  * If one subtract 1 from the 2nd term MPFR_PREC (s) + 1, a failure
	    occurs in test_underflow2.

	[configure.ac] For the ICC check, also test __INTEL_COMPILER.

	[configure.ac] Corrected comment for the ICC check (GCC is no longer
	disabled since r5720).

2018-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr.h] enable some code that now works with ICC (tested with ICC 14)
	[TODO] removed item

2018-04-18  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Updated a comment about __ICC.

2018-04-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] removed item that we won't implement

	[TODO] removed done item (UBF)

2018-04-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] RNDF is done

	[TODO] removed an obsolete item

	[TODO] log_ui is done

2018-04-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Detect the use of mpfr_div_2exp and mpfr_mul_2exp.

	[tests/{reuse.c,taway.c}] Added mpfr_div_2ui and mpfr_mul_2ui.
	Note: si functions are not tested yet.

	Replaced mpfr_mul_2exp & mpfr_div_2exp by mpfr_mul_2ui & mpfr_div_2ui,
	respectively (for the tests, except in reuse.c and in taway.c).
	Note: As documented, mpfr_mul_2exp & mpfr_div_2exp are only kept for
	compatibility with MPF; mpfr_mul_2ui & mpfr_div_2ui are preferred.

2018-04-16  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] + function to reduce the precision of a variable, with a
	ternary value in input, i.e. taking care of double rounding.

	[tests/tfma.c] More tests for test_underflow2.

	[tests/tfma.c] Corrected r12603 for test_underflow2.

	[tests/tfma.c] More tests for test_underflow2.

	[src/fma.c] Updated easy case of underflow.

	[tests/tfma.c] Updated a comment for test_underflow2.

	[tests/tfma.c] In test_underflow2, also test different signs.

	[tests] Updated svn:ignore property.

	[doc/README.dev] "To make a release": check also with
	-DMPFR_GROUP_STATIC_SIZE=0 to detect memory leaks.

	[src/fma.c] Forgot a MPFR_GROUP_CLEAR.

	[src/fma.c] Simplified the underflow case by using UBF in the
	difficult cases, resolving the remaining FIXME's.

2018-04-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] More tests for test_overflow3 by adding loops on j and k.

	[tests/tfma.c] Extended test_overflow3 to reversed signs.

	[tests/tfma.c] Do all the overflow/underflow tests in exponent ranges
	[-1024,1024], [MPFR_EMIN_MIN,MPFR_EMAX_MAX], and the default one.

	[src/mpfr-sassert.h] Added a comment.

2018-04-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] Forgot a cast for C++ compatibility.

	[src/mpfr-impl.h] Reverted r12588: there should be no alignment issues
	with UBF, since an UBF (__mpfr_ubf_struct) is sometimes regarded as a
	MPFR number (__mpfr_struct) but not the opposite (or this is just back
	to __mpfr_ubf_struct).

	[src/fma.c] Simplified the difficult part of the overflow case by
	using UBF (this also fixes corner cases in huge precision).

	[src/mpfr-impl.h] Added a note about alignment constraints for UBF.

	[src/fma.c] Fixed sign related bug in overflow case.
	[tests/tfma.c] Added test_overflow5 test for this bug.

	[tests/tfma.c] In test_overflow4, also test different signs.

	[src/fma.c] Correction for the FIXME from r12403 concerning r12396.
	The test added in tests/tfma.c r12584 no longer fails.

	[tests/tfma.c] Added a test that fails. It corresponds to the FIXME
	in src/fma.c about the test on MPFR_GET_EXP (u) - MPFR_GET_EXP (z).

	[src/fma.c] Removed a redundant test since the second condition of
	the && expression implies the first one.
	Note: This test came from the time when the precision type was unsigned,
	in order to make sure that the result of the subtraction was positive.

2018-04-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Output "Generic ABI code" info (MPFR_GENERIC_ABI).

	[src/strtofr.c] English usage in a comment.

2018-04-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] fixed bug in corner cases

2018-04-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Reverted r12569: this is wrong with a 32-bit ABI.

	[src/strtofr.c] Added a FIXME.

2018-04-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] added more comments

	[src/strtofr.c] replaced dead code by an assert
	[tests/tstrtofr.c] fixed bug20170308 and added coverage test

2018-04-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] removed dead code (and added explanation)

	[src/strtofr.c] completed a comment

2018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/strtofr.c] added comment
	[tests/tstrtofr.c] improve coverage

2018-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Replaced an incorrect comment by an assertion.

	[src/round_raw_generic.c] Check validity of flag.

2018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] now 98.2% of test coverage

2018-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Tests in lexicographic order.

2018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] added comments
	[src/round_raw_generic.c] removed dead code
	[tests/tcan_round.c] improve coverage

	renamed tround_prec.c to tprec_round.c

	[src/round_prec.c] removed some dead code (if rnd1 = rnd2 and the case
			   rnd2 = RNDN was already treated, we cannot have rnd1 = RNDN)

2018-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpow.c] Fixed a test:
	  * For this test, unsigned long and mpfr_exp_t must both have at least
	    64 bits.
	  * Use a hardcoded emax, otherwise the test could fail for mpfr_exp_t
	    larger than 64 bits (one would not have an overflow as expected).

	[src/pow.c] Fixed the code in case the size of the mpfr_exp_t type
	would be larger than 256 bits. This is also semantically better.

	Moved the MAX, MIN and ABS macros from tests/mpfr-test.h to
	src/mpfr-impl.h (they can be useful...).

	[tests/tpow.c] More tests for (-2)^(2^i + 1), not just with i = 256.

2018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tpow.c] modified a test for better coverage

2018-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpow.c] Corrected a comment (again).

	[tests/tpow.c] Corrected a comment.

2018-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/pow.c] simplified case x=2^b and y < 0

2018-04-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/pow.c] Updated comments.

	[src/pow.c] Reverted r12541 (which yielded a failure in tpow_all),
	re-indented, and added a comment concerning the failing case.

2018-04-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] fixed a bug (to be reviewed)
	[tests/tcan_round.c] added coverage tests

	[tests/ttan.c] improve coverage (and also of round_near_x)

	[src/pow.c] fixed typo

2018-04-04  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Coverage is specific to x86_64 due to the various #if.

	[src/pow.c] Corrected indentation.

2018-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] coverage is now 98.1%

	[src/pow.c] added a comment

	[src/pow.c] removed some dead code (with comment explaining why)
	[tests/tpow.c] added a test

	[src/pow.c] simplify code for prec=1
	[tests/tpow.c] added tests for prec=1

2018-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mparam_h.in] added macros for Microsoft compiler

2018-04-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/check_mparam.c] Added a copyright notice.

	[Makefile.am] Added tools/check_mparam.c and tools/ck-mparam
	to EXTRA_DIST since tools/ck-mparam is now run in dist-hook.

	[tests/Makefile.am] Do not output a useless "PASS ..." line at the end.

	[tests/Makefile.am] Update of the "check" rule:
	  * Output svnversion info when applicable.
	  * Do not echo "cat tversion.log 2> /dev/null || true".

	[Makefile.am] Added missing comments for dist-hook.

	[Makefile.am] Run ck-mparam in dist-hook (for "make dist").

	[tools/ck-mparam] Commented out the old gcc-specific test since the
	new one is strictly more powerful. No longer depend on gcc.

	[tools/ck-mparam] Also check the mparam.h files with check_mparam.c.

	[tools/check_mparam.c] C89 compatibility. Return an error code
	(useful for scripts).

	[tools/check_mparam.c] A pathname of the mparam.h file can now be
	provided with -DMPARAM='"..."' when compiling.

2018-04-03  Vincent Lefèvre  <vincent@vinc17.net>

	Moved misc/check_mparam.c into trunk/tools: it will be useful for
	"make dist" in order to make sure that all mparam.h files are OK
	before a release.

	[[Split portion of a mixed commit.]]

	[Added during the Subversion to Git conversion]
	The "misc" directory referenced here was in the same Subversion
	repository, but outside the trunk/branches/tags structure. Thus
	it has not been kept in the same Git repository.

2018-04-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mulders.c] Re-enable the change done in r12382. This is allowed
	after the fix in generic/mparam.h r12525 (this file was hand written
	and did not satisfy the current constraints).

2018-04-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[generic/mparam.h] ensure divhigh_ktab[n] is 0 or < n-1, as now required
			   since commit r12382

2018-04-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mulders.c] Code style / indentation. Added a comment.

	[src/mulders.c] Reverting r12382 because divhigh_ktab[n] == n can
	happen. Note: this probably lacks documentation; moreover, testing
	that these tables satisfy the requirements would be useful.

2018-03-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/inp_str.c] Handle size_t overflow, empty string (after skipping
	spaces), and I/O errors (as opposed to end-of-file).

2018-03-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/inp_str.c] disallow stream=NULL (cf r12520)

	[src/out_str.c] the behavior on a null stream is unspecified (cf r12519)

2018-03-30  Vincent Lefèvre  <vincent@vinc17.net>

	Reverted r12516: the behavior on a null stream is unspecified.

2018-03-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tpow.c] restrict a test to 64-bit exponent

2018-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/pow.c] added comment
	[tests/tpow.c] improve coverage

	[tests/tout_str.c] improve coverage (I don't know how to avoid printing to
			   stdout, but since "make check" no longer shows the test
			   outputs, this should be fine). However I don't know how
			   to do the same for mpfr_inp_str...

	[tests/tconst_pi.c] forgotten line in commit 12512

	[tests/tgrandom.c] improve coverage

	[src/grandom.c] improve coverage, and solved a FIXME

	[tests/tconst_pi.c] improve coverage of mpfr_free_cache2

2018-03-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Reverted another incorrect change done in r12509.

	[src/fpif.c] Reverted an incorrect change done in r12509.

2018-03-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fpif.c] simplify code and improve coverage to 100%

	[src/fpif.c] removed dead code and simplify code

	[tests/tfpif.c] improve coverage

	[tests/tfpif.c] improve coverage

2018-03-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfpif.c] Really fixed the badData test, completing r12504.

	[tests/tfpif.c] Fixed a test: for the huge-precision badData case,
	make sure that the data are valid so that we really check that the
	precision does not fit (and not a read error).

	[tests/tfpif.c] Correction just in case MPFR_PREC_BITS > 64.

	Removed trailing whitespace.

2018-03-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c]
	  * Replaced an incorrect comment from r12500 by a correct assertion.
	  * Fixed a theoretical bug coming from this incorrect comment.
	  * Added a MPFR_ASSERTN assertion to double-check correctness.
	  * Added a comment explaining a ... >= 0x80 test.

2018-03-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fpif.c] removed dead code
	[tests/tfpif.c] improve coverage

	[src/gmp_op.c] fixed bug in mpfr_cmp_q for den(q)=0
	[tests/tgmpop.c] improve coverage

2018-03-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typographic correction (texinfo rule).

	[tools/mpfrlint] For codespell, skip mpfr.t2p (directory created
	in doc by "make pdf").

	[src/total_order.c] Simplified the code (shorter code).

	[tests/ttotal_order.c] Rewrote the tests to test every combination
	of classes of values.

	[tests] Renamed total_order.c to ttotal_order.c.

2018-03-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/total_order.c] Suggest to test the sign bit first.

	[doc/mpfr.texi] Added mpfr_total_order in "Added Functions".

	[doc/mpfr.texi] Improved mpfr_total_order description.

2018-03-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] totalOrder is done

	added mpfr_total_order

2018-03-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Removed some useless #include's, in particular all the
	unconditional #include <math.h> occurrences.
	Note: There is an incompatibility between glibc 2.27 and the math.h
	provided by ICC 15 (at least), and this solves a compilation failure
	in the build of the tests.
	Moreover, <math.h> is not required by freestanding implementations,
	so that it may be better to avoid it if possible.

2018-03-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added 2 suggestions from Patrick Pelissier

2018-03-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] For codespell, skip all the algorithms.* files.

2018-03-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Added a comment for the mul/sqr test.

	[tools/mpfrlint] In the mul/sqr test (r12482), exclude mul.c and sqr.c.

2018-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed mpfr_mul (a, b, b, ...) into mpfr_sqr (a, b, ...) whenever possible

2018-03-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Detect mpfr_mul with identical 2nd and 3rd arguments,
	which can be replaced by mpfr_sqr (suggestion by PZ).

2018-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/const_pi.c] added a reference, and replace mpfr_mul by mpfr_sqr

2018-03-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_str.c] Fixed failure from r12473 when mpfr_prec_t is an int
	(missing casts for sprintf / printf).

2018-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_str.c] C++ compatibility.

	[tests/tget_str.c] Use tests_allocate / tests_free.

	Fixed spelling mistakes found by codespell 1.12.0.

2018-03-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_str.c] added tests for corner cases of mpfr_set_str o mpfr_get_str

2018-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] In EXTRA_DIST, put the mparam.h in alphabetic order.

	[src/Makefile.am] Updated EXTRA_DIST for amd due to r12387.

	Fixed spelling mistakes found by codespell 1.11.0.

	[codespell.ignore] Also ignore "cas".

	Added codespell.ignore file with simple words to ignore with codespell
	("iff" as used in math; "nd" as the n comes from \n in printf, but nd
	could also be a variable name; "te" as used as a variable name).
	Updated tools/mpfrlint to use this file with codespell.

2018-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_str.c] added tests for mpfr_get_str_ndigits
	[src/get_str.c] fixed bugs in mpfr_get_str_ndigits for b=2^k (value was 1 too
			large) and very large p (value was 1 too small)

2018-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typographic corrections for mpfr_subnormalize.

	[NEWS] Added mpfr_get_str_ndigits.
	[doc/mpfr.texi] Added mpfr_get_str_ndigits in "Added Functions".

	[doc/mpfr.texi] Minor corrections concerning mpfr_get_str.

	[src/mpfr.h] Added a note about a mpfr_prec_t limitation.

	[src/get_str.c] Simplified mpfr_get_str_ndigits (changes from r12455):
	  * MPFR_PREC_BITS is used to exactly do what is wanted.
	  * Removed dead code as currently, mpfr_prec_t <= unsigned long.
	    Note: if in the future we support mpfr_prec_t > unsigned long
	    (e.g. to have a 64-bit precision on MS Windows), the generic code
	    could be retrieved back from r12455.

2018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_str.c,src/mpfr.h] mpfr_get_str_digits -> mpfr_get_str_ndigits
	[doc/mpfr.texi] updated documentation of mpfr_get_str

	[src/get_str.c] fixed FIXME

2018-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Portability corrections in mpfr_get_str_digits.

2018-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_str.c] new function mpfr_get_str_digits
	[doc/mpfr.texi] added documentation for mpfr_get_str_digits

2018-03-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] Fixed bug from r12407 with 32-bit long and 64-bit limbs
	(e.g. as under 64-bit MS Windows).

2018-02-26  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Correction for test of the fallback to __float128:
	in the test program, define the variable outside main() in order to
	avoid an error when the -Werror=unused-variable GCC option is used.

	[src/get_sj.c] Avoid an unused variable.

	[doc/README.dev] Updated description of MPFR_WANT_FLOAT128.

	[doc/README.dev] Recommend AC_LINK_IFELSE rather than AC_COMPILE_IFELSE
	(see r12448 as an example of an issue with AC_COMPILE_IFELSE).

	[acinclude.m4] Fixed a test, which could define MPFR_INTMAX_WITHIN_LIMB
	even when not true (MPFR_STAT_STATIC_ASSERT() was just regarded as a
	function call since the macro was not defined, thus did not yield an
	error).

	[tests/tversion.c] Output the sizes of long and intmax_t.

	[acinclude.m4] Fixed incorrect test from r12426.

	Removed trailing spaces.

	Updated support for binary128:
	  * __float128 was changed to _Float128 (ISO/IEC TS 18661) in r12391;
	    also changed the suffix of the constants from "q" to "f128".
	  * Use __float128 with the "q" suffix as a fallback in order to avoid
	    regressions with GCC 6- and with C++ mode (g++).
	    As documented in the GCC manual, this is entirely compatible on most
	    platforms where both are supported: _Float128 and __float128 are the
	    same type, and it could be checked that the following prototypes are
	    equivalent (as expected):
	      _Float128 f (__float128)
	      __float128 f (_Float128)
	    The only potential issues would be on hppa and IA-64 HP-UX, where
	    __float128 is an alias for "long double" instead of _Float128, in
	    case the ABI would be different (I have no information about this)
	    and both would be mixed up with software using the MPFR conversion
	    functions for binary128 via __float128 or "long double". The worst
	    thing that could happen is a link error. If the link is accepted,
	    everything should be fine as the representation doesn't change.

	[src/set_float128.c] Removed a useless #include and corrected a comment.

2018-02-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_z_exp.c] Portability.

	[tests/tdiv_ui.c] Avoid a compilation error with
	gcc -std=c90 -pedantic -Werror in 32-bit ABI.

	[tests/tget_str.c] Fixed a return type.

2018-02-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_z_exp.c] new try for r12437. If that still does not work, we should
			  define macros BITS_PER_EXP_T, BITS_PER_PREC_T, ...

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_z_exp.c] Reverted r12437: the size of mpfr_exp_t is not
	always related to the size of mp_limb_t.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_z_exp.c] removed dead code on 64-bit computer

	[src/get_str.c] improved case m < g
	[tests/tget_str.c] improve coverage

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
	2 cases: TRUE and FALSE.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_str.c] fixed not enough allocation issue

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Correction: for AC_COMPILE_IFELSE, there are only
	2 cases: TRUE and FALSE.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] m=1 is now valid in get_str
	[src/get_str.c] allow m=1 for b=2^k
	[tests/tget_str.c] added test for m=1 and b=2

	[src/get_str.c] added a comment
	[tests/tget_str.c] improved coverage (finding this example was quite hard!)

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_sj.c] Removed two assertions, including an incorrect one.
	Added an assertion.

	[acinclude.m4] Correction: if we cannot test, the portable code must be
	selected.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac,acinclude.m4] added new macro MPFR_INTMAX_WITHIN_LIMB
	[src/get_sj.c] optimized the code when MPFR_INTMAX_WITHIN_LIMB=1

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Removed MPFR_LIMBS_PER_LONG_DOUBLE as it was not
	  properly specified in the general case and was actually used only
	  in src/set_ld.c with HAVE_LDOUBLE_IEEE_EXT_LITTLE.
	[src/set_ld.c] Simplified code. Moreover, the hypothetical case
	  GMP_NUMB_BITS == 16 will trigger a compilation error instead of
	  yielding incorrect code.

	[tests/tbuildopt.c]
	  * Added missing const.
	  * Use the variable s to avoid a warning and also to detect potential
	    undefined behavior with debugging tools if s is not a string.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_sj.c] fixed typo

	[src/get_sj.c] added comments and simplified the code

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Typo in a comment.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_q.c] improved coverage

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d64.c] Parsing in the portable version of string_to_Decimal64:
	similar changes as in r12416 for the _MPFR_IEEE_FLOATS version.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_ld.c] removed dead code (as in r12413 for mpfr_get_d)

	[src/get_flt.c] optimized code when MPFR_LIMBS_PER_FLT=1
	[tests/tget_flt.c] improved coverage

	[src/get_d64.c] simplified code, and removed dead code
	[src/mpfr-impl.h] added comment
	[tests/tget_set_d64.c] improve coverage

2018-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_q.c] Simplified code.

2018-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_d.c] removed dead code

	[src/get_d.c] optimized for common case MPFR_LIMBS_PER_DOUBLE=1

	[tests/tset_z_exp.c] improved coverage

	[src/set_q.c] removed dead code on 64-bit processor

	[src/set_ld.c] improve code when HAVE_LDOUBLE_IEEE_EXT_LITTLE is defined

2018-02-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c] Reverted r12408: MPFR_LIMBS_PER_LONG_DOUBLE cannot be
	used with the preprocessor due to the use of "sizeof".

2018-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_ld.c] improve code for MPFR_LIMBS_PER_LONG_DOUBLE=1

	[tests/tfma.c] improved coverage of mpfr_set_1_2

	[tests/tbuildopt.c] improve coverage

2018-02-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] Corrected a comment.

	[tests/tfma.c] Joined test_overflow3 and test_overflow4 by using a loop.
	Improved the corresponding test and error message. Also run this test
	with the default exponent range.

	[src/fma.c] Added FIXME for r12396, which still seems incorrect.

	[src/mpfr-impl.h] Typo in a comment.

	[NEWS] Update about the change of __float128 to _Float128: clarification
	that it is from ISO/IEC TS 18661 ("standard" was too vague); added FIXME
	on a possible fallback to __float128 and ABI considerations.

	[configure.ac] For --enable-float128, this is still autodetect, e.g.:
	  checking if compiler knows _Float128 with C99 constants... no
	Added a FIXME: a fallback to __float128 is necessary to avoid
	regressions.

2018-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] added comments
	[tests/tsqr.c] improve coverage of sqr.c to 100%

	[src/sqr.c] fixed a bug in mpfr_sqr_1n in a rare case near underflow,
		    only use mpfr_sqr_1, mpfr_sqr_1n, mpfr_sqr_2, mpfr_sqr_3
		    when all numbers have same precision (like for mpfr_mul),
		    and added comments
	[tests/tsqr.c] added tests, including non-regression for above bug

	[src/fma.c] added comments and a FIXME

	[src/fma.c] fixed last failure
	[tests/tfma.c] removed debug stuff

	[tests/tfma.c] added new failing test

	[src/fma.c] fix failure from last test

	[src/fma.c] added comments
	[tests/tfma.c] added a test (currently failing)

	[mips/mparam.h] updated

	changed __float128 (gcc specific) into the standard type _Float128

	[arm/mparam.h] updated

	[x86/mparam.h] updated

	[src/mparam_h.in] amd/k8/mparam.h -> amd/mparam.h

	[amd/mparam.h] updated

	[sparc64/mparam.h] updated

	[x86_64/core2/mparam.h] updated

	[powerpc64/mparam.h] updated

	[x86_64/mparam.h] updated

	[src/mulders.c] removed dead code

2018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tune/tuneup.c] ensure k < n in mpfr_divhigh_n[]

	[src/mparam_h.in] added __tune_znver1__ for AMD64 (e.g., gcc67.fsffrance.org)

	[src/mips/mparam.h] updated on gcc22

	[NEWS] added item

	removed tuning for x86/core2, updated tuning for generic x86

	[src/sparc64/mparam.h] updated tuning parameters for sparc64

2018-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mparam_h.in] Use the generic parameters for x86_64 with Clang.

2018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added tuning for ARM

2018-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	Reverted r12368: sparc64 tuning should be updated on gcc202.

2018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mparam_h.in] generic case for all remaining i386's

	[src/mparam_h.in] put back __tune_k8__

	[src/mparam_h.in] check __amd64__ before generic __x86_64__

	removed tuning for hppa (gcc61 is offline)

	removed tuning parameters for sparc64 (gcc64, gcc200 and gcc201 are offline)

	[tune/tuneup.c] for mpfr_div_threshold, start from 3 limbs again

	removed tuning for powerpc32 (no such machine available any more)

	[src/powerpc64/mparam.h] updated tuning parameters for powerpc64

	[src/amd/k8/mparam.h] fixed MPFR_DIV_THRESHOLD

	updated tuning parameters for amd/k8 and x86/core2

2018-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	Reverted r12359 and added a comment: tuning for x86 is used when
	building GMP/MPFR with a 32-bit ABI (ABI=32 / -m32).

2018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tuneup.c] start from 4 limbs for mpfr_div_threshold

	removed tuning for ia64 (gcc60.fsffrance.org is now offline)

	removed tuning for x86 (no more access to such machine)

	[tune/tuneup.c] make tune_simple_func more robust for small precisions

	[src/x86_64/mparam.h] fixed MPFR_DIV_THRESHOLD

	[x86_64/core2/mparam.h] updated on gcc14

2018-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] In the "long double" format recognition, added
	size information for IEEE extended (not used by MPFR, but this
	may be useful information for the user).

2018-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed tuning parameters for amd/athlon (we have no access to such machine
	any more)

	removed tuning for pentium4

	removed tuning for corei5 (was not used)

	[src/x86_64/mparam.h] added tuning for generic x86_64
	[tune/tuneup.c] mpfr_divhigh now wants n >= 2

	removed thresholds for arm since gcc57 is no longer available, thus we cannot
	tune on an ARM machine

2018-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mulders.c] Removed unused variable dinv.

2018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] added comment
	[src/mpfr-gmp.h] moved definition of MUL_FFT_THRESHOLD
	[src/mulders.c] removed unused code, and force n>=2 in mpfr_divhigh_n_basecase
	[tests/tmul.c] improve coverage
	[tune/tuneup.c] forbid k = n-1 in divhigh_ktab[]

	[tests/tdiv.c] improve coverage, now 100% for div.c

	[src/ai.c] revert part of r12312
	[tests/tai.c] added coverage test provided by Sylvain Chevillard

	[src/sub1.c] revert r12317 since it did not consider UBFs. For the record,
		     tfmma was failing with GMP_CHECK_RANDOMIZE=1519138438006416.

	[src/div.c] get rid of mpfr_div_with_mpz_tdiv_q

2018-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gmp_op.c] Fixed a bug in mpfr_cmp_q on NaN rational: the NaN flag
	was set by mpfr_set_q, but the flags were not restored just after.

	[src/gmp_op.c] Reverted incorrect change in r12337 for mpfr_cmp_q.
	Explanation in comment. If the code was not tested, it should be by
	using mpq_set_num and mpq_set_den to construct such rationals.

2018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tdiv.c] improve coverage

	[tests/tdiv.c] improve coverage of mpfr_div_2

2018-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{add,sub}1sp.c] Updated/added comments for MPFR_WANT_ASSERT >= 2.

2018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] removed dead code

	[src/gmp_op.c] removed dead code
	[tests/tgmpop.c] improve coverage of gmp_op.c to 100%

2018-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Added missing ";;" before "esac" for code robustness.

	[acinclude.m4] Added a FIXME. Added a ";;" for safety.

2018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[acinclude.m4] added comment, and define MPFR_LONG_WITHIN_LIMB when cannot test

2018-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/random_deviate.c] Improved highest_bit_idx in the case where
	MPFR_LONG_WITHIN_LIMB is not defined (tested with GCC).

2018-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] resolved FIXME and removed dead code

	[tests/tmul.c] improve coverage

	[src/random_deviate.c] highest_bit_idx() assumes x > 0

	[src/random_deviate.c] fixed comment

	[src/random_deviate.c] redo change r12315 using MPFR_LONG_WITHIN_LIMB

	[src/sub1.c] added 2 FIXME

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tai.c] Renamed test_near_zero to test_near_m2e, since this is
	"exercise mpfr_ai near m*2^e", as documented. Corrected comments.

	[tests/tai.c] For test_near_zero(), check that the NaN flag was not set
	(useful since such tests don't really check that the result is not NaN).

2018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tmul.c] improve coverage

	[tests/tmul.c] improve coverage

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/random_deviate.c] Reverted incorrect change r12315: MPFR_LIMB_MAX
	cannot be used with the preprocessor due to the cast. The test should
	be done in "pure" C and the middle-end of the compiler should optimize.

	[src/sub1.c] Removed an unused label.

	[tests/tzeta.c] Check that the NaN flag was not set in some tests
	that do not involve NaN (useful since such tests don't really check
	that the result is not NaN).

2018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1.c] removed dead code, now coverage should be 100%

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ai.c] Avoid more integer overflows.

2018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1.c] removed dead code
	[tests/tsub.c] added coverage test

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ai.c] Detect some potential integer overflows.

2018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/random_deviate.c] don't compile alternate code if not needed

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ai.c] Coding style. Corrected comments.

2018-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tzeta.c] improve coverage (and also uceil_exp2.c)

	[src/ai.c] removed dead code, and improved coverage
	[tests/tai.c] exercise mpfr_ai near (negative) zeroes

	[src/ai.c] fixed recomputation of wprec (to be confirmed)

	[src/ai.c] removed dead code

2018-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Fixed indentation.

	Removed trailing whitespace.

	[src/sqrt.c] Coding style.

	[src/expm1.c] Avoid a potential integer overflow in a type conversion
	for 32-bit mpfr_exp_t and 64-bit long (e.g. with -D_MPFR_PREC_FORMAT=2
	on a 64-bit Linux machine).

	[src/div_2ui.c] Reverted incorrect change in r12272 and added comments
	  and assertions.
	[tests/tmul_2exp.c] Improved a test to trigger the bug in r12272 also
	  when mpfr_exp_t > 32 bits (e.g. on 64-bit Linux machines).

	[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for positive).

	[tests/tmul_2exp.c] Improved output if mpfr_exp_t > long (for negative).

	[tests] Fixed type errors with -D_MPFR_PREC_FORMAT=2 in CFLAGS and the
	--enable-assert=full configure option (signaled by GCC's -Wformat).

	[src/mul.c] Fixed type error with -D_MPFR_PREC_FORMAT=2 in CFLAGS and
	the --enable-assert=full configure option (signaled by GCC's -Wformat).

	[doc/README.dev] Removed the mention of MPFR_EXT_EMIN and MPFR_EXT_EMAX,
	replacing them by MPFR_EMIN_MIN and MPFR_EMAX_MAX, as done in r12298.
	Note: These old macros had been introduced in r7863 so that one could
	choose different values for the extended exponent range for debugging
	purpose, but they were not used in practice and were adding complexity
	(and potential inconsistency) for no really good reason.

2018-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/agm.c] added comment about line of code impossible to cover

	[src/agm.c,src/div.c,src/mpfr-impl.h] replaced MPFR_EXT_EMIN by MPFR_EMIN_MIN,
					      and MPFR_EXT_EMAX by MPFR_EMAX_MAX

	[src/sqrt.c] removed dead code
	[tests/tsqrt.c] improve coverage of mpfr_sqrt, now at 100%

	[tests/tsqrt.c] improve coverage

	[tests/tsqrt.c] improve coverage

2018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] removed dead code

	[tests/tsqrt.c] improve coverage

	[tests/tsqrt.c] improved coverage
	[src/sqrt.c] added comments

2018-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/expm1.c] Added a FIXME comment.

2018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsqrt.c] improve coverage

	[src/sqrt.c] removed dead code

2018-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Improved a comment.

	[tests/tsub.c] Check reuse of arguments for all mpfr_sub tests, when
	possible.

2018-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed bug in mpfr_sub1sp1n (corner case when a=c)
	[tests/tsub1sp.c] added non-regression test

	[src/sub1sp.c] fixed case 2e

2018-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Updated bug20180217 to trigger the bug: one needs to
	reuse the smallest input variable as the output variable.

	[tests/tsub.c] Added a test.

	[src/expm1.c] Updated a comment.

	[src/expm1.c] Fixed an integer overflow from r12276.

	[src/expm1.c] Added a log message.

2018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tfmma.c] added coverage test

	[tests/tfmma.c] improve coverage of add.c (ubf case)

2018-02-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/expm1.c] It seems that code removed in r12273 wasn't necessarily
	dead code with mpfr_exp_t > long (-D_MPFR_EXP_FORMAT=4 needed) because
	for MPFR_SMALL_INPUT_AFTER_SAVE_EXPO, err would be limited to -LONG_MAX
	and precisions larger than LONG_MAX could be problems. The -LONG_MAX
	bound from r4127 was arbitrary and only used to simplify the code due
	to the fact that mpfr_cmp_si compares to a "long" argument. But now we
	have the internal mpfr_get_exp_t function, allowing us to avoid this
	arbitrary bound (fixing the code and making it more efficient for these
	extreme cases) and simplify the code even more.

2018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mbench] added new option to usage

	[mbench] added option -d to fix the exponent difference between operands
		 (useful for mpfr_add and mpfr_sub, for example use -d0 for operands
		 with same exponent, -d1 for operands differing by 1, ...)

	[src/expm1.c] improve coverage (by removing dead code)

2018-02-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_2ui.c] No need for mpfr_uexp_t, due to the constraints on
	the valid exponents.

	[doc/README.dev] Update about mpfr_exp_t.

	[src/mul_2ui.c] Simplified mpfr_mul_2ui (like mpfr_div_2ui).

	[src/div_2ui.c] Simplified justification.

	[src/div_2ui.c] Simplified code as suggested by PZ; added justification.

2018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	GNU style: https://www.gnu.org/prep/standards/standards.html#Formatting

	[src/div_2ui.c] added comment
	[tests/tmul_2exp.c] added coverage test

2018-02-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_2ui.c] Replaced FIXME by an explanation.

2018-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div_2ui.c] added FIXME

	[src/cmp_ld.c] simplified code (and avoid useless test when long double is not
		       double-double)

	[tests/tsub1sp.c] improve coverage

	[tests/tadd1sp.c] improve coverage of add1sp

	[src/sub1sp.c] fixed bug20180216

	[tests/tadd1sp.c] added coverage test

2018-02-16  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] More tests in bug20180216.

	[tests/tsub.c] Added bug20180216 test currently failing (corresponding
	to the failure mentioned in r12253, r12254 and r12255, but reproducible
	with a simple "./configure").

	[src/exp_2.c] Note that the internal behavior depends on whether
	MPFR_LONG_WITHIN_LIMB is defined or not (see also r12253). This
	should not matter, possibly except in case of bug, like currently.

	[acinclude.m4] Updated FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.

	[acinclude.m4] Added a FIXME for MPFR_CHECK_MP_LIMB_T_VS_LONG.

	[src/sub1sp.c] Squeezed useless double-space.

2018-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed bug20180215()

2018-02-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub.c] Updated comment for bug20180215.

	[src/sub1sp.c] Use "else" for symmetry with above code.

	[tests/tsub.c] Added a comment for bug20180215 (bug in the case
	2 <= d < p in generic code mpfr_sub1sp() introduced in r12242).

	[tests/tsub.c] Added bug20180215 test currently failing, found from a
	failure using -DMPFR_GENERIC_ABI in CFLAGS and the --enable-assert=full
	configure option; but the test had to be extended so that it also fails
	with a simple "configure", i.e. without -DMPFR_GENERIC_ABI in CFLAGS
	and without the --enable-assert=full configure option.

	Removed trailing whitespace.

2018-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] review of case 2 <= d < p in generic code mpfr_sub1sp()

	[src/div_ui.c] GNU style
	[src/sub1sp.c] reviewed the code for d>=p in mpfr_sub1sp()

2018-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Much improved the check of the use of GMP internals.

2018-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed a FIXME

	[src/mpfr-gmp.h] define prototype of __gmpn_rsblsh1_n
	[src/sub1sp.c] changed names of variables to something more readable

	[configure.ac] detect mpn_rsblsh1_n instead of mpn_rsblsh_n
	[src/sub1sp.c] use mpn_rsblsh1_n instead of mpn_rsblsh_n with k=1

2018-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Added 2 FIXME's.

	[src/sub1sp.c] In mpfr_sub1sp, initialize k only once. This slightly
	simplifies the code and avoids a -Wmaybe-uninitialized warning from
	GCC. The only failure on a 64-bit Linux machine is tsub1sp, due to
	an assertion failure in mpfr_sub1sp, as before this change.

	[src/sub1sp.c] Avoid the swapping of the exponents when they are equal.

2018-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] review of case d=1 in generic code

	[src/add1sp.c] no need of MPFR_TMP_MARK any more

	[src/sub1sp.c] end of review of case d=0 in generic code

	[src/sub1sp.c] work in progress

2018-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Moved a MPFR_ASSERTD to the right place.

2018-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] re-enable __gmpn_rsblsh_n (with WANT_GMP_INTERNALS)

	[src/sub1sp.c] small improvement

	[tools/cfarm.sh] updated for 4.0.1-rc2

	[src/add1sp.c] mp_ptr -> mp_limb_t*

	[src/add1sp.c] get rid of MPN_COPY/MPN_ZERO in generic code

2018-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Improved comments and other minor changes.

	[src/add1sp.c] In the generic code of mpfr_add1sp, fixed the computation
	of the round and sticky bits from r12220. At the same time, improved the
	handling of MPFR_RNDF in this part of the code:
	  * The "while" loop to compute the sticky bit is no longer done in this
	    case (the sticky bit does not matter).
	  * The "goto" is avoided.

	[tests/tadd.c] Added 2 tests that fail starting with r12220.

2018-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] cleanup generic code mpfr_add1sp()

2018-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fma.c] Added a FIXME comment about overflow/underflow issues in
	  corner cases (already caught with MPFR_ASSERTN), fixable with UBF
	  like in mpfr_fmma.
	[src/hypot.c] Updated a comment: The problem that would come from an
	  underflow in y^2, in particular because x was scaled in order to
	  avoid an overflow in x^2, has been avoided by using a FMA (though
	  still buggy for these cases, as mentioned just above).

2018-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added/updated comments about the config.h inclusion.

	[tests/{tset_float128.c,tset_ld.c}] Removed obsolete WITH_FPU_CONTROL
	related code (this should have been done in r12185).

2018-02-07  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Updated GMP URL.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Corrected minimal GMP version.
	[tools/mpfrlint] Updated test to detect minimal GMP version mismatch.

	[INSTALL] Corrected minimal GMP version (thanks to David Edelsohn).
	[tools/mpfrlint] Added a test to detect minimal GMP version mismatch.

	[tools/announce-text] For releases, check the VERSION file of the tag.

	[doc/README.dev] "To make a release": moved a sentence.

2018-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv_ui.c] Forcibly disable value coverage checking if
	mp_limb_t > unsigned long (e.g. on mips64 with the n32 ABI).

	[tests/tdiv_ui.c] Corrected comments.

	[tests/t*random*.c]
	  * Replaced calloc + free by tests_allocate + tests_free as usual.
	  * trandom.c, turandom.c: do bitwise operations in unsigned arithmetic.

	[tests/t*random*.c]
	  * Replaced some fprintf with stderr by printf (but not those
	    concerning memory allocation errors).
	  * Do bitwise operations in unsigned arithmetic.
	  * Formatting.

	[tests] Formatting.

	[tests/tests.c] Make stderr unbuffered again.
	Note for the history: both stdout and stderr were made unbuffered in
	r2361, then all stderr were changed to stdout (and the corresponding
	setbuf on stderr removed) in r2449 for consistency, but stderr was
	used later for specific cases (e.g. memory allocation errors or when
	stdout is already used for something else), and it is also used for
	assertion failures. Thus the setbuf on stderr is still needed.

	[tests] Fixed the cases where tests_start_mpfr was called too late,
	i.e. after potential output (to stdout).
	  * tremquo.c: moved the call to tests_start_mpfr to the beginning.
	  * tset_float128.c, tset_ld.c: removed the optional, obsolete code
	    setting the FPU control word; MPFR_FPU_PREC can be used instead
	    (see tests.c).

	Reverse-merged r12181 since tests_start_mpfr disables stdout buffering,
	so that the fflush() are unnecessary.

	[tests/tabort_*.c] Flush stdout after a printf(), as an abort() is
	expected. This is needed on platforms where abort() does not flush
	the stdio streams, such as with the GNU C Library (glibc) 2.27.

2018-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention "make check-exported-symbols" (experimental).

	[tests/tdiv_ui.c] Portability update, in case MPFR_PREC_MIN > 1.

2018-01-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv_ui.c] In corner_cases, test larger values for xn,
	as suggested by Paul, allowing one to cover case 2 for both
	sb=0 and sb=1. Value coverage is now complete.

	[tests/tdiv_ui.c] Updated midpoint_exact to also test the divisor
	ULONG_MAX, allowing one to cover cases 3 and 4.

	[tests/tdiv_ui.c] Added tests with simple midpoint and exact cases.
	This covers case 9, sb=0.

	Added a case for the value coverage for tdiv_ui.
	→ Now, on a 64-bit Linux machine:
	    mpfr_div_ui not tested on case 2, sb=0
	    mpfr_div_ui not tested on case 2, sb=1
	    mpfr_div_ui not tested on case 3, sb=0
	    mpfr_div_ui not tested on case 4, sb=0
	    mpfr_div_ui not tested on case 9, sb=0

	Added value coverage for tdiv_ui (combinations of rb and sb in the
	different cases of the mpfr_div_ui code).
	→ Currently on a 64-bit Linux machine:
	    mpfr_div_ui not tested on case 2, sb=0
	    mpfr_div_ui not tested on case 3, sb=0
	    mpfr_div_ui not tested on case 8, sb=0

	[src/div_ui.c] Case tmp[yn] != 0: simplified code since u ≥ 2.

	[src/div_ui.c] Case tmp[yn] == 0:
	  * corrected/improved comments;
	  * simplified condition rb && sb to rb (since if rb ≠ 0, then r ≠ 0,
	    so that the current sb ≠ 0);
	  * replaced "& (~MPFR_LIMB_HIGHBIT)" by "<< 1" (should be simpler).

2018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div_ui.c] fixed corner case (hopefully)

2018-01-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Improved a regexp (avoiding false positives).

	[tests/tdiv_ui.c] corner_cases() requires limbs to fit in unsigned long.

	[tests/tdiv_ui.c] Back to a decimal constant (the UL suffix was
	incorrect, but just a U is OK).

2018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tdiv_ui.c] added test for corner case (currently fails)

2018-01-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv_ui.c] Fixed a value (from a zsh bug).

	[src/div_ui.c] Comment: now, "i.e." is correct.

	[tests/tdiv_ui.c] Added ABI-independent bug20180126 tests.

2018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div_ui.c] fixed a comment

2018-01-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_ui.c] Typo in a comment.

	[src/div_ui.c] Updated a comment.

	[src/div_ui.c] Clarified the notation (this was ambiguous, with two
	possible interpretations). Added comments about mpn_divrem_1.

	[src/div_ui.c] Added a FIXME.

2018-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div_ui.c] fixed a comment, and added a FIXME

2018-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_ui.c] Clarified a comment.

	[src/div_ui.c] Started to review the code; minor changes.

	[src/div_ui.c] Minor update of comments.

	[src/div_ui.c] Fixed the exact case, which used nexttoinf uninitialized.

	[tests/tdiv_ui.c] bug20180126: enable the test only when a limb fits in
	an unsigned long; clarified a comment.

2018-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div_ui.c] fixed bug20180126 (from tdiv.c), with a complete rewrite of
		       mpfr_div_ui using the round and sticky bits
	[tests/tdiv_ui.c] added more tests

2018-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] mpfr_div bug bug20180126: also test negative values.

	[tests/tdiv.c] Updated comment about mpfr_div bug bug20180126.

	[tests/tdiv.c] mpfr_div bug bug20180126 was introduced by r9086.

2018-01-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] Completed r12128 test with new comments and an assert.

	[tests/tdiv.c] Added test case for a mpfr_div bug of MPFR 4.

2018-01-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added information about symbol checking.

2018-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Mention a libtool 2.4.6 bug concerning Solaris, yielding
	potential failures if a compatible MPFR version is already installed:
	this MPFR library is tested instead of the one that has just been built.

2018-01-22  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] + Improved __GMP_CC and __GMP_CFLAGS retrieval.

	[configure.ac] In the CC and CFLAGS setup from gmp.h, added to the
	cpp list: "clang -E"; "cl -E" and "icl -E" for Windows ICC and MSVC
	(suggested by Alexander).

2018-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": mention "make check-gmp-symbols"
	and "make check-exported-symbols".

	[Makefile.am] Updated comments.

	[src/Makefile.am] For check-gmp-symbols and check-exported-symbols, if
	the library is not $(top_builddir)/src/.libs/libmpfr.so, these rules
	do nothing instead of potentially failing.

	Added check-exported-symbols make rule to check that MPFR does not
	define symbols with a GMP reserved prefix.

2018-01-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mp_clz_tab.c] Fixed a condition (see bug mentioned at r12107).

	[src/mpfr-gmp.h] Reverse-merged r11969, which yields a build failure
	under MinGW when GMP is built with "--disable-shared --enable-static
	--enable-assert --disable-assembly" and MPFR is built using the GMP
	build. Indeed, this commit was incorrect, as if the GMP build is used,
	then this is GMP's longlong.h that is used and GMP's __clz_tab version
	that should be used.
	The real cause of the "multiple definition of `__gmpn_clz_tab'" error
	reported at
	  https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00061.html
	is that MPFR defines its own __gmpn_clz_tab while this is not needed
	(and must not be done) when the GMP build is used.

2018-01-16  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] - Decide whether multiple calls to mpfr_clear should be allowed.

	[TODO] + Decide whether multiple calls to mpfr_clear should be allowed.

2018-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[NEWS] Update. Prepare for new version 4.1.0.

	[doc] Updated FAQ.html with update-faq.

2018-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tlgamma.c] bug20180110: test the ternary value and the flags.

	[src/lngamma.c] Fixed mpfr_lgamma bug for tiny negative x, in case
	emax < exponent of the result (the issue was an overflow in the "fast"
	algorithm, which made it loop with more and more working precision).

	[src/lngamma.c] Removed a useless cast.

	[tests/tlgamma.c] Added a test case for a bug found from the tgeneric
	change done in r12088.

	[tests/tgeneric.c] Do several overflow/underflow tests instead of 1, and
	this for each precision. This allows one to detect the mpfr_ai bug found
	and fixed on 2018-01-07 (with 32-bit *and* 64-bit ABI):
	  https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html
	Moreover, this makes tlgamma loop with a 32-bit ABI (x86). To be fixed.

	[tests/tgeneric.c] Added comments for tests in a reduced exponent range.

	[tests/tsprintf.c] About r12084, simplified the code, without needing
	strncpy.

	[tests/tsprintf.c] Fixed strncpy usage, in particular to ensure a
	null-terminated string (bug detected by gcc-snapshot 20180107-1 under
	Debian with -Werror=stringop-truncation).

2018-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Fixed the @GMPabs macro in tex mode: due to the use of
	the OT1 encoding, the pipe character "|" was giving a wide dash.

	[doc/mpfr.texi] For mpfr_custom_get_exp, restored the spec for NaN,
	infinity and zero, with more details.

	[doc/mpfr.texi] Improved description of mpfr_custom_init_set.
	Note: For the versions of the manual generated with TeX (PDF/DVI/PS),
	"|kind|" appears as "—kind—", and the description of mpfr_ai has
	the same issue (since its introduction in MPFR 3.0.0). The cause
	is unclear, and this will be fixed later.

2018-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] for mpfr_custom_get_exp, explain the significand is considered
			in [1/2,1) as for mpfr_get_exp

2018-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc]
	  * texinfo.tex: update to the latest version 2018-01-09.11, which
	    supports @var with script font size without any drawback.
	  * mpfr.texi: replaced the now useless @svar by @var.

2018-01-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tai.c] In bug20180107, also check the flags.

	[src/ai.c] Really fixed the bug.

	[src/check.c] Typo.

2018-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/ai.c] missing call to mpfr_check_range

	[tests/tai.c] added test that fails on x86_64

	[tests/tai.c] added test for bug in mpfr_ai (see thread
	https://sympa.inria.fr/sympa/arc/mpfr/2018-01/msg00001.html)

2018-01-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[tools/ck-mparam] In the copyright notice, just keep the year 2011
	since this file is not part of the tarball (just used by mpfrlint).

	Copyright notice update: added 2018 with
	  perl -pi -e 's/ (\d{4}-)?(2017)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh, reverting the ck-mparam and timings-mpfr.c files and
	the mbench directory under "tools" (not distributed with MPFR).
	Removed 2017 from the example in the doc/README.dev file.

2018-01-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/zeta.c] added comments and FIXME

	Note (2019-04-30): a bug has also been introduced (fixed in r13485).

2017-12-25  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Minor corrections for GNU MPFR 4.0.0.

2017-12-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Added a note about gettimeofday() and a cast.

	[tests/tests.c] Fixed a potential integer overflow from r12053 with
	GMP_CHECK_RANDOMIZE=1, in particular under a 32-bit Linux.

2017-12-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tests.c] decrease probability of collision with random seed

	[src/exp_2.c] fixed bug from previous commit
	[src/subnormal.c] added assert

	[tests/texp.c] added test for new bug

2017-12-22  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

	[src/subnormal.c] Replaced FIXME.

	[tests/tj1.c] Avoid a potential integer overflow.

2017-12-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/subnormal.c] added FIXME

	[src/sin.c] simplified code with RNDA

	[src/hypot.c] mimic mpfr_round_near_x

	[tests/tj1.c] exercise corner case

	[tests/tj1.c] added test for j1(z) with small z

	[src/hypot.c] fixed issue with overflow flag not correctly set

2017-12-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/next.c] Reverted r12035 as per documentation, which follows
	IEEE 754 (with the usual special treatment for the single NaN).

2017-12-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/next.c] fixed nextinf (missing overflow flag)
	[tests/thypot.c] removed debug call to mpfr_dump in previous commit

	[tests/thypot.c] another fix...

	[tests/thypot.c] fixed bug20171221()

	[tests/thypot.c] new failing test

	[src/lngamma.c] fixed bug when u=0 in case z0 < 1
	[tests/tlngamma.c] fixed test case which was wrong

2017-12-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tlngamma.c] added test for new failure

	[src/lngamma.c] fixed bug found in previous commit

	[tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2

2017-12-20  Vincent Lefèvre  <vincent@vinc17.net>

	Updated version to 4.1.0-dev again.

	Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.

	[src/fma.c] Minor improvements. Added an assert.

	[src/tanh.c] GNU coding style.

	[src/mul.c] Reindentation.

	[src/exp2.c] Replaced two MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.

2017-12-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp2.c] Fixed the double rounding problem in an underflow case,
	triggered by the test added in r12017.

	[tests/texp2.c] Added test of underflow in MPFR_RNDN with exact value
	close to 2^(emin-2). Currently fails due to double rounding.

	[tests/tdiv.c] Added new non-regression test: the was the real cause of
	the ttanh failure in r11993 without the tanh.c fix in this same commit.
	But this mpfr_div was fixed in r12002.

	[doc/mpfr.texi] Added a comment about a bug/limitation in makeinfo 5.2.

	[doc/mpfr.texi] Improved svar macro for nottex, in case it is used
	in the future.

	[doc/mpfr.texi] Define svar even for nottex, though it is not used
	(attempt to avoid a failure with makeinfo 5.2).

2017-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fma.c] fixed bug in mpfr_fma
	[tests/tfma.c] added non-regression test

2017-12-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp2.c] Update concerning the underflow/overflow cases.
	Still incomplete.

	[doc/mpfr.texi] Updated a comment.

	[doc]
	  * texinfo.tex: update to the latest version 2017-12-18.20, which
	    reverts the change done in 2017-12-01.13 attempting to support
	    @var with script font size (e.g. in exponent); but this change
	    didn't work correctly.
	  * mpfr.texi: introduced a @svar macro to handle this case. It
	    currently disables the use of @var, the other workaround being
	    worse.

2017-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

	[doc/algorithms.tex,src/tanh.c] Fixed the bound, in particular from
	the recent improvements in the error analysis.

2017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] we should compare the smaller size and not the larger one to
		    MPFR_MUL_THRESHOLD or MPFR_SQR_THRESHOLD for Mulders' short product

	[src/mul.c] with Mulders', convert RNDF to RNDZ
	[tests/tmul_d.c] added a non-regression test

2017-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] mpfr_tanh: corrected bounds (thanks to Paul).

	[doc/algorithms.tex] mpfr_tanh: detailed some inequalities.

2017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] fixed bug in mpfr_div2_approx()
	[tests/tdiv.c] added non-regression test
	[tests/ttan.c] added test triggering bug in mpfr_div2_approx()

2017-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] mpfr_tanh: resolved both FIXME's.

	[doc/algorithms.tex] mpfr_tanh: corrected a part of the error analysis
	(2^k+4 ≤ |theta_4|^(−1/2) was not necessarily true, since theta_4 can
	be very small). As a consequence, the lemma can be simplified/improved
	(first FIXME). Added a second FIXME on a condition that is not checked.

	[doc/algorithms.tex] mpfr_tanh: missing absolute value; added a \cdot.

	Removed trailing whitespace.

	[doc/algorithms.tex] Added another \cdot for readability.

2017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/exp2.c] added FIXME

2017-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Minor corrections for hyperbolic tangent function:
	  * "e" had two different meanings (BTW, the constant e should actually
	    be written \mathrm{e} everywhere in the document).
	  * Use \left...\right instead of |...| when it contains an expression
	    starting with \log (the latter was confusing pdflatex, which added
	    a spurious space before \log).
	  * Added some \cdot for better readability.

2017-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/exp2.c] fixed bug near underflow
	[tests/texp2.c] added non-regression test

	[tests/ttanh.c] added test for bug in mpfr_tanh
	[doc/algorithms.tex] fixed error analysis for mpfr_tanh
	[src/tanh.c] fixed error analysis
	Note after r12016: Even though mpfr_tanh was incorrect, the failure
	of the test added in ttanh.c was actually *only* due to a bug in the
	mpfr_div code specific to the trunk (fixed in r12002), i.e. this was
	not a non-regression test for the mpfr_tanh bug itself (in particular,
	this test does not introduce a failure in the 3.1 branch, which still
	has the same incorrect mpfr_tanh code but a correct mpfr_div).

2017-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	Updated version to 4.1.0-dev again.

2017-12-17  Vincent Lefèvre  <vincent@vinc17.net>

	Updated version to 4.0.0-rc2 for an attempt to replace the 4.0 branch.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

2017-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] fix bug in mpfr_add1sp3() in case d=GMP_NUMB_BITS

2017-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tadd1sp.c] added test for new bug (still to be fixed):

	Seed GMP_CHECK_RANDOMIZE=1514385177 (include this in bug reports)
	add1 & add1sp return different values for MPFR_RNDN
	Prec_a = 137, Prec_b = 137, Prec_c = 137
	B = 0.11111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000E-66
	C = 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000110000E-2

	add1  : 0.10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000E-1
	add1sp: 0.11111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000010000E-2
	Inexact sp = 0 | Inexact = 0
	Flags sp = 8 | Flags = 8
	add1sp.c:89: MPFR assertion failed: 0

2017-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/root.c] Minor comment correction.

	[src/root.c] Completed fix from r11978, as x=-1 was affected too. Also
	  added comments explaining that mpfr_root_aux assumes |x| ≠ 1 and why.
	  Hence the need of a filter on |x| = 1.
	[tests/troot.c] Added test for x = -1.

	[tests/troot.c] Replaced mpfr_root by TF (like in the other tests).

2017-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/root.c] fixed bug when x=1
	[tests/troot.c] added non-regression test

2017-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub1sp.c] Corrected a type. And mpfr_equal_p being a predicate
	function, it's better to use Boolean operators on it.

2017-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tsub1sp.c] added a generic test for bug20171213()

2017-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{mul.c,sqr.c}] Minor changes, making code similar to sub1sp.c.
	Checked with
	  grep -A 1 'sb *>>' src/*.c
	that the bug fixed in r11974 does not occur in other parts of the code.
	BTW, there is much duplicate code, as shown by the grep output, and
	using macros could have avoided that, making bugs easier to reproduce
	(since a same bug would be duplicate several times).

2017-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed bug in mpfr_sub1sp2()
	[tests/tsub1sp.c] added non-regression test

2017-12-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpf2mpfr.h] Added a comment.

2017-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpf2mpfr.h] missing mpf_inits/mpf_clears

	[src/mpfr-gmp.h] redefine __clz_tab also with gmp-build

2017-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved error message.

	[tests/talloc.c] Added a comment about why talloc requires ISO C99.

	[src/mpfr-cvers.h] Removed a useless test for __MPFR_STDC, as one just
	needs to check whether we have a C99, C11, etc. implementation (if not
	done via a configure test). Particular incompatibilities with the C90
	standard should always be checked via a configure test.

	[tests] Added *.exe to svn:ignore property (files from MinGW builds).

2017-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tools/timings-mpfr.c] always use clock() [now very accurate under Linux]

2017-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/timings-mpfr.c] Updated years in copyright notice.

	[tools/timings-mpfr.c] Fixed prototypes.

	[tools/timings-mpfr.c] Added a defined(_MSC_VER). But clock() is
	standard, so why not always using it?

	[doc/README.dev] Correction.

	[doc/README.dev] Made formatting consistent (same as configure --help).

	Completed r11955: There were also DEBUG macros under the "tests"
	directory. Since such macros can still be useful in case a test failure,
	replaced them by MPFR_DEBUG to avoid issues with CI builds that define
	the DEBUG macro. But an environment variable would be a better solution
	(see MPFR_DEBUG_BADCASES as an example).

	[TODO] Removed item on the DEBUG macro (done in r11955).

2017-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	DEBUG_TGENERIC -> MPFR_DEBUG_TGENERIC
	XDEBUG -> MPFR_DISABLE_IEEE_FLOATS

	get rid of DEBUG macro (but keep corresponding commands in comment to help
	understanding of the code and debugging)

2017-12-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_q.c] Removed trailing whitespace.

2017-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tget_q.c] replaced MPFR_ASSERTN(0) by exit(1)

2017-12-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_q.c] Optimization of r11951 suggested by Trevor Spiteri:
	https://sympa.inria.fr/sympa/arc/mpfr/2017-12/msg00040.html

2017-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_q.c] make result of mpfr_get_q in canonical form
	[tests/tget_q.c] added non-regression test

	[src/lngamma.c] replace call to __gmpfr_ceil_log2 by __gmpfr_int_ceil_log2

2017-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Rename the DEBUG macro to MPFR_DEBUG?

2017-12-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] Also distribute generic/coverage/mparam.h
	(at least useful for testing the distributed tarballs).

	[doc] Updated FAQ.html with update-faq.

	[doc] Updated FAQ.html with update-faq.

	[doc/README.dev] "To make a release":
	  * Note that this needs to be done in a branch.
	  * Swapped (1) and (2), in particular because the coverage might be
	    different in -dev versions and it is better to give results closer
	    to the release.

	Updated version to 4.1.0-dev.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	Moved tests/timings-mpfr.c into directory "tools" as it is not part
	of the test suite.

2017-12-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Removed FIXME about the sign bit of NaN: done in
	r11910 and r11920 (documentation + tests).

	[src] Replaced some "return 0" by "MPFR_RET (0)" (the generated code
	is the same as shown by gcc, thanks to an obvious optimization; this
	is semantically better, which could help provers, and would allow
	code instrumentation in the future, if need be).

2017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	got rid of mpz_dump (undocumented in GMP)

	[src/mpfr-mini-gmp.c] updated with GMP 6.1.2

2017-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected a Texinfo typography issue.

	[src/pool.c] Updated description. Corrected copyright years as the
	pool code itself was introduced in 2014.

	[tests/timings-mpfr.c] Removed trailing whitespace, untabified,
	changed GMP_RNDN to MPFR_RNDN.

	Cleanup and fixes for the mpz_t pool.
	  * Split src/free_cache.c to itself and a new source file src/pool.c
	    containing pool related code.
	  * src/mpfr-impl.h, src/pool.c: cleanup and fixes. In particular:
	      - renamed MPFR_MY_MPZ_INIT to MPFR_POOL_NENTRIES;
	      - no longer use GMP's symbols __gmpz_init, etc. directly;
	      - improved the condition for mpfr_mpz_init2;
	      - fixed the condition in mpfr_mpz_clear (we want to consider
	        the allocated size, not the size of the current number).
	  * src/Makefile.am: added pool.c.
	  * src/mpfr.h: added mpfr_free_pool prototype.
	  * doc/mpfr.texi: updated pool description in "Memory Handling";
	    new function mpfr_free_pool.
	  * doc/README.dev: update due to the rename of MPFR_MY_MPZ_INIT.
	  * NEWS: better announcement of the mpz_t pool.

	[doc/mpfr.texi] Small correction concerning the caches.

	[doc/mpfr.texi] More details for mpfr_fpif_export and mpfr_fpif_import.

2017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[timings-mpfr.c] test file for measuring timings (added -p option)

2017-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	Updated the remaining www.loria.fr URL's.

	[doc/algorithms.bib] Updated URL's.

	[doc/mpfr.texi] References: typography; updated a URL.

2017-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] updated reference to "Modern Computer Arithmetic"

	[free_cache.c] limit the size of objects in the mpz_t pool

2017-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/free_cache.c] Added a comment for the mpz_t pool, and a suggestion
	for mpfr_mpz_clear so that the pool will not take too much memory while
	keeping a possible benefit for very small precision.

2017-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Made box around code examples for clarity and grep.

	[doc/mpfr.texi] For mpfr_fpif_export: the sign of a NaN is stored.
	[tests/tfpif.c] Test the sign of NaN (in particular).

	[doc/mpfr.texi] Updated references.

	[doc/mpfr.texi] Update about 0 of type without signed zeros, as in
	mpfr_div_ui.

	[doc/mpfr.texi] Document the behavior of mpfr_ui_pow and mpfr_ui_pow_ui
	on the integer 0 (0 does not have a sign here).

2017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mini-gmp] added information about result of "make check"

2017-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Removed old code for pre-GMP-5 versions.

	[src/urandomb.c] Removed an obsolete "#if __MPFR_GMP(5,0,0)" as we now
	require GMP 5.0+ and mp_bitcnt_t is also defined by mini-gmp.

	[src/mpfr-gmp.h] Removed the code that defined mpn_copyi and mpn_copyd
	macros for GMP < 5, since MPFR now requires GMP 5.0+ and these functions
	are also defined by mini-gmp (these macros were used by mini-gmp only
	because mini-gmp does not define GMP_VERSION).

	[src/mpfr-gmp.h] Missing parentheses around parameters in mpn_copyi
	and mpn_copyd macro definitions.

2017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bug in replacement function for copyi and copyd (found with mini-gmp)

	add --disable-shared for mini-gmp (not tested yet with dynamic linking)

2017-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Explain how to avoid the "... is deprecated" warning when
	testing a deprecated function.

	[doc/README.dev] Removed a -Wno-error=deprecated-declarations as
	the specific warnings are now avoided (r11896).

	Disable the "deprecated" attribute of deprecated functions *only* for
	the tests of these functions, to avoid the corresponding warnings.

	Removed trailing whietespace.

2017-12-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed compiler warnings with mini-gmp

2017-12-04  Vincent Lefèvre  <vincent@vinc17.net>

	Simplified the use of MPFR_USE_FILE since <stdio.h> (<cstdio> for C++)
	is unconditionally included.

2017-12-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	make compilation work again (make + make check) with mini-gmp

2017-12-04  Vincent Lefèvre  <vincent@vinc17.net>

	Improved portability of the check-gmp-symbols make rule.

	[src/fpif.c] Clarification.

	[tests]
	  * tfpif.c: in doit(), also test the negative versions of the numbers.
	  * tfpif_r1.dat: update.

	[src] Update about the internal use of mpfr_get_str.
	  * get_str.c: updated a comment.
	  * vasprintf.c: added assertions.

	[doc/mpfr.texi] Updated the month.

	[src/get_str.c] Corrected a comment.

	[doc/mpfr.texi] Update about the memory allocation (added references
	to Section "Memory Handling").
	(merged changeset r11632 from the 3.1 branch)

	[doc/mpfr.texi] Update for mpfr_get_str:
	  * Added a texi comment explaining why m+1 (so that if the mpfr_get_str
	    implementation is improved, we know whether this is still the case).
	  * Improved the documentation for the case str = null pointer.

2017-12-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated comments about the latest change (r11881).

	[doc/mpfr.texi] Typography fixes for TeX (DVI/PS/PDF) in math mode.
	  * Corrected the use of \lceil and \rceil.
	  * Added missing @var, including 2 in exponent, as allowed by
	    texinfo.tex 2017-12-01.13.
	  * Removed old comments about Texinfo.

	[doc/texinfo.tex] Update to the latest version 2017-12-01.13 from
	<https://ftp.gnu.org/gnu/texinfo/>.

2017-12-01  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] In r11876, forgot to define MPFR_WANT_DECIMAL_FLOATS in
	the cross-compiling case.

	Solved an output issue on AIX due to the use of setbuf() after output
	in tversion. Indeed, this is disallowed by ISO C.
	  * doc/README.dev: added a note about tests_start_mpfr and this issue.
	  * tests/tests.c: moved test_version() after setbuf().
	  * tests/tversion.c: moved tests_start_mpfr() earlier, before any
	    printf().

	[acinclude.m4] Attempt to fix detection of decimal floats: if _Decimal64
	is known but does not work, no longer fail when --enable-decimal-float
	has not been used; just disable decimal floats.

	[acinclude.m4] Attempt to fix detection of decimal floats (BID was
	incorrectly assumed in case of link failure, if ld returned 1, which
	was observed on powerpc-ibm-aix7.2.0.0 [gcc119.fsffrance.org]).

	[src/fpif.c] Updated comments about the format.

2017-11-30  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Typo.

	Two fixes for the check-gmp-symbols make rule:
	  * Use $(COMPILE) instead of $(CC) to get the usual compilation flags
	    (in particular, the -I flags may be important to find gmp.h and to
	    get the correct one).
	  * Run the test only if libmpfr.so exists.

	[doc/README.dev] Internal GMP symbols: mention "make check-gmp-symbols".

	[NEWS] Mention "make check-gmp-symbols" (experimental).

	[INSTALL] Added an optional step "make check-gmp-symbols" to check
	that MPFR does not use GMP internal symbols.

	Added comment about the check-gmp-symbols make rule (added in r11865).

	Added check-gmp-symbols make rule to check that MPFR does not use
	GMP internal symbols.

	[doc/README.dev] Detailed the note about the list of GMP symbols.

	[doc/README.dev] Document how to get the list of GMP symbols used
	by MPFR and how to detect GMP internal symbols used by MPFR.

	[INSTALL] Added a paragraph about the potential incorrect use of
	GMP internals.

2017-11-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Fixed the sign bug for mpfr_fpif_import.

	[tests/tfpif.c] In doit(), before the call to mpfr_fpif_import(), set
	the sign of the target to the opposite of the expected sign. Thus, if
	mpfr_fpif_import forgets to set the sign, this will be detected. And
	a failure actually occurs now!

	[tests/tfpif.c] For mpfr_fpif_import, check the precision too.

	[doc/mpfr.texi,src/fpif.c] For mpfr_fpif_import, in case of failure,
	the argument x is either unchanged or set to NaN, to make sure that
	x has valid contents (otherwise this could yield erratic behavior).

	[src/fpif.c] For mpfr_fpif_import, replaced an assertion by a failure
	(since the full format is not described in the manual and MPFR cannot
	currently generate such a case, this is OK).

	[tests/tfpif_r1.dat] Fixed an obvious error (incorrect sign of 0).

	[tests/tfpif.c] Output more information in case of error.

2017-11-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Fixed some bugs (though unlikely to occur in practice).
	Added comments. Minor code improvement.

	Got rid of the useless SIZE_MAX macro.
	  * src/vasprintf.c: replaced SIZE_MAX by (size_t) -1, already used
	    in some other files.
	  * acinclude.m4: no longer use gl_SIZE_MAX (from m4/size_max.m4).
	  * Removed m4/size_max.m4 as it is no longer needed (note that the
	    definition of SIZE_MAX by this file was unnecessarily complex
	    and potentially incorrect on some platforms).

	[src/fpif.c] Added static assertions in mpfr_fpif_import().

	[src/fpif.c] Improved a test (mpfr_regular_p → !MPFR_IS_SINGULAR).

	[src/mpfr-impl.h] Added a note about the use of the MPFR_IS_PURE_*(x)
	and MPFR_IS_SINGULAR*(x) macros.

2017-11-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Added format description from past mail messages, to be
	checked in case of change (+ FIXME for NaN). Minor code improvement.

	[tests/tfpif.c] Added TODO's (but the failure should be fixed first).

	[src/fpif.c] Clarified sign variable.

	[tests/tfpif.c] Use SAME_VAL instead of mpfr_cmp. This triggers a bug
	that was not detected yet.

	[tests/tfpif.c] Split the main test function into:
	  * doit(): keep only the tests that depend on the precisions.
	  * check_bad(): tests for bad file/data; precisions are not involved.

	[tests/tfpif.c] Improved a test (NaN checking). Added comments.

	[tests/tfpif.c] Removed a TODO done in r10326 and r10338.

	Updated autogen.sh so that doc/texinfo.tex isn't replaced.

	Added doc/texinfo.tex file from Texinfo 6.5 since the version installed
	by Automake (via "autoreconf -i" as called by autogen.sh) is obsolete:
	more than 4 years older than the current version!

	[doc/mpfr.texi] Updated a comment about a bug in Texinfo.

2017-11-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_exp.c] Check mpfr_get_exp too (with two additional tests
	for mpfr_set_exp).

	[tests/texceptions.c] Minor improvements.

	[doc/mpfr.texi] For mpfr_get_exp, document that x can be outside of
	the current range of acceptable values (this was ambiguous).

2017-11-21  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected Texinfo typography issues.

2017-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added another example where we can have an overflow

	added pointer to mpfr_subnormalize

2017-11-21  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Major update of "MPFR and the IEEE 754 Standard".

	[doc/mpfr.texi] Added "MPFR and the IEEE 754 Standard" to the main menu
	as required. Title capitalization.

	[doc/mpfr.texi] Correction of a @node.

2017-11-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added section "MPFR and the IEEE 754 standard"

2017-11-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] mpfr_can_round: corrected the example; removed
	a reference to "ternary value" as there is already one in the
	previous sentence; clarification.

	[doc/mpfr.texi] Faithful rounding (MPFR_RNDF):
	  * Document that this feature is experimental and partially supported.
	  * Update Section "API Compatibility".
	Note: the NEWS file was up-to-date.

2017-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/talloc-cache.c]
	  * Replaced test + abort() by the more informative MPFR_ASSERTN().
	  * Also check that the allocator is the current GMP one (this would
	    fail with MPFR 3.1.6, where the allocation functions are memorized
	    the first time they are seen).

	mpfr_mp_memory_cleanup() now returns an error code (currently always 0)
	to avoid a future prototype change in case errors would be possible.

2017-11-10  Vincent Lefèvre  <vincent@vinc17.net>

	Cleanup: In src/mpfr-gmp.h, exchanged
	  mpfr_allocate_func    and  *__gmp_allocate_func
	  mpfr_reallocate_func  and  *__gmp_reallocate_func
	  mpfr_free_func        and  *__gmp_free_func
	and in the code, replaced *__gmp_{allocate,reallocate,free}_func
	by mpfr_{allocate,reallocate,free}_func; updated TODO file.

	[doc/mpfr.texi] The sign bit of a NaN is now specified for mpfr_abs,
	mpfr_neg and mpfr_set, in order to mimic the IEEE-754 abs, negate
	and copy operations.

	[tests/tabs.c] More tests on mpfr_abs, including the ternary value
	and the NaN flag and sign bit for ±NaN.

	[tests/tabs.c] Coding style.

	[tests/tset.c] For mpfr_neg on NaN, also check that the variable is
	set to NaN and that the ternary value is 0.

	[tests/tset.c] More NaN tests for mpfr_set.

	[tests/tset.c] More tests of the NaN flag and the sign bit for mpfr_neg
	on NaN.

	[tests/tset.c] The global variable "error" is better as static.

	[tests/tset.c] For mpfr_neg on NaN, check that the sign bit is flipped
	in both ways.

	[tests] Added talloc-cache to svn:ignore property.

2017-11-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset.c] In the mpfr_neg test on the sign of NaN:
	C90 compatibility; improved robustness since as specified,
	mpfr_signbit can return any value (not just 0 or 1).

	[src/neg.c] Refactored code (BTW, this was not a bug as the sign of NaN
	is currently unspecified for mpfr_neg).

2017-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bug reported by Trevor Spiteri
	(https://sympa.inria.fr/sympa/arc/mpfr/2017-11/msg00003.html)

2017-11-08  Vincent Lefèvre  <vincent@vinc17.net>

	Change the way memory is allocated (as discussed partly in private).
	  * src/mpfr-gmp.c, src/mpfr-gmp.h, src/mpfr-impl.h: update.
	  * src/free_cache.c, src/mpfr.h: added mpfr_mp_memory_cleanup function.
	  * NEWS: describe API change.
	  * TODO: added 2 related items (future clean-up and feature).
	  * doc/mpfr.texi: update.
	  * tests/talloc-cache.c: take API change into account.

2017-11-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated Section "Compatibility With MPF".

	[doc/mpfr.texi] Removed a paragraph from r2962 concerning mpf2mpfr.h
	and mpf_init / mpf_init2: since r2985, the mpf_init / mpf_init2 macros
	initialize to 0 like MPF, so that users shouldn't see differences from
	MPF.

2017-11-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added reference

2017-11-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Formatting.

	[src/mpfr.h] mpfr_free_cache_t: added comments to show that these are
	flags.

	[doc/mpfr.texi] Updated mpfr_free_cache / mpfr_free_cache2 description.

	[src/free_cache.c] Minor portability improvement for mpfr_free_cache2
	to accept way = 0 (no effect on two's complement machines).

2017-11-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests]
	  * tests.c: for test programs that use GMP's mp_set_memory_functions,
	    tests_rand_start and tests_rand_end also need to be disabled; to do
	    that, require that tests_memory_disabled be set to 2 in this case
	    (the value 1 is already used for the use with mini-gmp, where only
	    tests_memory_start and tests_memory_end need to be disabled).
	  * talloc-cache.c: call tests_start_mpfr and tests_end_mpfr as usual,
	    with tests_memory_disabled set to 2.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Minor change.

	[doc/mpfr.texi] + explicit information on pools (in addition to caches).

	[NEWS,doc/mpfr.texi] mpfr_free_cache2 is a new function in MPFR 4.0,
	as a consequence of shared caches for multithreaded applications.

	[src/free_cache.c] GNU coding style.

	[tests]
	  * Makefile.am: added talloc-cache to check_PROGRAMS.
	  * talloc-cache.c: improved the test allocators so that an incorrect
	    use is detected by this code instead of relying on the C library
	    checking bad use of malloc/realloc/free (which was UB).
	    NOTE: The test currently fails in the trunk due to the mpz_t pool.
	    But anyway, the memory allocation method will change soon.

	[tests/talloc-cache.c] Corrected indentation.

2017-10-30  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved the mpfr_nexttoward description w.r.t. flags.

2017-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added note about mpfr_beta

2017-10-26  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS,doc/mpfr.texi] mpfr_beta is incomplete, experimental.
	See <https://sympa.inria.fr/sympa/arc/mpfr/2017-10/msg00007.html>.

2017-10-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added functions from C++17

2017-10-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed typo

2017-10-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_float128.c] Fixed failure in mpfr_get_float128 when called with
	  a very reduced exponent range.
	[tests/tset_float128.c] Also test mpfr_get_float128 in reduced exponent
	  range (triggering a failure before the fix).

2017-10-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": + Check the generic code.

2017-10-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ld.c] Fixed the generic code when called with a very reduced
	exponent range. The tset_ld failure could be triggered on x86 by running
	"./configure ... mpfr_cv_c_long_double_format=unknown".

	[tests/tset_ld.c] Also test mpfr_get_ld in reduced exponent range
	(no failures on x86).

	[src/get_z.c] Fixed failure in mpfr_get_z when called with a very
	  reduced exponent range.
	[tests/tget_z.c] Added tests in the various rounding modes (triggering
	  a failure before the above fix). Also call check_one() on an integer
	  congruent to 1 mod 4 (useful to check even rounding). Fixed 2 issues
	  in the error message (for inex and the flags).

	[tests/tget_z.c] Also test mpfr_get_z in reduced exponent range
	(no failures though its code seems incorrect).

2017-10-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{get_si.c,get_sj.c}] Minor improvement, removing an obsolete note
	in get_sj.c at the same time.

	[src/{get_sj.c,get_uj.c}] Fixed failure in mpfr_get_sj and mpfr_get_uj
	  when called with a very reduced exponent range.
	[tests/tget_sj.c] Added corresponding test cases.

	[tests/tset_si.c] Minor correction in error message.

2017-10-05  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Function multiversioning (FMV): more details.

	[TODO] Mention function multiversioning (FMV).

2017-10-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{get_si.c,get_ui.c}] Fixed failure in mpfr_get_si and mpfr_get_ui
	when called with a very reduced exponent range.

	[tests/tset_si.c] get_tests: added comments and tests in a reduced
	exponent range, which currently trigger an assertion failure.

2017-10-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[NEWS] Mention mpfr_dump.

	[doc/mpfr.texi] Describe the current output format of mpfr_dump.

	[doc/mpfr.texi] Replaced @code by @samp for things that are not
	actually code, but parts of character strings.

2017-09-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/dump.c] mpfr_dump now outputs specific info for invalid data.
	[tests/toutimpl.c] Added mpfr_dump tests.

	[src/dump.c]
	  * Output the sign even for NaN, since this can be useful information
	    (the sign of a NaN has an effect with some functions, following
	    IEEE 754-2008).
	  * This changes allows one to get rid of the mpfr_fprint_binary
	    static function at the same time.

	[src/{dump.c,print_raw.c}] Updated the description.

2017-09-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Clean up of debugging output functions:
	  * Replaced the internal function mpfr_fprint_binary by a new
	    internal function mpfr_fdump, similar to mpfr_dump, but with
	    a FILE * argument.
	  * Got rid of mpfr_print_binary entirely (it became internal in
	    r2466 for MPFR 2.0.2, released in 2003).

	Details:
	  * print_raw.c:
	      - moved the mpfr_fprint_binary code to dump.c;
	      - removed mpfr_print_binary.
	  * dump.c:
	      - mpfr_fprint_binary (from print_raw.c) is now defined as static;
	      - added function mpfr_fdump, using mpfr_fprint_binary;
	      - mpfr_dump: use mpfr_fdump instead of the old mpfr_print_binary.
	  * mpfr-impl.h:
	      - replaced mpfr_fprint_binary declaration by mpfr_fdump;
	      - removed mpfr_print_binary declaration.
	  * add1sp.c, mul.c, sub1sp.c: replaced mpfr_fprint_binary by mpfr_fdump
	    and removed the '\n', now output by mpfr_fdump.

2017-09-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added trootn_ui to svn:ignore property.

2017-09-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/toutimpl.c]
	  * Check mpfr_print_mant_binary() too.
	  * GNU coding style.

	[src/print_raw.c] Changes in mpfr_print_mant_binary():
	  * Output a ']' when a '[' was output earlier.
	  * Correction: putchar() takes an int (or unsigned char), not a char.
	  * GNU coding style.

2017-09-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed .align 64 into .p2align 6 (cf https://trac.sagemath.org/ticket/19233)

2017-09-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Solve issues with the incorrect use of mpfr_sgn, and make sure
	that this cannot happen again without being detected: on zero, +1 or -1
	was sometimes expected to check the sign of zero, but mpfr_sgn actually
	returned 0, so that the check always succeeded whatever the sign of the
	null result.
	  * mpfr-test.h: define a new mpfr_sgn macro that fails when used on NaN
	    or zero (whose sign is not +1 or -1), except when MPFR_TESTS_TSGN is
	    defined.
	  * tacos.c, tasin.c, tasinh.c, tatanh.c, tcbrt.c, tdim.c, terf.c,
	    texp.c, texp10.c, texp2.c, texpm1.c, tset.c, tset_str.c: replaced
	    the incorrect use of mpfr_sgn; some other related improvements.
	    Note: in tset.c, a "mpfr_sgn (x) < 0" test had to be replaced by
	    "MPFR_IS_POS (x)" since we really want to test whether the sign
	    is positive (not negative).
	  * tdiv.c, tmul.c, tui_div.c: simplified some tests, in particular to
	    avoid a failure with the new mpfr_sgn macro for the tests; here,
	    the use of mpfr_sgn was correct, but one could do simpler.
	  * tgmpop.c: replaced "mpfr_sgn (z)" by "(mpfr_sgn) (z)" to avoid the
	    new mpfr_sgn macro (here, we really want the mathematical sign).
	  * tsgn.c: define MPFR_TESTS_TSGN as the goal of this program is to
	    test mpfr_sgn itself (both the function and the macro in mpfr.h).

	[doc/README.dev] "To make a release": Enhanced step 5 (tarballs).

2017-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patch to avoid using the system mpfr.h

2017-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfms.c] Similar changes to what was done in tfma.c:
	  * replaced "mpfr_cmp" by "! mpfr_equal_p";
	  * code formatting (mainly reindentation);
	  * use of SAME_SIGN for better clarity.

	[tests/tfma.c] Similar change to what was done in tfms.c (may be useful
	in the future).

	[tests] Got rid of the use of mpfr_print_binary, in general with
	mpfr_dump. Replaced some "mpfr_out_str (stdout, 2, ...)" by mpfr_dump
	for consistency or as improvements. Some other corrections in the
	related error messages.

2017-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added info about autoconf-archive

2017-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.

2017-09-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Do the tests_start_mpfr / tests_end_mpfr check only if
	the .c file has a main() function; this avoids an error on trootn_ui.c,
	which just does a #include.

	[tests/troot.c]
	  * Use mpfr_set_zero instead of mpfr_set_ui / mpfr_neg (like what was
	    done for the infinity, using mpfr_set_inf).
	  * For exact cases (NaN, ±Inf, ±0), check that the ternary value is 0.

	[tests/troot.c] For the root(±0,k) tests, before calling the function,
	we set the target y to NaN with the wrong sign, so that if the code of
	the function forgets to do something, this will be detected.

	[tests/troot.c] Also check root(+0,42) and root(-0,17) for completeness.

	[tests/troot.c] Really check the sign of the result 0 (the old test
	was always false, thus useless!).

	[doc/mpfr.texi] Updated the month.

	New mpfr_rootn_ui function; mpfr_root deprecated.
	  * src/root.c: mpfr_rootn_ui is now the main code, and mpfr_root calls
	    mpfr_rootn_ui.
	  * src/mpfr.h: added mpfr_rootn_ui prototype; marked mpfr_root as
	    deprecated.
	  * Added tests/trootn_ui.c (includes troot.c).
	  * tests/troot.c: made it usable (via #include) by the new trootn_ui.c
	    test.
	  * tests/Makefile.am: added trootn_ui; at the same time, corrected the
	    order of the test programs (lexicographic, with exceptions).
	  * NEWS, TODO, doc/mpfr.texi: update.

	[tests] Avoid duplicate code by defining the MAKE_STR() macro in
	mpfr-test.h only instead of tgeneric.c and tversion.c.

2017-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": Updated the warning, as the issue
	concerns the .ps file only (the .dvi file has no papersize info).

	[doc/README.dev] "To make a release": Added a warning to check the
	papersize of the generated dvi and ps files, which may be incorrect
	(bug in texinfo(?) reported as Debian bug 874632).

	Switched other gmplib.org URL's to https.

	[doc/mpfr.texi] Updated URL:
	  http://gmplib.org → https://gmplib.org/

	[doc/mpfr.texi] Updated URL:
	  ftp://ftp.gnu.org/gnu/mpfr/ → https://ftp.gnu.org/gnu/mpfr/

	[tools/announce-text] Switched to https for ftp.gnu.org.

2017-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": update about the uploads.

2017-09-06  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Completed item on thread-safe DLL (shared library) support.

	[src/mpfr-impl.h] Completed the fix in r11713.

	[src/mpfr-impl.h] Fixed thread-safe DLL support with ICC and MSVC
	on MS Windows without the GMP build directory (r11712 contained
	inconsistent function names, yielding "unresolved external symbol"
	errors in tabort_defalloc1.obj), second try.

	[src] Attempt to fix thread-safe DLL support with ICC and MSVC on
	MS Windows without the GMP build directory. See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00009.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00014.html
	i.e. for the mpfr_allocate_func, mpfr_reallocate_func & mpfr_free_func
	external TLS variables, one does the same thing as what had been done
	for the other ones (__gmpfr_flags, __gmpfr_emin, __gmpfr_emax, etc.).

	[tests] Added tget_q to svn:ignore property.

2017-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] With MPFR_CHECK_LIBC_PRINTF, disable the test of
	the "'" flag with a non-glibc C library (SUS extension in printf).
	In particular, it is not supported by AIX 7.2.

	[src/mpfr-impl.h] In case decimal_point and/or thousands_sep are
	non-single-byte characters (as found on FreeBSD 11 in fr_FR.UTF-8),
	revert to the default value. Added a FIXME to support multibyte
	decimal_point and thousands_sep.

	[tests/tsprintf.c] Formatting.

	[doc/README.dev] Added a paragraph about temporary result files created
	by test programs.

	[tests/Makefile.am] Added tfpif_rw.dat to CLEANFILES.

	[tests] Renamed mpfrtest.txt, mpfrtest.dat and mpfrtest2.dat to
	tfpif_rw.dat, tfpif_r1.dat and tfpif_r2.dat respectively.

	[tests]
	  * toutimpl.c: Changed the filename of the result file like what
	    has been done in other test programs, to make sure that it will
	    not be reused by mistake. Removed comments about tmpname (which
	    does not exist).
	  * Makefile.am: Added this filename to CLEANFILES (even though the
	    file is removed by the test program, an error could occur before
	    its actual removal).

	[tests]
	  * tfprintf.c, tout_str.c, tprintf.c: Do not use the same filename
	    for result files created in these test programs, as this breaks
	    parallel tests (note that such files are used only if /dev/null
	    does not work, so that Unix-like systems were not affected).
	    This should fix the bug reported in
	      https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00000.html
	    as said in
	      https://sympa.inria.fr/sympa/arc/mpfr/2017-09/msg00005.html
	  * Makefile.am: added a CLEANFILES line with these files.

2017-09-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/turandom.c] Added test_underflow().
	(merged changesets r11691-11694 from the 3.1 branch)

2017-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	update

	updated for mpfr-3.1.6-rc1

2017-08-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Run tools/ck-version-info.

	[tools/mpfrlint] Updated a message due to the change in r11673.

	[doc/README.dev] "To make a release": The DLL version may need to be
	updated too.

	[configure.ac] Added a comment about the DLL version.

	[configure.ac] Updated DLL version to 6 (cur - age).

	[tools/{ck-copyright-notice,ck-inits-clears}] Ignore Emacs lock files
	(symbolic links) to avoid a failure when a file is being edited.

	[tools] Clean up.
	  * Renamed check_inits_clears to ck-inits-clears (the other "check"
	    scripts have a name starting with "ck-").
	  * mpfrlint: updated the invocation of this test, simplifying it to
	    make it similar to the other ones (it was based on old code).

2017-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/turandom.c] Disabled the reprod_abi test with GMP < 4.2.0
	since the hardcoded values would be different.

2017-08-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Replaced
	  (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),0)
	by
	  (MPFR_LIKELY(expr)) || (ASSERT_FAIL(expr),MPFR_ASSUME(expr),0)
	as a workaround to the fact that mpfr_assert_fail is not marked as
	"no return" (bug 21415). Thus, after this code, expr must be true.

	[tests/turandom.c] Check that the behavior does not depend on the
	platform ABI or MPFR version.

	[tests/turandom.c] Corrected error messages after r11661.

	[tests/turandom.c] Renamed "reprod" to "reprod_rnd_exp" (reproducibility
	test with several rounding modes and exponent ranges), because a second
	reproducibility test will be added.

	[tests/turandom.c]
	  * In underflow_tests, test the flags in all cases (not just when the
	    returned result is 0), possibly by first computing the result in a
	    large exponent range.
	  * Since the flags are now well tested in underflow_tests, no longer
	    test them in the second test of test_urandom for k = 0, which was
	    the incorrect test that was failing (see r11659).

	[tests/turandom.c] Do some test several times in order to trigger
	a "mpfr_urandom() returns incorrect flags for emin = 1" failure
	when GMP_CHECK_RANDOMIZE is not set (default).
	Note: It is this test that is actually wrong (it corresponds to the
	old behavior, currently found in the 3.1 branch, and was not updated
	after the mpfr_urandom code was fixed).

	[tests/turandom.c] Code formatting. Added an assertion.

2017-08-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/turandom.c] Check that the behavior of mpfr_urandom() does not
	depend on the rounding mode.

	[doc/mpfr.texi] Completed the description of mpfr_urandom.

	[src/urandom.c] Completed comment.

2017-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/turandom.c] In bug20170123, use a local gmp_randstate_t variable
	instead of mpfr_rands, due to the gmp_randseed_ui (see r11653).

	[tools/mpfrlint] Detect the use of gmp_randseed* functions on mpfr_rands
	(this is bad practice: this would affect later tests, defeating the
	purpose of GMP_CHECK_RANDOMIZE; another gmp_randstate_t variable should
	be used instead of mpfr_rands).

	[tests/{mpfr-test.h,tests.c}] Got rid of __gmp_randstate_struct, which
	is internal to GMP: its use came from very old code (r2330 in 2003-06)
	and it is no longer needed.

	[tests/turandom.c] Disabled a test with GMP < 4.2.0 since it depends on
	a specific behavior of the random generator, which changed in GMP 4.2.0
	(the test would probably fail with such old GMP versions).

	[src/urandom.c] Partly rewrote mpfr_urandom() so that the next
	  random state no longer depends on the current exponent range
	  and the rounding mode, and that the exceptions due to the
	  rounding of the random number are now correctly generated.
	[doc/mpfr.texi] Updated the mpfr_urandom() documentation and
	  updated Section "API Compatibility / Changed Functions" to
	  mention the change in MPFR 4.0.
	[NEWS] Mentioned the change for MPFR 4.0.

2017-08-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/urandom.c] Minor change about underflow, following the usage.

	[tests/turandom.c] Added inex test for the underflow & overflow tests.

	[tests/turandom.c] Added overflow tests.

	[tests/turandom.c] Indentation.

	[tests/turandom.c] Added underflow tests.

	[tests/turandom.c] With mini-gmp, omit another test that assumes
	a deterministic random generator.

	[src/urandom.c] Bug fix: the inexact flag was not set on underflow.

	[tests/turandom.c] Added tests of the flags. This currently yields
	a failure (inexact flag not set on underflow).

	[tests/turandom.c] Added a test of the underflow flag.

2017-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/urandom.c] Set the underflow flag if the drawn exponent is less
	than emin. This corresponds to "underflow before rounding" while the
	normal rule in MPFR is "underflow after rounding". Thus this needs to
	be fixed.
	Note: This simple change has been done so that it can be merged with
	the 3.1 branch. But this will not be fixable in the 3.1 branch since
	the significand is not drawn in this case, and drawing the significand
	to determine whether there is an underflow would change the state of
	the PRNG at the end of the function, breaking the ABI and the users'
	expectations.

	[src/urandom.c] Updated comments about overflow and its flag.

	[src/urandom.c] Simplified the code, but, except for precision 1,
	without changing the state of the PRNG.
	Note: The code could be simplified even further, but the goal of the
	current change is to allow it to be merged with the 3.1 branch (where
	precision 1 is not supported) without too many conflicts.

	[src/urandom.c] Moved some code without consequences. Updated comments.

	[src/urandom.c] Useless parentheses; reformatting.

2017-08-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_float128.c] No longer depend on the native FP type "double"
	(via mpfr_set_d), avoiding the usual precision issues with the x87
	traditional FPU in particular. Use the internal representation with
	limbs, instead. The code is simpler and should also be faster.
	Note: together with r11627, this avoids the tset_float128 failure
	with the "-m32 -mpc32" GCC options.

	[src/get_float128.c] Removed variable z (no longer useful).

	[src/get_float128.c] No longer depend on the native FP type "double"
	(via mpfr_get_d), avoiding the usual precision issues with the x87
	traditional FPU in particular. Use the internal representation with
	limbs, instead. The code is simpler and should also be faster.

2017-08-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_float128.c] Fixed the remaining cases of mpfr_get_float128
	(when the value is below the smallest subnormal in absolute value).

	[src/get_float128.c] Partly fixed mpfr_get_float128 when it underflows.
	[tests/tset_float128.c] Added tests for small values, in particular
	  involving underflows (and subnormals).

2017-08-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_float128.c] Reverted r11623 (a note mainly for the 3.1 branch,
	which actually doesn't support __float128).

2017-08-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_float128.c] Updated the FIXME.

2017-08-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_float128.c] Added a FIXME after a bug report by Rob:
	https://sympa.inria.fr/sympa/arc/mpfr/2017-08/msg00003.html

2017-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Section "Getting the Best Efficiency Out of MPFR" moved
	from "Installing MPFR" to "MPFR Basics". Added corresponding node.

2017-08-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	new section "How to get the best out of MPFR"

2017-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a FIXME about memory allocation.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Removed obsolete comments.

	[doc/mpfr.texi] Updated paragraph on the MPFR formatted output functions
	and overflow on the return type int.

2017-08-02  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention the use of the old dtags under Linux (see r11588).

	[src] Moved mpfr_vasprintf from vasprintf.c to printf.c and updated
	file descriptions for consistency (vasprintf.c should probably be
	renamed later to something like printf_aux.c).

	[src/printf.c] Updated a comment (taking r11269 into account).

	[src/vasprintf.c] Added an assertion.

	[src/vasprintf.c] Completed mpfr_vasnprintf_aux description.

2017-08-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tstdint.c,tvalist.c}] Include "mpfr-test.h" instead of
	"mpfr-impl.h" (this is done only when compiling with mini-gmp).

	[tools/mpfrlint] Detect "mpfr-impl.h" inclusion by the test programs:
	"mpfr-test.h" should be included instead; otherwise __MPFR_WITHIN_MPFR
	will be defined, yielding failures under MS Windows with DLL.

2017-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed typo

2017-07-28  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added important details for the example from r11595.

2017-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Minor changes.

	[doc/mpfr.texi] Updated the month.

2017-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed FIXME related to r11595

2017-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added FIXME on example from r11595.

2017-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] added example showing how to emulate fixed-point arithmetic

2017-07-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sin_cos.c] Avoid integer overflows with precision 1100000 and
	the 32-bit ABI (32-bit long), fixing bug reported by Simon Byrne:
	https://sympa.inria.fr/sympa/arc/mpfr/2017-07/msg00002.html

	[tests] Re-indented some RND_LOOP / RND_LOOP_NO_RNDF blocks.

	[configure.ac] Under Linux, make sure that the old dtags are used
	if LD_LIBRARY_PATH is defined, avoiding the following issue:
	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
	  https://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
	(merged changeset r11587 from the 3.1 branch)

2017-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Forgot casts for printf in r11585.

	[tests/tversion.c] Added ABI information & tests.

2017-06-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/subnormal.c] Correction in comment (English).

2017-06-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c]
	  * Better organization; moved MPFR patches info below MPFR version.
	  * Output __GMP_CC and __GMP_CFLAGS values.
	  * Output GMP ABI info (to be completed with MPFR ABI info).

2017-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved some AC_DEFINE comments.

	[doc/README.dev] Added quotes for clarity.

	[tests/mpf_compat.h] Always use stdout for failure messages.

	[src/get_str.c] Improved comments (avoid the confusion between a
	negative base argument and a negative base).

2017-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Punctuation.

2017-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_get_q in Added Functions

	src/get_str.c: fixed for negative base
	tests/tget_str.c: added tests for negative base

	tests/mpf_compat.h: non-regression tests for bugs fixed in revision 11565

	src/get_str.c: allow -36 <= b <= -2 too (work in progress) with the same
		       meaning as in mpf_get_str

	fixed a bug in mpfr_mul for RNDF when Mulders' algorithm is used
	(and resolved a FIXME)

2017-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected mpfr_get_q documentation.

	[src/get_q.c] Added assertions to detect integer overflows, in case
	mpfr_exp_t is larger than mp_bitcnt_t.

2017-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	src/mpf2mpfr.h: replaced __MPFR_GMP (requires internal mpfr-gmp.h)

	src/mpf2mpfr.h: fixed fits_s* functions and get_si

	use macro __MPFR_GMP

	added new function mpfr_get_q

	src/mpf2mpfr.h: added mpf_cmp_z (appeared in GMP 6.1.0)

2017-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[Makefile.am] Put doc/README.dev in EXTRA_DIST to provide this file in
	  tarballs too (it is not installed by "make install", though), since
	  it contains information that may be useful for users of tarballs and
	  various distributed files mention it.
	[README] Update about the "doc" directory and "doc/README.dev".

	[doc/README.dev] More information about the DEBUG macro.

	[doc/mpfr.texi] Updated the month.

	Update about MPFR_RNDF (faithful rounding):
	  * NEWS: mention that it is partially supported (should be updated
	    once MPFR_RNDF is completely supported).
	  * TODO: moved an item to the right place (MPFR_RNDF is not removed
	    from the TODO because it is not completely supported yet).
	  * doc/mpfr.texi: added a FIXME about the partial support.

2017-05-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{atanh.c,log1p.c}]
	  * Replaced mpfr_get_exp by MPFR_GET_EXP (so that the exponent is
	    checked with --enable-assert).
	  * For a test, doing the division first should be better.

2017-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improved log1p and atanh for small inputs

	added expm1 to mbench

	added log1p to mbench

2017-05-29  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Removed trailing spaces.

	[tests] Code simplification and improvement by using SAME_VAL().

	[tests/tbeta.c] Replaced not_same() by the simpler ! SAME_VAL().

	[src/sum.c] Code reindentation due to a new test for MPFR_RNDF support,
	and other minor changes in formatting and comments.

	[doc/sum.txt] Typo in the MPFR_RNDF text.

	Merged the "faithful" branch into the trunk:
	faithful rounding (MPFR_RNDF).

	[tests/tgeneric.c] For MPFR_RNDF, replaced EQUAL() by SAME_VAL(),
	which also tests the sign (to distinguish +0 and -0).

	[tests/tui_sub.c] Avoid a failure in 32-bit ABI by replacing
	RND_LOOP by RND_LOOP_NO_RNDF.

	Merged the latest changes from the trunk.

2017-05-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new reference

2017-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Fixed setlocale usage (problem detected with MinGW)
	by not using the returned string any longer. Indeed, ISO C99 says that
	this string "may be overwritten by a subsequent call to the setlocale
	function".

	[src] Moved "#include <errno.h>" from printf.c to vasprintf.c
	(this should have been done in r5230, where EOVERFLOW was moved).
	This fixes the "Got r = -1, errno = 0" errors in tprintf with
	MPFR_CHECK_LARGEMEM=1.

	[src/vasprintf.c] Added overflow detection at the end (due to the switch
	to mpfr_intmax_t for the string length in the string_buffer structure,
	it was no longer detected; however, this bug was not normally visible in
	the tests because here, a negative value was returned thanks to wrapping
	in a type conversion and the negative value was changed to the expected
	-1 value in printf.c).

	[src/vasprintf.c] Added log messages.

	[src/vasprintf.c] In case of overflow, do not stop before everything has
	been processed, allowing the %...n arguments to be filled, as decided.

	[tests/tprintf.c] check_long_string() error handling: initialize n2 to
	an invalid value and do all tests before exiting.

	[src/vasprintf.c] Fixed some parts of overflow tracking.

	[tests/tprintf.c] More detailed error message.

	[tests/tprintf.c] Added tests with %ln.

	[tests/tprintf.c] Improved check_vprintf_failure().

	[src/vasprintf.c] Fixed the handling of the 'n' format specifier
	  for size = 0, still allowing its support in case of overflow on
	  the return value (i.e. when the number of characters that would
	  have been output is > INT_MAX).
	  Note: full support in case of overflow is still limited by GMP
	  and the C library.
	[tests/tprintf.c] Increased the memory needed in check_long_string().

2017-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-intmax.h] Define mpfr_uintmax_t and MPFR_INTMAX_MAX too.
	However, this will not necessarily be used by src/vasprintf.c, as
	this can be regarded as an EOVERFLOW error for which the behavior
	on the %...n values is not specified, i.e. we may not need to
	support size values larger than INT_MAX.

2017-05-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] In a macro definition, changed a parameter to
	lowercase so that it doesn't look like a constant to mpfrlint.

	[src/vasprintf.c] Added a FIXME for the percent_n() / mixed() bug due
	to the 'n' format specifier with size = 0. The way to fix this issue
	depends on the specifications in case of overflow on the return value,
	and for POSIX, they are unclear. Waiting for comments...

	[src/mpfr-intmax.h] Define mpfr_intmax_t as being the largest
	signed integer type available for the MPFR build. It will be
	useful for the formatted output functions (src/vasprintf.c) to
	handle the 'n' format specifier, assuming that the value may
	be larger than INT_MAX, which is possible assuming that the
	C standard has a defect in the corresponding specification:
	https://sourceware.org/bugzilla/show_bug.cgi?id=21360

	[tests/tsprintf.c] Added explanation for the bugs triggered by
	percent_n() and mixed().

	[tests/tsprintf.c] Added percent_n() test to reproduce the bug found
	in mixed(), test without random data.

	[src/vasprintf.c] In partition_number(), complete check for overflow
	on total.

	[src/vasprintf.c] Partially fixed check for integer overflow when
	the long and int types have the same size.

	[src/vasprintf.c] With assertions enabled, check that the number of
	characters to be written computed in partition_number() corresponds
	to what is really written.

	[src/vasprintf.c] Fixed the bug triggered by the da_DK locale test: the
	computation of the number of characters to be written was incorrect in
	partition_number() when the thousands separator was not empty. This bug
	was visible with size = 0 and could be visible near overflow on the
	number of characters.
	Note: the buggy code was introduced in r5288 (2008-02-15), which fixed
	other issues with the thousands separator.

	[tests/tsprintf.c] Do more tests in the da_DK locale (these are the
	only tests for which the thousands separator is not empty).

	[tests/tsprintf.c] Do more tests involving check_sprintf() in a loop
	(to test mpfr_snprintf with size = 0 more often), and call mixed()
	later in order to get failures without the use of %n first.

2017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	get rid of computations with 'double' in mpfr_zeta

2017-05-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a TODO about %n test.

	[doc/README.dev] Added MPFR_TESTS_FPE_TRAP documentation.

	[tests/tests.c] Corrected comment about MPFR_TESTS_FPE_TRAP.

	Renamed MPFR_TESTS_DIVBYZERO to MPFR_TESTS_FPE_DIV (less confusing).
	In doc/README.dev, updated the corresponding description.

	[tests] Renamed MPFR_RAISE_EXCEPTIONS to MPFR_TESTS_FPE_TRAP.

	[tests] Got rid of MPFR_TESTS_EXCEPTIONS (added in r11489 and above),
	which is redundant with MPFR_TESTS_DIVBYZERO and MPFR_ERRDIVZERO. The
	code related to these exceptions is now like r11488 (see the output of
	"svn diff -r11488"), but keeping the following changes:
	  * Missing !defined(MPFR_ERRDIVZERO) tests added in r11498,11499.
	  * In tests.c:
	      - code related to traps (macro MPFR_RAISE_EXCEPTIONS, which will
	        be renamed);
	      - more detailed output about which FP exceptions occurred;
	      - removal of "#ifdef MPFR_ERRDIVZERO" (as in r11493), as this is
	        better with Automake 1.13+ (required by MPFR since r9375).
	Note: EXCEPTIONS_FLAG renamed to FPE_FLAGS, since EXCEPTIONS_FLAG is
	reserved by ISO C when <errno.h> is included.

	[tests/tsprintf.c] Do the locale_da_DK() test several times to yield
	a failure by default once the bug triggered by mixed() is fixed.

	[tests/tsprintf.c] Updated comment about r11501: the failure occurs
	with %n when the size argument of mpfr_vsnprintf is 0.

	[tests/tsprintf.c] Do more tests with %n. One now gets a failure
	by default (which occurs when one gets randsize <= 0).

	[tests/tsprintf.c] Fixed portability issues: The va_end(3) man page
	of Linux Programmer's Manual says: "On some systems, va_end contains
	a closing '}' matching a '{' in va_start, so that both macros must
	occur in the same function, and in a way that allows this."

	[tests/tget_set_d64.c] Disable tests with a division by 0 (which now
	occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.

	[tests/tset_ld.c] Disable an overflow test with a division by 0
	(now occurs only with -DXDEBUG) if MPFR_ERRDIVZERO is defined.

	[doc/README.dev] Details for "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".

	[tests/tsprintf.c] In mixed(), initialize n2 to an invalid value
	in order to ease failure analysis.

2017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed leftover debug statement in last commit

	fix for clang bug (https://bugs.llvm.org//show_bug.cgi?id=17686)

2017-05-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Change for MPFR_TESTS_DIVBYZERO: in case of FE_DIVBYZERO
	or FE_INVALID, fail unconditionally, not just when MPFR_ERRDIVZERO is
	defined, otherwise one cannot see the output about the floating-point
	exceptions with "make check" (the test of MPFR_ERRDIVZERO here should
	have been removed after switching to Automake 1.13, which discards the
	output when the test program succeeds).
	Note: defining MPFR_TESTS_DIVBYZERO without MPFR_ERRDIVZERO is just for
	debugging.

2017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on MPFR_TESTS_EXCEPTIONS

2017-05-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Re-added code testing FE_DIVBYZERO and FE_INVALID with
	-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO, because MPFR_TESTS_EXCEPTIONS
	is not ready yet.

	[tests/tversion.c] Output IEEE floats status.

2017-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	check for fp exceptions (experimental)

2017-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cmp2.c] Added/updated comments.

	[tests/tcmp2.c] Added tests with equal numbers, possibly of different
	sizes.

	[src/cmp2.c] Corrected comments.

	[tools/mpfrlint] In the detection of reserved macro names, skip ERR
	from src/mpfr-gmp.h (this is a special case).

	[tests/tget_set_d64.c] Made PRINT_ERR_MISC more robust.

	[tests/*.c] Renamed the remaining macros whose names are reserved
	by ISO C when <errno.h> is included.

2017-05-16  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/texceptions.c] Made code formatting consistent.

	[tests/*.c] Renamed "ERROR" macro (macro name reserved by ISO C
	when <errno.h> is included) to "PRINT_ERROR", and made the macro
	more robust.

	Define the EXP() macro in src/mpfr-gmp.h only when needed (macro name
	reserved by ISO C when <errno.h> is included).

	[src/gamma.c] Got rid of the EXPM1_STR macro (macro name reserved
	by ISO C when <errno.h> is included), made no longer interesting by
	using mpfr_set_str_binary only once and another temporary variable.
	At the same time, replaced the usual allocation by a GROUP allocation
	(more efficient).

2017-05-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcheck.c] Code reformatting (GNU coding style).

	[tests/tcheck.c] Renamed "ERROR" macro (macro name reserved by ISO C
	when <errno.h> is included) to "PRINT_ERROR".

	Do not define macro names starting with "SIG" (+ uppercase letter)
	as they are reserved when <signal.h> is included (ISO C, 7.31.7),
	which happens to be the case in tests/tests.c, which also includes
	tests/mpfr-test.h and src/mpfr-impl.h indirectly.
	  * src/mpfr-impl.h, tests/mpfr-test.h: renamed macros:
	      SIGN → VSIGN
	      SIGN_RAND → RAND_SIGN
	  * {src,tests}/*.{c,h}: updated the names in the use of these macros.

	[tools/mpfrlint] Added a comment about the definition of reserved
	identifiers (in particular, macro names).

	[tools/mpfrlint] Detect the definition of reserved macro names.

	[src/bernoulli.c] Changed isprime to is_prime in order to avoid obscure
	problems if <ctype.h> is added to mpfr-impl.h in the future (or if this
	function is made external). See ISO C "Future library directions",
	Clause 7.31.2 "Character handling <ctype.h>".

2017-05-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Improved comments about assertions and MPFR_ASSUME().

2017-05-09  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Mention the problem when almost all the tests fails with a
	message "Incorrect MPFR version! ...".

	Increase the buffer sizes even more, and added a comment. This may
	be better in case of quick future changes (possibly for debugging),
	without checking carefully. For the tests, optimal code is useless.

2017-05-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bugs found by gcc 7.1.0 (-Werror=format-overflow=)
	[VL] The MPFR code was correct. This is actually a bug in GCC:
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257

2017-05-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc] Updated FAQ.html with update-faq.

2017-05-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/timp.h] Updated TIMP_MEASURE() to handle the case where
	the return value is 0: this probably means that timp_overhead was too
	large and incorrect. In this case, TIMP_OVERHEAD() is called again to
	recompute timp_overhead and the timing is redone.
	Note: if we do not call TIMP_OVERHEAD() again, then TIMP_MEASURE()
	loops indefinitely, meaning that timp_overhead was really too large.

	[tools/mbench/timp.h] Comment at the wrong place. Fixed.

	[tools/mbench/timp.h] Added a comment about r11458.

2017-05-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/timp.h] Fixed overflows on unsigned arithmetic.

	[tools/mbench/mfv5.h] Increased values from 2^60-1 to 2^64-1
	(it is possible to get more than 2^60-1 cycles in practice!).

	Merged the latest changes from the trunk, including some old changesets
	related to mpfr_zeta that were skipped, resolving conflicts. Added RNDF
	support to new code introduced by this merge:
	  * mpfr_mul_1n in src/mul.c (from r11281);
	  * mpfr_sqr_1n in src/sqr.c (from r11283);
	  * mpfr_div_1n in src/div.c (from r11284);
	  * mpfr_sqrt1n in src/sqrt.c (from r11293).

	Merged r11198-11280 from the trunk; no conflicts but additional changes:
	  * About r11271 (src/add1sp.c), which introduces new special code
	    (function mpfr_add1sp1n), handle MPFR_RNDF in the same way as done
	    in similar existing special code (mpfr_add1sp1 and mpfr_add1sp2).
	  * In mpfr_add1sp3, do the same thing (this should have been done in
	    r11172, where this function was introduced via a merge).
	  * About r11279 (src/sub1sp.c, tests/tsub1sp.c), which introduces new
	    special code (function mpfr_sub1sp1n), do the same thing.
	    In tests/tsub1sp.c, s/RND_LOOP/RND_LOOP_NO_RNDF/ as usual to avoid
	    a failure.
	  * Note: concerning mpfr_sub1sp3, RNDF support was added at the same
	    time of the merge in r11179.
	  * Some style changes related to RNDF, in particular for consistency.

	Merged r11197 from the trunk, resolving the conflict.

	Merged r11179-11196 from the trunk (no conflicts).

2017-05-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma.c] Clarified proof for tiny arguments again.

	[src/gamma.c] Clarified proof for tiny arguments.

	[src/gamma.c] In the proof for tiny arguments:
	  * Simplification suggested by Paul.
	  * Attempt to clarify the end.

2017-05-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment

	added reference for mbench (rdtsc vs rdtscp)

2017-04-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma.c] Tiny arguments: corrected a typo and added a TODO
	(one might get a better condition).

	[src/gamma.c] Corrections in a proof for tiny arguments. Added a TODO.

2017-04-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update about the MPFR_GENERIC_ABI macro.

	[src/sqr.c] Corrected a comment.

	[src/sqrt.c] Blank line like in add1sp.c, sub1sp.c, etc.

	[src/sqr.c] Blank lines and comment like in add1sp.c, sub1sp.c, etc.

	[src/mul.c] Like in add1sp.c and sub1sp.c, do not define the specific
	functions for low precision if MPFR_GENERIC_ABI is defined (they are
	not called in such a case).

	[src/sub1sp.c] Added blank lines for readability (like in add1sp.c).

	s/interruption/interrupt/

	[mbench] Updated copyright years. Added a comment.

2017-04-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	better detection of rdtscp

2017-04-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Updated a comment, with reference to GCC bug 80454.

2017-04-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Avoid integer overflow from r11411 with 32-bit long.

2017-04-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Updated test to check that the snprintf function (C99)
	is not used.

	[doc/mpfr.texi] Corrected an English error.

	[src/vasprintf.c] Fixed bug triggered by the test added in r11428:
	the size field of struct printf_spec must have type size_t, not int,
	because the size argument of mpfr_snprintf has type size_t.

	[tests/tsprintf.c] Added a test that fails on 64-bit machines
	(4-byte int, 8-byte size_t), due to the use of mpfr_snprintf
	with required size = (size_t) UINT_MAX + 1.

	[src/vasprintf.c] Minor changes.

	[src/vasprintf.c] Comment re-indentation.

	[src/ubf.c] Renamed mpfr_get_zexp to mpfr_init_get_zexp for clarity.

2017-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fixed silly typo in MPFR_UBF_CLEAR_EXP() yielding
	either an obscure memory leak or a crash in some mpfr_fmma calls.
	We would really need formal proofs on the code... Or avoid macros.

2017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tfmma.c] added one test

	[tests/tfmma.c] fixed test

2017-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1.c] Updated comment about underflow.

	[src/add1.c] Handling of UBF and overflow/underflow.
	  * Added a MPFR_ASSERTD related to the overflow code.
	  * Bug fix: handle underflow, possible if UBF input(s).

2017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tfmma.c] added another test (currently fails)

2017-04-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Bug fix: underflow was not detected in the case cancel = 0
	with UBF numbers. At the same time, refactored the related code a bit.

	[tests] Added tbeta to svn:ignore property.

	[doc/mpfr.texi] Formatting of the mpfr_can_round example for 80-column
	terminals + GNU coding style.

	[tests/tfmma.c] Updated comment about bug20170405 (fixed in r11414).

	[src/sub1.c] Also corrected the comment about overflow detection.

	[src/sub1.c] Really fixed overflow detection (r11412 is broken).

	[src/sub1.c] Fixed/improved UBF cases.
	  * Added an assertion (usual MPFR limitation with huge precisions,
	    affecting 32-bit ABI only in practice).
	  * Fixed overflow detection.

	[tests/tprintf.c] In check_long_string(), which is called when
	MPFR_CHECK_LARGEMEM is defined, increase tests_memory_limit if need be
	in order to avoid an obvious failure due to insufficient memory.

	[tests/memory.c] Write all error messages to stderr in order to make
	sure that they remain visible when the standard output is redirected
	(e.g. in tprintf). Rewrote the messages in a consistent way.

	[tests/tfmma.c] Fixed return type of test added in r11407.

	[tests/tinits.c] When MPFR_CHECK_LARGEMEM is defined, increase
	tests_memory_limit if need be in order to avoid an obvious failure
	due to insufficient memory.

2017-04-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added test that triggers an error
	(see https://sympa.inria.fr/sympa/arc/mpfr/2017-04/msg00016.html)

2017-04-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] More details about errno.

2017-04-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a paragraph about the use of errno.

	[doc/mpfr.texi] Details about EOVERFLOW.

2017-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tstrtofr.c] added test in bug20161217()

2017-04-03  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Update about functions returning a native floating-point value
	and underflow/overflow.

	[src/atanh.c] Removed comment giving the "optimal" working precision
	(I do not see any proof in algorithms.tex, and it seems incorrect).

	[TODO,src/log1p.c] log1p(x) on small x should also be improved instead
	of computing log(1+x).

	[TODO,src/atanh.c] Suggest a faster formula for atanh(x) on small x.

	[src/atanh.c] Cosmetic changes (comments and whitespace).

	[TODO] Update about ERANGE.

2017-03-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tbeta.c] Fixed a macro (use of mpfr_printf, missing cast).

2017-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention how to find the full list of bug fixes.

	[tests/tstrtofr.c] Updated comments about bug20161217 and bug20170308.

	[tests/tstrtofr.c] Added comments about bug20161217 and bug20170308.

	[tests/tstrtofr.c] Updated comment: bug20170308 checks the same bug
	as bug20161217.

	[doc/mpfr.texi] Updated the month.

2017-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added non-regression test

2017-03-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] results should not depend on machine rounding mode/precision

2017-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Minor corrections.

2017-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added a comment about shiftq.

2017-02-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tbeta.c] C89 compatibility and some code reformatting.

	[src/beta.c] Slightly improved comments.

	[src/beta.c] Fixed a bug in reduced exponent range (not detected by
	the current tests).

	[src/beta.c] Added a comment for Beta(0,negative integer).

	[src/beta.c] Eventually fixed the case z or w is 0 (note: r11374
	did also other unwanted changes, reverted here).

	[src/beta.c] Reverted my changes (this was incorrect).

	[src/beta.c] Fixed special cases.

	[src/beta.c] Added comments and some corrections (incomplete) for the
	case "z or w is 0".

2017-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/beta.c] fixed case z or w is 0

	[tests/tbeta.c] patch from Cade Brown
	- signed zeros are checked in is_same
	- the case above (summing non-integer negative z, w which sum to a negative integer)

2017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] added mpfr_beta in "Added Functions"

2017-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/jn.c] Use MPFR_ADD_PREC.

	[src/beta.c] Updated comments; added a FIXME.

2017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/jn.c] in case the first Ziv loop failed, take into account the number of
		   lost bits

2017-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/beta.c] Use MPFR_ARE_SINGULAR.

2017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/beta.c] fix in case z and w are not integers and z+w is a nonpositive integer

	[src/odd_p.c] new source file

	[src/Makefile.am] new file odd_p.c
	[src/beta.c] fixed bug
	[src/mpfr-impl.h] renamed mpfr_is_odd into mpfr_odd_p
	[src/pow.c] moved mpfr_is_odd (renamed mpfr_odd_p) into separate file

2017-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/beta.c] Added a FIXME (test failure with assertions).

	[src/beta.c] Removed an unusual space.

	[tests/tbuildopt.c] Added calls to tests_start_mpfr and tests_end_mpfr.

	[tools/mpfrlint] Added a test to check that the usual test programs
	call tests_start_mpfr and tests_end_mpfr.

2017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/beta.c] several fixes
	[src/pow.c] renamed is_odd to mpfr_is_odd, and export it
	[src/mpfr-impl.h] export mpfr_is_odd as internal function
	[tests/tbeta.c] added generic tests

2017-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tbeta.c] Added missing void in prototype.

	Removed trailing spaces.

	[tests/tbeta.c] Fixed the usage of MPFR types.

	[tests/tbeta.c] Minor correction. Added a FIXME and a TODO.

2017-02-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tbeta.c] GNU style and C89 portability

	[TODO] removed beta entry

	new function mpfr_beta

	[tests/tbeta.c] test file for mpfr_beta, contributed by Cade Brown from
			ChemicalDevelopment (this commit is the file as it was
			contributed, except the mpfr-test.h include)

2017-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/beta.c] Portability corrections.

2017-02-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/beta.c] fix for exact case beta(1,2^k) for k negative integer

	[src/beta.c] special values are now implemented (should be reviewed)

2017-02-25  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] mpfr_root: replace "obsolete" by "deprecated" (the right word).

	[TODO] Update about rootn.

	[TODO] Added some propositions about rootn.

2017-02-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/root.c] added comment

	added reference

2017-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/beta.c] Call mpfr_check_range as usual.

	[src/beta.c] Extended the exponent range for the generic case.

	[src/beta.c] Added a comment.

	[src/beta.c] Various code improvement / fixes.

	[src/beta.c] Added a FIXME.

2017-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/beta.c] added beta function (work in progress, not yet fully implemented,
		     and not tested)

2017-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fmma.c] speedup of mpfr_fmma and mpfr_fmms

	[src/fma.c] speedup of mpfr_fma when all operands have the same precision
		    (less than one full limb)

2017-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Note that the position of "const" in the mpfr_sum prototype
	has been fixed (in case writers of interfaces for MPFR use that).

	"a IEEE 754r decimal64 float" → "an IEEE 754-2008 decimal64 float".

2017-02-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fma.c] speedup mpfr_fma for 1 limb

	754R -> 754-2008

2017-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing spaces.

	[src/vasprintf.c] Solved the FIXME for %g on easy cases.

2017-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] mpfr_reflection_overflow: reverted r11322 as the rounding
	direction was correct; it was a comment that was incorrect, now fixed.

	[src/zeta.c] mpfr_reflection_overflow: fixed a rounding direction.

	[src/zeta.c] Improvements of mpfr_reflection_overflow:
	  * Moved identical parts of the code at the beginning of if/else blocks
	    as a single part before the "if".
	  * When the rounding mode doesn't matter (exact result), use MPFR_RNDN.
	  * Updated comments (making them more consistent at the same time).

2017-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/zeta.c] added more comments for the overflow case

2017-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added a note about why one uses "const mpfr_ptr *x" in the
	  prototypes instead of "const mpfr_srcptr *x" (old info from r5381).
	[doc/sum.txt] Fixed the const position (see r11316) and added this note.

	[src/{mpfr-impl.h,mpfr.h}] Code reformatting and other cosmetic changes.

	[doc/mpfr.texi] For mpfr_sum, changed "mpfr_ptr const" to the equivalent
	"const mpfr_ptr" (usual style, less confusing).

	For mpfr_sum and its auxiliary functions, moved the const type qualifier
	to the right place (mpfr_ptr *const → const mpfr_ptr *). This bug had
	been introduced in r3642 (2005-06-10).

2017-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] mpfr_reflection_overflow: added comments and FIXME's;
	fixed obvious typos in a comment and the code.

	[src/zeta.c] mpfr_reflection_overflow: typo in a comment.

	[src/zeta.c] Untabified.

	[src/zeta.c] mpfr_reflection_overflow: added an assertion and a comment.

	[src/vasprintf.c] Added a comment in a FIXME.

	[src/vasprintf.c] Added MPFR_ASSERTD's.

	[src/vasprintf.c] Avoid some potential integer overflows.

2017-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/zeta.c] improved overflow detection

2017-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Added FIXME's: possible integer overflows.

2017-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fix for mpfr_zeta overflow on 32-bit computers

2017-02-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] revert detection of leading bit in sqr_1 and sqr_2
		    (not clear it is faster)

2017-02-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a mpfr_snprintf test with a null pointer,
	"%#.*RDg" and a large precision (it currently takes too much memory,
	like the similar ones).

	[src/vasprintf.c] Added a FIXME for %g on easy cases (too much memory).
	[tests/tsprintf.c] Added corresponding tests.

2017-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fix for mpfr_snprintf with size=0: do not allocate
	a buffer for the output if not needed. This really fixes bug #21056.
	The case size_t < unsigned int could not be solved completely due to
	limitations from the C standard and GMP.

	[src/sqrt.c] Avoid a warning due to an unused variable with
	MPFR_GENERIC_ABI defined or GMP_NUMB_BITS != 64.

	[src/sqrt.c] Added MPFR_ASSERTD's from comments.

2017-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tzeta.c] interm_overflow -> intermediate_overflow

2017-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] Updated a FIXME.

2017-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improved detection of fmma and fmms

	[src/zeta.c] fixed long-standing failure in tzeta

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] fixed a bug, and simplified code (sb=0 implies rb=0)

2017-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Updated FIXME.

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] new code for prec=GMP_NUMB_BITS

2017-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Moved the size_t vs int FIXME, with details added.

	[src/vasprintf.c] Added a MPFR_ASSERTN for security.

	[src/vasprintf.c] Added a FIXME for the case size_t < unsigned int.

	[src/vasprintf.c] Solved the r11288 FIXME, introducing new ones
	with a more visible failure. Not fixed yet because there seems
	to be another issue (already present at the beginning in r4993),
	which should be considered first.

	[src/vasprintf.c] Added a FIXME (related to the cause of the failure).

	[src/vasprintf.c] Added some precondition assertions, as the buffer_cat
	implementation requires that the current buffer position contains \0.
	Note[VL]: tsprintf is still failing with assertions on my machine in
	the 32-bit Linux/x86 ABI, but now on the new precondition instead of
	postcondition. The behavior with size = 0 actually depends on the state
	of uninitialized memory (even in the 64-bit ABI), so that the failures
	may be random; the problem is detected by valgrind.

	[src/div.c] Declare variables used by GMP_NUMB_BITS == 64 only in the
	related code.

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] simplified logic for special code
	[src/div.c] fixed bug in mpfr_div_1n when extra=0

	[src/div.c] special code for prec=GMP_NUMB_BITS

	[src/sqr.c] new code for p = GMP_NUMB_BITS, and small improvement in mpfr_sqr_1
	[src/mul.c] cosmetic changes

2017-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsub1sp.c] Fix: C++ compatibility.

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] added special code for prec=GMP_NUMB_BITS
	[src/add1sp.c] use special code only when MPFR_GENERIC_ABI is not defined
	[src/sub1sp.c] idem as above

2017-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Declare the mpfr_vasnprintf_aux prototype (which
	uses va_list) only if <stdarg.h> has been included, otherwise the
	build was failing with GCC in C90 mode under Linux (and could fail
	with other C implementations where this header isn't automatically
	included as a consequence of the inclusion of some other header).

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] new function for p=GMP_NUMB_BITS, fixed bug in mpfr_sub1sp3
	[tests/tsub1sp.c] added new tests

2017-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed bug introduced in r11273.

	[tools/mpfrlint] Updated the "simple mp_limb_t constants" test.

	Made some assertions a bit more readable.

	[tests/tsub1sp.c] Fixed mpfr_inits2/mpfr_clears sentinel → (mpfr_ptr) 0

	[tests/tsprintf.c] C90 compatibility.

2017-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/vasprintf.c] avoid memory allocation for snprintf with size=0

	[src/sub1sp.c] fixed a bug in mpfr_sub1sp1 and mpfr_sub1sp2 (corner case)
	[tests/tsub1sp.c] added non-regression test

2017-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] added special code for p=GMP_NUMB_BITS

	[src/vasprintf.c] improved also %a and %e

	[src/vasprintf.c] fixed bug #21056

2017-02-07  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] More about the mpz_t pool.

	[src/free_cache.c] Better file description (keeping it short).

	[src/free_cache.c] Updated comments (mpz_t cache → mpz_t pool).

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Clarified mpfr_asprintf & mpfr_vasprintf specification
	in case of error.

	[src/vasprintf.c] Code cleanup.

2017-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	partial solution of bug #21056: a test of mpfr_sprintf still fails

	[tests/tmul.c] added test for underflow corner case

	[src/div.c] simplified underflow in div_1 and div_2 (one case is not possible)

	[tests/tsqr.c] added another corner case for underflow and mpfr_sqr_2

	[tests/tsqr.c] added a corner underflow case

2017-02-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added missing function prototype after r11256.

2017-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr-impl.h] now mpz_init2 uses the mpz spool too

2017-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added: check the small-precision tables in the tests?

	Removed trailing whitespace.

	[acinclude.m4] Fixed code for the _mulx_u64 test.

2017-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Output whether _mulx_u64 is available.

	[acinclude.m4] Fixed _mulx_u64 detection to avoid failures in tests
	with ICC 15: we need an AC_RUN_IFELSE, not just an AC_LINK_IFELSE.

2017-01-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/invsqrt_limb.h] Improved constants: make their meaning explicit;
	portability with 32-bit long (and 64-bit limb).

2017-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invsqrt_limb.h] new macro __gmpfr_sqrt_limb_approx
	[src/sqrt.c] new sqrt1 code using __gmpfr_sqrt_limb_approx

2017-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] improved slow branch of mpfr_sqrt2

	[src/div.c] improved slow branch of mpfr_div_2

	[src/div.c] fixed TODO: replaced two if-statements by while-loop

2017-01-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Added TODO's.

	[src/div.c] Added a MPFR_ASSERTD.

2017-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan.c] added comment

	[src/invsqrt_limb.h] fixed __gmpfr_sqrt_limb macro

	[src/atan.c] small optimization

2017-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan.c] speedup for small precision

2017-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Disable mpfr_mul_{1,2,3} if MPFR_GENERIC_ABI is defined.

	[src/mul.c] Removed useless parentheses that can inhibit warnings.

2017-01-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Updated TODO.

	[src/mul.c] Added a TODO about an optimization.

2017-01-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] fixed error bound for mpfr_sqrt2_approx

2017-01-25  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added optimization of test + shift for some processors.

	[src/sub1sp.c] Added MPFR_FULLSUB code for mpfr_sub1sp2.

2017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] changed error bound back from 16 to 15

2017-01-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/add-with-carry.c] Added reference to my bug report about Clang's
	carry detection missed optimization in chained add-with-carry.

2017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] updated error bound for __gmpfr_invsqrt_limb_approx

2017-01-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Added refs to missed/broken optimization with Clang/LLVM.

	[src/sub1sp.c] Use the FULLSUB only. Added a comment about the change
	in r11227.

2017-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] changed MPFR_FULLSUB variant into faster code

2017-01-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Texinfo typography correction.

	[doc/mpfr.texi] Improvements concerning the exponent range.
	  * mpfr_get_exp: added a FIXME in a comment (documented behavior?).
	  * mpfr_set_emin / mpfr_set_emax: more specification and details.
	  * mpfr_subnormalize: clarification; added a warning about emin.
	  * Example of mpfr_subnormalize: added a note.
	In particular, this follows a confusion:
	  https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00024.html

2017-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/invsqrt_limb.h] changed slightly definition of d10 and d37 (does not
			     change final error analysis)

2017-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Updated comments about subtraction with borrow; the first
	one from r11213 was incorrect (bad interpretation of the generated code
	for GCC, potentially on a different alternate source code for Clang).

2017-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] simplified mpfr_sub1sp1()

	[tests/turandom.c] added non-regression test

2017-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/urandom.c] Added a FIXME as mpfr_urandom does not always set flags.

	[src/urandom.c] Simplified code (no changes in the behavior).

2017-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/urandom.c] fixed bug reported by Trevor Spiteri
	(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00020.html)

2017-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed mpn_sqr_n into mpn_sqr

2017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	new version of mpfr_sqrt2_approx (no longer needs sqrt_tab.h)

2017-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Updated TODO, mentioning an optimization bug in LLVM.

	[src/sub1sp.c] Updated TODO about full subtraction with borrow.

	[src/sub1sp.c] Added alternate code (enabled with -DMPFR_FULLSUB, until
	fully tested) to replace a test + correction by a 2-limb subtraction,
	recognized by GCC and Clang.

2017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	renamed __gmpfr_invsqrt_limb into __gmpfr_invsqrt_limb_approx to better reflect
	it only gives an approximation

2017-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/invert_limb.h] Just like for invsqrt_limb.h (r11210), in 1UL << 60,
	replaced 1UL by MPFR_LIMB_ONE to make the code valid with 32-bit long.

	[src/invsqrt_limb.h] Bug fix: replaced 1UL by MPFR_LIMB_ONE since the
	computations are done on limbs, which are expected to have 64 bits in
	this context (the old code would fail on MS Windows / MinGW, where limbs
	are 64-bit unsigned long long and unsigned long is a 32-bit type).

	[src/invsqrt_limb.h] Portability correction: avoid lines longer than the
	POSIX line-length limit of 2047 characters; actually fit on 80 columns.

2017-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	faster version of mpfr_sqrt1(), with smaller table

	[src/invert_limb.h] improved __gmpfr_invert_limb* for 64-bit limb

2017-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] use ADD_LIMB macro, and fixed comment

2017-01-17  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] MPFR_PARSE_DIRECTORY macro definition: workaround if
	the realpath command is not found. Suggestion by Trevor Spiteri:
	  https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00013.html
	Note: I had to modify the patch to use quadrigraphs, otherwise the
	generated configure file was invalid.

2017-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tdiv.c] added code to exercise mpfr_div2_approx

2017-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] new variant of mpfr_div2_approx()

2017-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/invert_limb.h] Fit on 80 columns (one line was over the
	POSIX line-length limit of 2047 characters).

	[src/invert_limb.h] Correction in __gmpfr_invert_limb for 32-bit ABI:
	_d was used before being defined.

2017-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[invert_limb.h] added invert_limb code for 32-bit

2017-01-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Improved a line based on analysis (+ timings I've done
	on x86_64 with GCC and Clang give better results, though they cannot
	be conclusive since the gain is too small compared to other possible
	causes of variations).

	[tools/mbench/Makefile] Added -static to CFLAGS in order to avoid
	a link error when MPFR has been built with Clang (linking is done
	with .a libraries, i.e. static libraries).

	[src/add1sp.c] Replaced "return 0;" by "MPFR_RET(0);" to emphasize on
	the fact that we return a ternary value (code instrumentation may also
	be easier later). Note: this is equivalent since the macro expands to
	0 != 0 ? ... : 0, which gives 0 via trivial optimization.

	[src/add1sp.c] Improvements in mpfr_add1sp1; added a TODO.
	Note for rb -> bp[0]: the generated code is the same, but the source
	is more readable (-> rb has only one meaning).

	[src/div.c] C90 compatibility (avoid initializer elements not computable
	at load time).

2017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] added some alternate code for mpfr_div2_approx (disabled for now)

	fixed bug in urandomb.c reported by Dominic Chen
	(https://sympa.inria.fr/sympa/arc/mpfr/2017-01/msg00011.html)
	and replaced MPN_COPY_INCR/MPN_COPY_DECR by mpn_copyi/mpn_copyd

	[src/div.c] small improvement in div_1 and div_2: force all precisions to be
		    equal, then we cannot have rb <> 0 and sb = 0

	[src/div.c] improved case p=127 (or two-limb case with hard to round case)

2017-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Added a TODO: slightly better code?

2017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] improve mpfr_div_1 for precision 63

2017-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/rndna.c] Updated comments.

2017-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] improved mpfr_sqrt2_approx()

2017-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typographic correction (including generated spaces).

2017-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	Improvement of additions with carry.
	  * Added doc/add-with-carry.c showing how to do an addition with carry
	    in C (to make the compiler understand the code).
	  * src/mpfr-impl.h: added ADD_LIMB macro (addition with carry).
	  * src/sqr.c: use this ADD_LIMB macro to improve the generated code.

2017-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] 2 calls to umul_ppmm are enough in mpfr_sqr_2 in most cases

	[src/div.c] added FIXME
	[src/sub1sp.c] added comments

	[src/sqrt.c] made code coherent with comment

2017-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Improved comment from r11180.

2017-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] improved error bound for mpfr_sqrt2_approx, with known direction
		     of error

2017-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk and added RNDF support
	in mpfr_sub1sp3.

	[src/sub1sp.c] Fixed other two bugs in special code for 3 limbs.
	TODO: non-regression tests should be added for both.

	[src/sub1sp.c] Fixed some bugs in special code for 3 limbs.

	[src/sub1sp.c] Simplified a test.

2017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3

	[src/mul.c] deal with RNDF in mpfr_mul_3

	[src/sub1sp.c] added special code for 3 limbs

2017-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

	[src/add1sp.c] Fixed too large shift count in r11170 (code for 3 limbs).

2017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] added special code for 3 limbs

	[src/sqr.c] added special code for 3 limbs

2017-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk (changing a RND_RAND to
	RND_RAND_NO_RNDF in order to avoid a failure in a test).

	[tests/tsub1sp.c] Fixed a return type.

	[doc/README.dev] Updated note added in r11165.

	[doc/README.dev] Added a note about cross-compilation and test
	under Wine, with references to bugs in autoconf and dash.

2017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tmul.c] fixed typo

2017-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_raw_generic.c] Added MPFR_RNDF special support (seen as
	MPFR_RNDZ since this is faster, with *inexp = 0).

2017-01-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed bug in mpfr_sub1sp2 when exponent diff. is GMP_NUMB_BITS
	[tests/tsub1sp.c] added testcase

2017-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Bug fix in mpfr_mul_3; tmul no longer fails (64-bit ABI).

	[tests/tmul.c] Added test of mpfr_mul on 1 to 3 limbs. Currently fails.

2017-01-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Define aq = MPFR_GET_PREC (a), and use this.

2017-01-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] added mpfr_mul_3
	[src/sqrt.c] renamed internal functions
	[src/sub1sp.c] cosmetic change

2017-01-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/exp.c] avoid using a full limb as precision
	[src/sqrt.c] removed obsolete comment

	[src/get_str.c] avoid precision = GMP_NUMB_BITS

	[src/div_ui.c] added comment

2017-01-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/README] Say how to disable a non-working library.

	Merged the latest change from the trunk.

2017-01-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] fixed previous commit: mpfr_div_1 and mpfr_div_2 also work for
		    GMP_NUMB_BITS <> 64, only some fast code inside is not defined

2017-01-06  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

2017-01-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Use mpfr_limb_ptr instead of mp_ptr.

	[src/div.c] Fix for GMP_NUMB_BITS != 64.

2017-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] faster division for 2 limbs

2017-01-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_ui.c] Coding style.

	[src/div_ui.c] Simplification.

	[src/div_ui.c] Replaced a MPFR_ASSERTN by MPFR_STAT_STATIC_ASSERT.

	[tests/tdiv_ui.c] Correction for 64-bit limb with 32-bit unsigned long.

	[tests/tdiv_ui.c] Fix when GMP_NUMB_BITS != 64.

2017-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	last fix was incomplete

	[src/div_ui.c] fixed a bug in mpfr_div_ui (also affects mpfr_div since it calls
		       mpfr_div_ui when the divisor has a few bits)

	fixed underflow bug by replacing !MPFR_IS_LIKE_RNDZ by new macro
	MPFR_IS_LIKE_RNDA: for RNDN, !MPFR_IS_LIKE_RNDZ was true, while new macro
	MPFR_IS_LIKE_RNDA is false

2017-01-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] Added a test that triggers an assertion failure
	in a reduced exponent range (found from the generic tests with
	GMP_CHECK_RANDOMIZE=1483628702).

	[tests/tgeneric.c] Added debug messages for overflow & underflow tests.

	[tests/tdiv_ui.c] Added a comment on new test (doesn't fail).

2017-01-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tdiv_ui.c] added new test

2017-01-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/invert_limb.h] Removed an unused variable.

2017-01-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use a macro instead of a function for __gmpfr_invert_limb and
	__gmpfr_invert_limb_approx saves 2-3 cycles

2017-01-01  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2017 with
	  perl -pi -e 's/ (\d{4}-)?(2016)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh, reverting the tools/mbench directory (not distributed with
	MPFR). Removed 2016 from the example in the doc/README.dev file.

2016-12-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqr.c] Bug fixes (portability): replaced left shift of a value
	that can be negative by a multiplication by 2.

	[src/sqrt.c] C90 compatibility.

	[src/div.c] C90 compatibility.

	[src/invert_limb.c] Removed unused variable.

2016-12-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] small speedup in mpfr_mul_2 by not computing the product b0*c0

	[src/mul.c] fixed typo in comment
	[src/sqr.c] likewise

	[src/mul.c] fixed regression for 1/2 limbs introduced in revision 11098:
		    critical routines should not be exported, otherwise we lose a few
		    cycles (maybe they are inlined by the compiler)

	[src/div.c] further improvement in mpfr_div_1()

	[src/div.c] use an approximate quotient in mpfr_div_1()

	[src/div.c] simplify mpfr_div_1()

	[src/invert_limb.c] new file for __gmpfr_invert_limb internal function
			    (only provided so far for 64-bit limb)
	[src/div.c] mpfr_div_1 and mpfr_div_2 don't require --enable-gmp-internals
		    any more

	[sqrt_tab.h] better file description

2016-12-29  Vincent Lefèvre  <vincent@vinc17.net>

	Improvement concerning the _mulx_u64 intrinsic.

2016-12-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] replace GMP's invert_limb (internal) by own code

2016-12-29  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

	[src/sqrt.c] Replaced constant MPFR_ASSERTD by MPFR_STAT_STATIC_ASSERT.

2016-12-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqr.c] use special code for 1 and 2 limbs
	[mbench] added mpfr_sqr

	[src/sqrt.c] faster sqrt code for 2 limbs and 64-bit limb (removed special code
		     for 32-bit limb)
	[src/sqrt_tab.h] new table for mpn_sqrtrem4_approx

	[tlog.c] missing printf()

2016-12-27  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention that mpfr_get_str now also sets the inexact flag when
	the conversion is inexact (completing r11073).

	[mpfr.texi] Be stronger in mpfr_round_nearest_away documentation
	(as the ternary value is used each time the last bit on p+1 bits
	is not 0, i.e. in about half cases).

2016-12-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] added stuff in mpfr_round_nearest_away documentation

2016-12-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/log.c] Added another FIXME concerning the error analysis.

	[src/log.c] Added an assertion and a FIXME: error in the MPFR code or
	in the proof (error analysis).

	[src/log.c] Slight simplification / improvement.

	[doc/algorithms.tex] In Section "The logarithm function" (from r9046),
	removed everything concerning the AGM since this is not what is done
	in the MPFR code, where mpfr_agm is simply called (and this function
	already has its own description later).
	Note: The error analysis of mpfr_log can only be found in log.c, but
	seems incorrect (though the bounds may be valid); it was introduced
	in r416.

2016-12-26  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk (this concerns only src/log.c).

	[src/log.c] Group constant terms together (GCC takes advantage of this,
	at least on x86_64).

	[src/log.c] Check for integer overflow (no visible changes in
	standard configuration) + explanations.

	[src/log.c] Get the exponent of the input only once.

2016-12-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Update for faithful rounding (MPFR_RNDF).

	[src/sum.c] Fixed the bug mentioned in r11077.

	[tests/tsum.c] The new test for MPFR_RNDF in r11079 can actually trigger
	a failure; increased the number of tests to get a failure by default.

	[tests/tsum.c] Improved a test to support MPFR_RNDF. It doesn't fail,
	but would if 0 in "corr = 0" were changed to -1 or 1 (tested).

	Removed trailing spaces.

	[src/sum.c] Improvement for MPFR_RNDF, but still based on the change
	done in r10512, which was incorrect; added a FIXME (a non-regression
	test needs to be added first).

	Merged the latest changes from the trunk (this concerns only src/sum.c
	and will be useful for the upcoming improvement).

	[src/sum.c] Delay some assignments so that they are done just before
	the variables are used (this should have been done in r10467).

	Merged the latest changes from the trunk.

	[doc/mpfr.texi] For mpfr_get_str, explicitly say that the inexact flag
	is set iff the result is inexact (since this may not be obvious and this
	wasn't the case until now). In the compatibility section, mention this
	change.

	[doc/mpfr.texi] For mpfr_get_str, removed the note saying that
	the inexact flag is not set when the conversion is inexact:
	this is fixed in r11071.

	[src/get_str.c] Corrected a comment and a test for inexactness
	(→ the new tget_str.c test no longer fails).

2016-12-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Added a comment.

	[src/strtofr.c] Better indentation.

	[tests/tstrtofr.c] Replaced mpfr_cmp() == 0 by mpfr_equal_p().

	[doc/mpfr.texi] Updated the month.

	[src/get_str.c] Removed an obsolete comment, which came from r2757
	(and even before, under another form); this comment no longer made
	any sense as the sign of dir is no longer tested.

	[src/get_str.c] Indentation fixed.

	[src/get_str.c] Setting the inexact flag as done in r11060 was incorrect
	since the flags are restored. Moreover, this was done even when the Ziv
	loop was going to fail (it's not clear whether this was expected). Moved
	the test out of the Ziv loop, and update the copy of the flags instead
	of the flags that will be overwritten.
	Note: this still fails, but now for another reason.

	[tests/tget_str.c] Check the inexact flag for mpfr_get_str.
	The test currently fails.

2016-12-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[get_str.c] inexact flag should now be correct in mpfr_get_str

	[strtofr.c] updated comment

2016-12-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a short note about the default precision for Re.

2016-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] added emin in comment about mpfr_round_nearest_away

	fixed bug in mpfr_strtofr (and likely similar bug in mpfr_get_str)

2016-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tstrtofr.c] added test for bug in mpfr_strtofr()

2016-12-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Added "do ... while (0)" in macro definition.

2016-12-16  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

	[src/round_raw_generic.c] Completed the support for MPFR_RNDNA (set
	*inexp if use_inexp is true), from a patch by John P. Hartmann.

2016-12-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	new mpn_sqrtrem4_approx function (unused so far)

2016-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsqrt.c] The latest changes made tsqrt fail in an inexact test
	on MPFR_RNDF. Fixed by changing RND_RAND to RND_RAND_NO_RNDF.

	Merged the latest changes from the trunk.

	[src/sin.c] Handled a FIXME.

	[src/sqrt_tab.h] Added copyright notice.

2016-12-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[sqrt.c] simplify code for GMP_NUMB_BITS = 64

2016-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	better fix than r11025

	[sqrt_tab.h] new header file with table for mpn_sqrtrem2_approx()
	[sqrt.c] new version of mpn_sqrtrem2_approx()

	[sqrt.c] added mathematical error in mpn_sqrtrem2_approx()

	added non-regression test for bug fix in r11037

2016-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Fixed a bug as spec.prec can be a negative number
	other than -1 (if such a value is given as an argument with ".*").
	This is the probable cause of the assertion failure on:
	https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21056&group_id=136

2016-12-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[sqrt.c] faster version of mpn_sqrtrem2 for 64-bit limb

	[sqrt.c] approximate version of mpn_sqrtrem2, saves a few cycles in mpfr_sqrt1

	[add/sub] added MPFR_UNLIKELY when adding one ulp changes the binade

2016-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sin.c] Added missing word in r11032 comment.

	[src/sin.c] Common/related subexpressions. Added a FIXME.

2016-12-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[cos.c,exp_2.c,log.c] improved initial precision for Ziv's strategy

	[sin.c] improved strategy for initial precision

	[sqrt.c] updated code and comments

	[sqrt.c] slightly improve mpn_rsqrtrem1() (and detailed error analysis)

	[sqrt.c] removed mpn_sqrtrem1 (no longer needed since r11023)

	[sqrt.c] fixed comments to be coherent with the code

	fixed https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=21053&group_id=136

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Corrected a comment (1 has exponent 1 and we support
	precision 1).

2016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[sqrt.c] no more special case for prec <= GMP_NUMB_BITS/2, and added comments

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Bug fix (replaced = by ==). Note: this kind of bug could
	be detected by avoiding extra parentheses.

	[src] Simplified ~MPFR_LIMB_ZERO to MPFR_LIMB_MAX.

2016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[div.c] simplified mpfr_div_1 and mpfr_div_2

	[div.c] added comments and simplified code

	[div.c] simplified code

	likewise for mpfr_mul_2()

	fixed bug in mpfr_mul_1() introduced in r11004 and added test case

	[div.c] simplified underflow test in mpfr_div_1()

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div_ui.c] underflow is unlikely!

	[src/sqrt.c] overflow and underflow are unlikely!

2016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[div.c] overflow and underflow are unlikely!

	[div.c] slightly better code (less dependencies) for mpfr_div_1 when u0 >= v0

	[div.c] simplified mpfr_div_1() code

	[div.c] in mpfr_div_1, do not deal with the case where the precision is
		<= GMP_NUMB_BITS/2, to not slow down the general case

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Slight improvement (but shouldn't affect the generated code
	with an optimizing compiler).

2016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mul.c] likewise for mpfr_mul_2()

	[mul.c] simplified mpfr_mul_1()

	fixed similar bug in mpfr_mul_2() + non-regression test

	[mul.c] simplified the code and fixed a bug
	[tmul.c] added non-regression test for fixed bug

	[sub1sp.c] added comment + assert

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Fixed bug introduced in r10964 with --with-gmp-build: move
	the numberof_const() definition from mpfr-gmp.h to mpfr-impl.h.

2016-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[add1sp.c] added comment

	[add1sp.c] simplified mpfr_add1sp2()

	[sub1sp.c] in mpfr_sub1sp2(), compute a0 before a1 whenever possible

2016-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/mfv5.cc] Fixed type.

2016-12-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mbench] fixed typo

2016-12-08  Vincent Lefèvre  <vincent@vinc17.net>

	Replaced two ~0 with mp_limb_t target by MPFR_LIMB_MAX.

	[tools/mpfrlint] Added a test detecting code like ~0 (either an error
	or poorly written code).

2016-12-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improved add1sp.c and sub1sp.c like in r10991

	[mbench] set default max_exp to 1 (independent of number of bits per limb)

	[sub1sp.c] improved further

	[mbench] use mpfr_printf to print test numbers

	fixed bug in mfv5 (numbers used were 10 times too large)

2016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added rounding code for RNDF in special routines for 1 and 2 limbs

	[sub1sp.c] corrected a comment, added another one

2016-12-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Typo in a comment.

	[src/pow.c] Punctuation to make clear that there are 2 sentences.

2016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	likewise r10983

	[add1sp.c] improved a conditional (if compiler is not smart enough)

	[exp_2.c] small improvements

2016-12-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] MPFR_INT_CEIL_LOG2(x) macro: added a FIXME and an
	assertion concerning whether x <= ULONG_MAX or not.

	[src/pow.c] Added an assertion.

2016-12-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[algorithms.tex] fixed typo

	[pow.c] tuned starting precision (and removed obsolete comment)

	use MPFR_INT_CEIL_LOG2

	modified the semantics of mpfr_can_round for rnd2=RNDF

2016-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mfv5] added option -e, for example use -e1 to avoid over/underflow in mpfr_pow

	[pow.c] reduced overhead of special cases (gives speedup of a factor of two
		for 53 bits of precision)

2016-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk except those related to
	mpfr_zeta (it is buggy and not fixed yet in the trunk, but the bug
	will not be triggered here, allowing the tests to pass).

2016-12-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_pow

2016-12-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Correction for zsh change after v5.2 (POSIX compat:
	"set -e; f() { false && true; }; f; echo OK" no longer prints OK).

2016-11-29  Vincent Lefèvre  <vincent@vinc17.net>

	Check that the numberof() macro is used on an array.
	  * src/mpfr-gmp.h: define numberof_const() macro, equivalent to the
	    old numberof() macro: no check, but constant expression; improved
	    the numberof() macro to check that it is used on an array (since
	    an array can silently be converted to a pointer in C). Note that
	    potential failures are currently reported at run time.
	  * src/mulders.c: replaced numberof by numberof_const in #define's
	    (also removed a useless cast at the same time).

2016-11-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c,tests/tset_ld.c] Updated comments, in particular
	concerning LDBL_MAX.

2016-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Added an overflow test that triggers a bug for
	double-double (IBM long double format). See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2016-11/msg00006.html

	[src/get_ld.c] Fixed bugs for double-double (IBM long double format):
	  * one from r8650, which could yield a spurious assertion failure
	    in debug mode in case of underflow (with result 0);
	  * one from r8972, which used the variable sign uninitialized and
	    could yield a result with an incorrect sign.

	[tests/tset_ld.c] Added a missing exit(1).

	[tests] _GMP_IEEE_FLOATS was got rid of in r10150, but still used in
	the tests, meaning that some tests were no longer done. So, get rid of
	_GMP_IEEE_FLOATS also in the tests. Testing !defined(MPFR_ERRDIVZERO)
	or defined(HAVE_SIGNEDZ) should be sufficient, depending on the context
	(they were already used alone at some other places, so that new failures
	are unlikely); anyway, _GMP_IEEE_FLOATS was not the right macro to test.
	Only tget_set_d64.c has a specific change to use _MPFR_IEEE_FLOATS.

	[src/get_ld.c] For double-double (IBM long double format): test other
	special values, as this may be useful.

	[src/get_ld.c] For double-double (IBM long double format), the code
	was incorrect on large finite values, which are infinite as a double:
	(+inf) + (-inf) was computed, which is NaN (thanks to Rob for the
	report). Fixed this bug, with code clean up (not tested).

2016-11-10  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Added a note about MinGW and libtool error "libobj name ...
	may not contain shell special characters.", with a solution.

2016-11-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Final corrections.

	[doc/sum.txt] Another correction due to the rewrite for reuse support.

	[doc/sum.txt] Correction.

2016-11-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added a short explanation for halfway cases.

	[doc/sum.txt] Improved an example (from my ARITH-23 slides).

	[doc/sum.txt] English usage.

2016-11-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Explained the handling of halfway cases for sq = 1
	(since the explanations for sq ≥ 2 are not valid for sq = 1).

	[doc/sum.txt] Minor update.

	[doc/sum.txt] Last corrections. Concerning the setting of the sign of
	the result, this changed with the support for precision 1 (see r10068).

	[doc/sum.txt] Correction (English).

	[doc/sum.txt] Correction about neg / sgn.

	[doc/sum.txt] Added details about the handling of halfway cases, as
	the rule is not obvious due to two's complement representation.

2016-11-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Cosmetic change for consistency between lbit and rbit.

	[doc/sum.txt] Minor update.

2016-11-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] A bit more explanations.

	[doc/sum.txt] Corrected the usage of the HYPHEN-MINUS character (-):
	  * If it is a minus sign, use U+2212 MINUS SIGN (as already done).
	  * Do not use "-" after the "non" and "pre" prefixes.

	[doc/sum.txt] Minor improvement.

2016-10-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Replaced "TZ=UTC" by "TZ=GMT0" for portability.

	[doc/sum.txt] Added a note.

	[doc/sum.txt] Update for the current code (support of reused arguments);
	some other improvements.

	[doc/sum.txt] Corrected 2 typos.

	[src/sum.c] Changed a MPN_COPY_DECR to MPN_COPY, which may be more
	efficient: as of r10464 (support for reused arguments), the memory
	used by the accumulator for the TMD resolution is no longer a part
	of the main accumulator, so that we now know that the memory blocks
	do not overlap.

2016-10-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Corrected a comment from r10503.

	[src/sum.c] Moved/rewrote a comment (should have been done in r10467).

2016-10-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Started the update for the code supporting reuse.

	[src/mpfr-impl.h] Fixed r10916 (thanks to Eli Zaretskii for the report).

2016-10-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Improved a macro from r10916 (just in case...).

	[src] Support build as thread-safe DLL on Windows: clean-up.
	  * Increased the use of macros to avoid some code duplication
	    (with risks of typos) and to prevent the problems related
	    to thread-safe DLL from appearing in the .c files.
	  * The prototypes of the functions to access the address of a
	    TLS variable are now defined. Otherwise one gets warnings:
	    https://sympa.inria.fr/sympa/arc/mpfr/2016-10/msg00004.html

2016-10-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Minor correction and improvement (English).

	[doc/sum.txt] "a" → "an" before "additional iteration".

2016-10-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Updated a comment about bit-fields.

2016-10-17  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the FIXME concerning the mpfr_can_round
	specification with MPFR_RNDF (faithful rounding): after discussion
	with PZ, reverted r10909,10910; added a note explaining the choice
	done for this specification.

2016-10-14  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Another correction of the FIXME concerning the
	mpfr_can_round specification with MPFR_RNDF (faithful rounding).

	[doc/mpfr.texi] Corrected FIXME concerning the mpfr_can_round
	specification with MPFR_RNDF (faithful rounding).

2016-09-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src]
	  * mpfr-impl.h: document the memory allocated for a significand;
	    added a cast to avoid a direct conversion from mp_limb_t * to
	    mp_size_t *.
	  * init2.c, round_prec.c, set_prec.c: code clean-up by correcting
	    the type expected for the second argument of MPFR_SET_MANT_PTR
	    (this macro has a cast, so that this should not change anything,
	    but the old type mpfr_limb_ptr was meaningless and confusing).

2016-09-23  Vincent Lefèvre  <vincent@vinc17.net>

	[examples/version.c] For MPFR >= 4, output float128 support info.

	[examples/version.c] A bit more output.

	[examples/version.c]
	  * Really support C++ compilers (tested with g++ 6.2.0).
	  * Output information about the C implementation.
	  * Detect MPIR (→ output information on MPIR instead of GMP).

	[examples/version.c]
	  * Code simplification: support for MPFR versions less than 3.0 had
	    already been dropped with the use of MPFR_RNDN.
	  * For MPFR patches, output "[none]" when there are no patches.
	  * Output mpfr_ptr size.

2016-09-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sin_cos.c] Avoid the reuse of variables for two completely
	different things (with different orders of magnitude)! Changed types.

	[src/exp3.c] Avoid the reuse of variables for two completely different
	things (with different orders of magnitude)! Added a cast to avoid a
	potential integer overflow (like in r10881).

	[src/atan.c] Avoid the reuse of variables for two completely different
	things (with different orders of magnitude)! Changed types.

	[src/{atan.c,sin_cos.c}] Added casts to avoid potential integer
	overflows. Possible issue reported by David Binderman:
	  https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00029.html
	Note: From tests I've done on mpfr_atan, there would be issues with
	16-bit int, but for 32-bit int, one could need several hundreds of
	billions of bits for the target precision.

	[doc/README.dev] "To make a release": updated paragraph about warnings.

	[src/mpfr-impl.h] In the MPFR_RET macro, avoid the use of an integer
	in a boolean context (even though that this is not wrong in C). Fix
	after a bug report from David Binderman. Explanations:
	  https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00028.html

2016-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
	paragraph on the sin(...) term of the reflection formula.

	[doc/algorithms.tex] More work on the Riemann Zeta function.

2016-09-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Riemann Zeta function, case s < 1/2: added a
	paragraph briefly describing how the precisions of the variables
	will be chosen (this is much more efficient than the current code
	when the target precision is much lower than the input precision).

	Some improvements / corrections in the description / proof of the
	algorithm for the Riemann Zeta function.
	  * doc/algorithms.tex, section on the Riemann Zeta function: the case
	    s < 1/2 (reflection formula) is now in a new section, which needs
	    to be completed (with the detailed algorithm and error analysis);
	    case "s close to 0" added and now properly proved.
	  * src/zeta.c: update of the comment for s close to 0 (the brief
	    explanations were wrong for precision 1, and this was apparently
	    not checked when we allowed this precision!), adding a reference
	    to algorithms.tex for details.

2016-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] In "[[…]]" conditional expressions, replaced "="
	by the preferred (and equivalent) form "==".
	Discussion: https://www.zsh.org/mla/workers/2016/msg01711.html

	[tests/tdiv.c] Improved code readability (related to r10871).

2016-09-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tdiv.c] improved code (found by David Binderman using cppcheck)

2016-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/announce-text] Use the 64-bit key ID instead of the 32-bit one
	since there are known collisions for 32-bit key ID's:
	https://evil32.com/

2016-09-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] Added a FIXME: bug in the error computation due to the
	  use of the native double C type, which can yield an overflow.
	[tests/tzeta.c] Added a corresponding test case, which gives an
	  assertion failure.

	[src/{uceil_log2.c,ufloor_log2.c}] Added "MPFR_ASSERTN (exp < 1023);"
	to get an assertion failure on infinities (which do not have an
	exponent).

	[src/uceil_log2.c] Code style.

	[src/ufloor_log2.c] Code style.

	[src/zeta.c] Make explicit that we need to use lngamma.

	[src/zeta.c] Updated comments on overflows / underflows.

	[src/zeta.c] About internal underflows / cancellation:
	  * Added comments to FIXME's.
	  * Detect a potential integer overflow with MPFR_ASSERTN.

2016-09-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Moved a comment.

	[tests/tset_ld.c] Fixed print_binary (and no longer any failure with
	gcc -mpc64 on x86).

	[tests/tset_ld.c] Corrected note in print_binary.

	[tests/tset_ld.c] Reverted r10847 (it was incomplete and I was testing
	the wrong code).

	[tests/tset_ld.c] Fixed print_binary.

	[tests/tset_ld.c] Added a FIXME in print_binary, which can yield an
	incorrect output and return a wrong precision (causing the failure).

	[tests/tset_ld.c] Added a test that triggers a failure with gcc -mpc64
	on x86 (64-bit ABI).

	[tests/tset_ld.c] Added some tests in case the rounding precision is
	smaller than MPFR_LDBL_MANT_DIG (e.g. with gcc -mpc64 on x86).

	[tests/tset_ld.c] In print_binary, added an assertion that may fail
	with flush-to-zero on underflow (avoiding an infinite loop).

	[tests/tset_ld.c] Simplified a condition in print_binary (BTW, the old
	condition was based on the fact that the rounding depended only on the
	exact result, which may not be the case when rounding is not completely
	specified, e.g. with double-double arithmetic like on PowerPC).

	[tests/tset_ld.c] Replaced a condition by a simpler, equivalent one.

2016-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tset_ld.c] added note

2016-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tset_ld.c] get rid of C99-only stuff

2016-09-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Removed a variable that is no longer used.

	[tests/tset_ld.c] FIXME: nextafterl and ilogbl are C99 only.

2016-09-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tset_ld.c] fixed computation of smallest subnormal using nextafterl

	[tests/tset_ld.c] added warning

	[tests/tset_ld.c] fixed print_binary() for when the rounding precision is less
			  than the precision of long double

2016-09-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ld.c] Replaced FIXME by an explanation of the current behavior.
	[tests/tset_ld.c] Added a FIXME as a consequence.

	[doc/README.dev] Update about NetBSD.

2016-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Corrected a spelling mistake.

	[src/get_ld.c] Updated FIXME (mention subnormals).

	[src/get_ld.c] Updated FIXME (this is NetBSD 5.1).

	[src/get_ld.c] Added a FIXME, in particular for NetBSD.

	[tests/tset_ld.c] Avoid a freeze in print_binary under NetBSD due to
	excess precision in LDBL_MAX (we do not run the test in this case).

2016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] fixed bug in mpfr_sqrt2
	[tests/tsqrt.c] added non-regression test

2016-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] The print_binary function is freezing on a NetBSD
	machine; let's start with some improvements (assertions...).

	[tests/tabs.c] Removed mpfr_test_init (not needed here).

	[tests/tset_ld.c] Moved mpfr_test_init at the right place (like
	tget_d.c, tset_d.c, etc.).

2016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] divsp1 -> div_1

2016-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Fixed a loop in case an extended range is used
	(there are issues on a NetBSD machine, and this could be a cause).

	[tests/tset_ld.c] Corrected a type (due to a printf with %ld).

2016-09-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] divsp1 -> div_1, divsp2 -> div_2 (not necessarily same precision)

	[src/mul.c] mulsp1 -> mul_1, mulsp2 -> mul_2 (the precision of operands is not
		    necessarily the same)

2016-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{get_d,get_ld}.c] Use MPFR_ALIAS.

2016-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ld.c] Improved the fix done in r10808: The mpfr_set_emin value
	is not changed, but let's make the LDBL_MIN_EXP and LDBL_MAX_EXP values
	appear as expected.
	Note: The code for x86 extended precision first appeared in r3226 with
	the usual emin and emax values, as found in the IEEE 754-1985 standard
	(bounds) or on <https://en.wikipedia.org/wiki/IEEE_floating_point>. But
	MPFR uses a different convention, with a significand between 1/2 and 1
	instead of between 1 and 2, so that these values were off by 1. The
	emax one was fixed in r6101, but the error on emin remained undetected.

	[tests/tset_ld.c] The bug_20160907 test is valid only with
	HAVE_LDOUBLE_IEEE_EXT_LITTLE.

	[src/zeta.c] Updated FIXME: also suggest a scaling.

2016-09-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tset_ld.c] check more numbers in bug_20160907()

	[src/get_ld.c] fixed bug reported by Walter Mascarenhas

	[tests/tset_ld.c] added test that triggers bug in mpfr_get_ld
			  (https://sympa.inria.fr/sympa/arc/mpfr/2016-09/msg00005.html)

2016-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta.c] Updated FIXME with a suggestion.

	[src/zeta.c] Added a FIXME: An overflow in gamma(s1) does not imply
	  that Zeta(s) will overflow.
	[tests/tzeta.c] Added a test that triggers this bug with a 32-bit ABI.

	[doc/README.dev] Concerning GCC's AddressSanitizer (-fsanitize=address),
	mention that LD_PRELOAD needs to be unset (or -static-libasan needs to
	be used, but does not work yet).

2016-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/algorithms.tex] l -> \ell

	[doc/algorithms.tex] du -> {\mathrm d}u

	[src/log_ui.c] added FIXME

2016-09-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Avoid a warning due to an unused variable with
	GMP_NUMB_BITS == 32.

	[acinclude.m4] Fixed m4_pattern_forbid argument to avoid an error with
	recent ax_pthread.m4 (such as in Debian's autoconf-archive 20160320-1,
	which has just appeared in unstable).

	[src/zeta.c] Updated FIXME.

2016-09-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/zeta.c] added FIXME

	[src/sqrt.c] added alternate code for mpn_sqrtrem4 (disabled for now)

2016-09-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	move macros from div.c to mpfr-gmp.h

2016-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	About the tzeta timing issue (since r9848):
	  * TODO: updated item on tzeta.
	  * tests/tzeta.c: updated FIXME for test_generic.

	[TODO] Updated item on tzeta:
	  * removed the old problem: the fact that the traces for the trunk and
	    for r9954 are different is normal (fixes in mpfr_can_round affecting
	    tgeneric.c), and the timings depend on GMP_CHECK_RANDOMIZE and seem
	    equivalent in average with "test_generic (..., 5);" in both cases;
	  * added the fact that tzeta has been much slower since r9848, at least
	    with the x86 32-bit ABI.

2016-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Added some details in a comment for rnd2 = RNDF.

	[doc/mpfr.texi] Added a FIXME on the mpfr_can_round description in order
	to match what I intended to say in my comment in round_prec.c (perhaps
	not detailed enough).

2016-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] updated specification of mpfr_can_round with rnd2 = RNDF
	[tests/tpow.c] one test makes no sense for RNDF

2016-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Completed mpfr_can_round description with RNDF.

2016-09-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/get_str.c] map RNDF to RNDN in mpfr_get_str

	[tests/tconst_euler.c] fixed with new specification of mpfr_can_round for RNDF

	[doc/mpfr.texi] put back stuff removed by accident in last commit

	[doc/mpfr.texi] defined the bahaviour of mpfr_can_round for rnd2 = RNDF
			(suggestion from Vincent)

2016-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Forbid rnd2 = MPFR_RNDF as it does not make much
	  sense without additional specification (and explained why).
	[tests/{tcan_round.c,tgeneric.c}] Added MPFR_RNDF support with the
	  above restriction.
	Note: 6 tests are failing as a consequence.

	[src/round_prec.c] FIXME: rnd2 == MPFR_RNDF is not supported yet.

2016-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the remaining changesets (concerning src/{add1sp.c,sub1sp.c})
	from the trunk, and fixed the code: The old mpfr_add1sp2 function
	was renamed to mpfr_add1sp_ref in the trunk and a new mpfr_add1sp2
	function (with a different purpose) was defined; so, in

	  if (rnd_mode == MPFR_RNDF)
	    return mpfr_add1sp2 (a, b, c, rnd_mode);

	mpfr_add1sp2 had to be changed to mpfr_sub1sp_ref.
	Ditto for mpfr_sub1sp2 and mpfr_sub1sp_ref.

2016-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	Merged r10698 from the trunk (it was skipped by mistake in r10776).

	Merged the following changesets from the trunk:
	  r10664-10686,10689-10690,10692,10695-10696,10699-10775
	i.e. all the latest changes except for src/{add1sp.c,sub1sp.c}
	to avoid build failures (to be solved later).
	Currently only tcan_round fails, due to MPFR_RNDF.

	Removed trailing whitespace.

2016-09-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] new code for 2 limbs on 64-bit machines, giving speedup of almost
		     a factor of two:

	bavette.loria.fr (Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz)
	numactl --physcpubind=0 ./mfv5 -p113 mpfr_sqrt

	3.1.4:
	 mpfr_sqrt:        234 /   243.72 /   258

	4.0-dev:
	 mpfr_sqrt:        122 /   127.63 /   136

2016-08-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] fixed error triggered by previous commit

	[src/div.c] added missing assertion
	[tests/tdiv.c] added test case that make new assertion fail (with --enable-assert --enable-gmp-internals on a 64-bit machine)

	[src/div.c] fixed bug found by Vincent

2016-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] Added a test triggering an assertion failure with
	"--enable-assert --enable-gmp-internals".

2016-08-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Update.

	[src/div.c] Untabified. Clarified a comment.

2016-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] document mpn_sqrtrem2()

	[src/div.c] don't use mpfr_divsp1 and mpfr_divsp2 when MPFR_GENERIC_ABI is defined

	[src/div.c] faster code for 2 limbs
	[tests/tdiv.c] added special test for 2 limbs

2016-08-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Define global variable tests_memory_disabled, which needs to
	be set when the memory.c allocators (to track memory leaks) must not
	be used; i.e., setting it disables the calls to tests_memory_start()
	and tests_memory_end(). In tests.c, it is initialized to 0 (unset),
	except when mini-gmp is used (same behavior as before this commit).
	Programs that test GMP's mp_set_memory_functions() need to set this
	variable before calling tests_start_mpfr().

2016-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	Added tests/talloc-cache.c (not run by "make check") testing multiple
	calls to mp_set_memory_functions. It yields a crash in the MPFR trunk,
	which is unexpected with the current code. However, in the 3.1 branch,
	r9467 fixed the crash as expected.

2016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] added Sage code used to generate the bipartite tables

2016-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/talloc.c] Added a warning about new tests.

2016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/atan.c] fixed TODOs, and simplified code

2016-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a FIXME comment about memory allocation.

	[doc/mpfr.texi] Updated the month.

	[TODO] Done in r10756: unify is_power_of_two() and mpfr_powerof2_raw().

2016-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	unified is_power_of_two() and mpfr_powerof2_raw()

	[doc/mpfr.texi] improved documentation of mpfr_free_cache()

2016-08-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcan_round.c] Improved a test now that mpfr_can_round is exact.

	[src/mpfr-gmp.h] Added a warning about r10749.

2016-08-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Various corrections/improvements:
	  * Unified the return, making sure that temporary memory is no longer
	    used after MPFR_TMP_FREE(marker), which was not the case in some
	    places.
	  * C90 compatibility.
	  * Minor improvements (use of MPFR_PREC2LIMBS, code on 78 columns...).

	[TODO] Added: unify is_power_of_two() and mpfr_powerof2_raw()?

	[src/atan2.c] Replaced the use of the MPFR_IS_POWER_OF_2(x) macro by
	  a more efficient solution based on mpfr_powerof2_raw().
	[src/mpfr-impl.h] Removed the now obsolete MPFR_IS_POWER_OF_2 macro.

2016-08-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] added comment about GMP memory allocation functions

2016-08-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_p.c] since mpfr_can_round is now always correct, we cannot compare
			it blindly to mpfr_round_p any more

2016-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] fixed mpfr_can_round() so that all tests of tcan_round pass

2016-08-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tcan_round.c] more information in case of error in check_can_round()

2016-08-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/mfv5.cc] Fixed code (C++11 compatibility).

	[tests/tcan_round.c] Added a comprehensive test of mpfr_can_round,
	based on a naive implementation.
	Note: if the exit() is removed, many cases are failing, for both kinds
	of answers (there might also remain an error in my test...).

2016-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] More thoughts about mpz_t caching (mpz_t pool).

	[TODO] Issues with mpz_t caching.

	[TODO] Update about mpz_t caching (mpz_t pool).

	[src/atan.c] Added TODO's to use mpz_init2 instead mpz_init: I could
	check that without "mpz_t cache" (pool), this makes the code faster.

	[doc/README.dev] Added a note about memory reallocations; recommend
	mpz_init2 with the estimated maximum size instead of mpz_init.

	[tests/tests.c] Updated the error message on incorrect MPFR version.

	[INSTALL] Added note on Solaris and the LD_OPTIONS environment variable.

2016-08-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/coverage] Added a warning: on a machine shared with other users,
	by running this script, the account can easily be compromised due to a
	libtool bug.

2016-08-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Moved MPFR_DEPRECATED before __MPFR_DECLSPEC for
	compatibility with MSVC (and documented this requirement).
	Thanks to Brian Gladman for the information.

2016-08-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a note about the C++11 compatibility issue
	with a string literal immediately followed by a macro name.

	Fixed remaining macros with missing "do" … "while (0)", detected with
	mpfrlint. There were no consequences except spurious null statements.

	[tools/mpfrlint] Added a comment.

	[tools/mpfrlint] Added a test detecting (unsafe) macros of the form:
	  #define FOO { ... }
	The following form is preferred in most of the cases to avoid spurious
	null statements:
	  #define FOO do { ... } while (0)

	[tests/tsi_op.c] Fixed a macro. There were no consequences except
	spurious null statements.

	[tests/tset_{si,sj}.c] Style improvements. Added a comment.

	[tests/tset_{si,sj}.c] Fixed macros. There were no consequences except
	spurious null statements.

	[tests] C++ compatibility: avoid errors with "g++ -std=c++11" or later.
	Note that as of GCC 6, "the default mode for C++ is now -std=gnu++14
	instead of -std=gnu++98" <https://gcc.gnu.org/gcc-6/changes.html>.
	So, this fixes the failures in the build of the MPFR tests with g++
	from GCC 6 without particular options.

2016-08-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] mpfr_can_round_raw: added another FIXME.

	[src/round_prec.c] mpfr_can_round_raw: added an assertion, corrected
	a condition in a comment, and added comments, showing a new bug.

2016-08-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tmul.c] Various corrections and improvements in test_underflow.

	[src/mpfr.h] Mark mpfr_grandom as deprecated (this had already been done
	in mpfr.texi r8548).

	[src/mpfr.h] Suggest MPFR_EXPERIMENTAL for experimental functions.

2016-08-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Correction in the info about the C implementation.

	[tests/tversion.c] Corrections in the info about the C implementation.

	[src/sqrt.c] Corrected a bound in the proof of mpfr_sqrt1 (one-limb
	precisions), related to the right shift of a negative value. Added
	a warning and a TODO about such an operation.

	[src/sqrt.c] Enable mpfr_sqrt1 code for one-limb precisions (which
	depends on implementation-defined features of the C standard) only
	when __GNUC__ is defined, as it is known to be correct with GCC and
	compatible compilers, but nothing is known yet for other compilers.
	Removed the corresponding FIXME and added a note. In the future, a
	configure test could be used as an alternative solution.

	[tests/tversion.c] Output more information about the C implementation.

2016-07-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Fixed some portability issues.

	[src/sqrt.c] Fix if mp_limb_t > unsigned long (this fixed failures
	with mingw-w64).

	[src/lngamma.c] Fix in case mp_limb_t is more than twice as large
	  as unsigned long (that would make it at least 128 bits).
	[src/cos.c] Made code similar to the rest of the code.

	[src/div_ui.c] Improved a comment (to make it closer to what correct
	C code should be), avoiding a false positive with mpfrlint.

	[tools/mpfrlint] Detect possibly wrong code with some C/GMP
	implementations, related to shifts and integer types.

	[src/sqrt.c] Completed the FIXME (another portability issue).

	[src/sqrt.c] Added a FIXME. The current code for prec < GMP_NUMB_BITS
	is not portable.

	[src/sqrt.c] Fixed code for implementations with 16-bit int's.

	[tests/tsqrt.c] Fixed output bug in a test.

2016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] speedup for 2 limbs: numactl --physcpubind=0 ./mfv5 -p113 mpfr_mul

	3.1.5-dev:
	 mpfr_mul:          45 /    61.60 /    84

	4.0-dev:
	 mpfr_mul:          30 /    32.15 /    36

	[NEWS] mention that speedup

2016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed bug in mpfr_sub1sp2

	[src/mul.c] removed useless code

	[src/mul.c] code simplification

	[src/sub1sp.c] another code simplification

	[src/sub1sp.c] code simplification

	[NEWS] mention speedup in mpfr_add and mpfr_sub for 2 limbs

2016-07-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] faster code for 2 limbs. Results with mbench
	(numactl --physcpubind=0 ./mfv5 -p113 mpfr_sub):

	3.1.5-dev:
	 mpfr_sub:          36 /    65.33 /    81

	4.0-dev:
	 mpfr_sub:          24 /    33.00 /    36

2016-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tmul.c] fixed wrong test

2016-07-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/reuse.c] Perform each reuse test on 1 to 5 limbs, with a random
	number of trailing bits. This allows one to test code specific to 1 or
	2 limbs.

2016-07-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] fixed issues found with --enable-assert=full

2016-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] new code to deal with p in [GMP_NUMB_BITS+1,2*GMP_NUMB_BITS-1]

2016-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Various minor improvements:
	  * Added a MPFR_ASSERTN since mpfr_can_round is a function in the API.
	  * Changed error variables to be more consistent with the context.
	  * Removed unnecessary code (casts...) about the error: it came from
	    round.c r1574, where types were different at that time.
	  * Made err2 (the old err) local to a small block to make sure that it
	    will not be used by mistake instead of err in future changes.
	  * Made equivalent expressions appear under the same form:
	      (rnd1 == rnd2 || rnd2 == MPFR_RNDN) && err - 2 >= prec

	[src/round_prec.c] Changed precision variables to be like SSA.

	[src/round_prec.c] Simplified code, making it more similar to code
	that has just been fixed.

	[src/round_prec.c] Removed useless parentheses.

	[src/round_prec.c] Added an assertion for "default:".

	[tests/tcan_round.c] In test_simple, output p (which is variable),
	not prec (which is always 4).

2016-07-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/round_prec.c] fixed bug in mpfr_can_round for 2^e when rnd1=rnd2
			   and err > prec + 1 (was returning 0 instead of 1)

2016-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcan_round.c] Added a simple test that fails as a consequence of
	r9883 (this could be observed on tzeta before r10678 in tgeneric.c).

	[tests/tgeneric.c] Improvement: When the result is exact, it can always
	be rounded (while mpfr_can_round can fail).

	[TODO] Updated item about tzeta.

2016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] update (feedback from Bill Hart)

2016-07-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).

2016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mbench/mfv5-mpfr.cc] patch to allow using it with older versions of MPFR (say branch 3.1)

	[src/sqrt.c] fixed mpn_sqrtrem2 for 32-bit limb

2016-07-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tzeta.c] Added a FIXME so that r10667 can be reverted.

	[TODO] Updated item about tzeta.

	[TODO] Added item about the fix of mpfr_can_round in r9883 and tzeta.

	New MPFR_GENERIC_ABI macro to test the generic code, not tied to a
	particular ABI (e.g. GMP_NUMB_BITS value), so that such code has a
	chance to be tested on current machines.
	  * doc/README.dev: added brief documentation.
	  * src/sqrt.c: enable mpfr_sqrt1 (optimization for one-limb precisions,
	    currently when GMP_NUMB_BITS is 32 or 64) only when MPFR_GENERIC_ABI
	    is not defined.

	[src/sqrt.c]
	  * Changed mp_ptr to mpfr_limb_ptr.
	  * Untabified and removed trailing spaces.

2016-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tzeta.c] reduced test time

	[src/sqrt.c] adapted mpn_sqrtrem1 for GMP_NUMB_BITS=32

2016-07-25  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Corrected hint for mingw (use --build instead of --host).

2016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] added hint for mingw

2016-07-25  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

2016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] fixed temporary patch for 32-bit computers

2016-07-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Typo in comment.

	[src/sqrt.c] Updated FIXME's. This is still incorrect with 32-bit limbs.

2016-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] temporary fix for 32-bit limbs

2016-07-22  Vincent Lefèvre  <vincent@vinc17.net>

	Merged r10657 from the trunk, resolving the conflict (same code as
	in the trunk, except RND_RAND changed to RND_RAND_NO_RNDF).

	[tests/tadd.c] Improved coding style and messages (do not mix up
	"inexact flag" and "ternary value"!).

	[tests] Define the RND_RAND_NO_RNDF and RND_LOOP_NO_RNDF macros, similar
	to RND_RAND and RND_LOOP respectively but excluding MPFR_RNDF, to be
	used for tests that don't make sense in the faithful rounding mode.
	Replaced code to use these macros, fixing the remaining failures.

	Merged r10599 through r10628 from the trunk, resolving the conflict
	in tests/tmul.c (i.e. keep code from both the branch and the trunk,
	corresponding to two independent tests). Some of the later changes
	in the trunk (src/sqrt.c) are broken with a 32-bit ABI, so let's not
	merge them for now.

	Merged r10598 from the trunk, resolving the conflict (this consists
	in changing MPFR_PREC to MPFR_GET_PREC).

	Merged r10573 through r10597 from the trunk (no conflicts).

	Merged r10572 from the trunk, resolving the conflict.

	Merged r10571 from the trunk, resolving the conflict.

	Merged r10566 through r10570 from the trunk, resolving the conflict.

	Merged r10556 through r10564 from the trunk (no conflicts).

	Merged r10555 from the trunk, resolving the conflict.

	Merged r10529 through r10554 from the trunk (no conflicts).

	Merged r10528 from the trunk, resolving the conflict.

	Merged r10520 through r10527 from the trunk (no conflicts).

	[src/add1sp.c] The reverse-merge done in r10633 was incorrect. Fixed.

	[src/add1sp.c] Also reverse-merged r10522 (together with related
	whitespace change from r10514), which had nothing to do with the
	faithful rounding. Improvements for 1 limb will be obtained when
	merging the trunk into the faithful branch.

	[src/sqrt.c] Added another FIXME comment for 32-bit machines.

	[src/sqrt.c] Added other FIXME comments for 32-bit machines.

2016-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sqrt.c] Added FIXME comments for 32-bit machines.

	[src/sqrt.c] C90 compatibility.

	[src/sqrt.c] Fixed minor (mainly style) issues found by mpfrlint.

	[tools/mpfrlint]
	  * Added --msg option to err-if-output function to optionally output
	    a message explaining what to do in case of error.
	  * Added this option to 3 err-if-output calls (errors with src/sqrt.c
	    r10636).

2016-07-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sqrt.c] new speedup for 1/2 and 1 limb

2016-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved a sentence.

2016-07-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[faithful] reverse-merge r10524 (had nothing to do with the faithful branch)

	[faithful] reverse-merge parts of r10514 independent of the faithful branch

2016-07-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] mention speedup in mpfr_sqrt

	[src/sqrt.c] faster code for small precision (on tomate.loria.fr, 45 cycles
	for prec=24 instead of 161 before, and 108 cycles for prec=53 instead of
	165 with 3.1.4)

2016-07-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench] Replaced r10505 by r10565 merged from the trunk.

	[doc/mpfr.texi] Improvements in the MPFR_RNDF (faithful rounding) spec.
	Added some notes concerning the reproducibility.

2016-07-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] removed duplicate prototype (cf revision 10625)

	[src/div.c] yet another speedup

	[src/div.c] small improvement

2016-07-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Declare __gmpn_invert_limb if used (in order to avoid
	an error with g++ for the tests).

2016-07-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] removed wrong assertions (and added comments to explain why)

2016-07-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Added a FIXME (assertion failure).

	[src/div.c] Untabified.

	[tools/mpfrlint] Update concerning GMP internals.

2016-07-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] implement use of __gmpn_rsblsh_n (disabled for now)

	[src/div.c] only use __gmpn_invert_limb with --enable-gmp-internals

2016-07-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Require <float.h> to be included in order to be
	  able to use the "long double macros and typedef" part. Moved the
	  IEEE_FLOAT128_MANT_DIG macro definition out of this part.
	[tests/tcmp_ld.c] Added missing #include <float.h>.

	[src/div.c] Added a FIXME as __gmpn_invert_limb is a GMP internal.

2016-07-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] speedup for precision < GMP_NUMB_BITS/2 (by almost a factor 2)

	[src/mul.c] added comment

	[src/div.c] new faster code for 1 limb

	[src/cmp_ld.c] include float.h so that MPFR_LDBL_MANT_DIG is correctly defined
	[src/get_ld.c,src/set_ld.c] added comment

2016-07-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] removed obsolete comment since we no longer use __udiv_qrnnd_ld

	[src/div.c] changed __udiv_qrnnd_ld into __udiv_qrnnd_preinv (no dependency
		    any more on long double)

2016-07-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Do not use __udiv_qrnnd_ld for MPFR_LDBL_MANT_DIG > 64.
	Added a comment about __udiv_qrnnd_ld.

	[src/mpfr-longlong.h] Typo.

	[src/mpfr-longlong.h] C89 compatibility.

2016-07-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/div.c] speedup using __udiv_qrnnd_ld

	[src/mpfr-longlong.h] contributed __udiv_qrnnd_ld variant

	[src/div.c] new special code for 1 limb
	[src/mul.c] fixed corner case near underflow

	[src/mul.c] fixed detection of rounding away

	[src/mul.c] fixed underflow *after* rounding
	[tests/tmul.c] fixed a test

	[tests/tmul.c] added underflow test for directed rounding too

	[tests/tmul.c] added test for underflow after rounding (reveals bug in mul.c)

2016-07-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Clarified comment (it's better not to mention underflow
	before rounding because it is not considered at all in MPFR).

2016-07-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] added comment about underflow before/after rounding

	[src/mul.c] changed MPFR_PREC into MPFR_GET_PREC

2016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] removed a call to MPFR_LIKELY which is unlikely...

2016-07-07  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] i.e. → e.g.

	[src/mul.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).

	[tests/tadd1sp.c] Added tests with EXP(b) < EXP(c), as there are
	  no such restrictions on the exponents for mpfr_add1sp.
	[src/add1sp.c] Fixed mpfr_add1sp when b and c have different signs
	  and EXP(b) < EXP(c).

2016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[NEWS] speedup in mpfr_mul for one limb (minus 1 bit)

2016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mul.c] speed-up of mpfr_mul for 1 limb (1 limb - 1 bit for the result).
		    Results of mbench for 53 bits on Intel i5-4590:

	before:
	 mpfr_mul:          33 /    37.12 /    42
	after:
	 mpfr_mul:          18 /    20.63 /    24

2016-07-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1.c] Corrected a comment as in practice, b and c do not
	necessarily have the same sign (when called by mpfr_sub).

2016-07-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] added assertions

2016-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tadd.c] C++ compatibility.

	[tests/tadd1sp.c] Do not use != 0 on predicate function.

2016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] removed special code for n = 1, now that we have a special
		       function mpfr_sub1sp1

	[tests/tadd.c] revert mpfr_add to test_add

	[src/add1sp.c] fixed two bugs in mpfr_add1sp1

	[tests/tadd1sp.c] added one hard-coded test

	[tests/tadd.c] last commit was wrong

	improved check_overflow()

2016-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/urandom.c] Fixed uninitialized emin for nbits == 1
	(thanks GCC's -Werror=maybe-uninitialized).

2016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/urandom.c] should now be ok for nbits = 1

2016-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Change most mpfr_urandomb to mpfr_urandom in the tests?

	[tests/turandom.c] Improved an error message.

	[tests/turandom.c] Corrected English usage in error message.

	[tests/turandom.c] Small precision check: replaced 2 by MPFR_PREC_MIN.

2016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/urandom.c] fixed urandom for a precision of 1 bit

2016-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] About random tests: avoid mpfr_urandomb!!!

	[tests/tadd1sp.c] Use mpfr_urandom instead of mpfr_urandomb.
	This triggers an assertion failure in urandomb.c.

	[tests/tadd1sp.c] Reordered variables. Removed a redundant test.

	[tests/tadd1sp.c] In check_random, check the flags too.

	[tests/tadd1sp.c] Test negative numbers too.

	Removed trailing spaces.

2016-07-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment

	[src/add1sp.c] removed special cases for n=1 in mpfr_add1sp, now that we have
		       a special routine mpfr_add1sp1

	[mbench/mfv5.cc] added RNDA and fixed typo

2016-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	The rounding mode can now be passed in argument with the -r option
	(patch by Patrick Pélissier).

	Removed MPFR_HOT_FUNCTION_ATTR for mpfr_add1sp1 and mpfr_sub1sp1.

2016-07-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tadd.c] Added FIXME comment: there are many tests, but the
	ternary value and the flags are not tested!

	Functions mpfr_add1sp1 and mpfr_sub1sp1 are called only from the files
	where they are defined, thus can be static.

	[src/add1sp.c] Removed unused variable.

2016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/add1sp.c] new special code for 1 limb. In 3.1.4 we add with mfv5:

	 mpfr_add:          30 /    49.30 /    90

	now we have:

	 mpfr_add:          24 /    28.18 /    30

2016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] added comment

2016-07-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Another improvement (suggested by Paul).

	[src/sub1sp.c] Improved readability. With Debian's gcc-snapshot, this
	is equivalent, and with tcc, the generated code is shorter.

	[src/sub1sp.c] No longer depend on the representation of 0.

	[src/sub1sp.c] Various improvements in the coding style: readability,
	consistency, GNU coding style.

2016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[README.dev] added documentation about mpfr-gfx

	[mbench/mpfr-gfx.c] change of syntax of gnuplot

	[src/sub1sp.c] removed dead code, and improved coverage to 100%

2016-07-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Removed incorrect MPFR_SET_EXP (the value was incorrect
	and the real MPFR_SET_EXP is done later, after underflow checking).

	[tests/tsub1sp.c] Added missing printf arguments.

2016-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/sub1sp.c] fixed some FIXMEs

2016-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1sp.c] Added a FIXME.

	[src/sub1sp.c] Avoid a -Wmaybe-uninitialized warning from GCC
	by declaring a variable as initialized (the code is correct,
	GCC isn't just smart enough).

	Removed trailing spaces.

	Added tools/ck-clz_tab sh script to check the __clz_tab sizes
	(to detect issues like the one fixed in r10542). Run this script
	in dist-hook (Makefile.am) and in mpfrlint.

2016-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	resolved a FIXME

	fixed bug reported by <sisyphus1@optusnet.com.au>

2016-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exceptions.c] Added a comment for mpfr_underflow: historical reason
	for the choice of the behavior with MPFR_RNDN.

2016-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	code simplification (suggested by Vincent)

	speedup of mpfr_sub for same precision < GMP_NUMB_BITS

2016-07-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1sp.c] Corrected indentation.

	[src/sub1sp.c] Added comments.

	[src/add1sp.c] Added comments.

2016-06-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	optimize mpfr_add (and mpfr_sub, not yet finished) for 1 limb

2016-06-29  Vincent Lefèvre  <vincent@vinc17.net>

	Renamed macro MPFR_EXP_LESS_P to MPFR_UBF_EXP_LESS_P.

	[src/add1sp.c] Fixed bug introduced in r10530 when MPFR_WANT_ASSERT >= 2
	(--enable-assert=full).

	[src/add1.c] Re-added the MPFR_ASSERTD. The culprit seems to be r10530.

	[src/add1.c] Reverted r10529, which now fails. That's strange.

2016-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mpfr_add1sp does not assume any more EXP(b) >= EXP(c)

2016-06-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/add1.c] Added a MPFR_ASSERTD.

2016-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	still faster code for 1 limb

	merged r10522 from faithful branch + other special-code for 1 limb:
	the worst case for mpfr_add in 53 limbs decreases from 70 to 60 cycles

	removed leftover debug statement

	added comment that EXP(b) >= EXP(c)

	mpfr_add1sp no longer assumes EXP(b) >= EXP(c): gives small speedup

2016-06-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Changed "hole" to "gap".

2016-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added special code for 1 limb

2016-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	C++ compatibility.

	Merged the latest changes from the trunk.

	[autogen.sh] Treat autoreconf warnings as errors.

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Some improvements. In particular, avoid two successive
	calls to mpfr_cmpabs on the same arguments (the compiler doesn't know
	that it could optimize, as the function is not pure).

	[src/vasprintf.c] Fixed an assertion failure.

2016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed reuse with --enable-assert

	small speedup of mpfr_add for RNDF

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Correction: r10484 didn't take the latest version from
	the trunk in the conflict resolution.

	[src/sum.c] A more efficient way to support faithful rounding, avoiding
	the TMD completely and an assertion failure at the same time.

	Avoid failures in mpfr_mul for MPFR_RNDF with MPFR_WANT_ASSERT >= 2
	(--enable-assert=full) by disabling the comparison with the old
	implementation, which doesn't make sense for faithful rounding.

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	Avoid failures in mpfr_add1sp / mpfr_sub1sp for MPFR_RNDF with
	MPFR_WANT_ASSERT >= 2 (--enable-assert=full) by disabling the
	comparison with mpfr_add1 / mpfr_sub1, which doesn't make sense
	for faithful rounding.

	[Added during the Subversion to Git conversion]
	This commit includes a merge of r10509 from the trunk.

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	Cosmetic change (whitespace).

	Merged the latest changes from the trunk.

	Removed trailing spaces.

	[src/add1sp.c] For MPFR_WANT_ASSERT >= 2 (--enable-assert=full), test
	  the flags too and replaced "mpfr_cmp" by "! mpfr_equal_p".
	[src/sub1sp.c] Make it similar to add1sp.c for MPFR_WANT_ASSERT >= 2.

2016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use macro for the rounding mode used in the tests

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[src/sum.c] Made the code a bit more natural: change of pos to neg
	(an indirect consequence of the support of reused arguments). Some
	other minor related changes.

2016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added more tests for RNDF

2016-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	The support of reused arguments in mpfr_sum is now complete, without
	any visible regressions in the timings (which are unfortunately too
	inaccurate to see anything).
	  * doc/mpfr.texi: removed sentences about the previous limitation.
	  * src/sum.c: removed the corresponding FIXME/TODO comment.

	[tests/tsum.c] Test the support of reused arguments.

2016-06-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	disable mpfr_all_div() for RNDF

	replaced mpfr_cmp by !mpfr_equal_p

	added exhaustive tests for add,sub,mul,div,sqrt

	fixed corner case with RNDF

2016-06-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added a comment for MPFR_RNDRAW_GEN about the use
	of the exponent field of the destination.

	[src/add1sp.c] For MPFR_RNDF, set inexact = 0 (like what is done in
	sub1.c) instead of 1, though this doesn't really matter.

	[src/sub1.c] Fix: the conflict resolution done in r10484 was incorrect.

	[src/add1sp.c] Avoid the use of uninitialized values with MPFR_RNDF.

2016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fix for RNDF

2016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	merged changed from trunk with

	  svn merge '^/trunk'

	(resolved conflict for sub1.c; copied tests/tsum.c from trunk and
	re-incorporated changes from faithful branch)

2016-06-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	src/li2.c: better like this

	src/li2.c: revision 10379 was ok

	fixed mpfr_all_div() for RNDF

2016-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on branch faithful

2016-06-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Coding style: added spaces.

	[TODO] Suggest the use the keyword "static" in array indices of
	parameter declarations with C99 compilers (6.7.5.3p7) when the
	pointer is expected not to be null.

2016-06-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update (GCC trunk → GCC 5).

2016-06-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Copy the significand to the destination after resolving
	the TMD in order to support reused arguments.

	[src/sum.c] Improved a comment.

2016-06-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Corrected a MPFR_LOG_MSG modified in the latest change.

	[src/sum.c] For the future support of reused arguments: TMD resolution
	is now done in a specific TMD accumulator, allocated at the same time
	as the main accumulator. This TMD accumulator currently just takes at
	most 2 limbs in practice, so that's not a problem.
	[doc/sum.txt] Added TODO for things that will change.

2016-06-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Define mpfr_ueexp_t (needed for r10462).

	[tests/tversion.c] Do not use "%zu" with printf (added in r10460).

	[doc/README.dev] Document environment variables that affect the tests.

	Other changes concerning the memory limit for the tests.
	  * Export the tests_memory_limit variable so that it can be accessed in
	    test programs (e.g. read by tversion as mentioned below, or modified
	    by a test program when executed with particular arguments).
	  * In tversion, print a warning when the memory limit has been modified
	    (with the MPFR_TESTS_MEMORY_LIMIT environment variable).

	[tests/memory.c] The MPFR_TESTS_MEMORY_LIMIT environment variable can
	now contain an integer specifying the memory limit for the tests, or 0
	for unlimited, the default still being 2^22 = 4 MB.

2016-06-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Improved check3:
	  * Also do the tests with output precision MPFR_PREC_MIN;
	    this completes the value coverage for tsum.
	  * Also compare the flags.

	Value coverage for tsum: After r9984 to differentiate sq > MPFR_PREC_MIN
	and sq == MPFR_PREC_MIN, 42 tests were not done for sq == MPFR_PREC_MIN
	on a 64-bit machine. In the check4 test, changed a 2 to MPFR_PREC_MIN.
	This reduces to 12 tests that are not done.

2016-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the "ubf" branch into the trunk:
	  * limited implementation of "unbounded floats" (numbers with a mpz_t
	    exponent), which could be completed in the future, in particular to
	    handle intermediate overflows/underflows in polynomial evaluation;
	  * rewrote mpfr_fmma and mpfr_fmms to use them, and added tests;
	  * restored the MPFR 3.1- exponent range for compatibility;
	  * restored some tests that were based on this exponent range.
	The choice for the UBF implementation was to use a compatible structure:
	the same as the mpfr_t one, with an additional field at the end, used
	only when the exponent field _mpfr_exp has some special value. Thus some
	functions such as addition and subtraction just needed minor changes to
	support UBF, and no code was duplicated. This means that on MPFR numbers
	(the usual case), one has a few more tests than before, but with known
	branch probabilities. In practice, this should not be visible, at least
	in most applications. This was more or less confirmed by timings (even
	with many additions/subtractions in low precision, this was difficult
	to say, as timings were influenced by various parameters that we cannot
	control).

	Merged the latest change from the trunk (r10452).

	[tools/mbench/Makefile] Added multiarch support for GMP.

	[src/mpfr-impl.h] Updated a comment (removing a FIXME).

	Merged the latest change from the trunk (r10449).

	[tests/tprintf.c] Removed tests of native %'g and %'f (from r8292)
	as the ' flag is an extension from Single UNIX Specification and
	in particular, they fail with MinGW under Wine.

	Merged the latest changes from the trunk.

	[tests/tlgamma.c] Typo in comment.

	[src/uceil_log2.c] Added a comment. Cosmetic changes.

	[tests/tlgamma.c] Corrected updated comment from r10444.

2016-06-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tlgamma.c] Updated comment of the test added in r10442.

	[src/uceil_log2.c] Correction in __gmpfr_ceil_log2, avoiding an
	incorrect result with tcc: x.s.exp is declared as an unsigned
	bit-field, so that tcc considers that x.s.exp - 1023 is unsigned.
	However, since all the values of x.s.exp are representable in an
	int, according to the integer promotion rules, x.s.exp should be
	converted to an int, so that the subtraction is signed. So, this
	appears to be a bug in tcc.

	[tests/tlgamma.c] Added a test causing a "too much memory" error with
	tcc 0.9.27~git20151227.933c223-1 (there's already one in special(),
	but this one is a simpler, standalone test).

	Merged the latest change from the trunk (r10440).

	[acinclude.m4] When checking if __float128 is available, we now also
	check whether C99 constants (in particular the __float128 ones, such
	as 0x1.fp+16383q) are supported since this is now required with the
	__float128 support.

	Merged the latest changes from the trunk.

	[src/add1.c] Improved a comment about faithful rounding.

	[src/add1.c] The code for faithful rounding (MPFR_RNDF) was not
	avoiding some useless loops needing to know on which side of a
	breakpoint the result is. Quick fix.

	Merged the latest changes from the trunk.

	[src/add1.c] Simplified code: removed fb = 1 since it was already 1
	in the "if (fb > 0)" branch.

	[src/set_float128.c] Fix: removed the divisions by zero, replacing them
	by comparisons with the maximum finite binary128 number. Changes to be
	similar to the handling of infinities in "src/set_ld.c".

	[TODO] Faithful rounding: small correction.

	[TODO] Added "faithful rounding", with information about its definition
	and implementation.

2016-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{fits_intmax.c,fits_s.h}] In comments, fit → fits.

	[src/set_float128.c] Added FIXME comment: The mpfr_set_float128 code
	generates a divide-by-zero exception. Suggest a solution.
	Note: this is detected with "-DMPFR_TESTS_DIVBYZERO -DMPFR_ERRDIVZERO".

	[tests/tset_float128.c] Take into account failures in division by 0
	and absence of signed zeros. Also fixed the code checking the sign
	of 0 (mpfr_sgn cannot be used for that since it returns 0 for ±0).

2016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	RNDF: fixed the fits functions

2016-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest change from the trunk (r10426 fix).

	[src/set_d.c] Added some assertions and fixed a 32-bit shift count
	when GMP_NUMB_BITS == 32.

	Merged the latest changes from the trunk (C++ compatibility).

	[tests/tset_float128.c] C++ compatibility.

	[tests/tlog.c] Added a cast to mpfr_rnd_t for C++ compatibility.

	[tests/tfmma.c] Forgot a cast to mpfr_rnd_t for C++ compatibility.

	[src/add1.c] Completed UBF support. Note: due to the restriction
	on the exponent values, diff_exp does not need to be the unsigned
	integer type mpfr_uexp_t (mpfr_exp_t is sufficient).

	[tests/tfmma.c] Correction.

	[tests/tfmma.c] Test (1/2)x + (1/2)x = x near underflow.

	[tests/tfmma.c] Replaced precision 64 by GMP_NUMB_BITS (to make sure
	that the add1sp and sub1sp conditions are satisfied with the current
	src code, these tests may rely on the fact that there are no trailing
	bits, i.e. that the precision is a multiple of GMP_NUMB_BITS).

2016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added reference for Lambert W function

2016-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{add,sub}.c] Consider UBF numbers as special cases so that
	mpfr_sub1sp and mpfr_add1sp, which do not support UBF, are never
	called on UBF numbers. This should also (very slightly) speed up
	the normal cases.

	[src/mpfr-impl.h] UBF support: added MPFR_IS_SINGULAR_OR_UBF and
	MPFR_ARE_SINGULAR_OR_UBF macros.

2016-06-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	declare prec in unsigned long

	RNDF: specified the fits functions

	RNDF: fixed tfactorial

2016-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	C++ compatibility (corrected).

2016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	RNDF: fixed texp2

	avoid mpfr_printf in tests

	C++ compatibility

	suggestion from Vincent

	RNDF: fixed texp10 and tgeneric

	RNDF: fixed mpfr_sum and tsum

	RNDF: fixed texp

2016-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmma.c] Added test cases where the precision of the result
	is twice the precision of each input, which can currently involve
	add1sp.c and sub1sp.c code.

2016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	RNDF: partially fixed texp

	RNDF: fixed tcot

	RNDF: fixed tcos

	RNDF: fixed tconst_pi

	RNDF: fixed li2 and tconst_log2

2016-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

	[src/exceptions.c] Fixed the MPFR_LOG_FUNC in mpfr_underflow and
	mpfr_overflow (x is not an input in these functions).

	[src/sub1.c] In r10347, logging was introduced instead of #ifdef DEBUG
	and printf. Removed 2 MPFR_LOG_VAR, as the variable is not normalized
	yet. Re-added #ifdef DEBUG for the MPFR_LOG_MSG's since this may be
	too low level and not much useful except in case of bugs.

2016-06-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	RNDF: fixed issue with Bessel functions for large arguments

2016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added description of flags for RNDF

2016-05-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Forgot a \n in a log message.

2016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed typos

2016-05-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Completed UBF support.

	Merged the latest changes (in particular the fix in sub1.c) from the
	trunk.

	[tests/tsub.c] Added comments for check_max_almosteven (latest
	test case, added in r10383).

2016-05-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on the faithful branch

2016-05-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Fixed bug in mpfr_sub1 (real subtraction a = b - c, with
	  |b| > |c|): In MPFR_RNDN (round-to-nearest mode), when
	    * |b| is the midpoint between the maximum finite number in the
	      precision of a and 2^emax (the maximum finite number + 1 ulp),
	      which is possible only if PREC(b) > PREC(a),
	    * c is small enough (i.e. no overlap with a and b),
	  mpfr_sub1 returns an infinity (with overflow flag set) instead of
	  ± the maximum number (no overflow). The cause is that an overflow
	  is generated too early, in an intermediate rounding.
	[tests/tsub.c] Added test cases.

	[tests/tfmma.c] Forgot a \n in printf.

	[tests/tfmma.c] Added overflow tests that trigger an assertion failure
	in sub1.c (because UBF support is not complete yet).

2016-05-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	start implementing RNDF (work in progress)

2016-05-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/log_ui.c] Changes for ISO C90 compatibility.

	[src/mpfr-gmp.h] For _MPFR_IEEE_FLOATS, changed bit-field type from
	unsigned long, which is implementation-defined, to unsigned int.

	[src/log_ui.c] Added an assertion.

	[src/mpfr-impl.h] Fixed bug introduced in r10327, giving:
	error: ISO C does not allow extra ';' outside of a function [-Wpedantic]

2016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improved mpfr_log_ui

	added comment

2016-05-25  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] mpfr_ai efficiency: also mention mpfr.texi (the issue with large
	arguments has always been documented).

	[TODO] mpfr_ai efficiency: mention tests/tai.c (the REDUCE_EMAX was
	added in r6734).

2016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added item about efficiency of mpfr_ai for large arguments

2016-05-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Also clarified the use of "configure".

	[doc/README.dev] Clarified the use of "autogen.sh".

2016-05-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use autogen.sh

	added libtoolize (needed for AX_PTHREAD)

2016-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tlog_ui.c] Improved a test function.

	[acinclude.m4] Fixed the use of m4_pattern_forbid: the argument must
	be quoted, otherwise the macro is expanded when defined.

2016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	small improvements to log_ui (still slower than log for large precision)

2016-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Detect whether the AX_PTHREAD macro is left unexpanded.

2016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use rounding to nearest by default in "tconst_log2 prec"

	minor changes to allow ./tlog xxx prec

	added generic tests for mpfr_log_ui + compare with mpfr_log

2016-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sub1.c] Started to add UBF support (still incomplete).

	Merged the latest changes from the trunk and removed the remaining
	_MPFR_PROTO of UBF functions.

	Removed _MPFR_PROTO with the following Perl script on the .h files.
	  while (<>) { if ($c) { die if /_MPFR_PROTO/; s/^( {$c}) */$1/;
	  s/\) *\)/)/ and undef $c } elsif (s/^(.*)(_MPFR_PROTO *\()\(/$1(/)
	  { s/\) *\)/)/ or $c = 1 + length $1 } print }

	[configure.ac] Re-added AM_PROG_AR in case Microsoft lib.exe is used
	(without this, "automake --warnings=all" gives a warning).

	[acinclude.m4] Replaced the obsolete ACX_PTHREAD by AX_PTHREAD
	(done with "autoupdate acinclude.m4").

	[configure.ac] Moved LT_INIT near the top for --enable-lto, and removed
	AM_PROG_AR (no longer needed as done by LT_INIT) and AC_PROG_RANLIB
	(obsoleted by LT_INIT).

	Avoid some warnings with "gcc -Wundef".

	[configure.ac] Removed a FIXME fixed in r4482.

	[src/mpfr-longlong.h] Update from GMP 6.1.0.

	[src/mpfr-cvers.h] Fixed typo in a macro (thanks to Patrick Pélissier).

	[src/sub1.c] Various minor improvements:
	  * Some changes related to the exponents and diff_exp.
	  * Coding style + use of IS_POW2.
	  * Use logging instead of #ifdef DEBUG and printf.

2016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed too aggressive MPFR_LIKELY/MPFR_UNLIKELY (see README.dev)

2016-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	Added optional LTO support (from a patch by Patrick Pélissier).

	Corrected mpfr_free_cache behavior when WANT_SHARED_CACHE is defined
	to make it consistent with the behavior when WANT_SHARED_CACHE is not
	defined (patch by Patrick Pélissier).

	[src/vasprintf.c] Output the sign of UBF like with infinities.

	[tests/tfpif.c] Correction on r10338: use src_fopen instead of fopen
	and check fp (just like with FILE_NAME_R).

	[tests/tfmma.c] Completed near_overflow_tests (there's still a crash,
	this time really in fmma.c).

	[tests/tfmma.c] Added near_overflow_tests, which crashes.

2016-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new (read-only) test file for mpfr_fpif_import

	added tests for mpfr_fpif_import with precision > MPFR_PREC_MAX

2016-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk.

	Updated NEWS about shared caches.

	MPFR 3.2(.x) → 4.0(.x)

	[NEWS] New function mpfr_buildopt_sharedcache_p in MPFR 3.2.
	[doc/mpfr.texi] New function mpfr_buildopt_sharedcache_p. Minor changes.

2016-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] About the MPFR_DECL_INIT_CACHE macro:
	  * Added a FIXME comment about a possible warning due to a missing
	    field initializer; suggest 2 possible solutions.
	  * Improved code readability.

	[src/free_cache.c] Avoid duplicated source code for maintainability.

	[doc/mpfr.texi] Corrections about caches.

	[src/mpfr-thread.h] For #error, use a string literal as a single
	preprocessing-token.

	[src/mpfr-thread.h] Coding style.

	Minor comment & coding style corrections on r10327.

	Added shared cache support (from a patch by Patrick Pélissier).

2016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added tests for mpfr_fpif in precision 1

2016-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	More UBF support:
	  * mpfr-impl.h, ubf.c: added mpfr_ubf_zexp2exp function.
	  * add1.c: support the case where b (the first input) is an UBF.

	[tests/tfmma.c] Added max_tests.

	[src/ubf.c] Memory leak in some case.

	Added UBF support for mpfr_cmp2.

	ABS(SIZ(x)) → ABSIZ(x)

	[src/ubf.c] Support reduced exponent range in mpfr_get_zexp.

2016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	redefine mpfr_init_set_xxx with mpz_t pool, otherwise the pool is not
	used for those calls

2016-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	Started to implement unbounded floats (UBF) and added support in some
	existing functions.

	Also reverse-merge r9960 (due to the previous ones).

	Also reverse-merge r9958, r9961 and r9962 (due to the previous ones).

	First, reverse-merge r9975 and r9957 (whose only purpose was for fmma,
	but changed the exponent range and still had various issues).

2016-05-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment about MPFR_MY_MPZ_INIT

2016-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.

	[src/vasprintf.c] Code simplification.

	[src/vasprintf.c] Replaced a comment by a MPFR_ASSERTD.

	[src/print_raw.c] Changes for mpfr_print_binary / mpfr_dump:
	  * Support out-of-range exponents as this function is mainly for
	    debugging purpose (TODO: add some warning for such exponents).
	    See: https://sympa.inria.fr/sympa/arc/mpfr/2016-01/msg00061.html
	  * Support _MPFR_EXP_FORMAT == 4 (format used for testing).

2016-05-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmma.c] Corrections and improvements in random_test.

	[tests/tfmma.c] Replaced mpfr_cmp by the stronger mpfr_equal_p.

	[tests]
	  * tadd_ui.c: clean-up (a boolean test doesn't need "!= 0").
	  * tsub_ui.c: check that the NaN flag is set on NaN.

	[src/mpfr-impl.h] Added IS_SIGNED macro to check whether an integer type
	(after integer promotion) is signed; and use it for MPFR_EXP_IN_RANGE.

2016-05-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ui_sub.c] Improved code style and assertions, making mpfr_ui_sub
	more like mpfr_add_ui and mpfr_sub_ui. Added comments.

	Partly rewrote mpfr_add_ui and mpfr_sub_ui (more similar to the
	mpfr_ui_sub code), solving the failures.

	[tests/tgeneric.c] Check NaN argument, mainly in order to check the NaN
	flag when the result is NaN (almost all cases). This makes both tadd_ui
	(ignoring the new test done in r10298) and tsub_ui fail.

2016-05-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added test case for bug reported by Rob (sisyphus1@optusnet.com.au)

2016-05-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fmma.c] Added FIXME comments.

2016-05-18  Vincent Lefèvre  <vincent@vinc17.net>

	Added MPFR_EXP_IN_RANGE macro, and replaced some tests to use it.

	[src/fma.c] Minor code simplification.

2016-05-17  Vincent Lefèvre  <vincent@vinc17.net>

	Improved code related to mpfr_set_exp_t:
	  * Define MPFR_EXP_LIMB_SIZE macro (size of mpfr_exp_t in limbs)
	    and use it.
	  * src/pow.c: replaced a mpfr_init2 by MPFR_TMP_INIT1.

2016-05-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment about printing decimal floats

2016-05-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Minor improvements.

2016-05-12  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Added a comment about GMP CC/CFLAGS detection.

	[configure.ac] Better GMP CC/CFLAGS detection (based on a patch by
	Patrick Pélissier).

2016-05-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	add -P option to cpp when detecting CC/CFLAGS in gmp.h (workaround for gcc-5)

2016-05-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/Makefile.am] Reverted the change done in r10283 as the mpfr.info
	  file was always rebuilt.
	[Makefile.am] Execute check-typography from dist-hook instead.

	[Makefile.am] Add doc/check-typography to the tarball as it is needed
	  to rebuild the mpfr.info file if the mpfr.texi file is modified.
	[doc/check-typography] Added copyright notice and explanations.

	[doc/check-typography] Removed useless parentheses.

	Detect typography ambiguities in doc/mpfr.texi ASAP: to avoid errors
	due to implicit rules, it is better to explicitly make clear whether
	a punctuation mark ends or does not end a sentence.
	  * Added doc/check-typography sh script to detect such typography
	    ambiguities.
	  * doc/Makefile.am: automatically execute this script before mpfr.info
	    is rebuilt; fail with explanations in case there are ambiguities.
	  * doc/mpfr.texi: avoid typography ambiguities.
	  * tools/mpfrlint: replaced the old typography check by a call to the
	    check-typography script (which does more checks).

	[doc/mpfr.texi] Typographic correction on the latest addition.

	[doc/mpfr.texi] The MPFR_ and mpfr_ prefixes are reserved for MPFR.

2016-04-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Clean-up.

2016-04-21  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved the GMP CC/CFLAGS detection: the test for $cpp
	was not checking whether gmp.h could actually be included, so that the
	code was outputting "yes" even when gmp.h was not installed.

	[NEWS] Added: Limited pkg-config support.

	Added pkg-config support (patch from Kip Warner + some changes).

2016-04-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	typo

2016-04-20  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Improved warning message for the "long double" test.

	[configure.ac] "double format" test: changed the AC_MSG_ERROR (when
	not recognized) to AC_MSG_WARN (like with long double).

	[configure.ac] No longer include <stdint.h> in the "double format" test
	(it is unnecessary and doesn't exist everywhere).

	[acinclude.m4] Typo.

2016-04-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Updated a comment about Cygwin and Unix.

2016-04-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Fixed bug triggered when the command for err-if-output
	has empty arguments (this does not occur yet).

2016-04-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Output the status of the __GMP_LIBGMP_DLL and
	MPFR_WIN_THREAD_SAFE_DLL macros (since unreliable consistency checks
	have been removed in r10260).

	[src/mpfr-impl.h] Removed the detection of possible inconsistencies
	under Unix because the tests could yield spurious errors with Cygwin32
	or other similar implementations. Moreover, such tests were used for
	debugging purpose or to detect potential problems in the environment,
	thus were not really useful for the end user. They were initially
	added in the win-thread-safe-dll branch (r9682, following a problem
	found in r9680). One alternative for checking by the MPFR developers
	would be to output the status of some internal macros in tversion.

	[tools/mpfrlint] Use err-if-output also for external checkers.

	[tools/mpfrlint] Better choice of a variable name.

2016-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	revert changeset 10255

2016-04-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint]
	  * Switched to zsh.
	  * Much more meaningful error messages.
	  * Fix: in the mpfr.texi punctuation test, ignore the comments.

2016-04-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patch for Cygwin (cf https://trac.sagemath.org/ticket/20380)

2016-04-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2016-04-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Document mpfr_dump (which has always been there).
	[src/dump.c] Added a comment (with TODO).

	Replaced various instances of mpfr_print_binary + newline (sometimes
	missing) by mpfr_dump.

	[tests] Fixed typo in error messages.

2016-04-01  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Mention ISO/IEC JTC 1/SC 22/WG 21 N3060 (C++ special functions).

2016-03-29  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Removed incorrect note about NetBSD/alpha: The configure
	script distributed with the MPFR 3.1.4 tarball does not contain anything
	related to the -mieee GCC option; this just seems to be a particular
	pkgsrc issue for NetBSD:
	  http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/mk/platform/NetBSD.mk?rev=1.48&content-type=text/x-cvsweb-markup
	  https://www.google.fr/search?q=pkgsrc+%22mieee%22
	where -mieee is added. The -mieee-with-inexact option added in the MPFR
	3.1 branch might yield the same error with the buggy GCC versions, but
	this is now obsolete in the trunk (the code was removed in r10152).

2016-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added note about NetBSD/alpha

2016-03-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Added a summary of the timings, copied from:
	  ^/misc/sum-timings/results/ReadMe@10244

2016-03-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Updated comment of bug20160315 after fix in 3.1 branch.

	[tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c
	for MPFR 3.1.4 but does not appear in the trunk).

2016-03-14  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Some clarification in the TMD case.

	[doc/sum.txt] Added a proof that the choice for the size ts of the
	temporary area is sufficient.

	[doc/sum.txt] Replaced e by ε for the error (e is already used).

	[doc/sum.txt] Update about t' in the error analysis.

	[doc/sum.txt] More about the notion of exponent in two's complement.

2016-03-13  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Update about sum_raw (with a correction of a typo).

2016-03-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Rewrote paragraph about limitations.

	[src/sum.c] Corrected comment: 32/64-bit machine → 32/64-bit ABI.

	[src/sum.c] Use UPDATE_MINEXP when necessary; added comments.

	[src/sum.c] Added a comment about corner cases involving huge
	precisions, which should never occur in practice.

	[src/sum.c]
	  * Added some MPFR_ASSERTD that correspond to properties used in the
	    proof corrected in doc/sum.txt r10221.
	  * Added a test for corner cases that will/can probably never occur
	    in practice.

	[doc/sum.txt] Improved explanations and corrected a proof.

	[doc/sum.txt] Added a figure.

	[doc/sum.txt] Clarifications.

2016-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] GMP → the current version of GMP (6.1.0).

	[doc/sum.txt] Another clarification.

	[doc/sum.txt] Clarification about a reiteration in sum_raw with
	explanation closer to the code.

	[src/sum.c] Clarification of comments about "sum.txt".

	[src/sum.c] Added comments and an MPFR_ASSERTD for sum_raw().

	[doc/sum.txt] Clarification.

	[doc/sum.txt] Update (mainly related to two's complement).

	[INSTALL] More information about MinGW and __USE_MINGW_ANSI_STDIO.

2016-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Corrected 2 typos found by PZ.

	[doc/sum.txt] Added commas.

	[doc/sum.txt] Added info about an exact zero result and IEEE 754 / 1788.

	[doc/sum.txt] A bit more about the choice of two's complement for the
	accumulator.

	[doc/sum.txt] Explanation concerning the choice of two's complement for
	the accumulator.

2016-03-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update about MinGW and __USE_MINGW_ANSI_STDIO.

	[INSTALL] Some improvement about MinGW and __USE_MINGW_ANSI_STDIO.

	[TODO] With MinGW, build with -D__USE_MINGW_ANSI_STDIO by default?

2016-03-03  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved --help messages for decimal-float and float128
	(a bit like what was done for thread-safe).

2016-03-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	updated NEWS for decimal floats and __float128

	set --enable-float128 to "autodetect" by default (like --enable-decimal-float)

2016-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] For testing the lack of subnormal support.

	[acinclude.m4] Also fixed the test for subnormal double-precision
	numbers, in case an extended precision / exponent range is used
	(however the test is not guaranteed with non-conforming compilers).

	[acinclude.m4] Fixed test for subnormal single-precision numbers.

2016-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added a separate configure test for subnormals in the "float" format

2016-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4,configure.ac] Various fixes in error messages.

	[TODO] Update ICC detection.

2016-03-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	autodetect support for decimal floats (as suggested in revision 10179)

2016-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ieee_floats.h] Comment update.

	[tests/tversion.c] Another improvement, just in case Clang no longer
	defines __GNUC__ in the future.

	[tests/tversion.c] Improved output of compiler information.

	[src/ieee_floats.h] No longer use a NaN memory representation because
	it was fixed thus could be either a qNaN or a sNaN, depending on the
	machine. Moreover the choice is to generate a qNaN, in particular due
	to lack of sNaN support by compilers.

	Do not build with decimal float by default as it is not standard
	(a better behavior could be to auto-detect).

	Updated comments about DBL_NAN, dbl_nan.d and qNaN / sNaN encoding.

	[src/get_flt.c] Updated FIXME comment: idea of a solution...

	[src/get_flt.c] FIXME: The code assumes the IEEE-754 binary32 format
	with subnormal support.

	[tests/tget_flt.c] Do tests that may involve subnormals only
	if HAVE_DENORMS is defined.

2016-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_*.c] Use the DOUBLE_ISNAN macro for _Decimal64, __float128 and
	long double like what is done for double; on platforms where d != d is
	not wrongly optimized to false, this should not change anything. Also
	added some MPFR_UNLIKELY for special cases of _Decimal64 and __float128,
	as this is already done for double and long double.

	[tools/mpfrlint] Detect some uses of "x != x" and "x == x".

2016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	recognize icc (which might define __GNUC__)

2016-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added a comment about non-IEEE-754 environment.

2016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	HAVE_DOUBLE_IEEE_LITTLE_SWAPPED is not supported

2016-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Quote the argument of all AC_MSG_RESULT and AC_MSG_ERROR
	when it is longer than a word, as already done in most cases (this is
	safer in case we modify the text and add a comma).

	[tests/tset_float128.c] Better cast.

2016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use DOUBLE_ISNAN() instead of f == f

	updated

	updated paragraph on AIX/PowerPC

	added more details in case of error

	harmonize configure message against GMP

	updated with mpfr-3.1.4-rc2

	fixed detection of "double" format, and removed
	HAVE_DOUBLE_IEEE_LITTLE_SWAPPED, since we have no machine to test it

	removed leftover debug statement

2016-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	Removed "The IEEE code for double needs GMP internal files." from
	doc/README.dev as this is no longer the case since r10150.

2016-03-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	speedup in mpfr_set_d and mpfr_get_d

	improved detection of decimal floats
	removed (obsolete?) #define XDEBUG in mpfr-gmp.h

2016-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Removed old code for Alpha (as suggested by Paul).
	It was no longer tested.

	[configure.ac] Added a FIXME comment about a possible misuse of
	AC_RUN_IFELSE programs that can return several values.

2016-02-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	get rid of dependency from GMP for _GMP_IEEE_FLOATS and ieee_double_extract
	enable decimal float by default

2016-02-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Also detect the use of ASSERT_ALWAYS (forbidden).

	Replaced the remaining ASSERT_ALWAYS by MPFR_ASSERTN.

	[NEWS] Removed a useless note (as the ABI has already changed).

	[NEWS] Update about MinGW: "Added support for thread-safe DLL" as
	this was more than a fix of the test suite with r9684,9778.

	[NEWS] Added "MinGW: Avoid failures in the test suite for shared builds
	with TLS." (fix in r9891).

	[INSTALL] Removed an obsolete sentence about MinGW and shared builds
	with TLS (the failures in the test suite were avoided in r9891).

	[tests/Makefile.am] Comment update.

2016-02-25  Vincent Lefèvre  <vincent@vinc17.net>

	About "config.h" inclusion: code consistency; removed obsolete comment.

	[tests/tversion.c] Output availability of intmax_t/uintmax_t based
	functions and *printf functions.

	[src/printf.c] Added a blank line for more readability.

	[doc/README.dev] Added a note about the "config.h" inclusion.

	[tests/tversion.c] Let's group the features together.

	[tests/tversion.c] Output support status of modifiers in gmp_printf.

	Added mpfr_buildopt_float128_p function.

	[doc/mpfr.texi] Removed old comments.

2016-02-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_str.c] Correction (with no noticeable effect).

	[tools/mpfrlint] For codespell, skip the openout.* files, which are
	created by "make pdf".

	[src/sum.c] Minor FIXME comment update.

	[doc/sum.txt] Updated introduction.

	[tools/announce-text] Check the files on the mpfr.org web server.

	[tools/announce-text] Added a comment.

	[tools/announce-text] Update for release candidates.

	[doc/mpfr.texi] Fixed a warning with "make info".

	Added tools/ck-news Perl script to check the NEWS file.
	In Makefile.am:
	  * run this script in dist-hook for "make dist";
	  * added this script to EXTRA_DIST as it is used in dist-hook.

	[tools/announce-text] Take into account $vers setting.

	[tools/announce-text] Replaced MD5 by SHA256.

2016-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/update-version] Correction for new perl versions.

2016-02-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	unified description of mpfr_eint

2016-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{cmp_d.c,cmp_ld.c}] Bug fixes: mpfr_cmp_d (resp. mpfr_cmp_ld) was
	setting the NaN flag when the double (resp. long double) was a NaN and
	could return an incorrect result (assertion failure in debug mode) in
	reduced exponent range.

	[tests/{tcmp_d.c,tcmp_ld.c}] Added a test in reduced exponent range.

	[tests/{tcmp_d.c,tcmp_ld.c}] Full test of the flags for NaN → failure.

	[tests/{tcmp_d.c,tcmp_ld.c}] GNU coding style.

	[tests/tcmp_d.c] GNU coding style.

	[doc/sum.txt] Update about the suggestion to split the inputs for
	Demmel's algorithm.

2016-02-22  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added a reference to the build-multi script.

	Removed the tools/build-multi script (already in ^/misc).

	Added tools/build-multi zsh script to build and install multiple MPFR
	versions, and add XML library descriptors for ABI Compliance Checker.

	[tests/tagm.c] Also do the test with a = b in precision 2 (since the
	same bug occurs in the 3.1 branch, which doesn't support precision 1).

2016-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed error analysis for gamma_inc continued fraction

2016-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmod.c] Test that triggers the bug fixed in r10054: run it
	also in the extended exponent range in order to make the test fail
	when ported to the 3.1 branch.

	[tests/tfmod.c] Renamed a variable since it is not always NaN.

	[tests/tfmod.c] Added a test that triggers the bug fixed in r10054
	without relying on test_generic failure.

2016-02-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added references in comment

2016-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added error analysis for gamma_inc with continued fraction (to be reviewed)

2016-02-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt,src/sum.c] mpfr_sum: added support for precision 1.

2016-02-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more precision about gamma_inc

	added reference to series for incomplete gamma function

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added tests for negative integer a

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmod.c] Do not use a variable named nan to avoid confusion
	with the nan function of C99 (and possible obscure failures in the
	future, if we include <math.h>).

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added reference to gamma_inc(-n,x) for current code

	added test to exercise bug fixed in revision 10056

	fixed one test

	fixed bug in mpfr_agm in case a=b but result cannot be exactly represented
	in the target precision: ternary value was wrongly set to 0

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing spaces.

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	reduce the time of tgamma_inc

	fixed the number of special tests for 2-argument functions

	fixed stupid error in revision 10054

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Removed mpfr_sum_sort declaration, as this internal
	function had been removed in r9370.

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	avoid computing with huge integers in mpfr_fmod when x/y is very small

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Update about the old mpfr_sum implementation.

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	Clarify the status of mpfr_gamma_inc for the MPFR 3.2 release.

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgeneric.c] Fixed a typo in latest commit, and added min/max
	and max/min special tests for functions with 2 arguments.
	This triggers a failure in tfmod on 64-bit machines at least.

	[src/gamma_inc.c] Improved assertions.

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	now mpfr_gamma_inc(a,x) also works for 'a' a negative integer
	(however a and x should not be too large, we should implement
	Legendre's continued fraction for the general case)

	fixed issue in mpfr_eint

2016-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma.c] Added another assertion.

	[src/gamma.c] Added assertions and a comment.

	[src/gamma.c] Removed useless saved_flags as flags are already saved
	by MPFR_SAVE_EXPO_MARK. Removed the comment about about emin/emax as
	emin <= 2 <= emax may not be sufficient (or may be suboptimal).
	After all, MPFR_SAVE_EXPO_* is the usual thing to do...

2016-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	previous commit was incomplete

	fixed bug in mpfr_gamma: flags might be corrupted in case the argument was
	an integer fitting in an unsigned long

2016-02-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update about patches.

	[tests/troot.c] Compare root(x,2^h) with pow(x,2^(-h)).

	Added bad_cases tests for mpfr_pow_ui and mpfr_pow_si.

	Added bad_cases tests for mpfr_root.

	[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions
	in a reduced exponent range and debug mode for non-integer numbers
	just above the positive limit.

	[tests/tfits.c] Check a non-integer number just below a power of two.

	[tests/tfits.c] Also run the tests in reduced exponent range.

	[tests/tfits.c] Added tests of non-integer values near the type limits.
	This triggers a flags failure for src/fits_* r9649, corresponding to
	the bug fixed in r9650 (there were no tests for this bug yet).

	[tests/tfits.c] Increased code reuse so that tests could be improved
	more easily (not everything is tested yet).

2016-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tconst_log2.c] Correction for C++ compilers.

	[tests/tcan_round.c] Correction for C++ compilers. Code formatting.

	[src/div.c] Coding style.

	[src/div.c] Added a TODO for value coverage tests.

	[doc/mpfr.texi] Added a comment about mpfr_gamma_inc.

	[tests/tgamma_inc.c] Added a TODO.

	[src/gamma_inc.c] Detect internal overflow in order to avoid taking
	all the memory of the machine, but it is currently not supported:
	assertion failure. This was occurring with a = 2^32 and x = 2^(-32)
	on 32-bit machines (see change in r10019).

2016-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	reduced a test with large arguments

2016-02-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma_inc.c] Improved type consistency to avoid integer overflow.

	[src/gamma_inc.c] Added some assertions to detect integer overflow.

	[tests/tgamma_inc.c] C++/C99 comment → C89 comment.

	[src/gmp_op.c] Fixed an assertion that made tgmpop fail on 32-bit
	machines (it became wrong with r9964 and --enable-assert).

2016-02-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Added a FIXME for precision 1 (recently added).

2016-02-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added formula for gamma_inc(-n,x)

2016-02-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed item about speeding up const_euler: done since now for x=1.1,
	prec=16610, mpfr_const_euler takes only about 40% of the total time.
	For x=1.1 and prec=100000 it takes only about 14% of the total time.

	fixed the call to mpfr_eint() in gamma_inc, added some tests for gamma_inc

	now mpfr_eint() returns -E1(-x) for x < 0

2016-02-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/eint.c] Fixed eint(-inf).
	[tests/teint.c] Added a corresponding test.

	[src/si_op.c] Unified coding style and added logging.

	[src] Moved si ops from mul_ui.c, div_ui.c and ui_div.c to si_op.c.

	[src/ui_div.c] Fixed bug in mpfr_si_div when the integer is LONG_MIN,
	visible when using an UB sanitizer (see r9999).
	Note: this integer value is not tested yet in the test suite due to
	the lack of generic tests for mpfr_si_div.

	[tests/{tgeneric.c,tsi_op.c}] Added TODO.

	[src/{div,mul}_ui.c] Fixed bug in mpfr_div_si and mpfr_mul_si when the
	integer is LONG_MIN, visible when using an UB sanitizer (see r9999).

	[tests/tgeneric_ui.c] Added tests of the extreme integer values,
	so that tsi_op fails with a runtime error in si_op.c r9998 when
	using an UB sanitizer (bug fixed in r9999).

	[src/eint.c] Code simplification.

	[src/si_op.c] Fixed bug in mpfr_add_si, mpfr_sub_si and mpfr_si_sub
	when the integer is LONG_MIN, visible when using an UB sanitizer.

	[src/si_op.c] Code formatting.

	[tests/teint.c] Added a test that triggers a runtime error
	at si_op.c:42:31 on an x86-64 Linux machine, using:
	  CFLAGS="-fsanitize=undefined -fno-sanitize-recover"

	[doc/mpfr.texi] Typographic correction.

	[tools/mpfrlint] Avoid false positives in mp_exp_t check.

	[src/eint.c] Updated a FIXME (mpfr_set_exp_t was added in r4333 and
	completed in r5455), with typo from r6789 corrected.

	[doc/mpfr.texi] Updated Section "API Compatibility / Changed Functions":
	mpfr_eint changed in MPFR 3.2.

2016-02-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	update NEWS/TODO with respect to E1

	oops, eint(x) was wrong for negative x with |x| >= 0.5

	now mpfr_eint(x) returns E1(x) for negative x

2016-02-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Correction (spelling).

	[tests/tsum.c] Clarified a bit more.

	[tests/tsum.c] Added explanations concerning the check1 test.

	Value coverage for tsum: reduce output length.

	Value coverage for tsum: differentiate sq > MPFR_PREC_MIN and not.

2016-02-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Source on 80 columns.

2016-02-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	extended the check1() test, gives failure on 64-bit processor

	fixed note

2016-02-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on gamma_inc

	note about memory usage

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma_inc.c] Corrected protection against integer overflow
	(MPFR_PREC_IN_RANGE is just for debug mode).

	[src/gamma_inc.c] Added protection against integer overflow
	(i.e. abort instead of getting incorrect results).

2016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on gamma_inc (only remains the case a=0 and x>0 to implement)

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing spaces.

	[tests/troot.c] In exact_powers, check negative values too.

	[src/root.c] Code simplification.

	TODO update for fmma.

2016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	reduced emax

	added a test for exact powers for mpfr_root
	and fixed mpfr_root for negative x (and odd k)

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/root.c] Corrected(?) the check for exact root by adding an
	exactness test for the inverse operation z^k (if unnecessary, it
	needs to be properly proved and documented).

	[src/root.c] Corrected a comment.

	[src/root.c] Some minor changes. Updated comments.

2016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	check for an exact root in mpfr_root_aux

	fixed bug in mpfr_root and inefficiency problem with large k

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] For MPFR_IS_PURE_FP(x), when x is a pure FP number,
	check that EXP(x) is in the current exponent range (debug mode).

	[src/exceptions.c] Some changes concerning mpfr_check_range:
	  * Added a note about the case EXP(x) < MPFR_EMIN_MIN.
	  * Do not use the MPFR_IS_PURE_FP() macro as this macro assumes that
	    if the number is not a singular number, then it is really a pure
	    FP number (some assertion checking may be done in debug mode),
	    but this is not necessarily the case here.
	  * Removed an incorrect comment and re-added the MPFR_UNLIKELY for
	    the cases where EXP(x) is outside the exponent range. Indeed,
	    mpfr_check_range is called at the end of most functions, and
	    in most cases, there are no underflows / overflows.

	[tests/texp.c] Added FIXME, as the overflow test, which was specific
	to the 32-bit ABI, is no longer run.

	[tests/tacosh.c] Added a FIXME (huge values no longer tested at all).

	[src/fmma.c] Removed unused code.

2016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added code to compare mpfr_root with exp(log(x)/k)

	reduce MPFR_EMAX_DEFAULT by 2, and modify some tests cases assuming
	MPFR_EMAX_DEFAULT=2^30-1

	fixed fmma failure

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp.c] Simplified exponent range setting in special case.

2016-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed test_generic() calls to start from MPFR_PREC_MIN instead of 2;
	this revealed a special-case code in mpfr_exp which didn't work for prec=1

2016-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] Do the significand parity test only for precision > 1.

2016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	updated NEWS and mpfr.texi for MPFR_PREC_MIN=1

	MPFR_PREC_MIN is now 1, in accordance with the next revision of IEEE-754
	fixed tests to start at MPFR_PREC_MIN instead of hard-coded value of 2

	fixed test which was assuming MPFR_PREC_MIN=2

	fixed to correctly check prec=1

	prepare for MPFR_PREC_MIN=1

	fixed tcheck for MPFR_PREC_MIN=1

	prepare mpfr_pow to work for precision 1

2016-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Mention the Caramba project-team.

	Replaced
	  Contributed by the AriC and Caramel projects
	by
	  Contributed by the AriC and Caramba projects

2016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment about gamma_inc

2016-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma_inc.c] Added assertions.

2016-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on gamma_inc

	fixed some special values for gamma_inc

2016-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] FIXME: Clarify the status of mpfr_gamma_inc for
	the MPFR 3.2 release.

2016-02-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	completed "Added Functions" section

2016-02-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Typographic correction.

	[src/div.c] Fixed bug introduced in r9902 and visible in the tests
	on 32-bit machines.

	[src/root.c] Added TODO for code rewrite (discussion between VL and PZ).

	[tests/troot.c] Also check that root(0,0) is NaN to make sure that such
	special cases are considered in the right order in the implementation.

	[doc/mpfr.texi] Completed mpfr_root description: the 0th root gives NaN.

	[src/root.c,tests/troot.c] Removed obsolete code that was commented out;
	some cleanup.

	[src/root.c] Comment correction (again).

	[src/root.c] Comment correction to avoid a variable name with several
	meanings.

	[src/root.c] Simplified code and corrected comment.

	[src/root.c] Corrected a comment and added an assertion (see r9923).

	[src/root.c] Added a FIXME comment.

	[tests/troot.c] Typo in a comment.

	[tests/troot.c] Added tests showing a bug in mpfr_root on large
	integer arguments (found thanks to a bug in GNOME Calculator:
	<https://bugzilla.gnome.org/show_bug.cgi?id=756960>).

	Style: use RND_LOOP; mpfr_can_round returns a Boolean-like value.

2016-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{erandom.c,nrandom.c}] Updated a reference.

2016-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mpfr_can_round -> MPFR_CAN_ROUND

2016-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated FIXME for mpfr_can_round.

	[doc/mpfr.texi] Added a FIXME for mpfr_can_round. Still incorrect...

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Corrected note about mpfr_can_round.

2016-02-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	refactor the exhaustive search code in mpfr_const_log2

	mpfr_round_p -> MPFR_CAN_ROUND

	mpfr_can_round -> MPFR_CAN_ROUND

	mpfr_can_round -> MPFR_CAN_ROUND

	use MPFR_CAN_ROUND instead of mpfr_can_round/mpfr_round_p

	rounding test was wrong for rounding to nearest

	replace mpfr_can_round by mpfr_round_p

2016-02-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_prec.c] Added a TODO to improve the mpfr_can_round_raw
	efficiency by only doing a bit inspection (no mpn operations).

2016-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcan_round.c] Added test of mpfr_round_p with powers of two
	(similar to the one done in src/round_p.c for MPFR_WANT_ASSERT >= 2).

	[tests/tcan_round.c] Updated description: mpfr_round_p is also tested
	in check_round_p (and will be in test_pow2).

2016-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	now mpfr_round_p() always requires normalized input

2016-02-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/div.c] Added an assert based on comments in the code.

	[src/round_p.c] Some corrections in comment.

2016-02-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added a comment

2016-01-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_p.c] Fixed mpfr_round_p for MPFR_WANT_ASSERT >= 2, as
	mpfr_round_p accepts non-normalized inputs (as decided in r9897),
	but not mpfr_can_round_raw (as decided in r9883).

2016-01-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	the inputs of mpfr_round_p might not always be normalized

2016-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed FIXME

2016-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved consistency in messages.

	[doc/README.dev] Updated instructions on how to cross-compile MPFR
	for MinGW (i586-mingw32msvc) and test it under Wine.

2016-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	Cleanup of memory allocation in the tests:
	  * only tests_allocate, tests_reallocate and tests_free should be used
	    (now exported instead of mpfr_default_allocate, etc.);
	  * this is now mentioned in doc/README.dev;
	  * added checks to tools/mpfrlint (heuristics as usual).

	Note: This follows the discussion at
	  https://sympa.inria.fr/sympa/arc/mpfr/2015-12/msg00055.html
	and should solve these problems under MS Windows (mingw32), though this
	cleanup is more general than an attempt to fix a Windows issue.

2016-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed case when prec > bn * GMP_NUMB_BITS and directed rounding

	typo

2016-01-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tcan_round.c] Updated comment and corrected condition on prec.

	[tests/tcan_round.c] Updated comments.

	[src/round_p.c] Added an assertion (similar to what was added to
	mpfr_can_round_raw). This triggers failures, which could also be
	detected with MPFR_WANT_ASSERT >= 2, due to the fact that mpfr_div
	can internally generate a number that is not normalized before a
	rounding test.

	[src/round_prec.c] Updated comments.

2016-01-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more work on mpfr_can_round

	fixed bug in mpfr_can_round for input = 2^k

2016-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Replaced "Rounding Related Functions" by
	"Rounding-Related Functions" (thanks to Keith Briggs for the remark).

	[tests/tcan_round.c] Added tests for powers of two. This triggers
	errors. I may have done mistakes, but at least x = 2^32, j = 32,
	r1=MPFR_RNDN, r2=MPFR_RNDN seems buggy.

2016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	simplified

	another detail

2016-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Corrected mpfr_can_round description again as the
	possible difference is on 0+ = 2^(emin-1), not about overflow.
	Let's just say "assuming an unbounded exponent range".

	[doc/mpfr.texi] Corrected mpfr_can_round description (about overflow).

2016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	yet another improvement

	improved documentation

2016-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Clarified change in r9873.

2016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improve documentation of mpfr_can_round

	also print the rounded value

	added pointer to examples/can_round.c

2016-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[examples/can_round.c] Removed the useless #include <gmp.h> and
	replaced the internal mpfr_dump by mpfr_printf.

2016-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improved documentation of mpfr_can_round

	added example on how to use mpfr_can_round

2016-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mention mpfr_set/get_decimal128 for the future (low priority for now)

2016-01-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_p.c] Code formatting.

2016-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added remark about Ei vs E1

2016-01-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsqrt.c] Improved bug20160120.

	[tests/tsqrt.c] In bug20160120, check the validity of the result with
	mpfr_check first, because the mpfr_sqrt was generating invalid data.

2016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bug in mpfr_sqrt reported by Fredrik Johansson

	added test case for bug reported by Fredrik Johansson

	added FIXME

2016-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tzeta.c] Added casts for printf.

	[tests/tzeta.c] Some corrections. Made the input value of the latest
	test clear (avoiding a long string at the same time).

2016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bug for zeta(s) with s near an even negative integer

2016-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Instructions on how to cross-compile MPFR for MinGW
	(i586-mingw32msvc) and test it under Wine.

	[doc/README.dev] Typo.

	[tests/tgeneric.c] Improved the generic tests in order to trigger the
	mpfr_jn bug found by Fredrik Johansson (r9841) and potential similar
	bugs: For half cases, the precision of the inputs was modified to be
	smaller than the base precision (for the result). Here, this rule is
	changed so that if the base precision is small (< 16), then the
	precision of the inputs is chosen to be significantly *larger* than
	the base precision in general.
	Note: With this improvement, both tj0 and tj1 fail in r9840.

2016-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added references

	added section about gamma_inc

	fixed bug found by Fredrik Johansson

	added reference for eint

2016-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tj0.c] Avoid mpfr_set_d.

2016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added bug found by Fredrik Johansson in mpfr_j0

	added mpfr_gamma_inc

2016-01-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma_inc.c] Use MPFR_ARE_SINGULAR.

2016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	deal with the case where one of a or x is not regular

2016-01-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/nightly-test] Corrected tests.

2016-01-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added reference

2016-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added the incomplete beta function

	incomplete Gamma is now available

	switch to bash and add --enable-decimal-float

	minor modification of documentation for mini-gmp

	added target "make bench"

2016-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	allow tgamma x prec to print gamma(x) to prec bits

2016-01-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added tgamma_inc to svn:ignore property.

	TODO update.

	[src/fmma.c] Removed trailing spaces.

	[tests/tgamma_inc.c] Portability correction.

	[src/mpfr.h] Improved a comment.

	[src/gamma_inc.c] Various corrections.

2016-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	first version of incomplete Gamma function (work in progress)

2016-01-16  Vincent Lefèvre  <vincent@vinc17.net>

	TODO for correctly rounded polynomials (like fmma).

2016-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	try to fix bugs in fmma (work in progress)

2016-01-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/log_ui.c] Added a FIXME comment: mpfr_log_ui is much slower than
	mpfr_log on some values of n, e.g. around ULONG_MAX/3.

	[tests/tlog_ui.c] Added tests for n around ULONG_MAX/3.

	[src/log_ui.c] Fixed the computation of p.

	[src/log_ui.c] Removed a mpz_sub_ui(...,1) to match the comment.
	This -1 came from the previous code, but this doesn't change the
	value of k because a multiple of 3 cannot be a power of 2. Also
	renamed a variable.

	[src/log_ui.c] Compute the value of k without rounding (if n was larger
	than 2^53 or even 2^24 due to dynamic x87 precision, the result could
	be wrong) and overflow (3 * n doesn't always fit in a limb).

	[src/log_ui.c] Added assertions.

	[tests/tlog_ui.c] Added tests for n around LONG_MAX.

	[src/log_ui.c] Replaced a comment by an assertion.

	[src/log_ui.c] Added a FIXME (integer overflow for large n).

	[tests/tlog_ui.c]
	  * In the loop, do not test n = 0 and n = 1, because mpfr_can_round
	    always fails for these values, so that the test is pointless.
	  * Check that mpfr_can_round no longer fails (this is possible as
	    we are not doing random tests, i.e. the tested values are known);
	    the additional precision for y had to be increased.
	  * Also test large values of n (ULONG_MAX down to ULONG_MAX-19). When
	    GCC's run-time sanitizer -fsanitize=undefined -fno-sanitize-recover
	    is used, it signals an error for large values of n.
	  * The reference values y are obtained with mpfr_log instead of
	    mpfr_log_ui: indeed we need a different implementation from the
	    tested function, otherwise only the rounding is tested! Without
	    GCC's run-time sanitizer, this shows that mpfr_log_ui is buggy
	    for large values of n.

	[tests] Added tfmma and tlog_ui to svn:ignore property.

	[src/fmma.c] Use MPFR_SET_EXP to get an assertion failure in case of
	out-of-range exponent instead of uncontrolled behavior.

	[tests/tfmma.c] Added tests that trigger an error.

	[src/fma.c] Added a comment for the new code.

2016-01-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Tests in lexicographic order.

2016-01-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	in tests, removed #if MPFR_VERSION >= MPFR_VERSION_NUM(2,x,y)

	forgot in last commit

	added new function mpfr_log_ui

2016-01-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	adapted to 3- and 4-argument functions (using patch from Patrick Pelissier)

2016-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfmma.c] C++ compatibility.

	[tests/tfmma.c] Fixed type in printf.

	[src/fmma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).

	Really replaced mpfr_printf by printf.

2016-01-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	give copyright to FSF

	replaced mpfr_printf calls

	changed copyright (I'm the sole author of this part of the code)

	forgot two files

2016-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fma.c] C89 compatibility correction.

	[src/fma.c] Replaced mp_ptr by mpfr_limb_ptr (as usual).

2016-01-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	speedup in mpfr_fma and mpfr_fms
	new functions mpfr_fmma and mpfr_fmms
	modified mbench/fma to compute b*c+c instead of b*b+c (b*c+d would be better)

2016-01-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added info about the parallel test harness.

	Updated documentation related to valgrind or other wrapper for the tests
	due to the fact that Automake 1.13+ generates a parallel test harness.
	  * doc/README.dev: replaced VALGRIND by LOG_COMPILER.
	  * tests/Makefile.am: added a comment mentioning LOG_COMPILER.

2016-01-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mpfrbench: use clock() when getrusage() is not available

2016-01-02  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Added a note about tuning MPFR:
	  For the current GMP version (6.1.0), a Unix-like OS is required.

2016-01-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2016 with
	  perl -pi -e 's/ (\d{4}-)?(2015)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh (the m4 and tools/mbench directories were not modified).
	Removed 2015 from the example in the doc/README.dev file.

2015-12-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fixed MPFR_WIN_THREAD_SAFE_DLL definition
	(patch by Patrick Pélissier).

2015-12-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpf_compat.h] Fix: File "inp_str.dat" could not be opened with
	builds outside the source directory (objdir different from srcdir).
	This did not generate an error, but prevented a test from being done.
	Now that mpfr-test.h is included via the mpf_compat.c or mpfr_compat.c
	file (there does not seem to be a valid reason not to include it), we
	can use src_fopen to open the file in all cases.

	[tests] In tversion.c, output the locale too (if supported).

	[tests/tinp_str.c] Added a blank line.

	[tests]
	  * inp_str.dat: added a locale-independent line at the beginning of
	    the file (useful for mpf_compat).
	  * mpf_compat.h, tinp_str.c: update because of this change.

	[tests/tests.c] Improved src_fopen description (do not use the term
	"src directory" because there is a directory named "src", but this
	is not what is referred here).

2015-12-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpf_compat.h] Fix: changed "inp_str.data" to "inp_str.dat"
	due to the file rename in r8120 (otherwise nothing is tested).

	[tests/mpf_compat.h] For mpf_set_str and mpf_init_set_str, avoid strings
	with ".", since for GMP the decimal separator is locale dependent (the
	tests can be run in non-C locales on purpose in order to detect issues
	in various locales), so that for the mpf_compat test, the conversion
	fails and the mpf value x is set to 0 (which can yield other problems,
	such as with mpf_div (y, x, x), which raises an exception).
	Note: this problem appeared in r9157, where tests_start_mpfr() was added
	to mpf_compat.h (the locale setting is done in this function).

2015-12-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patch from Patrick Pelissier (for MinGW)

2015-12-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Corrections for C++.

2015-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing spaces.

2015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	review by Rob (sisyphus1@optusnet.com.au)

	removed obsolete parts (?) for MinGW

	new text for Windows/Visual Studio/Visual C++ part contributed by Brian Gladman

2015-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Switch to UTF-8.

2015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changes proposed by Alexander (sav_ix@ukr.net)

2015-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Correction.

2015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	clock() should work everywhere

2015-12-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] The timing test from r9753 in POSIX-only.

	[doc/mpfr.texi] Updated the month.

2015-12-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	update INSTALL file

	-D__USE_MINGW_ANSI_STDIO is needed for GMP only

2015-12-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comment about overlapping between input and output.

2015-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	document that (currently) mpfr_sum doesn't allow overlap

	timing test to compare mpfr_sum and naive algorithm (without correct rounding)

	update wrt -D__USE_MINGW_ANSI_STDIO

	note about MinGW and TLS support

	improving error message

2015-12-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment and message for errors under MinGW

2015-12-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Updated a comment about clang and division by 0.

2015-11-11  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Update.

	[doc/sum.txt] Update.

	[doc/sum.txt] Minor correction.

2015-11-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Minor correction.

	[doc/sum.txt] Minor correction.

	[doc/sum.txt] Update.

	[doc/sum.txt] Clarification: avoid the word "iteration" for the loop
	over the inputs, when possible.

	[doc/sum.txt] Update.

	[doc/sum.txt] Update.

	[doc/sum.txt] Update.

2015-11-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added a FIXME comment about the reuse of an input for the
	output.

2015-11-06  Vincent Lefèvre  <vincent@vinc17.net>

	GMP 5.0.0 or newer is required (instead of 4.2.0).

	[doc/sum.txt] Major and final update (complete rewrite).

	[src/mpfr-gmp.h] Added a TODO.

	[src/sum.c] Bug fixed (MPN_COPY_INCR instead of MPN_COPY_DECR).

2015-11-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Minor comment correction.

	[src/sum.c] Added another assertion (checked).

	[src/sum.c] Added assertions (checked).

2015-11-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Added a comment.

	[TODO] In tsum, add testcases for mpfr_sum triggering the bug fixed
	in r9722.

	[src/sum.c] Bug fix: an error bound was too large to compute the sign
	of the secondary term (when the TMD occurs).

2015-11-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tstdint.c,tvalist.c}] Updated and improved comment about the
	test of partial + full <mpfr.h> inclusion.

	[configure.ac] C code starting with # (preprocessor directives) must not
	be indented.

2015-11-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	simplify the configuration with mini-gmp

2015-10-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comment for sum_raw().

2015-10-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	better definition of GMP_NUMB_BITS

2015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	update description of file

2015-10-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tdiv.c] Improved comment about the mpfr_divhigh_n_basecase bug.

2015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more tests do work with mini-gmp (from GMP 6.1.0-rc1)

2015-10-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] For the tests on the source files, ignore everything
	related to mini-gmp, not just the src/mini-gmp.[ch] files.

	[doc/README.dev] "To make a release": mention -DMPFR_TUNE_COVERAGE.

	[tests/tdiv.c] Updated comment about the mpfr_divhigh_n_basecase bug.

2015-10-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed replacement for mpn_neg (return value was wrong)

	adapt for mini-gmp (from GMP 6.1.0-rc1)

	replace obsolete mpz_div_2exp function by mpz_xdiv_q_2exp

2015-10-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	adapt mini-gmp stuff to GMP 6.1.0-rc1

	replace obsolete mpz_div by mpz_tdiv_q

2015-10-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fix bug reported by Ricky Farr
	(https://sympa.inria.fr/sympa/arc/mpfr/2015-10/msg00023.html)

2015-10-22  Vincent Lefèvre  <vincent@vinc17.net>

	[autogen.sh] Restore the INSTALL file also if the process receives
	a usual signal (SIGHUP, SIGINT, SIGQUIT or SIGTERM).

	[tests/tversion.c] Added a comment about compiler info.

	[tests/tversion.c] Instead of __GNUC__, __GNUC_MINOR__ and
	__GNUC_PATCHLEVEL__, output __VERSION__, which gives more
	information (for GCC development versions and ICC).

2015-10-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comment for sum_raw().

2015-09-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a comment about mpfr_get_{si,ui,sj,uj} and flags.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Changed "returned value" to "return value" when this
	is the value returned by the C function (synonymous, but sometimes
	less ambiguous).

	[doc/mpfr.texi] For r9689, "returned value" → "return value".

	[doc/mpfr.texi] Completed the specification of mpfr_get_{si,ui,sj,uj}
	and mpfr_get_z (inexact flag, and returned value for mpfr_get_z).

	[tests/tget_z.c] Fixed and improved the check_one() test.
	  * The input value was modified at each iteration, giving z = 0 very
	    quickly, so that not much was tested in practice; in particular,
	    the third argument of mpz_fdiv_q_2exp in mpfr_get_z was never
	    properly tested (since it has no effect for z = 0).
	  * Added various tests of the flags.

	[tests/tget_z.c] Optimized the check_one() test.

2015-09-10  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the win-thread-safe-dll branch: support build as thread-safe DLL
	on Windows: changes from Stephan Tolksdorf
	  https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
	+ a correction and some consistency checks. See MPFR bug 19537 on:
	https://gforge.inria.fr/tracker/index.php?func=detail&aid=19537&group_id=136&atid=619

	[src/mpfr-impl.h] Resolved the problem under Linux.

	[src/mpfr-impl.h] Detect some possible inconsistencies under Unix,
	when some macro should imply a MS-Windows platform.

	Merged the latest changes from the trunk since this wasn't the cause
	of the problem.

	Applied changes from Stephan Tolksdorf:
	  https://gforge.inria.fr/tracker/download.php/136/619/19537/4980/changes.zip
	The MPFR build fails on my Linux machine with
	  CFLAGS=-Werror=missing-prototypes
	because MPFR_WIN_THREAD_SAFE_DLL gets defined (this CFLAGS just allowed
	me to detect the problem with MPFR_WIN_THREAD_SAFE_DLL, which could have
	otherwise remained unnoticed).

	Include config.h when need be.

2015-09-07  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Updated mpz_t caching item, suggesting mpz_init2 instead.

	[TODO] Added: check whether mpz_t caching is necessary (this was
	committed in r8911). In short, timings should be done with -static
	(this wasn't clear), they may depend on the malloc implementation,
	and after a look at the source, the difference in the timings with
	mpz_t caching is surprising and should be explained.

2015-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/ck-copyright-notice] Check src/mparam_h.in instead of the
	generated (and not distributed) src/mparam.h file; this is also
	useful to avoid an error after running "make tune".

2015-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	distribute the mpfrbench README

	add a README for mpfrbench

2015-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	More details in a comment about assertions via tuneup.

2015-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed failed assertion during "make tune"

2015-08-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_z.c] Flags testing.

	[doc/README.dev] Updated a URL.

	[tests/tstdint.c] Support MPFR_PRINTF_MAXLM.

	[tests/tget_sj.c] Support MPFR_PRINTF_MAXLM.

	[tests/tget_sj.c] Typo.

	[acinclude.m4] Instead of checking whether the 'j' printf length
	modifier is working, try to find one that works.

	[acinclude.m4] Check whether the 'j' printf length modifier is working.

	[tests/tget_sj.c] Improved check_erange (more flags testing).

	[tests/tget_sj.c] Improved check_sj and check_uj even more.

	[tests/tget_sj.c] Improved check_sj and check_uj (flags testing).

2015-08-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfits.c] New tests at the limits of the types.

	[tests/tfits.c] For the mpfr_fits_{uintmax,intmax}_p functions, check
	that the flags are not modified and added tests of -Inf and -0.

	[tests/tfits.c] For the mpfr_fits_{u,s}{long,int,short}_p functions,
	check that the flags are not modified and added tests of -Inf and -0.

2015-08-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed the AMD K8 tuning (cf r8118)

2015-08-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_si.c] Improved NaN mpfr_get_si / mpfr_get_ui test.

	[src/{fits_intmax.c,fits_s.h,fits_u.h}] Fixed mpfr_fits_* functions:
	the flags could be modified, which made the new mpfr_get_{si,ui} tests
	fail (tests/tset_si.c r9649).

	[tests/tset_si.c] Added mpfr_get_{si,ui} tests, including flags.

2015-08-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mparam_h.in] Improved comment: __amd64__ is generic to all
	x86 processors with a 64-bit ABI (amd64, a.k.a. x86_64), thus
	suggest to move mparam.h files to more meaningful locations.

	[configure.ac] Added test for usability of gmp.h at link time
	(merged changeset r9644 from the 3.1 branch, with minor changes
	due to the fact that a known problem between GMP 4.1 and GCC 5
	can no longer occur, now that we require GMP 4.2.0 or newer).

2015-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": mention abi-compliance-checker.

2015-07-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Added an assertion (I get a build failure with gcc-snapshot
	20150722-1 due to -Werror=array-bounds, but the code looks OK).
	Simplified test on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67077

2015-07-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	remove usage of mpn_rootrem in mpfr_sqrt since now mpn_sqrtrem is faster
	(https://gmplib.org/list-archives/gmp-devel/2015-July/004074.html)

2015-07-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/next.c] Added a note concerning the exceptions.

2015-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[tests/tversion.c] Output MPFR_VERSION_STRING too.

	[tests/tversion.c] Check and output additional mpfr_buildopt_* info.

	Added mpfr_rint_roundeven and mpfr_roundeven functions, with
	documentation and tests.

2015-07-16  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfrexp.c]
	  * Replaced each mpfr_get_exp occurrence by the internal MPFR_GET_EXP
	    macro in order to make sure that an assertion failure is triggered
	    in case of singular number (see also the comment added in r9618).
	  * Fixed the remaining problem due to an overflow and infinite value.

	[src/mpfr.h] Added a comment about the drawback of the mpfr_get_exp()
	macro, defined in addition to the function.

2015-07-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfrexp.c] Simplification: merged the tests on the ternary values,
	the returned MPFR values and the flags.

	[src/{div_2si.c,div_2ui.c,mul_2si.c}] Fixed some underflow cases in
	rounding to nearest when the exact result is -2^(emin-2), i.e. the
	middle of 0 and the minimum negative number in absolute value (the
	correction in r5517 was incorrect/incomplete).

	[src/exceptions.c] Added logging for mpfr_underflow and mpfr_overflow.

	[tests/tmul_2exp.c] Extended the underflow() test to negative numbers,
	triggering a new bug.

	[src/frexp.c] Added a comment.

2015-07-02  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/build-patch] Rebuild the mpfr.info file if mpfr.texi has been
	modified, in order to take it into account in the patch. This is needed
	since the mpfr.info file is distributed in the tarball.

	[tools/mpfrlint] Check a Texinfo rule (Section "Ending a Sentence")
	with common words that end with a capital letter.
	(merged changeset r9603 from the 3.1 branch)

2015-06-28  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Updated URL of TS 18661-4.

2015-06-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/frexp.c] Handle internal overflow.

	[tests/tfrexp.c] Forgot a "exit (1);".

	[tests/tmul_2exp.c] Overflow test: more output info; improved code.

	[src/mul_2si.c] Fixed overflow case when n = 0.
	[tests/tmul_2exp.c] In the overflow test, check mpfr_mul_2ui and
	mpfr_mul_2si too (mpfr_mul_2ui was OK).

	[src/div_2si.c] Fixed overflow case when n = 0.
	[tests/tmul_2exp.c] In the overflow test, check mpfr_div_2si too.

	[src/div_2ui.c] Fixed overflow case (can occur only when n = 0).
	[tests/tmul_2exp.c] Completed the overflow test.

	[tests/tfrexp.c] Added tests (currently fail due to the mpfr_div_2ui
	unhandled-overflow bug).

	[tests/tmul_2exp.c] Added tests where mpfr_div_2ui overflows, which
	is currently not handled.

	[src/frexp.c] Fixed a bug occurring when the current exponent range
	does not contain 0.

2015-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/check.c] Typo in a comment.

2015-06-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/announce-text] Update due to recent InriaForge upgrade.

2015-06-16  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a paragraph about the multiple use of MPFR.

	[TODO] Added: use symbol versioning.

2015-06-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/faq.xsl] Remove the indent="no" to get the same behavior as before
	when using libxslt 1.1.27+. See:
	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718535#10

	[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
	test FMA(-x,y,-z).

	[src/fma.c] Completely fixed the scaling in case of underflow.

	[src/fma.c] Partially fixed the scaling in case of underflow,
	corresponding to the testcase from r9566. Double rounding is
	not handled yet (failure triggered by r9567).

	[tests/tfma.c] Improved the new underflow tests (test_underflow3) to
	yield some cases with double rounding when scaling: If the only fix
	in src/fma.c is to change the rounding mode of the last mpfr_div_2ui
	(computing s / 2^scale) to rnd_mode, a new failure appears for n = 2,
	k = 4, s = -1, MPFR_RNDN.

	[tests/tfma.c] Corrected the new underflow tests to really generate
	underflows, showing a bug in mpfr_fma.

	[src/fma.c] Added log messages.

	[tests/tfma.c] The code removed in r9560 was actually necessary,
	but do this in a better way.

2015-06-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfma.c] Added other underflow tests.

	[tests/tfma.c] Some improvements.

	[tests/tfma.c] GNU coding style.

	[tests/tfma.c] Removed code that isn't necessary.

	[doc/README.dev] "To make a release": mention -DMPFR_COV_CHECK and
	-DMPFR_ALLOCA_MAX=0 tests.

2015-06-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trandom.c] Cleaner test, avoiding the explicit use of mpfr_rands.

	[tests/trandom.c] Improved latest change, as some other test already
	assume a fixed PRNG with GMP >= 4.2.0 (now the value of the last
	random number of the test is checked).

	[tests/trandom.c]
	  * Get a non-zero fixed-point number whose first 32 bits are 0 with the
	    default GMP PRNG. This corresponds to the case cnt == 0 && k != 0 in
	    src/urandomb.c (fixed in r8762) with the 32-bit ABI.
	  * Output a warning (with a fatal error when the MPFR_COV_CHECK macro
	    is defined) if one doesn't get such a number, probably because the
	    GMP PRNG has changed.

	[src/sqrt.c] The bug fixed in r9540 actually came from r9014, which
	incorrectly replaced MPFR_EXP by MPFR_SET_EXP. So, restored the
	previous code (re-adding the assertion check), keeping my comment
	from r9540 to explain why we don't use MPFR_SET_EXP.

	[tests/tgeneric.c] Fixed overflow/underflow tests introduced in r9539:
	the tests were done in all rounding modes, but the code was incorrect
	if the exponent of the result depended on the rounding mode. So, the
	tests are now done only in the rounding mode previously selected. This
	should be sufficient to detect bugs.

	[src/lngamma.c] For mpfr_lgamma and mpfr_lngamma, the exponent range
	was not restored in some cases (some large results). Bug introduced
	in r8917 (trunk only).

	[src/{cos.c,sin.c}] Fixed bug related to the exponent range, introduced
	in r6461 with the use of mpfr_sincos_fast.
	Details:
	  For mpfr_sin, the exponent range was not restored, and restoring it
	  before calling mpfr_sincos_fast as this was done for mpfr_cos did
	  not work; indeed the source of this function shows that it needs an
	  extended exponent range. So, changed both mpfr_cos and mpfr_sin to
	  call mpfr_sincos_fast in the extended exponent range and restore the
	  exponent range at the end, like in usual code.

	[tests/tgeneric.c] Check whether the exponent range has been
	modified by the tested function (which should never happen).
	This check triggers failures in tlgamma, tlngamma and tsin.

	[src/sqrt.c] Fixed assertion failure in reduced exponent range.
	Note: This could happen only in very specific exponent ranges,
	in particular, which do not include the number 1.

	[tests/tgeneric.c] Added overflow/underflow tests (→ 4 failed tests).

2015-06-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/zeta_ui.c]
	  * Support reduced exponent range for the generic case.
	  * Added logging.
	[tests/tzeta_ui.c] Added tests in reduced exponent range.

	[src/add_ui.c] Fixed format string in MPFR_LOG_FUNC.

2015-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tzeta_ui.c] Code simplification.

	[tests/tzeta_ui.c] Test zeta(0) in reduced exponent range and all
	rounding modes.

	[src/zeta_ui.c] Fixed zeta(0) in reduced exponent range.
	[tests/tzeta_ui.c] Added testcase.

2015-06-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{ui_div.c,ui_sub.c}] Correction for reduced exponent range.

	[tests/tui_sub.c] Check overflow.

	[tests/tui_div.c] Check overflow.

	[tests/tgeneric.c] Removed useless parentheses.

	[tests/tgeneric.c] Special cases with unsigned long argument.

	[tests/tpow_all.c] Better flags output in error message.

2015-06-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_q.c] Added missing MPFR_SAVE_EXPO_FREE in case of preliminary
	overflow or underflow (extreme cases).

	[src/set_q.c] Replaced a "return" by MPFR_RET: this is at least needed
	in the extreme case cd != 0, and safer in general.

	[tests/tset_q.c] Check the flags.

	[src/mul_ui.c] Fixed bug in mpfr_mul_ui/si: the inexact flag wasn't set.

	[tests/t{add,div,mul,sub}_ui.c] Replaced tgeneric_ui.c by tgeneric.c,
	showing a bug in mpfr_mul_ui (missing inexact flag).

	[tests/{tui_div.c,tui_sub.c}] Added generic tests, yielding assertion
	failures (due to a reduced exponent range) when assertions are checked.

	[tests/tgeneric.c] Major clean-up, with some minor corrections.
	Added support for unsigned long argument, which can be the first
	or the second one (another intent is to replace tgeneric_ui.c,
	which does fewer tests concerning the flags).

	[tests/tdiv_d.c] Corrected the tested function for the generic tests.

	[tests/td_div.c] Corrected the tested function for the generic tests.

	[tests/tui_sub.c] Minor improvements.

	[tests/tgeneric_ui.c] Added missing \n. Minor improvements.

	[tests/tui_div.c] Minor improvements.

2015-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] Corrected the description (copy-paste error in r9473).

	[src/rint.c] Handle reduced exponent range.

	[tests/trint.c] Extend basic_tests from [56,72] to [1,72] since i < 4
	(|x| < 1) are special cases in the implementation.

	[tests/trint.c] Also run BASIC_TEST in reduced exponent range
	(emin = emax = EXP(x)).

	[tests/trint.c] Also run BASIC_TEST2 in reduced exponent range
	(emin = emax = EXP(x)).

	[src/rint.c] Added a comment about the mpfr_rint_* functions.

	[src/rint.c] Simplified and fixed the mpfr_rint_* functions: in some
	corner cases, an intermediate overflow would not be propagated. No
	testcases added for this particular problem since huge precision
	numbers would be involved.

2015-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added description of the flags for the mpfr_rint,
	mpfr_ceil, mpfr_floor, mpfr_round, mpfr_trunc functions.

2015-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] In the basic tests, test the flags.

2015-05-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] Corrections for r9476 and r9477.

	[configure.ac] For the gcc compiler, better choice of the -W flags
	when the selected language is C++ (e.g. when CC=g++).

2015-05-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trint.c] Added basic tests of the mpfr_{trunc,floor,ceil,round}
	functions.

	[tests/trint.c] Added basic tests of the mpfr_rint_* functions.

	[doc/mpfr.texi] Added blank lines to improve readability.

	[tests/trint.c] Updated the description (test_generic_round is now
	tested, which wasn't done at all before).

	[tests/trint.c] Added generic tests for the mpfr_rint_* functions.
	Since all numbers in ]0,1/2[ round to the same value, in order to
	avoid redundant tests, increased the TEST_RANDOM_EMIN value to -20
	and set TEST_RANDOM_ALWAYS_SCALE to 1.
	Note: only these new tests generate an error if the change of the
	exponent range is no longer done in these mpfr_rint_* functions.

2015-05-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added always_scale argument (boolean) to tests_default_random()
	so that when it is true, scaling is always performed on random numbers
	generated by mpfr_urandomb(), instead of preferring numbers of the order
	of magnitude of 1 for half outputs. This will be useful for mpfr_rint_*
	tests.

	For tgeneric.c, the value of this argument is controlled by a new macro
	TEST_RANDOM_ALWAYS_SCALE (0 by default, which corresponds to the current
	behavior). For the other tests that call tests_default_random(), the
	argument is set to 0, so that the behavior remains the same.

2015-05-29  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added a remark concerning the mpfr_rint_* functions.

2015-05-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Fixed allocation issue for multithreaded applications:
	https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html
	  * mpfr-gmp.{c,h}: made mpfr_allocate_func, mpfr_reallocate_func and
	    mpfr_free_func thread-local; updated MPFR_GET_MEMFUNC to execute
	    mp_get_memory_functions only when these pointers have not been set
	    to the actual function pointers yet.
	  * mpfr-impl.h: #include "mpfr-thread.h" earlier (before mpfr-gmp.h,
	    where MPFR_THREAD_ATTR is now used).

2015-05-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.c] Replaced mpfr_allocate_func and mpfr_free_func
	by __gmp_allocate_func and __gmp_free_func in mpfr_tmp_allocate
	and mpfr_tmp_free respectively, fixing the crash in talloc.
	See: https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html

	[tests/talloc.c] Avoid a failure with --with-gmp-build due to the fact
	that the MPFR_ALLOCA_MAX macro is not defined in this case.

2015-05-23  Vincent Lefèvre  <vincent@vinc17.net>

	Added libtool-tcc-rpath.patch from
	  https://lists.gnu.org/archive/html/libtool-patches/2015-05/msg00000.html
	so that tcc can be used with libtool 2.4.3 to 2.4.6.
	In doc/README.dev, documented how to use this patch (before a release).

	[tests] Added talloc.c and updated check_PROGRAMS in Makefile.am.
	This test detects an allocation bug added in r8813, which occurs
	if mpfr_tmp_allocate() is invoked before __gmp_allocate_func when
	the GMP build is not used (thus this bug is not visible in most
	code since mpfr_init2 is generally called first, directly or not,
	and it uses __gmp_allocate_func). Details:
	  https://sympa.inria.fr/sympa/arc/mpfr/2015-05/msg00001.html

	[tests/{tstdint.c,tvalist.c}] Added missing #include "mpfr-test.h"
	(detected with gcc -Werror=implicit-function-declaration), needed
	since r9447.

2015-05-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.c] Code formatting.

	[tests/tstckintc.c] Fixed undefined behavior (invalid pointer).

	Define MPFR_ALLOCA_MAX macro: Maximum size for the use of alloca by
	temporary allocations (default: 16384).

	[tests/{tstdint.c,tvalist.c}] Use tests_start_mpfr / tests_end_mpfr,
	in particular to detect a wrong MPFR version (due to a libtool bug).

2015-05-21  Vincent Lefèvre  <vincent@vinc17.net>

	[autogen.sh] Exit with the exit status of autoreconf. Thus a failure
	will be noticed more easily.

	[NEWS] Update.

	[acinclude.m4] Added a comment about memmove and memset being considered
	to be missing when gcc -Werror is used, because of a "conflicting types
	for built-in function" error.

	[acinclude.m4] Various corrections in the tests:
	  * MPFR_CHECK_MP_LIMB_T_VS_LONG was always failing due to a typo.
	  * MPFR_FUNC_GMP_PRINTF_SPEC: missing #include <string.h> for strcmp.
	  * Replaced rint by nearbyint in messages (as nearbyint is tested).
	  * Avoid warnings to avoid failures when -Werror is used.

2015-05-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tcmp_d.c,tcmp_ld.c,tget_d.c}] Avoid warnings concerning unused
	variables when MPFR_ERRDIVZERO is defined (useful with -Werror).

	[tests/tests.c] Avoid a warning concerning an unused variable
	when HAVE_DENORMS is not defined (useful with -Werror).

2015-05-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved mpfr_swap description again.

	[doc/mpfr.texi] Correction and improvements in the formatting.

	[doc/mpfr.texi] Added a warning for mpfr_set_prec and mpfr_prec_round
	about allocation issue, as these functions change the precision of x.

	[doc/mpfr.texi] Typo in the latest change.

	[doc/mpfr.texi] Rewrote the mpfr_swap description. This should solve
	the documentation issue reported on:
	  https://gforge.inria.fr/tracker/index.php?func=detail&aid=18954&group_id=136&atid=619

2015-05-18  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Update (preliminary steps).

2015-05-13  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Started the rewrite of the doc.

2015-05-06  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Update concerning mpfr_sum.

	[doc/mpfr.texi] Update concerning mpfr_sum.

	[doc/sum.txt] The specification of the sign of a zero result only
	applies to an exact zero, of course (for an inexact zero result,
	the usual rule of the rounding mode is applied).

	[tests/t[ne]random_chisq.c] Fixed memory leak (detected by GCC's
	AddressSanitizer).

	[doc/README.dev] "To make a release": Test with GCC's AddressSanitizer
	(-fsanitize=address).

	[tests/tabort_defalloc*.c] Disable the tests if __SANITIZE_ADDRESS__
	is defined, i.e. when GCC's AddressSanitizer is used, because it
	reports the error before GMP can do the abort.

2015-05-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Make tests_default_random() more intuitive, avoiding
	automatic changes of the current exponent range in some cases: instead
	of adding some random exponent in [emin,emax] to the exponent of the
	random number x in ]0,1[, force this random exponent to be the one of
	x, so that its exponent is guaranteed to be in [emin,emax]. This avoids
	a failure in tsum due to the fact that the exponent range was changed
	automatically (and not restored).

	[tests/tsum.c] In cancel(), increase the number of tests from 8 to 1000.
	This is much more, but the test is fast compare to other ones so that
	the running time increases by a few percents only. And this triggers a
	new bug: the exponent range is not restored (on a 64-bit machine).

	[tests/tsum.c] Changes in cancel():
	  * The fail-test was x[n] > bound instead of |x[n]| > bound, so that
	    some failures could be missed.
	  * More output in case of failure.
	  * Handle underflow in the bound computation. This fixes an incorrect
	    failure due to a bound rounded toward zero instead of toward +inf
	    with GMP_CHECK_RANDOMIZE=1431478020 (found by the nightly tests).

	[tools/nightly-test] Run "make check" with VERBOSE=1 in order to have
	tests/test-suite.log output in case of failure, now that Automake 1.13+
	is used.

2015-04-28  Vincent Lefèvre  <vincent@vinc17.net>

	Added a TODO about mpfr_sum.

2015-04-24  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Updated a comment about Automake 1.13.

	[Makefile.am] Updated comment about ACLOCAL_AMFLAGS.

	[TODO] Suggest to move some macro definitions from acinclude.m4 to the
	m4 directory as suggested by the Automake manual.

2015-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Grouped everything about the test suite near the end
	of this file. Added information about how the test suite works since
	the full Automake 1.13 support (r8821).

	To take into account that Automake 1.13 or later will be used:
	  * doc/mpfr.texi, INSTALL: updates related to "make check".
	  * configure.ac: require Automake 1.13 since the documentation now
	    assumes that 1.13 or later is used (and because previous Automake
	    versions are no longer tested).

2015-04-10  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention the complete rewrite of function mpfr_sum.

	[tests/tsum.c] Added a comment about the latest fixed bug.

	Merged the new-sum branch:
	  * New feature for developers in order to improve the testsuite:
	    value coverage checking (MPFR_COV_CHECK macro), allowing one
	    to check whether some combinations of values are tested. See
	    example of use in src/sum.c and tests/tsum.c files.
	  * src/sum.c: full rewrite of mpfr_sum. Note: the documentation
	    of the algorithm in doc/sum.txt is currently a bit obsolete.
	  * tests/tsum.c: many new tests, some of them specifically written
	    for the new algorithm and implementation.

2015-04-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Fixed bug: mpn functions do not accept a zero size argument.

	[tests/tsum.c] Replaced a mpfr_inits by a mpfr_inits2.

	[tests/tsum.c] Added a simple test that triggers a glibc free() error
	or segmentation fault when MPFR is configured with GMP 6.0.0 built
	with "--disable-alloca ABI=32". GCC's address sanitizer shows a
	heap-buffer-overflow. This is mainly for debugging as this problem
	also occurs in other tests (it is quite generic).

	[tests/tsum.c] Removed a temporary comment.

	Merged the latest changes from the trunk.

	[tests/tsum.c] Added check_underflow test.

2015-04-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Comments.

	[src/sum.c] Bug fix: use MPFR_EXP instead of MPFR_SET_EXP to set the
	exponent since it can be outside the current exponent range before
	it is checked with mpfr_check_range. Also added a static assertion
	(always satisfied in practice) to make sure that exponent related
	computations cannot yield an integer overflow.

	[tests/tsum.c] Added check_overflow test, which triggers a bug.

2015-03-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Completed the cancel test (generic random tests with
	cancellations): check the bound on the result.

	[tests/tsum.c] Improved the check4 test:
	  * removed some not very useful tests to reduce the running time;
	  * added tests checking "MPFR_RNDN, tmd=2, rbit=0, sst=1, negative",
	    which was the only remaining one output by check_coverage (when
	    MPFR_COV_CHECK is defined).

	[tests/tsum.c] Reduced the check4 test because it was much too long
	compared to the other tests. The bug fixed in r9356 is still triggered
	and "MPFR_RNDN, tmd=2, rbit=0, sst=0, negative" is still checked.

2015-03-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Updated comment of the check4 test.

	[src/sum.c] Bug triggered by the check4 test fixed.

	[tests/tsum.c] Another correction in the check4 test.

	[tests/tsum.c] In the check4 test, two terms didn't correspond to
	the formula given in the comment; corrected these terms (the same
	bug is triggered).

	[tests/tsum.c] Forgot the h in the error message of the check4 test.

	[tests/tsum.c] Extend the check4 test even further.

	[tests/tsum.c] Extend the check4 test even further.

	[tests/tsum.c] Added check4 test, which triggers a bug.

2015-03-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] In the TMD detection:
	  * improved variable nbits to decrease the number of operations;
	  * added some comments;
	  * fixed the shift count bug triggered by the bug20150327 test.

	[tests/tsum.c] Added bug20150327 testcase.

	[tests/tsum.c] Corrected test of the ternary values inex1 and inex2.

2015-03-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/ck-copyright-notice] Bug fix and improvements.

	[tools/ck-copyright-notice] More checks.

2015-03-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Do not consider the corrected sst for MPFR_COV_SET.

	[tests/tsum.c] More tests.

	[src/sum.c] Added comments.

	[src/sum.c] In the final rounding, forgot to handle the possible
	exponent change in the negative case with corr == 2.

2015-03-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Improved the check3 tests, which were added in the
	latest commit. They now trigger an assertion failure in sum.c.

	[tests/tsum.c] New tests.

	[tests/tsum.c] Value coverage checking: tmd can be 2 only for MPFR_RNDN.

2015-03-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Better logging.

	[src/sum.c] Bug fix: the sum_raw code was unnecessarily assuming
	too much; thus, removed too parameters, which can be very easily
	recomputed only when they make sense.

2015-03-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Added a new table concerning the correction term.
	[src/sum.c] Updated rounding.

2015-03-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added comments on the correction. Minor changes in the code.

2015-03-06  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added information on how to do type punning
	(something we already did, but with no justification yet).

2015-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/sum.txt] Updated TODO.

	[doc/sum.txt] Added TODO (since the description is a bit obsolete).

	[src/sum.c] In the latest commit, the temporary area was split for
	the computations that determine the sign of the error term in case
	the TMD occurs, as these computations occur earlier in the code.
	This was actually not necessary since the content of the accumulator
	has already been copied to the final destination (only sign handling
	and rounding have not been done yet, but they entirely take place in
	the destination). As a consequence, let's revert the code related to
	this split. The actual changes concerning the merge of pre-rounding
	and final rounding can be seen with "svn diff -r 9328:9330".

	[src/sum.c]
	  * Removed any reference to the obsolete step numbering.
	  * Merged pre-rounding and final rounding, simplifying the code.
	    The correction value still needs to be fixed.

	[src/sub1sp.c] Avoid an unnecessary mpn_lshift after an mpn_sub_1 when
	the initial value was a power of two.

	[src/next.c] Avoid an unnecessary loop when the exponent decreases.

2015-02-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Improved test portability.

	[tests/tsum.c] New tests.

	[src/sum.c] Completed the implementation (but there's still a bug).

	[tests/tsum.c] New tests.

2015-02-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Improved the setting of sst (Step 8), using the fact
	that the accumulator is 0 iff cancel = 0.

	[src/sum.c] Bug fix: when determining the sticky bit, the search was
	starting at the rounding bit instead of the bit following it.

	[tests/tsum.c] New tests.

	[src/sum.c] More logging.

	[tests/tsum.c] In the generic test, also test with negative numbers.

	Updated value coverage checking for mpfr_sum.

	[doc/README.dev] Document the new MPFR_COV_CHECK macro.

	Value coverage checking when MPFR_COV_CHECK is defined, initially
	for mpfr_sum.

	[src/sum.c] Bug fix in the ternary value.

	[tests/tsum.c] Added check of the ternary value.

	[src/sum.c] Removed incorrect assertions.

	[tests/tsum.c] Re-enabled cancel() test.

2015-02-24  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Update.

	[src/sum.c] Update.

	[src/sum.c] Use the new SAFE_DIFF macro.

	Merged the latest changes from the trunk (r9306).

	[src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference).

	[src/sum.c] Fixed a test.

	[src/sum.c] Better logging.

	[src/sum.c] Minor correction of last change of a comment.

	[src/sum.c] More logging and comments.

	[src/sum.c] Fixed bug introduced in r9294 (minexp wasn't updated).

	[src/sum.c] Log the value of tq.

	[src/sum.c] Bug fix.

	[src/sum.c] Virtually eliminate halfway cases by making them equivalent
	to a non-halfway case.

2015-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Update.

	Merged the latest changes from the trunk (r9295).

	[src/mpfr-impl.h] Fixed and improved some sign-related macros
	(some parentheses were missing).

	[src/sum.c] Update: sum_raw, with a new prototype, now reiterates until
	the error bound is acceptable; thus the "while" loops have been removed
	from sum_aux.

2015-02-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Increased the number of tests to get 2 current failures
	with a "break" in the last loop of sum.c (m = 438, m = 3780), without
	the exit() in the generic test. Improved error message.

	[tests/tsum.c] Completely rewrote the generic test (now allows one to
	detect that the implementation is incomplete when adding a "break" in
	the last loop of sum.c).

2015-02-19  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Run bug20131027 in each rounding mode.

	[src/sum.c] Fixed sum_raw.

2015-02-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] More logging.

	Merged the latest changes from the trunk.

	Logging: the log stream is flushed after each log output when
	the MPFR_LOG_FLUSH environment variable is set.

	Factorized the logging macros by moving tests inside LOG_PRINT.

	[src/sum.c] Correction. Set the exponent.

	[src/sum.c] Added a log message.

	[src/sum.c] Bug fix: I had inverted positive and negative.

2015-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Removed the obsolete mpfr_sum_sort related test
	(which could obviously no longer compile), so that I can start
	debugging before finishing the implementation.

	Merged the latest changes from the trunk.

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2015 with
	  perl -pi -e 's/ (\d{4}-)?(2014)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh, reverting the tools/mbench directory (not distributed with
	MPFR). Removed 2014 from the example in the doc/README.dev file.

2015-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Copyright notice update.

	[src/sum.c] Split mpfr_sum into mpfr_sum (handling special cases)
	and sum_aux (generic case only). Revised some comments.

	[src/sum.c] When updating minexp, detect a potential integer overflow
	first (macro UPDATE_MINEXP). Updated comments.

	[src/sum.c] Logging of sum_raw: log *cancelp at the end.

	[src/sum.c] Update (Step 8).

	[src/sum.c] Corrected/improved logging.

2015-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	Added algorithms.fls (generated by latexmk) to svn:ignore property.

2015-01-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfpif.c] Updated a mpfr_set_zero line for consistency and
	better readability.

	[tools/mpfrlint] Added mpfr_set_(inf|zero) tests on the sign.

	[tests/tset.c] More mpfr_set_inf tests.

	[tests/tset.c] More mpfr_set_zero tests.

	[tools/mbench/timp.h] Spelling mistake in a comment.

2014-12-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added a TODO.

	[src/sum.c] Added missing closing parenthesis from r9257. Step 8 update.

	[doc/sum.txt] Step 8: renamed "sgn" to "sst".

	[doc/sum.txt] Merged old Step 9 with Step 8; minor changes.

	[src/sum.c] Avoid a loop in some cases.

	[src/sum.c] Remember the rounding bit for Step 9; correction for
	halfway cases in round to nearest.

	[doc/mpfr.texi] Updated the month.

2014-12-16  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Added an item about improved caching.
	[NEWS,doc/mpfr.texi] In particular, mention the minimum of 10% increase
	of the precision (done in r8967).

	[NEWS] Note that the behavior of the mpfr_set_exp function changed.
	[src/Makefile.am] As this changed the ABI (the old, unwise behavior
	was documented), reset -version-info age. This is not that bad since
	there are other changes in the behavior, though regarded as bugs or
	previously undocumented behavior.

	Moved src/sum.txt into the doc directory, and updated the reference
	in src/sum.c.

2014-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Update (Step 9).

	[src/sum.txt] Correction.

2014-12-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.*] Update.

2014-12-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Mention the tools/build-patch script.

2014-12-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	pointed to Feature Request

2014-11-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Determine the number of cancelled bits in sum_raw instead
	of the main loop, since it will also be useful in Step 8.

	[src/sum.*] Update (Step 8).

2014-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed issue reported by Dan Grayson:
	https://gforge.inria.fr/tracker/?func=detail&atid=619&aid=18314&group_id=136

2014-11-13  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Minor change concerning mp_limb_t.

2014-11-12  Vincent Lefèvre  <vincent@vinc17.net>

	Style improvements.

	[src/exp_2.c] Improved t = 0 test.

	[src/exp_2.c] Fixed a bug added in r9233 (a case t = 0 was no longer
	taken into account).

	[src/exp_2.c] GNU coding style.

2014-11-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improve mpfr_exp2 (patch from Patrick Pelissier)

2014-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	improve mpfr_atan for small precision (patch from Patrick Pelissier)

	added check for libquadmath (not used)

2014-11-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cache.c] Improved mpfr_clear_cache in case mpfr_free_cache is
	called often (like with GC-based systems). Patch by Patrick Pélissier.

	[src] Applied patch by Patrick Pélissier to allocate some constant-size
	MPFR numbers on the stack instead of using mpfr_init2, and replace some
	MPFR_ASSERTN by MPFR_ASSERTD.

2014-10-31  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Improved comments.

2014-10-30  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Free the temporary memory allocated in the Ziv loop ASAP
	and at a single place (the code should be clearer like that).

	[src/get_str.c] Code refactoring.

	[tests/tget_str.c] Code formatting.

	[tests/tget_str.c] Fixed a test that made mpfr_get_str crash with
	logging (even when the base is invalid, the MPFR number must be
	initialized).

	[src/check.c] Added a note saying that mpfr_check() must not be called
	  on statically allocated numbers (only used inside MPFR).
	[src/get_str.c] Removed the "MPFR_ASSERTD (mpfr_check (p));" (added in
	  previous commit) because of that.

	[src/get_str.c] Added some logging (MPFR_LOG_*), which triggers a crash
	in tget_str with MPFR_LOG_ALL=1. An analysis with gdb shows that this
	is due to an invalid MPFR number in mpfr_ceil_mul(). Added a
	  MPFR_ASSERTD (mpfr_check (p));
	there, which fails in tget_str (this was the cause of the crash), even
	without logging.

2014-10-29  Vincent Lefèvre  <vincent@vinc17.net>

	mpfr_get_str now sets the NaN flag on NaN input. See:
	  https://sympa.inria.fr/sympa/arc/mpfr/2014-10/msg00013.html and
	  https://gforge.inria.fr/tracker/index.php?func=detail&aid=18228&group_id=136&atid=619
	Also completed the mpfr_get_str description in mpfr.texi concerning
	the special numbers and the exception flags.

2014-10-28  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Removed a spurious "an".

	[src/get_str.c] Improved style consistency.

	[doc/mpfr.texi] In the mpfr_get_str description, note that the type
	mpfr_exp_t is large enough to hold the exponent in all cases.

	[doc/mpfr.texi] Improved mpfr_get_str description concerning the
	returned pointer (it was ambiguous in the case of an invalid base).

2014-10-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Updated the error message last changed.

	[tests/tests.c] Updated the error message last changed + comment.

2014-10-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Added a reference to the bug I've just reported
	against GNU Automake (completing the other references).

	[tests/tests.c] Updated the error message last changed.

2014-10-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Changed an error message.

2014-10-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Update.

	[src/sum.c] Improved a comment.

	[src/sum.c] Got rid of maxexp2 in the mpfr_sum function, since after the
	  sum in the main iteration, the old maxexp value is no longer needed:
	  it's simpler to reuse maxexp for maxexp2 since maxexp2 will be the new
	  maxexp value at the next iteration.
	[src/sum.txt] Update, in particular concerning the variables used in the
	  implementation.

2014-09-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Corrections for builds with "config.h".

2014-08-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Reset copyright years to 2014 since the whole file is
	being rewritten from scratch (i.e. everything is new material).

	[src/sum.txt] Update.

2014-08-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.*] Update (Step 7, including a part of Step 8 in Step 7).

	[src/sum.c] Correction (Step 7).

	[src/sum.c] Corrected r9197 (two "else" branches were mixed up), and
	update (Step 8).

	[src/sum.c] Correction when determining the early value of inex.

	[src/sum.c] Update (Step 8).

	[src/sum.txt] Update about the value of d.

	[src/sum.c] Added comments for Step 7 about carry and inex.

2014-08-22  Vincent Lefèvre  <vincent@vinc17.net>

	Merged the latest changes from the trunk (here, tools/mpfrlint).

	[tools/mpfrlint] Avoid false positives in the check of MPFR_LOG_MSG.

	[src/sum.*] Update (Step 7).

2014-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Updated Note 2 again.

	[src/sum.txt] Updated Note 2.

	[src/sum.*] Various corrections, and update.

	Merged the latest changes from the trunk.

	[src] Cleaner use of MPFR_SET_SIGN.

2014-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comments.

	[src/sum.c] Update (Step 7).

	[src/sum.c] Improved description of sum_raw.

	[src/sum.c] Added description of sum_raw.

2014-08-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Suppressed a level of block (which became rather useless
	now that Step 3 has been moved to a separate function).

	[src/sum.c] Moved Step 3 to a separate auxiliary function sum_raw.

	[src/sum.c] Renamed variables: p -> x, pe -> xe, pq -> xq (because
	the p suffix is used here for pointers to mp_limb_t).

	[src/sum.c] Updated comments.

2014-08-17  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added item on tests (mpfr.h macros vs mpfr-impl.h).

	[src/mpfr.h] Fixed the mpfr_signbit() macro, which depended on
	mpfr-impl.h (the problem wasn't detected in the tests since mpfr-impl.h
	is included in them). Thanks to Rob for the bug report.

2014-08-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.*] Update (Step 7).

2014-08-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Update.

	[src/sum.txt] Update (another tricky case).

2014-08-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Update.

	[src/sum.txt] Update.

2014-08-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.*] Completed Step 6.

2014-08-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.txt] Update.

	[src] Moved the comment about the mpfr_sum algorithm from sum.c to
	a new file sum.txt (this will later go into algorithms.tex).

2014-08-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated the algorithm.

	[src/sum.c] Updated the algorithm.

2014-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Added some log messages.

	Merged the latest changes from the trunk (but reverted tests/tsum.c).

	[tools/mpfrlint] Improved check of MPFR_LOG_MSG.

	[tools/mpfrlint] Replaced {src,tests}/*.{c,h} by $srctests.

	[src/ai.c] Corrected log messages.

	[doc/mpfr.texi] Updated the month.

	Update concerning the P type specifier for formatted output, since
	mpfr_prec_t was changed to a signed type in MPFR 3.0.0.
	  * doc/mpfr.texi: d and i can be used (o, u, x, and X are still OK
	    in practice since a mpfr_prec_t value is usually nonnegative);
	    changed a "unsigned int" to "int".
	  * src/vasprintf.c: updated a comment.

2014-07-23  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpf_compat.h] Fixed a bug (mpf_set_prec_raw usage with GMP/MPF).

	[tests]
	  * mpfr-test.h: no longer include <stdio.h> right here since the
	    included mpfr-impl.h does that and even better for C++.
	  * mpf_compat.c, mpfr_compat.c: include mpfr-test.h as it does useful
	    things (in particular, include config.h via mpfr-impl.h if there
	    is one, and define __MPFR_TEST_H__ for mpfr-impl.h).
	  * mpf_compat.h: no longer include some headers already included
	    via mpfr-test.h (see above change); added tests_start_mpfr and
	    tests_end_mpfr (showing memory inconsistency with mpf_compat).

2014-07-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_str.c] Coding style: better code for a boolean.

2014-07-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Update.

2014-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": check also without mpz_t caching.

	[tools/ck-copyright-notice] Ignore src/mini-gmp.[ch] files.
	[tools/mpfrlint]
	  * Ignore src/mini-gmp.[ch] files for some tests.
	  * Check that __gmp[nz]_ functions are not used (with 2 exceptions),
	    since this breaks the support of mini-gmp and may also break
	    future/modified GMP versions.
	    Note: only code added in r8911 (mpz_t caching) currently fails to
	    follow this rule.

	Do not test include guards before a #include: the test must be done only
	in the included file itself. Note that some files such as mpfr.h may
	have multiple parts that could be enabled depending on the context, so
	that testing a guard before a #include may yield incorrect behavior.

2014-07-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated the list of macros used for building and
	checking MPFR.

	[acinclude.m4] Corrected a message.

2014-07-08  Vincent Lefèvre  <vincent@vinc17.net>

	Renamed the MPFR_TEST_DIVBYZERO macro to MPFR_TESTS_DIVBYZERO
	for consistency with MPFR_TESTS_TIMEOUT.

2014-07-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Minor improvements.

	[tests/reuse.c,tests/taway.c] Added mpfr_ai and mpfr_digamma.

	[tests/tmul_d.c] Minor improvement.

	[src/mul.c] Fixed a test when MPFR_WANT_ASSERT >= 2 (NaN with non-NaN
	was not detected as an error).

	[src] MPFR_WANT_ASSERT clean-up.
	Note: the mul.c test for MPFR_WANT_ASSERT >= 3 is now enabled for
	MPFR_WANT_ASSERT = 2 (since setting MPFR_WANT_ASSERT to 3 was not
	possible with configure options), and fixed.

	Added debug of branch prediction / --enable-debug-prediction configure
	option (patch from Patrick Pélissier, with some changes).

2014-07-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_raw_generic.c] Updated comment about MPFR_RNDNA.

	[doc/mini-gmp] Added a note about MPFR_USE_MINI_GMP.

	[doc/README.dev] Added an item on the use of GMP functions.

	[doc/README.dev] "To make a release": test with mini-gmp.

	Removed the need of MPFR_USE_MINI_GMP tests for mpfr_[ne]random
	functions (source and tests) as mpfr_random_deviate_value no longer
	needs mpq_t (since r9066). Also removed a static assertion in
	src/random_deviate.c for the same reason.
	Note: the change done in r9133 is now really useful!

	[src/mpfr.h] Added other missing "#ifndef MPFR_USE_MINI_GMP".

	[tests/t[ne]random.c] Code clean-up: added !defined(MPFR_USE_MINI_GMP)
	to protect mpfr_printf. This is actually not needed due to the initial
	"#ifndef MPFR_USE_MINI_GMP" but this is for a different reason.

	[tests/t[ne]random.c] Reverted the changes done in r9126,9127,9130
	and added a proper comment.

	[src/mpfr.h] Added a missing "#ifndef MPFR_USE_MINI_GMP"
	(not really useful, but cleaner).

	[tests/t[ne]random.c] Fixed the change done in r9126 and r9127.

	Renamed WANT_MINI_GMP to MPFR_USE_MINI_GMP as it is used in mpfr.h
	(all MPFR macros that appear there should start with MPFR_ to avoid
	conflicts with other software).

	[tools/mpfrlint] Detect the possible use of forbidden macros in mpfr.h.

	[tests/terandom.c] Put the WANT_MINI_GMP test at the right place, like
	what has been done for "tests/tnrandom.c".

	[tests/tnrandom.c] Put the WANT_MINI_GMP test at the right place
	(at the same time of the HAVE_STDARG test), but this should be
	improved in the future, e.g. with a HAVE_MPFR_PRINTF macro.

2014-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added comment

2014-07-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Minor correction of a comment.

2014-07-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trandom_deviate.c] Correction (fprintf format).

2014-07-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patch from Charles Karney:
	> Here is the patch which repeats the chi-squared tests in the case of
	> suspiciously high values.  The probability of a false positive is now
	> 1/10^9.  I also got rid of the mpfr_printf's.

2014-06-30  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/build-patch]
	  * Removed unnecessary quotes for better readability (this is zsh).
	  * When <patchlevel> (second argument) is used, use the correct name
	    for the generated patch; at the same time, fixed a checkobj call.
	  * Added comment about typical usage.

	[tools/build-patch] Correction if MPFR_CURRENT_DIR is set: to make sure
	that it is always up-to-date, we want to allow it to be a symlink (e.g.
	.../mpfr-current), so that we want to call realpath on it.

	Added tools/build-patch zsh script to transform a raw patch into a patch
	to be put on the MPFR www server.

	[src/mpfr.h] For the mpfr_{mul,div}_si macros: s/positive/non-negative/

	[configure.ac] Correction of two "configure --help" messages
	(from Patrick Pélissier and other changes).

	[src/mpfr.h] Coding style.

	New macros for mpfr_{mul,div}_ui to optimize the call when the integer
	is a constant number that is a power of 2.
	New macros for mpfr_{mul,div}_si to optimize the call when the integer
	is a constant number that is positive.
	(Modified patch from Patrick Pélissier)

2014-06-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Improved comments.

	[src/vasprintf.c] Fixed assertion failures for tiny numbers (the code
	was correct, but the assertions didn't check against the right bound).

	[src/div.c] Bug fix: avoid integer overflow in the code added in r9086
	(now tdiv no longer fails).

	[src/div.c] Bug fix: avoid an integer overflow when dividing the
	largest finite MPFR number by the smallest positive one.
	(merged changeset r9105 from the 3.1 branch)

	[tests/tdiv.c] Forgot "exit (1);".

	[tests/tdiv.c] Added mpfr_div tests on extreme values. This detects
	2 problems (at least on a 64-bit machine): a result is not a valid
	MPFR number (mpfr_check fails) and the flags are incorrect.

2014-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Fixed test added in r9099 (the problem was unrelated
	to the bug in vasprintf.c).

	[tests/tsprintf.c] Added a test with the minimum exponent
	(currently triggers an assertion failure in vasprintf.c).

2014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	define MPFR_SKIP_EXTREME to avoid currently failing tsum test

2014-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Do not run the check_extreme test (which currently fails)
	when the MPFR_SKIP_EXTREME environment variable is defined.

2014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	reconfigure for mpfrbench

	speedup in mpfr_div for n/n division, using mpz_tdiv_q

2014-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Check when simple mp_limb_t constants could be used
	(MPFR_LIMB_ZERO, MPFR_LIMB_ONE, and MPFR_LIMB_MAX).

	Merged the latest changes from the trunk.

	Use MPFR_IS_NEG and MPFR_IS_POS instead of comparing the sign with 0.
	Done with
	  perl -pi -e '
	    s/MPFR_SIGN *\(([^)]+)\) *<=? *0/MPFR_IS_NEG ($1)/g;
	    s/MPFR_SIGN *\(([^)]+)\) *>=? *0/MPFR_IS_POS ($1)/g;
	    ' {src,tests}/*.{c,h}
	and some manual changes.

	More code clean-up (for both consistency and readability):
	  * Use the simple mp_limb_t constants when possible.
	  * New internal macro MPFR_IS_NORMALIZED.
	Note: this was done with
	  perl -pi -e '
	    s/~ *\(mp_limb_t\) *0/MPFR_LIMB_MAX/g;
	    s/\(mp_limb_t\) *-1/MPFR_LIMB_MAX/g;
	    s/\(mp_limb_t\) *0/MPFR_LIMB_ZERO/g;
	    s/\(mp_limb_t\) *1L?/MPFR_LIMB_ONE/g' {src,tests}/*.{c,h}
	  svn revert src/mpfr-impl.h
	and some manual changes.

	Code clean-up:
	  * Simplified the definition of simple mp_limb_t constants: it is
	    better to avoid GMP internals when there is a standard way.
	  * Replaced the use of MP_LIMB_T_MAX by the new macro MPFR_LIMB_MAX.
	  * So, removed the now useless MP_LIMB_T_MAX and GMP_LIMB_HIGHBIT
	    definitions from "mpfr-gmp.h".

	[src/mpfr-mini-gmp.h] GMP_NUMB_MASK is no longer needed.

	[tests/random2.c] Removed a useless use of GMP_NUMB_MASK.

	[src/div.c] In the case where the divisor has one limb (latest commit),
	check that the value of this limb fits in an unsigned long, otherwise
	mpfr_div_ui cannot be used. Indeed, according to the GMP manual §2.2,
	a limb may be a long long (actually unsigned):
	  For example in some 32-bit ABIs, GMP may support a limb as either a
	  32-bit `long' or a 64-bit `long long'.
	Note: if a limb is an unsigned long, this new test will be no-op, since
	always true.

2014-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	speedup of mpfr_div when divisor has one limb

2014-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/random_deviate.h] Fixed prototypes:
	  * Added __MPFR_DECLSPEC to avoid failure with Windows DLL; see
	    https://sympa.inria.fr/sympa/arc/mpfr/2014-06/msg00003.html
	  * Added _MPFR_PROTO for consistency (though it will probably
	    be removed in the near future).
	  * Removed variable names (coding style).

2014-06-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Added terandom_chisq and tnrandom_chisq to svn:ignore property.

	[tests] Applied patch by Charles Karney (chi-squared tests for
	mpfr_[ne]random), together with the contents of his mail about
	this patch.

2014-06-23  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2014-06-22  Vincent Lefèvre  <vincent@vinc17.net>

	Updated URL's.

	[doc/README.dev] Updated URL's (use of https instead of http).

2014-06-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] At Step 2, ignore the input bits of exponent >= maxexp.

	[src/sum.c] Fixed maxexp2 update, and added truncflag for future
	truncation on the most significant part >= maxexp at Step 2 (TODO).

2014-06-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Another major update concerning the algo and Step 2.

	[src/sum.c] Added a TODO about carry propagation (so, it seems that
	using two windows may not really be that interesting to guarantee a
	low complexity).

2014-06-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Implemented Step 2.

	[tests/trandom_deviate.c] New version, with fixes of ternary value
	(inexact) handling by Charles Karney.

	[tests] Added trandom_deviate to svn:ignore property.

	[tests/trandom_deviate.c] GNU style and C90 compatibility.

	[doc/README.dev] Updated note about ternary values (macros).

	[doc/README.dev] Added a note about ternary values.

2014-06-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patches from Charles Karney

2014-06-17  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trandom_deviate.c] Removed useless "#ifdef HAVE_STDARG":
	printf is a standard C function and is always defined.

	[tests/trandom_deviate.c] GNU style. Pre-C99 compatibility
	(statements after declarations).

	[tests/trandom_deviate.c] Untabified.

2014-06-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated the algorithm and started to rewrite again,
	in a cleaner way and with more comments.

2014-06-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added trandom_deviate.c to improve coverage (contributed by Charles Karney)

	updated information about coverage test

2014-06-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] English usage in a comment.

2014-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Updated a comment.

2014-05-22  Vincent Lefèvre  <vincent@vinc17.net>

	Changed "INRIAGForge" to "InriaForge" (due to the rename).

2014-05-14  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Correction about clang sanitizer: mention the
	-fno-sanitize=float-cast-overflow,float-divide-by-zero option.

	[doc/README.dev] About clang sanitizer, mention the
	-fno-sanitize=float-divide-by-zero option.

2014-05-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added description of algorithm used for mpfr_log (from Sylvie Boldo)

2014-04-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated an old note about GCC 4.9.

	[doc/README.dev] Completed the note about GCC's sanitizer. See
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44786 (sanitizer)
	  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60275 (no recover)

	[doc/README.dev] Completed the note about GCC's sanitizer.

	[doc/README.dev] Mention that GCC 4.9 supports "-fsanitize=undefined".

2014-04-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tpow.c] Removed comment that can now be confusing: try_mpfr.html
	was actually not using the mpfr_pow function, but exp(y*log(x)).

	[tests/tpow.c] Added a test corresponding to buggy output on
	http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html but everything
	is OK in r9038.

2014-04-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Update about patches and autotools files.

	[doc/README.dev] Update about patches and autotools files.

	[tests/tsum.c] Changed initialization in check_extreme(), which wasn't
	supported by ISO C90.

	[free_cache.c] Avoid mixed declarations and code for ISO C90 support.

	Re-added configure test on GMP_NUMB_BITS and sizeof(mp_limb_t), and
	updated it:
	  * BYTES_PER_MP_LIMB is no longer tested (see r9029).
	  * The test is now always run, not just when --with-gmp-build is used.
	  * Results are output in config.log in case of failure.
	  * The error message has been updated.

2014-04-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	BYTES_PER_MP_LIMB -> MPFR_BYTES_PER_MP_LIMB for GMP 6 compatibility
	when --with-gmp-build is used. See mailing-list discussion:
	  https://sympa.inria.fr/sympa/arc/mpfr/2014-04/msg00000.html

2014-04-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comment to be even more clear, with more details.

2014-04-07  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Updated comment.

	[src/sum.c] Updated comment.

	[src/sum.c] Improved (corrected) algo in comment. Code not updated.

2014-03-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Update.

	[src/sum.c] Added a comment.

	[src/sum.c] Update.

2014-03-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] More thoughts about the algorithm and its implementation.

2014-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	other argument reduction for log_ui

2014-03-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mpn_sqrtrem (rp, sp, sp, rrsize) is faster than
	mpn_sqrtrem (rp, NULL, sp, rrsize): avoids one allocation and one copy

2014-03-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Update.

	Merged the latest changes from the trunk.

	Added MPFR_PREC_COND, MPFR_PREC_IN_RANGE and MPFR_GET_PREC internal
	macros (to mpfr-impl.h). Use these macros at some places in the code
	(replacing some MPFR_PREC instances, as suggested by a patch from
	Patrick Pélissier).

	[src/mpfr-impl.h] Added an MPFR_ASSERTD in MPFR_MPZ_SIZEINBASE2
	(from a patch by Patrick Pélissier).

	[src/sqrt.c] Replaced a MPFR_EXP by MPFR_SET_EXP (from a patch by
	Patrick Pélissier).

	[src/div.c] Added MPFR_ASSERTD assertions and improved a test
	(patch from Patrick Pélissier).

2014-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed FIXME

2014-03-17  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.*] A formula about radix conversion was incorrect
	(and didn't match the correct code) when the output radix b is a
	power of two. Added reference to Matula's "In-and-Out Conversions"
	(correctness and optimality of the formula) and left a FIXME.
	For more information, see the August/September discussion in the
	MPFR list, particular subthreads starting at:
	  https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00028.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00000.html
	  https://sympa.inria.fr/sympa/arc/mpfr/2012-09/msg00011.html

2014-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added item

2014-03-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added item (mpfr_log_ui)

2014-03-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/sum.c] Corrected the detection of Inf. Improved algo in comment.

	[tests/tsum.c] Improved check_more_special test.

	[tests/tsum.c] Added check_more_special test.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Correction in the mpfr_set_str description.

	Rewrote special cases of mpfr_sum.

2014-03-10  Vincent Lefèvre  <vincent@vinc17.net>

	Added a TODO item concerning gmp_op.c functions with mpz_srcptr and
	the use of mpz_fits_slong_p and a mpfr_*_si function (see r8992).

2014-03-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fixed the mpfr_get_default_rounding_mode() macro for
	C++ (it didn't have the correct type), and improved the similar ones.

	[src/lngamma.c] Fixed allocation.

	[src/lngamma.c] Temporarily disabled fast argument reconstruction
	because it doesn't compile with g++.

2014-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing spaces.

2014-02-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[lngamma.c] implemented fast way of computing x*(x+1)*...*(x+k-1)
		    (it remains to speed up the computation of the Bernoulli numbers)

	speedup of the mpfr_xxx_z functions when z fits in a long

	explicit possible speedup in mpfr_[ln]gamma

2014-02-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Avoid inconsistent spaces.

2014-02-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mbench/README] Conversion into UTF-8.

	[tools/mbench] Replaced GMP_RNDx by MPFR_RNDx.

2014-02-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	definitively fix the name mpfr_min_prec

2014-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/bernoulli.c] Minor bug fixed and other improvements.

2014-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	update for mpfr_gamma and Bernoulli numbers

2014-02-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/bernoulli.c] Fixed pointer types (build failure with -Werror).

	[src/mpfr-impl.h] Removed obsolete mpfr_bernoulli_internal prototype,
	which makes the compilation of bernoulli.c fail.

	[src/bernoulli.c] Improved isprime() by using MPFR_ASSERTD.

2014-02-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use a faster algorithm (based on Von Staudt–Clausen theorem) to compute
	Bernoulli numbers -> speedup in mpfr_*gamma and mpfr_li2

2014-02-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more changes suggested by Wolf Lammen (and also test 2^(-1074))

2014-02-16  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/memory.c] Limit heap memory to 4 MB. This should be sufficient.
	Currently, only tsum should fail, but mpfr_sum will be rewritten soon.

2014-02-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d.c] Fixed type to avoid non-representable unsigned → signed
	conversion.

	[src/set_d.c] Correction when MPFR_WANT_ASSERT is defined.

	Untabified and removed trailing spaces.

2014-02-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	partial patch from Wolf Lammen:
	- move the normalization code, necessary in an extremely rare corner case only,
	  out of the way of the normal case, for speed up

	Rename MPFR gmp_randstate_ptr into mpfr_gmp_randstate_ptr
	(patch from Patrick Pélissier)

2014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	print message for "possibly double-double, little endian" long double format

	different fixes for set_ld, get_ld and cmd_ld with double-double

2014-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Fixed an assertion to support systems where
	2^1023 + 2^(-1074) is exactly representable, while not detected
	as double-double.

2014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	recognize long-double format for ppc64le
	(https://sympa.inria.fr/sympa/arc/mpfr/2014-02/msg00014.html)

2014-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added item on special case of mpfr_add and mpfr_sub.

2014-02-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added test for get_ld

2014-02-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/cache.c]
	  * Improved r8966: Setting the cache size to 10% more than the
	    requested precision may be a bad idea in large precisions.
	    It's better to guarantee a minimum of 10% increase; if the
	    user wants to, he can still control the maximum precision by
	    pre-computing the constant at this precision. Also make sure
	    that if pold == 0, the mpfr_init2 size is the same as the
	    mpfr_set_prec one (in order to avoid immediate reallocation).
	  * Replaced a comment by a couple of MPFR_ASSERTD's.

2014-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	when recomputing a constant, use a precision 10% larger than the wanted
	precision to avoid many recomputations

2014-02-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/round_raw_generic.c] Added a FIXME comment for MPFR_RNDNA.

	[src/bernoulli.c] GNU style.
	[src/mpfr-impl.h] Corrected prototypes.

2014-02-13  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	implement cache for Bernoulli numbers (patch from Patrick Pélissier)
	tuned parameters for [ln]gamma now that we cache Bernoulli numbers

	added bench target so that we can simply do "make bench"

2014-02-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added test for double-double

	added comment about mpfr_gamma

	forgot to restore the exponents in last commit

	added reference for efficiency issue with mpfr_gamma

	improve mpfr_gamma at around 1000 bits

2014-02-12  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Merged the set_exp branch into the trunk. Changes:
	  * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
	    the MPFR_EXP_CHECK case. There are 2 consequences:
	    1. The exp expression is evaluated several times (this should be
	       OK with the MPFR code and optimizations).
	    2. The real value of exp is tested for the assertion, instead of
	       the value converted to mpfr_exp_t. Thus new bugs could be found
	       (e.g. when an unsigned type is used instead of signed).
	  * src/set_exp.c: set the exponent only if x is a non-zero ordinary
	    number, i.e. already has a valid significand and a valid exponent
	    (thus it is no longer a low-level function, and it can no longer
	    generate an invalid value from a valid one).
	  * doc/mpfr.texi: updated mpfr_set_exp description and added an item
	    in the "API Compatibility / Changed Functions" section.
	  * Clean-up.
	Original discussion:
	  https://sympa.inria.fr/sympa/arc/mpfr/2011-01/msg00092.html

	[src/rint.c] Added FIXME comment.

	[src/next.c] Improved handling of special values.

	[src/hypot.c] Reverted changeset r8950 (MPFR_SET_EXP is OK).

	[src/hypot.c] Replaced a MPFR_SET_EXP by MPFR_EXP.

	[src/fpif.c] Bug fixes and code clean-up. At the same time, took the
	future mpfr_set_exp change into account (see set_exp branch).

	[src/set.c] Cosmetic change.

	[src/fpif.c] English usage.

	[src/cache.c] Replaced a MPFR_SET_EXP by MPFR_EXP (in practice, the code
	was working, but just because MPFR_DECL_INIT_CACHE inits the cache with
	a real exponent, though the significand pointer is null).

2014-02-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mul.c] Cosmetic change.

	[src/atan.c] Fixed types of some variables, in particular
	unsigned → signed conversion of non-representable value
	(detected due to the new MPFR_SET_EXP assertion check in
	the set_exp branch).

	[src/atan.c] Fixed types of some variables, in particular
	unsigned → signed conversion of non-representable value.
	Now, all the tests pass on Linux/x86_64.

	[src/exp3.c] Fixed types of some variables, in particular
	unsigned → signed conversion of non-representable value
	(detected due to the new MPFR_SET_EXP assertion check in
	the set_exp branch).

	[src/exp3.c] Fixed types of some variables, in particular
	unsigned → signed conversion of non-representable value.
	Now, 161 tests pass and 8 tests fail on Linux/x86_64.

	[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
	particular unsigned → signed conversion of non-representable value
	under some conditions.

	[src/{set_ui_2exp.c,set_uj.c}] Fixed types of some variables, in
	particular unsigned → signed conversion of non-representable value
	under some conditions.
	This doesn't change the number of failed tests.

	[src/{sqrt_ui.c,sub_ui.c,ui_div.c,ui_sub.c}] Changed cnt type from
	unsigned long to int (signed) due to the MPFR_SET_EXP requirement.
	Otherwise the code was correct.
	Now, 160 tests pass and 9 tests fail on Linux/x86_64.

	[src/mpfr-impl.h] Added a comment about MPFR_SET_EXP: exp is required
	to have a signed type.

	[src/{set_d.c,set_f.c}] Type clean-up to improve maintainability.

	[src/random_deviate.c] Type clean-up to improve maintainability.

	[src/set_si_2exp.c] Fixed unsigned → signed conversion of
	non-representable value when mpfr_exp_t has the same size
	as int.

	[src/set_si_2exp.c] Fixed unsigned → signed conversion of
	non-representable value when mpfr_exp_t has the same size
	as int (unrelated to MPFR_SET_EXP change).

	[src/add_ui.c] Cosmetic changes.

	[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
	value (detected due to the new MPFR_SET_EXP assertion check in the
	set_exp branch).

	[src/add_ui.c] Fixed unsigned → signed conversion of non-representable
	value (detected due to the new MPFR_SET_EXP assertion check).
	Now, 92 tests pass and 77 tests fail on Linux/x86_64.

	[src/random_deviate.c] Added an assertion.

	[tests/random2.c] Fixed unsigned → signed conversion of
	non-representable value (detected due to the new MPFR_SET_EXP
	assertion check in the set_exp branch).

	[tests/random2.c] Fixed unsigned → signed conversion of
	non-representable value (detected due to the new MPFR_SET_EXP
	assertion check).
	Now, 87 tests pass and 82 tests fail on Linux/x86_64.

	Updated src/urandomb.c due to the change of mpfr_set_exp behavior.
	Now, 77 tests pass and 92 tests fail on Linux/x86_64.

	[tests/trandom.c] Improved test to get an assertion failure instead of
	a segmentation fault.

	Start of mpfr_set_exp behavior clean-up.
	  * src/mpfr-impl.h: updated the MPFR_SET_EXP(x, exp) definition for
	    the MPFR_EXP_CHECK case. There are 2 consequences:
	    1. The exp expression is evaluated several times (this should be
	       OK with the MPFR code and optimizations).
	    2. The real value of exp is tested for the assertion, instead of
	       the value converted to mpfr_exp_t. Thus new bugs can be found
	       (e.g. when an unsigned type is used instead of signed).
	  * src/set_exp.c: set the exponent only if x is a non-zero ordinary
	    number, i.e. already has a valid significand and a valid exponent
	    (thus it is no longer a low-level function, and it can no longer
	    generate an invalid value from a valid one).
	  * doc/mpfr.texi: updated mpfr_set_exp description and added an item
	    in the "API Compatibility / Changed Functions" section.
	Currently 73 tests pass and 96 fail on Linux/x86_64, either due to bugs
	or due to code not yet updated for this change.

	Set svn:ignore property on the tools/bench directory.

2014-02-06  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c] Added a note about the test for infinity.

2014-02-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	make -> make mpfrbench

2014-02-05  Vincent Lefèvre  <vincent@vinc17.net>

	Removed MPFR_CHECK_MAX as it is now useless: all "max" tests succeed.

	[src/lngamma.c] Fixed bug introduced in the latest change r8917
	(inexact was not initialized in the case compared < 0).

2014-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added code for large inputs in lngamma/lgamma

2014-02-04  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Suggest timing-based thresholds for asymptotic expansions.

2014-02-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	use asymptotic expansion for large positive argument

2014-01-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	tiny change to distinguish different versions of the manual

2014-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src] Add constants:
	  * __gmpfr_mone = -1
	  * mpfr_const_log2_RNDD = log(2) rounded down in precision 64 bits
	  * mpfr_const_log2_RNDU = log(2) rounded up in precision 64 bits
	(modified patch from Patrick Pélissier).

2014-01-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added reference

2014-01-29  Vincent Lefèvre  <vincent@vinc17.net>

	[src] mpz_t caching (modified patch by Patrick Pélissier).

	[src/const_pi.c] Rewrote a condition to avoid a potential
	integer overflow (?) and match a comment.

	[src/const_pi.c] Use of GROUP allocation and minor optimization
	(modified patch by Patrick Pélissier).

2014-01-28  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added a note about "rounding to odd" / "sticky rounding".

2014-01-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Run-time assertions concerning relations between
	the MPFR exponent type and the long type are allowed (see r8896).

2014-01-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/mpf_compat.h] In MPFR mode, skip the tests when mpfr_exp_t is not
	a long.

	[tests/tset_ld.c] Fixed printf argument.

	[tests/tgamma.c] Fixed printf argument (bug detected with
	_MPFR_EXP_FORMAT=2 and -Werror=format=).

	[tools/bench/mpfrbench.c] No longer use the numberof macro, and
	#include "mpfr.h" instead of "mpfr-impl.h", so that mpfrbench.c
	can now be linked against an installed MPFR library.

2014-01-24  Vincent Lefèvre  <vincent@vinc17.net>

	Added MPFR_CHECK_GMP configure check.
	Useful if the user provides --with-gmp with a directory containing
	a GMP version that doesn't have the correct ABI: the previous tests
	won't trigger the error if the same GMP version with the right ABI
	is installed on the system, as this library is automatically
	selected by the linker, while the header (which depends on the ABI)
	of the --with-gmp include directory is used. Before this test, one
	was getting an error in MPFR_CHECK_DBL2INT_BUG, though the error is
	not related to a double-to-integer conversion bug.

	[src/mpfr-impl.h] Corrections for the case _MPFR_EXP_FORMAT == 4:
	   * No longer use MPFR_EXP_MIN and MPFR_EXP_MAX unconditionally in
	     a #if directive, since if MPFR_HAVE_INTMAX_MAX is not defined,
	     the compilation fails. The test was not really useful anyway:
	     if one really wants mpfr_eexp_t to be long int if mpfr_exp_t
	     has the same range as long int, then _MPFR_EXP_FORMAT == 3 is
	     sufficient (and this is the default).
	   * Removed a test that should be always true due to the previous
	     inclusion of mpfr.h (intmax_t has already been used there in
	     the case _MPFR_EXP_FORMAT == 4).

	[doc/README.dev] Rephrased paragraph added in r8897.

	[doc/README.dev] Added a note for Automake 1.13+ and failed tests.

	[src] Replaced some MPFR_ASSERTN's by MPFR_STAT_STATIC_ASSERT (from the
	detection by mpfrlint). Note: the MPFR_ASSERTN's concerning relations
	between the MPFR exponent type and the long type have not been replaced
	because these tests may fail with the non-standard _MPFR_EXP_FORMAT = 4
	on some platforms (e.g. 32-bit ones), and we still want to be able to
	build MPFR in this case in order to test it; this needs to be fixed.

	[tools/mpfrlint] Constant checking in assertions.

	[src/mpfr-mini-gmp.c] Use lower case for function parameters.

2014-01-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	re-enable assertions (patch from Patrick Pélissier)

	removed an MPFR_LIKELY that is not so likely...

2014-01-24  Vincent Lefèvre  <vincent@vinc17.net>

	Optimization: likely / unlikely, etc. (patch by Patrick Pélissier).
	Coding style.

	[tune/tuneup.c] Fix compilation error due to static assertion being
	wrong (patch by Patrick Pélissier).

	[src/const_log2.c] Optimization by using GROUP allocation (patch
	by Patrick Pélissier).

	[src/exp_2.c] Optimization: Increase the initial estimate of the number
	of iterations (patch by Patrick Pélissier).

	[src/erfc.c] Use of static assertion instead of run time assertion
	(patch by Patrick Pélissier).

	[src/sum.c] Removed trailing spaces.

	[src/sin_cos.c] Optimization: use of MPFR_MPZ_SIZEINBASE2, GROUP
	allocation, and MPFR_ALIAS (modified patch by Patrick Pélissier).

	[tools/mbench/mfv5-libc.cc] Fix warning when compiling with recent GCC
	due to unused but set variable (patch by Patrick Pélissier).

2014-01-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	revert to EXTRA_PROGRAMS (bin_PROGRAMS is installed in /usr/local/bin,
	which is not what we want, we could use noinst_PROGRAMS, which would be
	compiled automatically, but for coherence with GNU MPC we use EXTRA_PROGRAMS
	which is not compiled automatically)

	divide the global score to get a number around 1000

	added reference

	gnu style

2014-01-23  Vincent Lefèvre  <vincent@vinc17.net>

	Added libtool-tcc-wl.patch patch from
	  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663945#46
	to add tcc support to libtool 2.4.2 and below.
	In doc/README.dev, documented how to use this patch (before a release).

	[tests/tadd.c] Added check_extreme test (huge + tiny).
	[tests/tsum.c] Added check_extreme test (same test as in tadd.c,
	  but with mpfr_sum instead of mpfr_add), and temporarily disabled
	  the cancel test.

	Use of the numberof macro.

	[tools/bench/mpfrbench.c] Whitespace clean-up.

	[src/const_euler.c] Removed trailing spaces.

	[tools/bench/Makefile.am] Fix for separate build directory (problem
	detected with "make distcheck").

	[src/sum.c] Updated comment.

	[src/sum.c] Updated comment.

	[src/sum.c] Added a possible algorithm in comment.

	[src/sum.c] Added FIXME comment.

2014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	missing space

	Mickaël is the only author of MPFRbench

	updated authors and contributors

	new code for Euler's constant (contributed by Fredrik Johansson)

	added subdir tools/bench

	added MPFRbench

	added MPFRbench

	make mpfrbench compiled just with "make"

	changes for MPFRbench

	new directory for MPFRbench (contributed by Mickaël Gastineau and Bill Hart)

2014-01-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Added a comment about the cancellation test.

	[tests/tsum.c] In the cancellation test, do a random permutation.

2014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	mention sponsors

2014-01-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] In the cancellation test: reduced the number of tests;
	output debug information when building with -DDEBUG.

	[tests/tsum.c] Added simple cancellation test.

	[tests/tests.c] Fixed tests_default_random in case mpfr_exp_t > long.

	[doc/mpfr.texi] Improved mpfr_sum description.

	[src/sum.c] Do not use bitwise operations on values that can be
	negative. Added comments about what the functions do.

2014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed regression noticed by Patrick Pelissier with --enable-gmp-internals

2014-01-22  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Fixed bug in test_version() introduced in r8821.

	[src/lngamma.c] Fixed divide-by-zero flag for negative integers.
	[tests/tlngamma.c] Test the flags for some special values. Clean-up.

2014-01-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed two items done

2014-01-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{exp.c,exp_2.c}] mpfr_exp optimization (modified patch
	  by Patrick Pélissier).
	[src/round_prec.c] Added a note about the reallocation.

	LIKELY some code.

	[src/lngamma.c] Fixed mpfr_lngamma behavior on nonpositive integers
	  and -Inf.
	[doc/mpfr.texi] Updated the documentation on the general rules for
	  special values and on mpfr_lngamma.
	[tests/tlngamma.c] Update.
	See <https://sympa.inria.fr/sympa/arc/mpfr/2013-08/msg00008.html>
	(behavior of mpfr_lngamma on zero and general rule for such limits).

	[acinclude.m4,configure.ac] Check that a directory passed to
	a --with-gmp* configure option exists and doesn't contain any
	space, and canonicalize the name if the realpath utility is
	available (patch by Patrick Pélissier).

	[src/mul.c] Optimization (modified patch by Patrick Pélissier).

	[src] Added support for MPFR_PURE_FUNCTION_ATTR, MPFR_HOT_FUNCTION_ATTR,
	and MPFR_COLD_FUNCTION_ATTR, and fixed some LIKELY/UNLIKELY conditions
	(modified patch by Patrick Pélissier).

	[src/*.c] Replaced mpfr_set_divby0 by the faster MPFR_SET_DIVBY0,
	  and so on (except for src/exceptions.c).
	[tools/mpfrlint] Update for flags related functions: check that
	  the macros are used in src (except for exceptions.c and mpfr.h)
	  instead of the functions.
	[src/mpfr-impl.h] Removed some useless parentheses in comments,
	  for mpfrlint.

2014-01-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added more detail in case of error

2014-01-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Added MPFR_SET_* macros to set flags efficiently.

	Small mpfr_erf improvement (modified patch by Patrick Pélissier).

	[src/mpfr-gmp.h] TMP_FREE optimization as tmp_marker is often null
	(based on a patch by Patrick Pélissier).

	[configure.ac] --enable-mini-gmp message: fixed layout; experimental.

	[NEWS] Mini-gmp support is experimental.

	[NEWS] Mention the new --enable-mini-gmp configure option.

	[NEWS] Mini-gmp support.

	[NEWS] MPFR now depends on GMP 4.2+. Dropped K&R C compatibility.

	[NEWS] Better Automake 1.13 support.

	Merged the vl-am113 branch: test suite improvement with Automake 1.13.
	  * Moved GMP version check from tversion.c to the test_version()
	    function of tests.c, so that this check is done in every test.
	    This function now returns an int, as there are now 3 cases:
	    1. An error in MPFR version check is a fatal error: test_version()
	       exits with an error (exit status = 1).
	    2. An error in GMP version check is a non-fatal error: if there
	       are no errors in MPFR version check, test_version() returns
	       with value 1.
	    3. Otherwise test_version() returns with value 0 (everything is
	       fine).
	  * tversion.c still runs test_version(), but fails if this function
	    returns with an error, i.e. any error is fatal for this test.
	    Note: for the other tests, one just has a message in the output
	    in case of GMP version mismatch.
	  * mpfr-test.h: updated test_version() prototype.
	  * Makefile.am: removed the second tversion invocation, and output
	    the contents of tversion.log if this file exists (typically with
	    Automake 1.13+, for which one no longer gets tversion output by
	    default).

	[tests/Makefile.am] Removed obsolete comment.

2014-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	Dropped obsolete __gmp_const (replaced by const).

	[TODO] Removed mini-gmp support: done.

	Small mpfr_exp improvement (modified patch by Patrick Pélissier).

	[tools/mbench] Patch by Patrick Pélissier: import base support,
	corei7 support, build fix (with MPFR 3.1+).

2014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	come back to revision 8723 which was faster (measured with tools/mbench/mfv5
	on 53 and 1024 bits). The reason is that the "new" version had overhead for
	mpfr_round_p (about 40 cycles on Core 2) and mpfr_set (about 98 cycles for
	53 bits, and 132 cycles for 1024 bits)

2014-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	Added __builtin_unreachable / MPFR_ASSUME support (modified patch
	from Patrick Pélissier).

	MPFR now depends on GMP 4.2+ instead of 4.1+.
	GMP 4.2 compatibility fixed.
	Code clean-up.
	(Modified patch from Patrick Pélissier)

	[src/fms.c] Coding style.

	[src/fma.c] Changed mp_prec_t to mpfr_prec_t.

2014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added mpfr_fma

2014-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tests.c] Output a \n between two error messages when need be.

2014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	speed up mpfr_fma [common work with Jeroen Demeyer]

2014-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[tests]
	  * Moved GMP version check from tversion.c to the test_version()
	    function of tests.c, so that this check is done in every test.
	    This function now returns an int, as there are now 3 cases:
	    1. An error in MPFR version check is a fatal error: test_version()
	       exits with an error (exit status = 1).
	    2. An error in GMP version check is a non-fatal error: if there
	       are no errors in MPFR version check, test_version() returns
	       with value 1.
	    3. Otherwise test_version() returns with value 0 (everything is
	       fine).
	  * tversion.c still runs test_version(), but fails if this function
	    returns with an error, i.e. any error is fatal for this test.
	    Note: for the other tests, one just has a message in the output
	    in case of GMP version mismatch.
	  * mpfr-test.h: updated test_version() prototype.
	  * Makefile.am: removed the second tversion invocation.

	[tests/Makefile.am] Output the contents of tversion.log if this file
	exists (typically with Automake 1.13+, for which one no longer gets
	tversion output by default).

2014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	simplified the fms code (joint work with Jeroen Demeyer)

	fixed bug in mpfr_exp_3, and memory leak in texp

2014-01-20  Vincent Lefèvre  <vincent@vinc17.net>

	[src/li2.c] Use MPFR_RET_NEVER_GO_HERE () instead of MPFR_ASSERTN (0)
	to avoid an error with:
	  ./configure --enable-logging CFLAGS="-Werror=return-type"; make

	[src/mpfr-impl.h] Updated comment of the MPFR_RET_NEVER_GO_HERE macro.

2014-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new test that currently fails (found with mini-gmp)

2014-01-18  Vincent Lefèvre  <vincent@vinc17.net>

	Spelling consistency:
	  non-negative → nonnegative
	  non-positive → nonpositive

	[doc/README.dev] More on exponent handling.

	[tests/tset_str.c] Fixed and improved a mpfr_set_str_binary random test.
	Some code clean-up.

	[tests/tset_str.c] Removed useless and confusing cast.

	[src/set_d.c] Improved a comment about signed zeros.

2014-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed memory leak

	instructions to compile MPFR with mini-gmp

	disable those tests for mini-gmp

	fixed test which might produce subnormal numbers

	disable two tests that depend on the random generator

	followup from previous commit: 1^Inf is special too

	fixed issue for n^x with x=Inf when the random number n is 0

	fixed issue when x=0 and y=Inf (or converse)

	fixed issue when x=0 and y=Inf (or converse)

	fixed bug in test file

2014-01-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d.c] Fixes and other minor changes suggested by Wolf Lammen:
	https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html

	[src/set_d.c] In extract_double, replaced long by int for exp (it may be
	faster, and shouldn't be slower as it is more restrictive than long).

	[src/set_d.c] Removed obsolete comment from r245.

	[src/set_d.c] Renamed __gmpfr_extract_double to extract_double
	(this is just a static function).

	[src/set_d.c] Fixed __gmpfr_extract_double precondition on d.
	Bug found by Wolf Lammen:
	  https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00007.html

2014-01-18  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more progress with mini-gmp:
	=======================
	9 of 157 tests failed
	(13 tests were not run)
	=======================

2014-01-18  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{ty0,ty1}.c] Reduce emax for the generic tests.

2014-01-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/lngamma.c] FIXME: proposed method for overflow detection.

	[src/lngamma.c] Minor improvements.

2014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	missing \n

	missing \n

	missing \n in error messages

	missing \n in error messages

2014-01-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/lngamma.c] Added a MPFR_LOG_FUNC.

	[src/digamma.c] FIXME: for x large, use the asymptotic expansion.

	[src/digamma.c] Added 2 MPFR_LOG_FUNC's.

	[tests/tgeneric.c] Fixed bug found by PZ: code introduced in r4538 to
	test the maximum (in absolute value) positive and negative arguments
	was buggy, as only the negative one was tested.
	→ This makes some tests fail on the maximum positive argument.

2014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	some progress with mini-gmp:
	=======================
	34 of 157 tests failed
	(13 tests were not run)
	=======================

	mpn_copyd (rp, sp, n) should be used when rp >= sp

	fixed bug which could appear with probability 1/2^32 or 1/2^64

2014-01-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-mini-gmp.c] Removed trailing spaces.

	[tools/mpfrlint] Update due to the mini-gmp support (r8753).

	[tests] Various fixes for r8753.

	[src/mpfr.h] Indentation.

	[src/mpfr-impl.h] Indentation.

	Avoid an empty translation unit (see ISO C99, 6.9). Some errors could
	be triggered with "gcc -std=c99 -pedantic-errors".

2014-01-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more progress for the mini-gmp interface

2014-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added two new files for mini-gmp interface

	first step towards making MPFR compile with --enable-mini-gmp, so far make
	succeeds and all tests compile, but many tests fail, will investigate later

2014-01-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_z_exp.c] Added an assert for security in case the precision is
	large, but the error should be handled properly (to be discussed).
	Note: there are still corrupt memory problems when the precision is
	large enough but below the mpz limit (a bug in GMP?).
	Note [VL, 2014-01-17]: these problems are due to an integer overflow in
	mpz/clear.c of GMP 5.1.3; I've reported the bug here:
	  https://gmplib.org/list-archives/gmp-bugs/2014-January/003321.html

	[src/get_z_exp.c] Avoid a potential overflow.

	[src/extract.c] Type clean-up with 2 bug fixes (these bugs should have
	no effect on most platforms without too aggressive optimizations).

2014-01-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	replaced function _mpz_realloc by preferred one mpz_realloc2

2014-01-16  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added mini-gmp support.

2014-01-15  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention speed improvement with --enable-assert[=full] and GCC
	(due to the fix in r8746).

2014-01-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fixed the MPFR_ASSERTN macro as suggested by
	Wolf Lammen: https://sympa.inria.fr/sympa/arc/mpfr/2014-01/msg00002.html
	Note: the semantics doesn't change, it should just be more efficient.

2014-01-12  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Output MPFR_LDBL_MANT_DIG in some failure case.

2014-01-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_d.c] More information in a failed test.

2014-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] In LOADLIBES, replaced $(INCLUDES) by $(AM_CPPFLAGS)
	(this should have been done at the same time as r8364).

2014-01-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release" update. In particular at step 5,
	replaced "make dist" by "make distcheck" so that some problems can be
	detected at step 5 instead of step 6, ensuring that the tarballs are
	complete.

	[src/Makefile.am] Forgot to add mpfr-cvers.h in r8739.

	When static assertions are not supported by the C implementation
	natively (new C11 feature), their MPFR implementation got broken by
	changeset r8625, as the __MPFR_GNUC macro in mpfr-sassert.h was not
	defined in the configure test (since mpfr-impl.h wasn't included)
	and generated an error, disabling the static assertions support.
	This is fixed by the following changes, avoiding code duplication
	and thus risk of inconsistencies in future modification:
	  * copied some of the version detection macros from mpfr-impl.h to
	    a standalone file mpfr-cvers.h, and updated the macros;
	  * in mpfr-impl.h, replaced these macros by a #include "mpfr-cvers.h"
	    and updated a comment;
	  * in mpfr-sassert.h, added a #include "mpfr-cvers.h".

	[acinclude.m4] In the Static Assertions test, avoid a warning with GCC
	and added comments.

2014-01-07  Vincent Lefèvre  <vincent@vinc17.net>

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[tools/mpfrlint] Use codespell if available.

	[TODO] Fixed a misspelling, using codespell.

	Fixed misspellings, using codespell.

2014-01-06  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added item: new functions of IEEE 754-2008 / C binding draft.

2014-01-05  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] "To make a release": added a paragraph about warnings.

	[tests/trint.c] Avoid a warning.

	[acinclude.m4] Avoid a warning due to variable set but not used in a
	test, making the test fail with gcc -Werror=unused-but-set-variable.

	[acinclude.m4] Replaced "main()" by "main (void)".

2014-01-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2014-01-03  Vincent Lefèvre  <vincent@vinc17.net>

	Fixed warnings from GCC's -Wold-style-declaration option:
	MPFR_THREAD_ATTR must be at beginning of declaration.

	Copyright notice update: added 2014 with
	  perl -pi -e 's/ (\d{4}-)?(2013)(?= Free Software)/
	               " ".($1||"$2-").($2+1)/e' **/*(^/)
	under zsh (the tools/mbench directory was not modified).
	Removed 2013 from the example in the doc/README.dev file.

2013-12-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	work around for bug in mpn_set_str
	(https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html)

2013-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	Added tools/repl-variadic Perl script to replace the variadic functions
	mpfr_clears, mpfr_inits and mpfr_inits2, in case they are not supported
	by the compiler.

2013-11-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstckintc.c] Improved tests when mpfr_custom_init_set is used as
	a macro (i.e. without parentheses) to trigger the bug fixed in r8715.

	[src/mpfr.h] Fixed bug in the mpfr_custom_init_set macro (typo in
	variable name, which can yield incorrect behavior if the second
	argument is not a simple expression).
	Thanks to Andreas Enge for the bug report:
	  https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00029.html

2013-11-21  Vincent Lefèvre  <vincent@vinc17.net>

	[src/lngamma.c] No longer declare B as initialized with GCC (see r5534),
	as the "may be used uninitialized" warning no longer occurs with latest
	GCC: trunk revision 203899 (Debian 20131021-1), for the future GCC 4.9.
	The warning still occurs with GCC 4.8.2 (Debian 4.8.2-1):

	$ gcc-4.8 -O2 -Wall -c gamma.c
	In file included from gamma.c:27:0:
	gamma.c: In function ‘mpfr_gamma’:
	lngamma.c:468:17: warning: ‘B’ may be used uninitialized in this function [-Wmaybe-uninitialized]
	               B = mpfr_bernoulli_internal (B, m); /* B[2m]*(2m+1)!, exact */
	                 ^
	lngamma.c:165:10: note: ‘B’ was declared here
	   mpz_t *B;
	          ^
	Note: with GCC 4.8.2, at least -O is needed to reproduce the warning,
	and -Wmaybe-uninitialized without -Wuninitialized (or -Wall) doesn't
	trigger the warning.

2013-11-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added -Wlogical-op

2013-11-15  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a few tests.

	[doc/README.dev] This may seem obvious, but this is not the first time
	this happens: + "When adding the expected result, do NOT use the one
	obtained from the MPFR function! Otherwise, if this function is buggy,
	the test will be wrong and the function will remain buggy."

	[tests/tsprintf.c] Fixed incorrect test from r5652 (the corresponding
	bug in src/vasprintf.c has been fixed in r8705).

2013-11-14  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	fixed bug reported by David Binderman
	(https://sympa.inria.fr/sympa/arc/mpfr/2013-11/msg00009.html)

2013-11-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/thypot.c] More NaN tests.

2013-11-06  Philippe Théveny  <philippe.theveny@laposte.net>

	[tests/thypot.c] Fix use of a non explicitly initialized variable.

2013-11-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[sum.c] the call to mpfr_can_round was obviously wrong

2013-11-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Updated TODO comment (→ check underflows).

2013-11-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[sum.c] mpfr_sum should consider the maximal precision of its inputs/output

2013-10-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsum.c] Added a TODO comment: add generic random test with
	cancellations, and tests with intermediate overflows.

	[tests/tsum.c] Added test for bug reported by Joseph S. Myers:
	https://sympa.inria.fr/sympa/arc/mpfr/2013-10/msg00015.html

2013-09-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added an example for mpfr_fits_*, corresponding to the
	bug fixed in r8503.

	[src/mpfr-impl.h] Document that DOUBLE_ISNAN(x) is valid on long double.
	[tests/tset_ld.c] In Isnan_ld, do not convert the long double argument
	to double, as this can give an overflow and unexpected behavior without
	default IEEE 754 behavior. With this change, this tset_ld test no longer
	fails with "clang -O2 -fsanitize=undefined -fno-sanitize-recover".

	[tests/tset_ld.c] Avoid a division by zero if MPFR_ERRDIVZERO.

	[tests/tset_ld.c] Move tests_start_mpfr call earlier.

	[tests/tget_flt.c] Corrections when MPFR_ERRDIVZERO is defined.

	[src/mpfr-impl.h] With clang, disable division by zero using constants
	due to a bug in its sanitizer and because IEEE 754 division by zero is
	currently not properly supported.
	With this change, the tget_d test no longer fails with:
	  clang -O2 -fsanitize=undefined -fno-sanitize-recover

2013-09-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tget_flt.c] Protect a division by 0.

2013-09-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] Updated -version-info to 6:0:2 for MPFR 3.2.0.

2013-09-16  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] For MPFR 3.2: The --enable-decimal-float configure option
	no longer requires --with-gmp-build (see r8402).

2013-09-15  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Detect broken _Decimal64 support on powerpc64 with
	the mode32 ABI.

	[tests/tget_set_d64.c] More meaningful messages in check_inf_nan.

	[tests/tget_set_d64.c] More meaningful messages in check_inf_nan
	after failures on powerpc64 with the mode32 ABI.

2013-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added: implement optional cache sharing between threads.

2013-09-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Changed node name "Integer Related Functions" to
	"Integer and Remainder Related Functions", as the corresponding
	section title was changed in r4867. Added associated @cindex.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Specified special values (in particular the sign of 0)
	for Section 5.10 "Integer and Remainder Related Functions".

	[src/round_raw_generic.c] Support MPFR_RNDNA for this class of functions
	at the request of John P. Hartmann (to support one of IBM's High Level
	Assembler rounding mode for hexadecimal floating-point constants).

	[src/round_raw_generic.c] Code simplification / comment corrections.

2013-08-26  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] About clang sanitizer, mention -fno-sanitize-recover
	for more visibility in automated tests.

2013-08-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ai.c] Moved the handling of the special cases NaN and ±Inf to
	the main function mpfr_ai.

	[src/agm.c] Corrected a comment.
	[tests/tagm.c] Added tests concerning special values,
	  in particular (zero,negative) and symmetric tests.
	[doc/mpfr.texi] Corrected mpfr_agm description.

2013-08-21  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Revisit the conversion functions between a MPFR number and
	a native floating-point value.

2013-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc] Added mpfr.t2d and mpfr.t2p to svn:ignore property.
	Note: These directories are now generated when using "make mpfr.dvi"
	and "make mpfr.pdf". This comes from a change in Automake 1.13 (see
	its 2012-06-20 changelog) for the texi2dvi and texi2pdf invocations.

2013-08-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Before release, test with gcc -mpc64 under Linux/x86.

2013-08-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tversion.c] added GCC version

	[tset_ld.c] try to fix a bug on i686-freebsd
		    (see http://hydra.nixos.org/build/5665961/log/raw)

	[tset_ld.c] added debug information

2013-08-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Reverted changeset r8657 as %a is C99-only. Moreover
	the memory representation already gives the necessary information (and
	the decimal output was correct on the machine where the test fails).

2013-08-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_ld.c] maybe this will fix the issue for i686-freebsd?
		    Cf http://hydra.nixos.org/build/5662697.

	[tset_ld.c] in case of error, print d in hexadecimal

2013-08-07  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] In the "mpfr_set_ld should be exact" error, output
	the memory representation of d.

2013-08-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_ld.c] print value of MPFR_LDBL_MANT_DIG in case of error

2013-08-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Space consistency.

2013-08-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] Corrected a comment.

	[tests/tset_ld.c] Set some long double variables as volatile in order to
	avoid optimizations that yield failures with xlc on power7 (not tested).

	[src/get_ld.c] Oops... The non-working code was due to a missing cast.
	So, simplified the code.

	[acinclude.m4] Define HAVE_LDOUBLE_MAYBE_DOUBLE_DOUBLE if the
	  "long double" format seems to be double-double (e.g. on PowerPC).
	[src/get_ld.c] Added double-double support.

2013-08-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_ld.c] GNU style.

	[tests/tset_ld.c] Improved output in case of error.

	[tests/tset_ld.c] Improved check_set_get() test function; in particular,
	it no longer takes a mpfr_t argument: the precision of the MPFR number
	is now determined dynamically from the long double d. Thus some numbers
	having a precision > MPFR_LDBL_MANT_DIG in double-double arithmetic are
	now tested (e.g. on PowerPC).

	[doc/mpfr.texi] "correctly-rounded" → "correctly rounded" (see rule on
	https://en.wikipedia.org/wiki/Wikipedia:HYPHEN#Hyphens and the IEEE 754
	and ISO C standards don't use a hyphen either).

	[doc/mpfr.texi] Added missing @code{}'s in mpfr_fpif_import description.

	[doc/mpfr.texi] Replaced periods ending a sentence by "@." in the
	following cases: when the preceding character is a capital letter
	or a closing parenthesis following a capital letter (e.g. "NaN.",
	"MPFR.", "MPFR).", etc). This is needed to get correct spacing in
	the generated .info and PDF files with the next sentence of the
	paragraph (when there is one).

	[tests/tset_ld.c] Removed the "check largest 2^k that is representable
	as a long double" test based on macros LDBL_MAX and LDBL_EPSILON, which
	are not correct in some C implementations. There is already another
	"check the largest power of two" test, based on a loop, which is OK.

2013-08-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_ld.c] improve tests to avoid spurious errors for double-double
		    representation where MPFR_LDBL_MANT_DIG=106 and numbers
		    with 107 bits or more

2013-08-02  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Document that log1p(-1) = -Inf.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Moved mpfr_log1p & mpfr_expm1 after mpfr_log & mpfr_exp
	respectively.

	[tests/tset_ld.c] Comment on LDBL_MAX.

2013-08-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_ld.c] missing conversion from int to mpfr_rnd_t

	[tset_ld.c] improve error message

2013-08-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_ld.c] Corrected a comment.

2013-08-01  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Completed specification of mpfr_lngamma and mpfr_lgamma
	on 1 and 2 (result is +0).

	[doc/mpfr.texi] Improved description of mpfr_rec_sqrt and mpfr_hypot.

	[tests] Added terandom and tnrandom to svn:ignore property.

	[src] Improved some comments with "0", about its sign.

	[doc/mpfr.texi] Completed specification on special numbers (±0, ±Inf).

2013-08-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_ld.c] increase precision to take into account double-double encoding

	[tset_ld.c] replaced error by warning when _GMP_IEEE_FLOATS is not defined

2013-07-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-sassert.h] Get rid of annoying warnings
	  typedef 'MPFR_ASSERT_xxx' locally defined but not used
	with GCC 4.8+ (better than the non-portable solution r8618). Thanks to
	Jonathan Wakely: https://gcc.gnu.org/legacy-ml/gcc-help/2013-07/msg00142.html

2013-07-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] revert commit 8618 since it breaks hydra jobs i686-cygwin,
		       i686-freebsd, i686-solaris and x86_64-freebsd
		       (cf http://hydra.nixos.org/eval/955753)

2013-07-22  Vincent Lefèvre  <vincent@vinc17.net>

	Applied patch 3 by Ondřej Bílka with some manual corrections,
	fixing typos:
	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00016.html

	Applied patch 2 by Ondřej Bílka, fixing capitalization:
	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00015.html

	Applied patch 1 by Ondřej Bílka, fixing common typos:
	  https://sympa.inria.fr/sympa/arc/mpfr/2013-07/msg00014.html

	[configure.ac] Added -Wno-unused-local-typedefs flag to avoid spurious
	"typedef 'MPFR_ASSERT_xxx' locally defined but not used" warnings due
	to the implementation of static assertions.

2013-07-16  Vincent Lefèvre  <vincent@vinc17.net>

	Slightly restructured doc/README.dev and mentioned C-Reduce.

2013-07-12  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] If the gmp.h vs libgmp test fails, also output the value
	of some variables (in case config.log is available, information can
	also be retrieved from "Cache variables" and "Output variables" near
	the end).

2013-07-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	revert temporary commit 8613

2013-07-11  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Improved MPFR_CHECK_DBL2INT_BUG in case of failure
	and added comments about that.

2013-07-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] temporary commit to investigate problem with i686-solaris on hydra

2013-07-11  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] In the CC and CFLAGS setup from gmp.h, modified the
	list of commands to select the C preprocessor since /lib/cpp isn't
	the best choice under Solaris.

	[configure.ac] Moved AM_PROG_AR (introduced in r8546) after the
	CC and CFLAGS setup from gmp.h, because AM_PROG_AR makes Autoconf
	select a compiler (before it may be chosen from __GMP_CC).

	[configure.ac] The test of CC and CFLAGS was done too late! Moved this
	test earlier (checked on Debian/unstable with autoconf 2.69).

2013-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved r8608 (gmp.h/libgmp on stderr).

2013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] print also the versions of gmp.h/libgmp on stderr, hoping they
		       will appear on i686-solaris

	[src/exp_2.c] removed useless instruction

2013-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Corrected change in r8602 to get an error in the case
	i == 0 and u != 1.

2013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] added fflush to see versions of gmp.h/libgmp

2013-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	[src/exp_2.c] Fixed undefined behavior (present in all MPFR versions)
	detected by "clang -fsanitize=undefined".

	[doc/README.dev] Suggest to test with "clang -fsanitize=undefined";
	see <https://blog.regehr.org/archives/963>.

2013-07-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	more helpful debug information

	added debug information for double-to-integer conversion bug

2013-07-09  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Updated a comment about ICC.

	[doc/README.dev] Added URL about compiler detection.

2013-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Another update about signed and unsigned integer types.

	[doc/README.dev] Update about signed and unsigned integer types.

2013-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/random_deviate.c] applied patch from Charles Karney
	[tests/Makefile.am] reorder test files

2013-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added URL's about C++ reserved keywords.

2013-06-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed to allow compilation with C++:
	[src/random_deviate.h] must declare the types before extern C {...}
	[tests/tget_sj.c,tests/tset_si.c] "not" seems to be reserved in C++

2013-06-07  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/algorithms.tex] Slightly improved a bound under which mpfr_hypot
	cannot have an internal underflow, thus is correct.

2013-06-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Improved a test to avoid false positives.

	[doc/algorithms.tex] Updated/improved the proof of mpfr_hypot in the
	scaling case.

	[src/hypot.c] Slightly improved scaling to avoid even more underflow
	in the scaling of y or in its square.

	[src/hypot.c] Added a comment on the FIXME.

	[src/mpfr-gmp.h] Removed useless and meaningless definitions.

	[src] Moved mp_bitcnt_t definition for GMP < 5 from mpfr-gmp.h to
	mpfr-impl.h (mpfr-gmp.h is only for definitions from GMP internals
	as it is included only in builds without GMP internals).

	[src/mpfr-gmp.h] Fixed mp_bitcnt_t presence test.

2013-06-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed macro to typedef when mp_bitcnt_t is missing (for coherence with GMP)

	fixed compiler warnings

	[mpfr-gmp.h] added replacement for mp_bitcnt_t
	[hypot.c] added comment

2013-06-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	applied patch from Charles Karney

2013-06-05  Vincent Lefèvre  <vincent@vinc17.net>

	[README] Added ar-lib (due to AM_PROG_AR in r8546) and test-driver
	(installed by Automake 1.12+).

2013-06-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

2013-06-02  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] In AM_INIT_AUTOMAKE, lowered Automake version requirement
	to 1.11.2 (for AM_PROG_AR), as Ubuntu 12.04 LTS only has Automake 1.11.3
	(we assume that such distributions have a security patch).

	[configure.ac] In AM_INIT_AUTOMAKE, require Automake 1.11.6 for
	AM_PROG_AR and security reasons.

	[NEWS,doc/mpfr.texi] New and deprecated functions in MPFR 3.2.

	Spelling: gaussian -> Gaussian (Wikipedia, Wolfram MathWorld, dict).

	[doc/mpfr.texi] Slight doc improvement for mpfr_grandom.

2013-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added assertion

2013-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[src/random_deviate.c] Updated a comment.

2013-06-01  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	in case mp_limb_t is smaller than unsigned long, use alternate code for
	highest_bit_idx

2013-06-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/mpfrlint] Update for random_deviate.

	[src/nrandom.c] Corrected indentation.

	[src/random_deviate.h] Fixed a typo in a macro name.

	[src/random_deviate.c] Removed trailing spaces.

	Added ar-lib to svn:ignore property (this script comes from Automake,
	due to the use of AM_PROG_AR in configure.ac as of r8546).

2013-05-31  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/memory.c] Added a FIXME comment about the time complexity of
	tests_memory_find (Paul Zimmermann noticed that tgrandom on a large
	value takes a lot of time, probably because of that).

2013-05-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	updated NEWS and contribution section in mpfr.texi

	#include <...> -> #include "..." for local files

	removed obsolete comment

	GNU style

	GNU style

	GNU style

	added tests files for mpfr_nrandom and mpfr_erandom

	removed RANDOM_SIMPLE=1 stuff (this was an alternate slower implementation).
	Kept in svn history as a reference.

	removed mpfr_grandom_alt (likewise previous commit)

	removed mpfr_urandom_alt (slower than mpfr_urandom, but it can be recovered
	from the svn history to illustrate one of the basic properties of a newly
	initialized mpfr_random_deviate_t)

	removed mpfr_random.h, headers are in mpfr.h

	original contribution from Charles Karney <charles.karney@sri.com>

2013-05-30  Vincent Lefèvre  <vincent@vinc17.net>

	Removed obsolete tools/update-patchv script. Use update-version instead.

	[configure.ac] Added AM_PROG_AR to support unusual archivers
	(after a warning from Automake 1.13).

	[tools/ck-copyright-notice] Update for copyright year ranges.

	[doc/mpfr.texi] Updated the month.

	Use copyright year ranges, following
	  https://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices

	[tests] Added *.log and *.trs to svn:ignore property.

	[INSTALL] Update about configure default options.

	Added test-driver (from Automake 1.12+) to svn:ignore property.

2013-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Updated comment about -mieee-fp icc option.

2013-05-24  Philippe Théveny  <philippe.theveny@laposte.net>

	[tests/tprintf] remove tests of invalid format (continuation of r8525).

	[src/vasprintf.c] Support all length modifiers defined by ISO C99, even if the
	 corresponding type is not detected by configure (continuation of r8525).

2013-05-24  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] For ICC, changed the deprecated -mp option to the
	equivalent one -mieee-fp; added a comment about that.

2013-05-24  Philippe Théveny  <philippe.theveny@laposte.net>

	[src/vasprintf.c] Always support 't' and 'L' length modifiers, but don't
	 test them if configure doesn't find the corresponding type.

	Printing invalid format specifiers (continuation of r8525)
	[src/vasprintf.c] Add comments.
	[tests/tprintf.c] Simplify tests.

2013-05-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	new macro MPFR_MAYBE_UNUSED to avoid compiler warnings

2013-05-23  Philippe Théveny  <philippe.theveny@laposte.net>

	[src/vasprintf.c] Print invalid format specifier instead of returning an error code, as in GMP.
	[tests/tprintf.c] Modify tests for invalid format.

2013-05-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	try to link with GMP even when a dll, since it seems to work now
	(see https://sympa.inria.fr/sympa/arc/mpfr/2013-05/msg00010.html)

	replaced macros NPRINTF_T and NPRINTF_L by positive versions
	PRINTF_T and PRINTF_L, now we don't assume that %td and %Lf are supported
	when we don't check it (for example when cross-compiling, or under Windows
	when GMP is a dynamic library)

	fixed typo

2013-05-15  Vincent Lefèvre  <vincent@vinc17.net>

	[Makefile.am] Added a comment about ACLOCAL_AMFLAGS, based on the
	GNU Automake 1.13.2 release notes.

2013-04-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] With clang, do not use GCC's self-initialization trick
	as it generates a warning, though clang claims GCC compatibility.

2013-04-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[algorithms.tex] added reference

2013-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added item

2013-03-18  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fits_intmax.c] Corrected a comment.

	[src/{fits_u.h,fits_uintmax.c}] Fixed the mpfr_fits_u*_p functions,
	which incorrectly returned 0 ("doesn't fit") on negative arguments
	when the rounding to an integer was 0. The fits_uintmax.c file now
	uses fits_u.h for consistency.

	[tests/tfits.c] Use error numbers to know where an error occurred.

	[src/fits_uintmax.c] Replaced an obsolete comment by a TODO.

	[tests/tget_sj.c] Added mpfr_get_uj tests on small negative op,
	similar to what has been done for mpfr_get_ui in r8498,8499.

	[tests/tset_si.c] Minor type correction for r8498 (this shouldn't matter
	because the value is normally small, but perhaps not in case of bug).

	[tests/tset_si.c] Added mpfr_get_ui tests on small negative op.

	[tests/tset_si.c] Corrected comment.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Improved documentation of the conversions to an integer
	(mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj).

	[tests/tfits.c] Added tests, in particular for small negative op
	and in non-RNDN rounding modes; tfits currently fails.

	[tools/announce-text] Added short text about what GNU MPFR is.

2013-03-13  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Removed a duplicate word.

2013-03-12  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Added a paragraph about Cygwin and threading.

	[INSTALL] Improved information on patches.

2013-03-11  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/announce-text] Added text about how to verify the signatures.

	[doc/README.dev] Updated "To make a release" about the web pages.

2013-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added info about update-version and ck-version-info.

2013-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfpif.c] Clean-up. Improved consistency.

2013-03-04  Vincent Lefèvre  <vincent@vinc17.net>

	[examples] Replaced the old rounding mode macros (GMP_RNDN, etc.) by the
	new ones (MPFR_RNDN, etc.) in the *.c files; updated ReadMe file.

	[doc/update-faq] Removed the now useless s/GMP_RND/MPFR_RND/ rewriting.

	[doc] Slightly modified faq.xsl to avoid libxslt bug 377440, and
	moved the addition of special CSS comments for XML compatibility
	from update-faq to faq.xsl file.

2013-03-01  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgamma.c] Avoid mpfr_set_d.

	[tests/tfpif.c] Avoid mpfr_set_d as the results may depend on the C
	implementation.

2013-01-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	Copyright notice update: added 2013 with
	  perl -pi -e 's/2012 Free Software/2012, 2013 Free Software/' **/*(^/)
	under zsh, reverting the ChangeLog file and the m4 directory
	(the tools/mbench directory was not modified).
	Removed 2012 from the example in the doc/README.dev file.

	[configure.ac] Corrected comment on clock_gettime (from r8445).

2012-12-31  Vincent Lefèvre  <vincent@vinc17.net>

	Tuning: reverted changeset r8444 and applied patch by Patrick Pélissier
	for GMP 5.1.0 to link against librt conditionally.

2012-12-31  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[Makefile.am] -lrt is needed for clock_gettime() [undefined with GMP 5.1.0]

2012-12-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfpif.c] Added a TODO.

	[src/fpif.c] Added an assert on MPFR_PREC_MIN because the code seems
	to be based on this (always true with the current value).

	[doc/mpfr.texi] Minor corrections of mpfr_fpif_import documentation.

2012-12-21  Olivier Demengeon  <olivier.demengeon@inria.fr>

	mpfr_fpif_import now check precision size. Documentation updated for mpfr_fpif_import.

2012-12-20  Vincent Lefèvre  <vincent@vinc17.net>

	Compatibility with GMP 5.1.0 when gmp-impl.h is included (thanks to Rob:
	https://sympa.inria.fr/sympa/arc/mpfr/2012-12/msg00003.html); clean-up.

2012-12-12  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Added a FIXME comment in mpfr_fpif_import concerning the
	precision.

2012-12-11  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Added comments. Fixed mpfr_fpif_read_precision_from_file
	in the case where the precision size > sizeof(mpfr_prec_t) and/or when
	the read precision is too large (as mpfr_prec_t is signed).

2012-12-11  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[fpif.c] completed FIXME

2012-12-08  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] Added a FIXME comment: large precisions read from the file
	can trigger undefined behavior if sizeof(mpfr_prec_t) is too small.

2012-12-07  Olivier Demengeon  <olivier.demengeon@inria.fr>

	Fixed stack overflow bug in fpif.c

2012-12-05  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4,configure.ac] Moved the "double-to-integer conversion bug"
	test after the gmp.h detection as it uses gmp.h (otherwise one gets an
	incorrect error on this test if gmp.h can't be found or is unusable).

2012-12-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Removed a useless comma from r8428.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Updated warning in mpfr_min_prec description,
	in particular for the use with mpfr_prec_round.

2012-10-17  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_uj.c] Change to help the compiler to detect dead code,
	improving the coverage (from a patch by Patrick Pélissier).

	[src/get_d64.c] Added a const (thanks to Patrick Pélissier).

2012-10-10  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Check struct lconv members (from <locale.h>) to avoid a
	  build failure under Android, which does not have them; see
	    https://sympa.inria.fr/sympa/arc/mpfr/2012-10/msg00002.html
	[src/mpfr-impl.h] Decimal point / thousands separator support can now be
	  detected automatically by configure (from the presence of <locale.h>
	  and the above members) or explicitly disabled/enabled by the user by
	  defining the MPFR_LCONV_DPTS macro to 0 or 1 via CFLAGS (a configure
	  switch might be added in the future).
	[tests/tsprintf.c] Do the locale_da_DK test only if MPFR_LCONV_DPTS is
	  true.

2012-09-29  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Note about GNU extensions and ICC.

2012-09-20  Vincent Lefèvre  <vincent@vinc17.net>

	[get_float128.c,set_float128.c] Avoid an empty translation unit
	(forbidden by ISO C, detected with gcc -ansi -pedantic-errors)
	when MPFR_WANT_FLOAT128 is not defined.

	Applied patch (with minor changes) by Patrick Pélissier to improve
	the mpfr_round_nearest_away interface.

2012-09-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[nightly-test] modified so that decimal floats are tested (with gcc)

2012-09-05  Vincent Lefèvre  <vincent@vinc17.net>

	Removed trailing whitespace.

	[doc/mpfr.texi] Updated the month.

2012-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Improved error message when the compiler doesn't know
	_Decimal64 (if MPFR is built with --enable-decimal-float).

2012-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	revert changeset r8412 (_Decimal64 might be defined in C++, but not as a macro)

	updated documentation wrt --enable-decimal-float

	added support for --enable-decimal-float with g++ (does not work with icpc,
	      the Intel C++ compiler)

	[tests/tl2b.c] fix for C++

2012-09-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/set_d.c] Updated a comment on the negative zero.

	[src/get_str.c] #include "mpfr-intmax.h" so that UINT64_C has a chance
	to be defined (optionally used as of r8406).

2012-09-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/set_d64.c] fix for systems where +0.0 and -0.0 are stored identically in
			memory

	[src/set_d64.c] better code to detect -0.0 (copied from set_d.c)

	[tests/tl2b.c] use UINT64_C for 64-bit integer constants
	[src/get_str.c] update table generated by "tests/tl2b 1"

	[get_d64.c,set_d64.c] small fixes (did not work any more with --with-gmp-build)

	[set_d64.c] some cleanup, since sprintf adds a final '\0', and fixed a too
		    small memory allocation

2012-09-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] removed an item (done)

	Now --enable-decimal-float does not require any more --with-gmp-build.
	Still disabled by default: some more testing is needed before we can enable
	it by default (if _Decimal64 is supported).

2012-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Updated bug20120829 comment (bug fixed in r8396).

	[tests/tstrtofr.c] Fixed small type error.

2012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[strtofr.c] new try to fix the assertion failure on 32-bit

2012-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Added more bug20120829 tests, showing that r8394 is
	still buggy on 32-bit machines (assertion failure in strtofr.c).

2012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[strtofr.c] fix for failing test case introduced in r8392

2012-08-29  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tstrtofr.c] Updated a comment: the 2nd testcase of r8392 also
	triggers an assertion failure on 32-bit machines.

	[tests/tstrtofr.c] Added 2 testcases:
	  * One triggering an assertion failure in strtofr.c r8389
	    on 32-bit machines (fixed in r8390).
	  * One still triggering an assertion failure in strtofr.c (r8391)
	    on 64-bit machines.

2012-08-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[strtofr.c] fixed comments

2012-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[strtofr.c] fix for err >= GMP_NUMB_BITS

2012-08-28  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Consistency correction: towards → toward.

	[src/sin_cos.c] Consistency correction: towards → toward.

	[doc] Updated FAQ.html with update-faq.

2012-08-28  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[strtofr.c] fixed bug in mpfr_strtofr in case:
		    (1) the input string was used entirely
		    (2) the conversion was done by a division
		    (3) and the division was exact
		    In such a case the "reconstruction" of the ternary value was
		    inexact.

2012-08-16  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d64.c] mpfr_get_decimal64 was buggy in MPFR_RNDN on some
	  values x such that 0.5e-398 < |x| < 1e-398 (smallest subnormal):
	  it was returning 0 instead of +/- 1e-398 (see r8370).
	[tests/tget_set_d64.c] Added testcases.

2012-08-15  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d64.c] Fixed get_decimal64_max by simplifying it completely,
	and changed get_decimal64_min in the same way.
	Thanks to Rob (Sisyphus) for the idea.

	[tests/tget_set_d64.c] Added overflow tests (they cover the two bad
	tests fixed in r8372 and trigger a bug in get_decimal64_max).

	[tests/tget_set_d64.c] Added some tests for large numbers.

	Renamed WANT_ASSERT to MPFR_WANT_ASSERT in order to avoid a clash
	with GMP when MPFR is configured with --with-gmp-build.

2012-08-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d64.c] Fixed overflow cases.

	[tests/tstrtofr.c] Added testcase from bug reported by Joseph S. Myers.

2012-08-13  Vincent Lefèvre  <vincent@vinc17.net>

	[src/get_d64.c] mpfr_get_decimal64 is buggy in MPFR_RNDN for values x
	such that 0.5e-398 < |x| < 1e-398. Added a FIXME comment.
	See: https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00002.html

2012-07-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/fpif.c] No longer assume that if HAVE_BIG_ENDIAN is not defined,
	  the architecture is little endian. Detect the case where neither
	  HAVE_BIG_ENDIAN nor HAVE_LITTLE_ENDIAN is defined (currently an
	  error).
	[configure.ac] Fixed the use of AC_C_BIGENDIAN (since AC_CONFIG_HEADERS
	  is not used, one must have an ACTION-IF-UNIVERSAL argument).
	[doc/README.dev] Check with "-UHAVE_BIG_ENDIAN -UHAVE_LITTLE_ENDIAN"
	  (unknown/unspecified endianness) before a release.

	[doc/README.dev] Update now that autogen.sh is in the repository.

	Added autogen.sh sh script from Daniel Richard G. to install/update the
	autotools files and clean up caches (useful before a release).

	Updated autotools files to get rid of obsolete macros (thanks to
	Daniel Richard G. for the patch; kept the autoconf requirement
	to 2.60 instead of changing it to 2.68 as done with autoupdate,
	since 2.60 seems to be sufficient according to the changes and
	2.68 is too recent, e.g. Debian/stable still has 2.67).
	--- Note ---
	This update has another effect: The "Configs for Windows DLLs."
	code (from "case $host in" to "esac") is now executed at the right
	time, after options like --disable-static are taken into account.
	Juste before this change, the test
	   if test "$enable_shared" = yes; then
	was always false. This could be seen on hydra:
	With r8360:
	[...]
	configure flags: --disable-static --disable-dependency-tracking
	  --prefix=/nix/store/95zhbb0v23syxsazx33hg3acbvixyq5a-mpfr-0-3.2.0-dev
	[...]
	checking for DLL/static GMP... static
	[...]
	checking whether to build shared libraries... yes
	checking whether to build static libraries... no
	[...]
	With r8367:
	[...]
	configure flags: --disable-static --disable-dependency-tracking
	  --prefix=/nix/store/8zblwffd2ww1z0smqlgwrfzcl6b48rim-mpfr-0-3.2.0-dev
	[...]
	checking whether to build shared libraries... yes
	checking whether to build static libraries... no
	checking for DLL/static GMP... static
	[...]

	[src/mpfr-intmax.h] Updated comment formatting so that mpfrlint
	doesn't complain.

2012-07-26  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Replaced "sed" by "$SED".

	[tools/mpfrlint] Check for sed.

	[tools/mpfrlint] Check for grep, egrep and fgrep (see r8356 correction).

2012-07-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	we use a 77-bit approximation in get_str.c (and not 76-bit)

2012-07-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] grep -> $EGREP (thanks Marc Glisse)
		       https://sympa.inria.fr/sympa/arc/mpfr/2012-07/msg00006.html

2012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[acinclude.m4] fix for cross-compilation

2012-07-24  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Improved a message and corrected gmp.h inclusion.

2012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[acinclude.m4] added test for double-to-integer conversion bug

	revert r8349 (will do the test in configure)

2012-07-24  Vincent Lefèvre  <vincent@vinc17.net>

	Improved doc/mpfr.texi about MPFR_USE_INTMAX_T.

	[src/mpfr-intmax.h] Define MPFR_USE_INTMAX_T if <inttypes.h> and/or
	<stdint.h> is available. This is needed on systems for which the
	current (non-standard) macro tests in mpfr.h is not sufficient.
	This will force the support of intmax_t/uintmax_t in this case and
	also avoids a failure in the tests on such systems.
	Tested by replacing the macro tests in mpfr.h by just
	  #if defined (MPFR_USE_INTMAX_T)
	to simulate such a system.

2012-07-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tinternals.c] added test for double -> mp_limb_t conversion

2012-07-23  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.h] patch for FreeBSD (tested on gcc76.fsffrance.org with freebsd-83-amd64)

2012-07-10  Vincent Lefèvre  <vincent@vinc17.net>

	Added tools/announce-text sh script to be run before publishing an
	announce of a new GNU MPFR release (it does some checking, then it
	outputs the announce text to stdout).
	Mention this script in "doc/README.dev".

	[doc/README.dev] Updated "To make a release".

2012-07-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added item

2012-07-06  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/{tset_d.c,tget_flt.c}] Disabled two tests when HAVE_SIGNEDZ
	isn't defined, because these tests rely on signed zeros.

	[acinclude.m4] Added a test for signed zeros (tcc currently doesn't
	support signed zeros, and 2 MPFR tests fail because of that).

	[acinclude.m4] Removed useless "#include <math.h>" in the test
	for subnormal numbers.

	[acinclude.m4] Replaced the AC_TRY_RUN obsolete macro by
	AC_RUN_IFELSE([AC_LANG_SOURCE([[...]])],...) as documented
	in the GNU Autoconf manual.
	Minor correction in the test for subnormal numbers.

	[tests] Added trndna to svn:ignore property.

	[tests/tset_d.c] Formatting.

	Replaced "denormalized" by the official term "subnormal".

2012-07-05  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/coverage] unset MPFR_* environment variables in a better way.

	[tools/coverage] unset MPFR_* environment variables in a better way.

2012-07-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[coverage] unset MPFR_* environment variables to get reproducible results

	[tabort_defalloc2.c] changed char* into void* to please g++ compiler

2012-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trndna.c] Removed useless initialization.

2012-07-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[trndna.c] restore emin

	[coverage] unset GMP_CHECK_RANDOMIZE so that the coverage test is deterministic

2012-07-04  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Replaced a "should not" by a "must not".

	[doc/mpfr.texi] Consistency change.

2012-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[trndna.c] increase emin when smallest possible

	[rndna.c] special treatment for the case 2^(emin-2)

	several changes suggested by Vincent Lefevre

	[rndna.c] changed the specification since on 32-bit machines we have no margin
		  for the smallest exponent emin

	added new function mpfr_round_nearest_away() as discussed during the June 2012
	workshop

2012-07-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tools/coverage] Minor update, just in case...

2012-07-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[exp.c] fixed typo

2012-07-03  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated the month.

	[tests/{td_div.c,tget_d.c}] Disable tests with a division by 0 if
	MPFR_ERRDIVZERO is defined.

	[tests/tests.c] Improved an error message.

	[acinclude.m4] Fixed sigaction check to support "gcc -std=c99", like
	what has been done for math/round.

2012-07-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[trndna.c] test file for mpfr_round_nearest_away()

2012-07-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/rndna.c]
	  * Handle singular cases like with other functions. Avoid the goto.
	  * Reordered the tests to make them simpler and easier to understand
	    (it wasn't immediately visible that inex could not be 0 for the
	    second "else") and fixed the case lastbit == 1 && inex < 0.

	[src/rndna.c] Added a note saying that this method doesn't work
	for 2^(emin-2).

2012-06-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[rndna.c] new function that computes rounding to nearest-away

2012-06-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Test the thousands separator in some en_US locale,
	if available (modified patch from Patrick).

	Added coverage tune (from a patch by Patrick).

2012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] added support by ERC grant of Andreas

2012-06-27  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Replaced a few @samp by @code for consistency.

2012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mpfr.texi] document MPFR_WANT_DECIMAL_FLOATS and MPFR_WANT_FLOAT128

2012-06-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mulders.c] Clean-up and static assertions (patch from Patrick).

	[tests/tgrandom.c] Replaced GMP_RNDN by MPFR_RNDN.

	[tests/tgrandom.c] Improved a test and added a new one for
	mpfr_grandom(x, NULL, ...).

	[doc/mpfr.texi] Completed spec of mpfr_grandom.

2012-06-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[coverage] added instructions how to use this script

2012-06-27  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Update: test coverage.

	[tools/coverage] Detailed coverage (from a patch by Patrick).

2012-06-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/{mpfr-impl.h,print_raw.c}] Removed unused function mpfr_dump_mant
	(added in r3410, but never used); patch by Patrick.

	[tests/tsin.c] Improved coverage.

	[tests/tset.c] Test the mpfr_set function too (patch by Patrick).

	Added configure option --enable-assert=none to avoid checking any
	assertion (this is based on a patch by Patrick).

	[src/digamma.c] Correction: assertions must never have any side effect.

	[tests] Updated svn:ignore property.

	[src/atan.c] Removed trailing whitespace.

	Forgot to add some files in r8266 (tests that are expected to fail).

	Support tests that are expected to fail (from a patch by Patrick).

	[tests/tversion.c] Output the applied patches (if any).

	[tests/tstckintc.c] Correction and test improvement (from a patch
	by Patrick).

	[tools/coverage] Correction by Patrick.

2012-06-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[atan.c] improved code coverage by removing some dead code after some numerical
		 analysis with Benjamin Dadoun

2012-06-26  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Removed obsolete "but see below".

	[tests/tinternals.c] mpfr_set_prec_raw missing tests (thanks to Patrick).

	[tests/tset_si.c] Also test the mpfr_set_ui function (instead of macro).

	[NEWS] 3.2.0 will be "dinde aux marrons".

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[gamma.c] simplified mpfr_gamma_1_minus_x_exact() after code coverage analysis
		  with Benjamin Dadoun

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] aclocal -> acinclude.m4 in a comment.

	[src/{init2.c,mpfr-impl.h}] Clean-up.

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] removed one item, added one

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[acinclude.m4] Detect whether _Thread_local (C11) is supported.
	[src/mpfr-thread.h] Use _Thread_local if supported, instead of __thread.
	(Patch from Patrick)

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[gamma.c] simplified code for mpfr_gamma_2_minus_x_exact() (thanks to coverage
		  analysis by Benjamin Dadoun)

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[src/Makefile.am] Added mpfr-sassert.h to libmpfr_la_SOURCES.

	[src/init2.c] Replaced classic assertions by static assertions.

	Added Static Assertion support (modified patch from Patrick).
	  * Added src/mpfr-sassert.h: implementation of static assertions.
	  * src/mpfr-impl.h: include "mpfr-sassert.h".
	  * acinclude.m4: test whether static assertions are supported.

	[doc/README.dev] Suggest to test with and without -std=c11.

	[tests/tset_float128.c] Test the sign of 0. Use mpfr_equal_p instead of
	mpfr_cmp (this is safer if a result is NaN).

	[src/set_float128.c] Avoid a goto (useless here, contrary to set_ld.c).

	[src/get_float128.c] !MPFR_IS_ZERO -> MPFR_NOTZERO; GNU coding style.

	tests: updated svn:ignore property.

	[tests/tset_float128.c] Got rid of the remaining mpfr_printf's.

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tset_float128.c] added missing empty main when functions are not tested

	[set_float128.c,tset_float128.c] untabified and got rid of mpfr_printf

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Added a period.

	[doc/mpfr.texi] Updated the month.

	[configure.ac] "configure --help" formatting for --enable-float128.

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	compile mpfr_set_float128 and mpfr_get_float128 only when __float128 is supported

	[configure.ac] __float128 is supported by GCC >= 4.3

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_float128.c] mp_rnd_t -> mpfr_rnd_t

2012-06-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new functions mpfr_set_float128 and mpfr_get_float128

	[get_ld.c] fixed typo

2012-06-25  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tversion.c] Test mpfr_buildopt_tune_case() vs MPFR_TUNE_CASE.

	[src/buildopt.c] Made mpfr_buildopt_tune_case() simpler.

2012-06-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[li2.c] replaced mpfr_cmp_d by mpfr_cmp_ui_2exp

2012-06-21  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tset_ld.c] For _GMP_IEEE_FLOATS, use #if instead of #ifdef
	since mpfr-impl.h defines it to 0 if it was undefined.

2012-05-18  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added a reference to a new discussion concerning __float128.

2012-05-14  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>

	* Other corrections (essentially bad or missing declarations) in metaMPFR.

2012-05-11  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved the description of the mpfr_flags_ functions.

2012-05-10  Sylvain Chevillard  <Sylvain.Chevillard@inria.fr>

	* Corrected small errors.

2012-05-10  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved mpfr_flags_test description, giving an example.

	[src/mpfr.h] Define MPFR_FLAGS_ALL from the individual flags
	(MPFR_FLAGS_UNDERFLOW...). Suggestion by Paul Zimmermann.
	Note: the output expression looks OK in assertion failures.

	[doc/mpfr.texi] Correction on mpfr_clear_flags description.

2012-05-09  Vincent Lefèvre  <vincent@vinc17.net>

	Added functions that operate on groups of flags: mpfr_flags_clear,
	mpfr_flags_set, mpfr_flags_test, mpfr_flags_save and mpfr_flags_restore.
	(reintegrated flags branch to the trunk: svn merge --reintegrate ...)

2012-05-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	patch from Nitin A Kamble for automake 1.12.
	This patch avoids these issues with automake 1.12:
	| configure.ac:304: error: automatic de-ANSI-fication support has been removed
	| tests/Makefile.am:12: error: automatic de-ANSI-fication support has been removed

2012-05-07  Vincent Lefèvre  <vincent@vinc17.net>

	[AUTHORS,INSTALL,doc/mpfr.texi] Updated the e-mail address of the
	MPFR mailing-list to match the List-* headers written by the new
	mailing-list server (the old one still works, but may lead to bad
	interaction with MUA's that attempt to honor the List-Post header
	when replying to the list(s)).

	[src/lngamma.c] Added mpfr_explgamma internal function to handle
	  overflows/underflows (intermediate or not) in mpfr_gamma.
	  Updated the general overflow detection to use this function.
	[src/gamma.c] Fixed the general underflow detection.

	[src/lngamma.c] Removed spurious parentheses.

	[tests/tgamma.c] Added tests for 32-bit and 64-bit machines, showing an
	underflow detection bug in gamma.c (see FIXME comment added in r8185).

	[tests/tgamma.c] Added tests to trigger the pre-r8189 endless loop
	on 32-bit machines.

2012-05-04  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgamma.c] Updated exp_lgamma to test the ternary value.

	[src/lngamma.c] Fixed the problem with the overflow flag (r8192).

	Improved src/lngamma.c (mainly on changes from r8189):
	  * Declarations of ok variable were used in nested block.
	  * Added a missing "MPFR_ZIV_FREE (loop);".
	  * In the overflow detection code, call mpfr_lngamma only once, use
	    mpfr_equal_p instead of mpfr_cmp, and share code with the end.
	Note: the problem with the overflow flag (r8192) hasn't been solved yet.

	[tests/tgamma.c] Added a test showing a failure on 64-bit machines
	due to an unset overflow flag.

	[tests/tgamma.c] Updated exp_lgamma to test underflow & overflow flags.

	[TODO] For mpfr_get_flt, etc., exception flags should be raised.

2012-05-04  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/lngamma.c] fixed endless loop with test cases introduced in r8188

2012-05-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tgamma.c] Updated the exp_lgamma_tests test to trigger an
	endless loop due to undetected overflow on 64-bit machines.

	[tests/tgamma.c] Say that the freeze is for 64-bit machines only.

	[tests/tgamma.c] Added more mpfr_tgamma tests, showing a freeze.

	[src/gamma.c] Corrected the FIXME comment concerning the underflow
	detection.

	[src/gamma.c] Added a FIXME comment: the underflow detection may still
	be buggy (or the explanation is incomplete).

	[src/gamma.c] Completed the explanation concerning the new underflow
	detection.

	[src/gamma.c] Removed the FIXME comment (from r8169).

	[src/gamma.c] Untabified.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[doc/mpfr.texi] Updated the month.

2012-05-03  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[gamma.c] tentative fix for the underflow problem

2012-05-03  Vincent Lefèvre  <vincent@vinc17.net>

	Updated URL's of mailing-list archives/messages in all files
	(except ChangeLog, as it is generated).

	[TODO] Updated URL's of mailing-list archives/messages.

2012-05-02  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Updated concerning MPFR_RNDNA.

2012-04-27  Vincent Lefèvre  <vincent@vinc17.net>

	[src/gamma.c] Added a FIXME comment.

	[TODO] Suggested a new rounding mode: MPFR_RNDE, to be used when the
	result is known to be exact (normal mode: optimize; debug mode: check).

	[src/gamma.c] Use the new MPFR_DBGRES macro.

	[tests/tgamma.c] Improved testcase test20100709.

	[tests/tgamma.c] Updated testcase test20100709 for 64-bit machines,
	as this bug reappeared in r8159.

2012-04-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/gamma.c] fixed bug found by Giridhar Tammana
		      https://sympa.inria.fr/sympa/arc/mpfr/2012-04/msg00013.html
	Note (VL): this fix triggers an infinite loop on 32-bit machines
	  (or with -m32) in test20100709 from tgamma.c and this is partly
	  the opposite of changeset r6996.

2012-04-26  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/texceptions.c] Added a comment for check_groups().

	[src/mpfr-impl.h] Improved the noreturn feature.

2012-04-25  Vincent Lefèvre  <vincent@vinc17.net>

	Added support for _Noreturn function specifier (ISO C11).
	  * acinclude.m4: define MPFR_HAVE_NORETURN if _Noreturn is supported.
	  * src/mpfr-impl.h: use _Noreturn when MPFR_HAVE_NORETURN is defined.
	Tested with GCC 4.6 (no _Noreturn) and 4.7 (supports _Noreturn).

	[doc/README.dev] Added a note about the new experimental
	-ftrack-macro-expansion GCC option.

2012-04-24  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Small correction on the mpfr_flags_t description.

	[src/mpfr-impl.h] Added MPFR_FLAGS_DIVBY0 (missing from r8143).

	[src/mpfr-impl.h] Forgot to replace the mpfr_clear_divby0 internal macro
	by MPFR_CLEAR_DIVBY0 in r8141.

2012-04-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
	in ASSERT_FAIL with gcc -ansi -pedantic-errors.
	(Merged changeset r8149 from the trunk)

	[src/mpfr-impl.h] Added a comment concerning MPFR_INT_CEIL_LOG2 and
	macro expansion.

	[src/ai.c] Use an intermediate variable to avoid a huge macro expansion
	in ASSERT_FAIL with gcc -ansi -pedantic-errors.

	[tools/mpfrlint] Update after r8143.
	(Merged changeset r8147 from the trunk)

	[tools/mpfrlint] Update after r8141.

2012-04-20  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Removed item about saving/restoring flags.

	[tests/texceptions.c] Added test of the mpfr_flags_* functions/macros.

	[NEWS] New mpfr_flags_* functions.

	Merged /trunk:r8141-8142 with a few manual changes due to conflict:
	replaced the flags-related mpfr_clear_* internal macros (which were
	already removed in this flags branch) by an uppercase version using
	a do-while in order to prevent one from using them in an expression.
	Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG for consistency.

	[src/mpfr-impl.h] Improved comment about MPFR_CLEAR_* macros.

	[src] Replaced the flags-related mpfr_clear_* internal macros by an
	uppercase version with a do-while in order to prevent one from using
	them in an expression. Renamed MPFR_SET_ERANGE to MPFR_SET_ERANGEFLAG
	for consistency.

2012-04-19  Vincent Lefèvre  <vincent@vinc17.net>

	Implemented the mpfr_flags_* functions (and mpfr_flags_test as a macro).
	The MPFR_FLAGS_* macros had to be moved from mpfr-impl.h to mpfr.h (as
	they are now part of the API). Check that MPFR_FLAGS_ALL <= INT_MAX (or
	similar) when need be. Removed the mpfr_clear_* macros and merged r8139
	(about the MPFR_SET_ERANGE macro) from the trunk due to a risk to break
	the sequence point rules.

	[src/mpfr-impl.h] Use a do-while statement for the MPFR_SET_ERANGE()
	macro in order to prevent one from using this macro in an expression,
	as the sequence point rules could be broken if __gmpfr_flags is
	assigned twice in the same expression (via macro expansions).
	Note: This cannot be done for the mpfr_clear_* flags macros because
	we want to be able to follow the API inside MPFR (thus these macros
	must be usable wherever a function is). These macros should probably
	be removed or renamed in the future (e.g. via the flags branch).

2012-04-17  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added documentation for the new functions on groups
	of flags (not implemented yet).

2012-04-11  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Suggest mpfr_pow_q and variants.

2012-03-28  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated "API Compatibility" section: functions
	mpfr_fmodquo, mpfr_fpif_export and mpfr_fpif_import are new in
	MPFR 3.2.

2012-03-27  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tfpif.c] Removed trailing whitespace.

2012-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fpif.c,tests/tfpif.c] changed to GNU style

2012-03-26  Olivier Demengeon  <olivier.demengeon@inria.fr>

	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

2012-03-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src] New mpfr_flags_t type, defined as an unsigned int. For the
	  __gmpfr_flags variable and internal flags-related variables,
	  replaced unsigned int by mpfr_flags_t (note that this doesn't
	  change the ABI, since unsigned int was already used).
	[tests] Cast __gmpfr_flags to unsigned int when printed with %u.

2012-03-26  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	added new function mpfr_fmodquo
	(cf https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00020.html)

2012-03-26  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-examples/version.c] Output sizeof(mpfr_t) value.

	[tests/tests.c] Improved src_fopen() a bit.

	[doc/README.dev] Explain the use of the new MPFR_DBGRES macro.

	[src/mpfr-impl.h] Added a MPFR_DBGRES macro to avoid a warning in
	non-debug mode, e.g. with GCC's -Wunused-but-set-variable, when a
	result is tested only in an MPFR_ASSERTD expression.
	[src/const_euler.c] Avoid such a warning by using MPFR_DBGRES.

	MPFR_ASSERTD or MPFR_ASSERTN must be used for assertions, not ASSERT.

2012-03-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tests.c] fixed problem with src_fopen
		(https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00021.html)

	[tests/Makefile.am] inp_str.data -> inp_str.dat

	renamed tests/inp_str.data into tests/inp_str.dat
	[tests/tinp_str.c] now use tests/inp_str.dat
	[tests/tfpif.c] use src_fopen instead of fopen

	[src/fpif.c] simplified &x[i] into x+i

	[src/mparam_h.in] better recognition of AMD64 systems
	[tools/cfarm.sh] updated

	[tests.c] fixed compiler warning (gcc70.fsffrance.org, NetBSD, gcc 4.1.3)

2012-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[fpif.c] simplified code since nb_data is always 1

	[mparam_h.in] recognize __tune_amdfam10__ (for example gcc10.fsffrance.org)

	[configure.ac] use AC_C_BIGENDIAN to determine endianness of words

	[tests/Makefile.am] the name of the test file for the export/import functions has changed

2012-03-19  Vincent Lefèvre  <vincent@vinc17.net>

	tests: updated svn:ignore property.

	[src/mpfr.h] Indentation.

2012-03-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	changed the order of arguments of mpfr_fpif_import so that the modified
	argument is first

	[NEWS] updated item about the new mpfr_fpif_export and mpfr_fpif_import functions

	mpfr_fpif_export_binary -> mpfr_fpif_export
	mpfr_fpif_import_binary -> mpfr_fpif_import

	stream.data renamed to mpfrtest.dat
	[tfpif.c] now use remove()

2012-03-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] "in future version" → "in future versions".

	[doc/mpfr.texi] Updated the month.

	[src/fpif.c,tests/tfpif.c] Corrected coding style.

2012-03-17  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/fpif.c] fixed a few warnings and errors with g++ (found on hydra)

2012-03-16  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[out_raw.c] removed obsolete file (replaced by fpif.c)

	[tests/Makefile.am] put tfpif at its right place

	[src/fpif.c] fixed problem with sign on gcc38
	[tests/tfpif.c] solved FIXME's, added new test with fixed data file
	[tests/stream.data] data file for tfpif.c (to check we get same results with
			    different word size and endianness)
	[tests/Makefile.am] added stream.data to make dist

	[fpif.c] added comments
	[tfpif.c] improve error message in case of mismatch
	[acinclude.m4] forgot double-double big endian

	[mpfr.texi] added note saying that mpfr_fpif_export_binary and
		    mpfr_fpif_import_binary are experimental

	[mpfr.texi] added documentation for mpfr_fpif_export_binary and mpfr_fpif_import_binary

	[fpif.c] replaced sizeof(var) by sizeof(type)

2012-03-15  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[fpif.c] fixed a few issues

	[src/fpif.c,src/mpfr.h,tests/tfpif.c] a few fixes so that make and make check
					      pass on one machine. Will fix the
					      remaining issues later.

2012-03-15  Vincent Lefèvre  <vincent@vinc17.net>

	Added FIXME for export/import MPFR numbers, did some corrections,
	updated NEWS file.

	[doc/README.dev] Update about C headers.

2012-03-15  Olivier Demengeon  <olivier.demengeon@inria.fr>

	Add copyright material in fpif.c and test_fpif.c

	Add functions/tests to export/import mpfr number in a binary format

2012-03-13  Vincent Lefèvre  <vincent@vinc17.net>

	Improved mpfr_check and added a missing testcase.

2012-03-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Corrected information about valgrind.

	[src/mpfr-impl.h] Updated a comment.

	[src/mpfr-impl.h] Improved macros from the changeset r8025, in
	particular to avoid an error with the --enable-assert configure
	option and the -ansi -pedantic-errors gcc compiler flags.

2012-03-08  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1 again,
	and improved it in case _MPFR_PREC_FORMAT == 2, where MPFR_PREC_MAX is
	INT_MAX minus some small constant (see r8035).

	[tests/tprintf.c] Corrected the test with MPFR_CHECK_LARGEMEM=1.

	[tests/tinits.c] Improved the large precision test so that it is still
	performed after r8035 (where MPFR_PREC_MAX has been decreased).

	[tests/tconst_log2.c] Replaced mpfr_printf by mpfr_out_str.

2012-03-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tconst_log2.c] use hexadecimal output in case of error in check_large()

	[get_ld.c] added comments and ASSERT()
	[tset_ld.c] added test to better exercise get_ld and set_ld for subnormals,
		    and replaced some 64 by MPFR_LDBL_MANT_DIG

2012-03-07  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tconst_log2.c] improved error message, cf
			https://sympa.inria.fr/sympa/arc/mpfr/2012-03/msg00017.html

	[get_ld.c] deal with the case "long double" == "double"

	[acinclude.m4] deal with long double == double
	[src/set_ld.c] idem

2012-03-07  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Prepare for new version 3.2.0 (will be 4.0.0).

	[INSTALL] Added information about --with-sysroot.

	[INSTALL] Removed an obsolete paragraph saying that the test suite
	can't be run with a C++ compiler. C++ related problems have been
	fixed a long time ago.

2012-03-06  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added new item about saving/restoring flags

	added tuning parameters for mips (on gcc49.fsffrance.org)

2012-03-05  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tuneup.c] fixed compiler warning (got on gcc49.fsffrance.org)

2012-03-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr.h] Minor change to be consistent with "src/mpfr-gmp.h".

	[src/mpfr.h] Added a reference to MPFR bug 13947.

	[src/mpfr.h] Simple temporary fix following GMP's internal __gmp_const
	macro removal in <https://gmplib.org/repo/gmp/rev/d287cfaf6732> (and its
	replacement by const): if __gmp_const isn't define, let's define it to
	const.

2012-03-03  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Mention the mpfr_exp bug fix (from r6964 in exp_2.c).

2012-02-27  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] If 'gmp.h' and 'libgmp' seem to have different versions,
	output the temporary LD_RUN_PATH value (may be useful for debugging).

2012-02-24  Vincent Lefèvre  <vincent@vinc17.net>

	[tests] Removed #include of headers already included via "mpfr-test.h"
	(<limits.h>, <stdio.h>, <stdlib.h>). Note: this change doesn't apply
	to tvalist.c, which is a special test that doesn't use "mpfr-test.h".

	[src] #include <stdlib.h> unconditionally in mpfr-impl.h; removed
	this #include from the .c files.

	[src/logging.c] #include <stdarg.h> was no longer necessary. Removed.

	[src/logging.c] Updated a comment (contained obsolete information).

	[src/mpfr-impl.h] Use %.*Rg instead of %.*Rf for MPFR_LOG_VAR.

	[NEWS] Mention an internal change in MPFR 3.1.0.

	Corrected a typo in MPFR_LOG_FUNC of add_d.c, add_ui.c and mul_d.c
	(mpfr_get_prec → mpfr_log_prec), fixing bug 13933.
	The consequence was random freezes (on the same binary) with dynamic
	linking (and just more memory with static linking to the MPFR library)
	when logging was used.

	[src/const_euler.c] Use the safer MPFR_BLOCK.

2012-02-23  Vincent Lefèvre  <vincent@vinc17.net>

	[src/const_euler.c] Removed a useless log message added in r8040.

	[src/const_euler.c] Replaced computations on double by computations
	  on MPFR types, with detection of overflows. Fixed inconsistencies
	  with algorithms.tex (due to rounding) in the computation of n.
	[src/mpfr-impl.h] Removed #define ALPHA (no longer used).

	[src/mpfr-impl.h] Removed obsolete #define EXPM1.

	[src/erf.c] Removed an obsolete #define.

	[BUGS] Update concerning huge precisions and integer overflows.

	[examples/version.c] Output mpfr_prec_t information with all MPFR
	versions. Output signedness information for MPFR types/macros.

	[src/mpfr.h] Decrease the MPFR_PREC_MAX value by 256 in order to
	  avoid some integer overflows in existing code that increases the
	  working precision (if mpfr_prec_t is on 64 bits, this does not
	  change anything in practice), as too large precisions should be
	  detected via assertions for more security. After discussion, it
	  has been decided to keep the MPFR_PREC_MAX value close to 2^31
	  when mpfr_prec_t is on 32 bits.
	[src/mpfr-impl.h] Added a comment concerning MPFR_ADD_PREC.

	[examples/version.c] Output more information about the precision and
	exponent types.

2012-02-22  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Use MPFR_ADD_PREC in MPFR_ZIV_NEXT.

	[src/mpfr-impl.h] Added an MPFR_ADD_PREC macro to safely increase some
	  precision (i.e. with an assertion check for integer overflow).
	[src/ai.c] Use this MPFR_ADD_PREC macro, in particular in a case where
	  the additional precision can be huge.
	TODO: Other files would need to use MPFR_ADD_PREC.

	[tests/tinits.c] Updated the large precision test to trigger a bug fixed
	in r8025 on 32-bit machines (or when MPFR is built with -m32). Here the
	crash was due to (MPFR_PREC (b) + GMP_NUMB_BITS-1)/GMP_NUMB_BITS in
	"src/set.c".

	[src/rec_sqrt.c] Removed useless #include (mpfr-impl.h does a better job
	for stdio).

	[tests/tinits.c] Improved r8026 (missing #include, support 16-bit prec).

	Document the MPFR_DEBUG_BADCASES environment variable before bad_cases()
	in tests/tests.c (where it is used). Remove it from "doc/README.dev"
	since it is useful only in case of crash / infinite loop in bad_cases(),
	and will give useless output otherwise.

2012-02-22  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added comment
	[doc/README.dev] added environment variables

	[tinits.c] added test to check #13918 is fixed

2012-02-22  Vincent Lefèvre  <vincent@vinc17.net>

	Avoid potential integer overflows and improve consistency. This should
	fix bug #13918 "Segfault with precision = MPFR_PREC_MAX on 32-bit".
	Note: this problem appeared in MPFR 3.0.0 when the precision type (now
	mpfr_prec_t) was changed to a signed integer.

	[configure.ac] Added a comment mentioning a problem with GNU gold ld.

2012-02-15  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added reference to ISO/IEC 24747:2009 (C, special functions).

2012-01-27  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	removed directory src/x86_64/xeon
	[src/Makefile.am] removed x86_64/xeon/mparam.h

2012-01-25  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	share parameters between x86_64/core2 and x86_64/xeon (gcc70)

	[src/Makefile.am] forgot to add new param file

	added tuning parameters for -mtune=nocona (gcc70)

2012-01-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[mparam_h.in] swap tests for 32-bit and 64-bit powerpc, since on powerpc64
	              the parameters for 32-bit are used!

2012-01-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

2012-01-10  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added a note to item about sNaN/qNaN.

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] Mention the AriC project-team.

	Reverted incorrect change in ChangeLog from r7993.

	Changed Arenaire to AriC with:
	  perl -pi -e 's/Contributed by the Arenaire/Contributed by the AriC/' **/*(^/)
	under zsh.

	[doc] Updated FAQ.html with update-faq.

	[doc/faq.xsl] Remove only the top-level comments from the HTML file.

	[doc/faq.xsl] Updated a comment.

	Copyright notice update: added 2012 with
	  perl -pi -e 's/2011 Free Software/2011, 2012 Free Software/' **/*(^/)
	under zsh, reverting the ChangeLog file (the m4 and tools/mbench
	directories were not modified).
	Removed 2011 from the example in the doc/README.dev file.

2011-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] trivial change (to test the commit logs)

2011-12-09  Vincent Lefèvre  <vincent@vinc17.net>

	[configure.ac] Mention --disable-thread-safe.

	[INSTALL] Added information about system/compiler bugs related to TLS
	or optimizations.

2011-12-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[INSTALL] added note about buggy TLS support

2011-11-28  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/turandom.c] Removed an obsolete comment.

	[src/mpfr-gmp.h] Updated the TODO comment about the rand state.

	[doc/mpfr.texi] Updated the month.

	[tests/trandom.c,tests/turandom.c] Fixed compatibility with GMP 4.1.x
	(since the default PRNG has changed between GMP 4.1 and 4.2).

	[doc/mpfr.texi] Mentioned the difference between GMP 4.1 and 4.2 about
	the changes of mpfr_urandom and mpfr_urandomb in MPFR 3.1.

	[src/mpfr-gmp.h] Added a TODO comment.

2011-11-24  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	revert previous commit (test)

	commit test

2011-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-thread.h] added pointer to TLS on Windows

2011-11-09  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Added a test showing a regression in MPFR 3.1.0
	(but fixed in r7931 and later).

2011-11-09  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tatan.c] mpfr_set_emin -> set_emin (idem for emax)

2011-11-09  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added a reference to an old discussion concerning __float128.

2011-11-08  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added item

2011-11-03  Vincent Lefèvre  <vincent@vinc17.net>

	[src/vasprintf.c] Untabify.

2011-11-03  Philippe Théveny  <philippe.theveny@laposte.net>

	[src/vasprintf.c] Corrected a comment.

2011-11-03  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/tsprintf.c] Coding style.

2011-11-02  Vincent Lefèvre  <vincent@vinc17.net>

	[src/strtofr.c] Spelling.

	[src/vasprintf.c] Spelling.

	[src/vasprintf.c] Corrected a comment.

	[tests/tsprintf.c] Added tests.

	[src/vasprintf.c] Untabify. Minor correction in a comment.

2011-11-02  Philippe Théveny  <philippe.theveny@laposte.net>

	[src/vasprintf.c] Rewrite in a cleaner way the part of regular_fg implied in the bug reported by Pavel Holoborodko (see r7931).

2011-11-02  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpn_exp.c] changed FIXME into TODO

	[src/mpn_exp.c] added comment
	[src/vasprintf.c] (hopefully) fixed bug reported by Pavel Holoborodko
	[tests/tsprintf.c] added corresponding test case

2011-10-14  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/Makefile.am] Added -L$(top_builddir)/src/.libs to AM_LDFLAGS.
	[INSTALL] Removed the notes on HP-UX (obsolete after the above change).

2011-10-13  Vincent Lefèvre  <vincent@vinc17.net>

	[INSTALL] Corrected notes for HP-UX.

	[INSTALL] Added notes for HP-UX after a bug report. See discussion:
	https://sympa.inria.fr/sympa/arc/mpfr/2011-10/msg00042.html

2011-10-12  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[TODO] added one item

	[corei5/mparam.h] tuning files for Core i5 (not yet used since GMP 5.0.2 does
			  currently recognize Core i5 as "k8", however the k8 tuning
			  parameters are not so bad for Core i5)

2011-10-05  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Improved MPFR_IS_PURE_FP definition, so that
	MPFR_ASSERTD takes a boolean (0 or 1).

2011-10-04  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Fixed a bug in the MPFR_UNLIKELY macro for GCC
	(found under Mac OS X / PowerPC with the mode32 GMP ABI, and MPFR
	built with --enable-assert=full).
	(Merged changeset r7908 from the 3.1 branch.)

2011-09-29  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] added reference and comment for eint

2011-09-25  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Rephrased mpfr_frexp description.

2011-09-24  Vincent Lefèvre  <vincent@vinc17.net>

	Renamed "division-by-zero" to "divide-by-zero" (term used by the
	ISO C99 standard, the IEEE 754-2008 standard using divideByZero,
	and the old IEEE 754-1985 standard using both "divide by zero"
	and "division by zero").

	[src/gmp_op.c] Forgot to update the flags in some functions.

	[tests/tgmpop.c] Improved division-by-zero tests.

2011-09-23  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/faq.xsl] Added a comment about the MPFR logo.

2011-09-22  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved mpfr_frexp description.

	[doc/mpfr.texi] Corrected typo in the mpfr_frexp description.

2011-09-21  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tools/cfarm.sh] updated for MPFR 3.1.0 rc2

2011-09-20  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[cfarm.sh] updated for MPFR 3.1.0-rc1 (with GMP 5.0.2)

2011-09-20  Vincent Lefèvre  <vincent@vinc17.net>

	[examples/version.c] Output mpfr_buildopt_gmpinternals_p() and
	mpfr_buildopt_tune_case() values with MPFR 3.1 or later.

	Renamed mpfr_buildopt_internals_p to mpfr_buildopt_gmpinternals_p.

	Added mpfr_buildopt_internals_p function.

	[doc/mpfr.texi] Added commas.

	[src/gmp_op.c] Handle the special cases in mpfr_cmp_q and mpfr_cmp_f.

2011-09-19  Vincent Lefèvre  <vincent@vinc17.net>

	[TODO] Added an item about the minimum and maximum exponents.

	[src/agm.c] Replaced MPFR_EMIN_MIN and MPFR_EMAX_MAX by MPFR_EXT_EMIN
	and MPFR_EXT_EMAX respectively (see r7862 and r7863).

	[src/mpfr-impl.h] Define new macros MPFR_EXT_EMIN and MPFR_EXT_EMAX.
	[doc/README.dev] Document how to specify the minimum exponent or the
	  maximum exponent.

2011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/agm.c] replaced __gmpfr_emax by MPFR_EMAX_MAX (same for __gmpfr_emin).
		    Solves bug on gcc54 with --enable-thread-safe and GCC 4.3.2.

2011-09-19  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-gmp.h] Added missing prototype for __gmpn_sbpi1_divappr_q
	(it could be detected when building MPFR with g++).

2011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[tests/tgmpop.c] check for erange flag in mpfr_cmp_[f,q,z]
		 (https://sympa.inria.fr/sympa/arc/mpfr/2011-09/msg00013.html)

2011-09-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Updated "To make a release".

2011-09-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/mpfr-gmp.h] fixed bug with --enable-gmp-internals introduced in r7455
			 (mpfr_limb_ptr is not yet defined when reading mpfr-gmp.h
			  thus we can't use it)

2011-09-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Correction: "5 exception types" → "6 exception types"
	(thanks to Case Vanhorsen for the report).

2011-09-14  Vincent Lefèvre  <vincent@vinc17.net>

	[src/mpfr-impl.h] Define LONGLONG_STANDALONE before including
	mpfr-longlong.h so that udiv_qrnnd_preinv is defined (this is
	useful at least on IA64 when compiling without gmp-impl.h).
	Thanks to Patrick Pélissier for the fix.

2011-09-11  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Updated "API Compatibility" section: as of MPFR 3.1,
	the mpfr.h header can be included several times, while still supporting
	optional functions.

	[doc/mpfr.texi] Replaced some @code by @file for consistency.

	[doc/mpfr.texi] Updated "API Compatibility" section: functions
	mpfr_frexp, mpfr_grandom and mpfr_z_sub are new in MPFR 3.1.

	[doc/mpfr.texi] Documented function mpfr_buildopt_tune_case,
	and added it to the list of added functions.
	[NEWS] Function mpfr_buildopt_tune_case is new in MPFR 3.1.

	[doc/mpfr.texi] Updated "API Compatibility" section
	(new division-by-zero exception in MPFR 3.1).

	[doc/mpfr.texi] Updated the month.

	[doc/mpfr.texi] MPFR_RNDA was introduced in MPFR 3.0.0 and should
	no longer be considered experimental.

2011-09-10  Vincent Lefèvre  <vincent@vinc17.net>

	[tests/trec_sqrt.c] Fixed bug introduced in r7711 (build failure
	with a C++ compiler).

	[TODO] Replaced "configure.in" by "configure.ac".

	[doc/README.dev] Removed obsolete paragraph about AM_MAINTAINER_MODE.

	[tools/mpfrlint] Correction after r7825.

	[tools/mpfrlint] Run tools/ck-mparam.

	Added tools/ck-mparam sh script to check the mparam.h files
	(gcc is needed).

2011-09-10  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[src/amd/k8/mparam.h] removed spurious end of comment

2011-09-09  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] For the valgrind example, use the same arguments
	as in gnulib's valgrind-tests.m4 file.

	ChangeLog update with "LC_ALL=en_US.UTF8 TZ=UTC svn log -rHEAD:0 -v".

	[Makefile.am] Added tools/ck-copyright-notice to EXTRA_DIST as it is
	  used in dist-hook.
	[tools/ck-copyright-notice] Added copyright notice (since this file is
	  distributed in the tarballs). Note: the first year is 2008 as a part
	  of the code comes from r5370 in mpfrlint.

	[tools/ck-copyright-notice] Skip src/mpfr-longlong.h as this file
	(which comes from GMP) has a specific copyright notice.

	[src/mp_clz_tab.c] Updated the copyright notice.

	[tools/ck-copyright-notice] Check that the first copyright year for
	the mparam.h files is 2005.

	Added copyright notice to the mparam.h files (with the same years
	as in the template).

	Added tools/ck-copyright-notice sh script from mpfrlint (updated) to
	check that copyright notices exist and appear to be correct. Updated
	tools/mpfrlint to run tools/ck-copyright-notice instead of its old
	test. In Makefile.am, run tools/ck-copyright-notice in dist-hook for
	"make dist".

	[tools/mpfrlint] More files under src and tests directories.

2011-09-08  Vincent Lefèvre  <vincent@vinc17.net>

	[NEWS] Update for MPFR 3.1.x.

	[tests/Makefile.am]
	  * Added "AM_LDFLAGS = -no-install" to prevent libtool from generating
	    wrapper scripts for the tests (according to discussions and tests,
	    there should be no negative effects); useful for gdb and valgrind.
	  * Added $(VALGRIND) to TESTS_ENVIRONMENT in order to easily run the
	    tests under valgrind with: VALGRIND="valgrind -q" make check
	[doc/README.dev] Update for gdb and valgrind.

2011-08-31  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Improved the specification of mpfr_get_f.

2011-08-30  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[configure.ac] added comment about minimal GMP version

	dummy change to check if GMP_CHECK_RANDOMIZE is now used in the Hydra
	builds on http://hydra.nixos.org/jobset/gnu/mpfr-trunk

2011-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added some references to the ternary definition.

2011-08-19  Paul Zimmermann  <Paul.Zimmermann@inria.fr>

	[doc/mpfr.texi] improved the documentation of mpfr_set_str, as suggested by
			Vincent Lefevre

2011-08-19  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/mpfr.texi] Added "Ternary value" to the concept index.

2011-08-15  Vincent Lefèvre  <vincent@vinc17.net>

	[doc/README.dev] Added information on how to update the                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               