RedTailNth.h
Go to the documentation of this file.
// -*- c++ -*-
//*****************************************************************************
//*****************************************************************************
#ifndef polybori_groebner_RedTailNth_h_
#define polybori_groebner_RedTailNth_h_
// include basic definitions
#include "groebner_defs.h"
#include "PolyEntry.h"
#include "PolyEntryReference.h"
#include "ReductionStrategy.h"
BEGIN_NAMESPACE_PBORIGB
class RedTailNth {
public:
RedTailNth(ReductionStrategy& strat): m_strat(strat) {}
template <class KeyType>
const Polynomial& operator()(const KeyType& key) {
return get(m_strat(key)).p;
}
private:
const PolyEntry& get(PolyEntryReference entry) {
return entry = red_tail(m_strat, entry.get().p);
}
ReductionStrategy& m_strat;
};
END_NAMESPACE_PBORIGB
#endif /* polybori_groebner_RedTailNth_h_ */
END_NAMESPACE_PBORIGB
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
PolyEntry.h
polybori::groebner::red_tail
Polynomial red_tail(const ReductionStrategy &strat, Polynomial p)
Definition: red_tail.h:184
polybori::groebner::RedTailNth::operator()
const Polynomial & operator()(const KeyType &key)
Definition: RedTailNth.h:40
BEGIN_NAMESPACE_PBORIGB
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
polybori::groebner::PolyEntry
This class defines PolyEntry.
Definition: PolyEntry.h:32
polybori::BoolePolynomial
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
groebner_defs.h
PolyEntryReference.h
polybori::groebner::RedTailNth
Definition: RedTailNth.h:35
polybori::groebner::RedTailNth::RedTailNth
RedTailNth(ReductionStrategy &strat)
Definition: RedTailNth.h:37
ReductionStrategy.h
polybori::groebner::ReductionStrategy
This class defines ReductionStrategy.
Definition: ReductionStrategy.h:34
polybori::groebner::PolyEntryReference
This class defines PolyEntryReference.
Definition: PolyEntryReference.h:34