8 std::cout <<
" number of calls = " <<
n_calls_find << std::endl;
9 std::cout <<
" number of clashes = " <<
n_clashes << std::endl;
26 if (hash ==
mBuckets.size()) hash = 0;
36 std::cout <<
"Growing hash table..." << std::flush;
41 std::vector<MonomialIndex> newBuckets(1<<
mLog2Size, 0);
48 std::cout <<
"...Done" << std::endl;
99 if (run >
mStats.max_run_length)
mStats.max_run_length = run;
107 if (hash ==
mBuckets.size()) hash = 0;
109 if (run >
mStats.max_run_length)
mStats.max_run_length = run;
118 std::cout <<
"--hash table info--" << std::endl;
119 std::cout <<
" size of hashtable = " <<
mBuckets.size() << std::endl;
120 std::cout <<
" threshold = " <<
mThreshold << std::endl;
121 std::cout <<
" number of monoms = " <<
size() << std::endl;
127 for (
long i=0; i <
mBuckets.size(); ++i)
129 if (i % 100 == 0) std::cout << std::endl;
132 std::cout << std::endl;
newf4::MonomialHashFunction and the new-F4 monomial-to-index hash table.
MemoryBlock mMonomialSpace
auto find(const MonomialView &m, HashInt mhash) -> MonomialIndex
Essentially the previous case when monomial(n) = monomial 1.
void dump() const
stats and debugging information.
std::vector< MonomialView > mMonomialPointers
std::vector< HashInt > mHashValues
auto size() const -> size_t
The actual number of monomials in the table.
MonomialHashTable(int log2size=19)
void reInsert(MonomialIndex i)
std::vector< MonomialIndex > mBuckets
void swap(mpfr::mpreal &x, mpfr::mpreal &y)
unsigned long monequal_fails
unsigned long n_calls_find
unsigned long monequal_count
unsigned long max_run_length