mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Display classic and NNUE evaluation in trace mode
show both the classical and NNUE evaluation, as well as the Final evaluation. closes https://github.com/official-stockfish/Stockfish/pull/3042 No functional change.
This commit is contained in:
parent
e64b957274
commit
cbcb05ca09
1 changed files with 35 additions and 30 deletions
|
@ -972,42 +972,47 @@ std::string Eval::trace(const Position& pos) {
|
||||||
|
|
||||||
Value v;
|
Value v;
|
||||||
|
|
||||||
if (Eval::useNNUE)
|
std::memset(scores, 0, sizeof(scores));
|
||||||
{
|
|
||||||
v = NNUE::evaluate(pos);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
std::memset(scores, 0, sizeof(scores));
|
|
||||||
|
|
||||||
pos.this_thread()->contempt = SCORE_ZERO; // Reset any dynamic contempt
|
pos.this_thread()->contempt = SCORE_ZERO; // Reset any dynamic contempt
|
||||||
|
|
||||||
v = Evaluation<TRACE>(pos).value();
|
v = Evaluation<TRACE>(pos).value();
|
||||||
|
|
||||||
ss << std::showpoint << std::noshowpos << std::fixed << std::setprecision(2)
|
ss << std::showpoint << std::noshowpos << std::fixed << std::setprecision(2)
|
||||||
<< " Term | White | Black | Total \n"
|
<< " Term | White | Black | Total \n"
|
||||||
<< " | MG EG | MG EG | MG EG \n"
|
<< " | MG EG | MG EG | MG EG \n"
|
||||||
<< " ------------+-------------+-------------+------------\n"
|
<< " ------------+-------------+-------------+------------\n"
|
||||||
<< " Material | " << Term(MATERIAL)
|
<< " Material | " << Term(MATERIAL)
|
||||||
<< " Imbalance | " << Term(IMBALANCE)
|
<< " Imbalance | " << Term(IMBALANCE)
|
||||||
<< " Pawns | " << Term(PAWN)
|
<< " Pawns | " << Term(PAWN)
|
||||||
<< " Knights | " << Term(KNIGHT)
|
<< " Knights | " << Term(KNIGHT)
|
||||||
<< " Bishops | " << Term(BISHOP)
|
<< " Bishops | " << Term(BISHOP)
|
||||||
<< " Rooks | " << Term(ROOK)
|
<< " Rooks | " << Term(ROOK)
|
||||||
<< " Queens | " << Term(QUEEN)
|
<< " Queens | " << Term(QUEEN)
|
||||||
<< " Mobility | " << Term(MOBILITY)
|
<< " Mobility | " << Term(MOBILITY)
|
||||||
<< " King safety | " << Term(KING)
|
<< " King safety | " << Term(KING)
|
||||||
<< " Threats | " << Term(THREAT)
|
<< " Threats | " << Term(THREAT)
|
||||||
<< " Passed | " << Term(PASSED)
|
<< " Passed | " << Term(PASSED)
|
||||||
<< " Space | " << Term(SPACE)
|
<< " Space | " << Term(SPACE)
|
||||||
<< " Winnable | " << Term(WINNABLE)
|
<< " Winnable | " << Term(WINNABLE)
|
||||||
<< " ------------+-------------+-------------+------------\n"
|
<< " ------------+-------------+-------------+------------\n"
|
||||||
<< " Total | " << Term(TOTAL);
|
<< " Total | " << Term(TOTAL);
|
||||||
}
|
|
||||||
|
|
||||||
v = pos.side_to_move() == WHITE ? v : -v;
|
v = pos.side_to_move() == WHITE ? v : -v;
|
||||||
|
|
||||||
ss << "\nFinal evaluation: " << to_cp(v) << " (white side)\n";
|
ss << "\nClassical evaluation: " << to_cp(v) << " (white side)\n";
|
||||||
|
|
||||||
|
if (Eval::useNNUE)
|
||||||
|
{
|
||||||
|
v = NNUE::evaluate(pos);
|
||||||
|
v = pos.side_to_move() == WHITE ? v : -v;
|
||||||
|
ss << "\nNNUE evaluation: " << to_cp(v) << " (white side)\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
v = evaluate(pos);
|
||||||
|
v = pos.side_to_move() == WHITE ? v : -v;
|
||||||
|
ss << "\nFinal evaluation: " << to_cp(v) << " (white side)\n";
|
||||||
|
|
||||||
|
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue