From: protonspring Date: Mon, 23 Sep 2019 01:48:52 +0000 (-0600) Subject: Simplify connected pawn scoring X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=7e4c3256aab178f303578b4c4a31c59d43421640 Simplify connected pawn scoring When scoring the connected pawns, replace the intricate ternary expressions choosing the coefficient by a simpler addition of boolean conditions: ` value = Connected * (2 + phalanx - opposed) ` This is the map showing the old coefficients and the new ones: ``` phalanx and unopposed: 3x -> 3x phalanx and opposed: 1.5x -> 2x not phalanx and unopposed: 2x -> 2x not phalanx and opposed: 1x -> 1x ``` STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 11354 W: 2579 L: 2437 D: 6338 http://tests.stockfishchess.org/tests/view/5d8151f00ebc5971531d244f LTC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 41221 W: 7001 L: 6913 D: 27307 http://tests.stockfishchess.org/tests/view/5d818f930ebc5971531d26d6 Bench: 3959889 blah --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index a7a091ab..9521cd10 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -353,7 +353,7 @@ namespace { // Bonus for rook on an open or semi-open file if (pos.is_on_semiopen_file(Us, s)) - score += RookOnFile[bool(pos.is_on_semiopen_file(Them, s))]; + score += RookOnFile[pos.is_on_semiopen_file(Them, s)]; // Penalty when trapped by the king, even more if the king cannot castle else if (mob <= 3) diff --git a/src/pawns.cpp b/src/pawns.cpp index 1ae65bf1..f6041199 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -130,7 +130,7 @@ namespace { // Score this pawn if (support | phalanx) { - int v = Connected[r] * (phalanx ? 3 : 2) / (opposed ? 2 : 1) + int v = Connected[r] * (2 + bool(phalanx) - opposed) + 17 * popcount(support); score += make_score(v, v * (r - 2) / 4);