summaryrefslogtreecommitdiff
path: root/isinteger.c
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2002-07-24 10:13:00 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2002-07-24 10:13:00 +0000
commit4329f93607dea5541d217b132b91bf6daa5424f8 (patch)
treec8f3fe99c5c2799efa1c96fb4b31d41529371745 /isinteger.c
parentc139bce25ce9a11d983996a46f7fd0b08c1c8a40 (diff)
downloadmpfr-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.c18
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);