X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=387c92b01acc2021b2103aaa9b78bfafff281108;hb=74203e181d3cbd3ad38125062ee023b842ed0151;hp=c13431bc9721d418b1eabded12b677df2bb7ba23;hpb=7ae16a193b2c9272e8e9aab9783d8c750e3bbf9a;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index c13431bc..387c92b0 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -164,8 +164,8 @@ namespace { int32_t FutilityMarginsMatrix[14][64]; // [depth][moveNumber] int FutilityMoveCountArray[32]; // [depth] - inline Value futility_margin(Depth d, int mn) { return (Value) (d < 14? FutilityMarginsMatrix[Max(d, 0)][Min(mn, 63)] : 2*VALUE_INFINITE); } - inline int futility_move_count(Depth d) { return (d < 32? FutilityMoveCountArray[d] : 512); } + inline Value futility_margin(Depth d, int mn) { return Value(d < 7*OnePly ? FutilityMarginsMatrix[Max(d, 0)][Min(mn, 63)] : 2 * VALUE_INFINITE); } + inline int futility_move_count(Depth d) { return d < 16*OnePly ? FutilityMoveCountArray[d] : 512; } /// Variables initialized by UCI options @@ -527,8 +527,7 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move, } -/// init_search() is called during startup. It initializes various -/// lookup tables. +/// init_search() is called during startup. It initializes various lookup tables void init_search() { @@ -654,7 +653,6 @@ void SearchStack::init(int ply) { currentMove = threatMove = MOVE_NONE; reduction = Depth(0); eval = VALUE_NONE; - evalInfo = NULL; } void SearchStack::initKillers() { @@ -1387,10 +1385,7 @@ namespace { if (tte && (tte->type() & VALUE_TYPE_EVAL)) staticValue = value_from_tt(tte->value(), ply); else - { staticValue = evaluate(pos, ei, threadID); - ss[ply].evalInfo = &ei; - } ss[ply].eval = staticValue; futilityValue = staticValue + futility_margin(depth, 0); //FIXME: Remove me, only for split @@ -1544,7 +1539,8 @@ namespace { // Value based pruning Depth predictedDepth = newDepth - nonpv_reduction(depth, moveCount); //FIXME: We are ignoring condition: depth >= 3*OnePly, BUG?? - futilityValueScaled = ss[ply].eval + futility_margin(predictedDepth, moveCount) + H.gain(pos.piece_on(move_from(move)), move_to(move)) + 45; + futilityValueScaled = ss[ply].eval + futility_margin(predictedDepth, moveCount) + + H.gain(pos.piece_on(move_from(move)), move_to(move)) + 45; if (futilityValueScaled < beta) {