X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.cpp;h=845519bc41648cedd2a7933564d4307b5ceafffa;hp=69588c8cd597f79c8413bed432b13f2ebeecb2b4;hb=03f524c591c90120302e127cd0c1adba4c498806;hpb=5c81602d14539f8259a715477315e28b5de7cb54 diff --git a/src/material.cpp b/src/material.cpp index 69588c8c..845519bc 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -23,12 +23,12 @@ //// #include -#include #include #include #include "material.h" +using std::string; //// //// Local definitions @@ -36,6 +36,7 @@ namespace { + // Values modified by Joona Kiiski const Value BishopPairMidgameBonus = Value(109); const Value BishopPairEndgameBonus = Value(97); @@ -59,9 +60,9 @@ public: EndgameScalingFunctionBase* getESF(Key key, Color* c) const; private: - void add(const std::string& keyCode, EndgameEvaluationFunctionBase* f); - void add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f); - Key buildKey(const std::string& keyCode); + void add(const string& keyCode, EndgameEvaluationFunctionBase* f); + void add(const string& keyCode, Color c, EndgameScalingFunctionBase* f); + Key buildKey(const string& keyCode); struct ScalingInfo { @@ -92,7 +93,6 @@ MaterialInfoTable::MaterialInfoTable(unsigned int numOfEntries) { << " bytes for material hash table." << std::endl; Application::exit_with_failure(); } - clear(); } @@ -100,17 +100,8 @@ MaterialInfoTable::MaterialInfoTable(unsigned int numOfEntries) { MaterialInfoTable::~MaterialInfoTable() { - delete [] entries; delete funcs; -} - - -/// MaterialInfoTable::clear() clears a material hash table by setting -/// all entries to 0. - -void MaterialInfoTable::clear() { - - memset(entries, 0, size * sizeof(MaterialInfo)); + delete [] entries; } @@ -152,14 +143,14 @@ MaterialInfo* MaterialInfoTable::get_material_info(const Position& pos) { else if ( pos.non_pawn_material(BLACK) == Value(0) && pos.piece_count(BLACK, PAWN) == 0 - && pos.non_pawn_material(WHITE) >= RookValueEndgame) + && pos.non_pawn_material(WHITE) >= RookValueMidgame) { mi->evaluationFunction = &EvaluateKXK; return mi; } else if ( pos.non_pawn_material(WHITE) == Value(0) && pos.piece_count(WHITE, PAWN) == 0 - && pos.non_pawn_material(BLACK) >= RookValueEndgame) + && pos.non_pawn_material(BLACK) >= RookValueMidgame) { mi->evaluationFunction = &EvaluateKKX; return mi; @@ -352,7 +343,7 @@ EndgameFunctions::EndgameFunctions() { add("KRPKRPP", BLACK, &ScaleKRPKRPP); } -Key EndgameFunctions::buildKey(const std::string& keyCode) { +Key EndgameFunctions::buildKey(const string& keyCode) { assert(keyCode.length() > 0 && keyCode[0] == 'K'); assert(keyCode.length() < 8); @@ -373,12 +364,12 @@ Key EndgameFunctions::buildKey(const std::string& keyCode) { return Position(s.str()).get_material_key(); } -void EndgameFunctions::add(const std::string& keyCode, EndgameEvaluationFunctionBase* f) { +void EndgameFunctions::add(const string& keyCode, EndgameEvaluationFunctionBase* f) { EEFmap.insert(std::pair(buildKey(keyCode), f)); } -void EndgameFunctions::add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f) { +void EndgameFunctions::add(const string& keyCode, Color c, EndgameScalingFunctionBase* f) { ScalingInfo s = {c, f}; ESFmap.insert(std::pair(buildKey(keyCode), s));