summaryrefslogtreecommitdiff
path: root/tune
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-21 10:35:31 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-21 10:35:31 +0000
commitad1c9996742f974b09c2a1c88f1ed79c28ad9946 (patch)
treefe26fdfc38249ecd7cd398e361df24295674bade /tune
parent4b29a3f3d66cf915a1c6689451189cbd7141d7f8 (diff)
downloadmpfr-ad1c9996742f974b09c2a1c88f1ed79c28ad9946.tar.gz
[tune/tuneup.c] make tune_simple_func more robust for small precisions
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12358 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tune')
-rw-r--r--tune/tuneup.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tune/tuneup.c b/tune/tuneup.c
index 1ad02e53f..d0bba0210 100644
--- a/tune/tuneup.c
+++ b/tune/tuneup.c
@@ -478,18 +478,19 @@ tune_simple_func (mpfr_prec_t *threshold,
mpfr_prec_t pstart)
{
double measure[THRESHOLD_FINAL_WINDOW+1];
- double d;
+ double d = -1.0;
mpfr_prec_t pstep;
int i, numpos, numneg, try;
mpfr_prec_t pmin, pmax, p;
/* first look for a lower bound within 10% */
pmin = p = pstart;
- d = domeasure (threshold, func, pmin);
+ for (i = 0; i < 10 && d < 0.0; i++)
+ d = domeasure (threshold, func, pmin);
if (d < 0.0)
{
if (verbose)
- printf ("Oops: even for %lu, algo 2 seems to be faster!\n",
+ printf ("Oops: even for precision %lu, algo 2 seems to be faster!\n",
(unsigned long) pmin);
*threshold = MPFR_PREC_MIN;
return;