X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.cpp;h=9a120661eb249306d1a52994a4485ea1b6bf60f9;hp=0fe132d4a6fba23844ac346f15cb7b2e77cb3a6a;hb=ad937d0b2d2a9450686b9f3412c891a68ff19310;hpb=c714b90594cb7ec1fc9635c6e9abb15cef6d7095 diff --git a/src/material.cpp b/src/material.cpp index 0fe132d4..9a120661 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -27,26 +27,23 @@ using namespace std; namespace { - // Values modified by Joona Kiiski - const Value MidgameLimit = Value(15581); - const Value EndgameLimit = Value(3998); - // Polynomial material balance parameters // pair pawn knight bishop rook queen - const int LinearCoefficients[6] = { 1852, -162, -1122, -183, 249, -52 }; + const int LinearCoefficients[6] = { 1852, -162, -1122, -183, 249, -154 }; - const int QuadraticCoefficientsSameColor[][PIECE_TYPE_NB] = { + const int QuadraticCoefficientsSameSide[][PIECE_TYPE_NB] = { + // OUR PIECES // pair pawn knight bishop rook queen { 0 }, // Bishop pair { 39, 2 }, // Pawn - { 35, 271, -4 }, // Knight + { 35, 271, -4 }, // knight OUR PIECES { 0, 105, 4, 0 }, // Bishop { -27, -2, 46, 100, -141 }, // Rook - { 58, 29, 83, 148, -163, 0 } // Queen + {-177, 25, 129, 142, -137, 0 } // Queen }; - const int QuadraticCoefficientsOppositeColor[][PIECE_TYPE_NB] = { + const int QuadraticCoefficientsOppositeSide[][PIECE_TYPE_NB] = { // THEIR PIECES // pair pawn knight bishop rook queen { 0 }, // Bishop pair @@ -54,7 +51,7 @@ namespace { { 10, 62, 0 }, // Knight OUR PIECES { 57, 64, 39, 0 }, // Bishop { 50, 40, 23, -22, 0 }, // Rook - { 106, 101, 3, 151, 171, 0 } // Queen + { 98, 105, -39, 141, 274, 0 } // Queen }; // Endgame evaluation and scaling functions are accessed directly and not through @@ -110,11 +107,12 @@ namespace { v = LinearCoefficients[pt1]; for (pt2 = NO_PIECE_TYPE; pt2 <= pt1; ++pt2) - v += QuadraticCoefficientsSameColor[pt1][pt2] * pieceCount[Us][pt2] - + QuadraticCoefficientsOppositeColor[pt1][pt2] * pieceCount[Them][pt2]; + v += QuadraticCoefficientsSameSide[pt1][pt2] * pieceCount[Us][pt2] + + QuadraticCoefficientsOppositeSide[pt1][pt2] * pieceCount[Them][pt2]; value += pc * v; } + return value; }