All Classes Functions Friends
Public Member Functions | Static Public Attributes | Friends | List of all members
DistributedDenseMultivariateModularPolynomial< Field > Class Template Reference
The concrete class DistributedDenseMultivariateModularPolynomial< Field > inherits from BPASMultivariatePolynomial and implements a multivariate polynomial ring over an arbitrary field with a distributed dense representation. In other words, it is template class. It overrides all the public member functions of BPASRing, BPASPolynomial and BPASMultivariatePolynomial. One can construct a DistributedDenseMultivariateModularPolynomial< Field > object as the zero polynomial with or without its size. One can also construct a DistributedDenseMultivariateModularPolynomial< Field > object from a variable (thus a monomial equal to that variable) or from another DistributedDenseMultivariateModularPolynomial< Field > object.
Inheritance diagram for DistributedDenseMultivariateModularPolynomial< Field >:
BPASMultivariatePolynomial BPASPolynomial BPASRing

Public Member Functions

 DistributedDenseMultivariateModularPolynomial ()
 
 DistributedDenseMultivariateModularPolynomial (Field m)
 
 DistributedDenseMultivariateModularPolynomial (int v, int *ds, Field m)
 
 DistributedDenseMultivariateModularPolynomial (std::string x, Field m)
 
 DistributedDenseMultivariateModularPolynomial (const DistributedDenseMultivariateModularPolynomial< Field > &b)
 
 ~DistributedDenseMultivariateModularPolynomial ()
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator= (DistributedDenseMultivariateModularPolynomial< Field > b)
 
bool isZero ()
 
void zero ()
 
bool isOne ()
 
void one ()
 
bool isNegativeOne ()
 
void negativeOne ()
 
int isConstant ()
 
int numberOfVariables ()
 
int numberOfTerms ()
 
int size ()
 
int degree (std::string x)
 
Field leadingCoefficient ()
 
Field coefficient (int v, int *d)
 
void setCoefficient (int v, int *d, Field val)
 
void setCoefficient (int k, Field val)
 
bool operator== (DistributedDenseMultivariateModularPolynomial< Field > &b)
 
