|
PolyBoRi
|
#include <BooleSet.h>
Public Types | |
| typedef BooleSet | self |
| Generic access to type of *this. | |
| typedef CTypes::dd_type | base |
| Generic access to base type. | |
| typedef base | dd_type |
| Generic access to underlying diagram type. | |
| typedef base::navigator | navigator |
| Iterator type for navigation throught Cudd's ZDDs structure. | |
| typedef base::size_type | size_type |
| Define size type. | |
| typedef base::idx_type | idx_type |
| Define index type. | |
| typedef BooleMonomial | term_type |
| Type of terms. | |
| typedef BooleExponent | exp_type |
| Fix type for treatment of exponent vectors. | |
| typedef BooleRing | ring_type |
| Type for Boolean polynomial rings (without ordering) | |
| typedef CGenericIter< LexOrder, navigator, term_type > | const_iterator |
| Iterator type for iterating all monomials. | |
| typedef CGenericIter< LexOrder, navigator, exp_type > | exp_iterator |
| Iterator type for iterating all exponent vectors. | |
Public Member Functions | |
| BooleSet () | |
| Default constructor. | |
| BooleSet (const self &rhs) | |
| Copy constructor. | |
| BooleSet (const base &rhs) | |
| Copy constructor. | |
| BooleSet (idx_type idx, const self &first, const self &second) | |
| Construct new node. | |
| BooleSet (idx_type idx, navigator first, navigator second, const ring_type &ring) | |
| Construct new node (using navigator nodes) | |
| BooleSet (idx_type idx, const self &rhs) | |
| Construct new node (using navigator for then and else-branches) | |
| BooleSet (navigator navi, const ring_type &ring) | |
| Construct one or zero set from constant. | |
| ~BooleSet () | |
| Destructor. | |
| const_iterator | begin () const |
| Start of iteration over terms. | |
| const_iterator | end () const |
| Finish of iteration over terms. | |
| exp_iterator | expBegin () const |
| Start of iteration over exponent vectors. | |
| exp_iterator | expEnd () const |
| Finish of iteration over exponent vectors. | |
| self & | operator= (const self &) |
| Assignment operator. | |
| term_type | usedVariables () const |
| Set of variables of the whole set. | |
| exp_type | usedVariablesExp () const |
| Exponent vector of variables of the whole set. | |
| self & | addAssign (const term_type &) |
| Add given monomial to sets and assign. | |
| self | add (const term_type &) const |
| Add given monomial to sets. | |
| bool_type | owns (const term_type &) const |
| Check whether rhs is included in *this. | |
| bool_type | owns (const exp_type &) const |
| Check whether rhs is included in *this. | |
| term_type | lastLexicographicalTerm () const |
| Get last term (wrt. lexicographical order) | |
| self | divisorsOf (const term_type &rhs) const |
| Compute intersection with divisors of rhs. | |
| self | divisorsOf (const exp_type &rhs) const |
| Compute intersection with divisors of rhs. | |
| self | firstDivisorsOf (const self &rhs) const |
| Intersection with divisors of first (lexicographical) term of rhs. | |
| self | multiplesOf (const term_type &rhs) const |
| Compute intersection with multiples of rhs. | |
| self | divide (const term_type &rhs) const |
| Division by given term. | |
| self & | divideAssign (const term_type &rhs) |
| Division with assignment by given term. | |
| bool_type | hasTermOfVariables (const term_type &rhs) const |
| Check for empty intersection with divisors of rhs. | |
| self | minimalElements () const |
| Get minimal elements wrt. inclusion. | |
| bool_type | isSingleton () const |
| Test, whether we have one term only. | |
| bool_type | isSingletonOrPair () const |
| Test, whether we have one or two terms only. | |
| bool_type | isPair () const |
| Test, whether we have two terms only. | |
| self | existAbstract (const term_type &rhs) const |
| Compute existential abstraction. | |
| const dd_type & | diagram () const |
| Access internal decision diagram. | |
| self | ite (const self &then_dd, const self &else_dd) |
| If-Then-Else operation. | |
| self & | iteAssign (const self &then_dd, const self &else_dd) |
| If-Then-Else operation with assignment. | |
| self | cartesianProduct (const self &rhs) const |
| Cartesean product. | |
| ostream_type & | print (ostream_type &) const |
| Print current set to output stream. | |
| self | emptyElement () const |
| Get corresponding zero element (may be removed in the future) | |
| size_type | countIndex (idx_type idx) const |
| Count terms containing BooleVariable(idx) | |
| double | countIndexDouble (idx_type idx) const |
| Count many terms containing BooleVariable(idx) | |
| ring_type | ring () const |
| Access ring, where this belongs to. | |
Members from base | |
| self | subset0 (idx_type idx) const |
| Generate subset, where decision diagram manager variable idx is false. | |
| self | subset1 (idx_type idx) const |
| Generate subset, where decision diagram manager variable idx is asserted. | |
| self | change (idx_type idx) const |
| Substitute variable with index idx by its complement. | |
| self | unite (const self &rhs) const |
| self | diff (const self &rhs) const |
| self | diffConst (const self &rhs) const |
| self | intersect (const self &rhs) const |
| self | product (const self &rhs) const |
| self | dotProduct (const self &rhs) const |
| self | Xor (const self &rhs) const |
| self | ddDivide (const self &rhs) const |
| self | weakDivide (const self &rhs) const |
| self | divideFirst (const self &rhs) const |
| self & | subset0Assign (idx_type idx) |
| self & | subset1Assign (idx_type idx) |
| subset1 with assignment | |
| self & | changeAssign (idx_type idx) |
| Change with assignment. | |
| self & | uniteAssign (const self &rhs) |
| self & | diffAssign (const self &rhs) |
| self & | diffConstAssign (const self &rhs) |
| self & | intersectAssign (const self &rhs) |
| self & | productAssign (const self &rhs) |
| self & | dotProductAssign (const self &rhs) |
| self & | ddDivideAssign (const self &rhs) |
| self & | weakDivideAssign (const self &rhs) |
| self & | divideFirstAssign (const self &rhs) |
Generic access to base type.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
| typedef CGenericIter<LexOrder, navigator, term_type> polybori::BooleSet::const_iterator |
Iterator type for iterating all monomials.
| typedef base polybori::BooleSet::dd_type |
Generic access to underlying diagram type.
| typedef CGenericIter<LexOrder, navigator, exp_type> polybori::BooleSet::exp_iterator |
Iterator type for iterating all exponent vectors.
Fix type for treatment of exponent vectors.
Define index type.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Iterator type for navigation throught Cudd's ZDDs structure.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
| typedef BooleRing polybori::BooleSet::ring_type |
Type for Boolean polynomial rings (without ordering)
| typedef BooleSet polybori::BooleSet::self |
Generic access to type of *this.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Define size type.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Type of terms.
Default constructor.
References PBORI_TRACE_FUNC.
| polybori::BooleSet::BooleSet | ( | const self & | rhs | ) | [inline] |
Copy constructor.
| polybori::BooleSet::BooleSet | ( | const base & | rhs | ) | [inline] |
Copy constructor.
| polybori::BooleSet::BooleSet | ( | idx_type | idx, |
| const self & | first, | ||
| const self & | second | ||
| ) | [inline] |
Construct new node.
| polybori::BooleSet::BooleSet | ( | idx_type | idx, |
| navigator | first, | ||
| navigator | second, | ||
| const ring_type & | ring | ||
| ) | [inline] |
Construct new node (using navigator nodes)
| polybori::BooleSet::BooleSet | ( | idx_type | idx, |
| const self & | rhs | ||
| ) | [inline] |
Construct new node (using navigator for then and else-branches)
| polybori::BooleSet::BooleSet | ( | navigator | navi, |
| const ring_type & | ring | ||
| ) | [inline] |
Construct one or zero set from constant.
Construct from navigator node
| polybori::BooleSet::~BooleSet | ( | ) | [inline] |
Destructor.
| BooleSet polybori::BooleSet::add | ( | const term_type & | rhs | ) | const |
Add given monomial to sets.
References PBORI_TRACE_FUNC.
| BooleSet & polybori::BooleSet::addAssign | ( | const term_type & | rhs | ) |
Add given monomial to sets and assign.
References polybori::BooleMonomial::diagram(), PBORI_TRACE_FUNC, and uniteAssign().
Start of iteration over terms.
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::gen_random_subset(), polybori::groebner::minimal_elements_internal(), print(), polybori::groebner::variety_lex_groebner_basis(), and polybori::groebner::variety_lex_leading_terms().
| self polybori::BooleSet::cartesianProduct | ( | const self & | rhs | ) | const [inline] |
Cartesean product.
| self polybori::BooleSet::change | ( | idx_type | idx | ) | const [inline] |
Substitute variable with index idx by its complement.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Referenced by polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::lower_term_accumulate(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), polybori::term_accumulate(), and polybori::groebner::translate_indices().
| self& polybori::BooleSet::changeAssign | ( | idx_type | idx | ) | [inline] |
Change with assignment.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
| BooleSet::size_type polybori::BooleSet::countIndex | ( | idx_type | idx | ) | const |
Count terms containing BooleVariable(idx)
References polybori::count_index(), and polybori::CDDInterface< CuddLikeZDD >::size().
| double polybori::BooleSet::countIndexDouble | ( | idx_type | idx | ) | const |
Count many terms containing BooleVariable(idx)
References polybori::count_index(), and polybori::CDDInterface< CuddLikeZDD >::size().
| self polybori::BooleSet::ddDivide | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::ddDivideAssign | ( | const self & | rhs | ) | [inline] |
| const dd_type& polybori::BooleSet::diagram | ( | ) | const [inline] |
Access internal decision diagram.
Referenced by divisorsOf().
| self polybori::BooleSet::diff | ( | const self & | rhs | ) | const [inline] |
Referenced by polybori::groebner::do_plug_1(), polybori::groebner::interpolate_smallest_lex(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::nf_lex_points(), polybori::groebner::random_interpolation(), polybori::groebner::variety_lex_leading_terms(), and polybori::groebner::zeros().
| self& polybori::BooleSet::diffAssign | ( | const self & | rhs | ) | [inline] |
| self polybori::BooleSet::diffConst | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::diffConstAssign | ( | const self & | rhs | ) | [inline] |
| BooleSet polybori::BooleSet::divide | ( | const term_type & | rhs | ) | const |
Division by given term.
References polybori::BooleMonomial::diagram(), and polybori::CDDInterface< CuddLikeZDD >::divideFirst().
| BooleSet & polybori::BooleSet::divideAssign | ( | const term_type & | rhs | ) |
Division with assignment by given term.
References polybori::BooleMonomial::diagram(), and polybori::CDDInterface< CuddLikeZDD >::divideFirstAssign().
| self polybori::BooleSet::divideFirst | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::divideFirstAssign | ( | const self & | rhs | ) | [inline] |
| BooleSet polybori::BooleSet::divisorsOf | ( | const term_type & | rhs | ) | const |
Compute intersection with divisors of rhs.
References polybori::BooleMonomial::diagram(), firstDivisorsOf(), and PBORI_TRACE_FUNC.
Referenced by hasTermOfVariables(), polybori::groebner::select1(), and polybori::groebner::select_no_deg_growth().
| BooleSet polybori::BooleSet::divisorsOf | ( | const exp_type & | rhs | ) | const |
Compute intersection with divisors of rhs.
References diagram(), firstDivisorsOf(), PBORI_TRACE_FUNC, and ring().
| self polybori::BooleSet::dotProduct | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::dotProductAssign | ( | const self & | rhs | ) | [inline] |
| self polybori::BooleSet::emptyElement | ( | ) | const [inline] |
Get corresponding zero element (may be removed in the future)
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Finish of iteration over terms.
References PBORI_TRACE_FUNC.
Referenced by print(), polybori::groebner::variety_lex_groebner_basis(), and polybori::groebner::variety_lex_leading_terms().
| BooleSet polybori::BooleSet::existAbstract | ( | const term_type & | rhs | ) | const |
Compute existential abstraction.
References polybori::dd_existential_abstraction(), polybori::BooleMonomial::diagram(), polybori::CDDInterface< CuddLikeZDD >::manager(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
Start of iteration over exponent vectors.
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::addPolynomialToReductor(), polybori::groebner::LexHelper::irreducible_lead(), polybori::groebner::minimal_elements_internal3(), polybori::groebner::select1(), and polybori::groebner::select_no_deg_growth().
Finish of iteration over exponent vectors.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::LexHelper::irreducible_lead(), polybori::groebner::minimal_elements_internal3(), polybori::groebner::select1(), and polybori::groebner::select_no_deg_growth().
| BooleSet polybori::BooleSet::firstDivisorsOf | ( | const self & | rhs | ) | const |
Intersection with divisors of first (lexicographical) term of rhs.
References polybori::dd_first_divisors_of(), polybori::CDDInterface< CuddLikeZDD >::manager(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
Referenced by divisorsOf().
| BooleSet::bool_type polybori::BooleSet::hasTermOfVariables | ( | const term_type & | rhs | ) | const |
Check for empty intersection with divisors of rhs.
References polybori::BooleMonomial::begin(), polybori::dd_owns_term_of_indices(), divisorsOf(), polybori::CDDInterface< CuddLikeZDD >::emptiness(), polybori::BooleMonomial::end(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
| self polybori::BooleSet::intersect | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::intersectAssign | ( | const self & | rhs | ) | [inline] |
| bool_type polybori::BooleSet::isPair | ( | ) | const [inline] |
Test, whether we have two terms only.
References polybori::dd_is_pair().
| bool_type polybori::BooleSet::isSingleton | ( | ) | const [inline] |
Test, whether we have one term only.
References polybori::dd_is_singleton().
| bool_type polybori::BooleSet::isSingletonOrPair | ( | ) | const [inline] |
Test, whether we have one or two terms only.
References polybori::dd_is_singleton_or_pair().
| self polybori::BooleSet::ite | ( | const self & | then_dd, |
| const self & | else_dd | ||
| ) | [inline] |
If-Then-Else operation.
| self& polybori::BooleSet::iteAssign | ( | const self & | then_dd, |
| const self & | else_dd | ||
| ) | [inline] |
If-Then-Else operation with assignment.
Get last term (wrt. lexicographical order)
References polybori::dd_last_lexicographical_term(), and PBORI_TRACE_FUNC.
| BooleSet polybori::BooleSet::minimalElements | ( | ) | const |
Get minimal elements wrt. inclusion.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
References polybori::dd_minimal_elements(), polybori::CDDInterface< CuddLikeZDD >::manager(), polybori::CDDInterface< CuddLikeZDD >::navigation(), ring(), and polybori::CDDInterface< CuddLikeZDD >::usedIndices().
Referenced by polybori::groebner::minimal_elements(), and polybori::groebner::variety_lex_leading_terms().
| BooleSet polybori::BooleSet::multiplesOf | ( | const term_type & | rhs | ) | const |
Compute intersection with multiples of rhs.
References polybori::dd_first_multiples_of(), polybori::BooleMonomial::diagram(), polybori::CDDInterface< CuddLikeZDD >::manager(), and polybori::CDDInterface< CuddLikeZDD >::navigation().
Referenced by polybori::groebner::reduce_by_binom().
Assignment operator.
References PBORI_TRACE_FUNC.
| BooleSet::bool_type polybori::BooleSet::owns | ( | const term_type & | rhs | ) | const |
Check whether rhs is included in *this.
References polybori::BooleMonomial::diagram(), polybori::CDDInterface< CuddLikeZDD >::emptiness(), intersect(), and PBORI_TRACE_FUNC.
| BooleSet::bool_type polybori::BooleSet::owns | ( | const exp_type & | rhs | ) | const |
Check whether rhs is included in *this.
References polybori::BooleExponent::begin(), polybori::dd_owns(), polybori::BooleExponent::end(), polybori::CDDInterface< CuddLikeZDD >::navigation(), and PBORI_TRACE_FUNC.
| BooleSet::ostream_type & polybori::BooleSet::print | ( | ostream_type & | os | ) | const |
Print current set to output stream.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
References begin(), polybori::dd_print_terms(), polybori::CDDInterface< CuddLikeZDD >::emptiness(), end(), polybori::CDDInterface< CuddLikeZDD >::managerCore(), and PBORI_TRACE_FUNC.
Referenced by polybori::operator<<().
| self polybori::BooleSet::product | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::productAssign | ( | const self & | rhs | ) | [inline] |
| ring_type polybori::BooleSet::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
Referenced by divisorsOf(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::minimal_elements_internal2(), and minimalElements().
| self polybori::BooleSet::subset0 | ( | idx_type | idx | ) | const [inline] |
Generate subset, where decision diagram manager variable idx is false.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Referenced by polybori::groebner::interpolate(), polybori::groebner::interpolate_smallest_lex(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::minimal_elements_internal3(), and polybori::groebner::zeros().
| self& polybori::BooleSet::subset0Assign | ( | idx_type | idx | ) | [inline] |
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
| self polybori::BooleSet::subset1 | ( | idx_type | idx | ) | const [inline] |
Generate subset, where decision diagram manager variable idx is asserted.
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
Referenced by polybori::groebner::interpolate(), polybori::groebner::interpolate_smallest_lex(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::reduce_by_monom(), polybori::groebner::reduce_complete(), polybori::groebner::sum_size(), and polybori::groebner::zeros().
| self& polybori::BooleSet::subset1Assign | ( | idx_type | idx | ) | [inline] |
subset1 with assignment
Reimplemented from polybori::CDDInterface< CuddLikeZDD >.
| self polybori::BooleSet::unite | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::uniteAssign | ( | const self & | rhs | ) | [inline] |
Referenced by addAssign().
Set of variables of the whole set.
References PBORI_TRACE_FUNC.
Exponent vector of variables of the whole set.
References PBORI_TRACE_FUNC, and polybori::CDDInterface< CuddLikeZDD >::usedIndices().
| self polybori::BooleSet::weakDivide | ( | const self & | rhs | ) | const [inline] |
| self& polybori::BooleSet::weakDivideAssign | ( | const self & | rhs | ) | [inline] |
| self polybori::BooleSet::Xor | ( | const self & | rhs | ) | const [inline] |
Referenced by polybori::groebner::zeros().
1.7.6.1