Basic Polynomial Algebra Subprograms (BPAS)
v. 1.791
|
A prime field whose prime is 32 bits or less. More...
#include <SmallPrimeField.hpp>
Public Member Functions | |
SmallPrimeField (long long int _a) | |
SmallPrimeField (const SmallPrimeField &c) | |
SmallPrimeField (const Integer &c) | |
SmallPrimeField (const RationalNumber &c) | |
SmallPrimeField (const ComplexRationalNumber &c) | |
SmallPrimeField (const BigPrimeField &c) | |
SmallPrimeField (const GeneralizedFermatPrimeField &c) | |
SmallPrimeField (const DenseUnivariateIntegerPolynomial &c) | |
SmallPrimeField (const DenseUnivariateRationalPolynomial &c) | |
SmallPrimeField (const SparseUnivariatePolynomial< Integer > &c) | |
SmallPrimeField (const SparseUnivariatePolynomial< RationalNumber > &c) | |
SmallPrimeField (const SparseUnivariatePolynomial< ComplexRationalNumber > &c) | |
template<class Ring > | |
SmallPrimeField (const SparseUnivariatePolynomial< Ring > &c) | |
SmallPrimeField * | SPFpointer (SmallPrimeField *b) |
SmallPrimeField * | SPFpointer (RationalNumber *a) |
SmallPrimeField * | SPFpointer (BigPrimeField *a) |
SmallPrimeField * | SPFpointer (GeneralizedFermatPrimeField *a) |
long long int | number () const |
void | whichprimefield () |
mpz_class | getCharacteristic () const override |
The characteristic of this ring class. | |
long long int | Prime () |
SmallPrimeField & | operator= (const SmallPrimeField &c) |
Copy assignment. | |
SmallPrimeField & | operator= (long long int k) |
SmallPrimeField | findPrimitiveRootOfUnity (long int n) const |
bool | isZero () const |
Determine if *this ring element is zero, that is the additive identity. More... | |
void | zero () |
Make *this ring element zero. | |
bool | isOne () const |
Determine if *this ring element is one, that is the multiplication identity. More... | |
void | one () |
Make *this ring element one. | |
bool | isNegativeOne () |
void | negativeOne () |
int | isConstant () |
SmallPrimeField | unitCanonical (SmallPrimeField *u=NULL, SmallPrimeField *v=NULL) const |
Obtain the unit normal (a.k.a canonical associate) of an element. More... | |
SmallPrimeField | operator+ (const SmallPrimeField &c) const |
Addition. | |
SmallPrimeField | operator+ (const long long int &c) const |
SmallPrimeField | operator+ (const int &c) const |
SmallPrimeField | operator+= (const long long int &c) |
SmallPrimeField & | operator+= (const SmallPrimeField &c) |
Addition assignment. | |
SmallPrimeField | operator- (const SmallPrimeField &c) const |
Subtraction. | |
SmallPrimeField | operator- (const long long int &c) const |
SmallPrimeField | operator-= (const long long int &c) |
SmallPrimeField & | operator-= (const SmallPrimeField &c) |
Subtraction assignment. | |
SmallPrimeField | operator- () const |
Negation. | |
SmallPrimeField | operator* (const SmallPrimeField &c) const |
Multiplication. | |
SmallPrimeField | operator* (long long int c) const |
SmallPrimeField & | operator*= (const SmallPrimeField &c) |
Multiplication assignment. | |
long long int * | pinverse () |
SmallPrimeField | inverse () const |
Get the inverse of *this. More... | |
SmallPrimeField | inverse2 () |
SmallPrimeField | operator^ (long long int e) const |
Exponentiation. | |
SmallPrimeField & | operator^= (long long int e) |
Exponentiation assignment. | |
bool | operator== (const SmallPrimeField &c) const |
Equality test,. More... | |
bool | operator== (long long int k) const |
bool | operator!= (const SmallPrimeField &c) const |
Inequality test,. More... | |
bool | operator!= (long long int k) const |
ExpressionTree | convertToExpressionTree () const |
Convert this to an expression tree. More... | |
SmallPrimeField | operator/ (const SmallPrimeField &c) const |
Exact division. More... | |
SmallPrimeField | operator/ (long long int c) const |
SmallPrimeField & | operator/= (const SmallPrimeField &c) |
Exact division assignment. More... | |
SmallPrimeField | operator% (const SmallPrimeField &c) const |
Get the remainder of *this and b;. More... | |
SmallPrimeField & | operator%= (const SmallPrimeField &c) |
Assign *this to be the remainder of *this and b. More... | |
SmallPrimeField | gcd (const SmallPrimeField &other) const |
Get GCD of *this and other. More... | |
Factors< SmallPrimeField > | squareFree () const |
Compute squarefree factorization of *this. | |
Integer | euclideanSize () const |
Get the euclidean size of *this. | |
SmallPrimeField | euclideanDivision (const SmallPrimeField &b, SmallPrimeField *q=NULL) const |
Perform the eucldiean division of *this and b. More... | |
SmallPrimeField | extendedEuclidean (const SmallPrimeField &b, SmallPrimeField *s=NULL, SmallPrimeField *t=NULL) const |
Perform the extended euclidean division on *this and b. More... | |
SmallPrimeField | quotient (const SmallPrimeField &b) const |
Get the quotient of *this and b. | |
SmallPrimeField | remainder (const SmallPrimeField &b) const |
Get the remainder of *this and b. | |
Static Public Member Functions | |
static void | setPrime (long long int p) |
static SmallPrimeField | findPrimitiveRootofUnity (long long int n) |
static long long int | Mont (long long int b, long long int c) |
static long long int | getRsquare () |
Static Public Attributes | |
static mpz_class | characteristic |
A prime field whose prime is 32 bits or less.
Elements of this field are encoded using montgomery trick.
|
inlinevirtual |
Convert this to an expression tree.
returns an expression tree describing *this.
Implements ExpressionTreeConvert.
|
virtual |
Perform the eucldiean division of *this and b.
Returns the remainder. If q is not NULL, then returns the quotient in q.
Implements BPASEuclideanDomain< SmallPrimeField >.
|
virtual |
Perform the extended euclidean division on *this and b.
Returns the GCD. If s and t are not NULL, returns the bezout coefficients in them.
Implements BPASEuclideanDomain< SmallPrimeField >.
|
inlinevirtual |
Get GCD of *this and other.
other | the other element to get a gcd with. |
Implements BPASGCDDomain< SmallPrimeField >.
|
inlinevirtual |
|
inlinevirtual |
Determine if *this ring element is one, that is the multiplication identity.
returns true iff *this is one.
Implements BPASRing< SmallPrimeField >.
|
inlinevirtual |
Determine if *this ring element is zero, that is the additive identity.
returns true iff *this is zero.
Implements BPASRing< SmallPrimeField >.
|
inlinevirtual |
|
inlinevirtual |
Get the remainder of *this and b;.
b | the divisor |
Implements BPASEuclideanDomain< SmallPrimeField >.
|
inlinevirtual |
Assign *this to be the remainder of *this and b.
b | the divisor |
Implements BPASEuclideanDomain< SmallPrimeField >.
|
inlinevirtual |
Exact division.
d | the divisor. |
Implements BPASIntegralDomain< SmallPrimeField >.
|
inlinevirtual |
Exact division assignment.
d | the divisor. |
Implements BPASIntegralDomain< SmallPrimeField >.
|
inlinevirtual |
|
virtual |
Obtain the unit normal (a.k.a canonical associate) of an element.
If either parameters u, v, are non-NULL then the units are returned such that b = ua, v = u^-1. Where b is the unit normal of a, and is the returned value.
Implements BPASRing< SmallPrimeField >.