diff --git a/src/eval/evaluate_common.h b/src/eval/evaluate_common.h index 889fda7a..5d5d05b1 100644 --- a/src/eval/evaluate_common.h +++ b/src/eval/evaluate_common.h @@ -3,7 +3,7 @@ // いまどきの手番つき評価関数(EVAL_KPPTとEVAL_KPP_KKPT)の共用header的なもの。 -#if defined (EVAL_KPPT) || defined(EVAL_KPP_KKPT) || defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) #include // KKファイル名 @@ -77,7 +77,6 @@ namespace Eval } - -#endif +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) #endif // _EVALUATE_KPPT_COMMON_H_ \ No newline at end of file diff --git a/src/eval/evaluate_mir_inv_tools.cpp b/src/eval/evaluate_mir_inv_tools.cpp index a0cf7461..56a0a63e 100644 --- a/src/eval/evaluate_mir_inv_tools.cpp +++ b/src/eval/evaluate_mir_inv_tools.cpp @@ -1,4 +1,6 @@ -#include "evaluate_mir_inv_tools.h" +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) + +#include "evaluate_mir_inv_tools.h" namespace Eval { @@ -184,3 +186,5 @@ namespace Eval } } + +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) diff --git a/src/eval/evaluate_mir_inv_tools.h b/src/eval/evaluate_mir_inv_tools.h index 6e82ce58..8d6378ec 100644 --- a/src/eval/evaluate_mir_inv_tools.h +++ b/src/eval/evaluate_mir_inv_tools.h @@ -1,6 +1,8 @@ #ifndef _EVALUATE_MIR_INV_TOOLS_ #define _EVALUATE_MIR_INV_TOOLS_ +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) + // BonaPieceのmirror(左右反転)やinverse(盤上の180度回転)させた駒を得るためのツール類。 #include "../types.h" @@ -40,4 +42,6 @@ namespace Eval extern void init_mir_inv_tables(); } +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) + #endif diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 65c7155a..dee72d64 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -911,7 +911,7 @@ std::string Eval::trace(const Position& pos) { return ss.str(); } -#if defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) namespace Eval { ExtBonaPiece kpp_board_index[PIECE_NB] = { { BONA_PIECE_ZERO, BONA_PIECE_ZERO }, @@ -980,4 +980,15 @@ bool EvalList::is_valid(const Position& pos) return true; } } +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) + +#if !defined(EVAL_NNUE) +namespace Eval { +void evaluate_with_no_return(const Position& pos) {} +void update_weights(uint64_t epoch, const std::array & freeze) {} +void init_grad(double eta1, uint64_t eta_epoch, double eta2, uint64_t eta2_epoch, double eta3) {} +void add_grad(Position& pos, Color rootColor, double delt_grad, const std::array & freeze) {} +void save_eval(std::string suffix) {} +double get_eta() {} +} #endif // defined(EVAL_NNUE) diff --git a/src/evaluate.h b/src/evaluate.h index f31ea142..6115eeb4 100644 --- a/src/evaluate.h +++ b/src/evaluate.h @@ -37,7 +37,7 @@ Value evaluate(const Position& pos); void evaluate_with_no_return(const Position& pos); -#if defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) // ]֐t@CǂݍށB // ́A"is_ready"R}h̉1xĂяoB2xĂяoƂ͑z肵ĂȂB // (AEvalDir(]֐tH_)ύXɂȂƁAisreadyēxĂǂ݂ȂB) @@ -216,7 +216,7 @@ struct DirtyPiece int dirty_num; }; -#endif // defined(EVAL_NNUE) +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) } #endif // #ifndef EVALUATE_H_INCLUDED diff --git a/src/learn/learning_tools.h b/src/learn/learning_tools.h index 65f0887c..2bcd3f35 100644 --- a/src/learn/learning_tools.h +++ b/src/learn/learning_tools.h @@ -5,6 +5,8 @@ #include "learn.h" #if defined (EVAL_LEARN) +#include + #include "../eval/evaluate_mir_inv_tools.h" #if defined(SGD_UPDATE) || defined(USE_KPPP_MIRROR_WRITE) diff --git a/src/position.h b/src/position.h index 2387dd1c..547320ea 100644 --- a/src/position.h +++ b/src/position.h @@ -28,6 +28,7 @@ #include #include "bitboard.h" +#include "evaluate.h" #include "misc.h" #include "types.h" @@ -179,7 +180,7 @@ public: bool pos_is_ok() const; void flip(); -#if defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) // --- StateInfo // ݂̋ǖʂɑΉStateInfoԂB @@ -188,7 +189,7 @@ public: // ]֐Ŏg߂́Aǂ̋ԍ̋ǂɂ邩Ȃǂ̏B const Eval::EvalList* eval_list() const { return &evalList; } -#endif // defined(EVAL_NNUE) +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) #if defined(EVAL_LEARN) // ǖʂŎw肪ȂeXgBw萶[`p̂őȂBTɂ͎gȂƁB @@ -248,10 +249,10 @@ private: StateInfo* st; bool chess960; -#if defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) // ]֐ŗp̃Xg Eval::EvalList evalList; -#endif // defined(EVAL_NNUE) +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) }; namespace PSQT { diff --git a/src/types.h b/src/types.h index 9b06ac0d..cf075bbe 100644 --- a/src/types.h +++ b/src/types.h @@ -466,7 +466,7 @@ constexpr Square Inv(Square sq) { return (Square)((SQUARE_NB - 1) - sq); } // Ֆʂ~[Ƃ̏ڂԂ constexpr Square Mir(Square sq) { return make_square(File(7 - (int)file_of(sq)), rank_of(sq)); } -#if defined(EVAL_NNUE) +#if defined(EVAL_NNUE) || defined(EVAL_LEARN) // -------------------- //  // -------------------- @@ -496,6 +496,6 @@ inline PieceNumber& operator--(PieceNumber& d) { return d = PieceNumber(int8_t(d // PieceNumber̐̌BassertpB constexpr bool is_ok(PieceNumber pn) { return pn < PIECE_NUMBER_NB; } -#endif // defined(EVAL_NNUE) +#endif // defined(EVAL_NNUE) || defined(EVAL_LEARN) #endif // #ifndef TYPES_H_INCLUDED