From 93f95cc936690a1b2637670bb22d138295eb5214 Mon Sep 17 00:00:00 2001 From: Uri Blass Date: Mon, 27 Jan 2014 20:08:31 +0100 Subject: [PATCH 1/1] Reduce VALUE_KNOWN_WIN to 10000 With some positions like 8/8/8/2p2K2/1pp5/br1p1b2/2p2r2/qqkqq3 w - - The eval score is higher than VALUE_INFINITE because is the sum of VALUE_KNOWN_WIN plus a big material advantage. This leads to an assert. Here are the steps to reproduce: Compile SF with debug=yes then do ./stockfish position fen 8/8/8/2p2K2/1pp5/br1p1b2/2p2r2/qqkqq3 w - - go depth 1 This patch fixes the issue in this case, but do exsist other positions for which the patch is not enough and we will need to limit the eval score to be sure not overflow the limit. Note that is not possible to increase the value of VALUE_INFINITE because should remain within int16_t type to be stored in a TT entry. bench: 7356053 --- src/types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types.h b/src/types.h index 6d558de9..cae315a1 100644 --- a/src/types.h +++ b/src/types.h @@ -155,7 +155,7 @@ enum Bound { enum Value { VALUE_ZERO = 0, VALUE_DRAW = 0, - VALUE_KNOWN_WIN = 15000, + VALUE_KNOWN_WIN = 10000, VALUE_MATE = 30000, VALUE_INFINITE = 30001, VALUE_NONE = 30002, -- 2.39.2