diff --git a/src/search.cpp b/src/search.cpp index 6aa1081f..a739b049 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -933,6 +933,13 @@ moves_loop: // When in check and at SpNode search starts from here value = -search(pos, ss+1, -(alpha+1), -alpha, d, true); + // Research at intermediate depth if reduction is very high + if (value > alpha && ss->reduction >= 4 * ONE_PLY) + { + Depth d2 = std::max(newDepth - 2 * ONE_PLY, ONE_PLY); + value = -search(pos, ss+1, -(alpha+1), -alpha, d2, true); + } + doFullDepthSearch = (value > alpha && ss->reduction != DEPTH_ZERO); ss->reduction = DEPTH_ZERO; }