X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fevaluate.cpp;h=0657088f19c936a66872b23e528518861a60f139;hb=232bf19be43117cdecea054c9a825735f0b47842;hp=eaad4d556722cb0b2f99d8e0984865f2c549f8c1;hpb=4339a756ac0a97563442ee4fb67694a5dfc66da4;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index eaad4d55..0657088f 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -1054,12 +1054,10 @@ Value Eval::evaluate(const Position& pos, int* complexity) { Color stm = pos.side_to_move(); Value psq = pos.psq_eg_stm(); - // 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. - bool useClassical = !useNNUE || - ((pos.count() > 7) - && abs(psq) * 5 > (856 + pos.non_pawn_material() / 64) * (10 + pos.rule50_count())); - + // We use the much less accurate but faster Classical eval when the NNUE + // option is set to false. Otherwise we use the NNUE eval unless the + // PSQ advantage is decisive and several pieces remain (~3 Elo) + bool useClassical = !useNNUE || (pos.count() > 7 && abs(psq) > 1760); if (useClassical) v = Evaluation(pos).value(); else