summaryrefslogtreecommitdiff
path: root/src/hypot.c
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2019-09-06 12:35:10 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2019-09-06 12:35:10 +0000
commit53e362721e5bcba6fe5571c487ab8da2854756e0 (patch)
tree4d87a229fc57832b4a92db38fd60d16921b8098e /src/hypot.c
parent9344d1a5623a13cf7b9e6c1a2a59ba20ec170ca1 (diff)
downloadmpfr-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.c10
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 (;;)