16 #ifndef polybori_groebner_ReductionStrategy_h_
17 #define polybori_groebner_ReductionStrategy_h_
45 PolyEntryVector::append(entry);
46 setupSetsForElement(back());
54 return (optRedTail? reducedNormalForm(p): headNormalForm(p));
62 int select1(
const Monomial& m)
const;
68 return select_short_by_terms(m.
divisors());
83 int select_short_by_terms(
const MonomialSet&)
const;
90 void setupSetsForElement(
const PolyEntry& entry);
93 template <
class Iterator,
class CompareType>
96 start = std::min_element(start, finish, comp);
100 return index(*start);
ReductionStrategy(const BoolePolyRing &ring)
Definition: ReductionStrategy.h:39
This class is just a wrapper for using variables for storing indices as interim data structure for Bo...
Definition: BooleExponent.h:34
void append(const PolyEntry &entry)
Definition: ReductionStrategy.h:51
Definition: PolyEntryVector.h:28
data_type::size_type size_type
Definition: PolyEntryVector.h:35
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
exp_iterator expEnd() const
Finish of iteration over exponent vectors.
Definition: BooleSet.cc:109
bool irreducible_lead(Monomial lm, const ReductionStrategy &strat)
Definition: ReductionStrategy.h:107
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and v...
Definition: BoolePolyRing.h:40
bool canRewrite(const Polynomial &p) const
Definition: ReductionStrategy.h:57
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
exp_iterator expBegin() const
Start of iteration over exponent vectors.
Definition: BooleSet.cc:101
This class defines PolyEntry.
Definition: PolyEntry.h:32
int select_short(const Monomial &m) const
Definition: ReductionStrategy.h:67
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
This class set the attribute minimal of a given index to a valued selected by the template parameter ...
Definition: SetAssociatedMinimal.h:32
set_type divisors() const
Divisors of the monomial.
Definition: BooleMonomial.h:154
int select_short(const Polynomial &p) const
Definition: ReductionStrategy.h:64
This class defines term for ReductionStrategy.
Definition: ReductionTerms.h:46
size_type minimum(Iterator start, Iterator finish, const CompareType &comp) const
Definition: ReductionStrategy.h:94
bool is_rewriteable(const Polynomial &p, const MonomialSet &leading_terms)
Definition: polynomial_properties.cc:104
Polynomial nf(const Polynomial &p) const
Definition: ReductionStrategy.h:53
void unmarkNonMinimalLeadingTerms(MonomialSet removed)
Definition: ReductionStrategy.h:85
set_type leadDivisors() const
Get all divisors of the leading term.
Definition: BoolePolynomial.h:328
bool_type hasTermOfVariables(const term_type &rhs) const
Definition: BooleSet.cc:182
This class defines option values for the ReductionStrategy.
Definition: ReductionOptions.h:29
Definition: BooleSet.h:57
This class defines ReductionStrategy.
Definition: ReductionStrategy.h:34
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleMonomial.h:50
MinimalLeadingTerms minimalLeadingTerms
Definition: ReductionTerms.h:52
#define PBORI_UNLIKELY(expression)
Definition: pbori_defs.h:59
void for_each(InIter start, InIter finish, Object &obj, MemberFuncPtr func)
Definition: pbori_algo.h:857
void addGenerator(const PolyEntry &entry)
Adding next element.
Definition: ReductionStrategy.h:44