polybori::COrderingBase Class Reference

#include <COrderingBase.h>

Inheritance diagram for polybori::COrderingBase:

polybori::CAuxTypes polybori::COrderingFacade< polybori::BlockDegLexOrder, polybori::block_tag< TagType > > polybori::COrderingFacade< polybori::BlockDegRevLexAscOrder, polybori::block_tag< TagType > > polybori::COrderingFacade< polybori::DegLexOrder, polybori::dlex_tag > polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag > polybori::COrderingFacade< polybori::LexOrder, polybori::lex_tag > polybori::COrderingFacade< OrderType, OrderTag > polybori::CBlockOrderingFacade< polybori::BlockDegLexOrder, polybori::block_tag > polybori::CBlockOrderingFacade< polybori::BlockDegRevLexAscOrder, polybori::block_tag > polybori::CBlockOrderingFacade< OrderType, OrderTag > polybori::DegLexOrder polybori::DegRevLexAscOrder polybori::LexOrder polybori::BlockDegLexOrder polybori::BlockDegRevLexAscOrder

List of all members.

Public Types

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

 COrderingBase ()
 Default constructor.
virtual ~COrderingBase ()=0
virtual comp_type compare (idx_type, idx_type) const =0
 Comparison of monomials.
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.
virtual monom_type lead (const poly_type &, deg_type) const =0
 Get leading term (using upper bound).
virtual exp_type leadExp (const poly_type &) const =0
 Get leading exponent.
virtual exp_type leadExp (const poly_type &, deg_type) const =0
 Get leading exponent (using upper bound).
virtual poly_type leadFirst (const poly_type &) const =0
 Generates polynomial with leading term first (other terms may be skipped).
virtual bool_type isLexicographical () const =0
 Check whether ring is lexicographical.
virtual bool_type orderedStandardIteration () const =0
 Test whether iterators respect order.
virtual bool_type isSymmetric () const =0
 Test whether variable pertubation do not change the order.
virtual bool_type isDegreeOrder () const =0
 Test whether we deal with a degree-ordering.
virtual bool_type isBlockOrder () const =0
 Test whether we deal with a block-ordering.
virtual bool_type isTotalDegreeOrder () const =0
 Test whether we deal with a total degree-ordering.
virtual bool_type ascendingVariables () const =0
 Test whether variables are in ascending order.
virtual bool_type descendingVariables () const =0
 Test whether variables are in descending order.
virtual bool_type isDegreeReverseLexicographical () const =0
 Test whether ordering is deg-rev-lex ordering.
virtual ordered_iterator leadIteratorBegin (const poly_type &) const =0
 Initialize iterator corresponding to leading term.
virtual ordered_iterator leadIteratorEnd (const poly_type &) const =0
 End marker for iterator corresponding to leading term.
virtual ordered_exp_iterator leadExpIteratorBegin (const poly_type &) const =0
 Initialize exponent iterator corresponding to leading term.
virtual ordered_exp_iterator leadExpIteratorEnd (const poly_type &) const =0
 End marker for exponent iterator corresponding to leading term.
virtual ordercode_type getOrderCode () const =0
 Get numerical code for ordering.
virtual ordercode_type getBaseOrderCode () const =0
 Get numerical code for base ordering (the same for non-block orderings).
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.
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).


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

Check index on input.

Type for block indices.

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

Type for block iterators.


Constructor & Destructor Documentation

polybori::COrderingBase::COrderingBase (  )  [inline]

Default constructor.

polybori::COrderingBase::~COrderingBase (  )  [inline, pure virtual]


Member Function Documentation

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 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]

Get leading term (using upper bound).

Implemented in polybori::DegLexOrder, polybori::DegRevLexAscOrder, and polybori::LexOrder.

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]

Get leading exponent (using upper bound).

Implemented in polybori::DegLexOrder, polybori::DegRevLexAscOrder, and polybori::LexOrder.

virtual poly_type polybori::COrderingBase::leadFirst ( const poly_type  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::isLexicographical (  )  const [pure virtual]

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

virtual bool_type polybori::COrderingBase::isSymmetric (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::isDegreeOrder (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::isBlockOrder (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::isTotalDegreeOrder (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::ascendingVariables (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::descendingVariables (  )  const [pure virtual]

virtual bool_type polybori::COrderingBase::isDegreeReverseLexicographical (  )  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 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 ordercode_type polybori::COrderingBase::getOrderCode (  )  const [pure virtual]

virtual ordercode_type polybori::COrderingBase::getBaseOrderCode (  )  const [pure virtual]

virtual block_iterator polybori::COrderingBase::blockBegin (  )  const [inline, virtual]

virtual block_iterator polybori::COrderingBase::blockEnd (  )  const [inline, virtual]

virtual void polybori::COrderingBase::appendBlock ( checked_idx_type   )  [inline, virtual]

virtual void polybori::COrderingBase::clearBlocks (  )  [inline, virtual]

virtual bool_type polybori::COrderingBase::lieInSameBlock ( idx_type  ,
idx_type   
) const [pure virtual]

virtual idx_type polybori::COrderingBase::lastBlockStart (  )  const [pure virtual]

monom_type polybori::COrderingBase::monom ( const set_type rhs  )  const [inline, protected]

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

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

Referenced by polybori::LexOrder::lead(), polybori::DegRevLexAscOrder::lead(), and polybori::DegLexOrder::lead().


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

Generated on Wed Jan 30 16:39:53 2013 for PolyBoRi by  doxygen 1.5.6