Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Do not razor while in check or value is mate

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
commit ecc19381b4af1938d6e07ef44462110e02c02953 1 parent dae2f60
@mcostalba authored
Showing with 7 additions and 4 deletions.
  1. +7 −4 src/search.cpp
View
11 src/search.cpp
@@ -1195,6 +1195,7 @@ namespace {
if ( UseNullDrivenIID
&& nullValue < beta
&& depth > 6 * OnePly
+ &&!value_is_mate(nullValue)
&& ttMove == MOVE_NONE
&& ss[ply + 1].currentMove != MOVE_NONE
&& pos.move_is_capture(ss[ply + 1].currentMove)
@@ -1236,8 +1237,10 @@ namespace {
}
}
// Null move search not allowed, try razoring
- else if ( (approximateEval < beta - RazorMargin && depth < RazorDepth)
- ||(approximateEval < beta - PawnValueMidgame && depth <= OnePly))
+ else if ( !isCheck
+ && !value_is_mate(beta)
+ && ( (approximateEval < beta - RazorMargin && depth < RazorDepth)
+ ||(approximateEval < beta - PawnValueMidgame && depth <= OnePly)))
{
Value v = qsearch(pos, ss, beta-1, beta, Depth(0), ply, threadID);
if (v < beta)
@@ -1454,12 +1457,12 @@ namespace {
// Initialize a MovePicker object for the current position, and prepare
// to search the moves. Because the depth is <= 0 here, only captures,
// queen promotions and checks (only if depth == 0) will be generated.
- MovePicker mp = MovePicker(pos, false, MOVE_NONE, EmptySearchStack, depth, &ei);
+ bool pvNode = (beta - alpha != 1);
+ MovePicker mp = MovePicker(pos, pvNode, MOVE_NONE, EmptySearchStack, depth, &ei);
Move move;
int moveCount = 0;
Bitboard dcCandidates = mp.discovered_check_candidates();
bool isCheck = pos.is_check();
- bool pvNode = (beta - alpha != 1);
bool enoughMaterial = pos.non_pawn_material(pos.side_to_move()) > RookValueMidgame;
// Loop through the moves until no moves remain or a beta cutoff
Please sign in to comment.
Something went wrong with that request. Please try again.