mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-23 02:27:00 +08:00
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
This commit is contained in:
@@ -39,7 +39,7 @@
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
struct Stats {
|
struct Stats {
|
||||||
|
|
||||||
static const Value Max = Value(250);
|
static const Value Max = Value(1<<28);
|
||||||
|
|
||||||
const T* operator[](Piece pc) const { return table[pc]; }
|
const T* operator[](Piece pc) const { return table[pc]; }
|
||||||
T* operator[](Piece pc) { return table[pc]; }
|
T* operator[](Piece pc) { return table[pc]; }
|
||||||
@@ -53,8 +53,8 @@ struct Stats {
|
|||||||
|
|
||||||
void update(Piece pc, Square to, Value v) {
|
void update(Piece pc, Square to, Value v) {
|
||||||
|
|
||||||
if (abs(table[pc][to] + v) < Max)
|
table[pc][to] -= table[pc][to] * std::min(abs(int(v)), 512) / 512;
|
||||||
table[pc][to] += v;
|
table[pc][to] += int(v) * 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user