From 17000d1ea0836ff701fb83d76fbc747b88bf60a3 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Wed, 17 Dec 2008 19:36:51 +0100 Subject: [PATCH] Trigger of PawnEndgameExtension if capture is not a pawn Instead of a rook. This gives an unexpected graeat increase! Signed-off-by: Marco Costalba --- src/search.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 8e6181cc..c32171ca 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -2170,6 +2170,8 @@ namespace { Depth extension(const Position &pos, Move m, bool pvNode, bool check, bool singleReply, bool mateThreat, bool* dangerous) { + assert(m != MOVE_NONE); + Depth result = Depth(0); *dangerous = check || singleReply || mateThreat; @@ -2193,10 +2195,12 @@ namespace { *dangerous = true; } - if ( pos.midgame_value_of_piece_on(move_to(m)) >= RookValueMidgame + if ( pos.move_is_capture(m) + && pos.type_of_piece_on(move_to(m)) != PAWN && ( pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK) - pos.midgame_value_of_piece_on(move_to(m)) == Value(0)) - && !move_promotion(m)) + && !move_promotion(m) + && !move_is_ep(m)) { result += PawnEndgameExtension[pvNode]; *dangerous = true; @@ -2262,7 +2266,7 @@ namespace { // value of the threatening piece, don't prune move which defend it. if ( !PruneDefendingMoves && threat != MOVE_NONE - && pos.type_of_piece_on(tto) != NO_PIECE_TYPE + && pos.move_is_capture(threat) && ( pos.midgame_value_of_piece_on(tfrom) >= pos.midgame_value_of_piece_on(tto) || pos.type_of_piece_on(tfrom) == KING) && pos.move_attacks_square(m, tto)) -- 2.39.2