68#define sizeofspair(s, len) \
69 (sizeof(*s) - sizeof(s->lcm) + (len) * sizeof(s->lcm[0]))
212 return M->compare(
cols[a].monom,
cols[b].monom);
217 int newret =
M->compare(
cols[a].monom,
cols[b].monom);
218 return (newret ==
GT);
264 return M->compare(
gb[a]->f.monoms,
gb[b]->f.monoms);
269 return (
M->compare(
gb[a]->f.monoms,
gb[b]->f.monoms) ==
LT);
347 if (a.
deg > b.
deg)
return true;
348 if (a.
deg < b.
deg)
return false;
349 if (a.
i > b.
i)
return true;
Coefficient-ring-erased arithmetic dispatcher used by F4, GB, and resolution code.
int compare(value a, value b)
void reset_ncomparisons()
MonomialInfo::value monomial
long ncomparisons0() const
bool operator()(value a, value b)
const coefficient_matrix::column_array & cols
ColumnsSorter(const MonomialInfo *M0, const coefficient_matrix *mat0)
long ncomparisons() const
Type-erased owning handle to a dense coefficient vector held by a ConcreteVectorArithmetic<Ring>.
static int compare(ConstExponents a, ConstExponents b)
int compare(value a, value b)
MonomialInfo::value monomial
void reset_ncomparisons()
GBSorter(const MonomialInfo *M0, const gb_array &gb0)
long ncomparisons0() const
bool operator()(value a, value b)
long ncomparisons() const
Per-ring monomial layout / encoding helper used by F4GB.
long ncomparisons() const
bool operator()(value a, value b)
int compare(value a, value b)
void reset_ncomparisons()
SPairCompare(const std::vector< spair > &spairs)
const std::vector< spair > & mSPairs
bool operator()(size_t s, size_t t) const
F4MonomialLookupTableT<Key> — monomial-ideal trie for divisor lookup.
int(MonomialInfo::* CompareFunction)(const monomial_word *, const monomial_word *) const
F4MonomialLookupTableT< int32_t > MonomialLookupTable
std::vector< gbelem * > gb_array
monomial_word * packed_monomial
MonomialInfo — F4's packed_monomial encoding plus operations.
our_new_delete — per-class opt-in routing of new / delete through bdwgc.
Compact polynomial layout used inside the F4 GB engine.
std::vector< column_elem > column_array
std::vector< row_elem > row_array
spair(SPairType t, int deg0, int i0, int j0, monomial_word *lcm0)
Engine-wide stylistic constants: LT / EQ / GT codes, INTSIZE, GEOHEAP_SIZE.
varpower_word * varpower_monomial
F4's (variable, exponent) sparse-monomial ExponentList specialisation (legacy).