Fix infinite recursion in ProductBase::coeff() (bug #447)

Triggered by product of dynamic-size 1 x n and n x 1 matrices.
Also, add regression test.
(transplanted from 77a5a2b28cb89bca74bdf5936dafb306af6be162)
This commit is contained in:
Jitse Niesen
2012-04-18 15:16:05 +01:00
parent ea1ac035ce
commit f1f70ceb84
2 changed files with 24 additions and 2 deletions

View File

@@ -152,7 +152,8 @@ class ProductBase : public MatrixBase<Derived>
#else
EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
eigen_assert(this->rows() == 1 && this->cols() == 1);
return derived().coeff(row,col);
Matrix<Scalar,1,1> result = *this;
return result.coeff(row,col);
#endif
}
@@ -160,7 +161,8 @@ class ProductBase : public MatrixBase<Derived>
{
EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
eigen_assert(this->rows() == 1 && this->cols() == 1);
return derived().coeff(i);
Matrix<Scalar,1,1> result = *this;
return result.coeff(i);
}
const Scalar& coeffRef(Index row, Index col) const