diff options
Diffstat (limited to 'src/pow_ui.c')
-rw-r--r-- | src/pow_ui.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/pow_ui.c b/src/pow_ui.c index 3381028..da82a94 100644 --- a/src/pow_ui.c +++ b/src/pow_ui.c @@ -1,6 +1,6 @@ /* mpc_pow_ui -- Raise a complex number to an integer power. -Copyright (C) 2009, 2010, 2011 INRIA +Copyright (C) 2009, 2010, 2011, 2012 INRIA This file is part of GNU MPC. @@ -131,9 +131,9 @@ mpc_pow_usi (mpc_ptr z, mpc_srcptr x, unsigned long y, int sign, /* the factor on the imaginary part is 2+2^(diff+2) <= 4 for diff <= -1 and < 2^(diff+3) for diff >= 0 */ ei = (diff <= -1) ? l0 + 3 : l0 + diff + 3; - if (mpfr_can_round (mpc_realref(t), p - er, GMP_RNDZ, GMP_RNDZ, + if (mpfr_can_round (mpc_realref(t), p - er, GMP_RNDN, GMP_RNDZ, MPC_PREC_RE(z) + (MPC_RND_RE(rnd) == GMP_RNDN)) - && mpfr_can_round (mpc_imagref(t), p - ei, GMP_RNDZ, GMP_RNDZ, + && mpfr_can_round (mpc_imagref(t), p - ei, GMP_RNDN, GMP_RNDZ, MPC_PREC_IM(z) + (MPC_RND_IM(rnd) == GMP_RNDN))) { inex = mpc_set (z, t, rnd); done = 1; |