An abstract class defining the interface of a GCD domain.
Definition: BPASGCDDomain.hpp:14
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.
virtual Derived extendedEuclidean(const Derived &b, Derived *s=NULL, Derived *t=NULL) const =0
Perform the extended euclidean division on *this and b.
virtual Integer euclideanSize() const =0
Get the euclidean size of *this.
virtual Derived remainder(const Derived &b) const =0
Get the remainder of *this and b.
An abstract class defining the interface of a Euclidean domain.
Definition: BPASEuclideanDomain.hpp:14
virtual Derived quotient(const Derived &b) const =0
Get the quotient of *this and b.
virtual Derived euclideanDivision(const Derived &b, Derived *q=NULL) const =0
Perform the eucldiean division of *this and b.