PolyBoRi
CStackSelector.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
14 //*****************************************************************************
15 
16 #ifndef polybori_iterators_CStackSelector_h_
17 #define polybori_iterators_CStackSelector_h_
18 
19 // include basic definitions
20 #include <polybori/pbori_defs.h>
21 
22 // include polybori's functionals
24 
25 // get stack types, which are used to store and handle paths of current terms
26 #include "CTermStack.h"
27 
28 // include standard iterator functionality
29 #include <iterator>
30 
32 
37 template <class OrderType, class NaviType, class BaseType = internal_tag>
39 
41 
42  typedef BaseType base;
43  typedef NaviType navigator;
45 
46  typedef typename orderings_tags::descending_property descending;
47  typedef typename orderings_tags::degorder_property deg_prop;
48  typedef typename orderings_tags::blockorder_property block_prop;
50 
53 
56 
59 
61  typedef typename on_same_type<deg_prop, valid_tag,
62  deg_type, lex_type>::type nonblock_type;
63 
64 public:
66  typedef typename on_same_type<block_prop, valid_tag,
67  block_type, nonblock_type>::type type;
68 };
69 
70 
72 
73 #endif
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
int deg_type
Definition: groebner_defs.h:42
This class switches betweem two types, depending on equality of types.
Definition: pbori_func.h:589
Definition: CTermStack.h:868
on_same_type< block_prop, valid_tag, block_type, nonblock_type >::type type
The resulting type for iterator's stack.
Definition: CStackSelector.h:67
Definition: CTermStack.h:735
This class defines an iterator for the monomials in a Boolean polynomial.
Definition: CTermStack.h:353
Definition: CStackSelector.h:38
This tempalte class is base for classes which define ordering tags and properties.
Definition: COrderingTags.h:69
This class shows, whether a property of an order is valid.
Definition: tags.h:32