1 // -*- c++ -*- 2 //***************************************************************************** 3 /** @file DegOrderHelper.h 4 * 5 * @author Michael Brickenstein 6 * @date 2011-06-30 7 * 8 * This file includes the definition of the class @c DegOrderHelper. 9 * 10 * @par Copyright: 11 * (c) 2006-2010 by The PolyBoRi Team 12 * 13 **/ 14 //***************************************************************************** 15 16 #ifndef polybori_groebner_DegOrderHelper_h_ 17 #define polybori_groebner_DegOrderHelper_h_ 18 19 // include basic definitions 20 #include "groebner_defs.h" 21 #include "ReductionStrategy.h" 22 #include "add_up.h" 23 24 BEGIN_NAMESPACE_PBORIGB 25 26 /** @class DegOrderHelper 27 * @brief This class defines DegOrderHelper. 28 * 29 **/ 30 class DegOrderHelper{ 31 public: irreducible_lead(const Monomial & m,const ReductionStrategy & strat)32 static bool irreducible_lead(const Monomial& m, const ReductionStrategy& strat){ 33 return PBORINAME::groebner::irreducible_lead(m,strat); 34 } begin(const Polynomial & p)35 static Polynomial::ordered_iterator begin(const Polynomial & p){ 36 return p.orderedBegin(); 37 } end(const Polynomial & p)38 static Polynomial::ordered_iterator end(const Polynomial & p){ 39 return p.orderedEnd(); 40 } nf(const ReductionStrategy & strat,const Polynomial & p,const Monomial & m)41 static Polynomial nf(const ReductionStrategy& strat, const Polynomial& p, const Monomial& m){ 42 return nf3_degree_order(strat,p,m); 43 } 44 typedef Polynomial::ordered_iterator iterator_type; 45 const static bool isDegreeOrder=true; 46 const static bool isLexicographicalOrder=false; knowRestIsIrreducible(const iterator_type & it,const ReductionStrategy & strat)47 static bool knowRestIsIrreducible(const iterator_type& it, const ReductionStrategy & strat){ 48 return false; 49 } sum_range(std::vector<Monomial> & vec,iterator_type it,iterator_type end,Polynomial init)50 static Polynomial sum_range(std::vector<Monomial>& vec,iterator_type it, iterator_type end, Polynomial init){ 51 return add_up_generic(vec, init); 52 } 53 54 }; 55 56 END_NAMESPACE_PBORIGB 57 58 #endif /* polybori_DegOrderHelper_h_ */ 59