mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 01:03:09 +00:00
Rename Tracing methods
Easier to understand and more in line with standard Trace classes naming like: http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.aspx No functional change.
This commit is contained in:
parent
907f912463
commit
89d9db2979
1 changed files with 37 additions and 34 deletions
|
@ -79,13 +79,14 @@ namespace {
|
||||||
MATERIAL = 8, IMBALANCE, MOBILITY, THREAT, PASSED, SPACE, TOTAL, TERMS_NB
|
MATERIAL = 8, IMBALANCE, MOBILITY, THREAT, PASSED, SPACE, TOTAL, TERMS_NB
|
||||||
};
|
};
|
||||||
|
|
||||||
Score terms[COLOR_NB][TERMS_NB];
|
Score scores[COLOR_NB][TERMS_NB];
|
||||||
EvalInfo ei;
|
EvalInfo ei;
|
||||||
ScaleFactor sf;
|
ScaleFactor sf;
|
||||||
|
|
||||||
double to_cp(Value v);
|
double to_cp(Value v);
|
||||||
void add_term(int idx, Score term_w, Score term_b = SCORE_ZERO);
|
void write(int idx, Color c, Score s);
|
||||||
void format_row(std::stringstream& ss, const char* name, int idx);
|
void write(int idx, Score w, Score b = SCORE_ZERO);
|
||||||
|
void print(std::stringstream& ss, const char* name, int idx);
|
||||||
std::string do_trace(const Position& pos);
|
std::string do_trace(const Position& pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,7 +371,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Trace)
|
if (Trace)
|
||||||
Tracing::terms[Us][Pt] = score;
|
Tracing::write(Pt, Us, score);
|
||||||
|
|
||||||
return score - evaluate_pieces<NextPt, Them, Trace>(pos, ei, mobility, mobilityArea);
|
return score - evaluate_pieces<NextPt, Them, Trace>(pos, ei, mobility, mobilityArea);
|
||||||
}
|
}
|
||||||
|
@ -484,7 +485,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Trace)
|
if (Trace)
|
||||||
Tracing::terms[Us][KING] = score;
|
Tracing::write(KING, Us, score);
|
||||||
|
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
@ -536,7 +537,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Trace)
|
if (Trace)
|
||||||
Tracing::terms[Us][Tracing::THREAT] = score;
|
Tracing::write(Tracing::THREAT, Us, score);
|
||||||
|
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
@ -619,7 +620,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Trace)
|
if (Trace)
|
||||||
Tracing::terms[Us][Tracing::PASSED] = apply_weight(score, Weights[PassedPawns]);
|
Tracing::write(Tracing::PASSED, Us, apply_weight(score, Weights[PassedPawns]));
|
||||||
|
|
||||||
// Add the scores to the middlegame and endgame eval
|
// Add the scores to the middlegame and endgame eval
|
||||||
return apply_weight(score, Weights[PassedPawns]);
|
return apply_weight(score, Weights[PassedPawns]);
|
||||||
|
@ -780,15 +781,15 @@ namespace {
|
||||||
// In case of tracing add all single evaluation contributions for both white and black
|
// In case of tracing add all single evaluation contributions for both white and black
|
||||||
if (Trace)
|
if (Trace)
|
||||||
{
|
{
|
||||||
Tracing::add_term(Tracing::MATERIAL, pos.psq_score());
|
Tracing::write(Tracing::MATERIAL, pos.psq_score());
|
||||||
Tracing::add_term(Tracing::IMBALANCE, ei.mi->material_value());
|
Tracing::write(Tracing::IMBALANCE, ei.mi->material_value());
|
||||||
Tracing::add_term(PAWN, ei.pi->pawns_value());
|
Tracing::write(PAWN, ei.pi->pawns_value());
|
||||||
Tracing::add_term(Tracing::MOBILITY, apply_weight(mobility[WHITE], Weights[Mobility])
|
Tracing::write(Tracing::MOBILITY, apply_weight(mobility[WHITE], Weights[Mobility])
|
||||||
, apply_weight(mobility[BLACK], Weights[Mobility]));
|
, apply_weight(mobility[BLACK], Weights[Mobility]));
|
||||||
Score w = ei.mi->space_weight() * evaluate_space<WHITE>(pos, ei);
|
Score w = ei.mi->space_weight() * evaluate_space<WHITE>(pos, ei);
|
||||||
Score b = ei.mi->space_weight() * evaluate_space<BLACK>(pos, ei);
|
Score b = ei.mi->space_weight() * evaluate_space<BLACK>(pos, ei);
|
||||||
Tracing::add_term(Tracing::SPACE, apply_weight(w, Weights[Space]), apply_weight(b, Weights[Space]));
|
Tracing::write(Tracing::SPACE, apply_weight(w, Weights[Space]), apply_weight(b, Weights[Space]));
|
||||||
Tracing::add_term(Tracing::TOTAL, score);
|
Tracing::write(Tracing::TOTAL, score);
|
||||||
Tracing::ei = ei;
|
Tracing::ei = ei;
|
||||||
Tracing::sf = sf;
|
Tracing::sf = sf;
|
||||||
}
|
}
|
||||||
|
@ -801,16 +802,18 @@ namespace {
|
||||||
|
|
||||||
double Tracing::to_cp(Value v) { return double(v) / PawnValueEg; }
|
double Tracing::to_cp(Value v) { return double(v) / PawnValueEg; }
|
||||||
|
|
||||||
void Tracing::add_term(int idx, Score wScore, Score bScore) {
|
void Tracing::write(int idx, Color c, Score s) { scores[c][idx] = s; }
|
||||||
|
|
||||||
terms[WHITE][idx] = wScore;
|
void Tracing::write(int idx, Score w, Score b) {
|
||||||
terms[BLACK][idx] = bScore;
|
|
||||||
|
write(idx, WHITE, w);
|
||||||
|
write(idx, BLACK, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Tracing::format_row(std::stringstream& ss, const char* name, int idx) {
|
void Tracing::print(std::stringstream& ss, const char* name, int idx) {
|
||||||
|
|
||||||
Score wScore = terms[WHITE][idx];
|
Score wScore = scores[WHITE][idx];
|
||||||
Score bScore = terms[BLACK][idx];
|
Score bScore = scores[BLACK][idx];
|
||||||
|
|
||||||
switch (idx) {
|
switch (idx) {
|
||||||
case MATERIAL: case IMBALANCE: case PAWN: case TOTAL:
|
case MATERIAL: case IMBALANCE: case PAWN: case TOTAL:
|
||||||
|
@ -831,7 +834,7 @@ namespace {
|
||||||
|
|
||||||
std::string Tracing::do_trace(const Position& pos) {
|
std::string Tracing::do_trace(const Position& pos) {
|
||||||
|
|
||||||
std::memset(terms, 0, sizeof(terms));
|
std::memset(scores, 0, sizeof(scores));
|
||||||
|
|
||||||
Value v = do_evaluate<true>(pos);
|
Value v = do_evaluate<true>(pos);
|
||||||
v = pos.side_to_move() == WHITE ? v : -v; // White's point of view
|
v = pos.side_to_move() == WHITE ? v : -v; // White's point of view
|
||||||
|
@ -842,21 +845,21 @@ namespace {
|
||||||
<< " | MG EG | MG EG | MG EG \n"
|
<< " | MG EG | MG EG | MG EG \n"
|
||||||
<< "----------------+-------------+-------------+-------------\n";
|
<< "----------------+-------------+-------------+-------------\n";
|
||||||
|
|
||||||
format_row(ss, "Material", MATERIAL);
|
print(ss, "Material", MATERIAL);
|
||||||
format_row(ss, "Imbalance", IMBALANCE);
|
print(ss, "Imbalance", IMBALANCE);
|
||||||
format_row(ss, "Pawns", PAWN);
|
print(ss, "Pawns", PAWN);
|
||||||
format_row(ss, "Knights", KNIGHT);
|
print(ss, "Knights", KNIGHT);
|
||||||
format_row(ss, "Bishops", BISHOP);
|
print(ss, "Bishops", BISHOP);
|
||||||
format_row(ss, "Rooks", ROOK);
|
print(ss, "Rooks", ROOK);
|
||||||
format_row(ss, "Queens", QUEEN);
|
print(ss, "Queens", QUEEN);
|
||||||
format_row(ss, "Mobility", MOBILITY);
|
print(ss, "Mobility", MOBILITY);
|
||||||
format_row(ss, "King safety", KING);
|
print(ss, "King safety", KING);
|
||||||
format_row(ss, "Threats", THREAT);
|
print(ss, "Threats", THREAT);
|
||||||
format_row(ss, "Passed pawns", PASSED);
|
print(ss, "Passed pawns", PASSED);
|
||||||
format_row(ss, "Space", SPACE);
|
print(ss, "Space", SPACE);
|
||||||
|
|
||||||
ss << "----------------+-------------+-------------+-------------\n";
|
ss << "----------------+-------------+-------------+-------------\n";
|
||||||
format_row(ss, "Total", TOTAL);
|
print(ss, "Total", TOTAL);
|
||||||
|
|
||||||
ss << "\nTotal Evaluation: " << to_cp(v) << " (white side)\n";
|
ss << "\nTotal Evaluation: " << to_cp(v) << " (white side)\n";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue