summaryrefslogtreecommitdiff
path: root/src/pow_z.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2009-10-07 06:25:12 +0000
committerzimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2009-10-07 06:25:12 +0000
commit4b1697e599f4ae0bb4f645b7659eb03023d0ac07 (patch)
treeda4c833dff2885be0b8e389a0a0b91b3d67c921d /src/pow_z.c
parent440a6083d7a6feefee8419da384ec600799b34e7 (diff)
downloadmpc-4b1697e599f4ae0bb4f645b7659eb03023d0ac07.tar.gz
[pow_d.c, pow_ld.c] use DBL_MANT_DIG and LDBL_MANT_DIG
[pow_z.c] fixed bug [tpow_z.c] new test file for mpc_pow_z git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@701 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src/pow_z.c')
-rw-r--r--src/pow_z.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pow_z.c b/src/pow_z.c
index e4126ed..9ce20d1 100644
--- a/src/pow_z.c
+++ b/src/pow_z.c
@@ -26,8 +26,9 @@ mpc_pow_z (mpc_ptr z, mpc_srcptr x, mpz_srcptr y, mpc_rnd_t rnd)
{
mpc_t yy;
int inex;
+ size_t n = mpz_sizeinbase (y, 2);
- mpc_init3 (yy, mpz_sizeinbase (y, 2), MPFR_PREC_MIN);
+ mpc_init3 (yy, (n < MPFR_PREC_MIN) ? MPFR_PREC_MIN : n, MPFR_PREC_MIN);
mpc_set_z (yy, y, MPC_RNDNN); /* exact */
inex = mpc_pow (z, x, yy, rnd);
mpc_clear (yy);