1 #ifndef __ALGORITHM_BUCHBERGER_EXPLORER_HPP_ 2 #define __ALGORITHM_BUCHBERGER_EXPLORER_HPP_ 28 using std::cout;
using std::endl;
30 #include "system_constants.hpp" 33 #include "monomial.hpp" 34 #include "polynomial.hpp" 35 #include "critical_pair.hpp" 36 #include "normal_strategy.hpp" 37 #include "polynomial_array.hpp" 38 #include "polynomial_geobucket.hpp" 39 #include "polynomial_linked_list.hpp" 40 #include "polynomial_double_buffered.hpp" 42 #include "sugar_strategy.hpp" 43 #include "weighted_sugar_strategy.hpp" 45 #include "algorithm_buchberger_basic.hpp" 57 const vector<Abstract_Polynomial *> &F,
60 WT_TYPE * strategy_weights =
nullptr,
61 const int comm_id = 0,
62 const int comm_size = 1
list< Constant_Polynomial * > buchberger_explorer(const vector< Abstract_Polynomial *> &F, SPolyCreationFlags method=SPolyCreationFlags::GEOBUCKETS, StrategyFlags strategy=StrategyFlags::NORMAL_STRATEGY, WT_TYPE *strategy_weights=nullptr, const int comm_id=0, const int comm_size=1)
Alternate implementation of Buchberger’s algorithm, for parallelization.
StrategyFlags
flag indicating which strategy to use for computation
SPolyCreationFlags
flag indicating which structure to use for an s-polynomial