Restore behaviour after count<ALL_PIECES> fix
authorMarco Costalba <mcostalba@gmail.com>
Tue, 22 Oct 2013 15:27:58 +0000 (17:27 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Tue, 22 Oct 2013 15:27:58 +0000 (17:27 +0200)
Because pos.count<ALL_PIECES>(Us) was always zero,
rewrite the formula as if this would still be
the case.

bench: 8510004

src/evaluate.cpp

index 71120fde8fb20ca99ff4e9d691ad7d31889258b7..f3586f9632a614cf8b3419a204972240e855a875 100644 (file)
@@ -878,9 +878,7 @@ Value do_evaluate(const Position& pos, Value& margin) {
                 ebonus -= ebonus / 4;
         }
 
-        // Increase the bonus if we have more non-pawn pieces
-        if (pos.count<ALL_PIECES>(  Us) - pos.count<PAWN>(  Us) >
-            pos.count<ALL_PIECES>(Them) - pos.count<PAWN>(Them))
+        if (pos.count<PAWN>(Us) < pos.count<PAWN>(Them))
             ebonus += ebonus / 4;
 
         score += make_score(mbonus, ebonus);