All Classes Functions Friends
Public Member Functions | Static Public Attributes | Friends | List of all members
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial Class Reference
The concrete class SmallPrimeFieldDistributedDenseMultivariateModularPolynomial inherits from BPASMultivariatePolynomial and implements a multivariate polynomial ring over a machine-word prime with a distributed dense representation. It overrides all the public member functions of BPASRing, BPASPolynomial and BPASMultivariatePolynomial. One can construct a SmallPrimeFieldDistributedDenseMultivariateModularPolynomial object as the zero polynomial over a prime with or without its size. One can also construct a SmallPrimeFieldDistributedDenseMultivariateModularPolynomial object from a variable (thus a monomial equal to that variable) or from another SmallPrimeFieldDistributedDenseMultivariateModularPolynomial object.
Inheritance diagram for SmallPrimeFieldDistributedDenseMultivariateModularPolynomial:
BPASMultivariatePolynomial

Public Member Functions

 SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ()
 
 SmallPrimeFieldDistributedDenseMultivariateModularPolynomial (sfixn m)
 
 SmallPrimeFieldDistributedDenseMultivariateModularPolynomial (int v, int *ds, sfixn m)
 
 SmallPrimeFieldDistributedDenseMultivariateModularPolynomial (std::string x, sfixn m)
 
 SmallPrimeFieldDistributedDenseMultivariateModularPolynomial (const SmallPrimeFieldDistributedDenseMultivariateModularPolynomial &b)
 
 ~SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ()
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator= (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial 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)
 
sfixn leadingCoefficient ()
 
sfixn coefficient (int v, int *d)
 
void setCoefficient (int v, int *d, sfixn val)
 
void setCoefficient (int k, sfixn val)
 
std::vector< std::string > variables ()
 
void setVariableNames (std::vector< std::string > xs)
 
bool operator== (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial &b)
 
bool operator!= (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial &b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator+ (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator+= (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator+ (sfixn e)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator+= (sfixn e)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator- (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator-= (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator- (sfixn e)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator-= (sfixn e)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator- ()
 
void negate ()
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator* (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator*= (SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator* (sfixn e)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomialoperator*= (sfixn e)
 

Static Public Attributes

static int characteristic
 
static bool isPrimeField
 
static bool isComplexField
 

Friends

SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator+ (sfixn e, SmallPrimeFieldDistributedDenseMultivariateModularPolynomial f)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator- (sfixn e, SmallPrimeFieldDistributedDenseMultivariateModularPolynomial r)
 
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial operator* (sfixn e, SmallPrimeFieldDistributedDenseMultivariateModularPolynomial f)
 
std::ostream & operator<< (std::ostream &out, SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
 

Constructor & Destructor Documentation

SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( )
inline

Constructor using a default prime

SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( sfixn  m)
inline

Constructor with the field

Parameters
m,:The prime
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( int  v,
int *  ds,
sfixn  m 
)
inline

Constructor with number of variables and terms

Parameters
v,:Number of variables
ds,:Partial degrees
m,:The prime
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( std::string  x,
sfixn  m 
)
inline

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

Parameters
x,:The variable name
m,:The prime
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( const SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
inline

Copy constructor

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::~SmallPrimeFieldDistributedDenseMultivariateModularPolynomial ( )
inline

Deconstructor

Parameters

Member Function Documentation

sfixn SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::coefficient ( int  v,
int *  d 
)
inline

Get a coefficient

Parameters
v,:Number of variables
d,:The exponent of each variable
int SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::degree ( std::string  x)
inlinevirtual

Get a partial degree of variable x

Parameters
x,:The variable name

Implements BPASMultivariatePolynomial.

int SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::isConstant ( )
inlinevirtual

Is a constant

Parameters

Implements BPASRing.

bool SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::isNegativeOne ( )
inlinevirtual

Is polynomial -1

Parameters

Implements BPASRing.

bool SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::isOne ( )
inlinevirtual

Is polynomial 1

Parameters

Implements BPASRing.

bool SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::isZero ( )
inlinevirtual

Is a zero polynomial

Parameters

Implements BPASRing.

sfixn SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::leadingCoefficient ( )
inline

Get the leading coefficient

Parameters
void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::negate ( )

Negate, f(-x)

Parameters
void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::negativeOne ( )
inlinevirtual

Set polynomial to -1

Parameters

Implements BPASRing.

int SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::numberOfTerms ( )
inlinevirtual

Get the number of non-zero terms

Parameters

Implements BPASMultivariatePolynomial.

int SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::numberOfVariables ( )
inlinevirtual

Get the number of variables

Parameters

Implements BPASMultivariatePolynomial.

void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::one ( )
inlinevirtual

Set polynomial to 1

Parameters

Implements BPASRing.

bool SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator!= ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)
inline

Overload operator !=

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator* ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)

Overload operator *

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator* ( sfixn  e)
inline

Overload operator *

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator*= ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)
inline

Overload operator *=

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator*= ( sfixn  e)

Overload operator *=

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator+ ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)

Overload operator +

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator+ ( sfixn  e)
inline

Overload operator +

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator+= ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)
inline

Overload operator +=

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator+= ( sfixn  e)

Overload operator +=

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator- ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)

Overload operator -

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator- ( sfixn  e)
inline

Overload operator -

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator- ( )

Overload operator -, negate

Parameters
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator-= ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)
inline

Overload operator -=

Parameters
b,:A multivariate modular polynomial
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator-= ( sfixn  e)

Overload operator -=

Parameters
e,:A constant
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial& SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator= ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  b)
inline

Overload operator =

Parameters
b,:A multivariate modular polynomial
bool SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::operator== ( SmallPrimeFieldDistributedDenseMultivariateModularPolynomial b)

Overload operator ==

Parameters
b,:A multivariate modular polynomial
void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::setCoefficient ( int  v,
int *  d,
sfixn  val 
)
inline

Set a coefficient

Parameters
v,:Number of variables
d,:The exponent of each variable
val,:Value of the coefficient
void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::setCoefficient ( int  k,
sfixn  val 
)
inline

Set a coefficient

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

Set variable names

Parameters
xs,:Variable names

Implements BPASMultivariatePolynomial.

int SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::size ( )
inline

Get the size of the polynomial

Parameters
std::vector<std::string> SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::variables ( )
inlinevirtual

Get variable names

Parameters

Implements BPASMultivariatePolynomial.

void SmallPrimeFieldDistributedDenseMultivariateModularPolynomial::zero ( )
inlinevirtual

Zero polynomial

Parameters

Implements BPASRing.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
SmallPrimeFieldDistributedDenseMultivariateModularPolynomial  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: