]> git.sesse.net Git - stockfish/blobdiff - src/material.h
Use std::vector to implement HashTable
[stockfish] / src / material.h
index c5484c49032395da2e20f248c4a0ab3549d78c72..75074f91bbe411199acd48a20e0e7b9c3d1bd8f6 100644 (file)
@@ -21,8 +21,8 @@
 #define MATERIAL_H_INCLUDED
 
 #include "endgame.h"
+#include "misc.h"
 #include "position.h"
-#include "tt.h"
 #include "types.h"
 
 const int MaterialTableSize = 8192;
@@ -46,7 +46,7 @@ enum Phase {
 
 class MaterialEntry {
 
-  friend class MaterialTable;
+  friend struct MaterialTable;
 
 public:
   Score material_value() const;
@@ -70,19 +70,14 @@ private:
 /// The MaterialTable class represents a material hash table. The most important
 /// method is probe(), which returns a pointer to a MaterialEntry object.
 
-class MaterialTable : public HashTable<MaterialEntry, MaterialTableSize> {
-public:
-  MaterialTable() : funcs(new Endgames()) {}
-  ~MaterialTable() { delete funcs; }
+struct MaterialTable {
 
-  MaterialEntry* probe(const Position& pos) const;
+  MaterialEntry* probe(const Position& pos);
   static Phase game_phase(const Position& pos);
+  template<Color Us> static int imbalance(const int pieceCount[][8]);
 
-private:
-  template<Color Us>
-  static int imbalance(const int pieceCount[][8]);
-
-  Endgames* funcs;
+  HashTable<MaterialEntry, MaterialTableSize> entries;
+  Endgames endgames;
 };