From d5a7537cc55520f79457cffc026f8708386f1a50 Mon Sep 17 00:00:00 2001 From: vlefevre Date: Wed, 2 Mar 2011 13:54:18 +0000 Subject: [src/agm.c] Check internal exceptions: the error analysis may be incorrect in case of exception. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7509 280ebfd0-de03-0410-8827-d642c229c3f4 --- src/agm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/agm.c') diff --git a/src/agm.c b/src/agm.c index 53ee74c37..1fa7cf327 100644 --- a/src/agm.c +++ b/src/agm.c @@ -196,6 +196,7 @@ mpfr_agm (mpfr_ptr r, mpfr_srcptr op2, mpfr_srcptr op1, mpfr_rnd_t rnd_mode) op2 = sc2; goto retry; } + mpfr_clear_flags (); mpfr_sqrt (u, u, MPFR_RNDN); mpfr_div_2ui (v, v, 1, MPFR_RNDN); n = 1; @@ -238,6 +239,9 @@ mpfr_agm (mpfr_ptr r, mpfr_srcptr op2, mpfr_srcptr op1, mpfr_rnd_t rnd_mode) } MPFR_ZIV_FREE (loop); + MPFR_ASSERTN (! (mpfr_overflow_p () || mpfr_underflow_p () || + mpfr_divby0_p () || mpfr_nanflag_p ())); + /* Setting of the result */ inexact = mpfr_set (r, v, rnd_mode); if (scale != 0) -- cgit v1.2.1