* A subtraction of two numbers of the same sign or addition of two
numbers of different signs can be rounded incorrectly (and the
ternary value can be incorrect) when one of the two inputs is
reused as the output (destination) and all these MPFR numbers
have exactly GMP_NUMB_BITS bits of precision (typically, 32 bits
on 32-bit machines, 64 bits on 64-bit machines).
* The mpfr_fma and mpfr_fms functions can behave incorrectly in case
of internal overflow or underflow.
* The result of the mpfr_sqr function can be rounded incorrectly
in a rare case near underflow when the destination has exactly
GMP_NUMB_BITS bits of precision (typically, 32 bits on 32-bit
machines, 64 bits on 64-bit machines) and the input has at most
GMP_NUMB_BITS bits of precision.
* The behavior and documentation of the mpfr_get_str function are
inconsistent concerning the minimum precision (this is related to
the change of the minimum precision from 2 to 1 in MPFR 4.0.0). The
get_str patch fixes this issue in the following way: the value 1
can now be provided for n (4th argument of mpfr_get_str); if n = 0,
then the number of significant digits in the output string can now
be 1, as already implied by the documentation (but the code was
increasing it to 2).
* The mpfr_cmp_q function can behave incorrectly when the rational
(mpq_t) number has a null denominator.
* The mpfr_inp_str and mpfr_out_str functions might behave
incorrectly when the stream is a null pointer: the stream is
replaced by stdin and stdout, respectively. This behavior is
useless, not documented (thus incorrect in case a null pointer
would have a special meaning), and not consistent with other
input/output functions.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/mpfr?expand=0&rev=51
* The "dinde aux marrons" release.
* MPFR now depends on GMP 5.0+ instead of 4.1+.
* API change:
Applications that call GMP's mp_set_memory_functions function to change
the allocators must first call the new function mpfr_mp_memory_cleanup
in all threads where MPFR is potentially used; this new function is
currently equivalent to mpfr_free_cache.
The reason is that the way memory allocation is done by MPFR has changed
(again), so that the current GMP allocators are used (since for some
applications, the old allocators may become invalid).
Note: Freeing the caches like this might have a performance impact on some
particular applications; if this is an issue, this could be handled for a
future MPFR version.
* Mini-gmp support via the --enable-mini-gmp configure option (experimental).
* The minimum precision MPFR_PREC_MIN is now 1, with rounding defined as
in the errata of IEEE 754-2008 and in the following IEEE 754 revision
(ties rounded away from zero).
* Shared caches for multithreaded applications.
New function mpfr_free_cache2.
* Partial support of MPFR_RNDF (faithful rounding).
* New functions: mpfr_fpif_export and mpfr_fpif_import to export and import
numbers in a floating-point interchange format, independent both on the
number of bits per word and on the endianness.
* New function mpfr_fmodquo to return the low bits of the quotient
corresponding to mpfr_fmod.
* New functions mpfr_flags_clear, mpfr_flags_set, mpfr_flags_test,
mpfr_flags_save and mpfr_flags_restore to operate on groups of flags.
* New functions mpfr_set_float128 and mpfr_get_float128 to convert from/to
the __float128 type (requires --enable-float128 and compiler support).
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/mpfr?expand=0&rev=47
* The mpfr_urandom and mpfr_urandomb functions now return identical
values on processors with different word size.
* Speed improvement for the mpfr_sqr and mpfr_div functions using
Mulders' algorithm.
* Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
* New divide-by-zero exception (flag) and associated functions.
- Remove bogus provides/obsoletes for old shared library version.
- Fix license, it is LGPL v3 or later.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/mpfr?expand=0&rev=16