• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* s_copysignf.c -- float version of s_copysign.c.
2   * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3   */
4  
5  /*
6   * ====================================================
7   * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
8   *
9   * Developed at SunPro, a Sun Microsystems, Inc. business.
10   * Permission to use, copy, modify, and distribute this
11   * software is freely granted, provided that this notice
12   * is preserved.
13   * ====================================================
14   */
15  
16  #include <sys/cdefs.h>
17  __FBSDID("$FreeBSD$");
18  
19  /*
20   * copysignf(float x, float y)
21   * copysignf(x,y) returns a value with the magnitude of x and
22   * with the sign bit of y.
23   */
24  
25  #include "math.h"
26  #include "math_private.h"
27  
28  float
copysignf(float x,float y)29  copysignf(float x, float y)
30  {
31  	u_int32_t ix,iy;
32  	GET_FLOAT_WORD(ix,x);
33  	GET_FLOAT_WORD(iy,y);
34  	SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
35          return x;
36  }
37