#ifndef DOXYGEN
-# ifndef DEAL_II_WITH_COMPLEX_VALUES
-// instantiate for std::complex<double> because we use it internally in
-// FESeries.
+// We use FullMatrix<std::complex<T>> for complex eigenvalues so ignore the
+// value of DEAL_II_WITH_COMPLEX_VALUES and always instantiate. As a consequence
+// we cannot use REAL_AND_COMPLEX_SCALARS without getting duplicate
+// instantiations so do float and double here too.
+template class FullMatrix<float>;
+template class FullMatrix<double>;
+template class FullMatrix<std::complex<float>>;
template class FullMatrix<std::complex<double>>;
-# endif
// instantiate for long double manually because we use it in a few places
// inside the library
TEMPL_OP_EQ(double, float);
TEMPL_OP_EQ(float, double);
-# ifdef DEAL_II_WITH_COMPLEX_VALUES
TEMPL_OP_EQ(std::complex<double>, std::complex<float>);
TEMPL_OP_EQ(std::complex<float>, std::complex<double>);
TEMPL_OP_EQ(std::complex<double>, double);
TEMPL_OP_EQ(std::complex<float>, float);
-# endif
# undef TEMPL_OP_EQ
for (S : REAL_AND_COMPLEX_SCALARS)
{
- template class FullMatrix<S>;
-
template void FullMatrix<S>::print(LogStream &,
const unsigned int,
const unsigned int) const;