Initial import of Glaurung 2.1
[stockfish] / src / psqtab.h
1 /*
2   Glaurung, a UCI chess playing engine.
3   Copyright (C) 2004-2008 Tord Romstad
4
5   Glaurung is free software: you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation, either version 3 of the License, or
8   (at your option) any later version.
9   
10   Glaurung is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14   
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19
20 #if !defined(PSQTAB_H_INCLUDED)
21 #define PSQTAB_H_INCLUDED
22
23 ////
24 //// Includes
25 ////
26
27 #include "position.h"
28
29
30 ////
31 //// Variables
32 ////
33
34 static const int MgPST[][64] = {
35   { },
36   { // Pawn
37     0, 0, 0, 0, 0, 0, 0, 0,
38     166, 192, 204, 216, 216, 204, 192, 166,
39     166, 192, 210, 242, 242, 210, 192, 166, 
40     166, 192, 220, 268, 268, 220, 192, 166, 
41     166, 192, 220, 242, 242, 220, 192, 166, 
42     166, 192, 210, 216, 216, 210, 192, 166, 
43     166, 192, 204, 216, 216, 204, 192, 166, 
44     0, 0, 0, 0, 0, 0, 0, 0
45   }, 
46   { // Knight
47     704, 730, 756, 768, 768, 756, 730, 704, 
48     743, 768, 794, 807, 807, 794, 768, 743, 
49     781, 807, 832, 844, 844, 832, 807, 781, 
50     807, 832, 857, 870, 870, 857, 832, 807, 
51     820, 844, 870, 883, 883, 870, 844, 820, 
52     820, 844, 870, 883, 883, 870, 844, 820, 
53     781, 807, 832, 844, 844, 832, 807, 781, 
54     650, 768, 794, 807, 807, 794, 768, 650
55   }, 
56   { // Bishop
57     786, 786, 792, 797, 797, 792, 786, 786, 
58     812, 832, 827, 832, 832, 827, 832, 812, 
59     817, 827, 842, 837, 837, 842, 827, 817, 
60     822, 832, 837, 852, 852, 837, 832, 822, 
61     822, 832, 837, 852, 852, 837, 832, 822, 
62     817, 827, 842, 837, 837, 842, 827, 817, 
63     812, 832, 827, 832, 832, 827, 832, 812, 
64     812, 812, 817, 822, 822, 817, 812, 812
65   }, 
66   { // Rook
67     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
68     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
69     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
70     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
71     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
72     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
73     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267, 
74     1267, 1275, 1282, 1289, 1289, 1282, 1275, 1267
75   }, 
76   { // Queen
77     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
78     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
79     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
80     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
81     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
82     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
83     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 
84     2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560
85   }, 
86   { // King
87     302, 328, 276, 225, 225, 276, 328, 302, 
88     276, 302, 251, 200, 200, 251, 302, 276, 
89     225, 251, 200, 149, 149, 200, 251, 225, 
90     200, 225, 175, 124, 124, 175, 225, 200, 
91     175, 200, 149, 98, 98, 149, 200, 175, 
92     149, 175, 124, 72, 72, 124, 175, 149, 
93     124, 149, 98, 47, 47, 98, 149, 124, 
94     98, 124, 72, 21, 21, 72, 124, 98, 
95   }
96 };
97
98
99 static const int EgPST[][64] = {
100   { },
101   { // Pawn
102     0, 0, 0, 0, 0, 0, 0, 0, 
103     256, 256, 256, 256, 256, 256, 256, 256, 
104     256, 256, 256, 256, 256, 256, 256, 256, 
105     256, 256, 256, 256, 256, 256, 256, 256, 
106     256, 256, 256, 256, 256, 256, 256, 256, 
107     256, 256, 256, 256, 256, 256, 256, 256, 
108     256, 256, 256, 256, 256, 256, 256, 256, 
109     0, 0, 0, 0, 0, 0, 0, 0
110   },
111   { // Knight
112     730, 756, 781, 794, 794, 781, 756, 730, 
113     756, 781, 807, 820, 820, 807, 781, 756, 
114     781, 807, 832, 844, 844, 832, 807, 781, 
115     794, 820, 844, 857, 857, 844, 820, 794, 
116     794, 820, 844, 857, 857, 844, 820, 794, 
117     781, 807, 832, 844, 844, 832, 807, 781, 
118     756, 781, 807, 820, 820, 807, 781, 756, 
119     730, 756, 781, 794, 794, 781, 756, 730
120   },
121   { // Bishop
122     786, 802, 809, 817, 817, 809, 802, 786, 
123     802, 817, 825, 832, 832, 825, 817, 802, 
124     809, 825, 832, 839, 839, 832, 825, 809, 
125     817, 832, 839, 847, 847, 839, 832, 817, 
126     817, 832, 839, 847, 847, 839, 832, 817, 
127     809, 825, 832, 839, 839, 832, 825, 809, 
128     802, 817, 825, 832, 832, 825, 817, 802, 
129     786, 802, 809, 817, 817, 809, 802, 786
130   },
131   { // Rook
132     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
133     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
134     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
135     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
136     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
137     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
138     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 
139     1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282
140   },
141   { // Queen
142     2499, 2520, 2530, 2540, 2540, 2530, 2520, 2499, 
143     2520, 2540, 2550, 2560, 2560, 2550, 2540, 2520, 
144     2530, 2550, 2560, 2570, 2570, 2560, 2550, 2530, 
145     2540, 2560, 2570, 2580, 2580, 2570, 2560, 2540, 
146     2540, 2560, 2570, 2580, 2580, 2570, 2560, 2540, 
147     2530, 2550, 2560, 2570, 2570, 2560, 2550, 2530, 
148     2520, 2540, 2550, 2560, 2560, 2550, 2540, 2520, 
149     2499, 2520, 2530, 2540, 2540, 2530, 2520, 2499
150   },
151   { // King
152     16, 78, 108, 139, 139, 108, 78, 16, 
153     78, 139, 170, 200, 200, 170, 139, 78, 
154     108, 170, 200, 230, 230, 200, 170, 108, 
155     139, 200, 230, 261, 261, 230, 200, 139, 
156     139, 200, 230, 261, 261, 230, 200, 139, 
157     108, 170, 200, 230, 230, 200, 170, 108, 
158     78, 139, 170, 200, 200, 170, 139, 78, 
159     16, 78, 108, 139, 139, 108, 78, 16
160   }
161 };
162
163
164 #endif // !defined(PSQTAB_H_INCLUDED)