Basic Polynomial Algebra Subprograms (BPAS)
v. 1.652
|
A finite field whose prime should be a generalized fermat number. More...
#include <GeneralizedFermatPrimeField.hpp>
Public Member Functions | |
GeneralizedFermatPrimeField (mpz_class a) | |
GeneralizedFermatPrimeField (int a) | |
GeneralizedFermatPrimeField (const GeneralizedFermatPrimeField &c) | |
GeneralizedFermatPrimeField (const Integer &c) | |
GeneralizedFermatPrimeField (const RationalNumber &c) | |
GeneralizedFermatPrimeField (const SmallPrimeField &c) | |
GeneralizedFermatPrimeField (const BigPrimeField &c) | |
GeneralizedFermatPrimeField (const DenseUnivariateIntegerPolynomial &c) | |
GeneralizedFermatPrimeField (const DenseUnivariateRationalPolynomial &c) | |
GeneralizedFermatPrimeField (const SparseUnivariatePolynomial< Integer > &c) | |
GeneralizedFermatPrimeField (const SparseUnivariatePolynomial< RationalNumber > &c) | |
GeneralizedFermatPrimeField (const SparseUnivariatePolynomial< ComplexRationalNumber > &c) | |
template<class Ring > | |
GeneralizedFermatPrimeField (const SparseUnivariatePolynomial< Ring > &c) | |
GeneralizedFermatPrimeField * | GPFpointer (GeneralizedFermatPrimeField *a) |
GeneralizedFermatPrimeField * | GPFpointer (RationalNumber *a) |
GeneralizedFermatPrimeField * | GPFpointer (SmallPrimeField *a) |
GeneralizedFermatPrimeField * | GPFpointer (BigPrimeField *a) |
void | setX (mpz_class a) |
mpz_class | Prime () const |
mpz_class | number () const |
GeneralizedFermatPrimeField | unitCanonical (GeneralizedFermatPrimeField *u=NULL, GeneralizedFermatPrimeField *v=NULL) const |
Obtain the unit normal (a.k.a canonical associate) of an element. More... | |
GeneralizedFermatPrimeField | findPrimitiveRootOfUnity (long int n) const |
GeneralizedFermatPrimeField & | operator= (const GeneralizedFermatPrimeField &c) |
Copy assignment. | |
GeneralizedFermatPrimeField & | operator= (const mpz_class &c) |
GeneralizedFermatPrimeField & | operator= (int c) |
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 () const |
void | negativeOne () |
int | isConstant () const |
bool | operator== (const GeneralizedFermatPrimeField &c) const |
Equality test,. More... | |
bool | operator== (const mpz_class &c) const |
bool | operator!= (const GeneralizedFermatPrimeField &c) const |
Inequality test,. More... | |
bool | operator!= (const mpz_class &c) const |
GeneralizedFermatPrimeField | operator+ (const GeneralizedFermatPrimeField &c) const |
Addition. | |
GeneralizedFermatPrimeField | operator+ (const mpz_class &c) const |
GeneralizedFermatPrimeField & | operator+= (const mpz_class &c) |
GeneralizedFermatPrimeField | operator+ (int c) const |
GeneralizedFermatPrimeField & | operator+= (int c) |
GeneralizedFermatPrimeField & | operator+= (const GeneralizedFermatPrimeField &y) |
Addition assignment. | |
GeneralizedFermatPrimeField | operator- (const GeneralizedFermatPrimeField &c) const |
Subtraction. | |
GeneralizedFermatPrimeField | operator- (const mpz_class &c) const |
GeneralizedFermatPrimeField & | operator-= (const mpz_class &c) |
GeneralizedFermatPrimeField | operator- (int c) const |
GeneralizedFermatPrimeField & | operator-= (int c) |
GeneralizedFermatPrimeField & | operator-= (const GeneralizedFermatPrimeField &y) |
Subtraction assignment. | |
GeneralizedFermatPrimeField | operator- () const |
Negation. | |
void | smallAdd2 (usfixn64 *xm, usfixn64 *ym, short &c) |
void | oneShiftRight (usfixn64 *xs) |
void | mulLong_2 (usfixn64 x, usfixn64 y, usfixn64 &s0, usfixn64 &s1, usfixn64 &s2) |
void | mulLong_3 (usfixn64 const &x, usfixn64 const &y, usfixn64 &s0, usfixn64 &s1, usfixn64 &s2) |
void | multiplication (usfixn64 *__restrict__ xs, const usfixn64 *__restrict__ ys, usfixn64 permutationStride, usfixn64 *lVector, usfixn64 *hVector, usfixn64 *cVector, usfixn64 *lVectorSub, usfixn64 *hVectorSub, usfixn64 *cVectorSub) |
void | multiplication_step2 (usfixn64 *__restrict__ xs, usfixn64 permutationStride, usfixn64 *__restrict__ lVector, usfixn64 *__restrict__ hVector, usfixn64 *__restrict__ cVector) |
GeneralizedFermatPrimeField | operator* (const GeneralizedFermatPrimeField &c) const |
Multiplication. | |
GeneralizedFermatPrimeField | operator* (const mpz_class &c) const |
GeneralizedFermatPrimeField & | operator*= (const mpz_class &c) |
GeneralizedFermatPrimeField | operator* (int c) const |
GeneralizedFermatPrimeField & | operator*= (int c) |
GeneralizedFermatPrimeField & | operator*= (const GeneralizedFermatPrimeField &c) |
Multiplication assignment. | |
GeneralizedFermatPrimeField | MultiP3 (GeneralizedFermatPrimeField ys) |
GeneralizedFermatPrimeField | MulPowR (int s) |
void | egcd (const mpz_class &x, const mpz_class &y, mpz_class *ao, mpz_class *bo, mpz_class *vo, mpz_class P) |
GeneralizedFermatPrimeField | inverse2 () |
GeneralizedFermatPrimeField | operator^ (long long int c) const |
Exponentiation. | |
GeneralizedFermatPrimeField | operator^ (const mpz_class &exp) const |
GeneralizedFermatPrimeField & | operator^= (long long int c) |
Exponentiation assignment. | |
GeneralizedFermatPrimeField & | operator^= (const mpz_class &c) |
ExpressionTree | convertToExpressionTree () const |
Convert this to an expression tree. More... | |
GeneralizedFermatPrimeField | operator/ (const GeneralizedFermatPrimeField &c) const |
Exact division. | |
GeneralizedFermatPrimeField | operator/ (long int c) const |
GeneralizedFermatPrimeField | operator/ (const mpz_class &c) const |
GeneralizedFermatPrimeField & | operator/= (const GeneralizedFermatPrimeField &c) |
Exact division assignment. | |
GeneralizedFermatPrimeField & | operator/= (long int c) |
GeneralizedFermatPrimeField & | operator/= (const mpz_class &c) |
GeneralizedFermatPrimeField | operator% (const GeneralizedFermatPrimeField &c) const |
Get the remainder of *this and b;. | |
GeneralizedFermatPrimeField & | operator%= (const GeneralizedFermatPrimeField &c) |
Assign *this to be the remainder of *this and b. | |
GeneralizedFermatPrimeField | gcd (const GeneralizedFermatPrimeField &a) const |
Get GCD of *this and other. | |
Factors< GeneralizedFermatPrimeField > | squareFree () const |
Compute squarefree factorization of *this. | |
GeneralizedFermatPrimeField | euclideanSize () const |
Get the euclidean size of *this. | |
GeneralizedFermatPrimeField | euclideanDivision (const GeneralizedFermatPrimeField &b, GeneralizedFermatPrimeField *q=NULL) const |
Perform the eucldiean division of *this and b. More... | |
GeneralizedFermatPrimeField | extendedEuclidean (const GeneralizedFermatPrimeField &b, GeneralizedFermatPrimeField *s=NULL, GeneralizedFermatPrimeField *t=NULL) const |
Perform the extended euclidean division on *this and b. More... | |
GeneralizedFermatPrimeField | quotient (const GeneralizedFermatPrimeField &b) const |
Get the quotient of *this and b. | |
GeneralizedFermatPrimeField | remainder (const GeneralizedFermatPrimeField &b) const |
Get the remainder of *this and b. | |
GeneralizedFermatPrimeField | inverse () const |
Get the inverse of *this. | |
Static Public Member Functions | |
static void | setPrime (mpz_class p, usfixn64 R, int K) |
static mpz_class | power (mpz_class xi, mpz_class yi) |
static mpz_class | findPrimitiveRootofUnity_plain (mpz_class n) |
static GeneralizedFermatPrimeField | findPrimitiveRootofUnity (mpz_class n) |
Public Attributes | |
usfixn64 * | x |
Static Public Attributes | |
static mpz_class | characteristic |
static RingProperties | properties |
static usfixn64 | r |
static int | k |
A finite field whose prime should be a generalized fermat number.
That is, for r = (2^w +/- 2^u), the prime is r^k, for some k.
|
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< GeneralizedFermatPrimeField >.
|
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< GeneralizedFermatPrimeField >.
|
inlinevirtual |
Determine if *this ring element is one, that is the multiplication identity.
returns true iff *this is one.
Implements BPASRing< GeneralizedFermatPrimeField >.
|
inlinevirtual |
Determine if *this ring element is zero, that is the additive identity.
returns true iff *this is zero.
Implements BPASRing< GeneralizedFermatPrimeField >.
|
inlinevirtual |
|
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< GeneralizedFermatPrimeField >.