PolyBoRi
Public Types | Public Member Functions | List of all members
polybori::DegLexOrder Class Reference

This class defines ordering related functions. More...

#include <DegLexOrder.h>

Inheritance diagram for polybori::DegLexOrder:
polybori::COrderingFacade< DegLexOrder, dlex_tag > polybori::COrderingBase polybori::COrderingTags< dlex_tag > polybori::order_traits< dlex_tag > polybori::CAuxTypes polybori::CDegreeOrderingTags< dlex_tag, valid_tag > polybori::COrderingTagsBase< dlex_tag, invalid_tag, valid_tag, invalid_tag, valid_tag >

Public Types

typedef std::less< idx_typeidx_comparer_type
 Define binary predicate for index comparision. More...
 
- Public Types inherited from polybori::COrderingFacade< DegLexOrder, dlex_tag >
typedef self base
 *this is to be used as base for OrderType only More...
 
typedef DegLexOrder order_type
 Variable ordering definiton functional type. More...
 
typedef CCacheTypes::lead_tag< dlex_tagorder_lead_tag
 Tag for for leading monomial cache. More...
 
typedef COrderingTags< dlex_tagordering_tags
 
- Public Types inherited from polybori::COrderingBase
typedef CCheckedIdx checked_idx_type
 Check index on input. More...
 
typedef std::vector< idx_typeblock_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_typeordered_iterator
 
typedef COrderedIter< navigator, exp_typeordered_exp_iterator
 
- Public Types inherited from polybori::CAuxTypes
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...
 
- Public Types inherited from polybori::COrderingTagsBase< dlex_tag, invalid_tag, valid_tag, invalid_tag, valid_tag >
typedef dlex_tag order_tag
 
typedef invalid_tag lex_property
 
typedef invalid_tag ordered_property
 
typedef typename invert_tag< invalid_tag >::type symmetry_property
 
typedef valid_tag degorder_property
 
typedef invalid_tag blockorder_property
 
typedef valid_tag totaldegorder_property
 
typedef invert_tag< valid_tag >::type ascending_property
 
typedef and_tag< valid_tag, ascending_property >::type degrevlexorder_property
 
typedef valid_tag descending_property
 
- Public Types inherited from polybori::order_traits< dlex_tag >
enum  
 

Public Member Functions

 DegLexOrder ()
 Default Constructor. More...
 
 DegLexOrder (const self &rhs)
 Copy Constructor. More...
 
 ~DegLexOrder ()
 Destructor. More...
 
comp_type compare (idx_type, idx_type) const
 Comparison of indices corresponding to variables. More...
 
comp_type compare (const monom_type &, const monom_type &) const
 Comparison of monomials. More...
 
comp_type compare (const exp_type &, const exp_type &) const
 Comparison of exponent vectors. More...
 
monom_type lead (const poly_type &) const
 Get leading term. More...
 
monom_type lead (const poly_type &poly, deg_type bound) const
 
exp_type leadExp (const poly_type &) const
 Get leading exponent. More...
 
exp_type leadExp (const poly_type &, deg_type) const
 
- Public Member Functions inherited from polybori::COrderingFacade< DegLexOrder, dlex_tag >
 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...
 
- Public Member Functions inherited from polybori::COrderingBase
 COrderingBase ()
 Default constructor. More...
 
virtual ~COrderingBase ()=0
 
virtual block_iterator blockBegin () const
 
virtual block_iterator blockEnd () const
 
virtual void appendBlock (checked_idx_type)
 
virtual void clearBlocks ()
 

Additional Inherited Members

- Protected Member Functions inherited from polybori::COrderingFacade< DegLexOrder, dlex_tag >
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...
 
- Protected Member Functions inherited from polybori::COrderingBase
monom_type monom (const set_type &rhs) const
 Get monomial from set of subsets of Boolean variables (internal use only) More...
 

Detailed Description

This class defines ordering related functions.

Member Typedef Documentation

Define binary predicate for index comparision.

Constructor & Destructor Documentation

polybori::DegLexOrder::DegLexOrder ( )
inline

Default Constructor.

polybori::DegLexOrder::DegLexOrder ( const self rhs)
inline

Copy Constructor.

polybori::DegLexOrder::~DegLexOrder ( )
inline

Destructor.

Member Function Documentation

DegLexOrder::comp_type polybori::DegLexOrder::compare ( idx_type  lhs,
idx_type  rhs 
) const
virtual

Comparison of indices corresponding to variables.

Implements polybori::COrderingBase.

References polybori::generic_compare_3way(), and PBORI_TRACE_FUNC.

DegLexOrder::comp_type polybori::DegLexOrder::compare ( const monom_type lhs,
const monom_type rhs 
) const
virtual

Comparison of monomials.

Implements polybori::COrderingBase.

References polybori::deg_lex_compare(), and PBORI_TRACE_FUNC.

DegLexOrder::comp_type polybori::DegLexOrder::compare ( const exp_type lhs,
const exp_type rhs 
) const
virtual

Comparison of exponent vectors.

Implements polybori::COrderingBase.

References polybori::deg_lex_compare(), and PBORI_TRACE_FUNC.

DegLexOrder::monom_type polybori::DegLexOrder::lead ( const poly_type poly) const
virtual

Get leading term.

Implements polybori::COrderingBase.

References polybori::BoolePolynomial::deg(), and PBORI_TRACE_FUNC.

DegLexOrder::monom_type polybori::DegLexOrder::lead ( const poly_type poly,
deg_type  bound 
) const
virtual

Get leading term (using upper bound of the polynomial degree)

Note
returns lead of the sub-polynomial of degree bound
Todo:
: more accurate explanation (comments)

Implements polybori::COrderingBase.

References polybori::dd_cached_degree(), polybori::dd_recursive_degree_lead(), polybori::BoolePolynomial::navigation(), PBORI_TRACE_FUNC, and polybori::BoolePolynomial::ring().

DegLexOrder::exp_type polybori::DegLexOrder::leadExp ( const poly_type poly) const
virtual

Get leading exponent.

Implements polybori::COrderingBase.

References polybori::BoolePolynomial::deg(), and PBORI_TRACE_FUNC.

DegLexOrder::exp_type polybori::DegLexOrder::leadExp ( const poly_type poly,
deg_type  bound 
) const
virtual

Get leading exponent (using an upper bound of the polynomial degree)

Note
See note of the bounded lead

Implements polybori::COrderingBase.

References polybori::dd_cached_degree(), polybori::dd_recursive_degree_leadexp(), polybori::BoolePolynomial::navigation(), PBORI_TRACE_FUNC, polybori::BooleExponent::reserve(), and polybori::BoolePolynomial::ring().


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