summaryrefslogtreecommitdiff
path: root/mpn/generic/toom3_sqr.c
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2008-12-29 14:32:22 +0100
committerTorbjorn Granlund <tege@gmplib.org>2008-12-29 14:32:22 +0100
commitc1e0ba4c1884fb3fa6909ee74fb93f77b6e4ae87 (patch)
treec1d00a3512ee8922ea7471b9a953147a60421e96 /mpn/generic/toom3_sqr.c
parent65ba29a8e2ed3f589a46f70dd4a3752ffe428b20 (diff)
downloadgmp-c1e0ba4c1884fb3fa6909ee74fb93f77b6e4ae87.tar.gz
Use coherent MAYBE_ macros for trimming unreachable recursive functions.
Update toom itch functions.
Diffstat (limited to 'mpn/generic/toom3_sqr.c')
-rw-r--r--mpn/generic/toom3_sqr.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/mpn/generic/toom3_sqr.c b/mpn/generic/toom3_sqr.c
index 30cf7d70a..e80b0c441 100644
--- a/mpn/generic/toom3_sqr.c
+++ b/mpn/generic/toom3_sqr.c
@@ -1,4 +1,4 @@
-/* mpn_toom33_sqr -- Square {ap,an}.
+/* mpn_toom3_sqr -- Square {ap,an}.
Contributed to the GNU project by Torbjorn Granlund.
@@ -50,12 +50,23 @@ the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
vinf= a2 * b2 # A(inf)*B(inf)
*/
+#if TUNE_PROGRAM_BUILD
+#define MAYBE_sqr_basecase 1
+#define MAYBE_sqr_toom3 1
+#else
+#define MAYBE_sqr_basecase \
+ (SQR_TOOM3_THRESHOLD < 3 * SQR_KARATSUBA_THRESHOLD)
+#define MAYBE_sqr_toom3 \
+ (SQR_TOOM4_THRESHOLD >= 3 * SQR_TOOM3_THRESHOLD)
+#endif
+
#define TOOM3_SQR_N_REC(p, a, n, ws) \
do { \
- if (SQR_TOOM3_THRESHOLD / 3 < SQR_KARATSUBA_THRESHOLD \
+ if (MAYBE_sqr_basecase \
&& BELOW_THRESHOLD (n, SQR_KARATSUBA_THRESHOLD)) \
mpn_sqr_basecase (p, a, n); \
- else if (BELOW_THRESHOLD (n, SQR_TOOM3_THRESHOLD)) \
+ else if (! MAYBE_sqr_toom3 \
+ || BELOW_THRESHOLD (n, SQR_TOOM3_THRESHOLD)) \
mpn_kara_sqr_n (p, a, n, ws); \
else \
mpn_toom3_sqr_n (p, a, n, ws); \