From 2523f72ff963b160dac5779bb9c7215de129113f Mon Sep 17 00:00:00 2001 From: nodchip Date: Wed, 3 Jun 2020 23:32:08 +0900 Subject: [PATCH] =?UTF-8?q?=E7=9B=A4=E4=B8=8A=E3=81=8B=E3=82=89=E5=8F=96?= =?UTF-8?q?=E3=82=8A=E9=99=A4=E3=81=8B=E3=82=8C=E3=81=9F=E9=A7=92=E3=81=AB?= =?UTF-8?q?=E9=96=A2=E3=81=99=E3=82=8B=E5=B7=AE=E5=88=86=E8=A8=88=E7=AE=97?= =?UTF-8?q?=E3=82=92=E7=9C=81=E3=81=8D=E3=80=81=E9=AB=98=E9=80=9F=E5=8C=96?= =?UTF-8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/eval/nnue/features/half_kp.cpp | 12 +++++++++--- src/eval/nnue/features/half_relative_kp.cpp | 12 +++++++++--- src/eval/nnue/features/p.cpp | 12 +++++++++--- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/eval/nnue/features/half_kp.cpp b/src/eval/nnue/features/half_kp.cpp index 1741f3ce..5cd95637 100644 --- a/src/eval/nnue/features/half_kp.cpp +++ b/src/eval/nnue/features/half_kp.cpp @@ -42,7 +42,9 @@ void HalfKP::AppendActiveIndices( Square sq_target_k; GetPieces(pos, perspective, &pieces, &sq_target_k); for (PieceNumber i = PIECE_NUMBER_ZERO; i < PIECE_NUMBER_KING; ++i) { - active->push_back(MakeIndex(sq_target_k, pieces[i])); + if (pieces[i] != Eval::BONA_PIECE_ZERO) { + active->push_back(MakeIndex(sq_target_k, pieces[i])); + } } } @@ -59,10 +61,14 @@ void HalfKP::AppendChangedIndices( if (dp.pieceNo[i] >= PIECE_NUMBER_KING) continue; const auto old_p = static_cast( dp.changed_piece[i].old_piece.from[perspective]); - removed->push_back(MakeIndex(sq_target_k, old_p)); + if (old_p != Eval::BONA_PIECE_ZERO) { + removed->push_back(MakeIndex(sq_target_k, old_p)); + } const auto new_p = static_cast( dp.changed_piece[i].new_piece.from[perspective]); - added->push_back(MakeIndex(sq_target_k, new_p)); + if (new_p != Eval::BONA_PIECE_ZERO) { + added->push_back(MakeIndex(sq_target_k, new_p)); + } } } diff --git a/src/eval/nnue/features/half_relative_kp.cpp b/src/eval/nnue/features/half_relative_kp.cpp index d0810df6..d62beea0 100644 --- a/src/eval/nnue/features/half_relative_kp.cpp +++ b/src/eval/nnue/features/half_relative_kp.cpp @@ -50,7 +50,9 @@ void HalfRelativeKP::AppendActiveIndices( GetPieces(pos, perspective, &pieces, &sq_target_k); for (PieceNumber i = PIECE_NUMBER_ZERO; i < PIECE_NUMBER_KING; ++i) { if (pieces[i] >= fe_hand_end) { - active->push_back(MakeIndex(sq_target_k, pieces[i])); + if (pieces[i] != Eval::BONA_PIECE_ZERO) { + active->push_back(MakeIndex(sq_target_k, pieces[i])); + } } } } @@ -69,12 +71,16 @@ void HalfRelativeKP::AppendChangedIndices( const auto old_p = static_cast( dp.changed_piece[i].old_piece.from[perspective]); if (old_p >= fe_hand_end) { - removed->push_back(MakeIndex(sq_target_k, old_p)); + if (old_p != Eval::BONA_PIECE_ZERO) { + removed->push_back(MakeIndex(sq_target_k, old_p)); + } } const auto new_p = static_cast( dp.changed_piece[i].new_piece.from[perspective]); if (new_p >= fe_hand_end) { - added->push_back(MakeIndex(sq_target_k, new_p)); + if (new_p != Eval::BONA_PIECE_ZERO) { + added->push_back(MakeIndex(sq_target_k, new_p)); + } } } } diff --git a/src/eval/nnue/features/p.cpp b/src/eval/nnue/features/p.cpp index da1481cb..56bca0a4 100644 --- a/src/eval/nnue/features/p.cpp +++ b/src/eval/nnue/features/p.cpp @@ -21,7 +21,9 @@ void P::AppendActiveIndices( pos.eval_list()->piece_list_fb() : pos.eval_list()->piece_list_fw(); for (PieceNumber i = PIECE_NUMBER_ZERO; i < PIECE_NUMBER_KING; ++i) { - active->push_back(pieces[i]); + if (pieces[i] != Eval::BONA_PIECE_ZERO) { + active->push_back(pieces[i]); + } } } @@ -32,8 +34,12 @@ void P::AppendChangedIndices( const auto& dp = pos.state()->dirtyPiece; for (int i = 0; i < dp.dirty_num; ++i) { if (dp.pieceNo[i] >= PIECE_NUMBER_KING) continue; - removed->push_back(dp.changed_piece[i].old_piece.from[perspective]); - added->push_back(dp.changed_piece[i].new_piece.from[perspective]); + if (dp.changed_piece[i].old_piece.from[perspective] != Eval::BONA_PIECE_ZERO) { + removed->push_back(dp.changed_piece[i].old_piece.from[perspective]); + } + if (dp.changed_piece[i].new_piece.from[perspective] != Eval::BONA_PIECE_ZERO) { + added->push_back(dp.changed_piece[i].new_piece.from[perspective]); + } } }