- // Polynomial material balance parameters
- const Value RedundantQueenPenalty = Value(320);
- const Value RedundantRookPenalty = Value(554);
-
- // pair pawn knight bishop rook queen
- const int LinearCoefficients[6] = { 1617, -162, -1172, -190, 105, 26 };
-
- const int QuadraticCoefficientsSameColor[][PIECE_TYPE_NB] = {
- // pair pawn knight bishop rook queen
- { 7 }, // Bishop pair
- { 39, 2 }, // Pawn
- { 35, 271, -4 }, // Knight
- { 7, 105, 4, 7 }, // Bishop
- { -27, -2, 46, 100, 56 }, // Rook
- { 58, 29, 83, 148, -3, -25 } // Queen
+namespace {
+ #define S(mg, eg) make_score(mg, eg)
+
+ // Polynomial material imbalance parameters
+
+ // One Score parameter for each pair (our piece, another of our pieces)
+ constexpr Score QuadraticOurs[][PIECE_TYPE_NB] = {
+ // OUR PIECE 2
+ // bishop pair pawn knight bishop rook queen
+ {S(1419, 1455) }, // Bishop pair
+ {S( 101, 28), S( 37, 39) }, // Pawn
+ {S( 57, 64), S(249, 187), S(-49, -62) }, // Knight OUR PIECE 1
+ {S( 0, 0), S(118, 137), S( 10, 27), S( 0, 0) }, // Bishop
+ {S( -63, -68), S( -5, 3), S(100, 81), S(132, 118), S(-246, -244) }, // Rook
+ {S(-210, -211), S( 37, 14), S(147, 141), S(161, 105), S(-158, -174), S(-9,-31) } // Queen