Use `mpmul'.
authormdw <mdw>
Sun, 9 Jul 2000 21:31:43 +0000 (21:31 +0000)
committermdw <mdw>
Sun, 9 Jul 2000 21:31:43 +0000 (21:31 +0000)
primorial.c

index 49cc054..6022c9a 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: primorial.c,v 1.1 1999/12/22 15:51:02 mdw Exp $
+ * $Id: primorial.c,v 1.2 2000/07/09 21:31:43 mdw Exp $
  *
  * Computes the product of the small primes
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: primorial.c,v $
+ * Revision 1.2  2000/07/09 21:31:43  mdw
+ * Use `mpmul'.
+ *
  * Revision 1.1  1999/12/22 15:51:02  mdw
  * Calculate product of small primes for DSA prime search.
  *
@@ -38,6 +41,7 @@
 /*----- Header files ------------------------------------------------------*/
 
 #include "mp.h"
+#include "mpmul.h"
 #include "primetab.h"
 
 /*----- Global variables --------------------------------------------------*/
@@ -58,21 +62,20 @@ mp *primorial = 0;
 
 void primorial_setup(void)
 {
-  mp *p;
-  mp q;
-  mpw qw;
+  mp *p = MP_NEW;
+  mpmul mm = MPMUL_INIT;
   int i;
 
   if (primorial)
     return;
-  mp_build(&q, &qw, &qw + 1);
-  p = MP_ONE;
+
   for (i = 0; i < NPRIME; i++) {
-    qw = primetab[i];
-    p = mp_mul(p, p, &q);
+    p = mp_fromuint(p, primetab[i]);
+    mpmul_add(&mm, p);
   }
+  mp_drop(p);
+  primorial = mpmul_done(&mm);
   mp_minimize(p);
-  primorial = p;
 }
 
 /*----- That's all, folks -------------------------------------------------*/