diff options
-rw-r--r-- | lngamma.c | 2 | ||||
-rw-r--r-- | tests/tlngamma.c | 8 |
2 files changed, 9 insertions, 1 deletions
@@ -167,7 +167,7 @@ GAMMA_FUNC (mpfr_ptr y, mpfr_srcptr z0, mp_rnd_t rnd) compared = mpfr_cmp_ui (z0, 1); #ifndef IS_GAMMA - if (compared == 0) /* lngamma(1) = +0 */ + if (compared == 0 || mpfr_cmp_ui (z0, 2) == 0) /* lngamma(1 or 2) = +0 */ return mpfr_set_ui (y, 0, GMP_RNDN); #endif diff --git a/tests/tlngamma.c b/tests/tlngamma.c index a4e421ba3..3e012091c 100644 --- a/tests/tlngamma.c +++ b/tests/tlngamma.c @@ -93,6 +93,14 @@ special (void) exit (1); } + mpfr_set_ui (x, 2, GMP_RNDN); + mpfr_lngamma (y, x, GMP_RNDN); + if (mpfr_cmp_ui (y, 0)) + { + printf ("Error for lngamma(2)\n"); + exit (1); + } + mpfr_set_prec (x, 53); mpfr_set_prec (y, 53); |