From 9ac3c68218b5bcbc40ae9e27b0b13f5e1c81f84c Mon Sep 17 00:00:00 2001 From: "Gabriel F. T. Gomes" Date: Sun, 10 Sep 2017 10:31:47 -0300 Subject: [PATCH] Remove conditional on LDBL_MANT_DIG from e_lgammal_r.c The IEEE 754 implementation of lgammal in sysdeps/ieee754/ldbl-128/ used to be shared by IBM's implementation in sysdeps/ieee754/ldbl-128ibm/ (by an inclusion of the source file). In order for the algorithm to work for IBM's implementation, a check for LDBL_MANT_DIG was required. Since the source file is no longer shared, the requirement for the check is gone. This patch removes the conditionals. Tested for powerpc64le and s390x. * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r): Remove conditionals on LDBL_MANT_DIG. * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c (__ieee754_lgammal_r): Likewise. --- ChangeLog | 7 +++++++ sysdeps/ieee754/ldbl-128/e_lgammal_r.c | 6 +----- sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c | 6 +----- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2698267b41..d3c4468389 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2017-09-21 Gabriel F. T. Gomes + * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r): + Remove conditionals on LDBL_MANT_DIG. + * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c + (__ieee754_lgammal_r): Likewise. + +2017-09-21 Gabriel F. T. Gomes + * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Remove definitions of _Float128 and L(). * sysdeps/ieee754/ldbl-128ibm/e_j0l.c: Remove definitions of diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c index bef2601bce..a80c9eaf33 100644 --- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c @@ -73,11 +73,7 @@ #include static const _Float128 PIL = L(3.1415926535897932384626433832795028841972E0); -#if LDBL_MANT_DIG == 106 -static const _Float128 MAXLGM = L(0x5.d53649e2d469dbc1f01e99fd66p+1012); -#else static const _Float128 MAXLGM = L(1.0485738685148938358098967157129705071571E4928); -#endif static const _Float128 one = 1; static const _Float128 huge = LDBL_MAX; @@ -777,7 +773,7 @@ __ieee754_lgammal_r (_Float128 x, int *signgamp) if (x < 0) { - if (x < -2 && x > (LDBL_MANT_DIG == 106 ? -48 : -50)) + if (x < -2 && x > -50) return __lgamma_negl (x, signgamp); q = -x; p = __floorl (q); diff --git a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c index 474773e81d..f881b8c0a4 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c @@ -23,11 +23,7 @@ #include static const long double PIL = 3.1415926535897932384626433832795028841972E0L; -#if LDBL_MANT_DIG == 106 static const long double MAXLGM = 0x5.d53649e2d469dbc1f01e99fd66p+1012L; -#else -static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L; -#endif static const long double one = 1; static const long double huge = LDBL_MAX; @@ -727,7 +723,7 @@ __ieee754_lgammal_r (long double x, int *signgamp) if (x < 0) { - if (x < -2 && x > (LDBL_MANT_DIG == 106 ? -48 : -50)) + if (x < -2 && x > -48) return __lgamma_negl (x, signgamp); q = -x; p = __floorl (q); -- 2.11.4.GIT