mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 01:29:36 +00:00
48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
// NNUE評価関数の入力特徴量Kの定義
|
||
|
||
#ifndef _NNUE_FEATURES_ENPASSANT_H_
|
||
#define _NNUE_FEATURES_ENPASSANT_H_
|
||
|
||
#if defined(EVAL_NNUE)
|
||
|
||
#include "../../../evaluate.h"
|
||
#include "features_common.h"
|
||
|
||
namespace Eval {
|
||
|
||
namespace NNUE {
|
||
|
||
namespace Features {
|
||
|
||
// 特徴量K:玉の位置
|
||
class EnPassant {
|
||
public:
|
||
// 特徴量名
|
||
static constexpr const char* kName = "EnPassant";
|
||
// 評価関数ファイルに埋め込むハッシュ値
|
||
static constexpr std::uint32_t kHashValue = 0x02924F91u;
|
||
// 特徴量の次元数
|
||
static constexpr IndexType kDimensions = 8;
|
||
// 特徴量のうち、同時に値が1となるインデックスの数の最大値
|
||
static constexpr IndexType kMaxActiveDimensions = 1;
|
||
// 差分計算の代わりに全計算を行うタイミング
|
||
static constexpr TriggerEvent kRefreshTrigger = TriggerEvent::kAnyPieceMoved;
|
||
|
||
// 特徴量のうち、値が1であるインデックスのリストを取得する
|
||
static void AppendActiveIndices(const Position& pos, Color perspective,
|
||
IndexList* active);
|
||
|
||
// 特徴量のうち、一手前から値が変化したインデックスのリストを取得する
|
||
static void AppendChangedIndices(const Position& pos, Color perspective,
|
||
IndexList* removed, IndexList* added);
|
||
};
|
||
|
||
} // namespace Features
|
||
|
||
} // namespace NNUE
|
||
|
||
} // namespace Eval
|
||
|
||
#endif // defined(EVAL_NNUE)
|
||
|
||
#endif
|