mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
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:
@@ -426,8 +426,11 @@ bool SVD<MatrixType>::solve(const MatrixBase<OtherDerived> &b, ResultType* resul
|
|||||||
else
|
else
|
||||||
aux.coeffRef(i) /= si;
|
aux.coeffRef(i) /= si;
|
||||||
}
|
}
|
||||||
|
const int cols = m_matV.rows();
|
||||||
result->col(j) = m_matV * aux;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user