From 4d6258bb32d90b1efc42e28885beb40f87b55e0d Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Fri, 31 Dec 2010 13:19:05 +0100 Subject: [PATCH] Implement "seldepth" UCI info This is the "selective search depth in plies" and we set equal to PV line length. Tested that works under FritzGUI. No functional change. Signed-off-by: Marco Costalba --- src/evaluate.cpp | 2 +- src/evaluate.h | 2 +- src/search.cpp | 14 ++++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 3fc6bd5c..2a80568d 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -414,7 +414,7 @@ void quit_eval() { /// read_weights() reads evaluation weights from the corresponding UCI parameters -void read_weights(Color us) { +void read_evaluation_uci_options(Color us) { // King safety is asymmetrical. Our king danger level is weighted by // "Cowardice" UCI parameter, instead the opponent one by "Aggressiveness". diff --git a/src/evaluate.h b/src/evaluate.h index 4a04e739..6651aca2 100644 --- a/src/evaluate.h +++ b/src/evaluate.h @@ -29,6 +29,6 @@ class Position; extern Value evaluate(const Position& pos, Value& margin); extern void init_eval(int threads); extern void quit_eval(); -extern void read_weights(Color sideToMove); +extern void read_evaluation_uci_options(Color sideToMove); #endif // !defined(EVALUATE_H_INCLUDED) diff --git a/src/search.cpp b/src/search.cpp index bf379896..b39bd53d 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -451,7 +451,7 @@ bool think(Position& pos, bool infinite, bool ponder, int time[], int increment[ MultiPV = Options["MultiPV"].value(); UseLogFile = Options["Use Search Log"].value(); - read_weights(pos.side_to_move()); + read_evaluation_uci_options(pos.side_to_move()); // Set the number of active threads ThreadsMgr.read_uci_options(); @@ -2611,19 +2611,21 @@ split_point_start: // At split points actual search starts from here std::string RootMove::pv_info_to_uci(const Position& pos, Value alpha, Value beta, int pvLine) { - std::stringstream s; + std::stringstream s, l; + Move* m = pv; + + while (*m != MOVE_NONE) + l << *m++ << " "; s << "info depth " << Iteration // FIXME + << " seldepth " << int(m - pv) << " multipv " << pvLine + 1 << " score " << value_to_uci(pv_score) << (pv_score >= beta ? " lowerbound" : pv_score <= alpha ? " upperbound" : "") << " time " << current_search_time() << " nodes " << pos.nodes_searched() << " nps " << nps(pos) - << " pv "; - - for (Move* m = pv; *m != MOVE_NONE; m++) - s << *m << " "; + << " pv " << l.str(); if (UseLogFile && pvLine == 0) { -- 2.39.2