From 3780836ef46ab89bbd4276bee266dbf54600e320 Mon Sep 17 00:00:00 2001 From: zimmerma Date: Fri, 5 Aug 2011 03:08:42 +0000 Subject: [mulders.c] added a basecase code for Mulders' short division [tuneup.c] added corresponding tuning code [TODO] added an item git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7783 280ebfd0-de03-0410-8827-d642c229c3f4 --- tune/tuneup.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tune') diff --git a/tune/tuneup.c b/tune/tuneup.c index 66bb52a81..14810584c 100644 --- a/tune/tuneup.c +++ b/tune/tuneup.c @@ -863,6 +863,12 @@ tune_div_mulders_upto (mp_size_t n) kbest = n; tbest = mpfr_speed_measure (speed_mpfr_divhigh, &s, "mpfr_divhigh"); + /* Check k == 0, i.e., mpfr_divhigh_n_basecase */ + divhigh_ktab[n] = 0; + t = mpfr_speed_measure (speed_mpfr_divhigh, &s, "mpfr_divhigh"); + if (t * TOLERANCE < tbest) + kbest = 0, tbest = t; + /* Check Mulders */ step = 1 + n / (2 * MAX_STEPS); /* we should have (n+3)/2 <= k < n, which translates into @@ -942,7 +948,7 @@ tune_div_mulders (FILE *f) if (k != MPFR_DIVHIGH_TAB_SIZE - 1) fputc (',', f); if ((k+1) % 16 == 0) - fprintf (f, " \\\n "); + fprintf (f, " /*%u-%u*/ \\\n ", k - 15, k); if (verbose) putchar ('.'); } @@ -1048,6 +1054,7 @@ all (const char *filename) /* Tune divhigh */ tune_div_mulders (f); + fflush (f); /* Tune mpfr_mul (threshold is in limbs, but it doesn't matter too much) */ if (verbose) -- cgit v1.2.1