summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-05-04 09:40:05 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-05-04 09:40:05 +0000
commitaf5a1593331d686b9cc5fbbbbdc47e1733a4644e (patch)
treeff8210e41ae8ced432dbcd42e8be2a919f8dddc6 /TODO
parent87ff38458263c9a9ed79a7ebd547fd32a66ae843 (diff)
parentd79a8111e6b7851b15bac211d8dca0e67a2979b5 (diff)
downloadmpfr-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--TODO23
1 files changed, 18 insertions, 5 deletions
diff --git a/TODO b/TODO
index b1de1f5d2..c00e3f8cc 100644
--- a/TODO
+++ b/TODO
@@ -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.,