io-chess
UCI chess engine
Loading...
Searching...
No Matches
IEvaluator.h
Go to the documentation of this file.
1#pragma once
2
10
11#include "FeatureExtractor.hpp"
12#include "WDLConverter.hpp"
13#include "../Types.h"
14
15#include <cstdint>
16
26public:
27 virtual ~IEvaluator() = default;
28
36 virtual float evaluate(const Board &board, int ply = 0) = 0;
37
45 virtual WDLConverter::WDL evaluateWDL(const Board &board, int ply = 0) {
46 (void)board;
47 (void)ply;
48 // Default implementation for evaluators that don't support WDL natively (e.g., SimpleEval)
49 return {0.0f, 0.0f, 0.0f};
50 }
51
61 virtual float evaluate(const ChessInput &input) {
62 (void)input;
63 return 0.0f;
64 }
65
71 virtual void setAggression(float aggression) { (void)aggression; }
72
79 virtual void setEvalScale(int base, int weight) { (void)base; (void)weight; }
80
86 virtual void setEvalNormalization(bool enable) { (void)enable; }
87
93 virtual void setIncrementalRebuildInterval(int interval) {
94 (void)interval;
95 }
96
102 virtual uint64_t getFullRebuilds() const { return 0; }
103};
Standard sparse/dense feature extraction logic for chess positions.
Common type definitions and constants for the chess engine.
chess::Board Board
Alias for chess::Board.
Definition Types.h:14
Converts neural network WDL outputs to centipawns.
Abstract interface for evaluators.
Definition IEvaluator.h:25
virtual void setEvalNormalization(bool enable)
Enables or disables dynamic evaluation normalization.
Definition IEvaluator.h:86
virtual float evaluate(const Board &board, int ply=0)=0
Evaluates the board from the perspective of the side to move.
virtual WDLConverter::WDL evaluateWDL(const Board &board, int ply=0)
Evaluates the board and returns Win/Draw/Loss probabilities.
Definition IEvaluator.h:45
virtual uint64_t getFullRebuilds() const
Retrieves the number of full feature rebuilds performed (for profiling).
Definition IEvaluator.h:102
virtual void setAggression(float aggression)
Sets the contempt or aggression factor for the evaluator.
Definition IEvaluator.h:71
virtual void setEvalScale(int base, int weight)
Sets the scaling parameters for the evaluation score.
Definition IEvaluator.h:79
virtual void setIncrementalRebuildInterval(int interval)
Sets the interval for forcing full feature rebuilds (to correct accumulation errors).
Definition IEvaluator.h:93
virtual float evaluate(const ChessInput &input)
Evaluates the position using pre-computed features.
Definition IEvaluator.h:61
virtual ~IEvaluator()=default
Definition FeatureExtractor.hpp:10
Holds Win, Draw, and Loss probabilities.
Definition WDLConverter.hpp:40