Basic Polynomial Algebra Subprograms (BPAS)  v. 1.652
BPASEuclideanDomain< Derived > Class Template Referenceabstract

An abstract class defining the interface of a Euclidean domain. More...

`#include <BPASEuclideanDomain.hpp>`

Simplified semantic inheritance diagram for BPASEuclideanDomain< Derived >:
Full inheritance diagram for BPASEuclideanDomain< Derived >:
[legend]

## Public Member Functions

virtual Derived euclideanSize () const =0
Get the euclidean size of *this.

virtual Derived euclideanDivision (const Derived &b, Derived *q=NULL) const =0
Perform the eucldiean division of *this and b. More...

virtual Derived extendedEuclidean (const Derived &b, Derived *s=NULL, Derived *t=NULL) const =0
Perofrm the extended euclidean division on *this and b. More...

virtual Derived quotient (const Derived &b) const =0
Get the quotient of *this and b.

virtual Derived remainder (const Derived &b) const =0
Get the remainder of *this and b.

virtual Derived operator% (const Derived &b) const =0
Get the remainder of *this and b;.

virtual Derived & operator%= (const Derived &b)=0
Assign *this to be the remainder of *this and b.

Public Member Functions inherited from BPASGCDDomain< Derived >
virtual Derived gcd (const Derived &other) const =0
Get GCD of *this and other.

virtual Factors< Derived > squareFree () const =0
Compute squarefree factorization of *this.

Public Member Functions inherited from BPASIntegralDomain< Derived >
virtual Derived operator/ (const Derived &) const =0
Exact division.

virtual Derived & operator/= (const Derived &)=0
Exact division assignment.

Public Member Functions inherited from BPASRing< Derived >
virtual mpz_class characteristic ()
The characteristic of this ring class.

virtual bool isZero () const =0
Determine if *this ring element is zero, that is the additive identity. More...

virtual void zero ()=0
Make *this ring element zero.

virtual bool isOne () const =0
Determine if *this ring element is one, that is the multiplication identity. More...

virtual void one ()=0
Make *this ring element one.

virtual Derived unitCanonical (Derived *u=NULL, Derived *v=NULL) const =0
Obtain the unit normal (a.k.a canonical associate) of an element. More...

virtual Derived & operator= (const Derived &)=0
Copy assignment.

virtual Derived operator+ (const Derived &) const =0

virtual Derived & operator+= (const Derived &)=0

virtual Derived operator- (const Derived &) const =0
Subtraction.

virtual Derived & operator-= (const Derived &)=0
Subtraction assignment.

virtual Derived operator- () const =0
Negation.

virtual Derived operator* (const Derived &) const =0
Multiplication.

virtual Derived & operator*= (const Derived &)=0
Multiplication assignment.

virtual Derived operator^ (long long int e) const =0
Exponentiation.

virtual Derived & operator^= (long long int e)=0
Exponentiation assignment.

virtual bool operator== (const Derived &) const =0
Equality test,. More...

virtual bool operator!= (const Derived &) const =0
Inequality test,. More...

virtual void print (std::ostream &ostream) const
Print the Ring element. More...

Public Member Functions inherited from ExpressionTreeConvert
virtual ExpressionTree convertToExpressionTree () const =0
Convert this to an expression tree. More...

Static Public Attributes inherited from BPASRing< Derived >
static RingProperties properties
Static element describing the properties of this ring class.

## Detailed Description

### template<class Derived> class BPASEuclideanDomain< Derived >

An abstract class defining the interface of a Euclidean domain.

## ◆ euclideanDivision()

template<class Derived>
 virtual Derived BPASEuclideanDomain< Derived >::euclideanDivision ( const Derived & b, Derived * q = `NULL` ) const
pure virtual

Perform the eucldiean division of *this and b.

Returns the remainder. If q is not NULL, then returns the quotient in q.

## ◆ extendedEuclidean()

template<class Derived>
 virtual Derived BPASEuclideanDomain< Derived >::extendedEuclidean ( const Derived & b, Derived * s = `NULL`, Derived * t = `NULL` ) const
pure virtual

Perofrm the extended euclidean division on *this and b.

Returns the GCD. If s and t are not NULL, returns the bezout coefficients in them.

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