-/// A TTEntry needs 128 bits to be stored
-///
-/// bit 0-31: key
-/// bit 32-63: data
-/// bit 64-79: value
-/// bit 80-95: depth
-/// bit 96-111: static value
-/// bit 112-127: margin of static value
-///
-/// the 32 bits of the data field are so defined
-///
-/// bit 0-15: move
-/// bit 16-20: not used
-/// bit 21-22: value type
-/// bit 23-31: generation
-
-class TTEntry {
-
-public:
- void save(uint32_t k, Value v, Bound b, Depth d, Move m, int g, Value statV, Value statM) {
-
- key32 = (uint32_t)k;
- move16 = (uint16_t)m;
- bound = (uint8_t)b;
- generation8 = (uint8_t)g;
- value16 = (int16_t)v;
- depth16 = (int16_t)d;
- staticValue = (int16_t)statV;
- staticMargin = (int16_t)statM;
+/// key: 32 bit
+/// move: 16 bit
+/// bound type: 8 bit
+/// generation: 8 bit
+/// value: 16 bit
+/// depth: 16 bit
+/// static value: 16 bit
+
+struct TTEntry {
+
+ void save(uint32_t k, Value v, Bound b, Depth d, Move m, int g, Value ev) {
+
+ key32 = (uint32_t)k;
+ move16 = (uint16_t)m;
+ bound8 = (uint8_t)b;
+ generation8 = (uint8_t)g;
+ value16 = (int16_t)v;
+ depth16 = (int16_t)d;
+ evalValue = (int16_t)ev;