X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=8a6105711aae2720c112371c7f6ca3b2cf9a9532;hp=15f870f5129c72916189a048d620825d3ace4c27;hb=d4cb80b2106efb58db87495090a3898d902075d6;hpb=a64d524d026bc78e4779fa3249649271d905df2d diff --git a/src/search.cpp b/src/search.cpp index 15f870f5..8a610571 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -379,7 +379,7 @@ void Thread::search() { beta = std::min(previousScore + delta, VALUE_INFINITE); // Adjust contempt based on root move's previousScore (dynamic contempt) - int dct = ct + int(std::round(48 * atan(float(previousScore) / 128))); + int dct = ct + 88 * previousScore / (abs(previousScore) + 200); contempt = (us == WHITE ? make_score(dct, dct / 2) : -make_score(dct, dct / 2)); @@ -818,9 +818,8 @@ namespace { } // Step 11. Internal iterative deepening (skipped when in check, ~2 Elo) - if ( depth >= 6 * ONE_PLY - && !ttMove - && (PvNode || ss->staticEval + 128 >= beta)) + if ( depth >= 8 * ONE_PLY + && !ttMove) { Depth d = 3 * depth / 4 - 2 * ONE_PLY; search(pos, ss, alpha, beta, d, cutNode, true); @@ -835,7 +834,11 @@ moves_loop: // When in check, search starts from here const PieceToHistory* contHist[] = { (ss-1)->contHistory, (ss-2)->contHistory, nullptr, (ss-4)->contHistory }; Move countermove = thisThread->counterMoves[pos.piece_on(prevSq)][prevSq]; - MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory, &thisThread->captureHistory, contHist, countermove, ss->killers); + MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory, + &thisThread->captureHistory, + contHist, + countermove, + ss->killers); value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc skipQuiets = false; @@ -1275,7 +1278,9 @@ moves_loop: // When in check, search starts from here // to search the moves. Because the depth is <= 0 here, only captures, // queen promotions and checks (only if depth >= DEPTH_QS_CHECKS) will // be generated. - MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory, &pos.this_thread()->captureHistory, to_sq((ss-1)->currentMove)); + MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory, + &pos.this_thread()->captureHistory, + to_sq((ss-1)->currentMove)); // Loop through the moves until no moves remain or a beta cutoff occurs while ((move = mp.next_move()) != MOVE_NONE)