only the extension part of the shuffle patch is sufficient to
pass [0,3.5] bounds at VLTC as shown by two more tests.
http://tests.stockfishchess.org/tests/view/
5cc168bc0ebc5925cf02bda8
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 120684 W: 17875 L: 17400 D: 85409
http://tests.stockfishchess.org/tests/view/
5cc14d510ebc5925cf02bcb5
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 68415 W: 10250 L: 9905 D: 48260
this patch proposes to simplify back to this basic and easier to
understand version. In case there is a need to run a [-3, 1] VLTC on
this one, it can be done, but it is resource intensive, and not needed
IMO.
Bench:
3388643
: ttHit ? tte->move() : MOVE_NONE;
ttPv = (ttHit && tte->is_pv()) || (PvNode && depth > 4 * ONE_PLY);
- // If position has been searched at higher depths and we are shuffling,
- // return value_draw.
- if ( pos.rule50_count() > 36 - 6 * (pos.count<ALL_PIECES>() > 14)
- && ss->ply > 36 - 6 * (pos.count<ALL_PIECES>() > 14)
- && ttHit
- && tte->depth() > depth
- && pos.count<PAWN>() > 0)
- return VALUE_DRAW;
-
// At non-PV nodes we check for an early TT cutoff
if ( !PvNode
&& ttHit
// Shuffle extension
else if ( PvNode
&& pos.rule50_count() > 18
- && ss->ply > 18
&& depth < 3 * ONE_PLY
- && ss->ply < 3 * thisThread->rootDepth / ONE_PLY) // To avoid infinite loops
+ && ss->ply < 3 * thisThread->rootDepth / ONE_PLY) // To avoid too deep searches
extension = ONE_PLY;
// Passed pawn extension