xref: /netbsd-src/external/lgpl3/mpfr/dist/NEWS (revision ec6772edaf0cdcb5f52a48f4aca5e33a8fb8ecfd)
1Copyright 2000-2023 Free Software Foundation, Inc.
2Contributed by the AriC and Caramba projects, INRIA.
3
4This file is part of the GNU MPFR Library.
5
6The GNU MPFR Library is free software; you can redistribute it and/or modify
7it under the terms of the GNU Lesser General Public License as published by
8the Free Software Foundation; either version 3 of the License, or (at your
9option) any later version.
10
11The GNU MPFR Library is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14License for more details.
15
16You should have received a copy of the GNU Lesser General Public License
17along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
18https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
1951 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20
21##############################################################################
22
23Changes from version 4.2.0 to version 4.2.1:
24- Bug fixes (see <https://www.mpfr.org/mpfr-4.2.0/#fixed> and/or the
25  ChangeLog file).
26- Improved MPFR manual.
27- Configure tests: replaced the test of the link with GMP, in order to
28  avoid the use of a function without a prototype (Autoconf issue), as
29  this is obsolescent in ISO C. The new test should be more robust.
30
31Changes from versions 4.1.* to version 4.2.0:
32- The "fondue savoyarde" release.
33- Binary compatible with MPFR 4.0.* and 4.1.*, though some minor changes in
34  the behavior of the formatted output functions may be visible, regarded
35  as underspecified behavior or bug fixes (see below).
36- New functions mpfr_cosu, mpfr_sinu, mpfr_tanu, mpfr_acosu, mpfr_asinu,
37  mpfr_atanu and mpfr_atan2u.
38- New functions mpfr_cospi, mpfr_sinpi, mpfr_tanpi, mpfr_acospi, mpfr_asinpi,
39  mpfr_atanpi and mpfr_atan2pi.
40- New functions mpfr_log2p1, mpfr_log10p1, mpfr_exp2m1, mpfr_exp10m1 and
41  mpfr_compound_si.
42- New functions mpfr_fmod_ui, mpfr_powr, mpfr_pown, mpfr_pow_uj, mpfr_pow_sj
43  and mpfr_rootn_si (mpfr_pown is actually a macro defined as an alias for
44  mpfr_pow_sj).
45- Bug fixes.
46  In particular, for the formatted output functions (mpfr_printf, etc.),
47  the case where the precision consists only of a period has been fixed
48  to be like ".0" as specified in the ISO C standard, and the manual has
49  been corrected and clarified.
50  The macros of the custom interface have also been fixed: they now behave
51  like functions (except a minor limitation for mpfr_custom_init_set).
52
53Changes from versions 4.0.* to version 4.1.0:
54- The "épinards à la crème" release.
55- Binary compatible with MPFR 4.0.*, though some minor changes in the
56  behavior of the formatted output functions may be visible, regarded
57  as underspecified behavior or bug fixes (see below).
58- New --enable-formally-proven-code configure option, to use (when available)
59  formally proven code.
60- Improved __GMP_CC and __GMP_CFLAGS retrieval (in particular for MS Windows).
61- Option -pedantic is now always removed from __GMP_CFLAGS (see INSTALL).
62- Changed __float128 to the type _Float128 specified in ISO/IEC TS 18661.
63  __float128 is used as a fallback if _Float128 is not supported.
64- New function mpfr_get_str_ndigits about conversion to a string of digits.
65- New function mpfr_dot for the dot product (incomplete, experimental).
66- New functions mpfr_get_decimal128 and mpfr_set_decimal128 (available only
67  when MPFR has been built with decimal float support).
68- New function mpfr_cmpabs_ui.
69- New function mpfr_total_order_p for the IEEE 754 totalOrder predicate.
70- The mpfr_out_str function now accepts bases from -2 to -36, in order to
71  follow mpfr_get_str and GMP's mpf_out_str functions (these cases gave an
72  assertion failure, as with other invalid bases).
73- Shared caches: cleanup; really detect lock failures (abort in this case).
74- The behavior of the formatted output functions (mpfr_printf, etc.) with
75  an empty precision field has improved: trailing zeros are kept in a way
76  similar to the formatted output functions from C.
77- Improved mpfr_add and mpfr_sub when all operands have a precision equal to
78  twice the number of bits per word, e.g., 128 bits on a 64-bit platform.
79- Optimized the tuning parameters for various architectures.
80- Improved test coverage to 98.6% of code for x86_64.
81- Bug fixes.
82- MPFR manual: corrected/completed the mpfr_get_str description in order to
83  follow the historical behavior and GMP's mpf_get_str function.
84- New: optional "make check-exported-symbols", mainly for the MPFR developers
85  and binary distributions, to check that MPFR does not define symbols with a
86  GMP reserved prefix (experimental).
87- Mini-gmp support: replaced --enable-mini-gmp configure option by
88  --with-mini-gmp (still experimental, read doc/mini-gmp).
89- A GCC bug on Sparc (present at least in old GCC 4.5.3 and 5.5.0 versions),
90  which made several tests fail when TLS was enabled, is now avoided in the
91  tests. The MPFR library itself was not affected and normal code using the
92  MPFR library should not be affected either. Users and distributions that
93  disabled TLS just because of the test failures can safely re-enable it.
94
95Changes from versions 3.1.* to version 4.0.0:
96- The "dinde aux marrons" release.
97- MPFR now depends on GMP 5.0+ instead of 4.1+.
98- API change:
99  Applications that call GMP's mp_set_memory_functions function to change
100  the allocators must first call the new function mpfr_mp_memory_cleanup
101  in all threads where MPFR is potentially used; this new function is
102  currently equivalent to mpfr_free_cache.
103  The reason is that the way memory allocation is done by MPFR has changed
104  (again), so that the current GMP allocators are used (since for some
105  applications, the old allocators may become invalid).
106  Note: Freeing the caches like this might have a performance impact on some
107  particular applications; if this is an issue, this could be handled for a
108  future MPFR version.
109- Mini-gmp support via the --enable-mini-gmp configure option (experimental).
110- The minimum precision MPFR_PREC_MIN is now 1, with rounding defined as
111  in the errata of IEEE 754-2008 and in the following IEEE 754 revision
112  (ties rounded away from zero).
113- Shared caches for multithreaded applications.
114  New function mpfr_free_cache2.
115- Partial support of MPFR_RNDF (faithful rounding).
116- New functions: mpfr_fpif_export and mpfr_fpif_import to export and import
117  numbers in a floating-point interchange format, independent both on the
118  number of bits per word and on the endianness.
119- New function mpfr_fmodquo to return the low bits of the quotient
120  corresponding to mpfr_fmod.
121- New functions mpfr_flags_clear, mpfr_flags_set, mpfr_flags_test,
122  mpfr_flags_save and mpfr_flags_restore to operate on groups of flags.
123- New functions mpfr_set_float128 and mpfr_get_float128 to convert from/to
124  the __float128 type (requires --enable-float128 and compiler support).
125- New functions mpfr_buildopt_float128_p and mpfr_buildopt_sharedcache_p.
126- New functions mpfr_rint_roundeven and mpfr_roundeven, completing the
127  other similar round-to-integer functions for rounding to nearest with
128  the even-rounding rule.
129- New macro mpfr_round_nearest_away to add partial emulation of the
130  rounding to nearest-away (as defined in IEEE 754-2008).
131- New functions mpfr_nrandom and mpfr_erandom to generate random numbers
132  following normal and exponential distributions respectively.
133- New functions mpfr_fmma and mpfr_fmms to compute a*b+c*d and a*b-c*d.
134- New function mpfr_rootn_ui, similar to mpfr_root, but agreeing with the
135  rootn function of the IEEE 754-2008 standard.
136- New functions mpfr_log_ui to compute the logarithm of an integer,
137  mpfr_gamma_inc for the incomplete Gamma function.
138- New function mpfr_beta for the Beta function (incomplete, experimental).
139- New function mpfr_get_q to convert a floating-point number into rational.
140- The mpfr_dump function is now described in the manual; its output format
141  has slightly changed.
142- The mpfr_eint function now returns the value of the E1/eint1 function
143  for negative argument.
144- The behavior of the mpfr_set_exp function changed, as it could easily
145  yield undefined behavior in some cases (this modifies both the API and
146  the ABI).
147- In function mpfr_urandom, the next random state no longer depends on the
148  current exponent range and the rounding mode. The exceptions due to the
149  rounding of the random number are now correctly generated, following the
150  uniform distribution.
151- Functions mpfr_grandom and mpfr_root are deprecated and will be removed
152  in a future release.
153- Complete rewrite of function mpfr_sum, which now works in all cases (the
154  old one could take all the memory and/or crash with inputs of different
155  magnitudes in case of huge cancellation or table maker's dilemma). The
156  sign of an exact zero result is now specified, and the return value is
157  now the usual ternary value. Note that the position of "const" in the
158  mpfr_sum prototype has been fixed (the manual was correct); user code
159  should not be affected.
160- Old, deprecated macros mpfr_add_one_ulp and mpfr_sub_one_ulp removed.
161  The mpfr_next* functions should be used instead.
162- Internally, improved caching: a minimum of 10% increase of the precision
163  is guaranteed to avoid too many recomputations.
164- Added internal small-precision mpz_t pool, which aims to avoid the
165  overhead of memory allocation, in particular.
166  New function mpfr_free_pool.
167- Added configure option --enable-assert=none to avoid checking any assertion.
168- The --enable-decimal-float configure option no longer requires
169  --with-gmp-build, and support for decimal floats is now automatically
170  detected by default (similarly for support for __float128).
171- Updated tuning parameters.
172- Better support for Automake 1.13+ (now used to generate the tarball).
173- Dropped K&R C compatibility.
174- Improved MPFR manual.
175- New MPFRbench program (see the tools/bench directory).
176- Major speedup in mpfr_add, mpfr_sub, mpfr_mul, mpfr_div and mpfr_sqrt when
177  all operands have the same precision and this precision is less than twice
178  the number of bits per word, e.g., less than 128 on a 64-bit computer.
179- Speedup by a factor of almost 2 in the double <--> mpfr conversions
180  (mpfr_set_d and mpfr_get_d).
181- Speedup in mpfr_log1p and mpfr_atanh for small arguments.
182- Speedup in the mpfr_const_euler function (contributed by Fredrik Johansson),
183  in the computation of Bernoulli numbers (used in mpfr_gamma, mpfr_li2,
184  mpfr_digamma, mpfr_lngamma and mpfr_lgamma), in mpfr_div, in mpfr_fma
185  and mpfr_fms.
186- Test coverage: 96.3% lines of code.
187- Bug fixes. In particular: a speed improvement when the --enable-assert
188  or --enable-assert=full configure option is used with GCC; mpfr_get_str
189  now sets the NaN flag on NaN input and the inexact flag when the conversion
190  is inexact. For a full list, see https://www.mpfr.org/mpfr-3.1.6/#fixed
191  and the same section for any previous 3.1.x version (follow the links
192  in the "Changes..." sections).
193- Microsoft Windows: Added support for thread-safe DLL (shared library).
194  Tested with MinGW, ICC and MSVC.
195- Limited pkg-config support.
196- Autotools: Under Linux, make sure that the old dtags (when supported)
197  are used if LD_LIBRARY_PATH is defined; otherwise "make check" would
198  check an installed, compatible MPFR library found in LD_LIBRARY_PATH
199  instead of the one that has been built with "make".
200- New: optional "make check-gmp-symbols", mainly for binary distributions,
201  to check that MPFR does not use GMP internal symbols (experimental).
202
203Changes from versions 3.0.* to version 3.1.0:
204- The "canard à l'orange" release.
205- The MPFR source has been reorganized.
206- Dropped ansi2knr support.
207- TLS support is now detected automatically. If TLS is supported, MPFR is
208  built as thread safe by default. To disable TLS explicitly, configure
209  MPFR with --disable-thread-safe.
210- New --enable-gmp-internals configure option to use GMP's undocumented
211  functions (not from the public API). Note that library versioning is
212  not guaranteed to work if this option is used.
213- The mpfr_urandom and mpfr_urandomb functions now return identical values
214  on processors with different word size (assuming the same random seed, and
215  since the GMP random generator does not depend itself on the word size,
216  cf https://gmplib.org/list-archives/gmp-devel/2010-September/001642.html).
217- The mpfr_add_one_ulp and mpfr_sub_one_ulp macros (which are obsolete and
218  no more documented) will be removed in a future release.
219- Speed improvement for the mpfr_sqr and mpfr_div functions using Mulders'
220  algorithm. As a consequence, other functions using those routines are
221  also faster.
222- Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
223- The --with-gmp-build configure option can now be used when the GMP
224  source directory and the GMP build directory are different (without
225  having to copy header files manually as before).
226- New functions mpfr_buildopt_gmpinternals_p, mpfr_buildopt_tune_case,
227  mpfr_frexp, mpfr_grandom and mpfr_z_sub.
228- New divide-by-zero exception (flag) and associated functions.
229- The mpfr.h header can be included several times, while still supporting
230  optional functions (see Section "Headers and Libraries" in the manual).
231- Updated tuning parameters.
232- Improved MPFR manual.
233- MPFR tests: libtool no longer generates wrapper scripts with "make check"
234  (so that running the tests under valgrind or gdb is easier).
235- Internal change: the logging mechanism has been improved.
236- Test coverage: 95.2% lines of code.
237- Bug fixes, in particular a huge inefficiency in mpfr_exp (when the
238  target precision is less than MPFR_EXP_THRESHOLD) on hard-to-round
239  cases, which can take several minutes.
240  Note: The mpfr_subnormalize implementation up to MPFR 3.0.0 did not change
241  the flags. In particular, it did not follow the generic rule concerning
242  the inexact flag (and no special behavior was specified). The case of the
243  underflow flag was more a lack of specification.
244
245Changes from versions 2.4.* to version 3.0.0:
246- The "boudin aux pommes" release.
247- MPFR 3.0.0 is binary incompatible with previous versions but (almost)
248  API compatible.  More precisely the obsolete functions mpfr_random
249  and mpfr_random2 have been removed, the meaning of the return type
250  of the function mpfr_get_f has changed, and the return type of the
251  function mpfr_get_z is now int instead of void.  In practice, this
252  should not break any existing code.
253- MPFR is now distributed under the GNU Lesser General Public License
254  version 3 or later (LGPL v3+).
255- Rounding modes GMP_RNDx are now MPFR_RNDx (GMP_RNDx kept for
256  compatibility).
257- A new rounding mode (MPFR_RNDA) is available to round away from zero.
258- The rounding mode type is now mpfr_rnd_t (as in previous versions,
259  both mpfr_rnd_t and mp_rnd_t are accepted, but mp_rnd_t may be
260  removed in the future).
261- The precision type is now mpfr_prec_t (as in previous versions, both
262  mpfr_prec_t and mp_prec_t are accepted, but mp_prec_t may be removed
263  in the future) and it is now signed (it was unsigned in MPFR 2.*, but
264  this was not documented). In practice, this change should not affect
265  existing code that assumed nothing on the precision type.
266- MPFR now has its own exponent type mpfr_exp_t, which is currently
267  the same as GMP's mp_exp_t.
268- Functions mpfr_random and mpfr_random2 have been removed.
269- mpfr_get_f and mpfr_get_z now return a ternary value.
270- mpfr_strtofr now accepts bases from 37 to 62.
271- mpfr_custom_get_mantissa was renamed to mpfr_custom_get_significand
272  (mpfr_custom_get_mantissa is still available via a #define).
273- Functions mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
274  mpfr_get_z and mpfr_get_z_2exp no longer have cases with undefined
275  behavior; in these cases, the behavior is now specified, and in
276  particular, the erange flag is set.
277- New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p giving
278  information about options used at MPFR build time.
279- New function mpfr_regular_p.
280- New function mpfr_set_zero.
281- New function mpfr_digamma.
282- New function mpfr_ai (incomplete, experimental).
283- New functions mpfr_set_flt and mpfr_get_flt to convert from/to the
284  float type.
285- New function mpfr_urandom.
286- New function mpfr_set_z_2exp (companion to mpfr_get_z_2exp, which
287  was renamed from mpfr_get_z_exp in previous versions).
288- New function mpfr_min_prec.
289- Speed improvement for large precisions in the trigonometric functions
290  (mpfr_sin, mpfr_cos, mpfr_tan, mpfr_sin_cos): speedup of about 2.5
291  for 10^5 digits, of about 5 for 10^6 digits.
292- Speed improvement for large precisions of the inverse trigonometric
293  functions (arcsin, arccos, arctan): about 2 for 10^3 digits, up to
294  2.7 for 10^6 digits.
295- Some documentation files are installed in $docdir.
296- The detection of a GMP build directory (more precisely, the internal
297  header files of GMP) was previously done separately from the use of
298  the --with-gmp-build configure option. This was not consistent with
299  the documentation and with other parts of the configure script. So,
300  as of MPFR 3.0.0, the internal header files of GMP are now used if
301  and only if the --with-gmp-build configure option is given.
302- The configure script recognizes some extra "long double" formats
303  (double big endian, double little endian, double-double big endian).
304- MPFR manual: added "API Compatibility" section.
305- Test coverage: 97.1% lines of code.
306- Bug fixes.
307
308Changes from versions 2.3.* to version 2.4.0:
309- The "andouillette sauce moutarde" release.
310- MPFR is now a GNU package.
311- Changes in the behavior of mpfr_strtofr and in its documentation
312  concerning particular cases where the code and the documentation
313  did not match; this change is also present in MPFR 2.3.1.
314- Behavior of mpfr_check_range changed: if the value is an inexact
315  infinity, the overflow flag is set (in case it was lost); this
316  change is also present in MPFR 2.3.2.
317- Function mpfr_init_gmp_rand (only defined when building MPFR without
318  the --with-gmp-build configure option) is no longer defined at all.
319  This function was private and not documented, and was used only in
320  the MPFR test suite. User code that calls it is regarded as broken
321  and may fail as a consequence. Running the old test suite against
322  MPFR 2.4.0 may also fail.
323- New functions:
324  * between a MPFR number and a double: mpfr_add_d, mpfr_sub_d,
325    mpfr_d_sub, mpfr_mul_d, mpfr_div_d, mpfr_d_div,
326  * formatted input/output:
327    mpfr_printf, mpfr_fprintf, mpfr_vprintf, mpfr_vfprintf,
328    mpfr_sprintf, mpfr_snprintf, mpfr_vsprintf, mpfr_vsnprintf,
329    mpfr_asprintf, mpfr_vasprintf.
330  * mpfr_sinh_cosh, mpfr_li2, mpfr_modf, mpfr_fmod, mpfr_rec_sqrt.
331- Configure test for TLS support.
332- Get default $CC and $CFLAGS from gmp.h (__GMP_CC / __GMP_CFLAGS,
333  which are available as of GMP 4.2.3).
334- Documented the fact that mpfr_random and mpfr_random2 will be
335  suppressed in the next release, and that the specification of
336  mpfr_eq may change in the next release (for compatibility with
337  the mpf layer of GMP).
338- Test coverage: 96.7% lines of code.
339- Bug fixes.
340
341Changes from versions 2.2.* to version 2.3.0:
342- The mpfr.info file is now installed in the share subdirectory
343  (as required by the Filesystem Hierarchy Standard); see output
344  of "./configure --help".
345- The shared library is now enabled by default. If the MPFR build
346  fails on your platform, try the --disable-shared configure option
347  to disable the shared library.
348- Thread-safe support with Microsoft Visual compiler.
349- New functions mpfr_j0, mpfr_j1, mpfr_jn, mpfr_y0, mpfr_y1, mpfr_yn,
350  mpfr_lgamma, mpfr_remainder, mpfr_remquo, mpfr_fms, mpfr_signbit,
351  mpfr_setsign, mpfr_copysign, mpfr_get_patches.
352- Functions mpfr_sin, mpfr_cos and mpfr_sin_cos improved (argument
353  reduction).
354- More detailed MPFR manual.
355- Improved tests (make check).
356- Bug fixes.
357
358Changes from versions 2.1.* to version 2.2.0:
359- Bug fixes.
360- new functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_inexflag,
361  mpfr_set_erangeflag, mpfr_set_nanflag, mpfr_erfc, mpfr_atan2, mpfr_pow_z,
362  mpfr_subnormalize, mpfr_const_catalan, mpfr_sec, mpfr_csc, mpfr_cot,
363  mpfr_root, mpfr_eint, mpfr_get_f, mpfr_sech, mpfr_csch, mpfr_coth,
364  mpfr_lngamma.
365- new macro: MPFR_VERSION_STRING
366- Remove the exported MPFR variables from mpfr.h to mpfr-impl.h.
367  (They were undocumented, so programs which respect the API still work).
368- Grep CC and CFLAGS from GMP Makefile if possible.
369- Math functions are faster (both average and worst cases).
370- Better support for long double.
371- Shared library of MPFR.
372- Binary compatible with previous versions if you do not use undocumented
373  features.
374- Thread safe (if built with --enable-thread-safe).
375- Logging facility.
376- Change in the semantics of mpfr_out_str/mpfr_get_str when n_digits=0.
377- Better locale support.
378
379Changes from version 2.1.0 to version 2.1.1:
380- Better way to detect the GMP library.
381- Bug fixes.
382
383Changes from version 2.0.3 to version 2.1.0:
384- Bug fixes.
385- new functions mpfr_strtofr, mpfr_set_uj, mpfr_set_sj, mpfr_set_ui_2exp,
386  mpfr_set_si_2exp, mpfr_set_sj_2exp, mpfr_set_uj_2exp, mpfr_get_uj,
387  mpfr_get_sj, mpfr_get_z, mpfr_free_str, mpfr_si_sub, mpfr_sub_si,
388  mpfr_mul_si, mpfr_si_div, mpfr_div_si, mpfr_sqr, mpfr_cmp_z, mpfr_cmp_q,
389  mpfr_zero_p, mpfr_free_cache, mpfr_sum, mpfr_get_version,
390  mpfr_get_default_rounding_mode, mpfr_get_emin_min, mpfr_get_emin_max,
391  mpfr_get_emax_min, mpfr_get_emax_max, mpfr_inits, mpfr_inits2, mpfr_clears,
392  mpfr_fits_intmax_p, mpfr_fits_uintmax_p, mpfr_clear_erangeflag,
393  mpfr_erangeflag_p, mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil,
394  mpfr_rint_floor.
395- new macros MPFR_DECL_INIT, MPFR_VERSION, MPFR_VERSION_NUM,
396  MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL.
397- improved documentation.
398- improved configure.
399- improved portability (library and test suite).
400- It handles correctly non IEEE-754 double.
401- GMP internal files are not needed to install MPFR.
402- It is faster with low-precision floating point.
403- New global flag: ERANGE_FLAG.
404- Binary incompatible with previous versions, but API compatible.
405- mpfr_set_str doesn't allow anymore "@NAN@garbagechar" and "@INF@garbagechar",
406  allows base 0 (detection of the base), prefix (0x, 0b), leading whitespace.
407
408Changes from version 2.0.2 to version 2.0.3:
409- Bug fixes.
410- Support GMP as a shared library (not fully tested).
411
412Changes from version 2.0.1 to version 2.0.2:
413- many bug fixes and other improvements.
414- new functions mpfr_prec_round (replaces mpfr_round_prec), mpfr_get_exp,
415  mpfr_set_exp, mpfr_get_ld, mpfr_set_ld, mpfr_get_d_2exp, mpfr_get_si,
416  mpfr_get_ui, mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward, mpfr_frac,
417  mpfr_fits_*, mpfr_cmp_d, mpfr_cmpabs, mpfr_erf, mpfr_gamma, mpfr_zeta,
418  mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, mpfr_lessequal_p,
419  mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p.
420- removed functions: mpfr_print_binary, mpfr_round_prec (replaced by
421  mpfr_prec_round), mpfr_set_str_raw, mpfr_set_machine_rnd_mode.
422- function mpfr_isinteger renamed mpfr_integer_p.
423- return type of some functions changed from void to int, for consistency.
424- return type of mpfr_set_prec changed from int to void.
425- new values for exponent range.
426- rename internal variables.
427
428Changes from version 2001 to version 2.0.1:
429- new mathematical functions: acos, acosh, asin, asinh, atan, atanh, cosh,
430  base-2 exponential and logarithm, base-10 logarithm, expm1, factorial,
431  pow, pow_si, pow_ui, sinh, tan, tanh, ui_pow, ui_pow_ui
432- other new functions: mpfr_const_euler, mpfr_dim, mpfr_fma, mpfr_hypot,
433  mpfr_min, mpfr_max, mpfr_rint, mpfr_set_inf, mpfr_set_nan
434- new operations with MPZ or MPQ: mpfr_{add,sub,mul,div}_[zq]
435- new predicates: mpfr_inf_p, mpfr_nan_p, mpfr_number_p, mpfr_isinteger,
436- add mechanism to set/check exponent range (overflow, underflow), partially
437  implemented in the mpfr functions.
438- efficiency: mpfr_div is now faster when the divisor has a few limbs
439- rounding: now mpfr_pow implements exact rounding, and most functions return a
440  ternary value indicating the position of the returned value wrt the exact one
441  (thus the return value is now 'int' instead of 'void')
442- complete rewrite of the configuration files
443- mpfr_get_d, mpfr_{add,sub}_one_ulp now get a rounding mode as 2nd argument
444- some function names did change: mpz_set_fr is now mpfr_get_z_exp,
445  mpfr_print_raw is now mpfr_print_binary.
446
447Changes from version 1.0 to version 2001:
448- the default installation does not provide any more access to machine
449  rounding mode, and as a consequence does not compare MPFR results with
450  precision=53 to machine results. Add option -DTEST if you want to have
451  access to machine rounding mode, and to check MPFR results against.
452- the MPFR files do not need <math.h> any more
453- the header file <mpfr.h> was split into <mpfr.h> for exported functions
454  and <mpfr-impl.h> for internal functions. The user should not use functions
455  or macros from <mpfr-impl.h>, since those may change in further releases.
456- <mpfr.h> was modified in order to make easy a C++ interface
457- MPFR now deals with infinities (+infinity and -infinity) and NaN
458- the missing function mpfr_swap is now available
459- mpfr_zeta was removed (was incomplete)
460- mpfr_init and mpfr_init2 now initialize the corresponding variable to 0
461  (like in other initialization functions from GNU MP)
462- in case memory allocation fails, an error message is output
463- several bugs of version 1.0 were fixed
464
465Changes from version 0.4 to version 1.0:
466
467- Version 1.0 now uses a standard configure/make installation.
468- Version 1.0 implements all functions that are available in the MPF class
469  from GMP 3.1 (except mpf_swap) and a header file mpf2mpfr.h is included in
470  the distribution for easy change from MPF to MPFR.
471- Version 1.0 implements new elementary functions: mpfr_sincos
472- Some functions and macros have been renamed: mpfr_log2 is now
473  mpfr_const_log2, mpfr_pi is now mpfr_const_pi, SIGN is now MPFR_SIGN.
474- Version 1.0 uses faster algorithms for mpfr_exp, mpfr_const_pi,
475  mpfr_const_log2. Compare the timings from version 1.0 and version 0.4.
476- Version 1.0 corrects some bugs of version 0.4.
477- The precision of MPFR variables is now named mpfr_prec, which makes it
478  easier to change it, to say unsigned long long. Same for the rounding mode
479  which is called mp_rnd_t.
480
481You'll find other news concerning the GNU MPFR library on the web
482page <https://www.mpfr.org/>.
483