aboutsummaryrefslogtreecommitdiff
path: root/lib/msun
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>2008-03-30 17:17:42 +0000
committerBruce Evans <bde@FreeBSD.org>2008-03-30 17:17:42 +0000
commitf94997c8d78a1dbca2e482253bc3b65f6427a6a2 (patch)
tree6dd503ec910e89069f61517975ad421f43eb1088 /lib/msun
parent4f49091fdac9d7b71fd902e71e4b685dc69d4f80 (diff)
downloadsrc-f94997c8d78a1dbca2e482253bc3b65f6427a6a2.tar.gz
src-f94997c8d78a1dbca2e482253bc3b65f6427a6a2.zip
Fix a missing mask in a hi+lo decomposition. Thus bug made the extra
precision in software useless, so hypotf() had some errors in the 1-2 ulp range unless there is extra precision in hardware (as happens on i386).
Notes
Notes: svn path=/head/; revision=177746
Diffstat (limited to 'lib/msun')
-rw-r--r--lib/msun/src/e_hypotf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/msun/src/e_hypotf.c b/lib/msun/src/e_hypotf.c
index b100b7593735..b760cc6c8a8a 100644
--- a/lib/msun/src/e_hypotf.c
+++ b/lib/msun/src/e_hypotf.c
@@ -72,7 +72,7 @@ __ieee754_hypotf(float x, float y)
a = a+a;
SET_FLOAT_WORD(y1,hb&0xfffff000);
y2 = b - y1;
- SET_FLOAT_WORD(t1,ha+0x00800000);
+ SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000);
t2 = a - t1;
w = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
}