Add an internal-representation no-op function.
[u/mdw/catacomb] / fibrand.c
index 44856e7..6856a57 100644 (file)
--- a/fibrand.c
+++ b/fibrand.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: fibrand.c,v 1.1 1999/12/10 23:15:27 mdw Exp $
+ * $Id: fibrand.c,v 1.3 2000/12/06 20:31:06 mdw Exp $
  *
  * Fibonacci generator
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: fibrand.c,v $
+ * Revision 1.3  2000/12/06 20:31:06  mdw
+ * Simplify uniform range transformation.
+ *
+ * Revision 1.2  2000/06/17 10:55:24  mdw
+ * Typesetting fixes.  Add flags word to generatic random generator.
+ *
  * Revision 1.1  1999/12/10 23:15:27  mdw
  * Noncryptographic random number generator.
  *
@@ -58,7 +64,7 @@
  * Returns:    Next output from generator.
  *
  * Use:                Steps the generator.  Returns
- *             %$x_{i - 24} + x_{i - 55} \bmod 2^{32}%$.
+ *             %$x_{i - 24} + x_{i - 55} \bmod 2^{32}$%.
  */
 
 uint32 fibrand_step(fibrand *f)
@@ -146,7 +152,7 @@ uint32 fibrand_range(fibrand *f, uint32 m)
   /* --- Now generate numbers until a good one comes along --- */
 
   do x = fibrand_step(f); while (x >= r);
-  return (x / (r / m));
+  return (x % m);
 }
 
 /*----- Generic interface -------------------------------------------------*/
@@ -231,7 +237,7 @@ static void gfill(grand *r, void *p, size_t sz)
 
 static const grand_ops gops = {
   "fibrand",
-  0,
+  0, 0,
   gmisc, gdestroy,
   gword, gbyte, gword, grange, gfill
 };