16 #ifndef polybori_groebner_PairManager_h_
17 #define polybori_groebner_PairManager_h_
41 typedef std::priority_queue<Pair, std::vector<PairE>,
PairECompare>
50 appendTo(vec, temp.top());
56 if (!skip(pair, isHFE)) queue.push(pair);
68 template <
class StrategyType>
71 while(!pairSetEmpty() && continuing(queue.top()))
81 Pair result = queue.top();
87 bool skip(
const Pair& pair,
bool isHFE) {
91 void appendTo(std::vector<Polynomial>& vec,
const Pair& current)
const {
93 appendTo(vec, current.delayedPair().p);
97 void appendTo(std::vector<Polynomial>& vec,
const Polynomial& poly)
const {
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
This class computes the next spoly for a generator pair.
Definition: NextSpoly.h:30
dd_type zero() const
Get empty decision diagram.
Definition: BoolePolyRing.cc:42
PairE Pair
Definition: pairs.h:40
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and v...
Definition: BoolePolyRing.h:40
BoolePolynomial Polynomial
Definition: embed.h:51
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
This class defines PairE.
Definition: PairE.h:28
void cleanTopByChainCriterion(StrategyType &strat)
Definition: PairManager.h:69
PairStatusSet status
Definition: PairManager.h:75
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
const ring_type & ring() const
Get reference to ring.
Definition: CCuddDDFacade.h:250
Polynomial nextSpoly(ReductionStrategy &gen)
Definition: PairManager.h:59
This class defines CheckChainCriterion.
Definition: CheckChainCriterion.h:30
void appendHiddenGenerators(std::vector< Polynomial > &vec)
Definition: PairManager.h:47
deg_type sugar
Definition: PairE.h:36
int getType() const
Definition: PairE.h:32
PairManager(const BoolePolyRing &ring)
Definition: PairManager.h:44
This class defines PairManager.
Definition: PairManager.h:37
Pair popped()
top() and pop() at once
Definition: PairManager.h:80
This class defines PairECompare.
Definition: PairECompare.h:28
queue_type queue
Definition: PairManager.h:76
bool pairSetEmpty() const
Definition: PairManager.h:66
std::priority_queue< Pair, std::vector< PairE >, PairECompare > queue_type
Definition: PairManager.h:42
LeadingTerms leadingTerms
Definition: ReductionTerms.h:51
void introducePair(const Pair &pair, bool isHFE)
Definition: PairManager.h:55
This class defines ReductionStrategy.
Definition: ReductionStrategy.h:34
This class defines PairStatusSet.
Definition: PairStatusSet.h:30
#define PBORI_UNLIKELY(expression)
Definition: pbori_defs.h:59