struct Stack {
SplitPoint* splitPoint;
+ Move* pv;
int ply;
Move currentMove;
Move ttMove;
/// all non-pv moves.
struct RootMove {
- RootMove(Move m) : score(-VALUE_INFINITE), prevScore(-VALUE_INFINITE) {
- pv.push_back(m); pv.push_back(MOVE_NONE);
- }
+ RootMove(Move m) : score(-VALUE_INFINITE), prevScore(-VALUE_INFINITE), pv(1, m) {}
bool operator<(const RootMove& m) const { return score > m.score; } // Ascending sort
bool operator==(const Move& m) const { return pv[0] == m; }
- void extract_pv_from_tt(Position& pos);
void insert_pv_in_tt(Position& pos);
Value score;