X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.cpp;h=ee5d4bceabdaa5b056f0f712fd4cf85856779f57;hp=294744f4ed7de6da34ccdea53acca82d813d13f5;hb=9c7dc057d160d7f3c41553173f958f2cc7b5d98c;hpb=cf5d683408a2ef8a1c80be9bf7d6790a38b16277
diff --git a/src/material.cpp b/src/material.cpp
index 294744f4..ee5d4bce 100644
--- a/src/material.cpp
+++ b/src/material.cpp
@@ -18,7 +18,6 @@
along with this program. If not, see .
*/
-#include // For std::min
#include
#include // For std::memset
@@ -70,14 +69,12 @@ namespace {
bool is_KBPsK(const Position& pos, Color us) {
return pos.non_pawn_material(us) == BishopValueMg
- && pos.count(us) == 1
&& pos.count(us) >= 1;
}
bool is_KQKRPs(const Position& pos, Color us) {
return !pos.count(us)
&& pos.non_pawn_material(us) == QueenValueMg
- && pos.count(us) == 1
&& pos.count(~us) == 1
&& pos.count(~us) >= 1;
}
@@ -132,7 +129,7 @@ Entry* probe(const Position& pos) {
Value npm_w = pos.non_pawn_material(WHITE);
Value npm_b = pos.non_pawn_material(BLACK);
- Value npm = std::max(EndgameLimit, std::min(npm_w + npm_b, MidgameLimit));
+ Value npm = clamp(npm_w + npm_b, EndgameLimit, MidgameLimit);
// Map total non-pawn material into [PHASE_ENDGAME, PHASE_MIDGAME]
e->gamePhase = Phase(((npm - EndgameLimit) * PHASE_MIDGAME) / (MidgameLimit - EndgameLimit));
@@ -152,9 +149,9 @@ Entry* probe(const Position& pos) {
// OK, we didn't find any special evaluation function for the current material
// configuration. Is there a suitable specialized scaling function?
- const EndgameBase* sf;
+ const auto* sf = pos.this_thread()->endgames.probe(key);
- if ((sf = pos.this_thread()->endgames.probe(key)) != nullptr)
+ if (sf)
{
e->scalingFunction[sf->strongSide] = sf; // Only strong color assigned
return e;