00001
00002
00014
00015
00016 #ifndef polybori_groebner_BlockOrderHelper_h_
00017 #define polybori_groebner_BlockOrderHelper_h_
00018
00019
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