diff bn_mp_sqr.c @ 142:d29b64170cf0 libtommath-orig

import of libtommath 0.32
author Matt Johnston <matt@ucc.asn.au>
date Sun, 19 Dec 2004 11:33:56 +0000
parents 86e0b50a9b58
children a96ff234ff19
line wrap: on
line diff
--- a/bn_mp_sqr.c	Tue Jun 15 14:42:57 2004 +0000
+++ b/bn_mp_sqr.c	Sun Dec 19 11:33:56 2004 +0000
@@ -1,3 +1,5 @@
+#include <tommath.h>
+#ifdef BN_MP_SQR_C
 /* LibTomMath, multiple-precision integer library -- Tom St Denis
  *
  * LibTomMath is a library that provides multiple-precision
@@ -12,7 +14,6 @@
  *
  * Tom St Denis, [email protected], http://math.libtomcrypt.org
  */
-#include <tommath.h>
 
 /* computes b = a*a */
 int
@@ -20,22 +21,34 @@
 {
   int     res;
 
+#ifdef BN_MP_TOOM_SQR_C
   /* use Toom-Cook? */
   if (a->used >= TOOM_SQR_CUTOFF) {
     res = mp_toom_sqr(a, b);
   /* Karatsuba? */
-  } else if (a->used >= KARATSUBA_SQR_CUTOFF) {
+  } else 
+#endif
+#ifdef BN_MP_KARATSUBA_SQR_C
+if (a->used >= KARATSUBA_SQR_CUTOFF) {
     res = mp_karatsuba_sqr (a, b);
-  } else {
+  } else 
+#endif
+  {
+#ifdef BN_FAST_S_MP_SQR_C
     /* can we use the fast comba multiplier? */
     if ((a->used * 2 + 1) < MP_WARRAY && 
          a->used < 
          (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) {
       res = fast_s_mp_sqr (a, b);
-    } else {
+    } else
+#endif
+#ifdef BN_S_MP_SQR_C
       res = s_mp_sqr (a, b);
-    }
+#else
+      res = MP_VAL;
+#endif
   }
   b->sign = MP_ZPOS;
   return res;
 }
+#endif