OPENF4
Library for Gröebner basis computations over finite fields.
 All Classes Namespaces Files Functions Variables Friends Pages
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
F4::TaggedPolynomial< Element > Class Template Reference

Represent a tagged polynomial. More...

#include <tagged-polynomial.h>

Public Member Functions

 TaggedPolynomial ()
 Constructor.
 
 TaggedPolynomial (Polynomial< Element > const &polynomial)
 Constructor. More...
 
 TaggedPolynomial (TaggedPolynomial const &taggedPolynomial)
 Copy Constructor. More...
 
 TaggedPolynomial (TaggedPolynomial &&taggedPolynomial)
 Move Constructor. More...
 
Polynomial< Element > const & getPolynomialConst () const
 Get the polynomial of this. More...
 
Polynomial< Element > & getPolynomial ()
 Get the polynomial of this. More...
 
void setPolynomial (Polynomial< Element > &&polynomial)
 Set the polynomial of this, but do not modify the simplyrules. More...
 
const Term< Element > & getLT () const
 Get the leading term of this. More...
 
int getLM () const
 Get the number of the leading monomial of this. More...
 
Element getLC () const
 Get the leading coefficient of this. More...
 
int getNbTerm () const
 Get the number of terms of this. More...
 
int getSimplyrule (int index) const
 Get _simplyrules[i]. More...
 
void setSimplyrule (int index, int numPol)
 Set _simplyrules[i]. More...
 
NodeList< Element > * getPolynomialBegin ()
 Get an iterator on the beginning of the polynomial. More...
 
NodeList< Element > const * getPolynomialBeginConst () const
 Get a constant iterator on the beginning of the polynomial. More...
 
void printTaggedPolynomial (std::ostream &stream) const
 Print the polynomial and the _simplyrules of this.
 
int compareTaggedPolynomial (TaggedPolynomial const &taggedPolynomial) const
 Compare this with taggedPolynomial. More...
 
bool isEmpty ()
 Test if the polynomial is empty or not. More...
 
void resetSimplyrules ()
 Reset the simplyrules of this.
 
void setTaggedPolynomial (TaggedPolynomial const &taggedPolynomial, uint8_t const *varlist)
 Set this = taggedPolynomial * monomial. Do not modify the simplyrules. More...
 
TaggedPolynomialoperator= (TaggedPolynomial const &taggedPolynomial)
 Overload the operator =. More...
 
TaggedPolynomialoperator= (TaggedPolynomial &&taggedPolynomial)
 Overload the move operator =. More...
 
TaggedPolynomialoperator= (Polynomial< Element > const &polynomial)
 Overload the operator =. More...
 
TaggedPolynomialoperator= (Polynomial< Element > &&polynomial)
 Overload the move operator =. More...
 
TaggedPolynomialoperator*= (Monomial const &monomial)
 Overload the operator *= to multiply this with a monomial. More...
 
TaggedPolynomialoperator*= (Element element)
 Overload the operator *= to multiply this with an Element. More...
 
TaggedPolynomialoperator*= (Term< Element > const &term)
 Overload the operator *= to multiply this with a term. More...
 

Static Public Member Functions

static void setMonomialArray (MonomialArray *monomialArray)
 Set the monomial array to use. More...
 

Private Attributes

Polynomial< Element > _polynomial
 
int * _simplyrules
 

Static Private Attributes

static MonomialArrayMONOMIAL_ARRAY
 

Detailed Description

template<typename Element>
class F4::TaggedPolynomial< Element >

Represent a tagged polynomial.

Definition at line 44 of file tagged-polynomial.h.

Constructor & Destructor Documentation

template<typename Element>
F4::TaggedPolynomial< Element >::TaggedPolynomial ( Polynomial< Element > const &  polynomial)

Constructor.

Parameters
polynomialPolynomial.
template<typename Element>
F4::TaggedPolynomial< Element >::TaggedPolynomial ( TaggedPolynomial< Element > const &  taggedPolynomial)

Copy Constructor.

Parameters
taggedPolynomialTaggedPolynomial.
template<typename Element>
F4::TaggedPolynomial< Element >::TaggedPolynomial ( TaggedPolynomial< Element > &&  taggedPolynomial)

Move Constructor.

Parameters
taggedPolynomialTaggedPolynomial.

Member Function Documentation

template<typename Element>
int F4::TaggedPolynomial< Element >::compareTaggedPolynomial ( TaggedPolynomial< Element > const &  taggedPolynomial) const

Compare this with taggedPolynomial.

Parameters
taggedPolynomialTaggedPolynomial.
Returns
(Number of terms of this) - (Number of terms of taggedPolynomial) if LM(this)==LM(taggedPolynomial).
1 if LM(this) > LM(taggedPolynomial).
-1 if LM(this) < LM(taggedPolynomial).
template<typename Element>
Element F4::TaggedPolynomial< Element >::getLC ( ) const

