Simplify uniform range transformation.
[u/mdw/catacomb] / lcrand.c
index 05c3aae..f53a3f2 100644 (file)
--- a/lcrand.c
+++ b/lcrand.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: lcrand.c,v 1.3 2000/06/17 11:29:03 mdw Exp $
+ * $Id: lcrand.c,v 1.4 2000/12/06 20:31:06 mdw Exp $
  *
  * Simple linear congruential generator
  *
@@ -30,6 +30,9 @@
 /*----- 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.
  *
@@ -178,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 -------------------------------------------------*/