From 40993d0bcad245767fb9222744cca3753a49385c Mon Sep 17 00:00:00 2001 From: vlefevre Date: Mon, 24 Jan 2005 15:04:05 +0000 Subject: Update. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3213 280ebfd0-de03-0410-8827-d642c229c3f4 --- ChangeLog | 519 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 519 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 1854f6c6d..ab10f8cfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,524 @@ +2005-01-24 Patrick Pelissier + + * tests/tests.c: Add an explicit reference to mpfr_dump so that + you can use this function inside the tests with GDB, even if + you don't use it in the tests. + +2005-01-24 Paul Zimmermann + + * pow.c: added check before mpz_get_si() call + +2005-01-24 Vincent Lefevre + + * BUGS: Update. + + * INSTALL: Corrections on the typography. + + * README.dev: Corrected English usage. + + * NEWS: Typos. + +2005-01-21 Paul Zimmermann + + * tests/Makefile.am: added LOADLIBES=... + +2005-01-21 Vincent Lefevre + + * ChangeLog: Update (2.1 branch). + + * strtofr.c, sum.c: + Fixed bug with TMP_MARK (doesn't occur with alloca) (2.1 branch). + [strtofr.c:1.10, sum.c:1.5] + + * tests/tests.c, tests/trint.c: + Forgot to include some headers conditionally in tests (2.1 branch). + [tests/tests.c:1.36, tests/trint.c:1.21] + + * sum.c: Fixed bug in cases n <= 1 (2.1 branch). [sum.c:1.8-1.9] + + * sum.c: Updated Copyright line. + + * sub1.c: + Fixed a huge performance problem in corner cases (2.1 branch). + [sub1.c:1.33-1.35] + + * mpfr.h: Fixed a clash with ncurses preventing from compiling programs + including term.h then mpfr.h (2.1 branch). + + * mpfr-longlong.h: + Updated longlong.h from GMP 4.1.4 (problem with opteron) (2.1 branch). + [mpfr-longlong.h:1.2] + + * get_str.c, mpn_exp.c: + Bugs fixed in get_str, in particular for huge exponents (2.1 branch). + [get_str.c:1.83, mpn_exp.c:1.6] + + * configure.in: Better way to detect the GMP library (2.1 branch). + +2005-01-20 Patrick Pelissier + + * sub1.c: Fix again this previous patch! + +2005-01-20 Paul Zimmermann + + * get_str.c, mpn_exp.c: fixed problems in get_str for huge exponent + +2005-01-20 Patrick Pelissier + + * mpfr-longlong.h: + Update longlong from GMP 4.1.4 (problem with opteron). + +2005-01-18 Patrick Pelissier + + * sum.c: + Fix bug in case n==0 or n==1 (Reported and fixed by Laurent Fousse). + +2005-01-14 Patrick Pelissier + + * sub1.c: Add comments + Fix bug in my patch (Need tests). + + * atan.c: + Optimize mpfr_atan_aux by removing all power of 2 in the sum to + reduce the size of the multiplication, normalize the input to extract + as many zeros as possible and add a special case if the input is 1 + (after normalisation). But it doesn't optimize too much... + I need to invertigate a few more too understand what is still costly. + It seems that mpz_mul is the most called function. + + * tanh.c: Improve and fix tanh for big floats. + + * sub1.c: + Fix bug in some corner case (Just hope it doesn't add new bugs). + It should be much faster in these cases too. + + * const_pi.c: Remove warning + + * TODO: Tiny update + + * acos.c: Fix bug (Forget a debug line). + +2005-01-13 Patrick Pelissier + + * sinh.c: Fix overflow bug + Optimize code + + * configure.in: + Fix bug in mpn_sub_nc in case the compiler optimize too much. + +2005-01-12 Patrick Pelissier + + * mpfr-gmp.c, mpfr-gmp.h, mpfr-impl.h: + Add forgotten 2005 copyright line. + + * configure.in, mpfr-gmp.c, mpfr-gmp.h, mpfr-impl.h: + Fix problem of `mpn_sub_nc' which may or may not be defined in libgmp.a + (Add a test in the configure and a new macro MPFR_HAVE_MPN_SUB_NC) + Add MPFR_LOG2_BIT_PER_MP_LIMB macro + + * acos.c, atan.c: + Massive optimization of mpfr_atan (20x faster than 2.1.0 at 53 bits!) + Minor optimization of mpfr_acos + +2005-01-11 Patrick Pelissier + + * mulders.c: Fix typo + + * gmp_op.c: Reduce size of code + Optimize a few too. + + * acinclude.m4: Forget 2005 ! + + * acinclude.m4: Improve and fix detection of NAN and GCC bug. + +2005-01-04 Patrick Pelissier + + * const_pi.c: new version (completely rewritten) by Paul Zimmermann. + + * atan.c, tests/tatan.c: Fix forgotten '2005' Line. + + * tests/tatan.c, atan.c: Fix wrong inexact value (regression). + FIXME: It seems that adding MPFR_GET_EXP (xp) bits is too much + (since previously it always add 0, but the results were quite + always exact - this bug was only discovered under rare case). + +2005-01-04 Paul Zimmermann + + * TODO: added item (mpfr_printf) + +2005-01-04 Patrick Pelissier + + * exp_2.c, mpfr-impl.h: + Optimize mpfr_exp2 by inlining some code, and by avoiding using + mpz_sizeinbase. + + * erf.c: Remove unused code. + Remove _MPFR_PROTO for static functions. + Other cosmetic change. + + * const_euler.c, const_log2.c, const_pi.c, get_str.c: + Remove _MPFR_PROTO for static functions. + + * set_str.c: Remove unused code. + + * get_d.c: Optimize mpfr_get_d. + + * README.dev: Add a new configuration to check before releasing MPFR. + + * sum.c, mpfr.h: Fix problem of tab with ncurses. + + * cmp_si.c, get_z_exp.c: Likely some tests + + * div.c, mpfr-gmp.c, mpfr-gmp.h: + Fix bug if not gmp-impl.h (mpn_sub_nc is internal). + Move MPFR_SET_EXP after checking the exponent range. + Minor change in the way to return the ternary value. + +2005-01-01 Paul Zimmermann + + * mpfr.h, sum.c: changed tab[] into *tab (and removed 'tab' in mpfr.h) + +2004-12-24 Paul Zimmermann + + * div.c: new version (completely rewritten) + + * tests/tsqrt.c, sqrt.c: improved coverage (and fixed bug) + +2004-12-21 Patrick Pelissier + + * tests/tests.c, tests/trint.c: + Fixed errors reported by Nelson H. F. Beebe + (forget to include sys/fpu.h if defined and math.h if std=c99). + +2004-12-20 Patrick Pelissier + + * exp.c: Fix wrong integer type and a test. + + * cos.c: Add some assertion. + + * div_ui.c: Unlikely one test. + Fix wrong integer type + + * sub.c, sub1.c: Reindent the code. + +2004-12-17 Patrick Pelissier + + * tan.c, sin_cos.c: Optimize mpfr_tan + + * sin.c, sin_cos.c: + Optimize the computing of the sign of sinus if GET_EXP(x) < 0 + + * cos.c: Optimize mpfr_cos. + From 3363 / 21663.99 / 79727 to 3139 / 18920.58 / 69624 (opteron). + + * tests/tset_ld.c: Fix precision used to test long double. + Now it is sizeof(long_double)*CHAR_BIT instead of fixed 113. + + * extract.c: FIx wrong integer types + Add an assertion. + + * div_ui.c: Likely / Unlikely some code. + + * configure.in, get_ld.c, set_d.c, set_ld.c, tests/tset_ld.c: + Fix problem with long double with ICC (Wrong x86 processor flag). + +2004-12-16 Patrick Pelissier + + * const_pi.c: Fix wrong integer types. + + * gamma.c: Fix bug. + + * acos.c: Optimize mpfr_acos by choosing a better initial precision. + + * asin.c: + Optimize mpfr_asin by improving the choice of the initial precision. + + * atan.c: Optimize mpfr_atan. + +2004-12-15 Patrick Pelissier + + * tests/tinp_str.c, inp_str.c: Fix problem with GCC 4.0 20041212. + + * mpfr.h: Remove thread attribut until I found a good way to use it. + + * cos.c: Test + + * get_str.c, strtofr.c: Add 'const' attribute to table. + + * save_expo.c: Remove unused file. + + * configure.in: + New way of detecting GMP libraray, which should be more portable. + +2004-12-14 Patrick Pelissier + + * tests/amd64.asm, tests/x86.asm, tests/tests.c, tests/tset_ld.c, acinclude.m4, mpfr-test.h, tests/Makefile.am: + Remove useless assembly code. + + * cmp.c, mpf2mpfr.h, mpfr-impl.h, mpfr.h, set.c: + Add "MPFR_USE_NO_MACRO" user macro: it allows the user to link + directly with MPFR functions rather than using Macros to access + them. It doesn't define MPFR variable inside mpfr.h too. + Fix set.c and cmp.c in consequences. + Fix mpf2mpfr.h to use mpfr_get_default_rounding_mode () if needed. + +2004-12-13 Patrick Pelissier + + * mulders.c: Improved prototype. + + * set_q.c: Fix bug of overflow (I hope). + + * set_q.c, TODO, mpfr.texi: Update mpfr_set_q overflow problem. + + * generic.c: Fix wrong integer types. + +2004-12-10 Patrick Pelissier + + * atan.c: + Optimize by increasing with BITS_PER_MP_LIMB instead of log2(prec) + + * atan.c: Clean up code (Fix integer types + rewrite some code). + Optimize the code by reducing the number of used variables inside the loop. + + * asin.c: Replace mpfr_neg to MPFR_CHANGE_SIGN. + + * add1sp.c: Cosmetic changes. + + * acos.c: Clean the code. + Avoid mixing integer types. + Fix bug of overflow if Pi is in the range but not Pi/2. + + * asin.c: + Clean up the code (Removing useless variables and avoid mixing wrong integer types). + Optimize the code by improving memory allocation scheme and by incrementating by + BITS_PER_MP_LIMB in case of an error instead of MPFR_INT_CEIL_LOG2 (prec). + Fix an overflow bug for X=+/-1 (If PI is inside the exponent range, but not PI/2). + +2004-12-09 Patrick Pelissier + + * mpfr.h: Simplify MPFR_SIGN by removing unnecessary ( ). + + * mpfr.h: Add support for new attribut sentinel in incoming GCC 4.0 + + * sin_cos.c, sin.c: Optimize initial precision in case of EXP(x) < 0. + + * cache.c, mpfr-impl.h, set.c, tests/tset.c, tests/tset_sj.c: + Optimize mpfr_set4. + Inline rounding in mpfr_set4 and mpfr_cache + mpfr_set4 dosn't return MPFR_EVEN_INEX (It was undocumented before). + Fix problems with tests (Avoid mixing MPFR_EVEN_INEX and 1). + Add MPFR_RNDRAW_EVEN for rounding with MPFR_EVEN_INEX inexact support + +2004-12-08 Patrick Pelissier + + * mpfr-impl.h, mul.c, tests/tsqr.c: + Optimize mpfr_mul by inlining and rewriting the rounding. + It seems that GCC option `-frename-registers` for mpfr_mul / Athlon XP + improves its performance (But it decreases it on Pentium4)... + +2004-12-01 Paul Zimmermann + + * mulders.c: first try to implement Mulders' algorithm + +2004-11-29 Patrick Pelissier + + * TODO: Update TODO. + +2004-11-29 Paul Zimmermann + + * tests/tdiv.c: added new tests for corner cases + + * algorithms.bib, algorithms.tex: added algo for pi + +2004-11-25 Patrick Pelissier + + * tan.c: Change initial term if exp(a)<0. + + * sin_cos.c: Simplify the inner loop. + + * sin_cos.c: Change initial precision if EXP(op) < 0. + +2004-11-23 Patrick Pelissier + + * set_z.c: Optimize code and rewrite the rounding part. + FIXME: It seems that the previous rounding code was buggy. Still I am not sure. + + * tests/tconst_log2.c, tests/tgmpop.c: Improve tests. + +2004-11-19 Patrick Pelissier + + * log.c: + Improve the initial value of prec: 10% improvement (?) on average. + + * tests/trandom.c: Improve coverage test. + + * tests/tui_pow.c, ui_pow_ui.c: + Fix bug for mpfr_ui_pow_ui (Wrong inexact flag). + + * tests/tcmp.c, tests/tcmp_ui.c, tests/texceptions.c, tests/tget_z.c, tests/tpow.c, tests/tset.c, tests/tset_sj.c, tests/tsgn.c, tests/tsqr.c, get_z.c, tests/tabs.c, ufloor_log2.c: + Improve coverage tests. + + * INSTALL, README.dev, mpfr-impl.h: Fix typos in INSTALL. + Sort README.dev, and add a new section about How to write a MPFR function. + Add a link to README.dev in mpfr-impl.h. + + * cos.c: Fix a bug on some compilators: + First MPFR_SAVE_EXPO_DECL, then TMP_DECL. + +2004-11-18 Patrick Pelissier + + * pow_si.c, tests/tpow.c: Fix an overflow bug. + + * set_si_2exp.c, set_ui_2exp.c, tests/tset_si.c: + Fix bug with inexact flag. + FIXME: Maybe still a bug with inexact flag if overflow in mpfr_mul_2exp ? + + * Makefile.am, mpfr-impl.h, pow_ui.c: + Remove mpfr_save_emin_emax and mpfr_restore_emin_emax + from MPFR library since they are useless. + + * set.c: Forget to remove rndraw.c test. + + * acosh.c, add_ui.c, asin.c, asinh.c, atan.c, const_log2.c, const_pi.c, cos.c, cosh.c, exp.c, exp2.c, gamma.c, hypot.c, mpfr-impl.h, pow_si.c, pow_ui.c, rint.c, set.c, set_d.c, set_ld.c, set_q.c, set_si_2exp.c, set_ui_2exp.c, sqrt_ui.c, sub_ui.c, tanh.c, ui_pow.c, ui_pow_ui.c, acos.c: + Replace use of mpfr_save_emin_emax () / mpfr_restore_emin_emax() + by MPFR_SAVE_EXPO macros (DECL, MARK and FREE) which are faster + and thread safe. + +2004-11-18 Vincent Lefevre + + * mpfr.texi: + Fix (2.1 branch): GMP -> MPFR Copying Conditions (noted by Patrick). + +2004-11-18 Patrick Pelissier + + * agm.c: Enable fast computing. + +2004-11-18 Vincent Lefevre + + * mpfr.texi: Fix: GMP -> MPFR Copying Conditions (noted by Patrick). + +2004-11-18 Patrick Pelissier + + * mpfr-impl.h: + Reorder the file and put sections to make it cleaner and more readable. + + * log.c: Reduce number of used variables. + Optimize code and clean it. + +2004-11-18 Vincent Lefevre + + * mpfr.texi: + In HTML, suppress the non-existing link to GMP (2.1 branch). + + * mpfr.texi: In HTML, suppress the non-existing link to GMP. + +2004-11-18 Patrick Pelissier + + * init2.c, mpfr-impl.h: + Add a prototype of own TMP_ALLOC. Don't know if it is a good idea. + To enable it, just build MPFR with MPFR_USE_OWN_TMP_ALLOC. + +2004-11-17 Patrick Pelissier + + * strtofr.c, sum.c, sqrt.c: Fix bug with TMP_MARK. + +2004-11-16 Patrick Pelissier + + * pow_ui.c: Optimize the code: + + Special case for n == 2 + + The first squaring is done using the original input. + + * init2.c: Add new assertion to check. + + * cmp2.c: Likely / Unlikely some tests. + +2004-11-15 Patrick Pelissier + + * agm.c: Add unused code (Still needs a proof). + + * set_prec.c, set_rnd.c, set_ui.c, get_exp.c, mpfr.h, set_dfl_prec.c: + Add macro version for small functions: + mpfr_get_prec, mpfr_get_exp, mpfr_get_default_rounding_mode, + mpfr_get_default_prec and mpfr_set_ui + + * atan.c: Refix another bug (The same). + + * atan.c: + Fix a bug (Use __gmpfr_ceil_log2 instead of MPFR_INT_CEIL_LOG2). + +2004-11-12 Paul Zimmermann + + * algorithms.tex: added algorithm for mpfr_sqrt + improved algorithm for mpfr_div + + * sqrt.c: use MPFR_SET_EXP/MPFR_GET_EXP instead of MPFR_EXP(r)++ + +2004-11-12 Vincent Lefevre + + * sqrt.c: + Bug fix: delayed all the initializations after the singular test. + +2004-11-11 Vincent Lefevre + + * sqrt.c: Untabified the source. + + * sqrt.c: + The test MPFR_GET_EXP(u) != MPFR_EMAX_MAX is no longer necessary + since we decided to lower MPFR_EMAX_MAX to avoid such tests. + +2004-11-10 Patrick Pelissier + + * mpfr-impl.h, sqrt.c: + Remove use of CNST_LIMB and TMP_ALLOC_LIMB which are GMP internal. + Add MPFR_LIMB_ZERO. + +2004-11-10 Paul Zimmermann + + * sqrt.c, tests/tsqrt.c: new simpler and faster code + +2004-11-10 Patrick Pelissier + + * pow.c, pow_si.c, sin.c, sin_cos.c, sinh.c, sum.c, tan.c, tanh.c, acos.c, acosh.c, asin.c, asinh.c, atan.c, atanh.c, const_euler.c, const_log2.c, const_pi.c, cosh.c, erf.c, exp2.c, exp3.c, expm1.c, factorial.c, gamma.c, get_str.c, hypot.c, log10.c, log1p.c, log2.c: + Replace __gmpfr_ceil_log2 by MPFR_INT_CEIL_LOG2 when possible. + + * mpfr-impl.h: Add __extension__ to avoid warning useless in GCC. + +2004-11-03 Vincent Lefevre + + * README: Update. + + * ChangeLog: Update (2.1 branch). + + * mpfr.texi: Updated month: October -> November (2.1 branch). + + * configure.in: + [2.1 branch] Modified an error message, since the code checking for + GMP library hadn't been modified in the branch. + +2004-11-03 Patrick Pelissier + + * mpfr-impl.h: Fix wrong Visual C++ code. + +2004-11-02 Vincent Lefevre + + * acinclude.m4, configure.in: + Code checking for GMP library wasn't working (always returning "yes"?). + 2004-10-27 Vincent Lefevre + * acinclude.m4: Updated copyright line (2.1 branch). + + * acinclude.m4: Updated copyright line. + + * BUGS: Added a bug and updated copyright line (2.1 branch). + + * BUGS: Added a bug and updated copyright line. + + * tests/tsub1sp.c, tests/ttanh.c, tests/texp.c, tests/texp2.c, tests/tgamma.c, tests/tlog.c, tests/tmul.c, tests/tmul_ui.c, tests/trandom.c, tests/trint.c, tests/tround_prec.c, tests/tset.c, tests/tset_exp.c, tests/tset_ld.c, tests/tset_si.c, tests/tset_str.c, tests/tset_z.c, tests/tatan.c, tests/tcos.c, tests/tcosh.c, tests/tdiv.c, tests/tests.c, tests/texceptions.c, set_d.c, tests/mpf_compat.h, tests/tacos.c, tests/tadd1sp.c, tests/tasin.c, acinclude.m4, mpfr-impl.h, mpfr-test.h, ChangeLog: + Ported the latest modifications to the 2.1 branch. + + * ChangeLog: Update. + * mpfr-impl.h, set_d.c: Removed the definitions of DBL_POS_INF/DBL_NEG_INF/DBL_NAN for Visual C++ as they were incorrect. Modified DOUBLE_ISINF(x) so -- cgit v1.2.1