From 47a076810291cb7e9b9333e106f2aa9cd4c30c58 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 7 Feb 2015 12:07:43 +0100 Subject: [PATCH] Micro-optimize SEE Results for 10 tests for each version (gcc 4.8.3 on mingw): Base Test Diff Mean 1502447 1507917 -5470 StDev 3119 1364 4153 p-value: 0,906 speedup: 0,004 Results for 10 tests for each version (MSVC 2013): Base Test Diff Mean 1400899 1403713 -2814 StDev 1273 2804 2700 p-value: 0,851 speedup: 0,002 No functional change. --- src/position.cpp | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index cc320b4b..8d4b9f4f 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1098,21 +1098,11 @@ Value Position::see(Move m) const { // Locate and remove the next least valuable attacker captured = min_attacker(byTypeBB, to, stmAttackers, occupied, attackers); - - // Stop before processing a king capture - if (captured == KING) - { - if (stmAttackers == attackers) - ++slIndex; - - break; - } - stm = ~stm; stmAttackers = attackers & pieces(stm); ++slIndex; - } while (stmAttackers); + } while (stmAttackers && (captured != KING || (--slIndex, false))); // Stop before a king capture // 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. -- 2.39.2