bool operator!= (DistributedDenseMultivariateModularPolynomial< Field > &b)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator+ (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator+= (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator+ (Field e)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator+= (Field e)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator- (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator-= (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator- ()
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator- (Field e)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator-= (Field e)
 
void negate ()
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator* (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator*= (DistributedDenseMultivariateModularPolynomial< Field > b)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator* (Field e)
 
DistributedDenseMultivariateModularPolynomial
< Field > & 
operator*= (Field e)
 
void setVariableNames (std::vector< std::string > xs)
 
std::vector< std::string > variables ()
 
- Public Member Functions inherited from BPASMultivariatePolynomial
DataType leadingCoefficient ()
 
DataType coefficient (int, int *)
 
void setCoefficient (int, int *, DataType)
 
- Public Member Functions inherited from BPASPolynomial
BPASPolynomialoperator= (BPASPolynomial &)
 
BPASPolynomialoperator+ (BPASPolynomial &)
 
BPASPolynomialoperator+= (BPASPolynomial &)
 
BPASPolynomialoperator- (BPASPolynomial &)
 
BPASPolynomialoperator- ()
 
BPASPolynomialoperator-= (BPASPolynomial &)
 
BPASPolynomialoperator* (BPASPolynomial &)
 
BPASPolynomialoperator*= (BPASPolynomial &)
 
BPASPolynomialoperator/ (BPASPolynomial &)
 
BPASPolynomialoperator/= (BPASPolynomial &)
 
BPASPolynomialoperator^ (int)
 
bool operator== (BPASPolynomial &)
 
bool operator!= (BPASPolynomial &)
 

Static Public Attributes

static int characteristic
 
static bool isPrimeField
 
static bool isComplexField
 
- Static Public Attributes inherited from BPASRing
static int characteristic
 
static bool isPrimeField
 
static bool isComplexField
 

Friends

DistributedDenseMultivariateModularPolynomial
< Field > 
operator+ (Field e, DistributedDenseMultivariateModularPolynomial< Field > f)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator- (Field e, DistributedDenseMultivariateModularPolynomial< Field > f)
 
DistributedDenseMultivariateModularPolynomial
< Field > 
operator* (Field e, DistributedDenseMultivariateModularPolynomial< Field > f)
 
std::ostream & operator<< (std::ostream &out, DistributedDenseMultivariateModularPolynomial< Field > b)
 

Constructor & Destructor Documentation

Constructor using a default field

Constructor with the Field

Parameters
m,:The prime
template<class Field>
DistributedDenseMultivariateModularPolynomial< Field >::DistributedDenseMultivariateModularPolynomial ( int  v,
int *  ds,
Field  m 
)
inline

Constructor with number of variables and terms

Parameters
v,:Number of variables
ds,:Partial degrees
m,:The prime
template<class Field>
DistributedDenseMultivariateModularPolynomial< Field >::DistributedDenseMultivariateModularPolynomial ( std::string  x,
Field  m 
)
inline

Construct with a variable name such that f(x) = x;

Parameters
x,:The variable name
m,:The prime

Copy constructor

Parameters
b,:A multivariate modular polynomial

Deconstructor

Parameters

Member Function Documentation

template<class Field>
Field DistributedDenseMultivariateModularPolynomial< Field >::coefficient ( int  v,
int *  d 
)
inline

Get a coefficient

Parameters
v,:Number of variables
d,:The exponent of each variable
template<class Field>
int DistributedDenseMultivariateModularPolynomial< Field >::degree ( std::string  x)
inlinevirtual

Get a partial degree of variable x

Parameters
x,:The variable name

Implements BPASMultivariatePolynomial.

template<class Field>
int DistributedDenseMultivariateModularPolynomial< Field >::isConstant ( )
inlinevirtual

Is a constant

Parameters

Implements BPASRing.

template<class Field>
bool DistributedDenseMultivariateModularPolynomial< Field >::isNegativeOne ( )
inlinevirtual

Is polynomial -1

Parameters

Implements BPASRing.

template<class Field>
bool DistributedDenseMultivariateModularPolynomial< Field >::isOne ( )
inlinevirtual

Is polynomial 1

Parameters

Implements BPASRing.

template<class Field>
bool DistributedDenseMultivariateModularPolynomial< Field >::isZero ( )
inlinevirtual

Is a zero polynomial

Parameters

Implements BPASRing.

template<class Field>
Field DistributedDenseMultivariateModularPolynomial< Field >::leadingCoefficient ( )
inline

Get the leading coefficient

Parameters
template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::negate ( )
inline

Negate, f(-x)

Parameters
template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::negativeOne ( )
inlinevirtual

Set polynomial to -1

Parameters

Implements BPASRing.

template<class Field>
int DistributedDenseMultivariateModularPolynomial< Field >::numberOfTerms ( )
inlinevirtual

Get the number of non-zero terms

Parameters

Implements BPASMultivariatePolynomial.

template<class Field>
int DistributedDenseMultivariateModularPolynomial< Field >::numberOfVariables ( )
inlinevirtual

Get the number of variables

Parameters

Implements BPASMultivariatePolynomial.

template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::one ( )
inlinevirtual

Set polynomial to 1

Parameters

Implements BPASRing.

template<class Field>
bool DistributedDenseMultivariateModularPolynomial< Field >::operator!= ( DistributedDenseMultivariateModularPolynomial< Field > &  b)
inline

Overload operator !=

Parameters
b,:A multivariate modular polynomial

Overload operator *

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field> DistributedDenseMultivariateModularPolynomial< Field >::operator* ( Field  e)
inline

Overload operator *

Parameters
e,:A constant

Overload operator *=

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field>& DistributedDenseMultivariateModularPolynomial< Field >::operator*= ( Field  e)
inline

Overload operator *=

Parameters
e,:A constant

Overload operator +

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field> DistributedDenseMultivariateModularPolynomial< Field >::operator+ ( Field  e)
inline

Overload operator +

Parameters
e,:A constant

Overload operator +=

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field>& DistributedDenseMultivariateModularPolynomial< Field >::operator+= ( Field  e)
inline

Overload operator +=

Parameters
e,:A constant

Overload operator -

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field> DistributedDenseMultivariateModularPolynomial< Field >::operator- ( )
inline

Overload operator -, negate

Parameters
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field> DistributedDenseMultivariateModularPolynomial< Field >::operator- ( Field  e)
inline

Overload operator -

Parameters
e,:A constant

Overload operator -=

Parameters
b,:A multivariate modular polynomial
template<class Field>
DistributedDenseMultivariateModularPolynomial<Field>& DistributedDenseMultivariateModularPolynomial< Field >::operator-= ( Field  e)
inline

Overload operator -=

Parameters
e,:A constant

Overload operator =

Parameters
b,:A multivariate modular polynomial
template<class Field>
bool DistributedDenseMultivariateModularPolynomial< Field >::operator== ( DistributedDenseMultivariateModularPolynomial< Field > &  b)
inline

Overload operator ==

Parameters
b,:A multivariate modular polynomial
template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::setCoefficient ( int  v,
int *  d,
Field  val 
)
inline

Set a coefficient

Parameters
v,:Number of variables
d,:The exponent of each variable
val,:Value of the coefficient
template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::setCoefficient ( int  k,
Field  val 
)
inline

Set a coefficient

Parameters
k,:The offset in the coefficient array
val,:Value of the coefficient
template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::setVariableNames ( std::vector< std::string >  xs)
inlinevirtual

Set variable names

Parameters
xs,:Variable names

Implements BPASMultivariatePolynomial.

template<class Field>
int DistributedDenseMultivariateModularPolynomial< Field >::size ( )
inline

Get the size of the polynomial

Parameters
template<class Field>
std::vector<std::string> DistributedDenseMultivariateModularPolynomial< Field >::variables ( )
inlinevirtual

Get variable names

Parameters

Implements BPASMultivariatePolynomial.

template<class Field>
void DistributedDenseMultivariateModularPolynomial< Field >::zero ( )
inlinevirtual

Zero polynomial

Parameters

Implements BPASRing.

Friends And Related Function Documentation

template<class Field>
std::ostream& operator<< ( std::ostream &  out,
DistributedDenseMultivariateModularPolynomial< Field >  b 
)
friend

Overload stream operator <<

Parameters
out,:Stream object
b,:The multivariate modular polynomial

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