00001 // -*- c++ -*- 00002 //***************************************************************************** 00013 //***************************************************************************** 00014 00015 #ifndef polybori_BlockDegLexOrder_h_ 00016 #define polybori_BlockDegLexOrder_h_ 00017 00018 // include basic definitions 00019 #include <polybori/pbori_defs.h> 00020 00021 // include base order definitions 00022 #include <polybori/orderings/CBlockOrderingFacade.h> 00023 #include <polybori/orderings/COrderingTags.h> 00024 00025 BEGIN_NAMESPACE_PBORI 00026 00032 class BlockDegLexOrder: 00033 public CBlockOrderingFacade<BlockDegLexOrder, block_dlex_tag> { 00034 00036 typedef BlockDegLexOrder self; 00037 00038 public: 00039 00041 typedef std::less<idx_type> idx_comparer_type; 00042 00044 BlockDegLexOrder(): base() {}; 00045 00047 BlockDegLexOrder(const self& rhs): base(rhs) {}; 00048 00050 ~BlockDegLexOrder() {}; 00051 00053 comp_type compare(idx_type, idx_type) const; 00054 00056 comp_type compare(const monom_type&, const monom_type&) const; 00057 00059 comp_type compare(const exp_type&, const exp_type&) const; 00060 00061 }; 00062 00063 00064 END_NAMESPACE_PBORI 00065 00066 #endif // polybori_BlockDegLexOrder_h_