+#include "search.h"
+#include "types.h"
+
+
+/// The Stats struct stores moves statistics. According to the template parameter
+/// the class can store History, Gains and Refutations statistics. History records
+/// how often different moves have been successful or unsuccessful during the
+/// current search and is used for reduction and move ordering decisions. Gains
+/// records the move's best evaluation gain from one ply to the next and is used
+/// for pruning decisions. Refutations store the move that refute a previous one.
+/// Entries are stored according only to moving piece and destination square, in
+/// particular two moves with different origin but same destination and same piece
+/// will be considered identical.
+template<bool Gain, typename T>
+struct Stats {
+
+ static const Value Max = Value(2000);