-// KRPP vs KRP:
-class KRPPKRPScalingFunction : public ScalingFunction {
-public:
- KRPPKRPScalingFunction(Color c);
- ScaleFactor apply(const Position &pos);
-};
-
-// King and pawns vs king:
-class KPsKScalingFunction : public ScalingFunction {
-public:
- KPsKScalingFunction(Color c);
- ScaleFactor apply(const Position &pos);
-};
-
-// KBP vs KB:
-class KBPKBScalingFunction : public ScalingFunction {
-public:
- KBPKBScalingFunction(Color c);
- ScaleFactor apply(const Position &pos);
-};
-
-// KBP vs KN:
-class KBPKNScalingFunction : public ScalingFunction {
-public:
- KBPKNScalingFunction(Color c);
- ScaleFactor apply(const Position &pos);
-};
-
-// KNP vs K:
-class KNPKScalingFunction : public ScalingFunction {
-public:
- KNPKScalingFunction(Color c);
- ScaleFactor apply(const Position &pos);
+template<EndgameType>
+struct EvaluationFunction : public EndgameEvaluationFunctionBase {
+ explicit EvaluationFunction(Color c): EndgameEvaluationFunctionBase(c) {}
+ Value apply(const Position&);