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).
This commit is contained in:
Bruce Evans 2008-03-30 17:17:42 +00:00
parent 4f49091fda
commit f94997c8d7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=177746

View File

@ -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)));
}