| | |
| | | /* @(#)s_copysign.c 5.1 93/09/24 */ |
| | | /* |
| | | * ==================================================== |
| | | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |
| | |
| | | * ==================================================== |
| | | */ |
| | | |
| | | #if defined(LIBM_SCCS) && !defined(lint) |
| | | static const char rcsid[] = |
| | | "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $"; |
| | | #endif |
| | | |
| | | /* |
| | | * copysign(double x, double y) |
| | | * copysign(x,y) returns a value with the magnitude of x and |
| | |
| | | #include "math_libm.h" |
| | | #include "math_private.h" |
| | | |
| | | libm_hidden_proto(copysign) |
| | | #ifdef __STDC__ |
| | | double copysign(double x, double y) |
| | | #else |
| | | double copysign(x, y) |
| | | double x, y; |
| | | #endif |
| | | double copysign(double x, double y) |
| | | { |
| | | u_int32_t hx, hy; |
| | | GET_HIGH_WORD(hx, x); |
| | | GET_HIGH_WORD(hy, y); |
| | | SET_HIGH_WORD(x, (hx & 0x7fffffff) | (hy & 0x80000000)); |
| | | return x; |
| | | u_int32_t hx,hy; |
| | | GET_HIGH_WORD(hx,x); |
| | | GET_HIGH_WORD(hy,y); |
| | | SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000)); |
| | | return x; |
| | | } |
| | | |
| | | libm_hidden_def(copysign) |