13 #include <boost/shared_ptr.hpp>
20 #ifndef PB_LEXBUCKETS_H
21 #define PB_LEXBUCKETS_H
29 static const int var_group_size=1;
45 buckets.push_back(back);
52 if (p.
isOne()) ones=
true;
57 while((front.isZero())&& (buckets.size()>0)){
58 increaseTailStart(tail_start+var_group_size);
64 void updateTailStart();
66 void increaseTailStart(
idx_type new_start);
74 if ((front.isZero()) && (ones) && (buckets.size()==0))
return true;
78 void usualAssertions(){
81 std::vector<Polynomial> buckets;
This class is just a wrapper for using variables for storing indices as interim data structure for Bo...
Definition: BooleExponent.h:34
bool_type isOne() const
Check whether polynomial is constant one.
Definition: BoolePolynomial.h:297
bool isOne()
Definition: LexBucket.h:72
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
bool_type isConstant() const
Check whether polynomial is zero or one.
Definition: BoolePolynomial.h:300
BoolePolyRing ring
Definition: LexBucket.h:30
LexBucket(const Polynomial &p)
Definition: LexBucket.h:36
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
LexBucket(const BoolePolyRing &input_ring)
Definition: LexBucket.h:31
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
Definition: LexBucket.h:26
#define PBORI_ASSERT(arg)
Definition: pbori_defs.h:118
void clearFront()
Definition: LexBucket.h:55
bool_type isZero() const
Check whether polynomial is constant zero.
Definition: BoolePolynomial.h:294
polybori::CTypes::idx_type idx_type
Definition: groebner_defs.h:44
Polynomial getFront()
Definition: LexBucket.h:68
Polynomial without_prior_part(Polynomial p, idx_type tail_start)
Definition: LexBucket.cc:23