1 #ifndef __ALGORITHM_BUCHBERGER_DYNAMIC_HPP_ 2 #define __ALGORITHM_BUCHBERGER_DYNAMIC_HPP_ 26 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 "dynamic_engine.hpp" 46 #include "algorithm_buchberger_basic.hpp" 93 void initial_analysis(
94 const list<Abstract_Polynomial *> & F,
127 const list<Abstract_Polynomial *> &F,
130 WT_TYPE * strategy_weights =
nullptr,
133 bool analyze_inputs =
false 138 template bool no_triplet<Critical_Pair_Dynamic>(
142 template void report_critical_pairs<Critical_Pair_Dynamic>(
143 const list<Critical_Pair_Dynamic *>, bool
146 template void sort_pairs_by_strategy<Critical_Pair_Dynamic>(
147 list<Critical_Pair_Dynamic *> &
void reduce_over_basis_dynamic(Mutable_Polynomial **sp, const list< Abstract_Polynomial *> G)
Reduce the polynomial r over the basis G.
Controls the creation of s-polynomials, specialized for the dynamic algorithm.
StrategyFlags
flag indicating which strategy to use for computation
SPolyCreationFlags
flag indicating which structure to use for an s-polynomial
exact or approximate polyhedral cone solution, with methods allowing definition and refinement ...
Polynomials that need arithmetic typically descend from this class.
interface to a monomial ordering
DynamicSolver
used by buchberger_dynamic() to decide which solver to use
list< Constant_Polynomial * > buchberger_dynamic(const list< Abstract_Polynomial *> &F, SPolyCreationFlags method=SPolyCreationFlags::GEOBUCKETS, StrategyFlags strategy=StrategyFlags::SUGAR_STRATEGY, WT_TYPE *strategy_weights=nullptr, DynamicHeuristic heuristic=DynamicHeuristic::ORD_HILBERT_THEN_DEG, DynamicSolver solver=SKELETON_SOLVER, bool analyze_inputs=false)
implementation of the dynamic Buchberger algorithm