if (alpha >= beta)
return alpha;
}
+ else
+ thisThread->rootDelta = beta - alpha;
assert(0 <= ss->ply && ss->ply < MAX_PLY);
if ( !PvNode
&& depth < 9
&& eval - futility_margin(depth, improving) >= beta
- && eval < VALUE_KNOWN_WIN) // Do not return unproven wins
+ && eval < 15000) // 50% larger than VALUE_KNOWN_WIN, but smaller than TB wins.
return eval;
// Step 8. Null move search with verification search (~40 Elo)
&& bestMoveCount <= 3)
r--;
+ // Increases reduction for PvNodes that have small window
+ if (PvNode && beta - alpha < thisThread->rootDelta / 4)
+ r++;
+
// Decrease reduction if position is or has been on the PV
// and node is not likely to fail low. (~3 Elo)
if ( ss->ttPv