Skip to content

Commit 6cbd1ff

Browse files
author
Jesper Torp Kristensen
committed
Simplifying code
1 parent b8123df commit 6cbd1ff

File tree

1 file changed

+37
-224
lines changed

1 file changed

+37
-224
lines changed

src/endgames/endgame_indexing.hxx

Lines changed: 37 additions & 224 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@
5050

5151
typedef int (*TableIndexToBDDIndex)(int index);
5252

53-
#define TABLE_INDEX_TO_BDD_INDEX(name, max_men) \
54-
int name ## _table_index_to_bdd_index(int index)
55-
5653
// construct_bdd_table creates the table from which the bdd
5754
// will be initialized. All entries are mapped to [0..convert_table.size()[
5855
// where 0 represents a wildcard (ENDGAME_TABLE_ILLEGAL)
@@ -61,225 +58,41 @@ uchar *construct_bdd_table(const char *table, TableIndexToBDDIndex table_index_t
6158
vector<char> &convert_table,
6259
const BitList &unreachable);
6360

64-
// ###########################
65-
// ########## KK ###########
66-
// ###########################
67-
int compress_KK_table_index(vector<PiecePos> &piece_list);
68-
void decompress_KK_table_index(int index, vector<PiecePos>& piece_list);
69-
BDD_Index preprocess_KK_bdd_index(const vector<PiecePos> &piece_list);
70-
TABLE_INDEX_TO_BDD_INDEX(KK,2);
71-
72-
73-
74-
// ############################
75-
// ########## KXK ###########
76-
// ############################
77-
int compress_KXK_table_index(vector<PiecePos> &piece_list);
78-
void decompress_KXK_table_index(int index, vector<PiecePos>& piece_list);
79-
BDD_Index preprocess_KXK_bdd_index(const vector<PiecePos> &piece_list);
80-
TABLE_INDEX_TO_BDD_INDEX(KXK,3);
81-
82-
// ############################
83-
// ########## KPK ###########
84-
// ############################
85-
int compress_KPK_table_index(vector<PiecePos>& piece_list);
86-
void decompress_KPK_table_index(int index, vector<PiecePos>& piece_list);
87-
BDD_Index preprocess_KPK_bdd_index(const vector<PiecePos> &piece_list);
88-
TABLE_INDEX_TO_BDD_INDEX(KPK,3);
89-
90-
// #############################
91-
// ########## KXXK ###########
92-
// #############################
93-
int compress_KXXK_table_index(vector<PiecePos>& piece_list);
94-
void decompress_KXXK_table_index(int index, vector<PiecePos>& piece_list);
95-
BDD_Index preprocess_KXXK_bdd_index(const vector<PiecePos> &piece_list);
96-
TABLE_INDEX_TO_BDD_INDEX(KXXK,4);
97-
98-
// #############################
99-
// ########## KXYK ###########
100-
// #############################
101-
int compress_KXYK_table_index(vector<PiecePos>& piece_list);
102-
void decompress_KXYK_table_index(int index, vector<PiecePos>& piece_list);
103-
BDD_Index preprocess_KXYK_bdd_index(const vector<PiecePos> &piece_list);
104-
TABLE_INDEX_TO_BDD_INDEX(KXYK,4);
105-
106-
// #############################
107-
// ########## KXKY ###########
108-
// #############################
109-
int compress_KXKY_table_index(vector<PiecePos>& piece_list);
110-
void decompress_KXKY_table_index(int index, vector<PiecePos>& piece_list);
111-
BDD_Index preprocess_KXKY_bdd_index(const vector<PiecePos> &piece_list);
112-
TABLE_INDEX_TO_BDD_INDEX(KXKY,4);
113-
114-
// #############################
115-
// ########## KPPK ###########
116-
// #############################
117-
int compress_KPPK_table_index(vector<PiecePos>& piece_list);
118-
void decompress_KPPK_table_index(int index, vector<PiecePos>& piece_list);
119-
BDD_Index preprocess_KPPK_bdd_index(const vector<PiecePos> &piece_list);
120-
TABLE_INDEX_TO_BDD_INDEX(KPPK,4);
121-
122-
// #############################
123-
// ########## KXPK ###########
124-
// #############################
125-
int compress_KXPK_table_index(vector<PiecePos>& piece_list);
126-
void decompress_KXPK_table_index(int index, vector<PiecePos>& piece_list);
127-
BDD_Index preprocess_KXPK_bdd_index(const vector<PiecePos> &piece_list);
128-
TABLE_INDEX_TO_BDD_INDEX(KXPK,4);
129-
130-
// #############################
131-
// ########## KPKP ###########
132-
// #############################
133-
int compress_KPKP_table_index(vector<PiecePos>& piece_list);
134-
void decompress_KPKP_table_index(int index, vector<PiecePos>& piece_list);
135-
BDD_Index preprocess_KPKP_bdd_index(const vector<PiecePos> &piece_list);
136-
TABLE_INDEX_TO_BDD_INDEX(KPKP,4);
137-
138-
// #############################
139-
// ########## KXKP ###########
140-
// #############################
141-
int compress_KXKP_table_index(vector<PiecePos>& piece_list);
142-
void decompress_KXKP_table_index(int index, vector<PiecePos>& piece_list);
143-
BDD_Index preprocess_KXKP_bdd_index(const vector<PiecePos> &piece_list);
144-
TABLE_INDEX_TO_BDD_INDEX(KXKP,4);
145-
146-
61+
#define TABLES(endgame) \
62+
int compress_ ## endgame ## _table_index(vector<PiecePos> &piece_list); \
63+
void decompress_ ## endgame ## _table_index(int index, vector<PiecePos>& piece_list); \
64+
BDD_Index preprocess_ ## endgame ## _bdd_index(const vector<PiecePos> &piece_list); \
65+
int endgame ## _table_index_to_bdd_index(int index);
66+
67+
TABLES(KK)
68+
TABLES(KXK)
69+
TABLES(KPK)
70+
TABLES(KXKX)
71+
TABLES(KXYK)
72+
TABLES(KXKY)
73+
TABLES(KPPK)
74+
TABLES(KXPK)
75+
TABLES(KPKP)
76+
TABLES(KXKP)
14777
#ifdef ALLOW_5_MEN_ENDGAME
148-
149-
// ##############################
150-
// ########## KXXXK ###########
151-
// ##############################
152-
int compress_KXXXK_table_index(vector<PiecePos>& piece_list);
153-
void decompress_KXXXK_table_index(int index, vector<PiecePos>& piece_list);
154-
BDD_Index preprocess_KXXXK_bdd_index(const vector<PiecePos> &piece_list);
155-
TABLE_INDEX_TO_BDD_INDEX(KXXXK,5);
156-
157-
158-
// ##############################
159-
// ########## KPPPK ###########
160-
// ##############################
161-
int compress_KPPPK_table_index(vector<PiecePos>& piece_list);
162-
void decompress_KPPPK_table_index(int index, vector<PiecePos>& piece_list);
163-
BDD_Index preprocess_KPPPK_bdd_index(const vector<PiecePos> &piece_list);
164-
TABLE_INDEX_TO_BDD_INDEX(KPPPK,5);
165-
166-
167-
// ##############################
168-
// ########## KXXKY ###########
169-
// ##############################
170-
int compress_KXXKY_table_index(vector<PiecePos>& piece_list);
171-
void decompress_KXXKY_table_index(int index, vector<PiecePos>& piece_list);
172-
BDD_Index preprocess_KXXKY_bdd_index(const vector<PiecePos> &piece_list);
173-
TABLE_INDEX_TO_BDD_INDEX(KXXKY,5);
174-
175-
// ##############################
176-
// ########## KXXKP ###########
177-
// ##############################
178-
int compress_KXXKP_table_index(vector<PiecePos>& piece_list);
179-
void decompress_KXXKP_table_index(int index, vector<PiecePos>& piece_list);
180-
BDD_Index preprocess_KXXKP_bdd_index(const vector<PiecePos> &piece_list);
181-
TABLE_INDEX_TO_BDD_INDEX(KXXKP,5);
182-
183-
// ##############################
184-
// ########## KPPKX ###########
185-
// ##############################
186-
int compress_KPPKX_table_index(vector<PiecePos>& piece_list);
187-
void decompress_KPPKX_table_index(int index, vector<PiecePos>& piece_list);
188-
BDD_Index preprocess_KPPKX_bdd_index(const vector<PiecePos> &piece_list);
189-
TABLE_INDEX_TO_BDD_INDEX(KPPKX,5);
190-
191-
// ##############################
192-
// ########## KPPKP ###########
193-
// ##############################
194-
int compress_KPPKP_table_index(vector<PiecePos>& piece_list);
195-
void decompress_KPPKP_table_index(int index, vector<PiecePos>& piece_list);
196-
BDD_Index preprocess_KPPKP_bdd_index(const vector<PiecePos> &piece_list);
197-
TABLE_INDEX_TO_BDD_INDEX(KPPKP,5);
198-
199-
// ##############################
200-
// ########## KXYKZ ###########
201-
// ##############################
202-
int compress_KXYKZ_table_index(vector<PiecePos>& piece_list);
203-
void decompress_KXYKZ_table_index(int index, vector<PiecePos>& piece_list);
204-
BDD_Index preprocess_KXYKZ_bdd_index(const vector<PiecePos> &piece_list);
205-
TABLE_INDEX_TO_BDD_INDEX(KXYKZ,5);
206-
207-
// ##############################
208-
// ########## KXYKP ###########
209-
// ##############################
210-
int compress_KXYKP_table_index(vector<PiecePos>& piece_list);
211-
void decompress_KXYKP_table_index(int index, vector<PiecePos>& piece_list);
212-
BDD_Index preprocess_KXYKP_bdd_index(const vector<PiecePos> &piece_list);
213-
TABLE_INDEX_TO_BDD_INDEX(KXYKP,5);
214-
215-
// ##############################
216-
// ########## KXPKY ###########
217-
// ##############################
218-
int compress_KXPKY_table_index(vector<PiecePos>& piece_list);
219-
void decompress_KXPKY_table_index(int index, vector<PiecePos>& piece_list);
220-
BDD_Index preprocess_KXPKY_bdd_index(const vector<PiecePos> &piece_list);
221-
TABLE_INDEX_TO_BDD_INDEX(KXPKY,5);
222-
223-
// ##############################
224-
// ########## KXPKP ###########
225-
// ##############################
226-
int compress_KXPKP_table_index(vector<PiecePos>& piece_list);
227-
void decompress_KXPKP_table_index(int index, vector<PiecePos>& piece_list);
228-
BDD_Index preprocess_KXPKP_bdd_index(const vector<PiecePos> &piece_list);
229-
TABLE_INDEX_TO_BDD_INDEX(KXPKP,5);
230-
231-
232-
// ##############################
233-
// ########## KXXYK ###########
234-
// ##############################
235-
int compress_KXXYK_table_index(vector<PiecePos>& piece_list);
236-
void decompress_KXXYK_table_index(int index, vector<PiecePos>& piece_list);
237-
BDD_Index preprocess_KXXYK_bdd_index(const vector<PiecePos> &piece_list);
238-
TABLE_INDEX_TO_BDD_INDEX(KXXYK,5);
239-
240-
// ##############################
241-
// ########## KXXPK ###########
242-
// ##############################
243-
int compress_KXXPK_table_index(vector<PiecePos>& piece_list);
244-
void decompress_KXXPK_table_index(int index, vector<PiecePos>& piece_list);
245-
BDD_Index preprocess_KXXPK_bdd_index(const vector<PiecePos> &piece_list);
246-
TABLE_INDEX_TO_BDD_INDEX(KXXPK,5);
247-
248-
// ##############################
249-
// ########## KXYYK ###########
250-
// ##############################
251-
int compress_KXYYK_table_index(vector<PiecePos>& piece_list);
252-
void decompress_KXYYK_table_index(int index, vector<PiecePos>& piece_list);
253-
BDD_Index preprocess_KXYYK_bdd_index(const vector<PiecePos> &piece_list);
254-
TABLE_INDEX_TO_BDD_INDEX(KXYYK,5);
255-
256-
// ##############################
257-
// ########## KXPPK ###########
258-
// ##############################
259-
int compress_KXPPK_table_index(vector<PiecePos>& piece_list);
260-
void decompress_KXPPK_table_index(int index, vector<PiecePos>& piece_list);
261-
BDD_Index preprocess_KXPPK_bdd_index(const vector<PiecePos> &piece_list);
262-
TABLE_INDEX_TO_BDD_INDEX(KXPPK,5);
263-
264-
// ##############################
265-
// ########## KXYZK ###########
266-
// ##############################
267-
int compress_KXYZK_table_index(vector<PiecePos>& piece_list);
268-
void decompress_KXYZK_table_index(int index, vector<PiecePos>& piece_list);
269-
BDD_Index preprocess_KXYZK_bdd_index(const vector<PiecePos> &piece_list);
270-
TABLE_INDEX_TO_BDD_INDEX(KXYZK,5);
271-
272-
// ##############################
273-
// ########## KXYPK ###########
274-
// ##############################
275-
int compress_KXYPK_table_index(vector<PiecePos>& piece_list);
276-
void decompress_KXYPK_table_index(int index, vector<PiecePos>& piece_list);
277-
BDD_Index preprocess_KXYPK_bdd_index(const vector<PiecePos> &piece_list);
278-
TABLE_INDEX_TO_BDD_INDEX(KXYPK,5);
279-
280-
#endif // #ifdef ALLOW_5_MEN_ENDGAME
281-
282-
283-
#undef TABLE_INDEX_TO_BDD_INDEX
284-
285-
#endif // #define _ENDGAME_INDEXING_
78+
TABLES(KXXXK)
79+
TABLES(KPPPK)
80+
TABLES(KXXKY)
81+
TABLES(KXXKP)
82+
TABLES(KPPKX)
83+
TABLES(KPPKP)
84+
TABLES(KXYKZ)
85+
TABLES(KXYKP)
86+
TABLES(KXPKY)
87+
TABLES(KXPKP)
88+
TABLES(KXXYK)
89+
TABLES(KXXPK)
90+
TABLES(KXYYK)
91+
TABLES(KXPPK)
92+
TABLES(KXYZK)
93+
TABLES(KXYPK)
94+
#endif
95+
96+
#undef TABLES
97+
98+
#endif

0 commit comments

Comments
 (0)