diff options
author | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2011-10-25 14:54:32 +0000 |
---|---|---|
committer | zimmerma <zimmerma@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2011-10-25 14:54:32 +0000 |
commit | ffb9112cdb6185b077e8653ca7185b49d7b8184c (patch) | |
tree | fe4f4922d01029f5871276123ed2f5cbe3f1b6c9 /tests | |
parent | 1a4523a49bb41456de04199d8eb8b4c6ab7a174e (diff) | |
download | mpc-ffb9112cdb6185b077e8653ca7185b49d7b8184c.tar.gz |
[src/pow.c] fixed further overlapping bug
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1105 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'tests')
-rw-r--r-- | tests/tpow.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/tests/tpow.c b/tests/tpow.c index df3fc95..43f89f1 100644 --- a/tests/tpow.c +++ b/tests/tpow.c @@ -28,24 +28,28 @@ reuse_bug (void) mpc_t x, y, z; mp_prec_t prec = 2; - mpc_init2 (x, prec); - mpc_init2 (y, prec); - mpc_init2 (z, prec); + for (prec = 2; prec <= 20; prec ++) + { + mpc_init2 (x, prec); + mpc_init2 (y, prec); + mpc_init2 (z, prec); - mpfr_set_ui (MPC_RE (x), 0ul, GMP_RNDN); - mpfr_set_ui_2exp (MPC_IM (x), 3ul, -2, GMP_RNDN); - mpc_set_ui (y, 8ul, MPC_RNDNN); - - mpc_pow (z, x, y, MPC_RNDNN); - mpc_pow (y, x, y, MPC_RNDNN); - if (mpfr_signbit (MPC_IM (y)) == 0 && mpfr_signbit (MPC_IM (z)) != 0) { - printf ("Error: regression, reuse_bug reproduced\n"); - exit (1); - } - - mpc_clear (x); - mpc_clear (y); - mpc_clear (z); + mpfr_set_ui (MPC_RE (x), 0ul, GMP_RNDN); + mpfr_set_ui_2exp (MPC_IM (x), 3ul, -2, GMP_RNDN); + mpc_set_ui (y, 8ul, MPC_RNDNN); + + mpc_pow (z, x, y, MPC_RNDNN); + mpc_pow (y, x, y, MPC_RNDNN); + if (mpfr_signbit (MPC_IM (y)) != mpfr_signbit (MPC_IM (z))) + { + printf ("Error: regression, reuse_bug reproduced\n"); + exit (1); + } + + mpc_clear (x); + mpc_clear (y); + mpc_clear (z); + } } @@ -56,11 +60,11 @@ main (void) test_start (); + reuse_bug (); + data_check (f, "pow.dat"); tgeneric (f, 2, 1024, 7, 10); - reuse_bug (); - test_end (); return 0; |