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

DegRevLexAscOrder.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 //*****************************************************************************
00020 //*****************************************************************************
00021 
00022 // include basic definitions
00023 #include "pbori_defs.h"
00024 
00025 // include base order definitions
00026 #include "COrderBase.h"
00027 
00028 #ifndef DegRevLexAscOrder_h_
00029 #define DegRevLexAscOrder_h_
00030 
00031 BEGIN_NAMESPACE_PBORI
00032 
00038 class DegRevLexAscOrder:
00039   public COrderBase {
00040 
00041  public:
00042   //-------------------------------------------------------------------------
00043   // types definitions
00044   //-------------------------------------------------------------------------
00045 
00047   typedef DegRevLexAscOrder self;
00048 
00050 
00051   typedef valid_tag symmetry_property;
00052   typedef valid_tag degorder_property;
00053   typedef valid_tag totaldegorder_property;
00054   typedef valid_tag ascending_property;
00055   typedef valid_tag degrevlexorder_property;
00056   typedef dp_asc_tag order_tag;
00058 
00060   enum { order_code = CTypes::dp_asc, baseorder_code = order_code };
00061 
00063   typedef std::greater<idx_type> idx_comparer_type;
00064 
00066   DegRevLexAscOrder(): base() {};
00067 
00069   DegRevLexAscOrder(const self& rhs): base(rhs) {};
00070 
00072   ~DegRevLexAscOrder() {};
00073 
00075   comp_type compare(idx_type, idx_type) const;
00076 
00078   comp_type compare(const monom_type&, const monom_type&) const;
00079 
00081   comp_type compare(const exp_type&, const exp_type&) const;
00082 
00084   monom_type lead(const poly_type&) const;
00085 
00087   monom_type lead(const poly_type& poly, size_type) const;
00088 
00090   exp_type leadExp(const poly_type&) const;
00091 
00093   exp_type leadExp(const poly_type&, size_type) const;
00094 
00096   indirect_iterator leadIteratorBegin(const poly_type&) const;
00097   indirect_iterator leadIteratorEnd() const;
00098   indirect_exp_iterator leadExpIteratorBegin(const poly_type&) const;
00099   indirect_exp_iterator leadExpIteratorEnd() const;
00100 };
00101 
00102 
00103 END_NAMESPACE_PBORI
00104 
00105 #endif // DegRevLexAscOrder_h_

Generated on Thu Oct 21 2010 15:45:54 for PolyBoRi by  doxygen 1.7.1