Get the leading coefficient of this.

Precondition
_polynomial is not empty.
Returns
Leading coefficient of this.
template<typename Element>
int F4::TaggedPolynomial< Element >::getLM ( ) const

Get the number of the leading monomial of this.

Precondition
_polynomial is not empty.
Returns
Number of the leading monomial of this.
template<typename Element>
const Term<Element>& F4::TaggedPolynomial< Element >::getLT ( ) const

Get the leading term of this.

Precondition
_polynomial is not empty.
Returns
Leading term of this.
template<typename Element>
int F4::TaggedPolynomial< Element >::getNbTerm ( ) const

Get the number of terms of this.

Returns
Number of terms of this.
template<typename Element>
Polynomial<Element>& F4::TaggedPolynomial< Element >::getPolynomial ( )

Get the polynomial of this.

Returns
Polynomial of this.
template<typename Element>
NodeList<Element>* F4::TaggedPolynomial< Element >::getPolynomialBegin ( )

Get an iterator on the beginning of the polynomial.

Returns
Iterator on the beginning of _polynomial._polynomial.
template<typename Element>
NodeList<Element> const* F4::TaggedPolynomial< Element >::getPolynomialBeginConst ( ) const

Get a constant iterator on the beginning of the polynomial.

Returns
Constant iterator on the beginning of _polynomial._polynomial.
template<typename Element>
Polynomial<Element> const& F4::TaggedPolynomial< Element >::getPolynomialConst ( ) const

Get the polynomial of this.

Returns
Polynomial of this.
template<typename Element>
int F4::TaggedPolynomial< Element >::getSimplyrule ( int  index) const

Get _simplyrules[i].

Parameters
indexIndex of a variable in _simplyrules.
Returns
_simplyrules[i].
template<typename Element>
bool F4::TaggedPolynomial< Element >::isEmpty ( )

Test if the polynomial is empty or not.

Returns
true if _polynomial is empty.
false otherwise.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator*= ( Monomial const &  monomial)

Overload the operator *= to multiply this with a monomial.

Parameters
monMonomial.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator*= ( Element  element)

Overload the operator *= to multiply this with an Element.

Parameters
elementElement.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator*= ( Term< Element > const &  term)

Overload the operator *= to multiply this with a term.

Parameters
termTerm.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator= ( TaggedPolynomial< Element > const &  taggedPolynomial)

Overload the operator =.

Parameters
taggedPolynomialTagged polynomial to copy.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator= ( TaggedPolynomial< Element > &&  taggedPolynomial)

Overload the move operator =.

Parameters
taggedPolynomialTagged polynomial to move.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator= ( Polynomial< Element > const &  polynomial)

Overload the operator =.

Parameters
polynomialPolynomial to copy.
Returns
Reference on this.
template<typename Element>
TaggedPolynomial& F4::TaggedPolynomial< Element >::operator= ( Polynomial< Element > &&  polynomial)

Overload the move operator =.

Parameters
polynomialPolynomial to move.
Returns
Reference on this.
template<typename Element>
static void F4::TaggedPolynomial< Element >::setMonomialArray ( MonomialArray monomialArray)
static

Set the monomial array to use.

Parameters
monomialArrayAddress of the array.
template<typename Element>
void F4::TaggedPolynomial< Element >::setPolynomial ( Polynomial< Element > &&  polynomial)

Set the polynomial of this, but do not modify the simplyrules.

Parameters
Polynomialto move.
template<typename Element>
void F4::TaggedPolynomial< Element >::setSimplyrule ( int  index,
int  numPol 
)

Set _simplyrules[i].

Parameters
indexIndex of a variable in _simplyrules.
numPolIndex of a tagged polynomial in a tagged polynomial Array.
Returns
_simplyrules[i].
template<typename Element>
void F4::TaggedPolynomial< Element >::setTaggedPolynomial ( TaggedPolynomial< Element > const &  taggedPolynomial,
uint8_t const *  varlist 
)

Set this = taggedPolynomial * monomial. Do not modify the simplyrules.

Parameters
taggedPolynomialTaggedPolynomial.
varlistArray representing the degree of each variable of the monomial

Member Data Documentation

template<typename Element>
Polynomial<Element> F4::TaggedPolynomial< Element >::_polynomial
private

Polynomial .

Definition at line 252 of file tagged-polynomial.h.

template<typename Element>
int* F4::TaggedPolynomial< Element >::_simplyrules
private

Array of integer, mainly used by the simplify algorithm. simplifyrules[i] is the index of a tagged polynomial of List.

Definition at line 253 of file tagged-polynomial.h.

template<typename Element>
MonomialArray* F4::TaggedPolynomial< Element >::MONOMIAL_ARRAY
staticprivate

Pointer on a monomial array

Definition at line 255 of file tagged-polynomial.h.


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