From: joergoster Date: Fri, 17 Mar 2017 21:41:08 +0000 (-0700) Subject: Pawns count imbalance table X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=c076216a32f6952d443eeeaaaea24bed9ebafa12 Pawns count imbalance table Instead of having a continuous increasing bonus for our number of pawns when calculating imbalance, use a separate lookup array with tuned values. Idea by GuardianRM. STC LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 16155 W: 2980 L: 2787 D: 10388 LTC LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 100478 W: 13055 L: 12615 D: 74808 Bench: 6128779 Closes #1030 --- diff --git a/src/material.cpp b/src/material.cpp index 7f760ee2..498ef33f 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -35,7 +35,7 @@ namespace { // OUR PIECES // pair pawn knight bishop rook queen {1667 }, // Bishop pair - { 40, 2 }, // Pawn + { 40, 0 }, // Pawn { 32, 255, -3 }, // Knight OUR PIECES { 0, 104, 4, 0 }, // Bishop { -26, -2, 47, 105, -149 }, // Rook @@ -53,6 +53,11 @@ namespace { { 101, 100, -37, 141, 268, 0 } // Queen }; + // PawnsSet[count] contains a bonus/malus indexed by number of pawns + const int PawnsSet[9] = { + 24, -32, 107, -51, 117, -9, -126, -21, 31 + }; + // Endgame evaluation and scaling functions are accessed directly and not through // the function maps because they correspond to more than one material hash key. Endgame EvaluateKXK[] = { Endgame(WHITE), Endgame(BLACK) }; @@ -89,7 +94,7 @@ namespace { const Color Them = (Us == WHITE ? BLACK : WHITE); - int bonus = 0; + int bonus = PawnsSet[pieceCount[Us][PAWN]]; // Second-degree polynomial material imbalance by Tord Romstad for (int pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1)