1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Provide selective search depth info for each pv move

No functional change

Closes #1166
This commit is contained in:
joergoster 2017-07-13 16:30:03 -07:00 committed by Joona Kiiski
parent 36a93d90f7
commit 377d77dbe9
4 changed files with 10 additions and 6 deletions

View file

@ -383,6 +383,9 @@ void Thread::search() {
// MultiPV loop. We perform a full root search for each PV line
for (PVIdx = 0; PVIdx < multiPV && !Threads.stop; ++PVIdx)
{
// Reset UCI info selDepth for each depth and each PV line
selDepth = 0;
// Reset aspiration window starting size
if (rootDepth >= 5 * ONE_PLY)
{
@ -566,8 +569,8 @@ namespace {
static_cast<MainThread*>(thisThread)->check_time();
// Used to send selDepth info to GUI
if (PvNode && thisThread->maxPly < ss->ply)
thisThread->maxPly = ss->ply;
if (PvNode && thisThread->selDepth < ss->ply)
thisThread->selDepth = ss->ply;
if (!rootNode)
{
@ -1043,6 +1046,7 @@ moves_loop: // When in check search starts from here
if (moveCount == 1 || value > alpha)
{
rm.score = value;
rm.selDepth = thisThread->selDepth;
rm.pv.resize(1);
assert((ss+1)->pv);
@ -1525,7 +1529,7 @@ string UCI::pv(const Position& pos, Depth depth, Value alpha, Value beta) {
ss << "info"
<< " depth " << d / ONE_PLY
<< " seldepth " << pos.this_thread()->maxPly
<< " seldepth " << rootMoves[i].selDepth
<< " multipv " << i + 1
<< " score " << UCI::value(v);

View file

@ -64,6 +64,7 @@ struct RootMove {
Value score = -VALUE_INFINITE;
Value previousScore = -VALUE_INFINITE;
int selDepth = 0;
std::vector<Move> pv;
};

View file

@ -35,7 +35,7 @@ ThreadPool Threads; // Global object
Thread::Thread() {
exit = false;
maxPly = 0;
selDepth = 0;
nodes = tbHits = 0;
idx = Threads.size(); // Start from 0
@ -210,7 +210,6 @@ void ThreadPool::start_thinking(Position& pos, StateListPtr& states,
for (Thread* th : Threads)
{
th->maxPly = 0;
th->nodes = 0;
th->tbHits = 0;
th->rootDepth = DEPTH_ZERO;

View file

@ -60,7 +60,7 @@ public:
Material::Table materialTable;
Endgames endgames;
size_t idx, PVIdx;
int maxPly;
int selDepth;
std::atomic<uint64_t> nodes, tbHits;
Position rootPos;