switch (idx) {
case PST: case IMBALANCE: case PAWN: case TOTAL:
ss << std::setw(20) << name << " | --- --- | --- --- | "
- << std::setw(6) << to_cp(mg_value(wScore - bScore)) << " "
- << std::setw(6) << to_cp(eg_value(wScore - bScore)) << " \n";
+ << std::setw(5) << to_cp(mg_value(wScore - bScore)) << " "
+ << std::setw(5) << to_cp(eg_value(wScore - bScore)) << " \n";
break;
default:
ss << std::setw(20) << name << " | " << std::noshowpos
<< std::setw(5) << to_cp(eg_value(wScore)) << " | "
<< std::setw(5) << to_cp(mg_value(bScore)) << " "
<< std::setw(5) << to_cp(eg_value(bScore)) << " | "
- << std::showpos
- << std::setw(6) << to_cp(mg_value(wScore - bScore)) << " "
- << std::setw(6) << to_cp(eg_value(wScore - bScore)) << " \n";
+ << std::setw(5) << to_cp(mg_value(wScore - bScore)) << " "
+ << std::setw(5) << to_cp(eg_value(wScore - bScore)) << " \n";
}
}
std::memset(terms, 0, sizeof(terms));
Value v = do_evaluate<true>(pos);
+ v = pos.side_to_move() == WHITE ? v : -v; // White's point of view
std::stringstream ss;
- ss << std::showpoint << std::showpos << std::fixed << std::setprecision(2)
- << " Eval term | White | Black | Total \n"
- << " | MG EG | MG EG | MG EG \n"
- << "---------------------+-------------+-------------+---------------\n";
+ ss << std::showpoint << std::noshowpos << std::fixed << std::setprecision(2)
+ << " Eval term | White | Black | Total \n"
+ << " | MG EG | MG EG | MG EG \n"
+ << "---------------------+-------------+-------------+-------------\n";
format_row(ss, "Material, PST, Tempo", PST);
format_row(ss, "Material imbalance", IMBALANCE);
format_row(ss, "Passed pawns", PASSED);
format_row(ss, "Space", SPACE);
- ss << "---------------------+-------------+-------------+---------------\n";
+ ss << "---------------------+-------------+-------------+-------------\n";
format_row(ss, "Total", TOTAL);
- ss << "\nScaling: " << std::noshowpos
- << std::setw(6) << 100.0 * ei.mi->game_phase() / 128.0 << "% MG, "
- << std::setw(6) << 100.0 * (1.0 - ei.mi->game_phase() / 128.0) << "% * "
- << std::setw(6) << (100.0 * sf) / SCALE_FACTOR_NORMAL << "% EG.\n"
- << "Total evaluation: " << to_cp(v);
+ ss << "\nTotal Evaluation: " << to_cp(v) << " (white side)\n";
return ss.str();
}