Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Do not use evaluate() for razoring

Because razoring is reached 10% of times and about 50% of time
first two conditions are met we can save 5% of calls to the fairly
costly evaluate().

On the other side statistics have shown 95% of nodes that pass
the first two razoring conditions pass also the evaluate() test.
So the risk of dropping the third condition seems low enough.

Testing seems to validate this.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
commit 060eef4f4e97ea1261252256c6768b243b7d3de5 1 parent 67f975e
Marco Costalba authored
Showing with 1 addition and 3 deletions.
  1. +1 −3 src/search.cpp
4 src/search.cpp
View
@@ -1122,9 +1122,7 @@ namespace {
}
}
// Null move search not allowed, try razoring
- else if ( depth < RazorDepth
- && approximateEval < beta - RazorMargin
- && evaluate(pos, ei, threadID) < beta - RazorMargin)
+ else if (depth < RazorDepth && approximateEval < beta - RazorMargin)
{
Value v = qsearch(pos, ss, beta-1, beta, Depth(0), ply, threadID);
if (v < beta)
Please sign in to comment.
Something went wrong with that request. Please try again.