summaryrefslogtreecommitdiff
path: root/tune
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2011-08-05 14:22:26 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2011-08-05 14:22:26 +0000
commit61ab97cbc64a757e65fd7b45b9119b0af0945b8f (patch)
tree277b53b086f86c97ca52c07e1940c12419918f24 /tune
parent5c19f5acde7a5ff901b5449591399249d9ef0476 (diff)
downloadmpfr-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.c15
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 ('.');
}