diff options
author | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-04-04 18:40:56 +0000 |
---|---|---|
committer | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-04-04 18:40:56 +0000 |
commit | 7f35c3da55dba20f38728e50ebd6c3feb268ba32 (patch) | |
tree | 3c0b2b4668579e705692ae2d9114c88afa88b154 | |
parent | a7a2c99686f4fc79a674dc40a9c280ff797d04fc (diff) | |
download | mpc-7f35c3da55dba20f38728e50ebd6c3feb268ba32.tar.gz |
[log10.c] fixed wrong use of mpfr_can_round (found by hydra)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1152 211d60ee-9f03-0410-a15a-8952a2c7a4e4
-rw-r--r-- | src/log10.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/log10.c b/src/log10.c index 88dafd6..6ef655c 100644 --- a/src/log10.c +++ b/src/log10.c @@ -49,9 +49,9 @@ mpc_log10_aux (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd, int flag, int nb) mpfr_atan2 (mpc_imagref (tmp), mpc_imagref (op), mpc_realref (op), MPC_RND_IM (rnd)); mpfr_div (mpc_imagref (tmp), mpc_imagref (tmp), log10, GMP_RNDN); - ok = mpfr_can_round (mpc_imagref (tmp), prec - 2, GMP_RNDZ, + ok = mpfr_can_round (mpc_imagref (tmp), prec - 2, GMP_RNDN, GMP_RNDZ, MPC_PREC_IM(rop) + - MPC_RND_IM (rnd) == GMP_RNDN); + (MPC_RND_IM (rnd) == GMP_RNDN)); if (ok) ret = mpfr_set (mpc_imagref (rop), mpc_imagref (tmp), MPC_RND_IM (rnd)); @@ -59,9 +59,9 @@ mpc_log10_aux (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd, int flag, int nb) case 1: /* real <- log(x) */ mpfr_log (mpc_realref (tmp), mpc_realref (op), MPC_RND_RE (rnd)); mpfr_div (mpc_realref (tmp), mpc_realref (tmp), log10, GMP_RNDN); - ok = mpfr_can_round (mpc_realref (tmp), prec - 2, GMP_RNDZ, + ok = mpfr_can_round (mpc_realref (tmp), prec - 2, GMP_RNDN, GMP_RNDZ, MPC_PREC_RE(rop) + - MPC_RND_RE (rnd) == GMP_RNDN); + (MPC_RND_RE (rnd) == GMP_RNDN)); if (ok) ret = mpfr_set (mpc_realref (rop), mpc_realref (tmp), MPC_RND_RE (rnd)); @@ -69,9 +69,9 @@ mpc_log10_aux (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd, int flag, int nb) case 2: /* imag <- pi */ mpfr_const_pi (mpc_imagref (tmp), MPC_RND_IM (rnd)); mpfr_div (mpc_imagref (tmp), mpc_imagref (tmp), log10, GMP_RNDN); - ok = mpfr_can_round (mpc_imagref (tmp), prec - 2, GMP_RNDZ, + ok = mpfr_can_round (mpc_imagref (tmp), prec - 2, GMP_RNDN, GMP_RNDZ, MPC_PREC_IM(rop) + - MPC_RND_IM (rnd) == GMP_RNDN); + (MPC_RND_IM (rnd) == GMP_RNDN)); if (ok) ret = mpfr_set (mpc_imagref (rop), mpc_imagref (tmp), MPC_RND_IM (rnd)); @@ -79,9 +79,9 @@ mpc_log10_aux (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd, int flag, int nb) case 3: /* real <- log(y) */ mpfr_log (mpc_realref (tmp), mpc_imagref (op), MPC_RND_RE (rnd)); mpfr_div (mpc_realref (tmp), mpc_realref (tmp), log10, GMP_RNDN); - ok = mpfr_can_round (mpc_realref (tmp), prec - 2, GMP_RNDZ, + ok = mpfr_can_round (mpc_realref (tmp), prec - 2, GMP_RNDN, GMP_RNDZ, MPC_PREC_RE(rop) + - MPC_RND_RE (rnd) == GMP_RNDN); + (MPC_RND_RE (rnd) == GMP_RNDN)); if (ok) ret = mpfr_set (mpc_realref (rop), mpc_realref (tmp), MPC_RND_RE (rnd)); @@ -234,10 +234,10 @@ mpc_log10 (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd) mpfr_log (w, w, GMP_RNDN); mpc_div_fr (ww, ww, w, MPC_RNDNN); - ok = mpfr_can_round (mpc_realref (ww), prec - 2, GMP_RNDZ, GMP_RNDZ, - MPC_PREC_RE(rop) + MPC_RND_RE (rnd) == GMP_RNDN); - ok = ok && mpfr_can_round (mpc_imagref (ww), prec-2, GMP_RNDZ, GMP_RNDZ, - MPC_PREC_IM(rop) + MPC_RND_IM (rnd) == GMP_RNDN); + ok = mpfr_can_round (mpc_realref (ww), prec - 2, GMP_RNDN, GMP_RNDZ, + MPC_PREC_RE(rop) + (MPC_RND_RE (rnd) == GMP_RNDN)); + ok = ok && mpfr_can_round (mpc_imagref (ww), prec-2, GMP_RNDN, GMP_RNDZ, + MPC_PREC_IM(rop) + (MPC_RND_IM (rnd) == GMP_RNDN)); } inex_re = mpfr_set (mpc_realref(rop), mpc_realref (ww), MPC_RND_RE (rnd)); |