From dce9cb91608585c3ff3f3f34f0e608028d93b8ae Mon Sep 17 00:00:00 2001 From: zimmerma Date: Mon, 1 Oct 2012 09:39:31 +0000 Subject: [log10.c] fix bug reported by M. Gastineau [log10.dat] added corresponding test git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1274 211d60ee-9f03-0410-a15a-8952a2c7a4e4 --- src/log10.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/log10.c b/src/log10.c index 6b7e687..f2062d3 100644 --- a/src/log10.c +++ b/src/log10.c @@ -82,7 +82,9 @@ mpc_log10_aux (mpc_ptr rop, mpc_srcptr op, mpc_rnd_t rnd, int flag, int nb) mpfr_div (mpc_realref (tmp), mpc_realref (tmp), log10, MPFR_RNDN); ok = mpfr_can_round (mpc_realref (tmp), prec - 2, MPFR_RNDN, MPFR_RNDZ, MPC_PREC_RE(rop) + - (MPC_RND_RE (rnd) == MPFR_RNDN)); + (MPC_RND_RE (rnd) == MPFR_RNDN)) || + mpfr_cmp_ui (mpc_imagref (op), 1) == 0; + /* the result is also exact when y=1 */ if (ok) ret = mpfr_set (mpc_realref (rop), mpc_realref (tmp), MPC_RND_RE (rnd)); -- cgit v1.2.1