From: Marco Costalba Date: Fri, 27 Mar 2009 14:30:45 +0000 (+0100) Subject: Revert storing of TT when returning from "stand pat" X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=dcdac83187f44b14893ea261abd647c829d32c2b;hp=5a0581498cde3d0904924d8ef7ed25ea1a2c855a Revert storing of TT when returning from "stand pat" After testing it seems patch is bad: After 999 games 1+0: +242 -271 =486 -10 ELO So restore saving of TT at the end but using new Joona idea of storing as VALUE_TYPE_UPPER/VALUE_TYPE_LOWER instead of VALUE_TYPE_EXACT. Some optimization is still possible but better test new ideas one by one. Signed-off-by: Marco Costalba --- diff --git a/src/search.cpp b/src/search.cpp index 3617853e..434587a8 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1475,15 +1475,12 @@ namespace { Value bestValue = staticValue; if (bestValue >= beta) - { - // Update transposition table before to leave - TT.store(pos, value_to_tt(bestValue, ply), depth, MOVE_NONE, VALUE_TYPE_EXACT); - return bestValue; - } - else if (!isCheck && !tte && ei.futilityMargin == 0) { // Store the score to avoid a future costly evaluation() call - TT.store(pos, value_to_tt(bestValue, ply), Depth(-127*OnePly), MOVE_NONE, VALUE_TYPE_EVAL); + if (!isCheck && !tte && ei.futilityMargin == 0) + TT.store(pos, value_to_tt(bestValue, ply), Depth(-127*OnePly), MOVE_NONE, VALUE_TYPE_EVAL); + + return bestValue; } if (bestValue > alpha) @@ -1568,6 +1565,16 @@ namespace { assert(bestValue > -VALUE_INFINITE && bestValue < VALUE_INFINITE); + // Update transposition table + if (!pvNode) + { + Depth d = (depth == Depth(0) ? Depth(0) : Depth(-1)); + if (bestValue < beta) + TT.store(pos, value_to_tt(bestValue, ply), d, MOVE_NONE, VALUE_TYPE_UPPER); + else + TT.store(pos, value_to_tt(bestValue, ply), d, MOVE_NONE, VALUE_TYPE_LOWER); + } + // Update killers only for good check moves Move m = ss[ply].currentMove; if (alpha >= beta && ok_to_history(pos, m)) // Only non capture moves are considered