declare these template specializations to ensure they will be used in modules that include polynomial.hpp

we may be able to achieve better performance, however, if these are defined inline
This commit is contained in:
E. Madison Bray 2020-02-10 19:21:18 +01:00 committed by Erik M. Bray
parent c8b9268a9a
commit 252ec0b7c8

View File

@ -232,6 +232,10 @@ T Polynomial<T>::operator() (const T &x, const T &y) const {
return this->evalPolClassic (x,y);
}
// Defined in lib/polynomial.cpp
template <> IComplex Polynomial<IComplex>::operator() (const IComplex &x, const IComplex &y) const;
template <> MPIComplex Polynomial<MPIComplex>::operator () (const MPIComplex &x, const MPIComplex &y) const;
template <class T>
T Polynomial<T>::diffX (const T &x, const T &y) const {
// coef[(i*(i+1))/2 + j] is coeficient of monomial of degree 'i',
@ -313,6 +317,10 @@ T Polynomial<T>::diffY (const T &x, const T &y) const {
return this->evalPolYClassic (x,y);
}
// Defined in lib/polynomial.cpp
template <> IComplex Polynomial<IComplex>::diffY (const IComplex &x, const IComplex &y) const;
template <> MPIComplex Polynomial<MPIComplex>::diffY (const MPIComplex &x, const MPIComplex &y) const;
template <class T>
T Polynomial<T>::diffXX (const T &x, const T &y) const {