From: Wolfgang Bangerth Date: Sun, 24 Jan 2010 23:43:31 +0000 (+0000) Subject: Fix a recently introduced bug where we started counting from too high. X-Git-Tag: v8.0.0~6599 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d27d2032150efb420902a3c695c14c7bdff2d88;p=dealii.git Fix a recently introduced bug where we started counting from too high. git-svn-id: https://svn.dealii.org/trunk@20428 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/sparse_matrix.templates.h b/deal.II/lac/include/lac/sparse_matrix.templates.h index da1d17fae7..204443ee5c 100644 --- a/deal.II/lac/include/lac/sparse_matrix.templates.h +++ b/deal.II/lac/include/lac/sparse_matrix.templates.h @@ -1509,7 +1509,8 @@ SparseMatrix::TSOR (Vector& dst, Assert (m() == dst.size(), ExcDimensionMismatch(m(),dst.size())); - for (unsigned int row=m(); row!=0; --row) + unsigned int row=m()-1; + while (true) { somenumber s = dst(row); for (unsigned int j=cols->rowstart[row]; jrowstart[row+1]; ++j) @@ -1517,6 +1518,11 @@ SparseMatrix::TSOR (Vector& dst, s -= val[j] * dst(cols->colnums[j]); dst(row) = s * om / val[cols->rowstart[row]]; + + if (row == 0) + break; + + --row; } }