00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_groebner_TimesVariableSubstitution_h_ 00017 #define polybori_groebner_TimesVariableSubstitution_h_ 00018 00019 // include basic definitions 00020 #include "groebner_defs.h" 00021 00022 BEGIN_NAMESPACE_PBORIGB 00023 00031 class TimesVariableSubstitution { 00032 public: 00033 template <class PairType> 00034 Polynomial operator()(const Polynomial& lhs, const PairType& rhs) const { 00035 return lhs * (lhs.ring().variable(rhs.first) + 00036 lhs.ring().variable(rhs.second)); 00037 } 00038 }; 00039 00040 00041 END_NAMESPACE_PBORIGB 00042 00043 #endif /* polybori_groebner_TimesVariableSubstitution_h_ */