for (S1, S2 : REAL_SCALARS)
{
template class PreconditionBlock<SparseMatrix<S1>, S2>;
-
-// ------------ PreconditionBlockJacobi -----------------
template class PreconditionBlockJacobi<SparseMatrix<S1>, S2>;
+ template class PreconditionBlockSOR<SparseMatrix<S1>, S2>;
+ template class PreconditionBlockSSOR<SparseMatrix<S1>, S2>;
+ }
+
+for (S1, S2, S3 : REAL_SCALARS)
+ {
+// ------------ PreconditionBlockJacobi -----------------
template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
- template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
- template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
- template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
- template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult_add<S2>
- (Vector<S2> &, const Vector<S2> &) const;
+ void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult_add<S1>
- (Vector<S1> &, const Vector<S1> &) const;
+ void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult_add<S2>
- (Vector<S2> &, const Vector<S2> &) const;
+ void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::vmult_add<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
template
- void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult_add<S1>
- (Vector<S1> &, const Vector<S1> &) const;
+ void PreconditionBlockJacobi<SparseMatrix<S1>, S2>::Tvmult_add<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
// ------------ PreconditionBlockSOR -----------------
- template class PreconditionBlockSOR<SparseMatrix<S1>, S2>;
-
- template
- void PreconditionBlockSOR<SparseMatrix<S1>, S2>::vmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
template
- void PreconditionBlockSOR<SparseMatrix<S1>, S2>::vmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
+ void PreconditionBlockSOR<SparseMatrix<S1>, S2>::vmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
template
- void PreconditionBlockSOR<SparseMatrix<S1>, S2>::Tvmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
- template
- void PreconditionBlockSOR<SparseMatrix<S1>, S2>::Tvmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
+ void PreconditionBlockSOR<SparseMatrix<S1>, S2>::Tvmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
// ------------ PreconditionBlockSSOR -----------------
- template class PreconditionBlockSSOR<SparseMatrix<S1>, S2>;
-
- template
- void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::vmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
- template
- void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::vmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
template
- void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::Tvmult<S2>
- (Vector<S2> &, const Vector<S2> &) const;
+ void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::vmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
template
- void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::Tvmult<S1>
- (Vector<S1> &, const Vector<S1> &) const;
+ void PreconditionBlockSSOR<SparseMatrix<S1>, S2>::Tvmult<S3>
+ (Vector<S3> &, const Vector<S3> &) const;
}