LexOrder.h
Go to the documentation of this file.
// -*- c++ -*-
//*****************************************************************************
//*****************************************************************************
#ifndef polybori_LexOrder_h_
#define polybori_LexOrder_h_
// include basic definitions
#include <polybori/pbori_defs.h>
// include base order definitions
#include <polybori/orderings/COrderingFacade.h>
#include <polybori/orderings/COrderingTags.h>
BEGIN_NAMESPACE_PBORI
class LexOrder:
public COrderingFacade<LexOrder, lex_tag> {
typedef LexOrder self;
public:
typedef std::less<idx_type> idx_comparer_type;
LexOrder(): base() {};
LexOrder(const self& rhs): base(rhs) {};
~LexOrder() {};
comp_type compare(idx_type, idx_type) const;
comp_type compare(const monom_type&, const monom_type&) const;
comp_type compare(const exp_type&, const exp_type&) const;
monom_type lead(const poly_type&) const;
monom_type lead(const poly_type& poly, deg_type) const {
return lead(poly);
}
exp_type leadExp(const poly_type&) const;
exp_type leadExp(const poly_type& poly, deg_type) const {
return leadExp(poly);
}
};
END_NAMESPACE_PBORI
#endif // polybori_LexOrder_h_