From 9da015517c20e9c5b8e0ef6e7103e60404211baa Mon Sep 17 00:00:00 2001 From: joergoster Date: Wed, 6 Aug 2014 18:36:04 +0800 Subject: [PATCH 1/1] Remove insufficient material rule The eval already returns zero in KK, KBK, KNK (see material.cpp). The difference is: - we lose the "TB pruning" benefit of the draw rule (ie. search goes on even if eval is zero) - we gain some speed by removing a useless test from the hot path STC: LLR: 0.05 (-2.94,2.94) [-3.00,1.00] Total: 128000 W: 21357 L: 21560 D: 85083 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 33023 W: 4613 L: 4509 D: 23901 bench 7461881 --- src/position.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index 23370ca3..7b067723 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1116,10 +1116,6 @@ Value Position::see(Move m) const { bool Position::is_draw() const { - if ( !pieces(PAWN) - && (non_pawn_material(WHITE) + non_pawn_material(BLACK) <= BishopValueMg)) - return true; - if (st->rule50 > 99 && (!checkers() || MoveList(*this).size())) return true; -- 2.39.2