50 std::unique_ptr<PolyglotBook>
book_;
73 std::unique_ptr<PolyglotBook>
book2_;
89 explicit UciProtocol(
const std::string &modelPath,
bool useSimpleEval =
false,
90 const std::string &tbPath =
"",
91 const std::string &bookPath =
"",
92 const std::string &bookPath2 =
"",
int evalThreads = 0);
117 void handleGo(std::istringstream &is);
126 void sendInfo(
int depth,
int score,
int nodes,
int nps,
127 const std::vector<Move> &pv,
const Board &board);
Runtime evaluator manager.
Search interface and shared data structures.
Monte Carlo Tree Search implementation.
Alpha-Beta search implementation with enhancements.
Transposition Table implementation using a 3+1 Cluster Architecture.
Syzygy tablebase probing via Fathom.
Sophisticated time allocation and management for the chess engine.
Common type definitions and constants for the chess engine.
chess::Move Move
Alias for chess::Move.
Definition Types.h:15
chess::Board Board
Alias for chess::Board.
Definition Types.h:14
static constexpr const char * ENGINE_VERSION
Definition UCI.h:31
Management of UCI engine options.
The main Transposition Table.
Definition TT.h:145
uint64_t ttSnapshotCounter_
Definition UCI.h:78
void handleIsReady()
Definition UCI.cpp:195
uint64_t searchBaseTtHits_
Definition UCI.h:83
void handlePosition(std::istringstream &is)
Definition UCI.cpp:229
SearchParams ponderParams_
Time params from go ponder for ponderhit use.
Definition UCI.h:65
void handleUci()
Definition UCI.cpp:188
void saveTTSnapshotForMove(const std::string &moveUci)
Definition UCI.cpp:920
void initializeEngine()
Definition UCI.cpp:740
std::string pendingTTLoadFile_
Definition UCI.h:77
void handleEval()
Definition UCI.cpp:969
std::vector< std::thread > threadPool_
Definition UCI.h:53
void sendBestMove(Move move, Move ponderMove=Move(Move::NO_MOVE))
Definition UCI.cpp:906
~UciProtocol()
Definition UCI.cpp:69
uint64_t searchBaseTbHits_
Definition UCI.h:82
std::atomic< bool > ponderResultReady_
Definition UCI.h:62
void handleSetOption(std::istringstream &is)
Definition UCI.cpp:206
uint64_t searchBaseFullRebuilds_
Definition UCI.h:81
void resizeHash(size_t mb)
Definition UCI.cpp:988
std::atomic< bool > pondering_
Definition UCI.h:61
void updateEvalContexts()
Definition UCI.cpp:1004
void setPendingTTLoadFile(const std::string &file)
Definition UCI.h:108
std::unique_ptr< ISearch > searcher_
Definition UCI.h:57
void updateThreads(int numThreads)
Definition UCI.cpp:992
std::vector< std::unique_ptr< IEvaluator > > evalCtxs_
Definition UCI.h:48
int consecutiveBookMisses_
Definition UCI.h:74
void sendInfo(int depth, int score, int nodes, int nps, const std::vector< Move > &pv, const Board &board)
Definition UCI.cpp:852
std::atomic< bool > searchMayRunForever_
Definition UCI.h:60
UciProtocol(const std::string &modelPath, bool useSimpleEval=false, const std::string &tbPath="", const std::string &bookPath="", const std::string &bookPath2="", int evalThreads=0)
Constructs the UCI Protocol handler.
Definition UCI.cpp:40
std::shared_ptr< SearchSharedData > searchData_
Definition UCI.h:54
static std::string sanitizeForFilename(const std::string &value)
Definition UCI.cpp:955
static constexpr const char * ENGINE_NAME
Definition UCI.h:43
void loop()
The main blocking loop that reads commands from standard input.
Definition UCI.cpp:77
void handleStop()
Definition UCI.cpp:725
std::vector< std::unique_ptr< Evaluator > > evaluators_
Definition UCI.h:47
std::atomic< bool > searchRunning_
Definition UCI.h:59
static constexpr const char * ENGINE_AUTHOR
Definition UCI.h:44
std::unique_ptr< PolyglotBook > book2_
Definition UCI.h:73
void reinitEngine()
Definition UCI.cpp:998
void handlePonderHit()
Definition UCI.cpp:638
Board currentBoard_
Definition UCI.h:69
void loadBooks()
Definition UCI.cpp:1019
void handleQuit()
Definition UCI.cpp:738
std::thread searchThread_
Definition UCI.h:58
static std::string formatScore(int score)
Definition UCI.cpp:827
void setTTDisabled(bool disable)
Definition UCI.cpp:1035
void initTablebase()
Definition UCI.cpp:1013
void handleGo(std::istringstream &is)
Definition UCI.cpp:267
std::mutex ponderMutex_
Definition UCI.h:66
static constexpr int MAX_BOOK_MISSES
Definition UCI.h:75
UciOptions options_
Definition UCI.h:72
void handleUciNewGame()
Definition UCI.cpp:223
std::unique_ptr< PolyglotBook > book_
Definition UCI.h:50
Move ponderResultMove_
Definition UCI.h:63
Move ponderMove_
Expected opponent reply (2nd move in PV).
Definition UCI.h:64
TranspositionTable tt_
Definition UCI.h:49
Polyglot opening book parser and probe utility.
Parameters defining the constraints for a search operation.
Definition ISearch.h:125
Holds all configurable engine parameters.
Definition UciOptions.h:19