Skip to content

Commit 232bf19

Browse files
peregrineshahinvondele
authored andcommitted
Simplify both position calls in useClassical
Simplify the use of classical evaluation when using default settings to only be dependent on piece count and decisive PSQ passed STC: https://tests.stockfishchess.org/tests/view/632d32a7006ef9eb96d86ce9 LLR: 2.96 (-2.94,2.94) <-1.75,0.25> Total: 108048 W: 28904 L: 28763 D: 50381 Ptnml(0-2): 383, 12060, 29006, 12183, 392 passed LTC: https://tests.stockfishchess.org/tests/view/632d705a006ef9eb96d87649 LLR: 2.93 (-2.94,2.94) <-1.75,0.25> Total: 76600 W: 20671 L: 20516 D: 35413 Ptnml(0-2): 34, 7533, 23023, 7664, 46 Inspired by sorais, credit to him. closes #4177 bench 4173163
1 parent 4339a75 commit 232bf19

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/evaluate.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,12 +1054,10 @@ Value Eval::evaluate(const Position& pos, int* complexity) {
10541054
Color stm = pos.side_to_move();
10551055
Value psq = pos.psq_eg_stm();
10561056

1057-
// Deciding between classical and NNUE eval: for high PSQ imbalance we use classical,
1058-
// but we switch to NNUE during long shuffling or with high material on the board.
1059-
bool useClassical = !useNNUE ||
1060-
((pos.count<ALL_PIECES>() > 7)
1061-
&& abs(psq) * 5 > (856 + pos.non_pawn_material() / 64) * (10 + pos.rule50_count()));
1062-
1057+
// We use the much less accurate but faster Classical eval when the NNUE
1058+
// option is set to false. Otherwise we use the NNUE eval unless the
1059+
// PSQ advantage is decisive and several pieces remain (~3 Elo)
1060+
bool useClassical = !useNNUE || (pos.count<ALL_PIECES>() > 7 && abs(psq) > 1760);
10631061
if (useClassical)
10641062
v = Evaluation<NO_TRACE>(pos).value();
10651063
else

0 commit comments

Comments
 (0)