00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_groebner_MonomialTerms_h_ 00017 #define polybori_groebner_MonomialTerms_h_ 00018 00019 #include "TermsFacade.h" 00020 00021 // include basic definitions 00022 #include "groebner_defs.h" 00023 00024 BEGIN_NAMESPACE_PBORIGB 00025 00031 class MonomialTerms: 00032 public TermsFacade<MonomialTerms> { 00033 00034 public: 00035 template <class Type> 00036 MonomialTerms(const Type& rhs): TermsFacade<MonomialTerms>(rhs) {} 00037 00038 bool isCompatible(const PolyEntry& entry) const { 00039 PBORI_ASSERT( (entry.length != 1) || (entry.p == entry.lead) ); 00040 return (entry.length == 1); 00041 } 00042 }; 00043 00044 END_NAMESPACE_PBORIGB 00045 00046 #endif /* polybori_groebner_MonomialTerms_h_ */