s_modff.c (97413) | s_modff.c (165839) |
---|---|
1/* s_modff.c -- float version of s_modf.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#ifndef lint | 1/* s_modff.c -- float version of s_modf.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#ifndef lint |
17static char rcsid[] = "$FreeBSD: head/lib/msun/src/s_modff.c 97413 2002-05-28 18:15:04Z alfred $"; | 17static char rcsid[] = "$FreeBSD: head/lib/msun/src/s_modff.c 165839 2007-01-06 21:22:57Z das $"; |
18#endif 19 20#include "math.h" 21#include "math_private.h" 22 23static const float one = 1.0; 24 25float --- 18 unchanged lines hidden (view full) --- 44 } else { 45 SET_FLOAT_WORD(*iptr,i0&(~i)); 46 return x - *iptr; 47 } 48 } 49 } else { /* no fraction part */ 50 u_int32_t ix; 51 *iptr = x*one; | 18#endif 19 20#include "math.h" 21#include "math_private.h" 22 23static const float one = 1.0; 24 25float --- 18 unchanged lines hidden (view full) --- 44 } else { 45 SET_FLOAT_WORD(*iptr,i0&(~i)); 46 return x - *iptr; 47 } 48 } 49 } else { /* no fraction part */ 50 u_int32_t ix; 51 *iptr = x*one; |
52 if (x != x) /* NaN */ 53 return x; |
|
52 GET_FLOAT_WORD(ix,x); 53 SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */ 54 return x; 55 } 56} | 54 GET_FLOAT_WORD(ix,x); 55 SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */ 56 return x; 57 } 58} |