diff --git a/ChangeLog b/ChangeLog index 459ee48d55..4c012d176f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2003-08-27 Ulrich Drepper + * math/math_private.h: Declare __copysignf. + * sysdeps/ieee754/flt-32/s_scalbnf.c: Use __copysignf instead of + copysignf. + * sysdeps/x86_64/fpu/bits/mathinline.h: Define __signbitf, __signbit, and __signbitl inline functions. diff --git a/math/math_private.h b/math/math_private.h index 84c1d9ad34..f545841df0 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -232,6 +232,9 @@ extern float __kernel_cosf (float,float); extern float __kernel_tanf (float,float,int); extern int __kernel_rem_pio2f (float*,float*,int,int,int, const int32_t*); +/* internal functions. */ +extern float __copysignf (float x, float __y); + /* ieee style elementary long double functions */ extern long double __ieee754_sqrtl (long double); diff --git a/sysdeps/ieee754/flt-32/s_scalbnf.c b/sysdeps/ieee754/flt-32/s_scalbnf.c index 11b77bd6c2..407cf607c7 100644 --- a/sysdeps/ieee754/flt-32/s_scalbnf.c +++ b/sysdeps/ieee754/flt-32/s_scalbnf.c @@ -49,13 +49,13 @@ tiny = 1.0e-30; if (k==0xff) return x+x; /* NaN or Inf */ k = k+n; if (n> 50000 || k > 0xfe) - return huge*copysignf(huge,x); /* overflow */ + return huge*__copysignf(huge,x); /* overflow */ if (n< -50000) - return tiny*copysignf(tiny,x); /*underflow*/ + return tiny*__copysignf(tiny,x); /*underflow*/ if (k > 0) /* normal result */ {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;} if (k <= -25) - return tiny*copysignf(tiny,x); /*underflow*/ + return tiny*__copysignf(tiny,x); /*underflow*/ k += 25; /* subnormal result */ SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x*twom25;