&& !ttMove
&& (PvNode || ss->staticEval + 256 >= beta))
{
- Depth d = 2 * (depth - 2 * ONE_PLY) - (PvNode ? DEPTH_ZERO : depth / 2);
+ Depth d = depth - 2 * ONE_PLY - (PvNode ? DEPTH_ZERO : depth / 4);
ss->skipEarlyPruning = true;
- search<PvNode ? PV : NonPV, false>(pos, ss, alpha, beta, d / 2, true);
+ search<PvNode ? PV : NonPV, false>(pos, ss, alpha, beta, d, true);
ss->skipEarlyPruning = false;
tte = TT.probe(posKey, ttHit);
if (!pos.legal(move, ci.pinned))
continue;
- moveCount = ++splitPoint->moveCount;
+ ss->moveCount = moveCount = ++splitPoint->moveCount;
splitPoint->spinlock.release();
}
else
- ++moveCount;
-
- ss->moveCount = moveCount;
+ ss->moveCount = ++moveCount;
if (RootNode)
{
// Check for legality just before making the move
if (!RootNode && !SpNode && !pos.legal(move, ci.pinned))
{
- moveCount--;
- ss->moveCount = moveCount;
+ ss->moveCount = --moveCount;
continue;
}
}
// Extra penalty for PV move in previous ply when it gets refuted
- if (is_ok((ss-2)->currentMove) && (ss-1)->moveCount==1 && !pos.captured_piece_type())
+ if (is_ok((ss-2)->currentMove) && (ss-1)->moveCount == 1 && !pos.captured_piece_type())
{
Square prevPrevSq = to_sq((ss-2)->currentMove);
HistoryStats& ttMoveCmh = CounterMovesHistory[pos.piece_on(prevPrevSq)][prevPrevSq];