- // Multi-cut pruning
- // Our ttMove is assumed to fail high, and now we failed high also on a reduced
- // search without the ttMove. So we assume this expected Cut-node is not singular,
- // that multiple moves fail high, and we can prune the whole subtree by returning
- // a soft bound.
- else if (singularBeta >= beta)
- return singularBeta;
-
- // If the eval of ttMove is greater than beta we try also if there is another
- // move that pushes it over beta, if so also produce a cutoff.
- else if (ttValue >= beta)
- {
- ss->excludedMove = move;
- value = search<NonPV>(pos, ss, beta - 1, beta, (depth + 3) / 2, cutNode);
- ss->excludedMove = MOVE_NONE;