X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=b420fb905203770005d92c9725b27ae99c4b938f;hp=76a88643307aa4138c58415d8955f6bb147aed5d;hb=0eedf47661784f86c9b9c927d2d7b9ba51e551d6;hpb=989833205fb63de094c1f28e1c5f803bc8a917e4 diff --git a/src/search.cpp b/src/search.cpp index 76a88643..b420fb90 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -176,6 +176,9 @@ namespace { // and near frontier nodes. const Value FutilityMarginQS = Value(0x80); + // Each move futility margin is decreased + const Value IncrementalFutilityMargin = Value(0xA); + // Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply const Value FutilityMargins[12] = { Value(0x100), Value(0x120), Value(0x200), Value(0x220), Value(0x250), Value(0x270), // 4 ply 4.5 ply 5 ply 5.5 ply 6 ply 6.5 ply @@ -1260,7 +1263,7 @@ namespace { const TTEntry* tte; Move ttMove, move; Depth ext, newDepth; - Value approximateEval, nullValue, value, futilityValue; + Value approximateEval, nullValue, value, futilityValue, futilityValueScaled; bool isCheck, useFutilityPruning, singleReply, moveIsCheck, captureOrPromotion, dangerous; bool mateThreat = false; int moveCount = 0; @@ -1420,12 +1423,15 @@ namespace { { if (futilityValue == VALUE_NONE) futilityValue = evaluate(pos, ei, threadID) - + FutilityMargins[int(depth) - 2]; + + FutilityMargins[int(depth) - 2] + + 4*IncrementalFutilityMargin; + + futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin; - if (futilityValue < beta) + if (futilityValueScaled < beta) { - if (futilityValue > bestValue) - bestValue = futilityValue; + if (futilityValueScaled > bestValue) + bestValue = futilityValueScaled; continue; } }