+2002-06-13 Stephen L. Moshier <steve@moshier.net>
+
+ * libm/math/e_pow.c (__ieee754_pow): Fix case whereby
+ x is close to -1.0 and y is very large to use ax (absolute value)
+ instead of x.
+ * libm/math/ef_pow.c (__ieee754_powf): Ditto.
+
+Thu Jun 13 19:23:40 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
Thu Jun 13 19:23:40 2002 J"orn Rennecke <joern.rennecke@superh.com>
* libc/machine/sh/strcpy.S (strcpy, __SHMEDIA__ code):
if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
/* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */
- t = x-1; /* t has 20 trailing zeros */
+ t = ax-1; /* t has 20 trailing zeros */
w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25));
u = ivln2_h*t; /* ivln2_h has 21 sig. bits */
v = t*ivln2_l-w*ivln2;
if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny;
/* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */
- t = x-1; /* t has 20 trailing zeros */
+ t = ax-1; /* t has 20 trailing zeros */
w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25));
u = ivln2_h*t; /* ivln2_h has 16 sig. bits */
v = t*ivln2_l-w*ivln2;