&& ttMove == MOVE_NONE
&& (PvNode || (!inCheck && ss->staticEval + Value(256) >= beta)))
{
- Depth d = (PvNode ? depth - 2 * ONE_PLY : depth / 2);
+ Depth d = (PvNode ? depth - 2 * ONE_PLY : depth - 4 * ONE_PLY);
ss->skipNullMove = true;
search<PvNode ? PV : NonPV>(pos, ss, alpha, beta, d);
if (futilityValue < beta)
{
+ bestValue = std::max(bestValue, futilityValue);
+
if (SpNode)
+ {
splitPoint->mutex.lock();
-
+ if (bestValue > splitPoint->bestValue)
+ splitPoint->bestValue = bestValue;
+ }
continue;
}