make LU::solve() not to crash when rank=0

This commit is contained in:
Gael Guennebaud 2009-08-09 00:06:53 +02:00
parent b10637be50
commit fe813911f2

View File

@ -561,7 +561,7 @@ bool LU<MatrixType>::solve(
if(!isSurjective()) if(!isSurjective())
{ {
// is c is in the image of U ? // is c is in the image of U ?
RealScalar biggest_in_c = c.corner(TopLeft, m_rank, c.cols()).cwise().abs().maxCoeff(); RealScalar biggest_in_c = m_rank>0 ? c.corner(TopLeft, m_rank, c.cols()).cwise().abs().maxCoeff() : 0;
for(int col = 0; col < c.cols(); ++col) for(int col = 0; col < c.cols(); ++col)
for(int row = m_rank; row < c.rows(); ++row) for(int row = m_rank; row < c.rows(); ++row)
if(!ei_isMuchSmallerThan(c.coeff(row,col), biggest_in_c, m_precision)) if(!ei_isMuchSmallerThan(c.coeff(row,col), biggest_in_c, m_precision))