rocSOLVER icon indicating copy to clipboard operation
rocSOLVER copied to clipboard

Recursive cholesky

Open EdDAzevedo opened this issue 1 year ago • 1 comments

Implement recursive formulation of Cholesky factorization for n by n symmetric positive definite matrix A.

Let the following be a block partitioning of matrix A.

Here submatrix L22 is n/2 by n/2, L11 is n1 by n1, where n1 = n - n/2, or partition matrix at mid-point

[L11 0 ] * [ L11' L21'] = [A11 A21' ] [L21 L22] [ L22'] [A21 A22 ]

(1) L11 * L11' = A11 , recursive Cholesky factorization

(2) L21 * L11' = A21 or
L21 = A21 / L11' triangular solve (TRSM)

(3) L21 * L21' + L22 * L22' = A22 or (3a) A22 <- A22 - L21 * L21', symmetric rank-k update (SYRK) (3b) L22 * L22' = A22, recursive Cholesky factorization

Note C++ recursion is performed on CPU host and the recursion depth is O( log2( n ) ).

EdDAzevedo avatar Apr 30 '24 17:04 EdDAzevedo

I have opened a PR on your local fork with my suggested changes. Please have a look when you have a chance.

tfalders avatar Jul 23 '24 23:07 tfalders