PolyBoRi
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
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 >:
polybori::CTermStackBase< NavigatorType, BaseType > polybori::CDegStackCore< NavigatorType, invalid_tag, Category, BaseType > polybori::CDegStackCore< NavigatorType, valid_tag, 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.
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.
typedef navigator::idx_type idx_type
 Type for indices.
typedef navigator::size_type size_type
 Type for lengths.
typedef navigator::deg_type deg_type
typedef navigator::bool_type bool_type
typedef std::deque< navigatorstack_type
 Define type for stacking.
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()

Public Member Functions

 CTermStack ()
 Default constructor.
 CTermStack (navigator navi)
 Construct from initial navigator.
 CTermStack (const CTermStack &rhs)
 Copy constructor.
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.
 CTermStackBase ()
 Default constructor.
 CTermStackBase (navigator navi)
 Construct from initial navigator.
 CTermStackBase (const CTermStackBase &rhs)
 Copy constructor.
bool_type equal (const self &rhs) const
 Equality test (assume iterators from same instance)
void incrementThen ()
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 ()

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)
inlineprotected
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: