math/mpx-mul4-*.S: Use more portable type syntax for ambiguous instructions.
[catacomb] / rand / lcrand.c
index 6944a71..f916c9c 100644 (file)
@@ -33,6 +33,7 @@
 #include <string.h>
 
 #include <mLib/bits.h>
+#include <mLib/macros.h>
 #include <mLib/sub.h>
 
 #include "grand.h"
@@ -106,15 +107,11 @@ uint32 lcrand(uint32 x)
 
   /* --- Now reduce mod p --- *
    *
-   * I'm using shifts and adds to do the multiply step here.  This needs to
-   * be changed if @D@ ever becomes something other than 5.
+   * I'm using shifts and adds to do the multiply step here.
    */
 
-#if D != 5
-#  error "Change shift sequence!"
-#endif
-
   {
+    STATIC_ASSERT(D == 5, "Shift sequence doesn't match prime");
     uint32 q;
 
     q = yy[1];
@@ -244,9 +241,9 @@ static uint32 grange(grand *r, uint32 l)
 
 static const grand_ops gops = {
   "lcrand",
-  LCRAND_P, 0,
+  0, LCRAND_P,
   gmisc, gdestroy,
-  graw, gbyte, grand_word, grange, grand_fill
+  graw, gbyte, grand_defaultword, grange, grand_defaultfill
 };
 
 /* --- @lcrand_create@ --- *