PolyBoRi
|
This class implements block orderings for COrderingFacade. OrderType must inherit from COrderingFacade<OrderType>. More...
#include <CBlockOrderingFacade.h>
Public Types | |
typedef self | base |
*this is to be used as base for OrderType only More... | |
Declare template argument-dependent types | |
typedef base_type::order_lead_tag | order_lead_tag |
typedef base_type::poly_type | poly_type |
typedef base_type::monom_type | monom_type |
typedef base_type::exp_type | exp_type |
typedef base_type::deg_type | deg_type |
typedef base_type::set_type | set_type |
typedef base_type::comp_type | comp_type |
![]() | |
typedef self | base |
*this is to be used as base for OrderType only More... | |
typedef OrderType | order_type |
Variable ordering definiton functional type. More... | |
typedef CCacheTypes::lead_tag < OrderTag > | order_lead_tag |
Tag for for leading monomial cache. More... | |
typedef COrderingTags< OrderTag > | ordering_tags |
![]() | |
typedef CCheckedIdx | checked_idx_type |
Check index on input. More... | |
typedef std::vector< idx_type > | block_idx_type |
Type for block indices. More... | |
typedef block_idx_type::const_iterator | block_iterator |
Type for block iterators. More... | |
typedef BooleSet | set_type |
Type of Boolean sets. More... | |
typedef BoolePolynomial | poly_type |
typedef BooleMonomial | monom_type |
typedef CCuddNavigator | navigator |
typedef BooleExponent | exp_type |
typedef COrderedIter < navigator, monom_type > | ordered_iterator |
typedef COrderedIter < navigator, exp_type > | ordered_exp_iterator |
![]() | |
typedef bool | bool_type |
Type for standard true/false statements. More... | |
typedef std::size_t | size_type |
Type for lengths, dimensions, etc. More... | |
typedef int | deg_type |
Type for polynomial degrees (ranges from -1 to maxint) More... | |
typedef int | integer_type |
Type for integer numbers. More... | |
typedef int | idx_type |
Type for indices. More... | |
typedef std::size_t | hash_type |
Type for hashing. More... | |
typedef unsigned int | errornum_type |
Type used to store error codes. More... | |
typedef short int | comp_type |
Type for comparisons. More... | |
typedef int | ordercode_type |
Type for ordering codes. More... | |
typedef const char * | errortext_type |
Type used to verbose error information. More... | |
typedef std::ostream | ostream_type |
Type for out-stream. More... | |
typedef const char * | vartext_type |
Type for setting/getting names of variables. More... | |
typedef unsigned long | large_size_type |
large size_type (necessary?) More... | |
typedef std::size_t | refcount_type |
Type for counting references. More... | |
![]() | |
enum | { order_code = order_traits_code<OrderTag>::order_code, baseorder_code = order_code } |
Public Member Functions | |
CBlockOrderingFacade () | |
Default Constructor. More... | |
CBlockOrderingFacade (const self &rhs) | |
Copy Constructor. More... | |
~CBlockOrderingFacade ()=0 | |
Destructor. More... | |
monom_type | lead (const poly_type &poly) const |
generic block lead More... | |
monom_type | lead (const poly_type &poly, deg_type) const |
exp_type | leadExp (const poly_type &poly) const |
Extraction of leading exponent - just using lead. More... | |
exp_type | leadExp (const poly_type &poly, deg_type) const |
interface for block orderings | |
COrderingBase::block_iterator | blockBegin () const |
COrderingBase::block_iterator | blockEnd () const |
void | appendBlock (COrderingBase::checked_idx_type idx) |
void | clearBlocks () |
![]() | |
COrderingFacade () | |
Construct new decision diagramm manager. More... | |
COrderingFacade (const self &rhs) | |
Construct new decision diagramm manager. More... | |
~COrderingFacade () | |
Destructor. More... | |
poly_type | leadFirst (const poly_type &poly) const |
Generates polynomial with leading term first (other terms may be skipped) More... | |
bool_type | isLexicographical () const |
Check whether ring is lexicographical. More... | |
bool_type | orderedStandardIteration () const |
Test whether iterators respect order. More... | |
bool_type | isSymmetric () const |
Test whether variable pertubation do not change the order. More... | |
bool_type | isDegreeOrder () const |
Test whether we deal with a degree-ordering. More... | |
bool_type | isBlockOrder () const |
Test whether we deal with a degree-ordering. More... | |
bool_type | isTotalDegreeOrder () const |
Test whether we deal with a total degree-ordering. More... | |
bool_type | isDegreeReverseLexicographical () const |
Test whether ordering is deg-rev-lex ordering. More... | |
bool_type | ascendingVariables () const |
Test whether variables are in ascending order. More... | |
bool_type | descendingVariables () const |
Test whether variables are in descending order. More... | |
ordercode_type | getOrderCode () const |
Get numerical code for ordering. More... | |
ordercode_type | getBaseOrderCode () const |
Get numerical code for base ordering (the same for non-block orderings) More... | |
bool_type | lieInSameBlock (idx_type first, idx_type second) const |
idx_type | lastBlockStart () const |
Generic procedure to get index, where last block starts. More... | |
ordered_iterator | leadIteratorBegin (const poly_type &poly) const |
Initialize iterator corresponding to leading term. More... | |
ordered_iterator | leadIteratorEnd (const poly_type &poly) const |
End marker for iterator corresponding to leading term. More... | |
ordered_exp_iterator | leadExpIteratorBegin (const poly_type &poly) const |
Initialize exponent iterator corresponding to leading term. More... | |
ordered_exp_iterator | leadExpIteratorEnd (const poly_type &poly) const |
End marker for exponent iterator corresponding to leading term. More... | |
![]() | |
COrderingBase () | |
Default constructor. More... | |
virtual | ~COrderingBase ()=0 |
virtual comp_type | compare (idx_type, idx_type) const =0 |
Comparison of monomials. More... | |
virtual comp_type | compare (const monom_type &, const monom_type &) const =0 |
virtual comp_type | compare (const exp_type &, const exp_type &) const =0 |
Protected Member Functions | |
template<class TermType , class BinOpType > | |
comp_type | compare_terms (const TermType &lhs, const TermType &rhs, const BinOpType &idx_comparer) const |
Comparison of monomials/expoinents template. More... | |
![]() | |
bool_type | inSameBlockInternal (idx_type, idx_type, invalid_tag) const |
trivial case for non-block orderings More... | |
bool_type | inSameBlockInternal (idx_type first, idx_type second, valid_tag) const |
complicated case for block orderings More... | |
![]() | |
monom_type | monom (const set_type &rhs) const |
Get monomial from set of subsets of Boolean variables (internal use only) More... | |
Protected Attributes | |
COrderingBase::block_idx_type | m_indices |
index data More... | |
This class implements block orderings for COrderingFacade. OrderType must inherit from COrderingFacade<OrderType>.
typedef self polybori::CBlockOrderingFacade< OrderType, OrderTag >::base |
*this is to be used as base for OrderType
only
typedef base_type::comp_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::comp_type |
typedef base_type::deg_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::deg_type |
typedef base_type::exp_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::exp_type |
typedef base_type::monom_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::monom_type |
typedef base_type::order_lead_tag polybori::CBlockOrderingFacade< OrderType, OrderTag >::order_lead_tag |
typedef base_type::poly_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::poly_type |
typedef base_type::set_type polybori::CBlockOrderingFacade< OrderType, OrderTag >::set_type |
|
inline |
Default Constructor.
|
inline |
Copy Constructor.
|
inlinepure virtual |
Destructor.
|
inlinevirtual |
Reimplemented from polybori::COrderingBase.
|
inlinevirtual |
Reimplemented from polybori::COrderingBase.
|
inlinevirtual |
Reimplemented from polybori::COrderingBase.
|
inlinevirtual |
Reimplemented from polybori::COrderingBase.
|
inlineprotected |
Comparison of monomials/expoinents template.
|
inlinevirtual |
generic block lead
Implements polybori::COrderingBase.
|
inlinevirtual |
Leading monomial with bound (just the ordinary leading monomial)
lead
, ignores second argument Implements polybori::COrderingBase.
|
inlinevirtual |
Extraction of leading exponent - just using lead.
Implements polybori::COrderingBase.
|
inlinevirtual |
Leading exponent with bound (just the ordinary leading monomial)
leadExp
, ignores second argument Implements polybori::COrderingBase.
|
protected |
index data