summaryrefslogtreecommitdiff
path: root/src/mul.c
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2010-07-30 15:37:53 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2010-07-30 15:37:53 +0000
commit095f6eb3d0754058a0586b868c941d85f9fbafce (patch)
treecbfa1253a998dae2dbf2f4ddd17d87f724253ec1 /src/mul.c
parent77a6d6e0f8dd1b3cabe40f7a3b90cc2423a4b6d8 (diff)
downloadmpc-095f6eb3d0754058a0586b868c941d85f9fbafce.tar.gz
code cleanup: removed macro MPFR_EXP from mpc-impl.h
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@815 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src/mul.c')
-rw-r--r--src/mul.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/mul.c b/src/mul.c
index 1f1f6f6..5cd5bb8 100644
--- a/src/mul.c
+++ b/src/mul.c
@@ -111,9 +111,11 @@ mpc_mul (mpc_ptr a, mpc_srcptr b, mpc_srcptr c, mpc_rnd_t rnd)
/* If the real and imaginary part of one argument have a very different */
/* exponent, it is not reasonable to use Karatsuba multiplication. */
- if ( SAFE_ABS (mpfr_exp_t, MPFR_EXP (MPC_RE (b)) - MPFR_EXP (MPC_IM (b)))
+ if ( SAFE_ABS (mpfr_exp_t,
+ mpfr_get_exp (MPC_RE (b)) - mpfr_get_exp (MPC_IM (b)))
> (mpfr_exp_t) MPC_MAX_PREC (b) / 2
- || SAFE_ABS (mpfr_exp_t, MPFR_EXP (MPC_RE (c)) - MPFR_EXP (MPC_IM (c)))
+ || SAFE_ABS (mpfr_exp_t,
+ mpfr_get_exp (MPC_RE (c)) - mpfr_get_exp (MPC_IM (c)))
> (mpfr_exp_t) MPC_MAX_PREC (c) / 2)
return mpc_mul_naive (a, b, c, rnd);
else
@@ -428,12 +430,9 @@ mpc_mul_karatsuba (mpc_ptr rop, mpc_srcptr op1, mpc_srcptr op2, mpc_rnd_t rnd)
else if (mpfr_zero_p(w))
prec_x = prec_v;
else
- {
- prec_x = (MPFR_EXP(v) > MPFR_EXP(w)) ? MPFR_EXP(v) - MPFR_EXP(w)
- : MPFR_EXP(w) - MPFR_EXP(v);
- prec_x += MPC_MAX (prec_v, prec_w) + 1;
- }
- /* +1 is necessary for a potential carry */
+ prec_x = SAFE_ABS (mpfr_exp_t, mpfr_get_exp (v) - mpfr_get_exp (w))
+ + MPC_MAX (prec_v, prec_w) + 1;
+ /* +1 is necessary for a potential carry */
/* ensure we do not use a too large precision */
if (prec_x > prec_u)
prec_x = prec_u;