+template <typename number>
+template <int dim>
+void
+FullMatrix<number>::copy_from(const Tensor<2, dim> &T,
+ const unsigned int src_r_i,
+ const unsigned int src_r_j,
+ const unsigned int src_c_i,
+ const unsigned int src_c_j,
+ const size_type dst_r,
+ const size_type dst_c)
+{
+ Assert(!this->empty(), ExcEmptyMatrix());
+ AssertIndexRange(src_r_j - src_r_i, this->m() - dst_r);
+ AssertIndexRange(src_c_j - src_c_i, this->n() - dst_c);
+ AssertIndexRange(src_r_j, dim);
+ AssertIndexRange(src_c_j, dim);
+ AssertIndexRange(src_r_i, src_r_j + 1);
+ AssertIndexRange(src_c_i, src_c_j + 1);
+
+ for (size_type i = 0; i < src_r_j - src_r_i + 1; ++i)
+ for (size_type j = 0; j < src_c_j - src_c_i + 1; ++j)
+ {
+ const unsigned int src_r_index = static_cast<unsigned int>(i + src_r_i);
+ const unsigned int src_c_index = static_cast<unsigned int>(j + src_c_i);
+ (*this)(i + dst_r, j + dst_c) = number(T[src_r_index][src_c_index]);
+ }
+}
+
+
+
+template <typename number>
+template <int dim>
+void
+FullMatrix<number>::copy_to(Tensor<2, dim> & T,
+ const size_type src_r_i,
+ const size_type src_r_j,
+ const size_type src_c_i,
+ const size_type src_c_j,
+ const unsigned int dst_r,
+ const unsigned int dst_c) const
+{
+ Assert(!this->empty(), ExcEmptyMatrix());
+ AssertIndexRange(src_r_j - src_r_i, dim - dst_r);
+ AssertIndexRange(src_c_j - src_c_i, dim - dst_c);
+ AssertIndexRange(src_r_j, this->m());
+ AssertIndexRange(src_r_j, this->n());
+ AssertIndexRange(src_r_i, src_r_j + 1);
+ AssertIndexRange(src_c_j, src_c_j + 1);
+
+ for (size_type i = 0; i < src_r_j - src_r_i + 1; ++i)
+ for (size_type j = 0; j < src_c_j - src_c_i + 1; ++j)
+ {
+ const unsigned int dst_r_index = static_cast<unsigned int>(i + dst_r);
+ const unsigned int dst_c_index = static_cast<unsigned int>(j + dst_c);
+ T[dst_r_index][dst_c_index] = double((*this)(i + src_r_i, j + src_c_i));
+ }
+}
+
+
+
template <typename number>
template <typename MatrixType>
void
}
-template <typename number>
-template <int dim>
-void
-FullMatrix<number>::copy_from(const Tensor<2, dim> &T,
- const unsigned int src_r_i,
- const unsigned int src_r_j,
- const unsigned int src_c_i,
- const unsigned int src_c_j,
- const size_type dst_r,
- const size_type dst_c)
-{
- Assert(!this->empty(), ExcEmptyMatrix());
- AssertIndexRange(src_r_j - src_r_i, this->m() - dst_r);
- AssertIndexRange(src_c_j - src_c_i, this->n() - dst_c);
- AssertIndexRange(src_r_j, dim);
- AssertIndexRange(src_c_j, dim);
- AssertIndexRange(src_r_i, src_r_j + 1);
- AssertIndexRange(src_c_i, src_c_j + 1);
-
- for (size_type i = 0; i < src_r_j - src_r_i + 1; ++i)
- for (size_type j = 0; j < src_c_j - src_c_i + 1; ++j)
- {
- const unsigned int src_r_index = static_cast<unsigned int>(i + src_r_i);
- const unsigned int src_c_index = static_cast<unsigned int>(j + src_c_i);
- (*this)(i + dst_r, j + dst_c) = number(T[src_r_index][src_c_index]);
- }
-}
-
-
-template <typename number>
-template <int dim>
-void
-FullMatrix<number>::copy_to(Tensor<2, dim> & T,
- const size_type src_r_i,
- const size_type src_r_j,
- const size_type src_c_i,
- const size_type src_c_j,
- const unsigned int dst_r,
- const unsigned int dst_c) const
-{
- Assert(!this->empty(), ExcEmptyMatrix());
- AssertIndexRange(src_r_j - src_r_i, dim - dst_r);
- AssertIndexRange(src_c_j - src_c_i, dim - dst_c);
- AssertIndexRange(src_r_j, this->m());
- AssertIndexRange(src_r_j, this->n());
- AssertIndexRange(src_r_i, src_r_j + 1);
- AssertIndexRange(src_c_j, src_c_j + 1);
-
- for (size_type i = 0; i < src_r_j - src_r_i + 1; ++i)
- for (size_type j = 0; j < src_c_j - src_c_i + 1; ++j)
- {
- const unsigned int dst_r_index = static_cast<unsigned int>(i + dst_r);
- const unsigned int dst_c_index = static_cast<unsigned int>(j + dst_c);
- T[dst_r_index][dst_c_index] = double((*this)(i + src_r_i, j + src_c_i));
- }
-}
-
-
template <typename number>
template <typename somenumber>
template void FullMatrix<S>::print(std::ostream &,
const unsigned int,
const unsigned int) const;
-
- template void FullMatrix<S>::copy_from<1>(const Tensor<2, 1> &,
- const unsigned int,
- const unsigned int,
- unsigned int,
- const unsigned int,
- const size_type,
- const size_type);
-
- template void FullMatrix<S>::copy_from<2>(const Tensor<2, 2> &,
- const unsigned int,
- const unsigned int,
- unsigned int,
- const unsigned int,
- const size_type,
- const size_type);
-
- template void FullMatrix<S>::copy_from<3>(const Tensor<2, 3> &,
- const unsigned int,
- const unsigned int,
- unsigned int,
- const unsigned int,
- const size_type,
- const size_type);
- }
-
-
-for (S : REAL_SCALARS)
- {
- template void FullMatrix<S>::copy_to<1>(Tensor<2, 1> &,
- const size_type,
- const size_type,
- const size_type,
- const size_type,
- const unsigned int,
- const unsigned int) const;
-
- template void FullMatrix<S>::copy_to<2>(Tensor<2, 2> &,
- const size_type,
- const size_type,
- const size_type,
- const size_type,
- const unsigned int,
- const unsigned int) const;
-
- template void FullMatrix<S>::copy_to<3>(Tensor<2, 3> &,
- const size_type,
- const size_type,
- const size_type,
- const size_type,
- const unsigned int,
- const unsigned int) const;
}
-
for (S1, S2 : REAL_SCALARS)
{
template FullMatrix<S1> &FullMatrix<S1>::operator=(