Skip to content


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 <>
  • 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
@@ -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.