From: Fabian Fichter Date: Sun, 18 Oct 2020 20:50:54 +0000 (+0200) Subject: Fix NNUE piece indeces X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=1e82dcc7bb80d3298d9738f38f658c926f051473;p=fairystockfish.git Fix NNUE piece indeces --- diff --git a/src/nnue/evaluate_nnue.cpp b/src/nnue/evaluate_nnue.cpp index b5dcd99..d3f8817 100644 --- a/src/nnue/evaluate_nnue.cpp +++ b/src/nnue/evaluate_nnue.cpp @@ -30,7 +30,7 @@ namespace Eval::NNUE { - const uint32_t kpp_board_index[PIECE_NB][COLOR_NB] = { + constexpr uint32_t kpp_board_index[PIECE_NB][COLOR_NB] = { // convention: W - us, B - them // viewed from other side, W and B are reversed { PS_NONE, PS_NONE }, @@ -39,17 +39,133 @@ namespace Eval::NNUE { { PS_W_BISHOP, PS_B_BISHOP }, { PS_W_ROOK, PS_B_ROOK }, { PS_W_QUEEN, PS_B_QUEEN }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, { PS_W_KING, PS_B_KING }, { PS_NONE, PS_NONE }, { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, { PS_B_PAWN, PS_W_PAWN }, { PS_B_KNIGHT, PS_W_KNIGHT }, { PS_B_BISHOP, PS_W_BISHOP }, { PS_B_ROOK, PS_W_ROOK }, { PS_B_QUEEN, PS_W_QUEEN }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, { PS_B_KING, PS_W_KING }, - { PS_NONE, PS_NONE } + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, + { PS_NONE, PS_NONE }, }; + static_assert(kpp_board_index[make_piece(WHITE, PAWN)][WHITE] == PS_W_PAWN); + static_assert(kpp_board_index[make_piece(WHITE, KING)][WHITE] == PS_W_KING); + static_assert(kpp_board_index[make_piece(BLACK, PAWN)][WHITE] == PS_B_PAWN); + static_assert(kpp_board_index[make_piece(BLACK, KING)][WHITE] == PS_B_KING); // Input feature converter LargePagePtr feature_transformer;