Computes the Cholesky decomposition of a complex Hermitian or real symmetric positive-definite matrix.
Source:R/linalg.R
linalg_cholesky.Rd
Letting be or , the Cholesky decomposition of a complex Hermitian or real symmetric positive-definite matrix is defined as
Arguments
- A
(Tensor): tensor of shape
(*, n, n)
where*
is zero or more batch dimensions consisting of symmetric or Hermitian positive-definite matrices.
Details
where is a lower triangular matrix and is the conjugate transpose when is complex, and the transpose when is real-valued.
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.
See also
linalg_cholesky_ex()
for a version of this operation that skips the (slow) error checking by default and instead returns the debug information. This makes it a faster way to check if a matrix is positive-definite.linalg_eigh()
for a different decomposition of a Hermitian matrix. The eigenvalue decomposition gives more information about the matrix but it slower to compute than the Cholesky decomposition.
Other linalg:
linalg_cholesky_ex()
,
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_triangular()
,
linalg_solve()
,
linalg_svdvals()
,
linalg_svd()
,
linalg_tensorinv()
,
linalg_tensorsolve()
,
linalg_vector_norm()
Examples
if (torch_is_installed()) {
a <- torch_eye(10)
linalg_cholesky(a)
}
#> torch_tensor
#> 1 0 0 0 0 0 0 0 0 0
#> 0 1 0 0 0 0 0 0 0 0
#> 0 0 1 0 0 0 0 0 0 0
#> 0 0 0 1 0 0 0 0 0 0
#> 0 0 0 0 1 0 0 0 0 0
#> 0 0 0 0 0 1 0 0 0 0
#> 0 0 0 0 0 0 1 0 0 0
#> 0 0 0 0 0 0 0 1 0 0
#> 0 0 0 0 0 0 0 0 1 0
#> 0 0 0 0 0 0 0 0 0 1
#> [ CPUFloatType{10,10} ]