home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / hobby / palmoon / palmoon.EXE / s_copysign.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-05  |  1.1 KB  |  44 lines

  1. /* @(#)s_copysign.c 5.1 93/09/24 */
  2. /*
  3.  * ====================================================
  4.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  5.  *
  6.  * Developed at SunPro, a Sun Microsystems, Inc. business.
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software is freely granted, provided that this notice
  9.  * is preserved.
  10.  * ====================================================
  11.  */
  12.  
  13. #if defined(LIBM_SCCS) && !defined(lint)
  14. static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $";
  15. #endif
  16.  
  17. /*
  18.  * copysign(double x, double y)
  19.  * copysign(x,y) returns a value with the magnitude of x and
  20.  * with the sign bit of y.
  21.  */
  22.  
  23. #include "math.h"
  24. #include "math_private.h"
  25.  
  26. #ifdef __STDC__
  27.     double __copysign(double x, double y)
  28. #else
  29.     double __copysign(x,y)
  30.     double x,y;
  31. #endif
  32. {
  33.     u_int32_t hx,hy;
  34.     GET_HIGH_WORD(hx,x);
  35.     GET_HIGH_WORD(hy,y);
  36.     SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
  37.         return x;
  38. }
  39. weak_alias (__copysign, copysign)
  40. #ifdef NO_LONG_DOUBLE
  41. strong_alias (__copysign, __copysignl)
  42. weak_alias (__copysign, copysignl)
  43. #endif
  44.