1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Enable futility pruning for PV nodes in qsearch

STC:

LLR: 4.20 (-2.94,2.94) [-3.00,1.00]
Total: 85573 W: 17195 L: 17125 D: 51253

LTC:

LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 43385 W: 7298 L: 7214 D: 28873

Bench: 8080602

Resolves #206
This commit is contained in:
lucasart 2015-01-14 20:18:41 +00:00 committed by Joona Kiiski
parent 4abe333e1f
commit ab276357d7

View file

@ -1209,8 +1209,7 @@ moves_loop: // When in check and at SpNode search starts from here
: pos.gives_check(move, ci);
// Futility pruning
if ( !PvNode
&& !InCheck
if ( !InCheck
&& !givesCheck
&& futilityBase > -VALUE_KNOWN_WIN
&& !pos.advanced_pawn_push(move))
@ -1219,13 +1218,13 @@ moves_loop: // When in check and at SpNode search starts from here
futilityValue = futilityBase + PieceValue[EG][pos.piece_on(to_sq(move))];
if (futilityValue < beta)
if (futilityValue <= alpha)
{
bestValue = std::max(bestValue, futilityValue);
continue;
}
if (futilityBase < beta && pos.see(move) <= VALUE_ZERO)
if (futilityBase <= alpha && pos.see(move) <= VALUE_ZERO)
{
bestValue = std::max(bestValue, futilityBase);
continue;
@ -1239,8 +1238,7 @@ moves_loop: // When in check and at SpNode search starts from here
&& !pos.can_castle(pos.side_to_move());
// Don't search moves with negative SEE values
if ( !PvNode
&& (!InCheck || evasionPrunable)
if ( (!InCheck || evasionPrunable)
&& type_of(move) != PROMOTION
&& pos.see_sign(move) < VALUE_ZERO)
continue;