3#ifndef _monhashtable_h_
4#define _monhashtable_h_
90 return mMonoid.monomial_part_is_equal(m, n);
142 return mMonoid.monomial_part_is_equal(m, n);
157template <
typename ValueType>
160 typedef typename ValueType::value
value;
unsigned long monequal_count
std::unique_ptr< value[]> hashtab
MonomialHashTable(const ValueType *M0, int logsize=24)
unsigned long monequal_fails
void initialize(int logsize0)
bool find_or_insert(value m, value &result)
unsigned long max_run_length
unsigned long nfind_or_insert
Per-ring monomial layout / encoding helper used by F4GB.
bool is_equal(value m, value n) const
long hash_value(value m) const
MonomialsIgnoringComponent(const MonomialInfo &MI)
const MonomialInfo & mMonoid
long hash_value(value m) const
MonomialsWithComponent(const MonomialInfo &MI)
bool is_equal(value m, value n) const
const MonomialInfo & mMonoid
int hash_value(value m) const
res_packed_monomial value
ResMonomialsIgnoringComponent(const ResMonoid &MI)
const ResMonoid & mMonoid
bool is_equal(value m, value n) const
ResMonomialsWithComponent(const ResMonoid &MI)
res_packed_monomial value
bool is_equal(value m, value n) const
int hash_value(value m) const
const ResMonoid & mMonoid
VALGRIND_MAKE_MEM_DEFINED & result(result)
monomial_word * packed_monomial
MonomialInfo — F4's packed_monomial encoding plus operations.
ResMonoid dispatcher — single typedef switch between ResMonoidDense and ResMonoidSparse.
res_monomial_word * res_packed_monomial
Typed-monomial vocabulary shared by ResMonoid, ResPolyRing, SchreyerFrame, and F4Res.