PolyBoRi
LexOrder.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
14 //*****************************************************************************
15 
16 #ifndef polybori_LexOrder_h_
17 #define polybori_LexOrder_h_
18 
19 // include basic definitions
20 #include <polybori/pbori_defs.h>
21 
22 // include base order definitions
25 
27 
33 class LexOrder:
34  public COrderingFacade<LexOrder, lex_tag> {
35 
37  typedef LexOrder self;
38 
39  public:
40 
42  typedef std::less<idx_type> idx_comparer_type;
43 
45  LexOrder(): base() {};
46 
48  LexOrder(const self& rhs): base(rhs) {};
49 
51  ~LexOrder() {};
52 
54  comp_type compare(idx_type, idx_type) const;
55 
57  comp_type compare(const monom_type&, const monom_type&) const;
58 
60  comp_type compare(const exp_type&, const exp_type&) const;
61 
63  monom_type lead(const poly_type&) const;
64 
67  monom_type lead(const poly_type& poly, deg_type) const {
68  return lead(poly);
69  }
70 
72  exp_type leadExp(const poly_type&) const;
73 
76  exp_type leadExp(const poly_type& poly, deg_type) const {
77  return leadExp(poly);
78  }
79 };
80 
81 
83 
84 #endif // polybori_LexOrder_h_
This class is just a wrapper for using variables for storing indices as interim data structure for Bo...
Definition: BooleExponent.h:34
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
LexOrder()
Default Constructor.
Definition: LexOrder.h:45
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
This class initialize the interface for orderings of CDynamicOrderBase for a given OrderType...
Definition: COrderingFacade.h:43
int deg_type
Type for polynomial degrees (ranges from -1 to maxint)
Definition: pbori_defs.h:222
~LexOrder()
Destructor.
Definition: LexOrder.h:51
Definition: COrderingBase.h:43
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
LexOrder(const self &rhs)
Copy Constructor.
Definition: LexOrder.h:48
This class defines ordering related functions.
Definition: LexOrder.h:33
monom_type lead(const poly_type &poly, deg_type) const
Definition: LexOrder.h:67
std::less< idx_type > idx_comparer_type
Define binary predicate for index comparision.
Definition: LexOrder.h:42
polybori::CTypes::idx_type idx_type
Definition: groebner_defs.h:44
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleMonomial.h:50
exp_type leadExp(const poly_type &poly, deg_type) const
Definition: LexOrder.h:76