15 #include "../GBUpdateProcedures.h"
17 #include "../Reductor.h"
21 #include <unordered_map>
30 template<
typename BuchbergerProc>
62 template<
typename Polynomial,
template<
typename>
class AddingPolicy>
67 std::shared_ptr<Ideal<Polynomial>>
pGb;
71 #ifdef BUCHBERGER_STATISTICS
96 void calculate(
const std::list<Polynomial>& scheduledForAdding);
#define CARL_LOG_DEBUG(channel, msg)
carl is the main namespace for the library.
~UpdateFnct() override=default
BuchbergerProc * procedure
void operator()(std::size_t index) override
UpdateFnct(BuchbergerProc *proc)
Standard settings used if the Buchberger object is not instantiated with another template parameter.
static const bool calculateRealRadical
Gebauer and Moeller style implementation of the Buchberger algorithm.
bool addToGb(const Polynomial &newPol)
void calculate(const std::list< Polynomial > &scheduledForAdding)
std::vector< size_t > mGbElementsIndices
void removeBuchbergerTriples(std::unordered_map< size_t, SPolPair > &spairs, std::vector< size_t > &primelist)
void setIdeal(const std::shared_ptr< Ideal< Polynomial >> &ideal)
UpdateFnct< Buchberger< Polynomial, AddingPolicy > > mUpdateCallBack
std::shared_ptr< Ideal< Polynomial > > pGb
void update(size_t index)
Buchberger(const Buchberger &rhs)
std::shared_ptr< CritPairs > pCritPairs
void setCriticalPairs(const std::shared_ptr< CritPairs > &criticalPairs)
virtual ~Buchberger()=default
A little class for gathering statistics about the Buchberger algorithm calls.
A data structure to store all the SPolynomial pairs which have to be checked.