}
}
- int stableCnt;
Key expectedPosKey;
+ int stableCnt;
Move pv[3];
};
}
// Reduced depth of the next LMR search
- int lmrDepth = std::max(newDepth - reduction<PvNode>(improving, depth, moveCount), DEPTH_ZERO) / ONE_PLY;
+ int mch = std::max(1, moveCount - (ss-1)->moveCount / 16);
+ int lmrDepth = std::max(newDepth - reduction<PvNode>(improving, depth, mch), DEPTH_ZERO) / ONE_PLY;
// Countermoves based pruning
if ( lmrDepth < 3
&& moveCount > 1
&& (!captureOrPromotion || moveCountPruning))
{
- Depth r = reduction<PvNode>(improving, depth, moveCount);
+ int mch = std::max(1, moveCount - (ss-1)->moveCount / 16);
+ Depth r = reduction<PvNode>(improving, depth, mch);
if (captureOrPromotion)
r -= r ? ONE_PLY : DEPTH_ZERO;
// to search the moves. Because the depth is <= 0 here, only captures,
// queen promotions and checks (only if depth >= DEPTH_QS_CHECKS) will
// be generated.
- const PieceToHistory* contHist[4] = {};
- MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory, contHist, to_sq((ss-1)->currentMove));
+ MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory, to_sq((ss-1)->currentMove));
// Loop through the moves until no moves remain or a beta cutoff occurs
while ((move = mp.next_move()) != MOVE_NONE)