From e1f066bea3f140aa07ea369b2b4d36dca2a8e8ad Mon Sep 17 00:00:00 2001 From: Max Kahnt <max.kahnt@fu-berlin.de> Date: Tue, 26 Jul 2016 11:51:02 +0200 Subject: [PATCH] Use auto types for iterators. --- dune/matrix-vector/transformmatrix.hh | 64 ++++++--------------------- 1 file changed, 13 insertions(+), 51 deletions(-) diff --git a/dune/matrix-vector/transformmatrix.hh b/dune/matrix-vector/transformmatrix.hh index 3ce403e..038ee29 100644 --- a/dune/matrix-vector/transformmatrix.hh +++ b/dune/matrix-vector/transformmatrix.hh @@ -21,14 +21,10 @@ namespace MatrixVector { const MatrixB& B, const TransformationMatrix& T2) { for (size_t i = 0; i < A.N(); ++i) { - typename MatrixA::row_type::Iterator jIt = A[i].begin(); - typename MatrixA::row_type::Iterator jEnd = A[i].end(); - for (; jIt != jEnd; ++jIt) { + for (auto jIt = A[i].begin(); jIt != A[i].end(); ++jIt) { for (size_t k = 0; k < B.N(); ++k) { if (T1.exists(k, i)) { - typename MatrixB::row_type::ConstIterator lIt = B[k].begin(); - typename MatrixB::row_type::ConstIterator lEnd = B[k].end(); - for (; lIt != lEnd; ++lIt) + for (auto lIt = B[k].begin(); lIt != B[k].end(); ++lIt) if (T2.exists(lIt.index(), jIt.index())) *jIt += T1[k][i] * (*lIt) * T2[lIt.index()][jIt.index()]; } @@ -134,12 +130,8 @@ namespace MatrixVector { const ScalarB& B, const TransformationMatrix& T2) { for (size_t k = 0; k < TransformationMatrix::rows; ++k) { - typename TransformationMatrix::ConstColIterator Skj = T2[k].begin(); - typename TransformationMatrix::ConstColIterator SkEnd = T2[k].end(); - for (; Skj != SkEnd; ++Skj) { - typename TransformationMatrix::ConstColIterator Tki = T1[k].begin(); - typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end(); - for (; Tki != TkEnd; Tki++) + for (auto Skj = T2[k].begin(); Skj != T2[k].end(); ++Skj) { + for (auto Tki = T1[k].begin(); Tki != T1[k].end(); Tki++) if (A.exists(Tki.index(), Skj.index())) A[Tki.index()][Skj.index()] += (*Tki) * B * (*Skj); } @@ -183,12 +175,8 @@ namespace MatrixVector { const Dune::DiagonalMatrix<FieldType, n>& B, const TransformationMatrix& T2) { for (size_t k = 0; k < n; ++k) { - typename TransformationMatrix::ConstColIterator Skj = T2[k].begin(); - typename TransformationMatrix::ConstColIterator SkEnd = T2[k].end(); - for (; Skj != SkEnd; ++Skj) { - typename TransformationMatrix::ConstColIterator Tki = T1[k].begin(); - typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end(); - for (; Tki != TkEnd; Tki++) + for (auto Skj = T2[k].begin(); Skj != T2[k].end(); ++Skj) { + for (auto Tki = T1[k].begin(); Tki != T1[k].end(); Tki++) if (A.exists(Tki.index(), Skj.index())) { A[Tki.index()][Skj.index()] += (*Tki) * B.diagonal(k) * (*Skj); } @@ -221,9 +209,7 @@ namespace MatrixVector { const Dune::DiagonalMatrix<FieldType, n>& B, const TransformationMatrix& T2) { for (int k = 0; k < n; k++) { - typename TransformationMatrix::ConstColIterator Tki = T1[k].begin(); - typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end(); - for (; Tki != TkEnd; ++Tki) + for (auto Tki = T1[k].begin(); Tki != T1[k].end(); ++Tki) A.diagonal(Tki.index()) += (*Tki) * B.diagonal(k) * T2[k][Tki.index()]; } @@ -293,23 +279,11 @@ namespace MatrixVector { transformMatrixPattern(A, T1, B, T2); A = 0.0; for (int k = 0; k < B.N(); ++k) { - typename MatrixB::row_type::ConstIterator BklIt = B[k].begin(); - typename MatrixB::row_type::ConstIterator BklEnd = B[k].end(); - for (; BklIt != BklEnd; ++BklIt) { + for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) { int l = BklIt.index(); - - typename TransformationMatrix::row_type::ConstIterator T1kiIt = - T1[k].begin(); - typename TransformationMatrix::row_type::ConstIterator T1kiEnd = - T1[k].end(); - for (; T1kiIt != T1kiEnd; ++T1kiIt) { + for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) { int i = T1kiIt.index(); - - typename TransformationMatrix::row_type::ConstIterator T2ljIt = - T2[l].begin(); - typename TransformationMatrix::row_type::ConstIterator T2ljEnd = - T2[l].end(); - for (; T2ljIt != T2ljEnd; ++T2ljIt) { + for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) { int j = T2ljIt.index(); MatrixBlockA Aij; transformMatrix(Aij, *T1kiIt, *BklIt, *T2ljIt); @@ -327,23 +301,11 @@ namespace MatrixVector { const TransformationMatrix& T2) { Dune::MatrixIndexSet indices(T1.M(), T2.M()); for (int k = 0; k < B.N(); ++k) { - typename MatrixB::row_type::ConstIterator BklIt = B[k].begin(); - typename MatrixB::row_type::ConstIterator BklEnd = B[k].end(); - for (; BklIt != BklEnd; ++BklIt) { + for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) { int l = BklIt.index(); - - typename TransformationMatrix::row_type::ConstIterator T1kiIt = - T1[k].begin(); - typename TransformationMatrix::row_type::ConstIterator T1kiEnd = - T1[k].end(); - for (; T1kiIt != T1kiEnd; ++T1kiIt) { + for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) { int i = T1kiIt.index(); - - typename TransformationMatrix::row_type::ConstIterator T2ljIt = - T2[l].begin(); - typename TransformationMatrix::row_type::ConstIterator T2ljEnd = - T2[l].end(); - for (; T2ljIt != T2ljEnd; ++T2ljIt) { + for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) { int j = T2ljIt.index(); indices.add(i, j); } -- GitLab