Re: [eigen] Another LDLt issue

[ Thread Index | Date Index | More Archives ]


>I see. So we can always provide general selfadjoint LDLt "at the
>user's own risk". The generic case is that it will "work" since
>division by exactly 0 would be incredibly bad luck, but it will be
>unstable because one will be dividing by small numbers.

I wasn't proposing continuing the factorization if a diagonal term
is (or becomes) very small. I just propose that the test be
if(abs(diag) < eps) return. This should insure that the algorithm
doesn't compute a bad result, shouldn't it? My own experience
is that this will succeed often enough to make it useful.

>But the problem is that pivoting won't help here if all the remaining
>diagonal coefficients are zero. Indeed, a meaningful pivoting LDLt is
>of the form:

Are you talking about a case where an LDLt factorization exists but the matrix is singular?
To be honest, before starting this current thread, I didn't even realize such a case could
exist.  What do people use this factorization for-- calculating matrix rank? I think most
people are interested in the non-singular case but, of course, would like to know if the
factorization algorithm fails.

This discussion has brought up some interesting issues. I decided to take a closer look at how
Lapack approaches this issue (probably should have done that before my first post ;-)). Anyway,
routine dsytrf does an LDLt factorization for a symmetric but not necessarily positive definite
matrix. They *have* chosen to include diagonal pivoting in the implementation; obviously a lot
more work.


Mail converted by MHonArc 2.6.19+