- /// Indices to the Random64[] array
-
- const int RandomPiece = 0;
- const int RandomCastle = 768;
- const int RandomEnPassant = 772;
- const int RandomTurn = 780;
-
-
- /// Convert pieces to the range 0..1
-
- const int PieceTo12[] = {
- 0, 0, 2, 4, 6, 8, 10, 0, 0, 1, 3, 5, 7, 9, 11
- };
-
-
- /// Prototypes
-
- uint64_t book_key(const Position &pos);
- uint64_t book_piece_key(Piece p, Square s);
- uint64_t book_castle_key(const Position &pos);
- uint64_t book_ep_key(const Position &pos);
- uint64_t book_color_key(const Position &pos);
-
- uint64_t read_integer(FILE *file, int size);
- uint16_t read_small_integer(FILE *file, int size);
-}
+ // PieceOffset is calculated as 64 * (PolyPiece ^ 1) where PolyPiece
+ // is: BP = 0, WP = 1, BN = 2, WN = 3 ... BK = 10, WK = 11
+ const int PieceOffset[] = { 0, 64, 192, 320, 448, 576, 704, 0,
+ 0, 0, 128, 256, 384, 512, 640 };