copysign
double copysign(double, double);
#define copysign(a,b) __TG_FN2(copysign, (a), (b))
return (CMPLX(copysign(creal(w), x), copysign(cimag(w), y)));
return (CMPLX(copysign(rx, x), copysign(ry, y)));
return (CMPLX(fabs(ry), copysign(rx, cimag(z))));
return (CMPLX(copysign(0, x), y + y));
return (CMPLX(copysign(0, x),
copysign(pio2_hi + pio2_lo, y)));
copysign(pio2_hi + pio2_lo, y)));
return (CMPLX(copysign(rx, x), copysign(ry, y)));
IMAG_PART(w) = copysign(0.0, cimag(z));
t = ar == 0 ? copysign(0., odd) : __kernel_tanpil(ar);
t = fmodl(ax,2.L) == 0 ? 0 : copysign(0., -1.);
s=copysign(x,one);
if((t=copysign(x,one))>small)
s=one/t; return(copysign(log1p(t+t/(s+sqrt(one+s*s))),x)); }
{s=log1p(t)+ln2lo; return(copysign(s+ln2hi,x));}
signy = copysign(one,y) ;
signx = copysign(one,x) ;
if(x==1) { y=copysign(y,one); t=y; if(finite(t)) goto begin;}
if(y==zero) return((signx==one)?y:copysign(PI,signy));
if(x==zero) return(copysign(PIo2,signy));
return(copysign((signx==one)?PIo4:3*PIo4,signy));
return(copysign((signx==one)?zero:PI,signy));
if(!finite(y)) return(copysign(PIo2,signy));
x=copysign(x,one);
y=copysign(y,one);
return (copysign((signx>zero)?t:PI-t,signy)); }
return(copysign((signx>zero)?z:PI-z,signy));
z = copysign(0.5,x);
x = copysign(x,1.0);
return(copysign(1.0,z)*infnan(ERANGE)); /* sign(x)*INF */
x=copysign(x,one);
y=copysign(y,one);
return(copysign(y,one));
return (copysign(x,one));
else return(copysign(y,one)); /* y is INF */
x=copysign(x,one);
y=copysign(y,one);
return(copysign(y,one));
return (copysign(x,one));
else return(copysign(y,one)); /* y is INF */
if((x=copysign(x,one)) <= 22) {
k=invln2*x+copysign(0.5,x); /* k=NINT(x/ln2) */
k = z + copysign(.5, x);
if(copysign(x,one)>small) {
return(copysign(zero,x));
k= invln2 *x+copysign(0.5,x); /* k=NINT(x/ln2) */
if (copysign(x,one) >= L) /* already an integer */
s = copysign(L,x);
if (copysign(x,one) >= L) /* already an integer */
s = copysign(L,x);
if (copysign(x,one) >= L) /* already an integer */
s = copysign(L,x);
if (copysign(x,one) >= L) /* already an integer */
s = copysign(L,x);
if (copysign(x,one) >= L) /* already an integer */
s = copysign(L,x);
return (copysign(x, zero));
if(copysign(x,one)<small) return(x);
else if (copysign(one, x) == one)
else if (copysign(t,one) == one)
return copysign(a,s);
a=copysign(x,__one);
x = copysign((a = PI-a),x);
return copysign(a,x);
a=copysign(x,__one);
sign=copysign(one,x);
x=copysign(x,one);
{t=expm1(x); return(copysign((t+t/(one+t))*half,sign));}
return(copysign(scalb(one+expm1((x-mln2hi)-mln2lo),max),sign));
return(copysign(infnan(ERANGE),x));
a = copysign(x,__one); /* ... = abs(x) */
x = copysign(PIo2-a,x);
return copysign(fmax,x); /* no inf on 32k */
sign=copysign(one,x);
x=copysign(x,one);
return(copysign(one-two/(expm1(x+x)+two),sign));
{t= -expm1(-(x+x)); return(copysign(t/(two-t),sign));}
{ t = big+x; return(copysign(x,sign));} /* ??? -ragge */
k = z + copysign(.5, x);
exc.retval = copysign(signbit(y) ? M_PI : zero, x);
exc.retval = copysign(zero,x);
__strong_alias(_copysignl, copysign)
__weak_alias(copysignl, copysign)
copysign(double x, double y)
ux.ldblu_d[0] = copysign(ux.ldblu_d[0], uy.ldblu_d[0]);
ux.ldblu_d[1] = copysign(ux.ldblu_d[1], uy.ldblu_d[1]);
zs = copysign(DBL_MIN, zs);
if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */
return huge*copysign(huge,x); /*overflow*/
else return tiny*copysign(tiny,x); /*underflow*/
return (copysign(0, x));
t = ix == 0 ? copysign(0, odd) : __kernel_tanpi(ax);
t = ix >= 0x43400000 ? 0 : (copysign(0, (lx & 1) ? -1 : 1));
DFUNC_DBL_DBL(copysign)
ATF_CHECK_EQ(signbit(copysign(NAN, -1)), true);
ATF_CHECK_EQ(signbit(copysign(NAN, +1)), false);
TEST(copysign(-2.0, 10.0));
TEST(copysign(2.0, -10.0));