Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6838 Discussions

## Rank updates to pardiso factorization New Contributor I
197 Views

Hi,

Is it possible to do rank-1-updates of the factorization computed by pardiso? That is, given A = L D L^T, I need to be able to efficiently compute the decomposition of A + alpha w w^T (w is a vector)

I'm using this functionality in an interior-point algorithm for large-scale convex optimization.

Best,

Jens

4 Replies Employee
197 Views

Hi, thank you for asking this question I will look into and get back back to as soon as i have an answer.

Regards,

Kenneth Employee
197 Views

Hi Jens,

Current Pardiso functionality doesn't support such algorithm, but can i ask you about reason of this request? Pardiso doesn't provide factorization matrices even for matrix A, but allow one to solve system with factorized matrix, compute inertia and etc. So if you want to have ability to solve system with matrix (A+alpha w w^t)x = f that, probably, could be implemented via Schur complement functionality. Сan you provide additional details of your request to give me a chance to help you?

Thanks,

Alex New Contributor I
197 Views

Thanks for your replies, here are some more details:

Given a factorization of A, it is possible (but as I understand, not i pardiso) to compute the factorization of a small-rank update of A very efficiently. In my case, the small-rank update appears in each iteration of an interior-point algorithm for a convex optimization problem.

In particular, the matrix at each iteration in the algorithm is given as A_k = (Q + B^T * Phi_k * B) where the Q and B are fixed, and the Phi is a diagonal matrix which changes at each iteration.

Obviously I don't need the factorization explicitly, just the ability to compute x = A_k^{inv}b_k

Best,

Jens Employee
197 Views

Hi Jens,

Thanks a lot for this details, send a private message to you with additional questions to understand possibility of MKL pardiso support such functionality

Thanks,

Alex 