TermsFacade.h
Go to the documentation of this file.
// -*- c++ -*-
//*****************************************************************************
//*****************************************************************************
#ifndef polybori_groebner_TermsFacade_h_
#define polybori_groebner_TermsFacade_h_
// include basic definitions
#include "groebner_defs.h"
BEGIN_NAMESPACE_PBORIGB
template <class NewType>
class TermsFacade:
public MonomialSet {
typedef MonomialSet base;
public:
template <class Type>
TermsFacade(const Type& value): base(value) { }
void update(const PolyEntry& entry) {
if (get().isCompatible(entry))
operator=(unite(entry.lead.set()));
}
private:
TermsFacade& operator=(const TermsFacade& rhs) {
return static_cast<TermsFacade&>(static_cast<base&>(*this) = rhs);
}
const NewType& get() const { return static_cast<const NewType&>(*this); }
};
END_NAMESPACE_PBORIGB
#endif /* polybori_groebner_TermsFacade_h_ */
polybori::BooleMonomial::set
set_type set() const
Get corresponding subset of of the powerset over all variables.
Definition: BooleMonomial.h:216
END_NAMESPACE_PBORIGB
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
polybori::groebner::TermsFacade
This class defines TermsFacade.
Definition: TermsFacade.h:30
BEGIN_NAMESPACE_PBORIGB
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
polybori::groebner::TermsFacade::update
void update(const PolyEntry &entry)
Insert data (polynomial or leading term) from entry.
Definition: TermsFacade.h:41
polybori::groebner::PolyEntry
This class defines PolyEntry.
Definition: PolyEntry.h:32
groebner_defs.h
polybori::CCuddDDFacade< BoolePolyRing, BooleSet >
polybori::groebner::TermsFacade::TermsFacade
TermsFacade(const Type &value)
Construct copy or MonomialSet from value.
Definition: TermsFacade.h:38
polybori::groebner::PolyEntryBase::lead
Monomial lead
Definition: PolyEntryBase.h:55
polybori::BooleSet
Definition: BooleSet.h:57