]> git.sesse.net Git - stockfish/blobdiff - src/bitbase.cpp
Remove CONNECTED_KINGS from Syzygy code
[stockfish] / src / bitbase.cpp
index cd6a7329724e4260bc1529ca9756e82b8265adb9..e7638cd809abc67c9991de1385ef1ac151b95d70 100644 (file)
@@ -41,7 +41,7 @@ namespace {
   // bit 13-14: white pawn file (from FILE_A to FILE_D)
   // bit 15-17: white pawn RANK_7 - rank (from RANK_7 - RANK_7 to RANK_7 - RANK_2)
   unsigned index(Color us, Square bksq, Square wksq, Square psq) {
-    return wksq + (bksq << 6) + (us << 12) + (file_of(psq) << 13) + ((RANK_7 - rank_of(psq)) << 15);
+    return wksq | (bksq << 6) | (us << 12) | (file_of(psq) << 13) | ((RANK_7 - rank_of(psq)) << 15);
   }
 
   enum Result {
@@ -107,14 +107,16 @@ namespace {
 
   KPKPosition::KPKPosition(unsigned idx) {
 
-    wksq = Square((idx >>  0) & 0x3F);
-    bksq = Square((idx >>  6) & 0x3F);
-    us   = Color ((idx >> 12) & 0x01);
-    psq  = File  ((idx >> 13) & 0x03) | Rank(RANK_7 - (idx >> 15));
-    result  = UNKNOWN;
+    wksq   = Square((idx >>  0) & 0x3F);
+    bksq   = Square((idx >>  6) & 0x3F);
+    us     = Color ((idx >> 12) & 0x01);
+    psq    = make_square(File((idx >> 13) & 0x3), RANK_7 - Rank((idx >> 15) & 0x7));
+    result = UNKNOWN;
 
     // Check if two pieces are on the same square or if a king can be captured
-    if (   square_distance(wksq, bksq) <= 1 || wksq == psq || bksq == psq
+    if (   distance(wksq, bksq) <= 1
+        || wksq == psq
+        || bksq == psq
         || (us == WHITE && (StepAttacksBB[PAWN][psq] & bksq)))
         result = INVALID;
 
@@ -123,7 +125,7 @@ namespace {
         // Immediate win if a pawn can be promoted without getting captured
         if (   rank_of(psq) == RANK_7
             && wksq != psq + DELTA_N
-            && (   square_distance(bksq, psq + DELTA_N) > 1
+            && (   distance(bksq, psq + DELTA_N) > 1
                 ||(StepAttacksBB[KING][wksq] & (psq + DELTA_N))))
             result = WIN;
     }