// starts with statScore = 0. Later grandchildren start with the last calculated
// statScore of the previous grandchild. This influences the reduction rules in
// LMR which are based on the statScore of parent position.
- (ss+2)->statScore = 0;
+ if (rootNode)
+ (ss + 4)->statScore = 0;
+ else
+ (ss + 2)->statScore = 0;
// Step 4. Transposition table lookup. We don't want the score of a partial
// search to overwrite a previous full search TT value, so we use a different
// re-searched at full depth.
if ( depth >= 3 * ONE_PLY
&& moveCount > 1
- && (!captureOrPromotion || moveCountPruning))
+ && ( !captureOrPromotion
+ || moveCountPruning
+ || ss->staticEval + PieceValue[EG][pos.captured_piece()] <= alpha))
{
Depth r = reduction<PvNode>(improving, depth, moveCount);