Small cleanups

closes https://github.com/official-stockfish/Stockfish/pull/2606

No functional change
This commit is contained in:
Joost VandeVondele
2020-04-12 20:30:08 +02:00
parent 195a4fec6d
commit f83cb95740
11 changed files with 48 additions and 54 deletions
+14 -11
View File
@@ -303,7 +303,7 @@ void MainThread::search() {
}
}
previousScore = bestThread->rootMoves[0].score;
bestPreviousScore = bestThread->rootMoves[0].score;
// Send again PV info if we have a new best thread
if (bestThread != this)
@@ -349,12 +349,12 @@ void Thread::search() {
if (mainThread)
{
if (mainThread->previousScore == VALUE_INFINITE)
if (mainThread->bestPreviousScore == VALUE_INFINITE)
for (int i=0; i<4; ++i)
mainThread->iterValue[i] = VALUE_ZERO;
else
for (int i=0; i<4; ++i)
mainThread->iterValue[i] = mainThread->previousScore;
mainThread->iterValue[i] = mainThread->bestPreviousScore;
}
size_t multiPV = Options["MultiPV"];
@@ -433,13 +433,13 @@ void Thread::search() {
// Reset aspiration window starting size
if (rootDepth >= 4)
{
Value previousScore = rootMoves[pvIdx].previousScore;
Value prev = rootMoves[pvIdx].previousScore;
delta = Value(21);
alpha = std::max(previousScore - delta,-VALUE_INFINITE);
beta = std::min(previousScore + delta, VALUE_INFINITE);
alpha = std::max(prev - delta,-VALUE_INFINITE);
beta = std::min(prev + delta, VALUE_INFINITE);
// Adjust contempt based on root move's previousScore (dynamic contempt)
int dct = ct + (102 - ct / 2) * previousScore / (abs(previousScore) + 157);
int dct = ct + (102 - ct / 2) * prev / (abs(prev) + 157);
contempt = (us == WHITE ? make_score(dct, dct / 2)
: -make_score(dct, dct / 2));
@@ -537,7 +537,7 @@ void Thread::search() {
&& !Threads.stop
&& !mainThread->stopOnPonderhit)
{
double fallingEval = (332 + 6 * (mainThread->previousScore - bestValue)
double fallingEval = (332 + 6 * (mainThread->bestPreviousScore - bestValue)
+ 6 * (mainThread->iterValue[iterIdx] - bestValue)) / 704.0;
fallingEval = Utility::clamp(fallingEval, 0.5, 1.5);
@@ -626,7 +626,7 @@ namespace {
Move ttMove, move, excludedMove, bestMove;
Depth extension, newDepth;
Value bestValue, value, ttValue, eval, maxValue;
bool ttHit, ttPv, inCheck, givesCheck, improving, didLMR, priorCapture;
bool ttHit, ttPv, formerPv, inCheck, givesCheck, improving, didLMR, priorCapture;
bool captureOrPromotion, doFullDepthSearch, moveCountPruning, ttCapture, singularLMR;
Piece movedPiece;
int moveCount, captureCount, quietCount;
@@ -696,6 +696,7 @@ namespace {
ttMove = rootNode ? thisThread->rootMoves[thisThread->pvIdx].pv[0]
: ttHit ? tte->move() : MOVE_NONE;
ttPv = PvNode || (ttHit && tte->is_pv());
formerPv = ttPv && !PvNode;
if (ttPv && depth > 12 && ss->ply - 1 < MAX_LPH && !pos.captured_piece() && is_ok((ss-1)->currentMove))
thisThread->lowPlyHistory[ss->ply - 1][from_to((ss-1)->currentMove)] << stat_bonus(depth - 5);
@@ -900,7 +901,8 @@ namespace {
&& depth >= 5
&& abs(beta) < VALUE_TB_WIN_IN_MAX_PLY)
{
Value raisedBeta = std::min(beta + 189 - 45 * improving, VALUE_INFINITE);
Value raisedBeta = beta + 189 - 45 * improving;
assert(raisedBeta < VALUE_INFINITE);
MovePicker mp(pos, ttMove, raisedBeta - ss->staticEval, &captureHistory);
int probCutCount = 0;
@@ -965,7 +967,6 @@ moves_loop: // When in check, search starts from here
value = bestValue;
singularLMR = moveCountPruning = false;
ttCapture = ttMove && pos.capture_or_promotion(ttMove);
bool formerPv = ttPv && !PvNode;
// Mark this node as being searched
ThreadHolding th(thisThread, posKey, ss->ply);
@@ -1039,11 +1040,13 @@ moves_loop: // When in check, search starts from here
}
else
{
// Capture history based pruning when the move doesn't give check
if ( !givesCheck
&& lmrDepth < 1
&& captureHistory[movedPiece][to_sq(move)][type_of(pos.piece_on(to_sq(move)))] < 0)
continue;
// See based pruning
if (!pos.see_ge(move, Value(-194) * depth)) // (~25 Elo)
continue;
}