diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-07-24 10:13:00 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2002-07-24 10:13:00 +0000 |
commit | 4329f93607dea5541d217b132b91bf6daa5424f8 (patch) | |
tree | c8f3fe99c5c2799efa1c96fb4b31d41529371745 /isinteger.c | |
parent | c139bce25ce9a11d983996a46f7fd0b08c1c8a40 (diff) | |
download | mpfr-4329f93607dea5541d217b132b91bf6daa5424f8.tar.gz |
mpfr_isinteger extended to non-fp numbers and to zero.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@1988 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'isinteger.c')
-rw-r--r-- | isinteger.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/isinteger.c b/isinteger.c index df70fd5eb..ced0ec7c7 100644 --- a/isinteger.c +++ b/isinteger.c @@ -27,19 +27,23 @@ MA 02111-1307, USA. */ int mpfr_isinteger (mpfr_srcptr x) { - - mpfr_t u; - int expo; + mp_exp_t expo; mp_prec_t prec; + mpfr_t u; int result; - expo=(int)MPFR_EXP(x); - prec=MPFR_PREC(x); + if (!MPFR_IS_FP(x)) + return 0; + + if (MPFR_IS_ZERO(x)) + return 1; - if (expo<=0) + expo = MPFR_EXP(x); + if (expo <= 0) return 0; - if (expo>=prec) + prec = MPFR_PREC(x); + if (expo >= prec) return 1; mpfr_init2(u,prec); |