Are there any modules that provide access to (sparse) symmetric indefinite solvers with Bunch-Kaufman-Parlett pivoting where I can access the L and D matrices, or would it be useful to build a module that does this? Right now, I have to do something like this.
As of now, is compiling IPOPT with the HSL linear solvers (for example, HSL_MA57) the easiest way to currently use the HSL routines? I saw a previous post build a custom IPOPT with these solvers, but if I only want to call the Bunch-Kaufman-Parlett LDLt factorization (MA57), can I access it through IPOPT, or is there a more direct way? Btw, as another alternative, Pardiso doesnβt yet allow you to access the L and D factors.
help?> bkfact
search: bkfact bkfact!
bkfact(A, uplo::Symbol=:U, symmetric::Bool=issymmetric(A), rook::Bool=false) -> BunchKaufman
Compute the Bunch-Kaufman [^Bunch1977] factorization of a symmetric or
Hermitian matrix A and return a BunchKaufman object. uplo indicates which
triangle of matrix A to reference. If symmetric is true, A is assumed to be
symmetric. If symmetric is false, A is assumed to be Hermitian. If rook is
true, rook pivoting is used. If rook is false, rook pivoting is not used.
The following functions are available for BunchKaufman objects: size, \,
inv, issymmetric, ishermitian.
| [^Bunch1977]
|
| J R Bunch and L Kaufman, Some stable methods for calculating
| inertia and solving symmetric linear systems, Mathematics of
| Computation 31:137 (1977), 163-179. url.
Thanks, sorry, I wasnβt clear. Iβm aware of bkfact and ldlfact, but neither allow me to access L and D separately (i.e., if I need to do a Hessian modification). Iβll clarify my question.
We only have a dense Bunch-Kaufman. The ldlfact works for sparse matrices and you can extract the factors but it only doesnβt fill-reducing permutations, i.e. no permutations during the numerical factorization.
See HSL.jl. I wrote an interface to HSL_MA97 (essentially a multi-core version of HSL_MA57) that gives access to the factors and allows you to modify them. In the ma57 branch, thereβs a similar interface to HSL_MA57 but a patch is required to access the factors. Iβm not quite sure Iβm allowed to distribute it (I should submit it to the HSL folks). In the mean time, I could send it privately. Feel free to open an issue there if anything doesnβt work right.