diff --git a/src/search.cpp b/src/search.cpp index 6ca3b56e..426f7937 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -776,7 +776,9 @@ namespace { // Step 7. Razoring. // If eval is really low check with qsearch if it can exceed alpha, if it can't, // return a fail low. - if (!PvNode && depth <= 6 && eval < alpha - 400 - 300 * depth * depth) + if ( !PvNode + && depth <= 6 + && eval < alpha - 400 - 300 * depth * depth) { value = qsearch(pos, ss, alpha - 1, alpha); if (value < alpha) @@ -805,8 +807,8 @@ namespace { { assert(eval - beta >= 0); - // Null move dynamic reduction based on depth and value - Depth R = std::min(int(eval - beta) / 205, 3) + depth / 3 + 4; + // Null move dynamic reduction based on depth, eval and complexity of position + Depth R = std::min(int(eval - beta) / 205, 3) + depth / 3 + 4 - (complexity > 500); ss->currentMove = MOVE_NULL; ss->continuationHistory = &thisThread->continuationHistory[0][0][NO_PIECE][0];