PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | List of all members
polybori::COrderingBase Class Referenceabstract

#include <COrderingBase.h>

Inheritance diagram for polybori::COrderingBase:
polybori::CAuxTypes polybori::COrderingFacade< BlockDegLexOrder, block_dlex_tag > polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag > polybori::COrderingFacade< DegLexOrder, dlex_tag > polybori::COrderingFacade< DegRevLexAscOrder, dp_asc_tag > polybori::COrderingFacade< LexOrder, lex_tag > polybori::COrderingFacade< OrderType, OrderTag > polybori::CBlockOrderingFacade< BlockDegLexOrder, block_dlex_tag > polybori::CBlockOrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag > polybori::DegLexOrder polybori::DegRevLexAscOrder polybori::LexOrder polybori::CBlockOrderingFacade< OrderType, OrderTag > polybori::BlockDegLexOrder polybori::BlockDegRevLexAscOrder

Public Types

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...
 
Adopt polynomial type definitions
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 Member Functions

 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
 
virtual monom_type lead (const poly_type &) const =0
 Get leading term. More...
 
virtual monom_type lead (const poly_type &, deg_type) const =0
 Get leading term (using upper bound) More...
 
virtual exp_type leadExp (const poly_type &) const =0
 Get leading exponent. More...
 
virtual exp_type leadExp (const poly_type &, deg_type) const =0
 Get leading exponent (using upper bound) More...
 
virtual poly_type leadFirst (const poly_type &) const =0
 Generates polynomial with leading term first (other terms may be skipped) More...
 
virtual bool_type isLexicographical () const =0
 Check whether ring is lexicographical. More...
 
virtual bool_type orderedStandardIteration () const =0
 Test whether iterators respect order. More...
 
virtual bool_type isSymmetric () const =0
 Test whether variable pertubation do not change the order. More...
 
virtual bool_type isDegreeOrder () const =0
 Test whether we deal with a degree-ordering. More...
 
virtual bool_type isBlockOrder () const =0
 Test whether we deal with a block-ordering. More...
 
virtual bool_type isTotalDegreeOrder () const =0
 Test whether we deal with a total degree-ordering. More...
 
virtual bool_type ascendingVariables () const =0
 Test whether variables are in ascending order. More...
 
virtual bool_type descendingVariables () const =0
 Test whether variables are in descending order. More...
 
virtual bool_type isDegreeReverseLexicographical () const =0
 Test whether ordering is deg-rev-lex ordering. More...
 
virtual ordered_iterator leadIteratorBegin (const poly_type &) const =0
 Initialize iterator corresponding to leading term. More...
 
virtual ordered_iterator leadIteratorEnd (const poly_type &) const =0
 End marker for iterator corresponding to leading term. More...
 
virtual ordered_exp_iterator leadExpIteratorBegin (const poly_type &) const =0
 Initialize exponent iterator corresponding to leading term. More...
 
virtual ordered_exp_iterator leadExpIteratorEnd (const poly_type &) const =0
 End marker for exponent iterator corresponding to leading term. More...
 
virtual ordercode_type getOrderCode () const =0
 Get numerical code for ordering. More...
 
virtual ordercode_type getBaseOrderCode () const =0
 Get numerical code for base ordering (the same for non-block orderings) More...
 
virtual bool_type lieInSameBlock (idx_type, idx_type) const =0
 
virtual idx_type lastBlockStart () const =0
 Generic procedure to get index, where last block starts. More...
 
interface for block orderings
virtual block_iterator blockBegin () const
 
virtual block_iterator blockEnd () const
 
virtual void appendBlock (checked_idx_type)
 
virtual void clearBlocks ()
 

Protected Member Functions

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 is the base of all PolyBoRi orderings.

It can be used as an abstract base for runtime-selectable orderings.

Member Typedef Documentation

Type for block indices.

typedef block_idx_type::const_iterator polybori::COrderingBase::block_iterator

Type for block iterators.

Check index on input.

Type of Boolean sets.

Constructor & Destructor Documentation

polybori::COrderingBase::COrderingBase ( )
inline

Default constructor.

polybori::COrderingBase::~COrderingBase ( )
inlinepure virtual

Member Function Documentation

virtual void polybori::COrderingBase::appendBlock ( checked_idx_type  )
inlinevirtual
virtual bool_type polybori::COrderingBase::ascendingVariables ( ) const
pure virtual
virtual block_iterator polybori::COrderingBase::blockBegin ( ) const
inlinevirtual
virtual block_iterator polybori::COrderingBase::blockEnd ( ) const
inlinevirtual
virtual void polybori::COrderingBase::clearBlocks ( )
inlinevirtual
virtual comp_type polybori::COrderingBase::compare ( idx_type  ,
idx_type   
) const
pure virtual
virtual comp_type polybori::COrderingBase::compare ( const monom_type ,
const monom_type  
) const
pure virtual
virtual comp_type polybori::COrderingBase::compare ( const exp_type ,
const exp_type  
) const
pure virtual
virtual bool_type polybori::COrderingBase::descendingVariables ( ) const
pure virtual
virtual ordercode_type polybori::COrderingBase::getBaseOrderCode ( ) const
pure virtual
virtual ordercode_type polybori::COrderingBase::getOrderCode ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isBlockOrder ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isDegreeOrder ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isDegreeReverseLexicographical ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isLexicographical ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isSymmetric ( ) const
pure virtual
virtual bool_type polybori::COrderingBase::isTotalDegreeOrder ( ) const
pure virtual
virtual idx_type polybori::COrderingBase::lastBlockStart ( ) const
pure virtual
virtual monom_type polybori::COrderingBase::lead ( const poly_type ) const
pure virtual
virtual monom_type polybori::COrderingBase::lead ( const poly_type ,
deg_type   
) const
pure virtual
virtual exp_type polybori::COrderingBase::leadExp ( const poly_type ) const
pure virtual
virtual exp_type polybori::COrderingBase::leadExp ( const poly_type ,
deg_type   
) const
pure virtual
virtual ordered_exp_iterator polybori::COrderingBase::leadExpIteratorBegin ( const poly_type ) const
pure virtual
virtual ordered_exp_iterator polybori::COrderingBase::leadExpIteratorEnd ( const poly_type ) const
pure virtual
virtual poly_type polybori::COrderingBase::leadFirst ( const poly_type ) const
pure virtual
virtual ordered_iterator polybori::COrderingBase::leadIteratorBegin ( const poly_type ) const
pure virtual
virtual ordered_iterator polybori::COrderingBase::leadIteratorEnd ( const poly_type ) const
pure virtual
virtual bool_type polybori::COrderingBase::lieInSameBlock ( idx_type  ,
idx_type   
) const
pure virtual
monom_type polybori::COrderingBase::monom ( const set_type rhs) const
inlineprotected

Get monomial from set of subsets of Boolean variables (internal use only)

References polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), and PBORI_UNLIKELY.

virtual bool_type polybori::COrderingBase::orderedStandardIteration ( ) const
pure virtual

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