PolyBoRi
BoundedDivisorsOf.h
Go to the documentation of this file.
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_ */