1 
2 // hash.h
3 
4 #ifndef HASH_H
5 #define HASH_H
6 
7 // includes
8 
9 #include "board.h"
10 #include "util.h"
11 
12 // defines
13 
14 #define RandomPiece          0
15 // 12 * 64
16 #define RandomCastle       768
17 // 4
18 #define RandomEnPassant    772
19 // 8
20 #define  RandomTurn        780
21 // 1
22 
23 // functions
24 
25 extern void   hash_init       ();
26 
27 extern uint64 hash_key        (const board_t * board);
28 
29 extern uint64 hash_piece_key  (int piece, int square);
30 extern uint64 hash_castle_key (int flags);
31 extern uint64 hash_ep_key     (int square);
32 extern uint64 hash_turn_key   (int colour);
33 
34 extern uint64 hash_random_64  (int index);
35 
36 #endif // !defined HASH_H
37 
38 // end of hash.h
39 
40