Rev 96 | Rev 169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 96 | Rev 154 | ||
|---|---|---|---|
| Line 28... | Line 28... | ||
| 28 | using namespace std; |
28 | using namespace std; |
| 29 | 29 | ||
| 30 | namespace { |
30 | namespace { |
| 31 | 31 | ||
| 32 | // Polynomial material imbalance parameters |
32 | // Polynomial material imbalance parameters |
| 33 | - | ||
| 34 | // pair pawn knight bishop rook queen |
- | |
| 35 | const int Linear[6] = { 1667, -168, -1027, -166, 238, -138 }; |
- | |
| 36 | 33 | ||
| 37 | const int QuadraticOurs[][PIECE_TYPE_NB] = { |
34 | const int QuadraticOurs[][PIECE_TYPE_NB] = { |
| 38 | // OUR PIECES |
35 | // OUR PIECES |
| 39 | // pair pawn knight bishop rook queen |
36 | // pair pawn knight bishop rook queen |
| 40 | { |
37 | {1667 }, // Bishop pair |
| 41 | { 40, 2 }, // Pawn |
38 | { 40, 2 }, // Pawn |
| 42 | { 32, 255, -3 }, // Knight OUR PIECES |
39 | { 32, 255, -3 }, // Knight OUR PIECES |
| 43 | { 0, 104, 4, 0 }, // Bishop |
40 | { 0, 104, 4, 0 }, // Bishop |
| 44 | { -26, -2, 47, 105, -149 }, // Rook |
41 | { -26, -2, 47, 105, -149 }, // Rook |
| 45 | {-185, 24, 122, 137, -134, 0 } // Queen |
42 | {-185, 24, 122, 137, -134, 0 } // Queen |
| Line 98... | Line 95... | ||
| 98 | for (int pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1) |
95 | for (int pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1) |
| 99 | { |
96 | { |
| 100 | if (!pieceCount[Us][pt1]) |
97 | if (!pieceCount[Us][pt1]) |
| 101 | continue; |
98 | continue; |
| 102 | 99 | ||
| 103 | int v = |
100 | int v = 0; |
| 104 | 101 | ||
| 105 | for (int pt2 = NO_PIECE_TYPE; pt2 <= pt1; ++pt2) |
102 | for (int pt2 = NO_PIECE_TYPE; pt2 <= pt1; ++pt2) |
| 106 | v += QuadraticOurs[pt1][pt2] * pieceCount[Us][pt2] |
103 | v += QuadraticOurs[pt1][pt2] * pieceCount[Us][pt2] |
| 107 | + QuadraticTheirs[pt1][pt2] * pieceCount[Them][pt2]; |
104 | + QuadraticTheirs[pt1][pt2] * pieceCount[Them][pt2]; |
| 108 | 105 | ||