|
PolyBoRi
|
This class defines an iterator for navigating through then and else branches of ZDDs. More...
#include <CCuddNavigator.h>
Public Types | |
| typedef DdNode * | pointer_type |
| Cudd's node pointer. | |
| typedef CTypes::dd_base | dd_base |
| Cudd's node pointer. | |
| typedef const pointer_type | const_access_type |
| Type for constantly accessing node pointer. | |
| typedef CTypes::idx_type | idx_type |
| Type for indices. | |
| typedef CTypes::size_type | size_type |
| Type for indices. | |
| typedef CTypes::hash_type | hash_type |
| Type for hashing. | |
| typedef CTypes::bool_type | bool_type |
| Type for boolean results. | |
| typedef idx_type | value_type |
| Return type of dereferencing operator. | |
| typedef CCuddNavigator | self |
| Get type of *this. | |
Interface types for standard iterator access | |
| typedef navigator_tag | iterator_category |
| typedef std::iterator_traits < pointer_type > ::difference_type | difference_type |
| typedef void | pointer |
| typedef value_type | reference |
Public Member Functions | |
| CCuddNavigator () | |
| Default constructor. | |
| CCuddNavigator (pointer_type ptr) | |
| Construct from node pointer. | |
| CCuddNavigator (const dd_base &rhs) | |
| Construct from decision diagram. | |
| CCuddNavigator (const self &rhs) | |
| Copy Constructor. | |
| ~CCuddNavigator () | |
| Destructor. | |
| self & | incrementThen () |
| Increment in then direction. | |
| self | thenBranch () const |
| Increment in then direction. | |
| self & | incrementElse () |
| Increment in else direction. | |
| self | elseBranch () const |
| Increment in else direction. | |
| reference | operator* () const |
| Constant dereference operator. | |
| const_access_type | operator-> () const |
| Constant pointer access operator. | |
| const_access_type | getNode () const |
| Constant pointer access operator. | |
| hash_type | hash () const |
| Constant pointer access operator. | |
| bool_type | operator== (const self &rhs) const |
| Equality test. | |
| bool_type | operator!= (const self &rhs) const |
| Nonequality test. | |
| bool_type | isConstant () const |
| Check whether constant node was reached. | |
| bool_type | terminalValue () const |
| Check whether terminal node marks end of path. | |
| bool_type | isValid () const |
| Check whether *this is not the default iterator self() (NULL pointer) | |
| bool_type | isTerminated () const |
| Check whether end of path was reached. | |
| bool_type | isEmpty () const |
| Check whether dead end was reached. | |
| void | incRef () const |
| Force incrementation of reference count. | |
| void | decRef () const |
| Force decrementation of reference count. | |
| template<class MgrType > | |
| void | recursiveDecRef (const MgrType &mgr) const |
| Force recursive decrementation of reference count. | |
Pointer-like comparision operations | |
| bool_type | operator< (const self &rhs) const |
| bool_type | operator<= (const self &rhs) const |
| bool_type | operator> (const self &rhs) const |
| bool_type | operator>= (const self &rhs) const |
This class defines an iterator for navigating through then and else branches of ZDDs.
This class defines an iterator over the first minimal term of a given ZDD node.
Type for boolean results.
| typedef const pointer_type polybori::CCuddNavigator::const_access_type |
Type for constantly accessing node pointer.
Cudd's node pointer.
| typedef std::iterator_traits<pointer_type>::difference_type polybori::CCuddNavigator::difference_type |
Type for hashing.
Type for indices.
Reimplemented in polybori::CCuddLastIter.
| typedef void polybori::CCuddNavigator::pointer |
| typedef DdNode* polybori::CCuddNavigator::pointer_type |
Cudd's node pointer.
Get type of *this.
Reimplemented in polybori::CCuddLastIter.
Type for indices.
Return type of dereferencing operator.
| polybori::CCuddNavigator::CCuddNavigator | ( | ) | [inline] |
Default constructor.
| polybori::CCuddNavigator::CCuddNavigator | ( | pointer_type | ptr | ) | [inline, explicit] |
Construct from node pointer.
| polybori::CCuddNavigator::CCuddNavigator | ( | const dd_base & | rhs | ) | [inline, explicit] |
Construct from decision diagram.
| polybori::CCuddNavigator::CCuddNavigator | ( | const self & | rhs | ) | [inline] |
Copy Constructor.
| polybori::CCuddNavigator::~CCuddNavigator | ( | ) | [inline] |
Destructor.
| void polybori::CCuddNavigator::decRef | ( | ) | const [inline] |
Force decrementation of reference count.
Referenced by polybori::BooleSet::minimalElements(), and polybori::CCuddGetNode::operator()().
| self polybori::CCuddNavigator::elseBranch | ( | ) | const [inline] |
Increment in else direction.
References incrementElse().
Referenced by polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_cudd_style_unary(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_mon_set(), polybori::groebner::mod_var_set(), polybori::CCuddGetNode::operator()(), and polybori::groebner::recursively_insert().
| const_access_type polybori::CCuddNavigator::getNode | ( | ) | const [inline] |
Constant pointer access operator.
Referenced by polybori::CCuddLikeMgrStorage< MgrType >::generate(), polybori::dd_operations< CTypes::dd_type::navigator >::length(), polybori::dd_operations< CTypes::dd_type::navigator >::newNodeAssign(), polybori::dd_operations< CTypes::dd_type::navigator >::nSupport(), polybori::CCuddGetNode::operator()(), and polybori::dd_operations< CTypes::dd_type::navigator >::replacingNode().
| hash_type polybori::CCuddNavigator::hash | ( | ) | const [inline] |
Constant pointer access operator.
| void polybori::CCuddNavigator::incRef | ( | ) | const [inline] |
Force incrementation of reference count.
Referenced by polybori::dd_operations< CTypes::dd_type::navigator >::assign(), polybori::dd_operations< CTypes::dd_type::navigator >::newNode(), polybori::dd_operations< CTypes::dd_type::navigator >::newNodeAssign(), polybori::CCuddGetNode::operator()(), and polybori::dd_operations< CTypes::dd_type::navigator >::replacingNode().
| CCuddNavigator & polybori::CCuddNavigator::incrementElse | ( | ) | [inline] |
Increment in else direction.
References PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), elseBranch(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_mon_set(), polybori::groebner::mod_var_set(), polybori::CCuddLastIter::operator++(), polybori::CDDInterface< CuddLikeZDD >::ownsOne(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::without_prior_part(), and polybori::groebner::zeros().
| CCuddNavigator & polybori::CCuddNavigator::incrementThen | ( | ) | [inline] |
Increment in then direction.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::do_is_rewriteable(), polybori::groebner::ll_red_nf_generic(), polybori::CCuddLastIter::operator++(), and thenBranch().
| CCuddNavigator::bool_type polybori::CCuddNavigator::isConstant | ( | ) | const [inline] |
Check whether constant node was reached.
References PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_mon_set(), polybori::groebner::mod_var_set(), polybori::CCuddLastIter::operator++(), polybori::CDDInterface< CuddLikeZDD >::ownsOne(), polybori::groebner::red_tail_in_last_block(), and polybori::CCuddLastIter::terminateConstant().
| bool_type polybori::CCuddNavigator::isEmpty | ( | ) | const [inline] |
Check whether dead end was reached.
Referenced by polybori::groebner::do_is_rewriteable().
| bool_type polybori::CCuddNavigator::isTerminated | ( | ) | const [inline] |
Check whether end of path was reached.
Referenced by polybori::groebner::contained_variables_cudd_style(), and polybori::groebner::do_is_rewriteable().
| bool_type polybori::CCuddNavigator::isValid | ( | ) | const [inline] |
Check whether *this is not the default iterator self() (NULL pointer)
Referenced by polybori::BoolePolynomial::BoolePolynomial(), polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_is_rewriteable(), polybori::groebner::interpolate(), polybori::groebner::interpolate_smallest_lex(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_var_set(), polybori::CCuddGetNode::operator()(), and polybori::CCuddLastIter::operator++().
| CCuddNavigator::value_type polybori::CCuddNavigator::operator* | ( | ) | const [inline] |
Constant dereference operator.
References PBORI_TRACE_FUNC.
| const_access_type polybori::CCuddNavigator::operator-> | ( | ) | const [inline] |
Constant pointer access operator.
| void polybori::CCuddNavigator::recursiveDecRef | ( | const MgrType & | mgr | ) | const [inline] |
Force recursive decrementation of reference count.
Referenced by polybori::BooleSet::minimalElements(), and polybori::CCuddGetNode::operator()().
| CCuddNavigator::bool_type polybori::CCuddNavigator::terminalValue | ( | ) | const [inline] |
Check whether terminal node marks end of path.
References PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::CCuddLastIter::operator++(), and polybori::CDDInterface< CuddLikeZDD >::ownsOne().
| self polybori::CCuddNavigator::thenBranch | ( | ) | const [inline] |
Increment in then direction.
References incrementThen().
Referenced by polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_cudd_style_unary(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_mon_set(), polybori::groebner::mod_var_set(), polybori::CCuddGetNode::operator()(), and polybori::groebner::recursively_insert().
1.7.4