diff options
author | pelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4> | 2004-12-16 13:37:23 +0000 |
---|---|---|
committer | pelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4> | 2004-12-16 13:37:23 +0000 |
commit | 6578ac3575db83f7e9db73d2acc3670c6cf9a581 (patch) | |
tree | daa10a53ac1e27e2a4f7ba3e5df2c3aa2ad8ee37 /gamma.c | |
parent | 8044a031578316d3319dbe3744f06c94dae06039 (diff) | |
download | mpfr-6578ac3575db83f7e9db73d2acc3670c6cf9a581.tar.gz |
Fix bug.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3146 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'gamma.c')
-rw-r--r-- | gamma.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -91,13 +91,11 @@ mpfr_gamma (mpfr_ptr gamma, mpfr_srcptr x, mp_rnd_t rnd_mode) return mpfr_set_ui (gamma, 1, rnd_mode); /* if x is an integer that fits into an unsigned long, use mpfr_fac_ui */ - if (mpfr_integer_p (x)) + if (mpfr_integer_p (x) && mpfr_fits_ulong_p (x, GMP_RNDN)) { unsigned long int u; u = mpfr_get_ui (x, GMP_RNDN); - /* u = 0 when x is 0 or x does not fit in an unsigned long */ - if (u != 0) - return mpfr_fac_ui (gamma, u - 1, rnd_mode); + return mpfr_fac_ui (gamma, u - 1, rnd_mode); } MPFR_SAVE_EXPO_MARK (expo); |