|
PolyBoRi
|
This class defines LLReductor. More...
#include <LLReductor.h>
Public Member Functions | |
| LLReductor (const BoolePolyRing &ring) | |
| Construct reductor from Ring. More... | |
| template<class Type > | |
| LLReductor (const Type &value) | |
| Construct copy or MonomialSet. More... | |
| bool | isCompatible (const PolyEntry &entry) |
| Test whether polynomial is a compatible reductor element. More... | |
| Polynomial | update (const PolyEntry &entry) |
| Insert polynomial if compatible, return updated polynomial. More... | |
Public Member Functions inherited from polybori::BooleSet | |
| BooleSet (const self &rhs) | |
| Copy constructor. More... | |
| BooleSet (const base &rhs) | |
| Copy constructor. More... | |
| BooleSet (idx_type idx, const self &first, const self &second) | |
| Construct new node. More... | |
| BooleSet (idx_type idx, navigator first, navigator second, const ring_type &ring) | |
| Construct new node (using navigator nodes) More... | |
| BooleSet (const ring_type &ring, node_ptr node) | |
| Construct new node (using nodes) More... | |
| BooleSet (const ring_type &ring, navigator navi) | |
| Construct new node (using navigator nodes) More... | |
| BooleSet (const ring_type &ring) | |
| Construct empty set in ring. More... | |
| BooleSet (idx_type idx, const self &rhs) | |
| Construct new node (using navigator for then and else-branches) More... | |
| BooleSet (navigator navi, const ring_type &ring) | |
| Construct from navigator node. More... | |
| ~BooleSet () | |
| Destructor. More... | |
| const_iterator | begin () const |
| Start of iteration over terms. More... | |
| const_iterator | end () const |
| Finish of iteration over terms. More... | |
| const_reverse_iterator | rbegin () const |
| Start of backward iteration over terms. More... | |
| const_reverse_iterator | rend () const |
| Finish of backward iteration over terms. More... | |
| reverse_exp_iterator | rExpBegin () const |
| Start of backward exponent iteration over terms. More... | |
| reverse_exp_iterator | rExpEnd () const |
| Finish of backward iteration over terms. More... | |
| exp_iterator | expBegin () const |
| Start of iteration over exponent vectors. More... | |
| exp_iterator | expEnd () const |
| Finish of iteration over exponent vectors. More... | |
| hash_type | hash () const |
| Get unique hash value (valid only per runtime) More... | |
| hash_type | stableHash () const |
| Get stable hash value, which is reproducible. More... | |
| term_type | usedVariables () const |
| Set of variables of the whole set. More... | |
| exp_type | usedVariablesExp () const |
| Exponent vector of variables of the whole set. More... | |
| self | change (idx_type idx) const |
| self | add (const term_type &rhs) const |
| Add given monomial to sets. More... | |
| bool_type | owns (const term_type &rhs) const |
| bool_type | owns (const exp_type &) const |
| Check whether rhs is included in *this. More... | |
| term_type | lastLexicographicalTerm () const |
| Get last term (wrt. lexicographical order) More... | |
| self | divisorsOf (const term_type &rhs) const |
| Compute intersection with divisors of rhs. More... | |
| self | divisorsOf (const exp_type &rhs) const |
| Compute intersection with divisors of rhs. More... | |
| self | firstDivisorsOf (const self &rhs) const |
| Intersection with divisors of first (lexicographical) term of rhs. More... | |
| self | multiplesOf (const term_type &rhs) const |
| Compute intersection with multiples of rhs. More... | |
| self | divide (const term_type &rhs) const |
| Division by given term. More... | |
| bool_type | hasTermOfVariables (const term_type &rhs) const |
| self | minimalElements () const |
| Get minimal elements wrt. inclusion. More... | |
| bool_type | ownsOne () const |
| Test whether the empty set is included. More... | |
| bool_type | isSingleton () const |
| Test, whether we have one term only. More... | |
| bool_type | isSingletonOrPair () const |
| Test, whether we have one or two terms only. More... | |
| bool_type | isPair () const |
| Test, whether we have two terms only. More... | |
| self | existAbstract (const term_type &rhs) const |
| const self & | diagram () const |
| Access internal decision diagram. More... | |
| self | cartesianProduct (const self &rhs) const |
| Cartesean product. More... | |
| bool_type | contains (const self &rhs) const |
| Test containment. More... | |
| size_type | size () const |
| Returns number of terms. More... | |
| size_type | length () const |
| Returns number of terms (deprecated) More... | |
| size_type | nVariables () const |
| Returns number of variables in manager. More... | |
| double | sizeDouble () const |
| Approximation of number of terms. More... | |
| ostream_type & | print (ostream_type &) const |
| Print current set to output stream. More... | |
| self | emptyElement () const |
| Get corresponding zero element (may be removed in the future) More... | |
| size_type | countIndex (idx_type idx) const |
| Count terms containing BooleVariable(idx) More... | |
| double | countIndexDouble (idx_type idx) const |
| Count many terms containing BooleVariable(idx) More... | |
| bool_type | containsDivisorsOfDecDeg (const term_type &rhs) const |
| Test whether, all divisors of degree -1 of term rhs are contained in this. More... | |
| bool_type | containsDivisorsOfDecDeg (const exp_type &rhs) const |
| Test for term corresponding to exponent rhs. More... | |
Public Member Functions inherited from polybori::CCuddDDFacade< BoolePolyRing, BooleSet > | |
| CCuddDDFacade (const ring_type &ring, node_ptr node) | |
| Construct diagram from ring and node. More... | |
| CCuddDDFacade (const ring_type &ring, const navigator &navi) | |
| Construct from Manager and navigator. More... | |
| CCuddDDFacade (const ring_type &ring, idx_type idx, navigator thenNavi, navigator elseNavi) | |
| Construct new node from manager, index, and navigators. More... | |
| CCuddDDFacade (const ring_type &ring, idx_type idx, navigator navi) | |
| CCuddDDFacade (idx_type idx, const self &thenDD, const self &elseDD) | |
| Construct new node. More... | |
| CCuddDDFacade (const self &from) | |
| Copy constructor. More... | |
| ~CCuddDDFacade () | |
| Destructor. More... | |
| diagram_type & | operator= (const diagram_type &rhs) |
| Assignment operator. More... | |
| *bool | implies (const self &rhs) const |
| Performs the inclusion test for ZDDs. More... | |
| size_type | count () const |
| Determine the number of terms. More... | |
| double | countDouble () const |
| Appriximate the number of terms. More... | |
| size_type | rootIndex () const |
| Get index of curent node. More... | |
| size_type | nNodes () const |
| Number of nodes in the current decision diagram. More... | |
| size_type | refCount () const |
| Number of references pointing here. More... | |
| bool | isZero () const |
| Test whether diagram represents the empty set. More... | |
| bool | isOne () const |
| Test whether diagram represents the empty set. More... | |
| const ring_type & | ring () const |
| Get reference to ring. More... | |
| node_ptr | getNode () const |
| Get raw node structure. More... | |
| mgr_type * | getManager () const |
| Get raw decision diagram manager. More... | |
| diagram_type | Xor (const diagram_type &rhs) const |
| Union Xor. More... | |
| diagram_type | divideFirst (const diagram_type &rhs) const |
| Division with first term of right-hand side. More... | |
| ostream_type & | print (ostream_type &os) const |
| Get number of nodes in decision diagram. More... | |
| first_iterator | firstBegin () const |
| Get numbers of used variables. More... | |
| first_iterator | firstEnd () const |
| Finish of first term. More... | |
| last_iterator | lastBegin () const |
| Start of first term. More... | |
| last_iterator | lastEnd () const |
| Finish of first term. More... | |
| diagram_type | firstMultiples (const std::vector< idx_type > &input_multipliers) const |
| Get decison diagram representing the multiples of the first term. More... | |
| diagram_type | firstDivisors () const |
| Get decison diagram representing the divisors of the first term. More... | |
| navigator | navigation () const |
| Navigate through ZDD by incrementThen(), incrementElse(), and terminated() More... | |
| bool_type | isConstant () const |
| Checks whether the the diagram corresponds to {} or {{}} (polynomial 0 or 1) More... | |
| std::ostream & | printIntern (std::ostream &os) const |
| void | PrintMinterm () const |
Public Member Functions inherited from polybori::CApplyNodeFacade< BooleSet, DdNode * > | |
| bool | operator== (const diagram_type &rhs) const |
| Equality. More... | |
| bool | operator!= (const diagram_type &rhs) const |
| Nonequality. More... | |
Additional Inherited Members | |
Public Types inherited from polybori::BooleSet | |
| typedef self | dd_type |
| Generic access to type of *this. More... | |
| typedef CCuddDDFacade< BoolePolyRing, BooleSet > | base |
| Generic access to base type. More... | |
| typedef BooleMonomial | term_type |
| Type of terms. More... | |
| typedef BooleExponent | exp_type |
| Fix type for treatment of exponent vectors. More... | |
| typedef BoolePolyRing | ring_type |
| Type for Boolean polynomial rings (without ordering) More... | |
| typedef CGenericIter< LexOrder, navigator, term_type > | const_iterator |
| Iterator type for iterating all monomials. More... | |
| typedef CGenericIter< LexOrder, navigator, exp_type > | exp_iterator |
| Iterator type for iterating all exponent vectors. More... | |
| typedef CReverseIter< LexOrder, navigator, exp_type > | reverse_exp_iterator |
| Iterator type for iterating all exponent vectors. More... | |
| typedef CReverseIter< LexOrder, navigator, term_type > | const_reverse_iterator |
| Iterator type for iterating all monomials. More... | |
Public Types inherited from polybori::CCuddDDFacade< BoolePolyRing, BooleSet > | |
| typedef CTypes::ostream_type | ostream_type |
| Type for output streams. More... | |
| typedef BoolePolyRing | ring_type |
| Type for diagrams. More... | |
| typedef BooleSet | diagram_type |
| Type for diagrams. More... | |
| typedef DdNode | node_type |
| Type for C-style struct. More... | |
| typedef node_type * | node_ptr |
| Pointer type for nodes. More... | |
| typedef CApplyNodeFacade< diagram_type, node_ptr > | base |
| Type this is inherited from the following. More... | |
| typedef CCuddFirstIter | first_iterator |
| Iterator type for retrieving first term from Cudd's ZDDs. More... | |
| typedef CCuddLastIter | last_iterator |
| Iterator type for retrieving last term from Cudd's ZDDs. More... | |
| typedef CCuddNavigator | navigator |
| Iterator type for navigation throught Cudd's ZDDs structure. More... | |
| typedef valid_tag | easy_equality_property |
| This type has an easy equality check. More... | |
| typedef ring_type::mgr_type | mgr_type |
| Raw context. More... | |
| typedef int | cudd_idx_type |
| Cudd's index type. More... | |
| typedef CCheckedIdx | checked_idx_type |
| Cudd's index type. More... | |
Public Types inherited from polybori::CApplyNodeFacade< BooleSet, DdNode * > | |
| typedef BooleSet | diagram_type |
| typedef DdNode * | node_ptr |
Public Types inherited from polybori::CAuxTypes | |
| typedef bool | bool_type |
| Type for standard true/false statements. More... | |
| typedef std::size_t | size_type |
| Type for lengths, dimensions, etc. More... | |
| typedef int | deg_type |
| Type for polynomial degrees (ranges from -1 to maxint) More... | |
| typedef int | integer_type |
| Type for integer numbers. More... | |
| typedef int | idx_type |
| Type for indices. More... | |
| typedef std::size_t | hash_type |
| Type for hashing. More... | |
| typedef unsigned int | errornum_type |
| Type used to store error codes. More... | |
| typedef short int | comp_type |
| Type for comparisons. More... | |
| typedef int | ordercode_type |
| Type for ordering codes. More... | |
| typedef const char * | errortext_type |
| Type used to verbose error information. More... | |
| typedef std::ostream | ostream_type |
| Type for out-stream. More... | |
| typedef const char * | vartext_type |
| Type for setting/getting names of variables. More... | |
| typedef unsigned long | large_size_type |
| large size_type (necessary?) More... | |
| typedef std::size_t | refcount_type |
| Type for counting references. More... | |
Protected Member Functions inherited from polybori::CCuddDDFacade< BoolePolyRing, BooleSet > | |
| ResultType | memApply (ResultType(*func)(mgr_type *, node_ptr)) const |
| void | checkAssumption (bool isValid) const |
| Check whether previous decision diagram operation for validity. More... | |
| diagram_type | cudd_generate_multiples (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish, MultReverseIterator multStart, MultReverseIterator multFinish) const |
| temporarily (needs to be more generic) (similar fct in pbori_algo.h) More... | |
| diagram_type | cudd_generate_divisors (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish) const |
| temporarily (needs to be more generic) (similar fct in pbori_algo.h) More... | |
Protected Member Functions inherited from polybori::CApplyNodeFacade< BooleSet, DdNode * > | |
| void | checkSameManager (const diagram_type &other) const |
| Test, whether both operands. More... | |
| diagram_type | diagram (node_ptr node) const |
| Get diagram of the same context. More... | |
| diagram_type | apply (node_ptr(*func)(MgrType, node_ptr)) const |
| Unary function. More... | |
| diagram_type | apply (node_ptr(*func)(MgrType, node_ptr, node_ptr), const diagram_type &rhs) const |
| Binary function (two diagrams) More... | |
| diagram_type | apply (node_ptr(*func)(MgrType, node_ptr, node_ptr, node_ptr), const diagram_type &first, const diagram_type &second) const |
| Ternary function (three diagrams) More... | |
| diagram_type | apply (node_ptr(*func)(MgrType, node_ptr, Type), Type value) const |
| Binary functions with non-diagram right-hand side. More... | |
| ResultType | apply (ResultType(*func)(MgrType, node_ptr)) const |
| Unary functions with non-diagram result value. More... | |
This class defines LLReductor.
|
inline |
Construct reductor from Ring.
|
inline |
Construct copy or MonomialSet.
References PBORI_ASSERT.
|
inline |
Test whether polynomial is a compatible reductor element.
References polybori::BooleMonomial::firstIndex(), polybori::groebner::PolyEntryBase::lead, polybori::groebner::PolyEntryBase::leadDeg, polybori::BoolePolynomial::navigation(), polybori::groebner::PolyEntryBase::p, and PBORI_ASSERT.
|
inline |
Insert polynomial if compatible, return updated polynomial.
References polybori::groebner::PolyEntryBase::p.
1.8.9.1