Retire history.h

And move the contents to movepick.cpp, where they are
mostly used.

Idea from DiscoCheck.

No functional change (bench 5379503)
This commit is contained in:
Marco Costalba
2013-02-02 16:04:41 +01:00
parent 9f94d22801
commit 53051eefc7
5 changed files with 51 additions and 81 deletions

View File

@@ -20,12 +20,36 @@
#if !defined MOVEPICK_H_INCLUDED
#define MOVEPICK_H_INCLUDED
#include "history.h"
#include "position.h"
#include "search.h"
#include "types.h"
/// The History class stores statistics about how often different moves
/// have been successful or unsuccessful during the current search. These
/// statistics are used for reduction and move ordering decisions. History
/// entries are stored according only to moving piece and destination square,
/// in particular two moves with different origin but same destination and
/// same piece will be considered identical.
class History {
public:
static const Value Max = Value(2000);
const Value* operator[](Piece p) const { return &history[p][0]; }
Value gain(Piece p, Square to) const { return gains[p][to]; }
void clear();
void update(Piece p, Square to, Value bonus);
void update_gain(Piece p, Square to, Value gain);
private:
Value history[PIECE_NB][SQUARE_NB];
Value gains[PIECE_NB][SQUARE_NB];
};
/// MovePicker class is used to pick one pseudo legal move at a time from the
/// current position. The most important method is next_move(), which returns a
/// new pseudo legal move each time it is called, until there are no moves left,