Gröbner basis project
Codebase for research into Gröbner basis computation
|
polynomial-related strategy data More...
#include <strategies.hpp>
Public Member Functions | |
Destruction | |
virtual | ~Poly_Strategy_Data () |
Basic properties | |
virtual StrategyFlags | type ()=0 |
Comparison | |
virtual bool | equivalent (const Poly_Strategy_Data &) const =0 |
should return true iff strategy considers this and other equivalent | |
bool | operator== (const Poly_Strategy_Data &other) const |
alias for equivalent() | |
virtual bool | first_larger (const Poly_Strategy_Data &) const =0 |
should return true iff strategy considers this larger than other | |
bool | operator> (const Poly_Strategy_Data &other) const |
alias for first_larger() | |
bool | operator>= (const Poly_Strategy_Data &other) const |
is this larger than or equivalent to other? | |
bool | operator< (const Poly_Strategy_Data &other) const |
is this smaller than other? | |
bool | operator<= (const Poly_Strategy_Data &other) const |
is this smaller than or equivalent to other? | |
Computation | |
virtual void | at_generation_tasks () |
hook called while first generating polynomial More... | |
virtual void | at_generation_tasks (const Monomial &t) |
hook called while first generating a polynomial multiple More... | |
virtual bool | valid_reduction (const Abstract_Polynomial &r, const Abstract_Polynomial &g) const |
hook called while finding a reducer More... | |
void | pre_reduction_tasks (const Monomial &u, const Abstract_Polynomial &g) |
virtual void | pre_reduction_tasks (const EXP_TYPE *u, const Abstract_Polynomial &g) |
hook called immediately before performing reduction More... | |
Protected Attributes | |
const Abstract_Polynomial * | p |
the polynomial to which this strategy applies | |
Friends | |
I/O | |
ostream & | operator<< (ostream &, const Poly_Strategy_Data &) |
print strategy-related data in the polynomial | |
polynomial-related strategy data
Some strategies will not need this class, but others will, such as sugar (to store a polynomial’s sugar).
Definition at line 32 of file strategies.hpp.
|
inlinevirtual |
hook called while first generating polynomial
The default is to do nothing, which is good for the normal strategy. Other strategies, however, may perform some record-keeping; the sugar strategy, for instance, will compute the polynomial’s sugar.
Reimplemented in Poly_WSugar_Data, and Poly_Sugar_Data.
Definition at line 71 of file strategies.hpp.
|
inlinevirtual |
hook called while first generating a polynomial multiple
The default is to do nothing, which is good for the normal strategy. Other strategies, however, may perform some record-keeping; the sugar strategy, for instance, will compute the polynomial’s sugar.
Reimplemented in Poly_WSugar_Data, and Poly_Sugar_Data.
Definition at line 78 of file strategies.hpp.
|
inlinevirtual |
hook called immediately before performing reduction
g | polynomial that reduces r (where r is this ) |
u | exponents of monomial satisfying \(u\textrm{lm}(g)=\textrm{lm}(r)\) |
The default is to do nothing, which is good for the normal strategy. Other strategies, however, may require some processing before reduction; the sugar strategy is an example, as reduction may increase a polynomial’s sugar
Reimplemented in Poly_WSugar_Data, and Poly_Sugar_Data.
Definition at line 105 of file strategies.hpp.
|
virtual |
hook called while finding a reducer
r | polynomial that is to be reduced |
g | polynomial that reduces r |
The default is to do nothing, which is good for the normal and sugar strategies. Other strategies, however, may impose constraints on the reduction; involutive and signature-based reduction, for instance, both forbid certain reductions.
Definition at line 26 of file strategies.cpp.