Zero redundant material imbalance terms
authorChris Caino <chricainogithub@gmail.com>
Mon, 4 Nov 2013 12:44:42 +0000 (12:44 +0000)
committerMarco Costalba <mcostalba@gmail.com>
Tue, 5 Nov 2013 19:08:39 +0000 (20:08 +0100)
First coefficient in the SameColor array does an
equivalent job when folded into the LinearCoefficients
array.

All of the diagonal terms in the OppositeColor array
are redundant due to cancellation.

No functional change.

src/material.cpp

index 8a7fcb8..1e751a8 100644 (file)
@@ -39,11 +39,11 @@ namespace {
   const Value RedundantRook  = Value(554);
 
   //                                  pair  pawn knight bishop rook queen
-  const int LinearCoefficients[6] = { 1817, -162, -1122, -190,  105,  26 };
+  const int LinearCoefficients[6] = { 1824, -162, -1122, -190,  105,  26 };
 
   const int QuadraticCoefficientsSameColor[][PIECE_TYPE_NB] = {
     // pair pawn knight bishop rook queen
-    {   7                               }, // Bishop pair
+    {   0                               }, // Bishop pair
     {  39,    2                         }, // Pawn
     {  35,  271,  -4                    }, // Knight
     {   7,  105,   4,    7              }, // Bishop
@@ -54,12 +54,12 @@ namespace {
   const int QuadraticCoefficientsOppositeColor[][PIECE_TYPE_NB] = {
     //           THEIR PIECES
     // pair pawn knight bishop rook queen
-    {  41                               }, // Bishop pair
-    {  37,   41                         }, // Pawn
-    {  10,   62,  41                    }, // Knight      OUR PIECES
-    {  57,   64,  39,    41             }, // Bishop
-    {  50,   40,  23,   -22,   41       }, // Rook
-    { 106,  101,   3,   151,  171,   41 }  // Queen
+    {   0                               }, // Bishop pair
+    {  37,    0                         }, // Pawn
+    {  10,   62,   0                    }, // Knight      OUR PIECES
+    {  57,   64,  39,     0             }, // Bishop
+    {  50,   40,  23,   -22,    0       }, // Rook
+    { 106,  101,   3,   151,  171,    0 }  // Queen
   };
 
   // Endgame evaluation and scaling functions accessed direcly and not through