13a8617a8SJordan K. Hubbard /* s_copysignf.c -- float version of s_copysign.c. 23a8617a8SJordan K. Hubbard * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 33a8617a8SJordan K. Hubbard */ 43a8617a8SJordan K. Hubbard 53a8617a8SJordan K. Hubbard /* 63a8617a8SJordan K. Hubbard * ==================================================== 73a8617a8SJordan K. Hubbard * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 83a8617a8SJordan K. Hubbard * 93a8617a8SJordan K. Hubbard * Developed at SunPro, a Sun Microsystems, Inc. business. 103a8617a8SJordan K. Hubbard * Permission to use, copy, modify, and distribute this 113a8617a8SJordan K. Hubbard * software is freely granted, provided that this notice 123a8617a8SJordan K. Hubbard * is preserved. 133a8617a8SJordan K. Hubbard * ==================================================== 143a8617a8SJordan K. Hubbard */ 153a8617a8SJordan K. Hubbard 163a8617a8SJordan K. Hubbard #ifndef lint 177f3dea24SPeter Wemm static char rcsid[] = "$FreeBSD$"; 183a8617a8SJordan K. Hubbard #endif 193a8617a8SJordan K. Hubbard 203a8617a8SJordan K. Hubbard /* 213a8617a8SJordan K. Hubbard * copysignf(float x, float y) 223a8617a8SJordan K. Hubbard * copysignf(x,y) returns a value with the magnitude of x and 233a8617a8SJordan K. Hubbard * with the sign bit of y. 243a8617a8SJordan K. Hubbard */ 253a8617a8SJordan K. Hubbard 263a8617a8SJordan K. Hubbard #include "math.h" 273a8617a8SJordan K. Hubbard #include "math_private.h" 283a8617a8SJordan K. Hubbard 2959b19ff1SAlfred Perlstein float 3059b19ff1SAlfred Perlstein copysignf(float x, float y) 313a8617a8SJordan K. Hubbard { 323a8617a8SJordan K. Hubbard u_int32_t ix,iy; 333a8617a8SJordan K. Hubbard GET_FLOAT_WORD(ix,x); 343a8617a8SJordan K. Hubbard GET_FLOAT_WORD(iy,y); 353a8617a8SJordan K. Hubbard SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000)); 363a8617a8SJordan K. Hubbard return x; 373a8617a8SJordan K. Hubbard } 38