projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
key-binary.c
[u/mdw/catacomb]
/
rabin.h
diff --git
a/rabin.h
b/rabin.h
index
d57efcd
..
d5ee9d3
100644
(file)
--- a/
rabin.h
+++ b/
rabin.h
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: rabin.h,v 1.
5 2000/07/09 21:32:16
mdw Exp $
+ * $Id: rabin.h,v 1.
6 2002/01/13 13:42:53
mdw Exp $
*
* Miller-Rabin primality test
*
*
* Miller-Rabin primality test
*
@@
-30,6
+30,10
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: rabin.h,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: rabin.h,v $
+ * Revision 1.6 2002/01/13 13:42:53 mdw
+ * More efficient Rabin-Miller test: with random witnesses, skip redundant
+ * Montgomerization. (Being bijective, it can't affect the distribution.)
+ *
* Revision 1.5 2000/07/09 21:32:16 mdw
* rabin_test: Correct error in comment.
*
* Revision 1.5 2000/07/09 21:32:16 mdw
* rabin_test: Correct error in comment.
*
@@
-105,7
+109,7
@@
extern void rabin_create(rabin */*r*/, mp */*m*/);
extern void rabin_destroy(rabin */*r*/);
extern void rabin_destroy(rabin */*r*/);
-/* --- @rabin_test@ --- *
+/* --- @rabin_test@
, @rabin_rtest@
--- *
*
* Arguments: @rabin *r@ = pointer to Rabin-Miller context
* @mp *g@ = base to test the number against
*
* Arguments: @rabin *r@ = pointer to Rabin-Miller context
* @mp *g@ = base to test the number against
@@
-114,9
+118,11
@@
extern void rabin_destroy(rabin */*r*/);
* if it succeeded.
*
* Use: Performs a single iteration of the Rabin-Miller primality
* if it succeeded.
*
* Use: Performs a single iteration of the Rabin-Miller primality
- * test.
+ * test. The @rtest@ variant assumes that %$g$% is either
+ * already in Montgomery representation, or you don't care.
*/
*/
+extern int rabin_rtest(rabin */*r*/, mp */*g*/);
extern int rabin_test(rabin */*r*/, mp */*g*/);
/* --- @rabin_iters@ --- *
extern int rabin_test(rabin */*r*/, mp */*g*/);
/* --- @rabin_iters@ --- *