- // In general we want to cap the LMR depth search at newDepth. But for nodes
- // close to the principal variation the cap is at (newDepth + 1), which will
- // allow these nodes to be searched deeper than the pv (up to 4 plies deeper).
- Depth d = std::clamp(newDepth - r, 1, newDepth + ((ss+1)->distanceFromPv <= 4));
+ // In general we want to cap the LMR depth search at newDepth. But if
+ // reductions are really negative and movecount is low, we allow this move
+ // to be searched deeper than the first move.
+ Depth d = std::clamp(newDepth - r, 1, newDepth + (r < -1 && moveCount <= 5));