]> git.sesse.net Git - stockfish/blobdiff - src/material.cpp
Revert last tweaks
[stockfish] / src / material.cpp
index 69588c8cd597f79c8413bed432b13f2ebeecb2b4..845519bc41648cedd2a7933564d4307b5ceafffa 100644 (file)
 ////
 
 #include <cassert>
-#include <cstring>
 #include <sstream>
 #include <map>
 
 #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<Key, EndgameEvaluationFunctionBase*>(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<Key, ScalingInfo>(buildKey(keyCode), s));