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

This class defines ordering related functions. More...

#include <BlockDegLexOrder.h>

Inheritance diagram for polybori::BlockDegLexOrder:
polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag > polybori::COrderingFacade< BlockDegLexOrder, block_dlex_tag > polybori::COrderingBase polybori::COrderingTags< block_dlex_tag > polybori::order_traits< block_dlex_tag > polybori::CAuxTypes polybori::CBlockDegreeOrderingTags< block_dlex_tag, valid_tag > polybori::COrderingTagsBase< block_dlex_tag, invalid_tag, invalid_tag, valid_tag, valid_tag >

Public Types

typedef std::less< idx_typeidx_comparer_type
 Define binary predicate for index comparision.
- Public Types inherited from polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag >
typedef self base
 *this is to be used as base for OrderType only
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
- Public Types inherited from polybori::COrderingFacade< BlockDegLexOrder, block_dlex_tag >
typedef self base
 *this is to be used as base for OrderType only
typedef BlockDegLexOrder order_type
 Variable ordering definiton functional type.
typedef CCacheTypes::lead_tag
< block_dlex_tag
order_lead_tag
 Tag for for leading monomial cache.
typedef COrderingTags
< block_dlex_tag
ordering_tags
- Public Types inherited from polybori::COrderingBase
typedef CCheckedIdx checked_idx_type
 Check index on input.
typedef std::vector< idx_typeblock_idx_type
 Type for block indices.
typedef
block_idx_type::const_iterator 
block_iterator
 Type for block iterators.
typedef BooleSet set_type
 Type of Boolean sets.
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
- Public Types inherited from polybori::CAuxTypes
typedef bool bool_type
 Type for standard true/false statements.
typedef std::size_t size_type
 Type for lengths, dimensions, etc.
typedef int deg_type
 Type for polynomial degrees (ranges from -1 to maxint)
typedef int integer_type
 Type for integer numbers.
typedef int idx_type
 Type for indices.
typedef std::size_t hash_type
 Type for hashing.
typedef unsigned int errornum_type
 Type used to store error codes.
typedef short int comp_type
 Type for comparisons.
typedef int ordercode_type
 Type for ordering codes.
typedef const char * errortext_type
 Type used to verbose error information.
typedef std::ostream ostream_type
 Type for out-stream.
typedef const char * vartext_type
 Type for setting/getting names of variables.
typedef unsigned long large_size_type
 large size_type (necessary?)
typedef std::size_t refcount_type
 Type for counting references.
- Public Types inherited from polybori::order_traits< block_dlex_tag >
enum  

Public Member Functions

 BlockDegLexOrder ()
 Default Constructor.
 BlockDegLexOrder (const self &rhs)
 Copy Constructor.
 ~BlockDegLexOrder ()
 Destructor.
comp_type compare (idx_type, idx_type) const
 Comparison of indices corresponding to variables.
comp_type compare (const monom_type &, const monom_type &) const
 Comparison of monomials.
comp_type compare (const exp_type &, const exp_type &) const
 Comparison of exponent vectors.
- Public Member Functions inherited from polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag >
 CBlockOrderingFacade ()
 Default Constructor.
 CBlockOrderingFacade (const self &rhs)
 Copy Constructor.
 ~CBlockOrderingFacade ()=0
 Destructor.
monom_type lead (const poly_type &poly) const
 generic block lead
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.
exp_type leadExp (const poly_type &poly, deg_type) const
COrderingBase::block_iterator blockBegin () const
COrderingBase::block_iterator blockEnd () const
void appendBlock (COrderingBase::checked_idx_type idx)
void clearBlocks ()
- Public Member Functions inherited from polybori::COrderingFacade< BlockDegLexOrder, block_dlex_tag >
 COrderingFacade ()
 Construct new decision diagramm manager.
 COrderingFacade (const self &rhs)
 Construct new decision diagramm manager.
 ~COrderingFacade ()
 Destructor.
poly_type leadFirst (const poly_type &poly) const
 Generates polynomial with leading term first (other terms may be skipped)
bool_type isLexicographical () const
 Check whether ring is lexicographical.
bool_type orderedStandardIteration () const
 Test whether iterators respect order.
bool_type isSymmetric () const
 Test whether variable pertubation do not change the order.
bool_type isDegreeOrder () const
 Test whether we deal with a degree-ordering.
bool_type isBlockOrder () const
 Test whether we deal with a degree-ordering.
bool_type isTotalDegreeOrder () const
 Test whether we deal with a total degree-ordering.
bool_type isDegreeReverseLexicographical () const
 Test whether ordering is deg-rev-lex ordering.
bool_type ascendingVariables () const
 Test whether variables are in ascending order.
bool_type descendingVariables () const
 Test whether variables are in descending order.
ordercode_type getOrderCode () const
 Get numerical code for ordering.
ordercode_type getBaseOrderCode () const
 Get numerical code for base ordering (the same for non-block orderings)
bool_type lieInSameBlock (idx_type first, idx_type second) const
idx_type lastBlockStart () const
 Generic procedure to get index, where last block starts.
ordered_iterator leadIteratorBegin (const poly_type &poly) const
 Initialize iterator corresponding to leading term.
ordered_iterator leadIteratorEnd (const poly_type &poly) const
 End marker for iterator corresponding to leading term.
ordered_exp_iterator leadExpIteratorBegin (const poly_type &poly) const
 Initialize exponent iterator corresponding to leading term.
ordered_exp_iterator leadExpIteratorEnd (const poly_type &poly) const
 End marker for exponent iterator corresponding to leading term.
- Public Member Functions inherited from polybori::COrderingBase
 COrderingBase ()
 Default constructor.
virtual ~COrderingBase ()=0

Additional Inherited Members

- Protected Member Functions inherited from polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag >
comp_type compare_terms (const TermType &lhs, const TermType &rhs, const BinOpType &idx_comparer) const
 Comparison of monomials/expoinents template.
- Protected Attributes inherited from polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag >
COrderingBase::block_idx_type m_indices
 index data

Detailed Description

This class defines ordering related functions.

Member Typedef Documentation

Define binary predicate for index comparision.

Constructor & Destructor Documentation

polybori::BlockDegLexOrder::BlockDegLexOrder ( )
inline

Default Constructor.

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

Copy Constructor.

polybori::BlockDegLexOrder::~BlockDegLexOrder ( )
inline

Destructor.

Member Function Documentation

BlockDegLexOrder::comp_type polybori::BlockDegLexOrder::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.

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

Comparison of monomials.

Implements polybori::COrderingBase.

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

Comparison of exponent vectors.

Implements polybori::COrderingBase.


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