&& depth >= Threads.min_split_depth()
&& bestValue < beta
&& Threads.available_slave_exists(thisThread))
+ {
bestValue = Threads.split<FakeSplit>(pos, ss, alpha, beta, bestValue, &bestMove,
depth, threatMove, moveCount, mp, NT);
+ if (bestValue >= beta)
+ break;
+ }
}
if (SpNode)
if (ss->staticEval == VALUE_NONE || ss->evalMargin == VALUE_NONE) // Due to a race
ss->staticEval = bestValue = evaluate(pos, ss->evalMargin);
}
+ else if ((ss-1)->currentMove == MOVE_NULL)
+ {
+ ss->staticEval = bestValue = -(ss-1)->staticEval;
+ ss->evalMargin = VALUE_ZERO; // Hack, we really don't know the value
+ }
else
ss->staticEval = bestValue = evaluate(pos, ss->evalMargin);