Reformat Eval::evaluate()
Non functional simplification: the goal of this patch is to make the style in the evaluate() function similar to the rest of the code. passed STC: LLR: 2.94 (-2.94,2.94) <-2.50,0.50> Total: 95608 W: 24058 L: 24026 D: 47524 Ptnml(0-2): 292, 10379, 26396, 10479, 258 https://tests.stockfishchess.org/tests/view/616c64fd99b580bf37797e4f closes https://github.com/official-stockfish/Stockfish/pull/3744 Non-functional changepull/3746/head
parent
8a74c08928
commit
f7494961de
|
@ -1081,33 +1081,22 @@ Value Eval::evaluate(const Position& pos) {
|
|||
|
||||
Value v;
|
||||
|
||||
if (!useNNUE)
|
||||
v = Evaluation<NO_TRACE>(pos).value();
|
||||
// Deciding between classical and NNUE eval: for high PSQ imbalance we use classical,
|
||||
// but we switch to NNUE during long shuffling or with high material on the board.
|
||||
|
||||
if ( !useNNUE
|
||||
|| abs(eg_value(pos.psq_score())) * 5 > (850 + pos.non_pawn_material() / 64) * (5 + pos.rule50_count()))
|
||||
v = Evaluation<NO_TRACE>(pos).value(); // classical
|
||||
else
|
||||
{
|
||||
// Scale and shift NNUE for compatibility with search and classical evaluation
|
||||
auto adjusted_NNUE = [&]()
|
||||
{
|
||||
int scale = 883
|
||||
+ 32 * pos.count<PAWN>()
|
||||
+ 32 * pos.non_pawn_material() / 1024;
|
||||
int scale = 883
|
||||
+ 32 * pos.count<PAWN>()
|
||||
+ 32 * pos.non_pawn_material() / 1024;
|
||||
|
||||
Value nnue = NNUE::evaluate(pos, true) * scale / 1024;
|
||||
v = NNUE::evaluate(pos, true) * scale / 1024; // NNUE
|
||||
|
||||
if (pos.is_chess960())
|
||||
nnue += fix_FRC(pos);
|
||||
|
||||
return nnue;
|
||||
};
|
||||
|
||||
// If there is PSQ imbalance we use the classical eval, but we switch to
|
||||
// NNUE eval faster when shuffling or if the material on the board is high.
|
||||
int r50 = pos.rule50_count();
|
||||
Value psq = Value(abs(eg_value(pos.psq_score())));
|
||||
bool classical = psq * 5 > (850 + pos.non_pawn_material() / 64) * (5 + r50);
|
||||
|
||||
v = classical ? Evaluation<NO_TRACE>(pos).value() // classical
|
||||
: adjusted_NNUE(); // NNUE
|
||||
if (pos.is_chess960())
|
||||
v += fix_FRC(pos);
|
||||
}
|
||||
|
||||
// Damp down the evaluation linearly when shuffling
|
||||
|
|
Loading…
Reference in New Issue