PolyBoRi
RelatedTerms.h
Go to the documentation of this file.
00001 // -*- c++ -*-
00002 //*****************************************************************************
00014 //*****************************************************************************
00015 
00016 #ifndef polybori_groebner_RelatedTerms_h_
00017 #define polybori_groebner_RelatedTerms_h_
00018 
00019 #include "RelatedTermsBase.h"
00020 #include <polybori/common/TransformedSequence.h>
00021 
00022 // include basic definitions
00023 #include "groebner_defs.h"
00024 
00025 BEGIN_NAMESPACE_PBORIGB
00026 
00033 class RelatedTerms:
00034   protected RelatedTermsBase {
00035   typedef RelatedTermsBase base;
00036 
00037 public:
00038   typedef TransformedSequence<MonomialSet, BoundedDivisorsOf>
00039   divisors_sequence_type;
00040 
00042   RelatedTerms(const BoolePolyRing& ring): base(ring) { }
00043 
00045   RelatedTerms(const Monomial& lead, const MonomialSet& monomials,
00046                const MonomialSet& ignorable):
00047     base(lead, monomials, ignorable, monomials.diff(ignorable))  { }
00048   
00050   const MonomialSet& terms() const { return related_terms(); }
00051 
00053   divisors_sequence_type divisors(const MonomialSet& monomials) const { 
00054     return divisors_sequence_type(factors(monomials), divisors_of());
00055   };
00056 };
00057 
00058 
00059 END_NAMESPACE_PBORIGB
00060 
00061 #endif /* polybori_groebner_RelatedTerms_h_ */