value = -search<NonPV>(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<NonPV>(pos, ss+1, -(alpha+1), -alpha, d2, true);
+ }
+
doFullDepthSearch = (value > alpha && ss->reduction != DEPTH_ZERO);
ss->reduction = DEPTH_ZERO;
}