- explicit RootMove(Move m) : 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 insert_pv_in_tt(Position& pos);
- bool extract_ponder_from_tt(Position& pos);
-
- Value score = -VALUE_INFINITE;
- Value previousScore = -VALUE_INFINITE;
- std::vector<Move> pv;
+ explicit RootMove(Move m) :
+ pv(1, m) {}
+ bool extract_ponder_from_tt(Position& pos);
+ bool operator==(const Move& m) const { return pv[0] == m; }
+ // Sort in descending order
+ bool operator<(const RootMove& m) const {
+ return m.score != score ? m.score < score : m.previousScore < previousScore;
+ }
+
+ Value score = -VALUE_INFINITE;
+ Value previousScore = -VALUE_INFINITE;
+ Value averageScore = -VALUE_INFINITE;
+ Value uciScore = -VALUE_INFINITE;
+ bool scoreLowerbound = false;
+ bool scoreUpperbound = false;
+ int selDepth = 0;
+ int tbRank = 0;
+ Value tbScore;
+ std::vector<Move> pv;