- int16_t mgValue;
- int16_t egValue;
- uint8_t factor[2];
- EndgameEvaluationFunctionBase* evaluationFunction;
- EndgameScalingFunctionBase* scalingFunction[2];
- uint8_t 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.
-
-class MaterialInfoTable {
-
-public:
- MaterialInfoTable(unsigned numOfEntries);
- ~MaterialInfoTable();
- void clear();
- MaterialInfo* get_material_info(const Position& pos);
-
-private:
- unsigned size;
- MaterialInfo* entries;
- EndgameFunctions* funcs;
+ int16_t value;
+ uint8_t factor[COLOR_NB];
+ EndgameBase<Value>* evaluationFunction;
+ EndgameBase<ScaleFactor>* scalingFunction[COLOR_NB];
+ Score spaceWeight;
+ Phase gamePhase;