diff options
-rw-r--r-- | atan2.c | 2 | ||||
-rw-r--r-- | tests/tatan.c | 3 |
2 files changed, 4 insertions, 1 deletions
@@ -123,7 +123,7 @@ mpfr_atan2 (mpfr_ptr dest, mpfr_srcptr y, mpfr_srcptr x, mp_rnd_t rnd_mode) { mpfr_t tmp2; MPFR_ZIV_DECL (loop2); - mp_prec_t prec2 = MPFR_PREC (dest) + BITS_PER_MP_LIMB; + mp_prec_t prec2 = MPFR_PREC (dest) + 10; mpfr_init2 (tmp2, prec2); MPFR_ZIV_INIT (loop2, prec2); diff --git a/tests/tatan.c b/tests/tatan.c index 93bb03f7b..7801cd7b8 100644 --- a/tests/tatan.c +++ b/tests/tatan.c @@ -348,6 +348,9 @@ special_atan2 (void) MPFR_CHANGE_SIGN (x); mpfr_atan2 (z, y, x, MPFR_RNDN); MPFR_ASSERTN (mpfr_cmp_str (z, "-2.356194490192344928", 10, MPFR_RNDN) == 0); + mpfr_set_prec (z, 905); /* exercises Ziv's loop */ + mpfr_atan2 (z, y, x, MPFR_RNDZ); + MPFR_ASSERTN (mpfr_cmp_str (z, "-2.35619449019234492884698253745962716314787704953132936573120844423086230471465674897102611900658780098661106488496172998532038345716293667379401955609636083808771307702645389082916973346721171619778647332160823174945008459635673617534008737395340143185923642519259526145784", 10, MPFR_RNDN) == 0); mpfr_clears (x, y, z, (mpfr_ptr) 0); } |