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

Represent a array of monomials. More...

#include <monomial-array.h>

Public Member Functions

 MonomialArray (int nbVariable, int capacity)
 Constructor. More...
 
 MonomialArray (int nbVariable, int capacity, int degree)
 Constructor. More...
 
 ~MonomialArray ()
 Destructor.
 
void setMonomialArray ()
 Modify the dynamic array _monomialArray. More...
 
void setTabulatedProduct (int degree)
 Modify the static 2D array TABULATED_PRODUCT. More...
 
void freeTabulatedProduct ()
 Free the static 2D array NB_MONOMIAL. More...
 
uint8_t getNumVarlist (int numMon, int index)
 Get _monomialArray[numMon]._varlist[index]. More...
 
int multNumMonomial (int numMon1, int numMon2)
 Multiply two monomials, using _tabulatedProduct if possible. Prefer numMon1<numMon2. More...
 
Monomial const & getNumMonomial (int index)
 Overload the operator []. More...
 
Monomial const & operator[] (int index)
 Overload the operator []. More...
 

Private Attributes

std::vector< Monomial_monomialArray
 
vector< int > * _tabulatedProduct
 
int _nbVariable
 
size_t _size
 
uint8_t * _varlistArray [128]
 
int _varlistIndex
 
int _numMaxRow
 
int _numMaxColumn
 

Detailed Description

Represent a array of monomials.

Definition at line 52 of file monomial-array.h.

Constructor & Destructor Documentation

F4::MonomialArray::MonomialArray ( int  nbVariable,
int  capacity 
)

Constructor.

Parameters
nbVariableNumber of variable of the polynomial ring.
capacityInitial size of _monomialArray.
F4::MonomialArray::MonomialArray ( int  nbVariable,
int  capacity,
int  degree 
)

Constructor.

Parameters
nbVariableNumber of variable of the polynomial ring.
capacityInitial size of _monomialArray.
degreeInitialise the monomial array up to monomial of degree "degree".

Member Function Documentation

void F4::MonomialArray::freeTabulatedProduct ( )

Free the static 2D array NB_MONOMIAL.

Precondition
The static variables NB_VARIABLE must be set beforehand.
Monomial const& F4::MonomialArray::getNumMonomial ( int  index)

Overload the operator [].

Returns
Reference on a monomial.
uint8_t F4::MonomialArray::getNumVarlist ( int  numMon,
int  index 
)

Get _monomialArray[numMon]._varlist[index].

Parameters
numMonNumber of the monomial.
indexIndex of a variable in varlist.
Returns
_monomialArray[numMon]._varlist[index].
int F4::MonomialArray::multNumMonomial ( int  numMon1,
int  numMon2 
)

Multiply two monomials, using _tabulatedProduct if possible. Prefer numMon1<numMon2.

Parameters
numMon1Number of the first monomial.
numMon2Number of the second monomial.
Returns
Number of the product intToMonomial[numMon1] * intToMonomial[numMon2].
Monomial const& F4::MonomialArray::operator[] ( int  index)

Overload the operator [].

Returns
Reference on a monomial.
void F4::MonomialArray::setMonomialArray ( )

Modify the dynamic array _monomialArray.

Precondition
The array _nbMonomial must be set beforehand.
void F4::MonomialArray::setTabulatedProduct ( int  degree)

Modify the static 2D array TABULATED_PRODUCT.

Precondition
Static variables NB_VARIABLE, NB_MONOMIAL and MONOMIAL_ARRAY must be set beforehand.
Parameters
degreeMaximum degree of column monomials. The degree of row monomials is 1.

Member Data Documentation

std::vector<Monomial> F4::MonomialArray::_monomialArray
private

Array of monomial

Definition at line 137 of file monomial-array.h.

int F4::MonomialArray::_nbVariable
private

Number of variables of the polynomial ring.

Definition at line 139 of file monomial-array.h.

int F4::MonomialArray::_numMaxColumn
private

Number of columns in _tabulatedProduct.

Definition at line 144 of file monomial-array.h.

int F4::MonomialArray::_numMaxRow
private

Number of rows in _tabulatedProduct.

Definition at line 143 of file monomial-array.h.

size_t F4::MonomialArray::_size
private

Current size of _monomialArray

Definition at line 140 of file monomial-array.h.

vector<int>* F4::MonomialArray::_tabulatedProduct
private

_tabulatedProduct[i][j] = number of the product intToMonomial[i] * intToMonomial[j]

Definition at line 138 of file monomial-array.h.

uint8_t* F4::MonomialArray::_varlistArray[128]
private

2D array of varlist

Definition at line 141 of file monomial-array.h.

int F4::MonomialArray::_varlistIndex
private

Next available row index in _varlistArray

Definition at line 142 of file monomial-array.h.


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