OSDN Git Service

MacOSXでのキーボード入力対応!
[heavyosecpu/HeavyOSECPU.git] / randmt.c
index 3b003c7..4770690 100644 (file)
--- a/randmt.c
+++ b/randmt.c
@@ -1,46 +1,46 @@
-\r
-#include "osecpu.h"\r
-\r
-static struct {\r
-       unsigned stat[4], mat1, mat2, tmat;\r
-} randStat;\r
-\r
-// tinyMTの32bit版のアルゴリズムを使っています : http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/TINYMT/index-jp.html\r
-void randStatNext()\r
-{\r
-       unsigned x, y;\r
-       x = (randStat.stat[0] & 0x7fffffff) ^ randStat.stat[1] ^ randStat.stat[2];\r
-       y = randStat.stat[3];\r
-       x ^= x << 1;\r
-       y ^= (y >> 1) ^ x;\r
-       randStat.stat[1] = randStat.stat[2] ^ (-((int)(y & 1)) & randStat.mat1);\r
-       randStat.stat[2] = x ^ (y << 10) ^ (-((int)(y & 1)) & randStat.mat2);\r
-       randStat.stat[3] = y;\r
-       return;\r
-}\r
-\r
-void randStatInit(unsigned seed)\r
-{\r
-       int i;\r
-       randStat.stat[0] = seed;\r
-       randStat.stat[1] = randStat.mat1 = 0x8f7011ee;\r
-       randStat.stat[2] = randStat.mat2 = 0xfc78ff1f;\r
-       randStat.stat[3] = randStat.tmat = 0x3793fdff;\r
-       for (i = 1; i < 8; i++){\r
-               randStat.stat[i & 3] ^= i + ((unsigned)1812433253) * (randStat.stat[(i - 1) & 3] ^ (randStat.stat[(i - 1) & 3] >> 30));\r
-       }\r
-       for (i = 0; i < 8; i++){\r
-               randStatNext();\r
-       }\r
-       return;\r
-}\r
-\r
-unsigned int randGetNextUInt32(void)\r
-{\r
-       //次の乱数を取得する。\r
-       unsigned int u32t;\r
-       \r
-       randStatNext();\r
-       u32t = randStat.stat[0] + (randStat.stat[2] >> 8);\r
-       return (randStat.stat[3] ^ u32t ^ (-((int)(u32t & 1)) & randStat.tmat));\r
-}\r
+
+#include "osecpu.h"
+
+static struct {
+       unsigned stat[4], mat1, mat2, tmat;
+} randStat;
+
+// tinyMTの32bit版のアルゴリズムを使っています : http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/TINYMT/index-jp.html
+void randStatNext()
+{
+       unsigned x, y;
+       x = (randStat.stat[0] & 0x7fffffff) ^ randStat.stat[1] ^ randStat.stat[2];
+       y = randStat.stat[3];
+       x ^= x << 1;
+       y ^= (y >> 1) ^ x;
+       randStat.stat[1] = randStat.stat[2] ^ (-((int)(y & 1)) & randStat.mat1);
+       randStat.stat[2] = x ^ (y << 10) ^ (-((int)(y & 1)) & randStat.mat2);
+       randStat.stat[3] = y;
+       return;
+}
+
+void randStatInit(unsigned seed)
+{
+       int i;
+       randStat.stat[0] = seed;
+       randStat.stat[1] = randStat.mat1 = 0x8f7011ee;
+       randStat.stat[2] = randStat.mat2 = 0xfc78ff1f;
+       randStat.stat[3] = randStat.tmat = 0x3793fdff;
+       for (i = 1; i < 8; i++){
+               randStat.stat[i & 3] ^= i + ((unsigned)1812433253) * (randStat.stat[(i - 1) & 3] ^ (randStat.stat[(i - 1) & 3] >> 30));
+       }
+       for (i = 0; i < 8; i++){
+               randStatNext();
+       }
+       return;
+}
+
+unsigned int randGetNextUInt32(void)
+{
+       //次の乱数を取得する。
+       unsigned int u32t;
+       
+       randStatNext();
+       u32t = randStat.stat[0] + (randStat.stat[2] >> 8);
+       return (randStat.stat[3] ^ u32t ^ (-((int)(u32t & 1)) & randStat.tmat));
+}