diff options
author | 2011-11-30 19:39:20 +0100 | |
---|---|---|
committer | 2011-11-30 19:39:20 +0100 | |
commit | 6b8d6887acb22f8c4d2c1a74de5c162e17bb9ae2 (patch) | |
tree | 1e4684cada87efea758bab5bc9940312aa8e7cfc /Eigen | |
parent | 00d4a360ba12b0efe818375f0d2e36f0eddffb25 (diff) |
bug fix in SparseSelfAdjointTimeDenseProduct for empty rows or columns
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/SparseCore/SparseMatrix.h | 15 | ||||
-rw-r--r-- | Eigen/src/SparseCore/SparseSelfAdjointView.h | 2 |
2 files changed, 4 insertions, 13 deletions
diff --git a/Eigen/src/SparseCore/SparseMatrix.h b/Eigen/src/SparseCore/SparseMatrix.h index 87a7066b3..87ff2ecf4 100644 --- a/Eigen/src/SparseCore/SparseMatrix.h +++ b/Eigen/src/SparseCore/SparseMatrix.h @@ -556,24 +556,15 @@ class SparseMatrix #ifndef EIGEN_PARSED_BY_DOXYGEN template<typename Lhs, typename Rhs> inline SparseMatrix& operator=(const SparseSparseProduct<Lhs,Rhs>& product) - { - initAssignment(product); - return Base::operator=(product); - } + { return Base::operator=(product); } template<typename OtherDerived> inline SparseMatrix& operator=(const ReturnByValue<OtherDerived>& other) - { - initAssignment(other.derived()); - return Base::operator=(other.derived()); - } + { return Base::operator=(other.derived()); } template<typename OtherDerived> inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other) - { - initAssignment(other.derived()); - return Base::operator=(other.derived()); - } + { return Base::operator=(other.derived()); } #endif template<typename OtherDerived> diff --git a/Eigen/src/SparseCore/SparseSelfAdjointView.h b/Eigen/src/SparseCore/SparseSelfAdjointView.h index 0768b696a..0becb8073 100644 --- a/Eigen/src/SparseCore/SparseSelfAdjointView.h +++ b/Eigen/src/SparseCore/SparseSelfAdjointView.h @@ -229,7 +229,7 @@ class SparseSelfAdjointTimeDenseProduct LhsInnerIterator i(m_lhs,j); if (ProcessSecondHalf) { - while (i.index()<j) ++i; + while (i && i.index()<j) ++i; if(i && i.index()==j) { dest.row(j) += i.value() * m_rhs.row(j); |