Files
Arquivotheca.SunOS-4.1.4/usr.lib/libm/libF77/d_sign.c
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

29 lines
600 B
C

#ifndef lint
static char sccsid[] = "@(#)d_sign.c 1.1 94/10/31 SMI";
#endif
/*
* Copyright (c) 1987 by Sun Microsystems, Inc.
*/
/* if b is negative but not -0 return -|a| */
double d_sign(a,b)
double *a, *b;
{
union { double d ; unsigned i[2] } klugea, klugeb;
double one = 1.0;
int id0;
if ((* (int *) &one) != 0) id0 = 0; /* not a i386 */
else id0 = 1; /* is a i386 */
klugea.d = *a ;
klugeb.d = *b ;
if ((klugeb.i[id0] > 0x80000000) || ( (klugeb.i[1-id0] != 0) && (klugeb.i[id0] == 0x80000000) ))
klugea.i[id0] |= 0x80000000;
else
klugea.i[id0] &= 0x7fffffff;
return klugea.d;
}