#ifndef TT_LLCHT_H #define TT_LLCHT_H #include #include #include // =================================================================== // Types // =================================================================== enum TT_FLAG { TT_EXACT, TT_LOWERBOUND, TT_UPPERBOUND }; typedef struct tt_node_s { uint64_t key; struct tt_node_s *next; enum TT_FLAG flag; uint8_t depth; float value; action_t action; } tt_entry_t; // =================================================================== // Globals // =================================================================== #define TT_LLCHT_SIZE ((uint32_t)((1<<19) - 1)) extern uint32_t tt_num_cached; // =================================================================== // Methods // =================================================================== int tt_init(void); void tt_free(void); tt_entry_t *tt_seek(const uint64_t key); int tt_insert(const uint64_t key, const enum TT_FLAG flag, const uint8_t depth, const float value, const action_t action); #endif