Skip to content
Snippets Groups Projects
Commit e1f066be authored by Max Kahnt's avatar Max Kahnt
Browse files

Use auto types for iterators.

parent 2e362f56
Branches
Tags
No related merge requests found
...@@ -21,14 +21,10 @@ namespace MatrixVector { ...@@ -21,14 +21,10 @@ namespace MatrixVector {
const MatrixB& B, const MatrixB& B,
const TransformationMatrix& T2) { const TransformationMatrix& T2) {
for (size_t i = 0; i < A.N(); ++i) { for (size_t i = 0; i < A.N(); ++i) {
typename MatrixA::row_type::Iterator jIt = A[i].begin(); for (auto jIt = A[i].begin(); jIt != A[i].end(); ++jIt) {
typename MatrixA::row_type::Iterator jEnd = A[i].end();
for (; jIt != jEnd; ++jIt) {
for (size_t k = 0; k < B.N(); ++k) { for (size_t k = 0; k < B.N(); ++k) {
if (T1.exists(k, i)) { if (T1.exists(k, i)) {
typename MatrixB::row_type::ConstIterator lIt = B[k].begin(); for (auto lIt = B[k].begin(); lIt != B[k].end(); ++lIt)
typename MatrixB::row_type::ConstIterator lEnd = B[k].end();
for (; lIt != lEnd; ++lIt)
if (T2.exists(lIt.index(), jIt.index())) if (T2.exists(lIt.index(), jIt.index()))
*jIt += T1[k][i] * (*lIt) * T2[lIt.index()][jIt.index()]; *jIt += T1[k][i] * (*lIt) * T2[lIt.index()][jIt.index()];
} }
...@@ -134,12 +130,8 @@ namespace MatrixVector { ...@@ -134,12 +130,8 @@ namespace MatrixVector {
const ScalarB& B, const ScalarB& B,
const TransformationMatrix& T2) { const TransformationMatrix& T2) {
for (size_t k = 0; k < TransformationMatrix::rows; ++k) { for (size_t k = 0; k < TransformationMatrix::rows; ++k) {
typename TransformationMatrix::ConstColIterator Skj = T2[k].begin(); for (auto Skj = T2[k].begin(); Skj != T2[k].end(); ++Skj) {
typename TransformationMatrix::ConstColIterator SkEnd = T2[k].end(); for (auto Tki = T1[k].begin(); Tki != T1[k].end(); Tki++)
for (; Skj != SkEnd; ++Skj) {
typename TransformationMatrix::ConstColIterator Tki = T1[k].begin();
typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end();
for (; Tki != TkEnd; Tki++)
if (A.exists(Tki.index(), Skj.index())) if (A.exists(Tki.index(), Skj.index()))
A[Tki.index()][Skj.index()] += (*Tki) * B * (*Skj); A[Tki.index()][Skj.index()] += (*Tki) * B * (*Skj);
} }
...@@ -183,12 +175,8 @@ namespace MatrixVector { ...@@ -183,12 +175,8 @@ namespace MatrixVector {
const Dune::DiagonalMatrix<FieldType, n>& B, const Dune::DiagonalMatrix<FieldType, n>& B,
const TransformationMatrix& T2) { const TransformationMatrix& T2) {
for (size_t k = 0; k < n; ++k) { for (size_t k = 0; k < n; ++k) {
typename TransformationMatrix::ConstColIterator Skj = T2[k].begin(); for (auto Skj = T2[k].begin(); Skj != T2[k].end(); ++Skj) {
typename TransformationMatrix::ConstColIterator SkEnd = T2[k].end(); for (auto Tki = T1[k].begin(); Tki != T1[k].end(); Tki++)
for (; Skj != SkEnd; ++Skj) {
typename TransformationMatrix::ConstColIterator Tki = T1[k].begin();
typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end();
for (; Tki != TkEnd; Tki++)
if (A.exists(Tki.index(), Skj.index())) { if (A.exists(Tki.index(), Skj.index())) {
A[Tki.index()][Skj.index()] += (*Tki) * B.diagonal(k) * (*Skj); A[Tki.index()][Skj.index()] += (*Tki) * B.diagonal(k) * (*Skj);
} }
...@@ -221,9 +209,7 @@ namespace MatrixVector { ...@@ -221,9 +209,7 @@ namespace MatrixVector {
const Dune::DiagonalMatrix<FieldType, n>& B, const Dune::DiagonalMatrix<FieldType, n>& B,
const TransformationMatrix& T2) { const TransformationMatrix& T2) {
for (int k = 0; k < n; k++) { for (int k = 0; k < n; k++) {
typename TransformationMatrix::ConstColIterator Tki = T1[k].begin(); for (auto Tki = T1[k].begin(); Tki != T1[k].end(); ++Tki)
typename TransformationMatrix::ConstColIterator TkEnd = T1[k].end();
for (; Tki != TkEnd; ++Tki)
A.diagonal(Tki.index()) += A.diagonal(Tki.index()) +=
(*Tki) * B.diagonal(k) * T2[k][Tki.index()]; (*Tki) * B.diagonal(k) * T2[k][Tki.index()];
} }
...@@ -293,23 +279,11 @@ namespace MatrixVector { ...@@ -293,23 +279,11 @@ namespace MatrixVector {
transformMatrixPattern(A, T1, B, T2); transformMatrixPattern(A, T1, B, T2);
A = 0.0; A = 0.0;
for (int k = 0; k < B.N(); ++k) { for (int k = 0; k < B.N(); ++k) {
typename MatrixB::row_type::ConstIterator BklIt = B[k].begin(); for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) {
typename MatrixB::row_type::ConstIterator BklEnd = B[k].end();
for (; BklIt != BklEnd; ++BklIt) {
int l = BklIt.index(); int l = BklIt.index();
for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) {
typename TransformationMatrix::row_type::ConstIterator T1kiIt =
T1[k].begin();
typename TransformationMatrix::row_type::ConstIterator T1kiEnd =
T1[k].end();
for (; T1kiIt != T1kiEnd; ++T1kiIt) {
int i = T1kiIt.index(); int i = T1kiIt.index();
for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) {
typename TransformationMatrix::row_type::ConstIterator T2ljIt =
T2[l].begin();
typename TransformationMatrix::row_type::ConstIterator T2ljEnd =
T2[l].end();
for (; T2ljIt != T2ljEnd; ++T2ljIt) {
int j = T2ljIt.index(); int j = T2ljIt.index();
MatrixBlockA Aij; MatrixBlockA Aij;
transformMatrix(Aij, *T1kiIt, *BklIt, *T2ljIt); transformMatrix(Aij, *T1kiIt, *BklIt, *T2ljIt);
...@@ -327,23 +301,11 @@ namespace MatrixVector { ...@@ -327,23 +301,11 @@ namespace MatrixVector {
const TransformationMatrix& T2) { const TransformationMatrix& T2) {
Dune::MatrixIndexSet indices(T1.M(), T2.M()); Dune::MatrixIndexSet indices(T1.M(), T2.M());
for (int k = 0; k < B.N(); ++k) { for (int k = 0; k < B.N(); ++k) {
typename MatrixB::row_type::ConstIterator BklIt = B[k].begin(); for (auto BklIt = B[k].begin(); BklIt != B[k].end(); ++BklIt) {
typename MatrixB::row_type::ConstIterator BklEnd = B[k].end();
for (; BklIt != BklEnd; ++BklIt) {
int l = BklIt.index(); int l = BklIt.index();
for (auto T1kiIt = T1[k].begin(); T1kiIt != T1[k].end(); ++T1kiIt) {
typename TransformationMatrix::row_type::ConstIterator T1kiIt =
T1[k].begin();
typename TransformationMatrix::row_type::ConstIterator T1kiEnd =
T1[k].end();
for (; T1kiIt != T1kiEnd; ++T1kiIt) {
int i = T1kiIt.index(); int i = T1kiIt.index();
for (auto T2ljIt = T2[l].begin(); T2ljIt != T2[l].end(); ++T2ljIt) {
typename TransformationMatrix::row_type::ConstIterator T2ljIt =
T2[l].begin();
typename TransformationMatrix::row_type::ConstIterator T2ljEnd =
T2[l].end();
for (; T2ljIt != T2ljEnd; ++T2ljIt) {
int j = T2ljIt.index(); int j = T2ljIt.index();
indices.add(i, j); indices.add(i, j);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment