X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=5b4913c3d3dcdbe733ec30c92e8f90f152843c7a;hp=8da12118d21979d3941e984743fb6f5e8794235c;hb=cdf1f23bc5770c5d9e109dd254dcc54eee383464;hpb=3f610e2b13340ca65d0f9d63aa0cb8da92e80117 diff --git a/src/search.cpp b/src/search.cpp index 8da12118..5b4913c3 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1148,7 +1148,8 @@ namespace { UndoInfo u; pos.do_null_move(u); - Value nullValue = -search(pos, ss, -(beta-1), depth-4*OnePly, ply+1, false, threadID); + int R = (depth > 7 ? 4 : 3); + Value nullValue = -search(pos, ss, -(beta-1), depth-R*OnePly, ply+1, false, threadID); pos.undo_null_move(u); if (nullValue >= beta) @@ -1468,6 +1469,18 @@ namespace { // Update transposition table TT.store(pos, value_to_tt(bestValue, ply), depth, MOVE_NONE, VALUE_TYPE_EXACT); + // 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 + { + // Wrong to update history when depth is <= 0 + + if (m != ss[ply].killer1) + { + ss[ply].killer2 = ss[ply].killer1; + ss[ply].killer1 = m; + } + } return bestValue; } @@ -2161,8 +2174,11 @@ namespace { H.success(pos.piece_on(move_from(m)), m, depth); for (int i = 0; i < moveCount - 1; i++) - if (ok_to_history(pos, movesSearched[i]) && m != movesSearched[i]) + { + assert(m != movesSearched[i]); + if (ok_to_history(pos, movesSearched[i])) H.failure(pos.piece_on(move_from(movesSearched[i])), movesSearched[i]); + } } // fail_high_ply_1() checks if some thread is currently resolving a fail