Basic Polynomial Algebra Subprograms (BPAS)  v. 1.652
BPASIntegralDomain.hpp
1 
2 #ifndef _BPAS_INTEGRAL_DOMAIN_H_
3 #define _BPAS_INTEGRAL_DOMAIN_H_
4 
5 
6 #include "BPASRing.hpp"
7 #include "../Utils/TemplateHelpers.hpp"
8 
9 
10 /**
11  * An abstract class defining the interface of an integral domain.
12  */
13 template <class Derived>
14 class BPASIntegralDomain : public virtual BPASRing<Derived> {
15 
16 public:
17 
18  /**
19  * Exact division.
20  */
21  virtual Derived operator/ (const Derived&) const = 0;
22 
23  /**
24  * Exact division assignment.
25  */
26  virtual Derived& operator/= (const Derived&) = 0;
27 
28 };
29 
30 #endif
An abstract class defining the interface of a commutative ring.
Definition: BPASRing.hpp:76
virtual Derived & operator/=(const Derived &)=0
Exact division assignment.
An abstract class defining the interface of an integral domain.
Definition: BPASIntegralDomain.hpp:14
virtual Derived operator/(const Derived &) const =0
Exact division.