if (ttCapture)
r++;
+ // Decrease reduction at PvNodes if bestvalue
+ // is vastly different from static evaluation
+ if (PvNode && !ss->inCheck && abs(ss->staticEval - bestValue) > 250)
+ r--;
+
ss->statScore = thisThread->mainHistory[us][from_to(move)]
+ (*contHist[0])[movedPiece][to_sq(move)]
+ (*contHist[1])[movedPiece][to_sq(move)]
// opponent move is probably good and the new position is added to the search tree.
if (bestValue <= alpha)
ss->ttPv = ss->ttPv || ((ss-1)->ttPv && depth > 3);
- // Otherwise, a counter move has been found and if the position is the last leaf
- // in the search tree, remove the position from the search tree.
- else if (depth > 3)
- ss->ttPv = ss->ttPv && (ss+1)->ttPv;
// Write gathered information in transposition table
if (!excludedMove && !(rootNode && thisThread->pvIdx))