diff options
Diffstat (limited to 'newlib/libm/common/sf_lround.c')
-rw-r--r-- | newlib/libm/common/sf_lround.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/newlib/libm/common/sf_lround.c b/newlib/libm/common/sf_lround.c deleted file mode 100644 index e2e4227e2..000000000 --- a/newlib/libm/common/sf_lround.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -#include "fdlibm.h" - -#ifdef __STDC__ - long int lroundf(float x) -#else - long int lroundf(x) - float x; -#endif -{ - __int32_t exponent_less_127; - __uint32_t w; - long int result; - __int32_t sign; - - GET_FLOAT_WORD (w, x); - exponent_less_127 = ((w & 0x7f800000) >> 23) - 127; - sign = (w & 0x80000000) != 0 ? -1 : 1; - w &= 0x7fffff; - w |= 0x800000; - - if (exponent_less_127 < (8 * sizeof (long int)) - 1) - { - if (exponent_less_127 < 0) - return exponent_less_127 < -1 ? 0 : sign; - else if (exponent_less_127 >= 23) - result = (long int) w << (exponent_less_127 - 23); - else - { - w += 0x400000 >> exponent_less_127; - result = w >> (23 - exponent_less_127); - } - } - else - return (long int) x; - - return sign * result; -} - -#ifdef _DOUBLE_IS_32BITS - -#ifdef __STDC__ - long int round(double x) -#else - long int round(x) - double x; -#endif -{ - return (double) roundf((float) x); -} - -#endif /* defined(_DOUBLE_IS_32BITS) */ |