X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fevaluate.cpp;h=7619398e01fcb9f334a519c92999f2c967e6b438;hb=39af98c807d236b6511b6e399caf40102398900c;hp=87412b81b0b141392ebbc7d700a560303e85d20c;hpb=d756d97a66cb18de182e018446b9149a5ff8ef18;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 87412b81..7619398e 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -1063,7 +1063,7 @@ Value Eval::evaluate(const Position& pos, int* complexity) { else { int nnueComplexity; - int scale = 1064 + 106 * pos.non_pawn_material() / 5120; + int scale = 1076 + 96 * pos.non_pawn_material() / 5120; Color stm = pos.side_to_move(); Value optimism = pos.this_thread()->optimism[stm]; @@ -1071,8 +1071,8 @@ Value Eval::evaluate(const Position& pos, int* complexity) { Value nnue = NNUE::evaluate(pos, true, &nnueComplexity); // Blend nnue complexity with (semi)classical complexity - nnueComplexity = ( 416 * nnueComplexity - + 424 * abs(psq - nnue) + nnueComplexity = ( 412 * nnueComplexity + + 428 * abs(psq - nnue) + (optimism > 0 ? int(optimism) * int(psq - nnue) : 0) ) / 1024; @@ -1080,18 +1080,18 @@ Value Eval::evaluate(const Position& pos, int* complexity) { if (complexity) *complexity = nnueComplexity; - optimism = optimism * (269 + nnueComplexity) / 256; - v = (nnue * scale + optimism * (scale - 754)) / 1024; + optimism = optimism * (278 + nnueComplexity) / 256; + v = (nnue * scale + optimism * (scale - 755)) / 1024; } // Damp down the evaluation linearly when shuffling - v = v * (195 - pos.rule50_count()) / 211; + v = v * (197 - pos.rule50_count()) / 214; // Guarantee evaluation does not hit the tablebase range v = std::clamp(v, VALUE_TB_LOSS_IN_MAX_PLY + 1, VALUE_TB_WIN_IN_MAX_PLY - 1); // When not using NNUE, return classical complexity to caller - if (complexity && (!useNNUE || useClassical)) + if (complexity && useClassical) *complexity = abs(v - psq); return v;