This function skips the (slow) error checking and error message construction
of linalg_cholesky(), instead directly returning the LAPACK
error codes as part of a named tuple (L, info). This makes this function
a faster way to check if a matrix is positive-definite, and it provides an
opportunity to handle decomposition errors more gracefully or performantly
than linalg_cholesky() does.
Supports input of float, double, cfloat and cdouble dtypes.
Also supports batches of matrices, and if A is a batch of matrices then
the output has the same batch dimensions.
If A is not a Hermitian positive-definite matrix, or if it's a batch of matrices
and one or more of them is not a Hermitian positive-definite matrix,
then info stores a positive integer for the corresponding matrix.
The positive integer indicates the order of the leading minor that is not positive-definite,
and the decomposition could not be completed.
info filled with zeros indicates that the decomposition was successful.
If check_errors=TRUE and info contains positive integers, then a RuntimeError is thrown.
linalg_cholesky_ex(A, check_errors = FALSE)(Tensor): the Hermitian n \times n matrix or the batch of such matrices of size
(*, n, n) where * is one or more batch dimensions.
(bool, optional): controls whether to check the content of infos. Default: FALSE.
linalg_cholesky() is a NumPy compatible variant that always checks for errors.
Other linalg:
linalg_cholesky(),
linalg_det(),
linalg_eigh(),
linalg_eigvalsh(),
linalg_eigvals(),
linalg_eig(),
linalg_householder_product(),
linalg_inv_ex(),
linalg_inv(),
linalg_lstsq(),
linalg_matrix_norm(),
linalg_matrix_power(),
linalg_matrix_rank(),
linalg_multi_dot(),
linalg_norm(),
linalg_pinv(),
linalg_qr(),
linalg_slogdet(),
linalg_solve(),
linalg_svdvals(),
linalg_svd(),
linalg_tensorinv(),
linalg_tensorsolve(),
linalg_vector_norm()
if (torch_is_installed()) {
A <- torch_randn(2, 2)
out <- linalg_cholesky_ex(A)
out
}
Run the code above in your browser using DataLab