diff options
Diffstat (limited to 'sysdeps/ieee754/dbl-64/e_asin.c')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_asin.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c index d8c012d1d3..6bf56945a6 100644 --- a/sysdeps/ieee754/dbl-64/e_asin.c +++ b/sysdeps/ieee754/dbl-64/e_asin.c @@ -1,7 +1,7 @@ /* * IBM Accurate Mathematical Library * written by International Business Machines Corp. - * Copyright (C) 2001-2016 Free Software Foundation, Inc. + * Copyright (C) 2001-2018 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -42,6 +42,7 @@ #include <float.h> #include <math.h> #include <math_private.h> +#include <math-underflow.h> #ifndef SECTION # define SECTION @@ -323,7 +324,7 @@ __ieee754_asin(double x){ /*---------------------------- |x|>=1 -------------------------------*/ else if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?hp0.x:-hp0.x; else - if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x; + if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x; else { u.i[HIGH_HALF]=0x7ff00000; v.i[HIGH_HALF]=0x7ff00000; @@ -633,7 +634,7 @@ __ieee754_acos(double x) else if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?0:2.0*hp0.x; else - if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x; + if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x; else { u.i[HIGH_HALF]=0x7ff00000; v.i[HIGH_HALF]=0x7ff00000; |