summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Zimmermann <Paul.Zimmermann@inria.fr>2020-03-03 13:02:49 +0100
committerPaul Zimmermann <Paul.Zimmermann@inria.fr>2020-03-03 13:02:49 +0100
commit23cecd90c748c9a1ac41eb2928390d096c0b00bb (patch)
tree01f8fb0fa2d24d4394531d9dc5ef791fd6b0c067
parent584bae845e9821395371025d3dd4089b04803a94 (diff)
downloadmpc-git-23cecd90c748c9a1ac41eb2928390d096c0b00bb.tar.gz
fixed "overflow" case where z is real
-rw-r--r--src/pow.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pow.c b/src/pow.c
index ec9620a..25e2d1b 100644
--- a/src/pow.c
+++ b/src/pow.c
@@ -702,7 +702,12 @@ mpc_pow (mpc_ptr z, mpc_srcptr x, mpc_srcptr y, mpc_rnd_t rnd)
if (mpfr_inf_p (mpc_realref (z)))
inex_re = mpc_fix_inf (mpc_realref (z), MPC_RND_RE(rnd));
if (mpfr_inf_p (mpc_imagref (z)))
- inex_im = mpc_fix_inf (mpc_imagref (z), MPC_RND_IM(rnd));
+ {
+ if (z_real)
+ inex_im = mpfr_set_ui (mpc_imagref (z), 0, MPC_RND_IM(rnd));
+ else
+ inex_im = mpc_fix_inf (mpc_imagref (z), MPC_RND_IM(rnd));
+ }
ret = MPC_INEX(inex_re,inex_im);
goto exact;
}