This class defines ordering related functions. More...
#include <COrderBase.h>
Public Types | |
typedef COrderBase | base |
current type should used as base only | |
typedef BoolePolynomial | poly_type |
Type of Boolean polynomials. | |
typedef poly_type::size_type | size_type |
Type for sizes. | |
typedef poly_type::deg_type | deg_type |
Type for degrees. | |
typedef poly_type::idx_type | idx_type |
Type for indices. | |
typedef BooleMonomial | monom_type |
Type of Boolean monomials. | |
typedef BoolePolynomial::navigator | navigator |
typedef COrderedIter < navigator, monom_type > | indirect_iterator |
typedef BooleSet | set_type |
Type of Boolean sets. | |
typedef BooleExponent | exp_type |
Type of Boolean monomials. | |
typedef COrderedIter < navigator, exp_type > | indirect_exp_iterator |
typedef std::vector< idx_type > | block_idx_type |
Type for block indices. | |
typedef block_idx_type::const_iterator | block_iterator |
Type for block iterators. | |
define generic property markers (default is invalid) | |
typedef invalid_tag | lex_property |
typedef invalid_tag | ordered_property |
typedef invalid_tag | symmetry_property |
typedef invalid_tag | degorder_property |
typedef invalid_tag | blockorder_property |
typedef invalid_tag | degrevlexorder_property |
typedef invalid_tag | totaldegorder_property |
typedef invalid_tag | ascending_property |
typedef invalid_tag | descending_property |
Public Member Functions | |
COrderBase () | |
Default Constructor. | |
COrderBase (const COrderBase &) | |
Copy Constructor. | |
virtual | ~COrderBase () |
Destructor. | |
virtual comp_type | compare (idx_type, idx_type) const =0 |
Comparison of indices corresponding to variables. | |
virtual comp_type | compare (const monom_type &, const monom_type &) const =0 |
Comparison of monomials. | |
virtual comp_type | compare (const exp_type &, const exp_type &) const =0 |
Comparison of exponent vectors. | |
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 an 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 an upper bound). | |
virtual indirect_iterator | leadIteratorBegin (const poly_type &) const =0 |
Initialize iterator corresponding to leading term. | |
virtual indirect_iterator | leadIteratorEnd () const =0 |
virtual indirect_exp_iterator | leadExpIteratorBegin (const poly_type &) const =0 |
virtual indirect_exp_iterator | leadExpIteratorEnd () const =0 |
interface for block orderings | |
virtual block_iterator | blockBegin () const |
virtual block_iterator | blockEnd () const |
virtual void | appendBlock (idx_type) const |
virtual void | clearBlocks () const |
Protected Member Functions | |
monom_type | monom (const set_type &rhs) const |
Get monomial from set of subsets of Boolean variables (internal use only). |
This class defines ordering related functions.
typedef invalid_tag COrderBase::ascending_property |
Reimplemented in DegRevLexAscOrder.
typedef COrderBase COrderBase::base |
current type should used as base only
typedef std::vector<idx_type> COrderBase::block_idx_type |
Type for block indices.
typedef block_idx_type::const_iterator COrderBase::block_iterator |
Type for block iterators.
typedef invalid_tag COrderBase::blockorder_property |
Reimplemented in BlockDegLexOrder, and BlockDegRevLexAscOrder.
Type for degrees.
typedef invalid_tag COrderBase::degorder_property |
Reimplemented in DegLexOrder, and DegRevLexAscOrder.
typedef invalid_tag COrderBase::degrevlexorder_property |
Reimplemented in DegRevLexAscOrder.
typedef invalid_tag COrderBase::descending_property |
Reimplemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, and LexOrder.
typedef BooleExponent COrderBase::exp_type |
Type of Boolean monomials.
Type for indices.
typedef invalid_tag COrderBase::lex_property |
Reimplemented in LexOrder.
typedef BooleMonomial COrderBase::monom_type |
Type of Boolean monomials.
typedef invalid_tag COrderBase::ordered_property |
Reimplemented in LexOrder.
typedef BoolePolynomial COrderBase::poly_type |
Type of Boolean polynomials.
typedef BooleSet COrderBase::set_type |
Type of Boolean sets.
Type for sizes.
typedef invalid_tag COrderBase::symmetry_property |
Reimplemented in DegLexOrder, DegRevLexAscOrder, and LexOrder.
typedef invalid_tag COrderBase::totaldegorder_property |
Reimplemented in DegLexOrder, and DegRevLexAscOrder.
COrderBase::COrderBase | ( | ) | [inline] |
Default Constructor.
COrderBase::COrderBase | ( | const COrderBase & | ) | [inline] |
Copy Constructor.
virtual COrderBase::~COrderBase | ( | ) | [inline, virtual] |
Destructor.
virtual void COrderBase::appendBlock | ( | idx_type | ) | const [inline, virtual] |
virtual block_iterator COrderBase::blockBegin | ( | ) | const [inline, virtual] |
Reimplemented in BlockDegLexOrder, and BlockDegRevLexAscOrder.
virtual block_iterator COrderBase::blockEnd | ( | ) | const [inline, virtual] |
Reimplemented in BlockDegLexOrder, and BlockDegRevLexAscOrder.
virtual void COrderBase::clearBlocks | ( | ) | const [inline, virtual] |
Comparison of exponent vectors.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual comp_type COrderBase::compare | ( | const monom_type & | , | |
const monom_type & | ||||
) | const [pure virtual] |
Comparison of monomials.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
Comparison of indices corresponding to variables.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual monom_type COrderBase::lead | ( | const poly_type & | , | |
deg_type | ||||
) | const [pure virtual] |
Get leading term (using an upper bound).
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual monom_type COrderBase::lead | ( | const poly_type & | ) | const [pure virtual] |
Get leading term.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
Get leading exponent (using an upper bound).
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
Get leading exponent.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual indirect_exp_iterator COrderBase::leadExpIteratorBegin | ( | const poly_type & | ) | const [pure virtual] |
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual indirect_exp_iterator COrderBase::leadExpIteratorEnd | ( | ) | const [pure virtual] |
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual indirect_iterator COrderBase::leadIteratorBegin | ( | const poly_type & | ) | const [pure virtual] |
Initialize iterator corresponding to leading term.
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
virtual indirect_iterator COrderBase::leadIteratorEnd | ( | ) | const [pure virtual] |
Implemented in BlockDegLexOrder, BlockDegRevLexAscOrder, DegLexOrder, DegRevLexAscOrder, and LexOrder.
monom_type COrderBase::monom | ( | const set_type & | rhs | ) | const [inline, protected] |
Get monomial from set of subsets of Boolean variables (internal use only).
Referenced by DegRevLexAscOrder::lead(), DegLexOrder::lead(), BlockDegRevLexAscOrder::lead(), and BlockDegLexOrder::lead().