+ // Polynomial material balance parameters
+ const Value RedundantQueenPenalty = Value(320);
+ const Value RedundantRookPenalty = Value(554);
+ const int LinearCoefficients[6] = { 1617, -162, -1172, -190, 105, 26 };
+
+ const int QuadraticCoefficientsSameColor[][6] = {
+ { 7, 7, 7, 7, 7, 7 }, { 39, 2, 7, 7, 7, 7 }, { 35, 271, -4, 7, 7, 7 },
+ { 7, 25, 4, 7, 7, 7 }, { -27, -2, 46, 100, 56, 7 }, { 58, 29, 83, 148, -3, -25 } };
+
+ const int QuadraticCoefficientsOppositeColor[][6] = {
+ { 41, 41, 41, 41, 41, 41 }, { 37, 41, 41, 41, 41, 41 }, { 10, 62, 41, 41, 41, 41 },
+ { 57, 64, 39, 41, 41, 41 }, { 50, 40, 23, -22, 41, 41 }, { 106, 101, 3, 151, 171, 41 } };
+
+ // Named endgame evaluation and scaling functions, these
+ // are accessed direcly and not through the function maps.
+ EvaluationFunction<KmmKm> EvaluateKmmKm(WHITE);
+ EvaluationFunction<KXK> EvaluateKXK(WHITE), EvaluateKKX(BLACK);
+ ScalingFunction<KBPsK> ScaleKBPsK(WHITE), ScaleKKBPs(BLACK);
+ ScalingFunction<KQKRPs> ScaleKQKRPs(WHITE), ScaleKRPsKQ(BLACK);
+ ScalingFunction<KPsK> ScaleKPsK(WHITE), ScaleKKPs(BLACK);
+ ScalingFunction<KPKP> ScaleKPKPw(WHITE), ScaleKPKPb(BLACK);
+
+ typedef EndgameEvaluationFunctionBase EF;
+ typedef EndgameScalingFunctionBase SF;