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. More... | |
typedef const pointer_type | const_access_type |
Type for constantly accessing node pointer. More... | |
typedef CTypes::idx_type | idx_type |
Type for indices. More... | |
typedef CTypes::size_type | size_type |
Type for indices. More... | |
typedef CTypes::deg_type | deg_type |
Type for degrees. More... | |
typedef CTypes::hash_type | hash_type |
Type for hashing. More... | |
typedef CTypes::bool_type | bool_type |
Type for boolean results. More... | |
typedef idx_type | value_type |
Return type of dereferencing operator. More... | |
typedef CCuddNavigator | self |
Get type of *this. More... | |
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. More... | |
CCuddNavigator (pointer_type ptr) | |
Construct from node pointer. More... | |
CCuddNavigator (const self &rhs) | |
Copy Constructor. More... | |
~CCuddNavigator () | |
Destructor. More... | |
self & | incrementThen () |
Increment in then direction. More... | |
self | thenBranch () const |
Increment in then direction. More... | |
self & | incrementElse () |
Increment in else direction. More... | |
self | elseBranch () const |
Increment in else direction. More... | |
reference | operator* () const |
Constant dereference operator. More... | |
const_access_type | operator-> () const |
Constant pointer access operator. More... | |
const_access_type | getNode () const |
Constant pointer access operator. More... | |
hash_type | hash () const |
Constant pointer access operator. More... | |
bool_type | operator== (const self &rhs) const |
Equality test. More... | |
bool_type | operator!= (const self &rhs) const |
Nonequality test. More... | |
bool_type | isConstant () const |
Check whether constant node was reached. More... | |
bool_type | terminalValue () const |
Check whether terminal node marks end of path. More... | |
bool_type | isValid () const |
Check whether *this is not the default iterator self() (NULL pointer) More... | |
bool_type | isTerminated () const |
Check whether end of path was reached. More... | |
bool_type | isEmpty () const |
Check whether dead end was reached. More... | |
void | incRef () const |
Force incrementation of reference count. More... | |
void | decRef () const |
Force decrementation of reference count. More... | |
template<class MgrType > | |
void | recursiveDecRef (const MgrType &mgr) const |
Force recursive decrementation of reference count. More... | |
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.
Type for boolean results.
typedef const pointer_type polybori::CCuddNavigator::const_access_type |
Type for constantly accessing node pointer.
Type for degrees.
typedef std::iterator_traits<pointer_type>::difference_type polybori::CCuddNavigator::difference_type |
Type for hashing.
Type for indices.
typedef void polybori::CCuddNavigator::pointer |
typedef DdNode* polybori::CCuddNavigator::pointer_type |
Cudd's node pointer.
Get type of *this.
Type for indices.
Return type of dereferencing operator.
|
inline |
Default constructor.
|
inlineexplicit |
Construct from node pointer.
References PBORI_ASSERT.
|
inline |
Copy Constructor.
|
inline |
Destructor.
|
inline |
Force decrementation of reference count.
References Cudd_Deref, PBORI_ASSERT, and PBORI_PREFIX.
|
inline |
Increment in else
direction.
References incrementElse().
Referenced by polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_minimal_elements_cudd_style(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_cudd_style_unary(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_var_set(), and polybori::groebner::recursively_insert().
|
inline |
Constant pointer access operator.
Referenced by polybori::dd_operations< CCuddNavigator >::length(), polybori::dd_operations< CCuddNavigator >::newNodeAssign(), polybori::dd_operations< CCuddNavigator >::nSupport(), and polybori::dd_operations< CCuddNavigator >::replacingNode().
|
inline |
Constant pointer access operator.
|
inline |
Force incrementation of reference count.
References Cudd_Ref, PBORI_ASSERT, and PBORI_PREFIX.
Referenced by polybori::dd_operations< CCuddNavigator >::assign(), polybori::dd_operations< CCuddNavigator >::newNode(), polybori::dd_operations< CCuddNavigator >::newNodeAssign(), and polybori::dd_operations< CCuddNavigator >::replacingNode().
|
inline |
Increment in else
direction.
References PBORI_ASSERT, and PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_variables(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_minimal_elements_cudd_style(), polybori::groebner::do_plug_1(), elseBranch(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_var_set(), polybori::CCuddLastIter::operator++(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::without_prior_part(), and polybori::groebner::zeros().
|
inline |
Increment in then
direction.
References PBORI_ASSERT, and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::do_fixed_path_divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), polybori::CCuddLastIter::operator++(), and thenBranch().
|
inline |
Check whether constant node was reached.
References PBORI_ASSERT, and PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_minimal_elements_cudd_style(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_var_set(), polybori::CCuddLastIter::operator++(), polybori::groebner::red_tail_in_last_block(), and polybori::CCuddLastIter::terminateConstant().
|
inline |
Check whether dead end was reached.
Referenced by polybori::groebner::do_is_rewriteable().
|
inline |
Check whether end of path was reached.
Referenced by polybori::groebner::contained_variables(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), and polybori::groebner::do_is_rewriteable().
|
inline |
Check whether *this is not the default iterator self() (NULL pointer)
Referenced by polybori::BoolePolynomial::BoolePolynomial(), polybori::CCuddDDFacade< BoolePolyRing, BooleSet >::CCuddDDFacade(), polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), 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(), and polybori::CCuddLastIter::operator++().
|
inline |
Constant dereference operator.
References PBORI_ASSERT, and PBORI_TRACE_FUNC.
|
inline |
Constant pointer access operator.
|
inline |
Force recursive decrementation of reference count.
References Cudd_RecursiveDerefZdd, PBORI_ASSERT, and PBORI_PREFIX.
|
inline |
Check whether terminal node marks end of path.
References PBORI_ASSERT, and PBORI_TRACE_FUNC.
Referenced by polybori::CCuddLastIter::CCuddLastIter(), polybori::groebner::do_fixed_path_divisors(), and polybori::CCuddLastIter::operator++().
|
inline |
Increment in then
direction.
References incrementThen().
Referenced by polybori::groebner::contained_deg2_cudd_style(), polybori::groebner::contained_variables(), polybori::groebner::contained_variables_cudd_style(), polybori::groebner::do_fixed_path_divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_minimal_elements_cudd_style(), polybori::groebner::do_plug_1(), polybori::groebner::include_divisors(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::minimal_elements_cudd_style_unary(), polybori::groebner::mod_deg2_set(), polybori::groebner::mod_var_set(), and polybori::groebner::recursively_insert().