DEAL_II_NAMESPACE_OPEN
class DynamicSparsityPattern;
-class SparsityPattern;
/*! @addtogroup Sparsity
*@{
* Construct and store in this object the sparsity pattern corresponding to
* the product of transposed @p left and and non-transpose @p right sparsity pattern.
*/
+ template <typename SparsityPatternTypeLeft, typename SparsityPatternTypeRight>
void
- compute_Tmmult_pattern(const SparsityPattern &left,
- const SparsityPattern &right);
+ compute_Tmmult_pattern(const SparsityPatternTypeLeft & left,
+ const SparsityPatternTypeRight &right);
/**
* Print the sparsity pattern. The output consists of one line per row of
+template <typename SparsityPatternTypeLeft, typename SparsityPatternTypeRight>
void
-DynamicSparsityPattern::compute_Tmmult_pattern(const SparsityPattern &sp_A,
- const SparsityPattern &sp_B)
+DynamicSparsityPattern::compute_Tmmult_pattern(
+ const SparsityPatternTypeLeft & sp_A,
+ const SparsityPatternTypeRight &sp_B)
{
Assert(sp_A.n_rows() == sp_B.n_rows(),
ExcDimensionMismatch(sp_A.n_rows(), sp_B.n_rows()));
DynamicSparsityPattern::compute_mmult_pattern(const SparsityPattern &,
const SparsityPattern &);
+template void
+DynamicSparsityPattern::compute_Tmmult_pattern(const SparsityPattern &,
+ const SparsityPattern &);
+
DEAL_II_NAMESPACE_CLOSE