aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog4
-rw-r--r--newlib/libm/math/ef_hypot.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 02409c5..0c0f412 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,7 @@
+2002-03-22 Richard Sandiford <rsandifo@redhat.com>
+
+ * libm/math/ef_hypot.c: Increase scale factor to 68.
+
2002-03-13 Alexandre Oliva <aoliva@redhat.com>
* libc/machine/mips/strlen.c (strlen) [__mips16]: Fix off-by-two
diff --git a/newlib/libm/math/ef_hypot.c b/newlib/libm/math/ef_hypot.c
index 9f6d40c..b78b968 100644
--- a/newlib/libm/math/ef_hypot.c
+++ b/newlib/libm/math/ef_hypot.c
@@ -41,8 +41,8 @@
if(FLT_UWORD_IS_INFINITE(hb)) w = b;
return w;
}
- /* scale a and b by 2**-60 */
- ha -= 0x5d800000L; hb -= 0x5d800000L; k += 60;
+ /* scale a and b by 2**-68 */
+ ha -= 0x22000000L; hb -= 0x22000000L; k += 68;
SET_FLOAT_WORD(a,ha);
SET_FLOAT_WORD(b,hb);
}
@@ -54,10 +54,10 @@
b *= t1;
a *= t1;
k -= 126;
- } else { /* scale a and b by 2^60 */
- ha += 0x5d800000; /* a *= 2^60 */
- hb += 0x5d800000; /* b *= 2^60 */
- k -= 60;
+ } else { /* scale a and b by 2^68 */
+ ha += 0x22000000; /* a *= 2^68 */
+ hb += 0x22000000; /* b *= 2^68 */
+ k -= 68;
SET_FLOAT_WORD(a,ha);
SET_FLOAT_WORD(b,hb);
}