• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

LexOrder.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 //*****************************************************************************
00078 //*****************************************************************************
00079 
00080 // include basic definitions
00081 #include "pbori_defs.h"
00082 
00083 // include base order definitions
00084 #include "COrderBase.h"
00085 
00086 #ifndef LexOrder_h_
00087 #define LexOrder_h_
00088 
00089 BEGIN_NAMESPACE_PBORI
00090 
00096 class LexOrder:
00097   public COrderBase {
00098 
00099  public:
00100   //-------------------------------------------------------------------------
00101   // types definitions
00102   //-------------------------------------------------------------------------
00103 
00105   typedef LexOrder self;
00106 
00108 
00109   typedef valid_tag lex_property; 
00110   typedef valid_tag ordered_property;
00111   typedef valid_tag symmetry_property;
00112   typedef valid_tag descending_property;
00113   typedef lex_tag order_tag;
00115 
00117   enum { order_code = CTypes::lp, baseorder_code = order_code };
00118 
00120   typedef std::less<idx_type> idx_comparer_type;
00121 
00123   LexOrder(): base() {};
00124 
00126   LexOrder(const self& rhs): base(rhs) {};
00127 
00129   ~LexOrder() {};
00130 
00132   comp_type compare(idx_type, idx_type) const;
00133 
00135   comp_type compare(const monom_type&, const monom_type&) const;
00136 
00138   comp_type compare(const exp_type&, const exp_type&) const;
00139 
00141   monom_type lead(const poly_type&) const;
00142 
00144   monom_type lead(const poly_type& poly, size_type) const { return lead(poly); }
00145 
00147   exp_type leadExp(const poly_type&) const;
00148 
00150   exp_type leadExp(const poly_type& poly, size_type) const {
00151     return leadExp(poly); }
00152 
00154   indirect_iterator leadIteratorBegin(const poly_type&) const;
00155   indirect_iterator leadIteratorEnd() const;
00156   indirect_exp_iterator leadExpIteratorBegin(const poly_type&) const;
00157   indirect_exp_iterator leadExpIteratorEnd() const;
00158 
00159 };
00160 
00161 
00162 END_NAMESPACE_PBORI
00163 
00164 #endif // LexOrder_h_

Generated on Thu Oct 21 2010 02:56:32 for PolyBoRi by  doxygen 1.7.1