-
Notifications
You must be signed in to change notification settings - Fork 83
Pivoted Cholesky #252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
There is solveh submodule for PD matrices which calls |
Awesome, thanks for pointing me to it! For anyone else coming in to this issue, to save you some sleuthing I needed to do:
There's basically Interestingly, a recent LAPACK working note discusses another approach based on Aasen's method, where empirical results for stability generally favor it (but it does not dominate, see Figure 8). Aasen's method decomposes into Note that these indefinite decompositions are solving more general problems than the original issue points to, which is just looking at positive semidefinite systems. I'll try the indefinite approach in my use case. @termoshtt I couldn't find anything that compared the stability of these methods when applied to positive semidefinite systems, where in principle |
The Example:
The problem:
In my opinion, cases where INFO > 0 for the Remark: the error disappears if I remove the "/ 10." above, because then the second diagonal entry for D is only almost 0, due to numerical imprecisions : ) |
Currently, Cholesky will fail on PSD but not PD matrices, because it calls
?pptrf
.However, if we allow pivoting, then we can return a cholesky factor
U
, pivot matrixP
such thatP U^T U P^T = A
for an input matrixA
that's merely PSD (this also returns the rankr
).It would be nice if ndarray-linalg could also provide this pivoted version, e.g., as shown here in python:
An interesting design question would be what the interface should be. Clearly this routine should return the factor, pivot, and rank in some form. But it'd be nice if I could take my pivoted Cholesky output, truncate
U
to its leading principal minor of orderr
, and initialize aCholeskyFactorized
struct directly, so that I can just re-use existing methods for solving the reduced subsystem.The text was updated successfully, but these errors were encountered: