#include "position.h"
#include "types.h"
+template<typename T, bool CM> struct Stats;
+typedef Stats<Value, true> CounterMoveStats;
+
namespace Search {
/// Stack struct keeps track of the information we need to remember from nodes
Value staticEval;
bool skipEarlyPruning;
int moveCount;
+ CounterMoveStats* counterMoves;
};
/// RootMove struct is used for moves at the root of the tree. For each root move
bool operator<(const RootMove& m) const { return m.score < score; } // Descending sort
bool operator==(const Move& m) const { return pv[0] == m; }
- void insert_pv_in_tt(Position& pos);
bool extract_ponder_from_tt(Position& pos);
Value score = -VALUE_INFINITE;