diff options
author | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-10-07 06:25:12 +0000 |
---|---|---|
committer | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2009-10-07 06:25:12 +0000 |
commit | 4b1697e599f4ae0bb4f645b7659eb03023d0ac07 (patch) | |
tree | da4c833dff2885be0b8e389a0a0b91b3d67c921d /src/pow_z.c | |
parent | 440a6083d7a6feefee8419da384ec600799b34e7 (diff) | |
download | mpc-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.c | 3 |
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); |