Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.2
-
None
-
All
Description
In the SingularValueDecompositionImpl's internal private class Solver, a pseudo inverse matrix is calculated:
In lines 2600-264 we have:
if (singularValues[i] > 0)
{ a = 1 / singularValues[i]; }else
{ a = 0; }This is not consistent with the manner in which rank is determined (lines 225 to 233). That is to say a matrix could potentially be rank deficient, yet the psuedoinverse would still include the redundant columns...
Also, there is the problem of very small singular values which could result in overflow.