fix bug in svd solve reported on forum, was apparently assuming square matrix, not sure how the unit test could work.

This commit is contained in:
Benoit Jacob 2009-11-04 11:46:17 -05:00
parent 3979f6d8aa
commit 4c456d4211

View File

@ -426,8 +426,11 @@ bool SVD<MatrixType>::solve(const MatrixBase<OtherDerived> &b, ResultType* resul
else
aux.coeffRef(i) /= si;
}
result->col(j) = m_matV * aux;
const int cols = m_matV.rows();
const int minsize = std::min(rows,cols);
result->col(j).start(minsize) = aux.start(minsize);
if(cols>rows) result->col(j).end(cols-minsize).setZero();
result->col(j) = m_matV * result->col(j);
}
return true;
}