projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pollard's rho algorithm for computing discrete logs.
[u/mdw/catacomb]
/
primorial.c
diff --git
a/primorial.c
b/primorial.c
index
49cc054
..
6022c9a
100644
(file)
--- a/
primorial.c
+++ b/
primorial.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-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
*
*
* Computes the product of the small primes
*
@@
-30,6
+30,9
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: primorial.c,v $
/*----- 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.
*
* 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"
/*----- Header files ------------------------------------------------------*/
#include "mp.h"
+#include "mpmul.h"
#include "primetab.h"
/*----- Global variables --------------------------------------------------*/
#include "primetab.h"
/*----- Global variables --------------------------------------------------*/
@@
-58,21
+62,20
@@
mp *primorial = 0;
void primorial_setup(void)
{
void primorial_setup(void)
{
- mp *p;
- mp q;
- mpw qw;
+ mp *p = MP_NEW;
+ mpmul mm = MPMUL_INIT;
int i;
if (primorial)
return;
int i;
if (primorial)
return;
- mp_build(&q, &qw, &qw + 1);
- p = MP_ONE;
+
for (i = 0; i < NPRIME; i++) {
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);
mp_minimize(p);
- primorial = p;
}
/*----- That's all, folks -------------------------------------------------*/
}
/*----- That's all, folks -------------------------------------------------*/