Skip to content

Commit

Permalink
tweak
Browse files Browse the repository at this point in the history
  • Loading branch information
lonfom169 committed Dec 14, 2022
1 parent 7cf93f8 commit 794afee
Showing 1 changed file with 46 additions and 46 deletions.
92 changes: 46 additions & 46 deletions src/search.cpp
Expand Up @@ -1121,62 +1121,62 @@ namespace {
// Step 16. Make the move
pos.do_move(move, st, givesCheck);

// Step 17. Late moves reduction / extension (LMR, ~98 Elo)
// We use various heuristics for the sons of a node after the first son has
// been searched. In general we would like to reduce them, but there are many
// cases where we extend a son if it has good chances to be "interesting".
if ( depth >= 2
&& moveCount > 1 + (PvNode && ss->ply <= 1)
&& ( !ss->ttPv
|| !capture
|| (cutNode && (ss-1)->moveCount > 1)))
{
Depth r = reduction(improving, depth, moveCount, delta, thisThread->rootDelta);
Depth r = reduction(improving, depth, moveCount, delta, thisThread->rootDelta);

// Decrease reduction if position is or has been on the PV
// and node is not likely to fail low. (~3 Elo)
if ( ss->ttPv
&& !likelyFailLow)
r -= 2;
// Decrease reduction if position is or has been on the PV
// and node is not likely to fail low. (~3 Elo)
if ( ss->ttPv
&& !likelyFailLow)
r -= 2;

// Decrease reduction if opponent's move count is high (~1 Elo)
if ((ss-1)->moveCount > 7)
r--;
// Decrease reduction if opponent's move count is high (~1 Elo)
if ((ss-1)->moveCount > 7)
r--;

// Increase reduction for cut nodes (~3 Elo)
if (cutNode)
r += 2;
// Increase reduction for cut nodes (~3 Elo)
if (cutNode)
r += 2;

// Increase reduction if ttMove is a capture (~3 Elo)
if (ttCapture)
r++;
// Increase reduction if ttMove is a capture (~3 Elo)
if (ttCapture)
r++;

// Decrease reduction for PvNodes based on depth
if (PvNode)
r -= 1 + 11 / (3 + depth);
// Decrease reduction for PvNodes based on depth
if (PvNode)
r -= 1 + 11 / (3 + depth);

// Decrease reduction if ttMove has been singularly extended (~1 Elo)
if (singularQuietLMR)
r--;
// Decrease reduction if ttMove has been singularly extended (~1 Elo)
if (singularQuietLMR)
r--;

// Decrease reduction if we move a threatened piece (~1 Elo)
if ( depth > 9
&& (mp.threatenedPieces & from_sq(move)))
r--;
// Decrease reduction if we move a threatened piece (~1 Elo)
if ( depth > 9
&& (mp.threatenedPieces & from_sq(move)))
r--;

// Increase reduction if next ply has a lot of fail high
if ((ss+1)->cutoffCnt > 3)
r++;
// Increase reduction if next ply has a lot of fail high
if ((ss+1)->cutoffCnt > 3)
r++;

ss->statScore = 2 * thisThread->mainHistory[us][from_to(move)]
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
+ (*contHist[3])[movedPiece][to_sq(move)]
- 4433;
ss->statScore = 2 * thisThread->mainHistory[us][from_to(move)]
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
+ (*contHist[3])[movedPiece][to_sq(move)]
- 4433;

// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
r -= ss->statScore / (13628 + 4000 * (depth > 7 && depth < 19));
// Decrease/increase reduction for moves with a good/bad history (~30 Elo)
r -= ss->statScore / (13628 + 4000 * (depth > 7 && depth < 19));

// Step 17. Late moves reduction / extension (LMR, ~98 Elo)
// We use various heuristics for the sons of a node after the first son has
// been searched. In general we would like to reduce them, but there are many
// cases where we extend a son if it has good chances to be "interesting".
if ( depth >= 2
&& moveCount > 1 + (PvNode && ss->ply <= 1)
&& ( !ss->ttPv
|| !capture
|| (cutNode && (ss-1)->moveCount > 1)))
{
// In general we want to cap the LMR depth search at newDepth, but when
// reduction is negative, we allow this move a limited search extension
// beyond the first move depth. This may lead to hidden double extensions.
Expand Down Expand Up @@ -1210,7 +1210,7 @@ namespace {
// Step 18. Full depth search when LMR is skipped
else if (!PvNode || moveCount > 1)
{
value = -search<NonPV>(pos, ss+1, -(alpha+1), -alpha, newDepth, !cutNode);
value = -search<NonPV>(pos, ss+1, -(alpha+1), -alpha, newDepth - (r > 4), !cutNode);
}

// For PV nodes only, do a full PV search on the first move or after a fail
Expand Down

0 comments on commit 794afee

Please sign in to comment.