12#define NOT_FOUND (std::size_t)(-1)
13#define END_OF_LIST (std::size_t)(-1)
14#define REMOVED (std::size_t)(-2)
70 while (
mask < initsize)
90 std::size_t h =
hash(x,y);
114 std::size_t i, prev_i;
115 std::size_t h =
hash(x,y);
120 if (b.
x == x && b.
y == y)
133 if (b.
x == x && b.
y == y)
147 std::size_t i =
table[h];
152 if (b.
x == x && b.
y == y)
169 for (std::size_t i = 0; i <
buckets.size(); ++i)
185 return ((159403*x + 389651*y) &
mask);
191 while (
mask < initsize)
211 std::size_t h =
hash(x,y,z);
236 std::size_t i, prev_i;
237 std::size_t h =
hash(x,y,z);
242 if (b.
x == x && b.
y == y && b.
z == z)
255 if (b.
x == x && b.
y == y && b.
z == z)
269 std::size_t i =
table[h];
274 if (b.
x == x && b.
y == y && b.
z == z)
291 for (std::size_t i = 0; i <
buckets.size(); ++i)
307 return ((159403*x + 389651*y + 521503*z) &
mask);
hash_table2_iterator(hash_table2 *ht)
std::vector< bucket2 >::iterator bucket_it
std::vector< bucket2 > buckets
bool find(std::size_t x, std::size_t y)
std::size_t removed_count
std::size_t hash(std::size_t x, std::size_t y)
void remove(std::size_t x, std::size_t y)
void add(std::size_t x, std::size_t y)
std::size_t hfind(std::size_t h, std::size_t x, std::size_t y)
std::vector< std::size_t > table
hash_table2(std::size_t initsize)
std::vector< bucket3 >::iterator bucket_it
hash_table3_iterator(hash_table3 *ht)
std::vector< bucket3 >::iterator end
hash_table3(std::size_t initsize)
std::size_t hash(std::size_t x, std::size_t y, std::size_t z)
bool find(std::size_t x, std::size_t y, std::size_t z)
void remove(std::size_t x, std::size_t y, std::size_t z)
void add(std::size_t x, std::size_t y, std::size_t z)
std::size_t removed_count
std::vector< bucket3 > buckets
std::size_t hfind(std::size_t h, std::size_t x, std::size_t y, std::size_t z)
std::vector< std::size_t > table
Header file for hash table data structure used by the simulation preorder algorithm.