mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Retire HistoryMax
Infact we don't use it anymore already. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
d6fdd4f6d9
commit
2052407090
3 changed files with 2 additions and 44 deletions
|
@ -57,12 +57,6 @@ void History::success(Piece p, Square to, Depth d) {
|
||||||
assert(square_is_ok(to));
|
assert(square_is_ok(to));
|
||||||
|
|
||||||
history[p][to] += int(d) * int(d);
|
history[p][to] += int(d) * int(d);
|
||||||
|
|
||||||
// Prevent history overflow
|
|
||||||
if (history[p][to] >= HistoryMax)
|
|
||||||
for (int i = 0; i < 16; i++)
|
|
||||||
for (int j = 0; j < 64; j++)
|
|
||||||
history[i][j] /= 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,12 +70,6 @@ void History::failure(Piece p, Square to, Depth d) {
|
||||||
assert(square_is_ok(to));
|
assert(square_is_ok(to));
|
||||||
|
|
||||||
history[p][to] -= int(d) * int(d);
|
history[p][to] -= int(d) * int(d);
|
||||||
|
|
||||||
// Prevent history underflow
|
|
||||||
if (history[p][to] <= -HistoryMax)
|
|
||||||
for (int i = 0; i < 16; i++)
|
|
||||||
for (int j = 0; j < 64; j++)
|
|
||||||
history[i][j] /= 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,24 +17,15 @@
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if !defined(HISTORY_H_INCLUDED)
|
#if !defined(HISTORY_H_INCLUDED)
|
||||||
#define HISTORY_H_INCLUDED
|
#define HISTORY_H_INCLUDED
|
||||||
|
|
||||||
////
|
|
||||||
//// Includes
|
|
||||||
////
|
|
||||||
|
|
||||||
#include "depth.h"
|
#include "depth.h"
|
||||||
#include "move.h"
|
#include "move.h"
|
||||||
#include "piece.h"
|
#include "piece.h"
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
|
|
||||||
|
|
||||||
////
|
|
||||||
//// Types
|
|
||||||
////
|
|
||||||
|
|
||||||
/// The History class stores statistics about how often different moves
|
/// The History class stores statistics about how often different moves
|
||||||
/// have been successful or unsuccessful during the current search. These
|
/// have been successful or unsuccessful during the current search. These
|
||||||
/// statistics are used for reduction and move ordering decisions. History
|
/// statistics are used for reduction and move ordering decisions. History
|
||||||
|
@ -58,27 +49,6 @@ private:
|
||||||
int maxStaticValueDelta[16][64]; // [piece][from_square][to_square]
|
int maxStaticValueDelta[16][64]; // [piece][from_square][to_square]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
////
|
|
||||||
//// Constants and variables
|
|
||||||
////
|
|
||||||
|
|
||||||
/// HistoryMax controls how often the history counters will be scaled down:
|
|
||||||
/// When the history score for a move gets bigger than HistoryMax, all
|
|
||||||
/// entries in the table are divided by 2. It is difficult to guess what
|
|
||||||
/// the ideal value of this constant is. Scaling down the scores often has
|
|
||||||
/// the effect that parts of the search tree which have been searched
|
|
||||||
/// recently have a bigger importance for move ordering than the moves which
|
|
||||||
/// have been searched a long time ago.
|
|
||||||
/// Current policy is to set this as high as possible, but avoid overflow.
|
|
||||||
|
|
||||||
const int HistoryMax = (1 << 28);
|
|
||||||
|
|
||||||
|
|
||||||
////
|
|
||||||
//// Inline functions
|
|
||||||
////
|
|
||||||
|
|
||||||
inline int History::value(Piece p, Square to) const {
|
inline int History::value(Piece p, Square to) const {
|
||||||
return history[p][to];
|
return history[p][to];
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,10 +247,10 @@ void MovePicker::score_evasions() {
|
||||||
{
|
{
|
||||||
m = cur->move;
|
m = cur->move;
|
||||||
if ((seeScore = pos.see_sign(m)) < 0)
|
if ((seeScore = pos.see_sign(m)) < 0)
|
||||||
cur->score = seeScore - HistoryMax; // Be sure are at the bottom
|
cur->score = seeScore - (1 << 29); // Be sure are at the bottom
|
||||||
else if (pos.move_is_capture(m))
|
else if (pos.move_is_capture(m))
|
||||||
cur->score = pos.midgame_value_of_piece_on(move_to(m))
|
cur->score = pos.midgame_value_of_piece_on(move_to(m))
|
||||||
- pos.type_of_piece_on(move_from(m)) + HistoryMax;
|
- pos.type_of_piece_on(move_from(m)) + (1 << 29);
|
||||||
else
|
else
|
||||||
cur->score = H.value(pos.piece_on(move_from(m)), move_to(m));
|
cur->score = H.value(pos.piece_on(move_from(m)), move_to(m));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue