+ (*contHist[3])[movedPiece][to_sq(move)]
- 4000;
+ // Reset statScore to zero if negative and most stats shows >= 0
+ if ( ss->statScore < 0
+ && (*contHist[0])[movedPiece][to_sq(move)] >= 0
+ && (*contHist[1])[movedPiece][to_sq(move)] >= 0
+ && thisThread->mainHistory[us][from_to(move)] >= 0)
+ ss->statScore = 0;
+
// Decrease/increase reduction by comparing opponent's stat score (~10 Elo)
if (ss->statScore >= 0 && (ss-1)->statScore < 0)
r -= ONE_PLY;
: -stat_bonus(newDepth);
if (move == ss->killers[0])
- bonus += bonus / 4;
+ bonus += bonus / 4;
update_continuation_histories(ss, movedPiece, to_sq(move), bonus);
}