diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-08-05 14:22:26 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2011-08-05 14:22:26 +0000 |
commit | 61ab97cbc64a757e65fd7b45b9119b0af0945b8f (patch) | |
tree | 277b53b086f86c97ca52c07e1940c12419918f24 /tune | |
parent | 5c19f5acde7a5ff901b5449591399249d9ef0476 (diff) | |
download | mpfr-61ab97cbc64a757e65fd7b45b9119b0af0945b8f.tar.gz |
[src/mulders.c] use mpn_sbpi1_divappr_q if available and WANT_GMP_INTERNALS
is defined
[src/mpfr-gmp.h] defined macros needed for mpfr_divhigh_n_basecase
[configure.ac] check for mpn_sbpi1_divappr_q
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7787 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tune')
-rw-r--r-- | tune/tuneup.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tune/tuneup.c b/tune/tuneup.c index 14810584c..1a0c4ab37 100644 --- a/tune/tuneup.c +++ b/tune/tuneup.c @@ -864,10 +864,15 @@ tune_div_mulders_upto (mp_size_t 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; +#if defined(WANT_GMP_INTERNALS) && defined(HAVE___GMPN_SBPI1_DIVAPPR_Q) + if (n > 2) /* mpn_sbpi1_divappr_q requires dn > 2 */ +#endif + { + 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); @@ -948,7 +953,7 @@ tune_div_mulders (FILE *f) if (k != MPFR_DIVHIGH_TAB_SIZE - 1) fputc (',', f); if ((k+1) % 16 == 0) - fprintf (f, " /*%u-%u*/ \\\n ", k - 15, k); + fprintf (f, " /*%zu-%zu*/ \\\n ", k - 15, k); if (verbose) putchar ('.'); } |