summaryrefslogtreecommitdiff
path: root/cache.c
diff options
context:
space:
mode:
authorpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-02-14 14:38:06 +0000
committerpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-02-14 14:38:06 +0000
commit5bd4cf91abc8e7949c8401d8fd4721769d6b94f8 (patch)
tree6f34de8410044b4c982518cfc43c6111e5ac5873 /cache.c
parentd7b63dd56ac727e1be21785e45a96a6d578cbfe7 (diff)
downloadmpfr-5bd4cf91abc8e7949c8401d8fd4721769d6b94f8.tar.gz
Add ZivLoop controller for constantes.
Augment exponent range in the cache. Remove it in const_pi. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3308 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'cache.c')
-rw-r--r--cache.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/cache.c b/cache.c
index 67317e262..76385307b 100644
--- a/cache.c
+++ b/cache.c
@@ -43,6 +43,9 @@ mpfr_cache (mpfr_ptr dest, mpfr_cache_t cache, mp_rnd_t rnd)
mp_prec_t prec = MPFR_PREC (dest);
mp_prec_t pold = MPFR_PREC (cache->x);
int inexact, sign;
+ MPFR_SAVE_EXPO_DECL (expo);
+
+ MPFR_SAVE_EXPO_MARK (expo);
/* Check if the cache has been already filled */
if (MPFR_UNLIKELY(pold == 0))
@@ -112,5 +115,7 @@ mpfr_cache (mpfr_ptr dest, mpfr_cache_t cache, mp_rnd_t rnd)
break;
}
}
- return inexact;
+
+ MPFR_SAVE_EXPO_FREE (expo);
+ return mpfr_check_range (dest, inexact, rnd);
}