Copyright 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation. Contributed by the Spaces project, INRIA Lorraine. This file is part of the MPFR Library. The MPFR Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The MPFR Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the MPFR Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################## Changes from version 2.1.1 to version 2.1.2: - Bug fixes. - Added FAQ. Changes from version 2.1.0 to version 2.1.1: - Better way to detect the GMP library. - Bug fixes. Changes from version 2.0.3 to version 2.1.0: - Bug fixes. - new functions mpfr_strtofr, mpfr_set_uj, mpfr_set_sj, mpfr_set_ui_2exp, mpfr_set_si_2exp, mpfr_set_sj_2exp, mpfr_set_uj_2exp, mpfr_get_uj, mpfr_get_sj, mpfr_get_z, mpfr_free_str, mpfr_si_sub, mpfr_sub_si, mpfr_mul_si, mpfr_si_div, mpfr_div_si, mpfr_sqr, mpfr_cmp_z, mpfr_cmp_q, mpfr_zero_p, mpfr_free_cache, mpfr_sum, mpfr_get_version, mpfr_get_default_rounding_mode, mpfr_get_emin_min, mpfr_get_emin_max, mpfr_get_emax_min, mpfr_get_emax_max, mpfr_inits, mpfr_inits2, mpfr_clears, mpfr_fits_intmax_p, mpfr_fits_uintmax_p, mpfr_clear_erangeflag, mpfr_erangeflag_p, mpfr_rint_round, mpfr_rint_trunc, mpfr_rint_ceil, mpfr_rint_floor. - new macros MPFR_DECL_INIT, MPFR_VERSION, MPFR_VERSION_NUM, MPFR_VERSION_MAJOR, MPFR_VERSION_MINOR, MPFR_VERSION_PATCHLEVEL. - improved documentation. - improved configure. - improved portability (library and test suite). - It handles correctly non IEEE-754 double. - GMP internal files are not needed to install MPFR. - It is faster with low-precision floatting point. - New global flag: ERANGE_FLAG. - Binary incompatible with previous versions, but API compatible. - mpfr_set_str doesn't allow anymore "@NAN@garbagechar" and "@INF@garbagechar", allows base 0 (detection of the base), prefix (0x, 0b), leading whitespace. Changes from version 2.0.2 to version 2.0.3: - Bug fixes. - Support GMP as a shared library (not fully tested). Changes from version 2.0.1 to version 2.0.2: - many bug fixes and other improvements. - new functions mpfr_prec_round (replaces mpfr_round_prec), mpfr_get_exp, mpfr_set_exp, mpfr_get_ld, mpfr_set_ld, mpfr_get_d_2exp, mpfr_get_si, mpfr_get_ui, mpfr_nextabove, mpfr_nextbelow, mpfr_nexttoward, mpfr_frac, mpfr_fits_*, mpfr_cmp_d, mpfr_cmpabs, mpfr_erf, mpfr_gamma, mpfr_zeta, mpfr_greater_p, mpfr_greaterequal_p, mpfr_less_p, mpfr_lessequal_p, mpfr_lessgreater_p, mpfr_equal_p, mpfr_unordered_p. - removed functions: mpfr_print_binary, mpfr_round_prec (replaced by mpfr_prec_round), mpfr_set_str_raw, mpfr_set_machine_rnd_mode. - function mpfr_isinteger renamed mpfr_integer_p. - return type of some functions changed from void to int, for consistency. - return type of mpfr_set_prec changed from int to void. - new values for exponent range. Changes from version 2001 to version 2.0.1: - new mathematical functions: acos, acosh, asin, asinh, atan, atanh, cosh, base-2 exponential and logarithm, base-10 logarithm, expm1, factorial, pow, pow_si, pow_ui, sinh, tan, tanh, ui_pow, ui_pow_ui - other new functions: mpfr_const_euler, mpfr_dim, mpfr_fma, mpfr_hypot, mpfr_min, mpfr_max, mpfr_rint, mpfr_set_inf, mpfr_set_nan - new operations with mpz or mpz: mpfr_{add,sub,mul,div}_[zq] - new predicates: mpfr_inf_p, mpfr_nan_p, mpfr_number_p, mpfr_isinteger, - add mechanism to set/check exponent range (overflow, underflow), partially implemented in the mpfr functions. - efficiency: mpfr_div is now faster when the divisor has a few limbs - rounding: now mpfr_pow implements exact rouding, and most functions return a ternary value indicating the position of the returned value wrt the exact one (thus the return value is now 'int' instead of 'void') - complete rewrite of the configuration files - mpfr_get_d, mpfr_{add,sub}_one_ulp now get a rounding mode as 2nd argument - some function names did change: mpz_set_fr is now mpfr_get_z_exp, mpfr_print_raw is now mpfr_print_binary. Changes from version 1.0 to version 2001: - the default installation does not provide any more access to machine rounding mode, and as a consequence does not compare MPFR results with precision=53 to machine results. Add option -DTEST if you want to have access to machine rounding mode, and to check MPFR results against. - the MPFR files do not need any more - the header file was split into for exported functions and for internal functions. The user should not use functions or macros from , since those may change in further releases. - was modified in order to make easy a C++ interface - MPFR now deals with infinities (+infinity and -infinity) and NaN - the missing function mpfr_swap is now available - mpfr_zeta was removed (was incomplete) - mpfr_init and mpfr_init2 now initialize the corresponding variable to 0 (like in other initialization functions from GNU MP) - in case memory allocation fails, an error message is output - several bugs of version 1.0 were fixed Changes from version 0.4 to version 1.0: - Version 1.0 now uses a standard configure/make installation. - Version 1.0 implements all functions that are available in the MPF class from GMP 3.1 (except mpf_swap) and a header file mpf2mpfr.h is included in the distribution for easy change from MPF to MPFR. - Version 1.0 implements new elementary functions: mpfr_sincos - Some functions and macros have been renamed: mpfr_log2 is now mpfr_const_log2, mpfr_pi is now mpfr_const_pi, SIGN is now MPFR_SIGN. - Version 1.0 uses faster algorithms for mpfr_exp, mpfr_const_pi, mpfr_const_log2. Compare the timings from version 1.0 and version 0.4. - Version 1.0 corrects some bugs of version 0.4. - The precision of MPFR variables is now named mpfr_prec, which makes it easier to change it, to say unsigned long long. Same for the rounding mode which is called mp_rnd_t. You'll find other news concerning the MPFR library on the web page .