From b6060466151c83b3394021e20b68beddb9990c57 Mon Sep 17 00:00:00 2001 From: wolf Date: Mon, 29 Mar 2004 21:25:20 +0000 Subject: [PATCH] Convert a second algorithm to use iterators, rather than the internal data structures. git-svn-id: https://svn.dealii.org/trunk@8902 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/source/dofs/dof_constraints.cc | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/deal.II/deal.II/source/dofs/dof_constraints.cc b/deal.II/deal.II/source/dofs/dof_constraints.cc index e6fd85a961..19266ae773 100644 --- a/deal.II/deal.II/source/dofs/dof_constraints.cc +++ b/deal.II/deal.II/source/dofs/dof_constraints.cc @@ -665,10 +665,10 @@ void ConstraintMatrix::condense (SparsityPattern &sparsity) const // it is cheaper to not do so and // run right until the end of the // line - const unsigned int row_end = sparsity.get_rowstart_indices()[row+1]; - for (unsigned int j=sparsity.get_rowstart_indices()[row]; jcolumn(); // end of row reached? if (column == SparsityPattern::invalid_entry) @@ -686,8 +686,8 @@ void ConstraintMatrix::condense (SparsityPattern &sparsity) const ++q) sparsity.add (row, lines[distribute[column]].entries[q].first); - }; - }; + } + } } else // row must be @@ -695,36 +695,34 @@ void ConstraintMatrix::condense (SparsityPattern &sparsity) const // here the present row is // not touched (unlike above) { - const unsigned int row_end = sparsity.get_rowstart_indices()[row+1]; - for (unsigned int j=sparsity.get_rowstart_indices()[row]; jcolumn() == SparsityPattern::invalid_entry) break; else { - if (distribute[sparsity.get_column_numbers()[j]] == - deal_II_numbers::invalid_unsigned_int) + const unsigned int column = entry->column(); + if (distribute[column] == deal_II_numbers::invalid_unsigned_int) // distribute entry at irregular // row @p{row} and regular column // sparsity.colnums[j] for (unsigned int q=0; q!=lines[distribute[row]].entries.size(); ++q) sparsity.add (lines[distribute[row]].entries[q].first, - sparsity.get_column_numbers()[j]); + column); else // distribute entry at irregular // row @p{row} and irregular column // sparsity.get_column_numbers()[j] for (unsigned int p=0; p!=lines[distribute[row]].entries.size(); ++p) for (unsigned int q=0; - q!=lines[distribute[sparsity.get_column_numbers()[j]]] - .entries.size(); ++q) + q!=lines[distribute[column]].entries.size(); ++q) sparsity.add (lines[distribute[row]].entries[p].first, - lines[distribute[sparsity.get_column_numbers()[j]]] - .entries[q].first); - }; - }; - }; + lines[distribute[column]].entries[q].first); + } + } + } sparsity.compress(); } -- 2.39.5