X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.cpp;h=294744f4ed7de6da34ccdea53acca82d813d13f5;hp=921e3007d0733788de389a676da524919ab06016;hb=691a287bfe7a2afbfa1d2b3129f4a089b188b6e4;hpb=759b3c79cf94d101163f646b1eb2a9f9c64293ab diff --git a/src/material.cpp b/src/material.cpp index 921e3007..294744f4 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -2,7 +2,7 @@ Stockfish, a UCI chess playing engine derived from Glaurung 2.1 Copyright (C) 2004-2008 Tord Romstad (Glaurung author) Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad - Copyright (C) 2015-2018 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad + Copyright (C) 2015-2019 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,12 +34,12 @@ namespace { constexpr int QuadraticOurs[][PIECE_TYPE_NB] = { // OUR PIECES // pair pawn knight bishop rook queen - {1667 }, // Bishop pair - { 40, 0 }, // Pawn - { 32, 255, -3 }, // Knight OUR PIECES + {1438 }, // Bishop pair + { 40, 38 }, // Pawn + { 32, 255, -62 }, // Knight OUR PIECES { 0, 104, 4, 0 }, // Bishop - { -26, -2, 47, 105, -149 }, // Rook - {-189, 24, 117, 133, -134, -10 } // Queen + { -26, -2, 47, 105, -208 }, // Rook + {-189, 24, 117, 133, -134, -6 } // Queen }; constexpr int QuadraticTheirs[][PIECE_TYPE_NB] = { @@ -77,7 +77,7 @@ namespace { bool is_KQKRPs(const Position& pos, Color us) { return !pos.count(us) && pos.non_pawn_material(us) == QueenValueMg - && pos.count(us) == 1 + && pos.count(us) == 1 && pos.count(~us) == 1 && pos.count(~us) >= 1; } @@ -152,7 +152,7 @@ Entry* probe(const Position& pos) { // OK, we didn't find any special evaluation function for the current material // configuration. Is there a suitable specialized scaling function? - EndgameBase* sf; + const EndgameBase* sf; if ((sf = pos.this_thread()->endgames.probe(key)) != nullptr) { @@ -206,12 +206,6 @@ Entry* probe(const Position& pos) { e->factor[BLACK] = uint8_t(npm_b < RookValueMg ? SCALE_FACTOR_DRAW : npm_w <= BishopValueMg ? 4 : 14); - if (pos.count(WHITE) == 1 && npm_w - npm_b <= BishopValueMg) - e->factor[WHITE] = (uint8_t) SCALE_FACTOR_ONEPAWN; - - if (pos.count(BLACK) == 1 && npm_b - npm_w <= BishopValueMg) - e->factor[BLACK] = (uint8_t) SCALE_FACTOR_ONEPAWN; - // Evaluate the material imbalance. We use PIECE_TYPE_NONE as a place holder // for the bishop pair "extended piece", which allows us to be more flexible // in defining bishop pair bonuses.