diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-05-04 09:40:05 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-05-04 09:40:05 +0000 |
commit | af5a1593331d686b9cc5fbbbbdc47e1733a4644e (patch) | |
tree | ff8210e41ae8ced432dbcd42e8be2a919f8dddc6 /TODO | |
parent | 87ff38458263c9a9ed79a7ebd547fd32a66ae843 (diff) | |
parent | d79a8111e6b7851b15bac211d8dca0e67a2979b5 (diff) | |
download | mpfr-af5a1593331d686b9cc5fbbbbdc47e1733a4644e.tar.gz |
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).
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/faithful@11456 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -101,8 +101,16 @@ Table of contents: native type (float / double / long double) has been recognized and which format it is? * For functions that return a native floating-point value (mpfr_get_flt, - mpfr_get_d, mpfr_get_ld, mpfr_get_decimal64), raise exception flags - with feraiseexcept(), when supported. + mpfr_get_d, mpfr_get_ld, mpfr_get_decimal64), in case of underflow or + overflow, follow the convention used for the functions in <math.h>? + See ยง7.12.1 "Treatment of error conditions" of ISO C11, which provides + two ways of handling error conditions, depending on math_errhandling: + errno (to be set to ERANGE here) and floating-point exceptions. + If floating-point exceptions need to be generated, do not use + feraiseexcept(), as this function may require the math library (-lm); + use a floating-point expression instead, such as DBL_MIN * DBL_MIN + (underflow) or DBL_MAX * DBL_MAX (overflow), which are probably safe + as used in the GNU libc implementation. * For testing the lack of subnormal support: see the -mfpu GCC option for ARM and https://en.wikipedia.org/wiki/Denormal_number#Disabling_denormal_floats_at_the_code_level @@ -149,6 +157,10 @@ Table of contents: - new functions of IEEE 754-2008, and more generally functions of the C binding draft TS 18661-4: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1946.pdf + Some propositions about rootn: mpfr_rootn_si, mpfr_rootn_sj, mpfr_rootn_z, + and perhaps versions with an unsigned integer: mpfr_rootn_ui (in which + case mpfr_root could be declared as deprecated) and mpfr_rootn_uj. + Warning! rootn(-0,positive even) is +0, not -0 like in mpfr_root. - functions defined in the LIA-2 standard + minimum and maximum (5.2.2): max, min, max_seq, min_seq, mmax_seq and mmin_seq (mpfr_min and mpfr_max correspond to mmin and mmax); @@ -257,10 +269,9 @@ Table of contents: match this standard. - from gnumeric (www.gnome.org/projects/gnumeric/doc/function-reference.html): - - beta - (also incomplete beta function, see message from Martin Maechler + - incomplete beta function, see message from Martin Maechler <maechler@stat.math.ethz.ch> on 18 Jan 2016, and Section 6.6 in - Abramowitz & Stegun) + Abramowitz & Stegun - betaln - degrees - radians @@ -298,6 +309,8 @@ Table of contents: Also mpfr_div uses the remainder computed by mpn_divrem. A workaround would be to first try with mpn_div_q, and if we cannot (easily) compute the rounding, then use the current code with mpn_divrem. +- improve atanh(x) for small x by using atanh(x) = log1p(2x/(1-x)), + and log1p should also be improved for small arguments. - compute exp by using the series for cosh or sinh, which has half the terms (see Exercise 4.11 from Modern Computer Arithmetic, version 0.3) The same method can be used for log, using the series for atanh, i.e., |