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