Union of
- LMR >= 3 plies from Gary tests.stockfishchess.org/tests/view/
522522960ebc595d328fcafd
- allows() tweak from Reuven tests.stockfishchess.org/tests/view/
5225fa1c0ebc595d328fcb53
Both passed Step I and failed Step II.
Instead this union passed both short TC:
LLR: 2.95 (-2.94,2.94)
Total: 14525 W: 3063 L: 2874 D: 8588
And long TC
LLR: 2.94 (-2.94,2.94)
Total: 31075 W: 5566 L: 5308 D: 20201
bench:
4238160
// Step 15. Reduced depth search (LMR). If the move fails high will be
// re-searched at full depth.
// Step 15. Reduced depth search (LMR). If the move fails high will be
// re-searched at full depth.
- if ( depth > 3 * ONE_PLY
+ if ( depth >= 3 * ONE_PLY
&& !pvMove
&& !captureOrPromotion
&& move != ttMove
&& !pvMove
&& !captureOrPromotion
&& move != ttMove
Square m2to = to_sq(second);
// The piece is the same or second's destination was vacated by the first move
Square m2to = to_sq(second);
// The piece is the same or second's destination was vacated by the first move
- if (m1to == m2from || m2to == m1from)
+ // We exclude the trivial case where a sliding piece does in two moves what
+ // it could do in one move: eg. Ra1a2, Ra2a3.
+ if ( m2to == m1from
+ || (m1to == m2from && !squares_aligned(m1from, m2from, m2to)))
return true;
// Second one moves through the square vacated by first one
return true;
// Second one moves through the square vacated by first one