polybori::COrderingFacade< OrderType, OrderTag > Class Template Reference

This class initialize the interface for orderings of CDynamicOrderBase for a given OrderType. OrderType must inherit from COrderingFacade<OrderType>. More...

#include <COrderingFacade.h>

Inheritance diagram for polybori::COrderingFacade< OrderType, OrderTag >:

polybori::COrderingBase COrderingTags< OrderTag > polybori::order_traits< OrderTag > polybori::CAuxTypes 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 self base
 *this is to be used as base for OrderType only
typedef OrderType order_type
 Variable ordering definiton functional type.
typedef CCacheTypes::lead_tag
< OrderTag > 
order_lead_tag
 Tag for for leading monomial cache.
typedef COrderingTags< OrderTag > ordering_tags

Public Member Functions

 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.

Protected Member Functions

bool_type inSameBlockInternal (idx_type, idx_type, invalid_tag) const
 trivial case for non-block orderings
bool_type inSameBlockInternal (idx_type first, idx_type second, valid_tag) const
 complicated case for block orderings


Detailed Description

template<class OrderType, class OrderTag>
class polybori::COrderingFacade< OrderType, OrderTag >

This class initialize the interface for orderings of CDynamicOrderBase for a given OrderType. OrderType must inherit from COrderingFacade<OrderType>.

Member Typedef Documentation

template<class OrderType, class OrderTag>
typedef self polybori::COrderingFacade< OrderType, OrderTag >::base

template<class OrderType, class OrderTag>
typedef OrderType polybori::COrderingFacade< OrderType, OrderTag >::order_type

Variable ordering definiton functional type.

template<class OrderType, class OrderTag>
typedef CCacheTypes::lead_tag<OrderTag> polybori::COrderingFacade< OrderType, OrderTag >::order_lead_tag

template<class OrderType, class OrderTag>
typedef COrderingTags<OrderTag> polybori::COrderingFacade< OrderType, OrderTag >::ordering_tags


Constructor & Destructor Documentation

template<class OrderType, class OrderTag>
polybori::COrderingFacade< OrderType, OrderTag >::COrderingFacade (  )  [inline]

Construct new decision diagramm manager.

template<class OrderType, class OrderTag>
polybori::COrderingFacade< OrderType, OrderTag >::COrderingFacade ( const self rhs  )  [inline]

Construct new decision diagramm manager.

template<class OrderType, class OrderTag>
polybori::COrderingFacade< OrderType, OrderTag >::~COrderingFacade (  )  [inline]

Destructor.


Member Function Documentation

template<class OrderType, class OrderTag>
poly_type polybori::COrderingFacade< OrderType, OrderTag >::leadFirst ( const poly_type poly  )  const [inline, virtual]

Generates polynomial with leading term first (other terms may be skipped).

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isLexicographical (  )  const [inline, virtual]

Check whether ring is lexicographical.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::orderedStandardIteration (  )  const [inline, virtual]

Test whether iterators respect order.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isSymmetric (  )  const [inline, virtual]

Test whether variable pertubation do not change the order.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isDegreeOrder (  )  const [inline, virtual]

Test whether we deal with a degree-ordering.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isBlockOrder (  )  const [inline, virtual]

Test whether we deal with a degree-ordering.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isTotalDegreeOrder (  )  const [inline, virtual]

Test whether we deal with a total degree-ordering.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::isDegreeReverseLexicographical (  )  const [inline, virtual]

Test whether ordering is deg-rev-lex ordering.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::ascendingVariables (  )  const [inline, virtual]

Test whether variables are in ascending order.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::descendingVariables (  )  const [inline, virtual]

Test whether variables are in descending order.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordercode_type polybori::COrderingFacade< OrderType, OrderTag >::getOrderCode (  )  const [inline, virtual]

Get numerical code for ordering.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordercode_type polybori::COrderingFacade< OrderType, OrderTag >::getBaseOrderCode (  )  const [inline, virtual]

Get numerical code for base ordering (the same for non-block orderings).

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::lieInSameBlock ( idx_type  first,
idx_type  second 
) const [inline, virtual]

Check, whether two indices are in the same block (true for nonblock orderings)

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
idx_type polybori::COrderingFacade< OrderType, OrderTag >::lastBlockStart (  )  const [inline, virtual]

Generic procedure to get index, where last block starts.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordered_iterator polybori::COrderingFacade< OrderType, OrderTag >::leadIteratorBegin ( const poly_type  )  const [inline, virtual]

Initialize iterator corresponding to leading term.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordered_iterator polybori::COrderingFacade< OrderType, OrderTag >::leadIteratorEnd ( const poly_type  )  const [inline, virtual]

End marker for iterator corresponding to leading term.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordered_exp_iterator polybori::COrderingFacade< OrderType, OrderTag >::leadExpIteratorBegin ( const poly_type  )  const [inline, virtual]

Initialize exponent iterator corresponding to leading term.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
ordered_exp_iterator polybori::COrderingFacade< OrderType, OrderTag >::leadExpIteratorEnd ( const poly_type  )  const [inline, virtual]

End marker for exponent iterator corresponding to leading term.

Implements polybori::COrderingBase.

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::inSameBlockInternal ( idx_type  ,
idx_type  ,
invalid_tag   
) const [inline, protected]

trivial case for non-block orderings

template<class OrderType, class OrderTag>
bool_type polybori::COrderingFacade< OrderType, OrderTag >::inSameBlockInternal ( idx_type  first,
idx_type  second,
valid_tag   
) const [inline, protected]

complicated case for block orderings


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