From: Joost VandeVondele Date: Sun, 26 Mar 2017 00:57:07 +0000 (-0700) Subject: Introduce assert for stats update X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=c5de4080dba8e9b3248f06bd6c168c22e9fbfd92 Introduce assert for stats update Make sure updates to the stats are done in a stable way. No functional change Closes #1038 Closes #1037 --- diff --git a/src/movepick.h b/src/movepick.h index c1914182..ee7cf4a4 100644 --- a/src/movepick.h +++ b/src/movepick.h @@ -42,7 +42,11 @@ struct HistoryStats { Square from = from_sq(m); Square to = to_sq(m); - table[c][from][to] -= table[c][from][to] * abs(int(v)) / 324; + const int denom = 324; + + assert(abs(int(v)) <= denom); // Needed for stability. + + table[c][from][to] -= table[c][from][to] * abs(int(v)) / denom; table[c][from][to] += int(v) * 32; } @@ -65,7 +69,11 @@ struct Stats { void update(Piece pc, Square to, Move m) { table[pc][to] = m; } void update(Piece pc, Square to, Value v) { - table[pc][to] -= table[pc][to] * abs(int(v)) / 936; + const int denom = 936; + + assert(abs(int(v)) <= denom); // Needed for stability. + + table[pc][to] -= table[pc][to] * abs(int(v)) / denom; table[pc][to] += int(v) * 32; } diff --git a/tests/instrumented.sh b/tests/instrumented.sh index a6950e16..4c688151 100755 --- a/tests/instrumented.sh +++ b/tests/instrumented.sh @@ -61,6 +61,10 @@ cat << EOF > game.exp send "go nodes 1000\n" expect "bestmove" + send "position fen 5rk1/1K4p1/8/8/3B4/8/8/8 b - - 0 1\n" + send "go depth 30\n" + expect "bestmove" + send "quit\n" expect eof