Remove unuseful optimization in RKISS
authorMarco Costalba <mcostalba@gmail.com>
Sun, 13 Oct 2013 09:20:35 +0000 (02:20 -0700)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 13 Oct 2013 10:35:17 +0000 (03:35 -0700)
Don't need a struct here. Speed test shows
result is teh same. Moreover RKISS is used
mainly at startup to compute magics, so
prefer to keep it simple...RKISS ;-)

Also some assorted triviality while there.

No functional change.

src/position.cpp
src/rkiss.h
src/types.h

index bef7a0f..fade3cb 100644 (file)
@@ -1067,7 +1067,7 @@ int Position::see(Move m, int asymmThreshold) const {
 
   from = from_sq(m);
   to = to_sq(m);
-  swapList[0] = PieceValue[MG][type_of(piece_on(to))];
+  swapList[0] = PieceValue[MG][piece_on(to)];
   stm = color_of(piece_on(from));
   occupied = pieces() ^ from;
 
@@ -1134,7 +1134,7 @@ int Position::see(Move m, int asymmThreshold) const {
   // Having built the swap list, we negamax through it to find the best
   // achievable score from the point of view of the side to move.
   while (--slIndex)
-      swapList[slIndex-1] = std::min(-swapList[slIndex], swapList[slIndex-1]);
+      swapList[slIndex - 1] = std::min(-swapList[slIndex], swapList[slIndex - 1]);
 
   return swapList[0];
 }
index 18c1d4f..ffcaf35 100644 (file)
@@ -43,7 +43,7 @@
 
 class RKISS {
 
-  struct S { uint64_t a, b, c, d; } s; // Keep variables always together
+  uint64_t a, b, c, d;
 
   uint64_t rotate(uint64_t x, uint64_t k) const {
     return (x << k) | (x >> (64 - k));
@@ -51,19 +51,18 @@ class RKISS {
 
   uint64_t rand64() {
 
-    const uint64_t
-      e = s.a - rotate(s.b,  7);
-    s.a = s.b ^ rotate(s.c, 13);
-    s.b = s.c + rotate(s.d, 37);
-    s.c = s.d + e;
-    return s.d = e + s.a;
+    const uint64_t e = a - rotate(b,  7);
+    a = b ^ rotate(c, 13);
+    b = c + rotate(d, 37);
+    c = d + e;
+    return d = e + a;
   }
 
 public:
   RKISS(int seed = 73) {
 
-    s.a = 0xf1ea5eed;
-    s.b = s.c = s.d = 0xd4e12c77;
+    a = 0xF1EA5EED, b = c = d = 0xD4E12C77;
+
     for (int i = 0; i < seed; ++i) // Scramble a few rounds
         rand64();
   }
index 376c557..26de44e 100644 (file)
@@ -323,11 +323,11 @@ inline bool operator<(const ExtMove& f, const ExtMove& s) {
 }
 
 inline Color operator~(Color c) {
-  return Color(c ^ 1);
+  return Color(c ^ BLACK);
 }
 
 inline Square operator~(Square s) {
-  return Square(s ^ 56); // Vertical flip SQ_A1 -> SQ_A8
+  return Square(s ^ SQ_A8); // Vertical flip SQ_A1 -> SQ_A8
 }
 
 inline Square operator|(File f, Rank r) {