]> git.sesse.net Git - stockfish/blobdiff - src/material.h
Better naming and document some endgame functions
[stockfish] / src / material.h
index 7730a4c95b1cf5e1b65a3ab453f3b09190638bcf..8f9f375116e77c92fcfb06311e3f5d1c0fe5f0b3 100644 (file)
@@ -51,8 +51,7 @@ class MaterialInfo {
 public:
   MaterialInfo() : key(0) { clear(); }
 
 public:
   MaterialInfo() : key(0) { clear(); }
 
-  Value mg_value() const;
-  Value eg_value() const;
+  Value material_value() const;
   ScaleFactor scale_factor(const Position& pos, Color c) const;
   int space_weight() const;
   bool specialized_eval_exists() const;
   ScaleFactor scale_factor(const Position& pos, Color c) const;
   int space_weight() const;
   bool specialized_eval_exists() const;
@@ -62,27 +61,18 @@ private:
   inline void clear();
 
   Key key;
   inline void clear();
 
   Key key;
-  int16_t mgValue;
-  int16_t egValue;
+  int16_t value;
   uint8_t factor[2];
   EndgameEvaluationFunctionBase* evaluationFunction;
   EndgameScalingFunctionBase* scalingFunction[2];
   int spaceWeight;
 };
 
   uint8_t factor[2];
   EndgameEvaluationFunctionBase* evaluationFunction;
   EndgameScalingFunctionBase* scalingFunction[2];
   int spaceWeight;
 };
 
-
-/// EndgameFunctions class stores the endgame evaluation functions std::map.
-/// Because STL library is not thread safe even for read access, the maps,
-/// although with identical content, are replicated for each thread. This
-/// is faster then using locks with an unique set of global maps.
-
-class EndgameFunctions;
-
-
 /// The MaterialInfoTable class represents a pawn hash table. It is basically
 /// just an array of MaterialInfo objects and a few methods for accessing these
 /// objects. The most important method is get_material_info, which looks up a
 /// position in the table and returns a pointer to a MaterialInfo object.
 /// The MaterialInfoTable class represents a pawn hash table. It is basically
 /// just an array of MaterialInfo objects and a few methods for accessing these
 /// objects. The most important method is get_material_info, which looks up a
 /// position in the table and returns a pointer to a MaterialInfo object.
+class EndgameFunctions;
 
 class MaterialInfoTable {
 
 
 class MaterialInfoTable {
 
@@ -102,17 +92,12 @@ private:
 //// Inline functions
 ////
 
 //// Inline functions
 ////
 
-/// MaterialInfo::mg_value and MaterialInfo::eg_value simply returns the
-/// material balance evaluation for the middle game and the endgame.
-
-inline Value MaterialInfo::mg_value() const {
-
-  return Value(mgValue);
-}
+/// MaterialInfo::material_value simply returns the material balance
+/// evaluation that is independent from game phase.
 
 
-inline Value MaterialInfo::eg_value() const {
+inline Value MaterialInfo::material_value() const {
 
 
-  return Value(egValue);
+  return Value(value);
 }
 
 
 }
 
 
@@ -121,7 +106,7 @@ inline Value MaterialInfo::eg_value() const {
 
 inline void MaterialInfo::clear() {
 
 
 inline void MaterialInfo::clear() {
 
-  mgValue = egValue = 0;
+  value = 0;
   factor[WHITE] = factor[BLACK] = uint8_t(SCALE_FACTOR_NORMAL);
   evaluationFunction = NULL;
   scalingFunction[WHITE] = scalingFunction[BLACK] = NULL;
   factor[WHITE] = factor[BLACK] = uint8_t(SCALE_FACTOR_NORMAL);
   evaluationFunction = NULL;
   scalingFunction[WHITE] = scalingFunction[BLACK] = NULL;