diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2019-09-06 12:35:10 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2019-09-06 12:35:10 +0000 |
commit | 53e362721e5bcba6fe5571c487ab8da2854756e0 (patch) | |
tree | 4d87a229fc57832b4a92db38fd60d16921b8098e /src/hypot.c | |
parent | 9344d1a5623a13cf7b9e6c1a2a59ba20ec170ca1 (diff) | |
download | mpfr-53e362721e5bcba6fe5571c487ab8da2854756e0.tar.gz |
[src/hypot.c] Replaced a TODO by a FIXME.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@13618 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/hypot.c')
-rw-r--r-- | src/hypot.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/hypot.c b/src/hypot.c index 82361e42b..80e7b8119 100644 --- a/src/hypot.c +++ b/src/hypot.c @@ -162,10 +162,12 @@ mpfr_hypot (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode) thanks to a FMA (this problem is transferred to the FMA code). */ sh = (mpfr_get_emax () - 1) / 2 - Ex; - /* TODO: The general case could be improved by first avoiding the - scaling and using 2 mpfr_sqr, a mpfr_add and a mpfr_sqrt, possibly - with faithful rounding. Use scaling and the code below only in case - of overflow or underflow. */ + /* FIXME: ti is subject to underflow. Solution: x and y could be + aliased with MPFR_ALIAS, and if need be, the aliases be pre-scaled + exactly as UBF, so that x^2 + y^2 is in range. Then call mpfr_fmma + and the square root, and scale the result. The error analysis would + be simpler. + Note: mpfr_fmma is currently not optimized. */ MPFR_ZIV_INIT (loop, Nt); for (;;) |