1
0
Fork 0

Merge Lucas's "SEE pruning at PV nodes"

bench: 4922272
sf_3_base
Marco Costalba 2013-02-27 08:10:24 +01:00
commit 57b6df4874
1 changed files with 5 additions and 7 deletions

View File

@ -857,16 +857,14 @@ split_point_start: // At split points actual search starts from here
newDepth = depth - ONE_PLY + ext;
// Step 13. Futility pruning (is omitted in PV nodes)
if ( !PvNode
&& !captureOrPromotion
if ( !captureOrPromotion
&& !inCheck
&& !dangerous
&& move != ttMove
&& (bestValue > VALUE_MATED_IN_MAX_PLY || ( bestValue == -VALUE_INFINITE
&& alpha > VALUE_MATED_IN_MAX_PLY)))
&& move != ttMove)
{
// Move count based pruning
if ( depth < 16 * ONE_PLY
if ( !PvNode
&& depth < 16 * ONE_PLY
&& moveCount >= FutilityMoveCounts[depth]
&& (!threatMove || !refutes(pos, move, threatMove)))
{
@ -883,7 +881,7 @@ split_point_start: // At split points actual search starts from here
futilityValue = ss->staticEval + ss->evalMargin + futility_margin(predictedDepth, moveCount)
+ Gain[pos.piece_moved(move)][to_sq(move)];
if (futilityValue < beta)
if (!PvNode && futilityValue < beta)
{
if (SpNode)
sp->mutex.lock();