polybori::CTermStack< NavigatorType, Category, BaseType > Class Template Reference

This class defines an iterator for the monomials in a Boolean polynomial. More...

`#include <CTermStack.h>`

Inheritance diagram for polybori::CTermStack< NavigatorType, Category, BaseType >:

## Public Types

typedef CTermStackBase < NavigatorType, BaseType > | base
typedef CTermStack < NavigatorType, Category, BaseType > | self
typedef CTermStack < NavigatorType, Category, internal_tag > | purestack_type
| Defining a type for simple stacking of term elements. More...
typedef Category | iterator_category
typedef base::navigator | navigator
typedef on_same_type< Category, std::forward_iterator_tag, project_ith< 0 >, handle_else < NavigatorType > >::type | else_handler
Public Types inherited from polybori::CTermStackBase< NavigatorType, BaseType >
typedef CTermStackBase < NavigatorType, BaseType > | self
typedef NavigatorType | navigator
| Get type of navigators. More...
typedef navigator::idx_type | idx_type
| Type for indices. More...
typedef navigator::size_type | size_type
| Type for lengths. More...
typedef navigator::deg_type | deg_type
typedef navigator::bool_type | bool_type
typedef std::deque< navigator > | stack_type
| Define type for stacking. More...
typedef stack_type::reference | reference
typedef stack_type::const_reference | const_reference
typedef boost::indirect_iterator < typename stack_type::const_iterator, typename navigator::value_type, boost::use_default, typename navigator::reference > | const_iterator
typedef stack_type::const_iterator | stack_iterator
typedef stack_type::const_reverse_iterator | stack_reverse_iterator
typedef boost::indirect_iterator < typename stack_type::const_reverse_iterator, typename navigator::value_type, boost::use_default, typename navigator::reference > | const_reverse_iterator
typedef stack_type::value_type | top_type
| result type of top() More...

## Public Member Functions

| CTermStack ()
| Default constructor. More...
| CTermStack (navigator navi)
| Construct from initial navigator. More...
| CTermStack (const CTermStack &rhs)
| Copy constructor. More...
template<class Dummy >
| CTermStack (navigator navi, const Dummy &)
void | init ()
void | initLast ()
void | incrementElse ()
void | next ()
void | previous ()
void | increment ()
void | decrement ()
void | terminate ()
void | followElse ()
void | incrementValidElse ()
Public Member Functions inherited from polybori::CTermStackBase< NavigatorType, BaseType >
bool_type | empty () const
const_reference | top () const
idx_type | index () const
size_type | size () const
const_iterator | begin () const
const_iterator | end () const
const_reverse_iterator | rbegin () const
const_reverse_iterator | rend () const
navigator | navigation () const
| Get navigator of stack start. More...
| CTermStackBase ()
| Default constructor. More...
| CTermStackBase (navigator navi)
| Construct from initial navigator. More...
| CTermStackBase (const CTermStackBase &rhs)
| Copy constructor. More...
bool_type | equal (const self &rhs) const
| Equality test (assume iterators from same instance) More...
void | incrementThen ()
void | incrementElse ()
void | decrementNode ()
bool_type | isConstant () const
bool_type | isTerminated () const
bool_type | isInvalid () const
void | followThen ()
void | markOne ()
bool_type | markedOne () const
void | clearOne ()
deg_type | deg () const
void | restart (navigator navi)
bool | isOne () const
bool | isZero () const
bool | atBegin () const
bool | atEnd () const
bool | atEnd (navigator navi) const
bool | validEnd () const
bool | validEnd (navigator navi) const
void | print () const
stack_iterator | stackBegin () const
stack_iterator | stackEnd () const
stack_reverse_iterator | stackRBegin () const
stack_reverse_iterator | stackREnd () const

## Public Attributes

else_handler | handleElse

## Protected Member Functions

template<class TermStack >
void | append (const TermStack &rhs)
Protected Member Functions inherited from polybori::CTermStackBase< NavigatorType, BaseType >
void | push (navigator __x)
void | clear ()
template<class TermStack >
void | append (const TermStack &rhs)

## Detailed Description

### template<class NavigatorType, class Category, class BaseType = internal_tag>
class polybori::CTermStack< NavigatorType, Category, BaseType >

This class defines an iterator for the monomials in a Boolean polynomial.

## Member Typedef Documentation

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef CTermStackBase<NavigatorType, BaseType> polybori::CTermStack< NavigatorType, Category, BaseType >::base

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef on_same_type<Category, std::forward_iterator_tag, project_ith<0>, handle_else<NavigatorType> >::type polybori::CTermStack< NavigatorType, Category, BaseType >::else_handler

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef Category polybori::CTermStack< NavigatorType, Category, BaseType >::iterator_category

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef base::navigator polybori::CTermStack< NavigatorType, Category, BaseType >::navigator

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef CTermStack<NavigatorType, Category, internal_tag> polybori::CTermStack< NavigatorType, Category, BaseType >::purestack_type

Defining a type for simple stacking of term elements.

template<class NavigatorType, class Category, class BaseType = internal_tag>

typedef CTermStack<NavigatorType, Category, BaseType> polybori::CTermStack< NavigatorType, Category, BaseType >::self

## Constructor & Destructor Documentation

template<class NavigatorType, class Category, class BaseType = internal_tag>

polybori::CTermStack< NavigatorType, Category, BaseType >::CTermStack | ( | ) |  |

inline

Default constructor.

template<class NavigatorType, class Category, class BaseType = internal_tag>

polybori::CTermStack< NavigatorType, Category, BaseType >::CTermStack | ( | navigator | navi) |  |

inline

Construct from initial navigator.

template<class NavigatorType, class Category, class BaseType = internal_tag>

polybori::CTermStack< NavigatorType, Category, BaseType >::CTermStack | ( | const CTermStack< NavigatorType, Category, BaseType > & | rhs) |  |

inline

Copy constructor.

template<class NavigatorType, class Category, class BaseType = internal_tag>
template<class Dummy >

polybori::CTermStack< NavigatorType, Category, BaseType >::CTermStack | ( | navigator | navi,
|  | const Dummy & |
| ) |  |

inline

Construct from initial navigator, third argument is just for having the same interface with block and degree-stacks

## Member Function Documentation

template<class NavigatorType, class Category, class BaseType = internal_tag>
template<class TermStack >

void polybori::CTermStack< NavigatorType, Category, BaseType >::append | ( | const TermStack & | rhs) |  |

inline protected

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::decrement | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::followElse | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::increment | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::incrementElse | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::incrementValidElse | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::init | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::initLast | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::next | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::previous | ( | ) |  |

inline

template<class NavigatorType, class Category, class BaseType = internal_tag>

void polybori::CTermStack< NavigatorType, Category, BaseType >::terminate | ( | ) |  |

inline

## Member Data Documentation

template<class NavigatorType, class Category, class BaseType = internal_tag>

else_handler polybori::CTermStack< NavigatorType, Category, BaseType >::handleElse

The documentation for this class was generated from the following file:

- CTermStack.h