Gröbner basis project
Codebase for research into Gröbner basis computation
Poly_Strategy_Data Class Referenceabstract

polynomial-related strategy data More...

#include <strategies.hpp>

Inheritance diagram for Poly_Strategy_Data:
Poly_Sugar_Data Poly_WSugar_Data

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_Polynomialp
 the polynomial to which this strategy applies
 

Friends

I/O
ostream & operator<< (ostream &, const Poly_Strategy_Data &)
 print strategy-related data in the polynomial
 

Detailed Description

polynomial-related strategy data

Author
John Perry
Date
2016

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.

Member Function Documentation

◆ at_generation_tasks() [1/2]

virtual void Poly_Strategy_Data::at_generation_tasks ( )
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.

◆ at_generation_tasks() [2/2]

virtual void Poly_Strategy_Data::at_generation_tasks ( const Monomial t)
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.

◆ pre_reduction_tasks()

virtual void Poly_Strategy_Data::pre_reduction_tasks ( const EXP_TYPE *  u,
const Abstract_Polynomial g 
)
inlinevirtual

hook called immediately before performing reduction

Parameters
gpolynomial that reduces r (where r is this)
uexponents 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.

◆ valid_reduction()

bool Poly_Strategy_Data::valid_reduction ( const Abstract_Polynomial r,
const Abstract_Polynomial g 
) const
virtual

hook called while finding a reducer

Parameters
rpolynomial that is to be reduced
gpolynomial 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.


The documentation for this class was generated from the following files: