diff options
Diffstat (limited to 'lib/msun/src')
-rw-r--r-- | lib/msun/src/e_acosl.c | 14 | ||||
-rw-r--r-- | lib/msun/src/e_atan2l.c | 14 |
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/msun/src/e_acosl.c b/lib/msun/src/e_acosl.c index 4e9df52..d33c8fe 100644 --- a/lib/msun/src/e_acosl.c +++ b/lib/msun/src/e_acosl.c @@ -27,9 +27,19 @@ __FBSDID("$FreeBSD$"); #include "math_private.h" static const long double -one= 1.00000000000000000000e+00, +one= 1.00000000000000000000e+00; + +#ifdef __i386__ +/* XXX Work around the fact that gcc truncates long double constants on i386 */ +static volatile double +pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1 */ +pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */ +#define pi ((long double)pi1 + pi2) +#else +static const long double pi = 3.14159265358979323846264338327950280e+00L; - +#endif + long double acosl(long double x) { diff --git a/lib/msun/src/e_atan2l.c b/lib/msun/src/e_atan2l.c index 8368bbf..0071a7c 100644 --- a/lib/msun/src/e_atan2l.c +++ b/lib/msun/src/e_atan2l.c @@ -30,8 +30,18 @@ __FBSDID("$FreeBSD$"); static volatile long double tiny = 1.0e-300; static const long double -zero = 0.0, -pi = 3.14159265358979323846264338327950280e+00L; +zero = 0.0; + +#ifdef __i386__ +/* XXX Work around the fact that gcc truncates long double constants on i386 */ +static volatile double +pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1 */ +pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */ +#define pi ((long double)pi1 + pi2) +#else +static const long double +pi = 3.14159265358979323846264338327950280e+00L; +#endif long double atan2l(long double y, long double x) |