--- /dev/null
+//---------------------------------------------------------------------------
+// $Id: full_matrix.double.cc 15518 2007-11-18 22:31:00Z bangerth $
+// Version: $Name$
+//
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//---------------------------------------------------------------------------
+
+
+for (S : REAL_SCALARS)
+ {
+ template class FullMatrix<S>;
+
+ template void FullMatrix<S>::print(
+ LogStream&, const unsigned int, const unsigned int) const;
+ template void FullMatrix<S>::print(
+ std::ostream&, const unsigned int, const unsigned int) const;
+ }
+
+for (S1, S2 : REAL_SCALARS)
+ {
+ template
+ void FullMatrix<S1>::fill<S2> (
+ const FullMatrix<S2>&, unsigned, unsigned, unsigned, unsigned);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (
+ const FullMatrix<S2>&, S1, unsigned, unsigned,unsigned, unsigned);
+ template
+ void FullMatrix<S1>::Tadd<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::Tadd<S2> (
+ const FullMatrix<S2>&, S1, unsigned, unsigned, unsigned, unsigned);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::mmult<S2> (FullMatrix<S2>&, const FullMatrix<S2>&, const bool) const;
+ template
+ void FullMatrix<S1>::Tmmult<S2> (FullMatrix<S2>&, const FullMatrix<S2>&, const bool) const;
+ template
+ void FullMatrix<S1>::invert<S2> (const FullMatrix<S2>&);
+
+ template
+ void FullMatrix<S1>::fill_permutation<S2> (
+ const FullMatrix<S2>&,
+ const std::vector<unsigned int>&,
+ const std::vector<unsigned int>&);
+ template
+ void FullMatrix<S1>::vmult<S2>(
+ Vector<S2>&, const Vector<S2>&, bool) const;
+ template
+ void FullMatrix<S1>::Tvmult<S2>(
+ Vector<S2>&, const Vector<S2>&, bool) const;
+ template
+ S2 FullMatrix<S1>::matrix_norm_square<S2> (
+ const Vector<S2> &) const;
+ template
+ S2 FullMatrix<S1>::matrix_scalar_product<S2>(
+ const Vector<S2>&, const Vector<S2>&) const;
+ template
+ void FullMatrix<S1>::forward<S2>(
+ Vector<S2>&, const Vector<S2>&) const;
+ template
+ void FullMatrix<S1>::backward<S2>(
+ Vector<S2>&, const Vector<S2>&) const;
+
+ template
+ void FullMatrix<S1>::precondition_Jacobi<S2> (
+ Vector<S2> &, const Vector<S2> &, const S1) const;
+ }
+
+for (S1, S2, S3 : REAL_SCALARS)
+ {
+ template
+ S1
+ FullMatrix<S1>::residual<S2,S3>(Vector<S2>&,
+ const Vector<S2>&,
+ const Vector<S3>&) const;
+ }
+
+
+
+
+
+// same for complex scalars
+
+for (S : COMPLEX_SCALARS)
+ {
+ template class FullMatrix<S>;
+
+ template void FullMatrix<S>::print(
+ LogStream&, const unsigned int, const unsigned int) const;
+ template void FullMatrix<S>::print(
+ std::ostream&, const unsigned int, const unsigned int) const;
+ }
+
+for (S1, S2 : COMPLEX_SCALARS)
+ {
+ template
+ void FullMatrix<S1>::fill<S2> (
+ const FullMatrix<S2>&, unsigned, unsigned, unsigned, unsigned);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::add<S2> (
+ const FullMatrix<S2>&, S1, unsigned, unsigned,unsigned, unsigned);
+ template
+ void FullMatrix<S1>::Tadd<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::Tadd<S2> (
+ const FullMatrix<S2>&, S1, unsigned, unsigned, unsigned, unsigned);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::equ<S2> (const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&,
+ const S1, const FullMatrix<S2>&);
+ template
+ void FullMatrix<S1>::mmult<S2> (FullMatrix<S2>&, const FullMatrix<S2>&, const bool) const;
+ template
+ void FullMatrix<S1>::Tmmult<S2> (FullMatrix<S2>&, const FullMatrix<S2>&, const bool) const;
+ template
+ void FullMatrix<S1>::invert<S2> (const FullMatrix<S2>&);
+
+ template
+ void FullMatrix<S1>::fill_permutation<S2> (
+ const FullMatrix<S2>&,
+ const std::vector<unsigned int>&,
+ const std::vector<unsigned int>&);
+ template
+ void FullMatrix<S1>::vmult<S2>(
+ Vector<S2>&, const Vector<S2>&, bool) const;
+ template
+ void FullMatrix<S1>::Tvmult<S2>(
+ Vector<S2>&, const Vector<S2>&, bool) const;
+ template
+ S2 FullMatrix<S1>::matrix_norm_square<S2> (
+ const Vector<S2> &) const;
+ template
+ S2 FullMatrix<S1>::matrix_scalar_product<S2>(
+ const Vector<S2>&, const Vector<S2>&) const;
+ template
+ void FullMatrix<S1>::forward<S2>(
+ Vector<S2>&, const Vector<S2>&) const;
+ template
+ void FullMatrix<S1>::backward<S2>(
+ Vector<S2>&, const Vector<S2>&) const;
+
+ template
+ void FullMatrix<S1>::precondition_Jacobi<S2> (
+ Vector<S2> &, const Vector<S2> &, const S1) const;
+ }
+
+for (S1, S2, S3 : COMPLEX_SCALARS)
+ {
+ template
+ S1
+ FullMatrix<S1>::residual<S2,S3>(Vector<S2>&,
+ const Vector<S2>&,
+ const Vector<S3>&) const;
+ }
--- /dev/null
+//---------------------------- sparse_matrix.inst.in ---------------------------
+// $Id: sparse_matrix_matrix.in.h 15011 2007-08-22 16:59:41Z kanschat $
+// Version: $Name$
+//
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//---------------------------- sparse_matrix.inst.in ---------------------------
+
+
+for (S : REAL_SCALARS)
+ {
+ template class SparseMatrix<S>;
+ }
+
+
+
+for (S1, S2 : REAL_SCALARS)
+ {
+ template SparseMatrix<S1> &
+ SparseMatrix<S1>::copy_from<S2> (const SparseMatrix<S2> &);
+
+ template
+ void SparseMatrix<S1>::copy_from<S2> (const FullMatrix<S2> &);
+
+ template void SparseMatrix<S1>::add<S2> (const S1,
+ const SparseMatrix<S2> &);
+ }
+
+
+for (S1, S2 : SCALARS)
+ {
+ template S2
+ SparseMatrix<S1>::
+ matrix_norm_square<S2> (const Vector<S2> &) const;
+
+ template S2
+ SparseMatrix<S1>::
+ matrix_scalar_product<S2> (const Vector<S2> &,
+ const Vector<S2> &) const;
+
+ template S2 SparseMatrix<S1>::
+ residual<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const Vector<S2> &) const;
+
+ template void SparseMatrix<S1>::
+ precondition_SSOR<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+
+ template void SparseMatrix<S1>::
+ precondition_SOR<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+
+ template void SparseMatrix<S1>::
+ precondition_TSOR<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+
+ template void SparseMatrix<S1>::
+ precondition_Jacobi<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+
+ template void SparseMatrix<S1>::
+ SOR<S2> (Vector<S2> &,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ TSOR<S2> (Vector<S2> &,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ SSOR<S2> (Vector<S2> &,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ PSOR<S2> (Vector<S2> &,
+ const std::vector<unsigned int>&,
+ const std::vector<unsigned int>&,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ TPSOR<S2> (Vector<S2> &,
+ const std::vector<unsigned int>&,
+ const std::vector<unsigned int>&,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ SOR_step<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ TSOR_step<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+ template void SparseMatrix<S1>::
+ SSOR_step<S2> (Vector<S2> &,
+ const Vector<S2> &,
+ const S1) const;
+ }
+
+
+for (S1, S2, S3 : SCALARS;
+ V1, V2 : DEAL_II_VEC_TEMPLATES)
+ {
+ template void SparseMatrix<S1>::
+ vmult (V1<S2> &, const V2<S3> &) const;
+ template void SparseMatrix<S1>::
+ Tvmult (V1<S2> &, const V2<S3> &) const;
+ template void SparseMatrix<S1>::
+ vmult_add (V1<S2> &, const V2<S3> &) const;
+ template void SparseMatrix<S1>::
+ Tvmult_add (V1<S2> &, const V2<S3> &) const;
+ }
--- /dev/null
+//---------------------------------------------------------------------------
+// $Id: vector.cc 15443 2007-11-05 03:43:52Z bangerth $
+// Version: $Name$
+//
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//---------------------------------------------------------------------------
+
+
+for (SCALAR : REAL_SCALARS)
+ {
+ template class Vector<SCALAR>;
+ }
+
+for (S1, S2 : REAL_SCALARS)
+ {
+ template
+ bool
+ Vector<S1>::DEAL_II_MEMBER_OP_TEMPLATE_INST
+ operator==<S2>(const Vector<S2>&) const;
+ template
+ S1
+ Vector<S1>::DEAL_II_MEMBER_OP_TEMPLATE_INST
+ operator*<S2>(const Vector<S2>&) const;
+ template
+ void Vector<S1>::reinit<S2>(const Vector<S2>&, const bool);
+ template
+ void Vector<S1>::equ<S2>(const S1, const Vector<S2>&);
+ template
+ void Vector<S1>::scale<S2>(const Vector<S2>&);
+ }
+
+
+
+for (SCALAR : COMPLEX_SCALARS)
+ {
+ template class Vector<SCALAR>;
+ }
+
+for (S1, S2 : COMPLEX_SCALARS)
+ {
+ template
+ bool
+ Vector<S1>::DEAL_II_MEMBER_OP_TEMPLATE_INST
+ operator==<S2>(const Vector<S2>&) const;
+ template
+ S1
+ Vector<S1>::DEAL_II_MEMBER_OP_TEMPLATE_INST
+ operator*<S2>(const Vector<S2>&) const;
+ template
+ void Vector<S1>::reinit<S2>(const Vector<S2>&, const bool);
+ template
+ void Vector<S1>::equ<S2>(const S1, const Vector<S2>&);
+ template
+ void Vector<S1>::scale<S2>(const Vector<S2>&);
+ }