Add an internal-representation no-op function.
[u/mdw/catacomb] / lcrand.c
index 88e9591..f53a3f2 100644 (file)
--- a/lcrand.c
+++ b/lcrand.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: lcrand.c,v 1.2 1999/12/13 15:34:01 mdw Exp $
+ * $Id: lcrand.c,v 1.4 2000/12/06 20:31:06 mdw Exp $
  *
  * Simple linear congruential generator
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: lcrand.c,v $
+ * Revision 1.4  2000/12/06 20:31:06  mdw
+ * Simplify uniform range transformation.
+ *
+ * Revision 1.3  2000/06/17 11:29:03  mdw
+ * Add the flags word to the generic generator.
+ *
  * Revision 1.2  1999/12/13 15:34:01  mdw
  * Add support for seeding from a generic pseudorandom source.
  *
@@ -175,7 +181,7 @@ uint32 lcrand_range(uint32 *x, uint32 m)
   uint32 r = P - P % m;
   do xx = lcrand(xx); while (xx >= r);
   *x = xx;
-  return (xx / (r / m));
+  return (xx % m);
 }
 
 /*----- Generic interface -------------------------------------------------*/
@@ -257,7 +263,7 @@ static uint32 grange(grand *r, uint32 l)
 
 static const grand_ops gops = {
   "lcrand",
-  LCRAND_P,
+  LCRAND_P, 0,
   gmisc, gdestroy,
   graw, gbyte, grand_word, grange, grand_fill
 };