if ((ss+1)->cutoffCnt > 3)
r++;
+ // Decrease reduction if move is a killer and we have a good history
+ if (move == ss->killers[0]
+ && (*contHist[0])[movedPiece][to_sq(move)] >= 3600)
+ r--;
+
ss->statScore = 2 * thisThread->mainHistory[us][from_to(move)]
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
}
}
- // Do not search moves with negative SEE values (~5 Elo)
+ // Do not search moves with bad enough SEE values (~5 Elo)
if ( bestValue > VALUE_TB_LOSS_IN_MAX_PLY
- && !pos.see_ge(move))
+ && !pos.see_ge(move, Value(-108)))
continue;
// Speculative prefetch as early as possible