PolyBoRi
DegLexOrder.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
63 //*****************************************************************************
64 
65 // include basic definitions
66 #include "pbori_defs.h"
67 
68 // include base order definitions
69 #include "COrderBase.h"
70 
71 #ifndef DegLexOrder_h_
72 #define DegLexOrder_h_
73 
75 
82  public COrderBase {
83 
84  public:
85  //-------------------------------------------------------------------------
86  // types definitions
87  //-------------------------------------------------------------------------
88 
90  typedef DegLexOrder self;
91 
93 
100 
102  typedef std::less<idx_type> idx_comparer_type;
103 
105  enum { order_code = CTypes::dlex, baseorder_code = order_code };
106 
108  DegLexOrder(): base() {};
109 
111  DegLexOrder(const self& rhs): base(rhs) {};
112 
115 
117  comp_type compare(idx_type, idx_type) const;
118 
120  comp_type compare(const monom_type&, const monom_type&) const;
121 
123  comp_type compare(const exp_type&, const exp_type&) const;
124 
126  monom_type lead(const poly_type&) const;
127 
129  monom_type lead(const poly_type& poly, size_type) const;
130 
132  exp_type leadExp(const poly_type&) const;
133 
135  exp_type leadExp(const poly_type&, size_type) const;
136 
138  indirect_iterator leadIteratorBegin(const poly_type&) const;
139  indirect_iterator leadIteratorEnd() const;
140  indirect_exp_iterator leadExpIteratorBegin(const poly_type&) const;
141  indirect_exp_iterator leadExpIteratorEnd() const;
142 };
143 
144 
146 
147 #endif // DegLexOrder_h_