PolyBoRi
|
00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_groebner_BlockOrderHelper_h_ 00017 #define polybori_groebner_BlockOrderHelper_h_ 00018 00019 // include basic definitions 00020 #include "groebner_defs.h" 00021 #include "ReductionStrategy.h" 00022 #include "nf.h" 00023 00024 BEGIN_NAMESPACE_PBORIGB 00025 00030 class BlockOrderHelper{ 00031 public: 00032 static bool irreducible_lead(const Monomial& m, const ReductionStrategy& strat){ 00033 return PBORINAME::groebner::irreducible_lead(m,strat); 00034 } 00035 static Polynomial::ordered_iterator begin(const Polynomial & p){ 00036 return p.orderedBegin(); 00037 } 00038 static Polynomial::ordered_iterator end(const Polynomial & p){ 00039 return p.orderedEnd(); 00040 } 00041 static Polynomial nf(const ReductionStrategy& strat, const Polynomial& p, const Monomial& m){ 00042 return nf3(strat,p,m); 00043 } 00044 typedef Polynomial::ordered_iterator iterator_type; 00045 const static bool isDegreeOrder=false; 00046 const static bool isLexicographicalOrder=false; 00047 static bool knowRestIsIrreducible(const iterator_type& it, const ReductionStrategy & strat){ 00048 return false; 00049 } 00050 static Polynomial sum_range(std::vector<Monomial>& vec,iterator_type it, iterator_type end, Polynomial init){ 00051 return add_up_generic(vec, init); 00052 } 00053 }; 00054 00055 END_NAMESPACE_PBORIGB 00056 00057 #endif /* polybori_BlockOrderHelper_h_ */