Table of Contents
Shortcuts

# torch.linalg.cholesky_ex

torch.linalg.cholesky_ex(A, *, upper=False, check_errors=False, out=None)

  Computes the Cholesky decomposition of a complex Hermitian or real symmetric positive-definite matrix.

  This function skips the (slow) error checking and error message construction of `torch.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 `torch.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.

  Note

  When the inputs are on a CUDA device, this function synchronizes only when `check_errors`= True.

  Warning

  This function is “experimental” and it may change in a future PyTorch release.

  See also

  `torch.linalg.cholesky()` is a NumPy compatible variant that always checks for errors.

  Parameters:

    A (Tensor) – the Hermitian n times n matrix or the batch of such matrices of size (*, n, n) where * is one or more batch dimensions.

  Keyword Arguments:

    - upper (bool, optional) – whether to return an upper triangular matrix. The tensor returned with upper=True is the conjugate transpose of the tensor returned with upper=False.

    - check_errors (bool, optional) – controls whether to check the content of `infos`. Default: False.

    - out (tuple, optional) – tuple of two tensors to write the output to. Ignored if None. Default: None.

  Examples:

      >>> A = torch.randn(2, 2, dtype=torch.complex128)
      >>> A = A @ A.t().conj()  # creates a Hermitian positive-definite matrix
      >>> L, info = torch.linalg.cholesky_ex(A)
      >>> A
      tensor([[ 2.3792+0.0000j, -0.9023+0.9831j],
              [-0.9023-0.9831j,  0.8757+0.0000j]], dtype=torch.complex128)
      >>> L
      tensor([[ 1.5425+0.0000j,  0.0000+0.0000j],
              [-0.5850-0.6374j,  0.3567+0.0000j]], dtype=torch.complex128)
      >>> info
      tensor(0, dtype=torch.int32)

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.