00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_groebner_BoundedDivisorsOf_h_ 00017 #define polybori_groebner_BoundedDivisorsOf_h_ 00018 00019 #include "fixed_path_divisors.h" 00020 00021 // include basic definitions 00022 #include "groebner_defs.h" 00023 00024 #include <functional> 00025 00026 BEGIN_NAMESPACE_PBORIGB 00027 00042 class BoundedDivisorsOf: 00043 public std::unary_function<Monomial, MonomialSet> { 00044 00045 public: 00047 BoundedDivisorsOf(const Monomial& term, const MonomialSet& terms): 00048 m_factor(term), m_terms(terms) {} 00049 00051 MonomialSet operator()(const Monomial& t_divided) const { 00052 Monomial t = t_divided * m_factor; 00053 return fixed_path_divisors(m_terms, t, t_divided); 00054 } 00055 00056 private: 00057 Monomial m_factor; 00058 MonomialSet m_terms; 00059 }; 00060 00061 END_NAMESPACE_PBORIGB 00062 00063 #endif /* polybori_groebner_BoundedDivisorsOf_h_ */