]> pd.if.org Git - jsw/blobdiff - jsw_rand.c
removed dos line ending carriage return
[jsw] / jsw_rand.c
index a50644103866a34317d628b63c184157463d1e6e..24f28e19339bb68bf0f92cb11ba1f7bdbc178075 100644 (file)
@@ -1,73 +1,73 @@
-#include <limits.h>\r
-#include <time.h>\r
-#include "jsw_rand.h"\r
-\r
-#define N 624\r
-#define M 397\r
-#define A 0x9908b0dfUL\r
-#define U 0x80000000UL\r
-#define L 0x7fffffffUL\r
-\r
-/* Internal state */\r
-static unsigned long x[N];\r
-static int next;\r
-\r
-/* Initialize internal state */\r
-void jsw_seed ( unsigned long s )\r
-{\r
-  int i;\r
-\r
-  x[0] = s & 0xffffffffUL;\r
-\r
-  for ( i = 1; i < N; i++ ) {\r
-    x[i] = ( 1812433253UL \r
-      * ( x[i - 1] ^ ( x[i - 1] >> 30 ) ) + i );\r
-    x[i] &= 0xffffffffUL;\r
-  }\r
-}\r
-\r
-/* Mersenne Twister */\r
-unsigned long jsw_rand ( void )\r
-{\r
-  unsigned long y, a;\r
-  int i;\r
-\r
-  /* Refill x if exhausted */\r
-  if ( next == N ) {\r
-    next = 0;\r
-\r
-    for ( i = 0; i < N - 1; i++ ) {\r
-      y = ( x[i] & U ) | x[i + 1] & L;\r
-      a = ( y & 0x1UL ) ? A : 0x0UL;\r
-      x[i] = x[( i + M ) % N] ^ ( y >> 1 ) ^ a;\r
-    }\r
-\r
-    y = ( x[N - 1] & U ) | x[0] & L;\r
-    a = ( y & 0x1UL ) ? A : 0x0UL;\r
-    x[N - 1] = x[M - 1] ^ ( y >> 1 ) ^ a;\r
-  }\r
-\r
-  y = x[next++];\r
-\r
-  /* Improve distribution */\r
-  y ^= (y >> 11);\r
-  y ^= (y << 7) & 0x9d2c5680UL;\r
-  y ^= (y << 15) & 0xefc60000UL;\r
-  y ^= (y >> 18);\r
-\r
-  return y;\r
-}\r
-\r
-/* Portable time seed */\r
-unsigned jsw_time_seed()\r
-{\r
-  time_t now = time ( 0 );\r
-  unsigned char *p = (unsigned char *)&now;\r
-  unsigned seed = 0;\r
-  size_t i;\r
-\r
-  for ( i = 0; i < sizeof now; i++ )\r
-    seed = seed * ( UCHAR_MAX + 2U ) + p[i];\r
-\r
-  return seed;\r
+#include <limits.h>
+#include <time.h>
+#include "jsw_rand.h"
+
+#define N 624
+#define M 397
+#define A 0x9908b0dfUL
+#define U 0x80000000UL
+#define L 0x7fffffffUL
+
+/* Internal state */
+static unsigned long x[N];
+static int next;
+
+/* Initialize internal state */
+void jsw_seed ( unsigned long s )
+{
+  int i;
+
+  x[0] = s & 0xffffffffUL;
+
+  for ( i = 1; i < N; i++ ) {
+    x[i] = ( 1812433253UL 
+      * ( x[i - 1] ^ ( x[i - 1] >> 30 ) ) + i );
+    x[i] &= 0xffffffffUL;
+  }
+}
+
+/* Mersenne Twister */
+unsigned long jsw_rand ( void )
+{
+  unsigned long y, a;
+  int i;
+
+  /* Refill x if exhausted */
+  if ( next == N ) {
+    next = 0;
+
+    for ( i = 0; i < N - 1; i++ ) {
+      y = ( x[i] & U ) | x[i + 1] & L;
+      a = ( y & 0x1UL ) ? A : 0x0UL;
+      x[i] = x[( i + M ) % N] ^ ( y >> 1 ) ^ a;
+    }
+
+    y = ( x[N - 1] & U ) | x[0] & L;
+    a = ( y & 0x1UL ) ? A : 0x0UL;
+    x[N - 1] = x[M - 1] ^ ( y >> 1 ) ^ a;
+  }
+
+  y = x[next++];
+
+  /* Improve distribution */
+  y ^= (y >> 11);
+  y ^= (y << 7) & 0x9d2c5680UL;
+  y ^= (y << 15) & 0xefc60000UL;
+  y ^= (y >> 18);
+
+  return y;
+}
+
+/* Portable time seed */
+unsigned jsw_time_seed()
+{
+  time_t now = time ( 0 );
+  unsigned char *p = (unsigned char *)&now;
+  unsigned seed = 0;
+  size_t i;
+
+  for ( i = 0; i < sizeof now; i++ )
+    seed = seed * ( UCHAR_MAX + 2U ) + p[i];
+
+  return seed;
 }
\ No newline at end of file