// is given, with the subset of legal moves to search.
for (MoveList<MV_LEGAL> ml(pos); !ml.end(); ++ml)
if ( SearchMoves.empty()
// is given, with the subset of legal moves to search.
for (MoveList<MV_LEGAL> ml(pos); !ml.end(); ++ml)
if ( SearchMoves.empty()
Move bookMove = book.probe(pos, Options["Best Book Move"].value<bool>());
if ( bookMove != MOVE_NONE
Move bookMove = book.probe(pos, Options["Best Book Move"].value<bool>());
if ( bookMove != MOVE_NONE
- std::swap(RootMoves[0], *std::find(RootMoves.begin(), RootMoves.end(), bookMove));
+ std::swap(RootMoves[0], *find(RootMoves.begin(), RootMoves.end(), bookMove));
- std::swap(RootMoves[0], *std::find(RootMoves.begin(), RootMoves.end(), skillBest));
+ std::swap(RootMoves[0], *find(RootMoves.begin(), RootMoves.end(), skillBest));
// At root obey the "searchmoves" option and skip moves not listed in Root
// Move List, as a consequence any illegal move is also skipped. In MultiPV
// mode we also skip PV moves which have been already searched.
// At root obey the "searchmoves" option and skip moves not listed in Root
// Move List, as a consequence any illegal move is also skipped. In MultiPV
// mode we also skip PV moves which have been already searched.
// be trusted, and we don't update the best move and/or PV.
if (RootNode && !Signals.stop)
{
// be trusted, and we don't update the best move and/or PV.
if (RootNode && !Signals.stop)
{
TT.store(posKey, value_to_tt(bestValue, ss->ply), vt, depth, move, ss->eval, ss->evalMargin);
// Update killers and history for non capture cut-off moves
TT.store(posKey, value_to_tt(bestValue, ss->ply), vt, depth, move, ss->eval, ss->evalMargin);
// Update killers and history for non capture cut-off moves