Open mtar opened 3 years ago
My suggestion: implement "standard" Cholesky (see, e.g., https://en.wikipedia.org/wiki/Cholesky_decomposition) but block-wise using PyTorch for the blocks; in this sense, the formulas from wikipedia can be used but the $L{i,j}$'s and $A{i,j}$'s are blocks (i.e. matrices) instead of numbers. Of course, dividing by some $L{i,i}$ has now to be replaced by applying the matrix-inverse of $L{i,i}$ (by triangular solve in PyTorch) etc. ...
Feature functionality computes the cholesky decomposition Intended scope:
split
$\in${0,1,None
}Additional context
https://numpy.org/doc/stable/reference/generated/numpy.linalg.cholesky.html https://pytorch.org/docs/stable/generated/torch.linalg.cholesky.html https://data-apis.org/array-api/latest/extensions/linear_algebra_functions.html?#linalg-cholesky-x-upper-false
After obtaining a triangular matrix by Cholesky, one often uses triangular solvers #1096