From 8c2fd2170a0d6dececbe87b0c0353ce718dcd9fd Mon Sep 17 00:00:00 2001 From: Tom Vijlbrief Date: Mon, 19 Aug 2013 08:54:10 +0200 Subject: [PATCH] Remove useless condition in KXK endgame Because eval is never called when in check. No functional change. --- src/endgame.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/endgame.cpp b/src/endgame.cpp index e896e778..cc98de90 100644 --- a/src/endgame.cpp +++ b/src/endgame.cpp @@ -134,13 +134,11 @@ Value Endgame::operator()(const Position& pos) const { assert(pos.non_pawn_material(weakerSide) == VALUE_ZERO); assert(!pos.count(weakerSide)); + assert(!pos.checkers()); // Eval is never called when in check // Stalemate detection with lone king - if ( pos.side_to_move() == weakerSide - && !pos.checkers() - && !MoveList(pos).size()) { - return VALUE_DRAW; - } + if (pos.side_to_move() == weakerSide && !MoveList(pos).size()) + return VALUE_DRAW; Square winnerKSq = pos.king_square(strongerSide); Square loserKSq = pos.king_square(weakerSide); @@ -152,9 +150,8 @@ Value Endgame::operator()(const Position& pos) const { if ( pos.count(strongerSide) || pos.count(strongerSide) - || pos.bishop_pair(strongerSide)) { - result += VALUE_KNOWN_WIN; - } + || pos.bishop_pair(strongerSide)) + result += VALUE_KNOWN_WIN; return strongerSide == pos.side_to_move() ? result : -result; } -- 2.39.2