Basic Polynomial Algebra Subprograms (BPAS)  v. 1.791
BPASIntegralPolynomial.hpp
1 
2 
3 
4 #ifndef _BPAS_INTEGRALPOLY_H_
5 #define _BPAS_INTEGRALPOLY_H_
6 
7 #include "Utils/TemplateHelpers.hpp"
8 
9 
10 /**
11  * An abstract class defining the interface of a polynomial ring which
12  * is also an integral domain. E.g., a polynomial over an integral domain.
13  *
14  * This class is automatically determined to be a superclass of
15  * a BPASPolynomial based on a template specialization of the Ring
16  * parameter.
17  */
18 template <class Ring, class Derived>
19 class BPASIntegralPolynomial : public virtual BPASBasePolynomial<Ring, Derived>,
20  public virtual BPASIntegralDomain<Derived>,
21  private Derived_from<Ring, BPASIntegralDomain<Ring>> {
22  // virtual std::vector<Derived> squareFree() const = 0; //TODO
23 };
24 
25 
26 
27 #endif
An abstract class defining the interface of polynomial over an arbitrary BPASRing.
Definition: BPASPolynomial.hpp:47
An abstract class defining the interface of a polynomial ring which is also an integral domain...
Definition: BPASIntegralPolynomial.hpp:19
An abstract class defining the interface of an integral domain.
Definition: BPASIntegralDomain.hpp:14