From: Marco Costalba Date: Thu, 5 Sep 2013 04:34:13 +0000 (+0200) Subject: Revert "Fix check for bishop pair in material imbalance" X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=a30d3571ca07aab94675c3652f6bde15c339dfcf Revert "Fix check for bishop pair in material imbalance" Idea is sound but implementation is partial. Ryan and Joona noticed that we leave an hole in material table. Also we got another report by an user of an odd behaviour. Namely, if you start stockfish and from the prompt give 'bench' you get 3453941, then if you run again bench you get 3453940. The reason is that two different positions with the same number of pieces, but one with a bishop pair and another without have the same material key. But after Eelco patch also different material imbalance and this yields to this issue. Restesting at long TC shows the patch does not really contribute at ELO improvement. Actually patch failed at long TC. LLR: -2.97 (-2.94,2.94) Total: 23109 W: 4104 L: 4092 D: 14913 So revert. bench: 3453945 --- diff --git a/src/material.cpp b/src/material.cpp index 88882959..0f1e19b9 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -263,14 +263,14 @@ Entry* probe(const Position& pos, Table& entries, Endgames& endgames) { e->spaceWeight = make_score(minorPieceCount * minorPieceCount, 0); } - // Evaluate the material imbalance. We use NO_PIECE_TYPE as a place holder + // Evaluate the material imbalance. We use PIECE_TYPE_NONE as a place holder // for the bishop pair "extended piece", this allow us to be more flexible // in defining bishop pair bonuses. const int pieceCount[COLOR_NB][PIECE_TYPE_NB] = { - { pos.bishop_pair(WHITE) , pos.count(WHITE), pos.count(WHITE), - pos.count(WHITE), pos.count(WHITE), pos.count(WHITE) }, - { pos.bishop_pair(BLACK) , pos.count(BLACK), pos.count(BLACK), - pos.count(BLACK), pos.count(BLACK), pos.count(BLACK) } }; + { pos.count(WHITE) > 1, pos.count(WHITE), pos.count(WHITE), + pos.count(WHITE) , pos.count(WHITE), pos.count(WHITE) }, + { pos.count(BLACK) > 1, pos.count(BLACK), pos.count(BLACK), + pos.count(BLACK) , pos.count(BLACK), pos.count(BLACK) } }; e->value = (int16_t)((imbalance(pieceCount) - imbalance(pieceCount)) / 16); return e;