X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmaterial.cpp;h=3a05f3faf6b374aee5bd72ea221dd12fce3281b4;hb=0dbc72d82e7f5f314499b22a04dcef45edcdba9a;hp=773f332f20fddfdcebfacf441af9b2f18b19bd82;hpb=2f11c03bbf61d8da2e2b201e4607c4aa9b5a5dc4;p=stockfish
diff --git a/src/material.cpp b/src/material.cpp
index 773f332f..3a05f3fa 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
@@ -130,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));
@@ -138,7 +137,7 @@ Entry* probe(const Position& pos) {
// Let's look if we have a specialized evaluation function for this particular
// material configuration. Firstly we look for a fixed configuration one, then
// for a generic one if the previous search failed.
- if ((e->evaluationFunction = pos.this_thread()->endgames.probe(key)) != nullptr)
+ if ((e->evaluationFunction = Endgames::probe(key)) != nullptr)
return e;
for (Color c = WHITE; c <= BLACK; ++c)
@@ -150,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 = 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;