Re: [eigen] [patch] LDLt decomposition with rank-deficient matrices |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
On Sun, 28 Feb 2010, Ben Goodrich wrote:
Right. And I am basically just trying to figure out the fastest way to get a consistent D that has decent numerical precision even when A(theta) is nearly singular (but not indefinite). If I am understanding correctly, I need to unpivot in basically the same way that reconstructMatrix() does. But unpivoting is going to be computationally expensive when it has to be done repeatedly in an optimization context, so I was hoping someone had a short-cut relative to the steps that first came to my mind :) .
I'm still not sure I understand what you want. The decomposition computed by Eigen is A = P^T L D L^T P, while you want to compute the decomposition A = L D L^T. My first thought would be to compute this from the Cholesky decomposition. Suppose A = X X^T is the Cholesky decomposition (with X lower triangular). Let D' to be the diagonal matrix with the same entries on the diagonal. Set D = (D')^2 and L = X (D')^(-1). Then L is triangular and D is diagonal, so A = L D L^T is the decomposition you're looking for.
Cheers, Jitse
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |