From: Joona Kiiski Date: Tue, 25 Aug 2015 19:52:44 +0000 (+0100) Subject: History gravity X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=7f300a769848c695fb28da444b0c3f4c1d919945;hp=087b638f6c8982927cbff0d44d6fb825a567e182 History gravity Instead of using hard coded Min and Max values for history, always adjust the old value slightly downwards before adding a new value. The adjustment acts like gravity that prevents the value escaping too far from zero. Bench: 8020484 Resolves #407 --- diff --git a/src/movepick.h b/src/movepick.h index b281bd42..412c08e2 100644 --- a/src/movepick.h +++ b/src/movepick.h @@ -39,7 +39,7 @@ template struct Stats { - static const Value Max = Value(250); + static const Value Max = Value(1<<28); const T* operator[](Piece pc) const { return table[pc]; } T* operator[](Piece pc) { return table[pc]; } @@ -53,8 +53,8 @@ struct Stats { void update(Piece pc, Square to, Value v) { - if (abs(table[pc][to] + v) < Max) - table[pc][to] += v; + table[pc][to] -= table[pc][to] * std::min(abs(int(v)), 512) / 512; + table[pc][to] += int(v) * 64; } private: