diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_nearbyintl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nearbyintl.c | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c deleted file mode 100644 index 1565a8183f..0000000000 --- a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c +++ /dev/null @@ -1,67 +0,0 @@ -/* s_nearbyintl.c -- long double version of s_nearbyint.c. - * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz. - */ - -/* - * ==================================================== - * 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. - * ==================================================== - */ - -/* - * nearbyintl(x) - * Return x rounded to integral value according to the prevailing - * rounding mode. - * Method: - * Using floating addition. - * Exception: - * Inexact flag raised if x not equal to rintl(x). - */ - -#include <fenv.h> -#include <math.h> -#include <math_private.h> - -static const _Float128 -TWO112[2]={ - L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */ - L(-5.19229685853482762853049632922009600E+33) /* 0xC06F000000000000, 0 */ -}; - -_Float128 __nearbyintl(_Float128 x) -{ - fenv_t env; - int64_t i0,j0,sx; - u_int64_t i1 __attribute__ ((unused)); - _Float128 w,t; - GET_LDOUBLE_WORDS64(i0,i1,x); - sx = (((u_int64_t)i0)>>63); - j0 = ((i0>>48)&0x7fff)-0x3fff; - if(j0<112) { - if(j0<0) { - feholdexcept (&env); - w = TWO112[sx]+x; - t = w-TWO112[sx]; - math_force_eval (t); - fesetenv (&env); - GET_LDOUBLE_MSW64(i0,t); - SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63)); - return t; - } - } else { - if(j0==0x4000) return x+x; /* inf or NaN */ - else return x; /* x is integral */ - } - feholdexcept (&env); - w = TWO112[sx]+x; - t = w-TWO112[sx]; - math_force_eval (t); - fesetenv (&env); - return t; -} -weak_alias (__nearbyintl, nearbyintl) |