From 984ee9d05b6b1916e564047b2a0b8f117f911bca Mon Sep 17 00:00:00 2001 From: Lucas Braesch Date: Mon, 7 Oct 2013 09:10:48 +0200 Subject: [PATCH] Use TT refined value to stand pat Passed both short TC: LLR: 2.95 (-2.94,2.94) [-1.50,4.50] Total: 17811 W: 3520 L: 3366 D: 10925 And long TC: LLR: 2.95 (-2.94,2.94) [0.00,6.00] Total: 30255 W: 5070 L: 4825 D: 20360 bench: 8340585 --- src/search.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index e56b2c7f..4683a006 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1188,6 +1188,11 @@ moves_loop: // When in check and at SpNode search starts from here if ( (ss->staticEval = bestValue = tte->eval_value()) == VALUE_NONE ||(ss->evalMargin = tte->eval_margin()) == VALUE_NONE) ss->staticEval = bestValue = evaluate(pos, ss->evalMargin); + + // Can ttValue be used as a better position evaluation? + if (ttValue != VALUE_NONE) + if (tte->bound() & (ttValue > bestValue ? BOUND_LOWER : BOUND_UPPER)) + bestValue = ttValue; } else ss->staticEval = bestValue = evaluate(pos, ss->evalMargin); @@ -1205,7 +1210,7 @@ moves_loop: // When in check and at SpNode search starts from here if (PvNode && bestValue > alpha) alpha = bestValue; - futilityBase = ss->staticEval + ss->evalMargin + Value(128); + futilityBase = bestValue + ss->evalMargin + Value(128); } // Initialize a MovePicker object for the current position, and prepare -- 2.39.2