aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-11-30 19:39:20 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-11-30 19:39:20 +0100
commit6b8d6887acb22f8c4d2c1a74de5c162e17bb9ae2 (patch)
tree1e4684cada87efea758bab5bc9940312aa8e7cfc /Eigen
parent00d4a360ba12b0efe818375f0d2e36f0eddffb25 (diff)
bug fix in SparseSelfAdjointTimeDenseProduct for empty rows or columns
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/SparseCore/SparseMatrix.h15
-rw-r--r--Eigen/src/SparseCore/SparseSelfAdjointView.h2
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);