diff options
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_gamma_r.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_gammaf_r.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_gammal_r.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_gammal_r.c | 5 |
5 files changed, 25 insertions, 0 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c index adeb61a248..d1acaa6a12 100644 --- a/sysdeps/ieee754/dbl-64/e_gamma_r.c +++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c @@ -194,6 +194,11 @@ __ieee754_gamma_r (double x, int *signgamp) double tret = M_PI / (-x * sinpix * gamma_positive (-x, &exp2_adj)); ret = __scalbn (tret, -exp2_adj); + if (ret < DBL_MIN) + { + double force_underflow = ret * ret; + math_force_eval (force_underflow); + } } } } diff --git a/sysdeps/ieee754/flt-32/e_gammaf_r.c b/sysdeps/ieee754/flt-32/e_gammaf_r.c index 29fe8b46c2..250e412aa7 100644 --- a/sysdeps/ieee754/flt-32/e_gammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_gammaf_r.c @@ -186,6 +186,11 @@ __ieee754_gammaf_r (float x, int *signgamp) float tret = (float) M_PI / (-x * sinpix * gammaf_positive (-x, &exp2_adj)); ret = __scalbnf (tret, -exp2_adj); + if (ret < FLT_MIN) + { + float force_underflow = ret * ret; + math_force_eval (force_underflow); + } } } } diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c index c51b050e0e..c44f031745 100644 --- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c +++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c @@ -194,6 +194,11 @@ __ieee754_gammal_r (long double x, int *signgamp) ret = M_PIl / (-x * sinpix * gammal_positive (-x, &exp2_adj)); ret = __scalbnl (ret, -exp2_adj); + if (ret < LDBL_MIN) + { + long double force_underflow = ret * ret; + math_force_eval (force_underflow); + } } } } diff --git a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c index 48098c18f6..420842e2d6 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c @@ -194,6 +194,11 @@ __ieee754_gammal_r (long double x, int *signgamp) ret = M_PIl / (-x * sinpix * gammal_positive (-x, &exp2_adj)); ret = __scalbnl (ret, -exp2_adj); + if (ret < LDBL_MIN) + { + long double force_underflow = ret * ret; + math_force_eval (force_underflow); + } } } } diff --git a/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/sysdeps/ieee754/ldbl-96/e_gammal_r.c index 9da5db33f0..a5767e7795 100644 --- a/sysdeps/ieee754/ldbl-96/e_gammal_r.c +++ b/sysdeps/ieee754/ldbl-96/e_gammal_r.c @@ -186,6 +186,11 @@ __ieee754_gammal_r (long double x, int *signgamp) ret = M_PIl / (-x * sinpix * gammal_positive (-x, &exp2_adj)); ret = __scalbnl (ret, -exp2_adj); + if (ret < LDBL_MIN) + { + long double force_underflow = ret * ret; + math_force_eval (force_underflow); + } } } } |